:root{--ink:#373435;--ink-soft:#5d5a5b;--muted:#8a8788;--line:#ececea;--line2:#e2e1df;--bg:#f6f6f4;--panel:#fff;--brand:#10a5a0;--brand-d:#0c8480;--brand-bg:#e7f6f5;--ok:#15936b;--okbg:#e7f5ee;--err:#c0392b;--errbg:#fbecea;--warn:#9a6207;--warnbg:#fbf2e2;--radius:14px;--mono:"SF Mono", ui-monospace, "Roboto Mono", Menlo, Consolas, monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}body{background:var(--bg);font-family:var(--sans);color:var(--ink);margin:0}.shell{flex-direction:column;height:100vh;display:flex}.topbar{z-index:10;background:var(--panel);border-bottom:1px solid var(--line2);justify-content:space-between;align-items:center;height:58px;padding:0 22px;display:flex;position:sticky;top:0}.brand{align-items:baseline;gap:12px;display:flex}.wordmark{letter-spacing:-.5px;color:var(--ink);font-size:21px;font-weight:800}.wordmark .dot{color:var(--brand)}.product{color:var(--muted);font-size:13px;font-weight:600}.topbar-right{align-items:center;gap:14px;display:flex}.auchip{color:var(--brand-d);background:var(--brand-bg);white-space:nowrap;border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:600}.clinic-badge{color:var(--ink-soft);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.avatar{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:grid}.logout-btn{color:var(--ink-soft);border:1px solid var(--line2);cursor:pointer;background:0 0;border-radius:8px;padding:5px 11px;font-size:12.5px;font-weight:600}.logout-btn:hover{color:var(--ink);border-color:var(--ink-soft)}.body{flex:1;align-items:stretch;min-height:0;display:flex}.sidenav{background:var(--panel);border-right:1px solid var(--line2);flex-direction:column;flex:none;gap:4px;width:224px;padding:16px 12px;display:flex}.navitem{width:100%;font:inherit;color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:11px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.navitem:hover{background:var(--bg);color:var(--ink)}.navitem.active{background:var(--ink);color:#fff}.navicon{text-align:center;opacity:.9;width:20px}.navcount{background:var(--brand-bg);color:var(--brand-d);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:11px;font-weight:700}.navitem.active .navcount{background:var(--brand);color:#04302f}.nav-spacer{flex:1}.nav-foot{color:var(--muted);border-top:1px solid var(--line);padding:12px;font-size:11px;line-height:1.5}.content{flex:1;min-height:0;padding:28px 32px 60px;overflow:auto}.page{max-width:980px;margin:0 auto}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.page-head h1{letter-spacing:-.4px;margin:0 0 5px;font-size:23px}.sub{color:var(--ink-soft);max-width:75ch;margin:0;font-size:14px;line-height:1.55}.page-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.muted-sm{color:var(--muted);font-size:12.5px}.btn{appearance:none;font:inherit;cursor:pointer;border:none;border-radius:10px;padding:11px 20px;font-size:14px;font-weight:700;transition:all .15s}.btn.primary{background:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-d)}.btn.primary:disabled{cursor:default;background:#cfe6e5}.btn.dark{background:var(--ink);color:#fff}.btn.dark:hover{background:#231f20}.btn.ghost{border:1px solid var(--line2);color:var(--ink);background:#fff}.btn.ghost:hover{border-color:var(--ink)}.btn.danger{background:var(--err);color:#fff}.btn.danger:hover{filter:brightness(1.08)}.btn.danger:disabled{cursor:default;background:#e7b3ad}.linklike{color:var(--brand-d);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;font-weight:600}.linklike:hover{text-decoration:underline}.linklike.danger{color:var(--err)}.action-group{gap:10px;display:flex}.drop{text-align:center;color:var(--muted);cursor:pointer;background:#fafafa;border:2px dashed #c4c2c0;border-radius:16px;padding:34px 24px;transition:all .15s}.drop:hover,.drop.drag{border-color:var(--brand);background:var(--brand-bg);color:var(--brand-d)}.drop.reading{border-style:solid;border-color:var(--brand);background:var(--brand-bg);color:var(--brand-d);cursor:progress;animation:1s ease-in-out infinite droppulse}@keyframes droppulse{50%{opacity:.65}}.drop .big{margin-bottom:8px;font-size:34px}.drop b{color:var(--ink);font-size:15px;display:block}.drop-sub{margin-top:5px;font-size:12.5px}.drop-hint{color:var(--brand-d);background:var(--brand-bg);border-radius:999px;margin-top:8px;padding:4px 10px;font-size:12px;display:inline-block}.btn.sm{padding:7px 14px;font-size:13px}.drop-error{color:var(--err);background:var(--errbg);border:1px solid #f0c8c2;border-radius:8px;margin-top:12px;padding:7px 12px;font-size:12.5px;display:inline-block}.drop-actions{justify-content:center;align-items:center;gap:8px;margin-top:12px;display:flex}.drop-actions .sep{color:var(--line2)}.batchbar{justify-content:space-between;align-items:center;margin:20px 0 12px;font-size:13px;display:flex}.batchbar .count{font-weight:700}.progress-sticky{z-index:5;background:var(--panel);border:1px solid var(--line2);border-radius:12px;margin:0 0 14px;padding:12px 14px;position:sticky;top:0;box-shadow:0 2px 10px #0000000f}.progress-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;font-size:13px;display:flex}.progress-row .count{font-weight:700}.progress-stats{color:var(--ink-soft);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;font-weight:600;display:flex}.progress-stats .ok{color:var(--ok)}.progress-stats .err{color:var(--err)}.progress-stats .eta{font-variant-numeric:tabular-nums;color:var(--brand-d)}.progress-track{background:var(--bg);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--brand);border-radius:999px;height:100%;transition:width .3s}.progress-fill.has-fail{background:linear-gradient(90deg, var(--ok), var(--err))}.caselist-more{flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0 4px;font-size:12.5px;display:flex}.caselist-more-note{color:var(--muted)}.caselist{flex-direction:column;gap:14px;display:flex}.casecard{border:1px solid var(--line2);background:var(--panel);border-radius:14px;padding:12px 14px}.casecard.invalid{border-style:dashed;border-color:#e7cda0}.casehead{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.caselabel{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;font-size:14px;font-weight:700;display:flex}.archcount{color:var(--brand-d);background:var(--brand-bg);text-transform:capitalize;border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:500}.rid-inline{font-family:var(--mono);color:var(--ink-soft);background:var(--bg);border-radius:5px;padding:1px 7px;font-size:12px}.casehead-actions{flex:none;align-items:center;gap:12px;display:flex}.casehead-actions .linklike{font-size:11.5px}.casehead .x{color:var(--muted);cursor:pointer;flex:none;font-size:11.5px}.casehead .x:hover{color:var(--err)}.casenote{color:var(--ink-soft);background:var(--bg);text-transform:capitalize;border-radius:8px;margin-bottom:10px;padding:5px 10px;font-size:11.5px}.caseissue{color:var(--warn);background:var(--warnbg);border:1px solid #efdcb8;border-radius:8px;margin-bottom:10px;padding:6px 10px;font-size:12px}.caseref{margin-bottom:12px}.caseref label{color:var(--ink-soft);margin-bottom:5px;font-size:12px;font-weight:600;display:block}.caseref .opt{color:var(--muted);font-weight:500}.caseref input{border:1px solid var(--line2);width:100%;max-width:380px;font-size:13.5px;font-family:var(--sans);color:var(--ink);border-radius:9px;padding:8px 11px}.caseref input::placeholder{color:#b6b3b2}.caseref input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-bg);outline:none}.caseref-hint{color:var(--muted);max-width:560px;margin-top:5px;font-size:11.5px;display:block}.filelist{flex-direction:column;gap:9px;display:flex}.filecard{border:1px solid var(--line2);border-radius:11px;align-items:center;gap:13px;padding:10px 13px;display:flex}.filecard.invalid{opacity:.7;border-style:dashed}.filecard .ico{background:var(--brand-bg);width:40px;height:40px;color:var(--brand-d);border-radius:9px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.filecard.invalid .ico{color:var(--muted);background:#f1efef}.filecard .m{flex:1;min-width:0}.filecard .m b{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;display:block;overflow:hidden}.filecard .m span{color:var(--muted);font-size:12px;display:block}.filecard .x{color:var(--muted);cursor:pointer;flex:none;padding:4px;font-size:15px}.filecard .x:hover{color:var(--err)}.seg{border:1px solid var(--line2);border-radius:10px;flex:none;display:flex;overflow:hidden}.seg button{font:inherit;cursor:pointer;color:var(--ink-soft);border:none;border-right:1px solid var(--line2);background:#fff;padding:7px 12px;font-size:12.5px}.seg button:last-child{border-right:none}.seg button.on{background:var(--brand);color:#fff;font-weight:700}.attest{border:1px solid var(--line2);background:var(--panel);cursor:pointer;border-radius:12px;align-items:flex-start;gap:12px;margin-top:18px;padding:15px;display:flex}.attest input{width:18px;height:18px;accent-color:var(--brand);flex:none;margin-top:2px}.attest .t{color:var(--ink-soft);font-size:13px;line-height:1.55}.attest .t b{color:var(--ink)}.verbadge{color:var(--brand-d);background:var(--brand-bg);border-radius:6px;margin-left:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.pill{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:700}.pill.ok{background:var(--okbg);color:var(--ok)}.pill.err{background:var(--errbg);color:var(--err)}.pill.busy{background:var(--brand-bg);color:var(--brand-d)}.pill.idle{color:var(--muted);background:#f1efef}.pill.warn{background:var(--warnbg);color:var(--warn)}.ledger{border-collapse:collapse;background:var(--panel);border:1px solid var(--line2);border-radius:12px;width:100%;font-size:13px;overflow:hidden}.ledger th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line2);background:#fbfbfa;padding:11px 14px;font-size:11px;font-weight:700}.ledger th.num,.ledger td.num{text-align:right}.ledger td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}.ledger tr:last-child td{border-bottom:none}.ledger .fn{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:600;overflow:hidden}.ledger .rid code{font-family:var(--mono);letter-spacing:.04em;color:var(--ink);font-size:12.5px}.ridwrap{align-items:center;gap:9px;display:flex}.qr-mini{border-radius:4px;flex:none;width:28px;height:28px}.archbadge{color:var(--brand-d);background:var(--brand-bg);text-transform:capitalize;border-radius:6px;margin-right:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.row-withdrawn{opacity:.6}.actions-cell{white-space:nowrap}.records-toolbar{align-items:center;gap:12px;margin-bottom:14px;display:flex}.records-toolbar .search{border:1px solid var(--line2);max-width:420px;font:inherit;color:var(--ink);border-radius:9px;flex:1;padding:9px 12px;font-size:13.5px}.records-toolbar .search:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-bg);outline:none}.records-toolbar select{border:1px solid var(--line2);font:inherit;color:var(--ink);background:#fff;border-radius:9px;padding:9px 10px;font-size:13px}.show-more{justify-content:center;margin-top:16px;display:flex}.pager{justify-content:center;align-items:center;gap:8px;margin-top:18px;display:flex}.pager-info{color:var(--ink-soft);text-align:center;font-variant-numeric:tabular-nums;min-width:120px;font-size:13px;font-weight:600}.empty{text-align:center;color:var(--muted);background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:64px 20px}.empty-icon{opacity:.4;font-size:34px}.empty b{color:var(--ink);margin:10px 0 4px;font-size:15px;display:block}.empty p{margin:0;font-size:13px}.form-card{background:var(--panel);border:1px solid var(--line2);border-radius:14px;max-width:560px;padding:22px}.field{margin-bottom:16px;display:block}.field-label{margin-bottom:7px;font-size:13px;font-weight:600;display:block}.field input{border:1px solid var(--line2);width:100%;font-size:14px;font-family:var(--sans);color:var(--ink);border-radius:10px;padding:11px 13px}.field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-bg);outline:none}.form-note{color:var(--warn);background:var(--warnbg);border:1px solid #efdcb8;border-radius:9px;margin-bottom:16px;padding:9px 12px;font-size:12.5px}.err-banner{background:var(--errbg);color:var(--err);border:1px solid #f0c9c4;border-radius:10px;margin-top:14px;padding:10px 13px;font-size:13px}.result-card{border-radius:12px;margin-top:16px;padding:14px 16px;font-size:13px}.result-card.ok{background:var(--okbg);color:#0c5;border:1px solid #bfe6d2}.result-card.ok b{color:var(--ok)}.result-card ul{color:var(--ink-soft);margin:8px 0 0;padding-left:18px;line-height:1.7}.result-card code{font-family:var(--mono);color:var(--ink)}.result-card .warn{color:var(--warn)}.btn.danger.sm,.btn.sm{padding:7px 12px;font-size:12.5px}.card-title{margin:0 0 14px;font-size:14px}.section-title{margin:30px 0 12px;font-size:15px}.empty.small{padding:26px}.empty.small b{margin:0 0 3px}.operator-panel{background:#fffdf8;border:1px solid #e7cda0;border-radius:14px;margin-top:30px;padding:16px 18px}.operator-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.operator-badge{background:var(--ink);color:#fff;letter-spacing:.02em;border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700}.version-row{background:var(--panel);border:1px solid var(--line2);border-radius:12px;align-items:center;gap:22px;margin-bottom:22px;padding:16px 20px;display:flex}.version-chip{border-right:1px solid var(--line);flex-direction:column;padding-right:22px;display:flex}.vlabel{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:700}.vnum{color:var(--brand-d);letter-spacing:-.5px;font-size:26px;font-weight:800}.version-meta{color:var(--ink-soft);font-size:13px;line-height:1.7}.version-meta .k{width:92px;color:var(--muted);font-weight:600;display:inline-block}.version-picker{flex-direction:column;gap:4px;margin-left:auto;display:flex}.version-picker .k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:700}.version-picker select{border:1px solid var(--line2);font:inherit;color:var(--ink);background:#fff;border-radius:8px;padding:7px 10px;font-size:13px}.consent-body h2{color:var(--ink);margin:0 0 12px;font-size:17px}.consent-body p{margin:0 0 10px}.consent-body ul{margin:0 0 10px;padding-left:20px}.consent-body li{margin-bottom:6px}.consent-doc{background:var(--panel);border:1px solid var(--line2);max-width:760px;color:var(--ink-soft);border-radius:12px;padding:36px 44px;font-size:14px;line-height:1.6}.consent-doc-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:center;margin-bottom:22px;padding-bottom:12px;display:flex}.consent-doc-head .wordmark{font-size:18px}.consent-doc-meta{color:var(--muted);text-align:right;font-size:11.5px;line-height:1.5}.consent-doc h2{color:var(--ink);margin:0 0 12px;font-size:17px}.consent-doc ul{padding-left:20px}.consent-doc li{margin-bottom:6px}.scope-line{margin-top:14px}.sign-grid{grid-template-columns:1fr 1fr;gap:20px 28px;margin:28px 0 18px;display:grid}.sign-field.wide{grid-column:1/-1}.sign-field span{color:var(--muted);font-size:11.5px;font-weight:600}.sign-line{border-bottom:1px solid var(--ink-soft);height:30px}.rid-slot{border:1px dashed var(--line2);border-radius:10px;justify-content:space-between;align-items:center;margin-top:8px;padding:12px 16px;display:flex}.rid-slot span{color:var(--muted);font-size:12px}.rid-box{font-family:var(--mono);letter-spacing:1.5px;color:var(--ink);font-size:16px}.consent-doc-foot{border-top:1px solid var(--line);color:var(--muted);margin-top:22px;padding-top:12px;font-size:11px}.print-only{display:none}@media print{.topbar,.sidenav,.no-print{display:none!important}.content{padding:0;overflow:visible}.page-head,.version-row{display:none!important}body{background:#fff}.consent-doc{border:none;border-radius:0;max-width:none;padding:0}.print-only{display:block!important}.print-sheet{color:#111;padding:8px}.print-head{border-bottom:2px solid #111;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:10px;display:flex}.print-head .wordmark{font-size:20px}.print-meta{text-align:right;color:#333;font-size:11px}.print-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.print-card{break-inside:avoid;border:1px solid #ccc;border-radius:10px;align-items:center;gap:12px;padding:10px;display:flex}.print-qr{flex:none;width:84px;height:84px}.print-qr.placeholder{background:#eee}.print-info{min-width:0}.print-file{font-size:12px;font-weight:700}.print-rid{font-family:var(--mono);letter-spacing:1px;margin:3px 0;font-size:15px;font-weight:700}.print-sub{color:#555;text-transform:capitalize;font-size:11px}.print-foot{color:#555;border-top:1px solid #ccc;margin-top:16px;padding-top:8px;font-size:10.5px}}
