:root{--bg: #f5f6f8;--surface: #ffffff;--border: #dfe2e7;--text: #1d2330;--muted: #687082;--primary: #2453c7;--primary-hover: #1c43a5;--primary-soft: #e8eefb;--danger: #c62f2f;--ok: #1f8a4c;--warn: #b7791f;--radius: 6px;--shadow: 0 1px 2px rgb(16 24 40 / 6%), 0 4px 12px rgb(16 24 40 / 6%);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:20px;margin:0;font-weight:600}h2{font-size:16px;margin:0 0 12px;font-weight:600}button,.btn{display:inline-flex;align-items:center;gap:6px;font:inherit;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap}button:hover:not(:disabled),.btn:hover{background:#eef0f3;text-decoration:none}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover:not(:disabled){background:var(--primary-hover)}button.danger{color:var(--danger)}button.icon-btn{padding:6px;border-color:transparent;background:none;color:var(--muted)}button.icon-btn:hover:not(:disabled){color:var(--text)}button.icon-btn.danger:hover:not(:disabled){color:var(--danger);background:#fbe9e9}button.link{border:none;background:none;color:var(--primary);padding:2px 4px}input,select,textarea{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--primary-soft);border-color:var(--primary)}input[type=checkbox],input[type=radio]{width:auto}label{display:block;margin-bottom:12px}label>span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}label.inline{display:flex;align-items:center;gap:6px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.muted{color:var(--muted)}.row{display:flex;align-items:center;gap:8px}.spacer{flex:1}.error-text{color:var(--danger)}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:8px;border-bottom:1px solid var(--border)}td{padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f8f9fb}.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:#eef0f3;color:var(--muted)}.badge.ready{background:#e3f4ea;color:var(--ok)}.badge.error{background:#fbe9e9;color:var(--danger)}.badge.processing,.badge.pending{background:#fdf3e1;color:var(--warn)}mark{background:#fff1a8;color:inherit;padding:0 1px;border-radius:2px}.toast{position:fixed;bottom:20px;right:20px;z-index:100;padding:10px 16px;border-radius:var(--radius);color:#fff;background:var(--ok);box-shadow:var(--shadow);max-width:420px}.toast.error{background:var(--danger)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}
