@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;600;700;800&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:14px}body{background:var(--bg-page);color:var(--text);min-height:100vh;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:13.5px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit}img{max-width:100%;display:block}:root{--bg-page:#eef1f7;--bg:#fff;--bg2:#f5f7fc;--bg3:#eceff6;--surface:var(--bg);--surface-muted:var(--bg2);--surface-soft:var(--bg3);--surface-raised:#fff;--border:#dde2ed;--border2:#c4ccd9;--text:#0f1623;--text2:#526070;--text3:#8f9baf;--text-inverse:#fff;--on-brand:#fff;--on-brand-muted:#fffc;--on-brand-soft:#ffffff26;--on-brand-border:#ffffff47;--hover:#eef1f6;--shadow-color:#0f163c1f;--shadow-color-soft:#0f163c0f;--shadow:0 1px 3px var(--shadow-color-soft), 0 4px 12px var(--shadow-color-soft);--shadow-lg:0 8px 32px var(--shadow-color);--shadow-sm:0 1px 2px var(--shadow-color-soft);--shadow-card:0 10px 30px -18px var(--shadow-color);--shadow-modal:0 24px 70px #0f172a3d;--overlay:#0f172a75;--pri:#2563eb;--pri-hover:#1d4ed8;--pri-light:#eef4ff;--pri-ring:#2563eb38;--pri-soft:color-mix(in srgb, var(--pri) 10%, transparent);--pri-border:color-mix(in srgb, var(--pri) 24%, transparent);--brand-start:#1565c0;--brand-end:#2563eb;--brand-gradient:linear-gradient(135deg, var(--brand-start) 0%, var(--brand-end) 100%);--accent:#0ea5e9;--accent-light:color-mix(in srgb, var(--accent) 10%, transparent);--accent-border:color-mix(in srgb, var(--accent) 25%, transparent);--info:#0369a1;--info-light:#0369a114;--info-border:#0369a14d;--cyan:#0e7490;--cyan-light:#0891b21a;--cyan-border:#0891b24d;--purple:#7c3aed;--purple-light:#7c3aed1a;--purple-border:#7c3aed40;--neutral:#64748b;--neutral-light:#94a3b826;--neutral-border:#94a3b859;--indigo:#6366f1;--indigo-light:#6366f11f;--indigo-border:#6366f133;--success:#16a34a;--success-light:#f0fdf4;--success-soft:#22c55e1f;--success-border:#22c55e40;--success-deep:#065f46;--warning:#d97706;--warning-light:#fffbeb;--warning-soft:#eab3081f;--warning-border:#eab30840;--warning-text:#b45309;--danger:#dc2626;--warn-bg:#fef2f2;--warn-color:#b42318;--danger-light:#fef2f2;--danger-soft:#dc262614;--danger-border:#dc262640;--lab-table-border:var(--border);--lab-table-head-bg:var(--bg2);--lab-table-row-head-bg:var(--bg2);--lab-table-readonly-bg:var(--bg2);--lab-table-merged-bg:color-mix(in srgb, var(--pri-light) 42%, var(--bg));--lab-table-cell-bg:var(--bg);--lab-table-cell-padding:8px 10px;--lab-table-cell-min-height:34px;--lab-table-head-font-size:11px;--lab-table-cell-font-size:13px;--lab-table-warn-bg:#dc262614;--lab-table-warn-text:var(--danger);--lab-table-focus-bg:var(--hover);--card:var(--bg);--brd:var(--border);--text1:var(--text);--bg-card:var(--bg);--soft-card-bg:linear-gradient(90deg, color-mix(in srgb, #e8f7fc 34%, var(--bg)) 0%, var(--bg) 58%, color-mix(in srgb, #fff4ec 28%, var(--bg)) 100%);--soft-card-border:color-mix(in srgb, #0098d8 18%, var(--border));--soft-card-shadow:0 8px 22px #0b4f7512;--soft-card-shadow-hover:0 14px 30px #0b4f751c;--soft-card-radius:18px;--stat-blue:#2563eb;--stat-green:#059669;--stat-amber:#d97706;--stat-purple:#7c3aed;--stat-red:#dc2626}[data-theme=dark]{--bg-page:#0f1115;--bg:#1c2128;--bg2:#161b22;--bg3:#1e2530;--surface:#0f141a;--surface-muted:var(--bg2);--surface-soft:var(--bg3);--surface-raised:#242b35;--border:#2d333b;--border2:#444c56;--text:#e6edf3;--text2:#b8c2cf;--text3:#8b96a5;--text-inverse:#0f1115;--on-brand:#fff;--on-brand-muted:#fffc;--on-brand-soft:#ffffff26;--on-brand-border:#ffffff47;--hover:#1a222d;--shadow-color:#00000059;--shadow-color-soft:#0000002e;--shadow:0 1px 0 var(--border), 0 2px 8px #0003;--shadow-lg:0 0 0 1px var(--border), 0 8px 24px #00000059;--shadow-sm:0 1px 0 var(--border);--shadow-card:0 0 0 1px var(--border);--shadow-modal:0 0 0 1px var(--border2), 0 24px 70px #00000080;--overlay:#000000a6;--pri:#00a5df;--pri-hover:#00b8f5;--pri-light:#00a5df21;--pri-ring:#00a5df26;--pri-soft:color-mix(in srgb, var(--pri) 12%, transparent);--pri-border:color-mix(in srgb, var(--pri) 28%, transparent);--brand-start:#007bae;--brand-end:#00a5df;--brand-gradient:linear-gradient(135deg, var(--brand-start) 0%, var(--brand-end) 100%);--accent:#00a5df;--accent-light:#00a5df1f;--accent-border:#00a5df4d;--info:#00a5df;--info-light:#00a5df1a;--info-border:#00a5df4d;--cyan:#22d3ee;--cyan-light:#22d3ee1a;--cyan-border:#22d3ee40;--purple:#a78bfa;--purple-light:#a78bfa1a;--purple-border:#a78bfa38;--neutral:#8b949e;--neutral-light:#8b949e1f;--neutral-border:#8b949e4d;--indigo:#818cf8;--indigo-light:#818cf81a;--indigo-border:#818cf833;--success:#2ea043;--success-light:#2ea0431f;--success-soft:#2ea0431a;--success-border:#2ea0434d;--success-deep:#1a6331;--warning:#d29922;--warning-light:#d299221a;--warning-soft:#d299221a;--warning-border:#d299224d;--warning-text:#e3b341;--danger:#f85149;--danger-light:#f851491a;--danger-soft:#f8514914;--danger-border:#f851494d;--warn-bg:#f851491a;--warn-color:#ff7b72;--lab-table-border:var(--border);--lab-table-head-bg:var(--bg2);--lab-table-row-head-bg:var(--bg2);--lab-table-readonly-bg:color-mix(in srgb, var(--bg2) 70%, var(--bg));--lab-table-merged-bg:#00a5df14;--lab-table-cell-bg:var(--bg);--lab-table-warn-bg:#f8514914;--lab-table-warn-text:var(--danger);--lab-table-focus-bg:#00a5df12;--card:var(--bg);--brd:var(--border);--text1:var(--text);--bg-card:var(--bg);--soft-card-bg:var(--bg);--soft-card-border:var(--border);--soft-card-shadow:0 0 0 1px var(--border);--soft-card-shadow-hover:0 0 0 1px var(--border2), 0 4px 16px #0003;--soft-card-radius:18px;--stat-blue:#60a5fa;--stat-green:#34d399;--stat-amber:#fbbf24;--stat-purple:#a78bfa;--stat-red:#f87171}.lab-table-wrap{border:1px solid var(--lab-table-border);border-radius:10px;overflow:auto}.lab-table{border-collapse:collapse;white-space:nowrap;width:100%}.lab-th{background:var(--lab-table-head-bg);border-right:1px solid var(--lab-table-border);border-bottom:1px solid var(--lab-table-border);padding:var(--lab-table-cell-padding);text-align:center;min-width:90px}.lab-th-name{font-size:var(--lab-table-head-font-size);color:var(--text);font-weight:800}.lab-th-unit{color:var(--text3);margin-top:2px;font-size:10px;display:block}.lab-td{border-right:1px solid var(--lab-table-border);border-top:1px solid var(--lab-table-border);background:var(--lab-table-cell-bg);min-width:90px;padding:0}.lab-row-head{background:var(--lab-table-row-head-bg);color:var(--text2);text-align:center;font-weight:700}.lab-input{width:100%;min-height:var(--lab-table-cell-min-height);color:var(--pri);padding:var(--lab-table-cell-padding);text-align:center;font:inherit;font-size:var(--lab-table-cell-font-size);background:0 0;border:none;outline:none;font-weight:700}.lab-input:focus{background:var(--lab-table-focus-bg)}.lab-static{min-height:var(--lab-table-cell-min-height);padding:var(--lab-table-cell-padding);text-align:center;color:var(--text);font-size:var(--lab-table-cell-font-size);font-weight:700;display:block}.lab-cell-warn{background:var(--lab-table-warn-bg)!important}.lab-cell-warn .lab-input,.lab-cell-warn .lab-static{font-weight:800;color:var(--lab-table-warn-text)!important}.lab-cell-readonly,.lab-row-structural .lab-td{background:var(--lab-table-readonly-bg)}.lab-cell-merged{background:var(--lab-table-merged-bg)}.shell{min-height:100vh;display:flex}.content-wrap{background:radial-gradient(circle, #0000000b 1px, transparent 1px), var(--bg-page);background-size:26px 26px,auto}[data-theme=dark] .content-wrap{background:radial-gradient(circle, #ffffff0a 1px, transparent 1px), var(--bg-page);background-size:26px 26px,auto}[data-theme=dark] .shell:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(70% 50% at 85% -5%,#00a5df0d 0%,#0000 70%),radial-gradient(55% 40% at 5% 105%,#00a5df0a 0%,#0000 65%);position:fixed;inset:0}[data-theme=dark] .shell>*{z-index:1;position:relative}.btn-pri{background:var(--pri);color:var(--text-inverse);cursor:pointer;letter-spacing:.1px;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s;display:inline-flex}.btn-pri:hover:not(:disabled){background:var(--pri-hover);box-shadow:0 2px 10px var(--pri-ring)}.btn-pri:active:not(:disabled){transform:translateY(1px)}.btn-pri:disabled{opacity:.5;cursor:default}.btn-sec{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn-sec:hover:not(:disabled){border-color:var(--border2);background:var(--hover)}.btn-sec:disabled{opacity:.5;cursor:default}.btn-danger{background:var(--danger);color:var(--text-inverse);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:opacity .15s;display:inline-flex}.btn-danger:hover:not(:disabled){opacity:.88}.btn-danger:disabled{opacity:.5;cursor:default}.fg input,.fg select,.fg textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;outline:none;padding:8px 11px;font-size:13px;transition:border-color .15s,box-shadow .15s}.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-ring)}.fg textarea{resize:vertical;min-height:80px}.fg input::placeholder,.fg textarea::placeholder{color:var(--text3)}.fg label{color:var(--text2);letter-spacing:.3px;margin-bottom:5px;font-size:11.5px;font-weight:600;display:block}.fsec{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.fsec-head{background:var(--bg2);color:var(--text2);border-bottom:1px solid var(--border);letter-spacing:.2px;padding:11px 16px;font-size:12.5px;font-weight:600}.fsec-body{padding:16px}.fgrid{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.page-hdr{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.page-title{color:var(--text);letter-spacing:-.3px;font-size:21px;font-weight:700;line-height:1.2}.page-sub{color:var(--text3);margin-top:4px;font-size:13px;font-weight:400}.page-actions{justify-content:flex-end;margin-bottom:12px}.card{background:var(--soft-card-bg);border:1px solid var(--soft-card-border);border-radius:var(--soft-card-radius);box-shadow:var(--soft-card-shadow)}.rtable-wrap{background:var(--soft-card-bg);border:1px solid var(--soft-card-border);border-radius:var(--soft-card-radius);box-shadow:var(--soft-card-shadow);overflow-x:auto}.rtable{border-collapse:collapse;width:100%;font-size:13px}.rtable thead{z-index:1;background:var(--bg2);position:sticky;top:0}.rtable th{text-align:left;background:var(--bg2);border-bottom:1px solid var(--border);color:var(--text3);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:700}.rtable td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:11px 14px}.rtable tr:last-child td{border-bottom:none}.rtable tbody tr:hover td{background:var(--hover)}.filter-bar{background:var(--soft-card-bg);border:1px solid var(--soft-card-border);border-radius:var(--soft-card-radius);box-shadow:var(--soft-card-shadow);padding:12px 14px}.badge{letter-spacing:.2px;border-radius:99px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-blue{background:var(--pri-light);color:var(--pri)}.badge-green{background:var(--success-light);color:var(--success)}.badge-yellow{background:var(--warning-light);color:var(--warning)}.badge-red{background:var(--danger-light);color:var(--danger)}.badge-gray{background:var(--bg3);color:var(--text2)}.modal-overlay{z-index:500;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:flex-start;padding:60px 16px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);width:100%;max-width:560px;max-height:calc(100vh - 84px);box-shadow:var(--shadow-modal), 0 0 0 1px var(--border);border-radius:14px;flex-direction:column;flex-shrink:0;display:flex}.modal-hdr{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 24px 16px;display:flex}.modal-title{letter-spacing:-.1px;font-size:15px;font-weight:700}.modal-close{cursor:pointer;color:var(--text3);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:17px;transition:all .15s;display:flex}.modal-close:hover{background:var(--hover);color:var(--text)}.modal-body{flex:1;min-height:0;padding:20px 24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 24px;display:flex}.divider{border:none;border-top:1px solid var(--border);margin:16px 0}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}[data-theme=dark] .stat-card{box-shadow:0 0 0 1px var(--border)}[data-theme=dark] .stat-card:hover{box-shadow:0 0 0 1px var(--border2), 0 4px 16px #00000040}[data-theme=dark] .stat-value{filter:brightness(1.2)saturate(.9)}[data-theme=dark] .stat-accent-bar{opacity:.45}[data-theme=dark] .stat-card:before{opacity:.06}[data-theme=dark] .confirmed-banner{background:#2ea0431f!important;border-color:#2ea0434d!important}[data-theme=dark] .confirmed-banner .c-main{color:#3dd868!important}[data-theme=dark] .confirmed-banner .c-sub{color:#2ea043!important}[data-theme=dark] .rtable tbody tr:nth-child(2n) td{background:var(--bg2)}[data-theme=dark] .rtable tbody tr:hover td{background:var(--hover)!important}[data-theme=dark] .badge-green{color:#3dd868;background:#2ea04326}[data-theme=dark] .badge-yellow{color:#e3b341;background:#d2992226}[data-theme=dark] .badge-red{color:#ff7b72;background:#f8514926}[data-theme=dark] .badge-blue{color:#00a5df;background:#00a5df26}[data-theme=dark] .badge-gray{color:#9da7b3;background:#8b949e1f}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--border2)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--text3)}@media print{.shell>.sidebar,.shell>.topbar,.shell>.tabbar,.no-print{display:none!important}body{color:#000;background:#fff;font-family:Times New Roman,serif}.shell{display:block}}.toast[data-v-578bc586]{border-radius:var(--r);background:var(--success);color:var(--text-inverse);z-index:9999;box-shadow:var(--shadow-lg);pointer-events:none;padding:10px 24px;font-size:13px;font-weight:500;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast.error[data-v-578bc586]{background:var(--danger)}
