:root{
  --bg:#f5f7fb;--panel:#fff;--panel-soft:#f8fafc;--text:#172033;--muted:#6d7890;--line:#e4e9f1;
  --brand:#335cff;--brand-dark:#2447d8;--brand-soft:#eef2ff;--good:#11875d;--good-soft:#e9f8f2;
  --bad:#c33a4c;--bad-soft:#fff0f2;--warn:#a4670d;--warn-soft:#fff7e7;--shadow:0 12px 32px rgba(30,46,80,.07);
  --sidebar:#111827;--sidebar-soft:#1b2434;--radius:16px;
}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.muted{color:var(--muted)}.fine-print{font-size:.78rem;color:var(--muted);line-height:1.55}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.69rem;font-weight:800;color:#8a95aa}.version{font-size:.69rem;color:#7f8aa0}

/* Shared controls */
.button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:40px;border-radius:10px;padding:.68rem 1rem;border:1px solid transparent;font-weight:750;font-size:.86rem;transition:.18s ease;white-space:nowrap}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--brand);color:#fff;box-shadow:0 6px 16px rgba(51,92,255,.18)}.button-primary:hover{background:var(--brand-dark)}.button-soft{background:#fff;border-color:var(--line);color:#39445b}.button-soft:hover{border-color:#cdd5e4;background:#fbfcfe}.button-danger{background:var(--bad);color:#fff}.button-full{width:100%}.button-large{min-height:48px;padding:.8rem 1.25rem}.button-light{background:#fff;color:#172033}.button-ghost{border-color:#dce2ed;background:#fff}
.link-button,.table-action{border:0;background:none;padding:0;font-weight:750;color:#4356b5;font-size:.82rem}.link-button.danger{color:var(--bad)}.table-action:hover,.link-button:hover{text-decoration:underline}.count-pill,.role-pill,.mini-tag,.status,.placeholder-badge,.ocr-mini{display:inline-flex;align-items:center;width:max-content;border-radius:999px;font-size:.72rem;font-weight:750;line-height:1;padding:.43rem .62rem}.count-pill{background:var(--brand-soft);color:var(--brand)}.role-pill,.mini-tag{background:#f1f4f8;color:#536078}.status{background:#eef1f6;color:#536078}.status-good{background:var(--good-soft);color:var(--good)}.status-bad{background:var(--bad-soft);color:var(--bad)}.ocr-success{background:var(--good-soft);color:var(--good)}.ocr-partial{background:var(--warn-soft);color:var(--warn)}.ocr-failed,.ocr-unavailable{background:var(--bad-soft);color:var(--bad)}

/* Portal shell */
.portal-body{background:var(--bg);min-height:100vh}.portal-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);padding:24px 18px 18px;display:flex;flex-direction:column;color:#fff;z-index:20}.sidebar-top{padding:0 6px 22px}.brand{display:inline-flex;align-items:center;gap:.7rem;font-weight:850;font-size:1.15rem;letter-spacing:-.02em}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:1.1rem}.brand-portal{color:#fff}.sidebar-role{display:inline-flex;margin:14px 0 0 42px;color:#9ca7ba;background:rgba(255,255,255,.06);padding:.35rem .55rem;border-radius:8px;font-size:.67rem;font-weight:700}.sidebar-nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#aeb7c8;font-weight:650;font-size:.86rem}.nav-item:hover{background:rgba(255,255,255,.055);color:#fff}.nav-item.active{background:#fff;color:#172033;box-shadow:0 7px 18px rgba(0,0,0,.18)}.nav-icon{width:22px;text-align:center;font-size:1rem}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.09);padding:16px 6px 0;display:grid;gap:12px}.user-chip{display:flex;align-items:center;gap:10px;min-width:0}.avatar{width:36px;height:36px;border-radius:10px;background:#2a3547;display:grid;place-items:center;font-weight:800;font-size:.8rem}.user-chip-copy{min-width:0;display:grid;gap:2px}.user-chip-copy strong,.user-chip-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip-copy strong{font-size:.78rem}.user-chip-copy small{font-size:.66rem;color:#8792a5}.sidebar-logout{background:transparent;border:0;color:#aeb7c8;padding:0;font-size:.76rem;font-weight:700;text-align:left}.sidebar-logout:hover{color:#fff}.portal-main{min-width:0;padding:0 30px 50px}.topbar{height:104px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);margin-bottom:24px}.topbar-title-wrap{display:flex;align-items:center;gap:12px}.topbar h1{font-size:1.65rem;letter-spacing:-.035em;margin:.18rem 0 0}.topbar-actions{display:flex;align-items:center;gap:8px}.mobile-menu{display:none;border:1px solid var(--line);background:#fff;border-radius:9px;width:38px;height:38px}.page-content{display:grid;gap:20px;max-width:1600px;margin:0 auto}.messages{display:grid;gap:8px;margin:0 auto 18px;max-width:1600px}.message{padding:11px 14px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:.84rem}.message.success{border-color:#c8ebdd;background:var(--good-soft);color:#176b50}.message.error{border-color:#f2ccd3;background:var(--bad-soft);color:#9f3140}.message.warning{border-color:#f0dfb8;background:var(--warn-soft);color:#865b12}

/* Panels, tables, forms */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line)}.panel-head h2,.panel-head h3{margin:.22rem 0 .2rem;letter-spacing:-.025em}.panel-head h2{font-size:1.08rem}.panel-head h3{font-size:.98rem}.panel-head p{margin:0;color:var(--muted);font-size:.8rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{background:#fafbfd;color:#7f899b;text-transform:uppercase;letter-spacing:.055em;font-size:.64rem;text-align:left;font-weight:800}th,td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdff}td{font-size:.8rem;color:#3a455a}td strong{display:block;color:var(--text);font-size:.82rem}td small{display:block;color:var(--muted);margin-top:3px;font-size:.7rem}.actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;white-space:nowrap}.empty{padding:28px!important;text-align:center;color:var(--muted)}.tag-stack{display:flex;flex-wrap:wrap;gap:5px}.compact-filter select{min-width:180px}
.stack-form{display:grid;gap:16px}.stack-form label{display:grid;gap:7px;font-size:.78rem;font-weight:750;color:#4d5870}.stack-form input,.stack-form select,.stack-form textarea,.compact-filter select,.reject-form input,.billing-internal input{width:100%;border:1px solid #d9e0ea;background:#fff;border-radius:10px;padding:.72rem .82rem;color:var(--text);outline:none}.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.compact-filter select:focus,.reject-form input:focus{border-color:#9bb0ff;box-shadow:0 0 0 3px rgba(51,92,255,.09)}.stack-form ul.errorlist{margin:0;padding-left:17px;color:var(--bad);font-size:.72rem}.form-card{padding:22px}.form-page{max-width:760px;margin:0 auto;width:100%;display:grid;gap:16px}.wide-form-page{max-width:1100px}.form-page-intro{padding:4px 2px}.form-page-intro h2{font-size:1.35rem;letter-spacing:-.03em;margin:.3rem 0 .45rem}.form-page-intro p{color:var(--muted);font-size:.88rem;line-height:1.55;max-width:680px}.form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.form-note,.callout{display:grid;gap:4px;padding:12px 14px;border-radius:10px;background:var(--brand-soft);color:#43528c;font-size:.75rem;line-height:1.5}.callout.error{background:var(--bad-soft);color:#9f3140}.upload-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.diagnostic-card{padding:20px}.diagnostic-card>p{color:var(--muted);font-size:.8rem;line-height:1.55}.diagnostic-status{display:flex;align-items:center;gap:8px;margin:11px 0}.diagnostic-status.good{color:var(--good)}.diagnostic-status.bad{color:var(--bad)}.diagnostic-dot{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px currentColor;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 13%,transparent)}.diagnostic-card dl,.meta-list{display:grid;gap:0;margin:16px 0}.diagnostic-card dl div,.meta-list div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted);font-size:.72rem}dd{margin:0;font-size:.72rem;font-weight:700;text-align:right;max-width:70%;overflow-wrap:anywhere}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.67rem}
.copy-field{display:flex;align-items:center;gap:6px;min-width:300px}.copy-field input{min-width:0;flex:1;border:1px solid var(--line);background:#f8fafc;border-radius:8px;padding:.55rem .65rem;font-size:.68rem;color:#69748a}.copy-button{border:1px solid #d8deea;background:#fff;border-radius:8px;padding:.55rem .65rem;color:#45516a;font-size:.7rem;font-weight:750}.copy-button.copied{background:var(--good-soft);border-color:#c3e8d8;color:var(--good)}

/* Dashboard and entity cards */
.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.kpi span{display:block;color:var(--muted);font-size:.72rem;font-weight:700}.kpi strong{display:block;font-size:1.9rem;letter-spacing:-.05em;margin:6px 0 3px}.kpi small{color:#9aa3b3;font-size:.68rem}.kpi.accent{background:var(--brand);border-color:var(--brand);color:#fff}.kpi.accent span,.kpi.accent small{color:#dfe5ff}.entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px;padding:18px}.entity-card{border:1px solid var(--line);border-radius:13px;padding:16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;transition:.18s ease}.entity-card:hover{border-color:#cbd4e4;box-shadow:0 8px 20px rgba(35,50,80,.06);transform:translateY(-1px)}.entity-icon{width:42px;height:42px;border-radius:11px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-weight:850}.entity-main{display:grid;gap:4px;min-width:0}.entity-title{display:flex;align-items:center;gap:8px;justify-content:space-between}.entity-main>span,.entity-main>small{color:var(--muted);font-size:.74rem}.entity-arrow{font-size:1.1rem;color:#9aa4b5}.detail-hero{padding:22px;display:flex;justify-content:space-between;gap:24px;align-items:center}.detail-hero h2{margin:.25rem 0 .35rem;letter-spacing:-.03em}.detail-hero p{margin:0;color:var(--muted);font-size:.82rem}.detail-meta{display:flex;gap:10px}.detail-meta span{display:grid;gap:3px;min-width:145px;padding:12px 14px;border:1px solid var(--line);background:#fafbfd;border-radius:11px}.detail-meta small{color:var(--muted);font-size:.65rem}.detail-meta strong{font-size:.82rem}

/* Prescription workspace */
.prescription-header{padding:19px 21px;display:flex;align-items:center;justify-content:space-between;gap:20px}.prescription-header h2{margin:.45rem 0 .25rem;font-size:1.25rem;letter-spacing:-.03em}.prescription-header p{margin:0;color:var(--muted);font-size:.8rem}.header-badges{display:flex;gap:6px;align-items:center}.ocr-summary{min-width:270px;border:1px solid var(--line);background:#fafbfd;border-radius:12px;padding:12px 14px;color:#526079;display:grid;gap:3px}.ocr-summary.ocr-success{border-color:#c8ebdd;background:var(--good-soft);color:#176b50}.ocr-summary.ocr-partial{border-color:#ecd9ad;background:var(--warn-soft);color:#865b12}.ocr-summary.ocr-failed,.ocr-summary.ocr-unavailable{border-color:#f0cbd1;background:var(--bad-soft);color:#9f3140}.ocr-summary-top{display:flex;align-items:center;gap:8px}.ocr-summary span,.ocr-summary small{font-size:.7rem}.prescription-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:start}.source-column{display:grid;gap:14px;position:sticky;top:18px}.modern-source-preview object{display:block;width:100%;height:520px;border:0;border-radius:0 0 15px 15px;background:#f4f6fa}.ocr-detail-card{padding-bottom:16px}.ocr-detail-card .panel-head{padding-bottom:12px}.ocr-detail-card .meta-list,.ocr-detail-card .callout,.ocr-detail-card form,.ocr-detail-card .fine-print{margin-left:17px;margin-right:17px}.digital-prescription-panel{min-width:0;padding-bottom:0}.form-toolbar{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}.form-toolbar h3{margin:.25rem 0 0;font-size:.95rem}.page-tabs{display:flex;background:#f0f3f8;padding:3px;border-radius:9px}.page-tab{border:0;background:transparent;border-radius:7px;padding:.5rem .72rem;color:#68758b;font-size:.73rem;font-weight:750}.page-tab.active{background:#fff;color:#1e293b;box-shadow:0 2px 7px rgba(25,40,70,.09)}.form-fieldset{border:0;margin:0;padding:0;min-width:0}.m13-fieldset{padding:18px;background:#eef1f6}.m13-canvas{display:none;position:relative;width:min(100%,760px);margin:0 auto;aspect-ratio:839/1191;background:#cbe9f8;box-shadow:0 16px 34px rgba(25,42,70,.16);overflow:hidden}.m13-canvas.active{display:block}.m13-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}.m13-input{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*1%);height:calc(var(--h)*1%);border:0!important;border-radius:2px!important;background:rgba(255,255,255,.03)!important;padding:1px 3px!important;color:#111!important;font-family:Arial,Helvetica,sans-serif!important;font-size:clamp(8px,1.05vw,13px)!important;line-height:1.15;outline:none;resize:none;z-index:3}.m13-input:hover{background:rgba(51,92,255,.04)!important}.m13-input:focus{background:rgba(255,255,255,.88)!important;box-shadow:0 0 0 2px rgba(51,92,255,.85)!important;z-index:6}.m13-input:disabled{opacity:1;-webkit-text-fill-color:#111}.m13-center{text-align:center}.m13-segmented{letter-spacing:.34em;font-weight:700}.m13-date{font-size:clamp(7px,.92vw,11px)!important}.m13-check{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*1%);height:calc(var(--h)*1%);z-index:7;cursor:pointer}.m13-check input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.m13-check span{position:absolute;inset:0;display:grid;place-items:center;color:#111;font-family:Arial,sans-serif;font-size:clamp(12px,2vw,25px);font-weight:900;line-height:1}.m13-check input:checked+span:after{content:"×"}.m13-check:focus-within span{outline:2px solid var(--brand);outline-offset:1px}.m13-treatment-grid{position:absolute;left:7.986%;top:12.846%;width:87.247%;height:51.973%;display:grid;grid-template-rows:repeat(20,1fr);z-index:4}.m13-treatment-row{display:grid;grid-template-columns:14.07% 41.94% 17.22% 26.77%;min-height:0}.m13-treatment-row input{min-width:0;width:100%;height:100%;border:0;background:rgba(255,255,255,.02);padding:0 2px;font-family:Arial,sans-serif;font-size:clamp(6px,.82vw,10px);outline:none;color:#111}.m13-treatment-row input:focus{background:#fff;box-shadow:inset 0 0 0 1.5px var(--brand)}.m13-treatment-row input[type=date]{font-size:clamp(5px,.7vw,9px)}.sticky-form-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:14px 17px;border-top:1px solid var(--line);background:rgba(255,255,255,.96);position:sticky;bottom:0;z-index:10}.sticky-form-actions>div{display:flex;gap:8px}.billing-internal{display:grid;gap:5px;color:var(--muted);font-size:.68rem;font-weight:700}.billing-internal input{width:180px;padding:.6rem .7rem}.locked-note{display:flex;gap:9px;align-items:center;padding:13px 17px;border-top:1px solid var(--line);background:#fafbfd;color:#657188;font-size:.76rem}.locked-note strong{color:#2e3a50}.review-reason{margin-top:10px;padding:9px 11px;background:var(--bad-soft);border-radius:9px;color:#9f3140;font-size:.74rem}.review-detail-actions{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.review-detail-actions h2{margin:.3rem 0 .35rem;font-size:1.05rem}.review-detail-actions p{margin:0;color:var(--muted);font-size:.78rem}.review-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.reject-form{display:flex;gap:7px}.reject-form input{min-width:220px}

/* Review / billing */
.review-cards{display:grid;gap:10px;padding:16px}.review-card{border:1px solid var(--line);border-radius:12px;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:20px}.review-card h3{font-size:.92rem;margin:.5rem 0 .25rem}.review-card p{margin:0;color:var(--muted);font-size:.75rem}.review-card-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.billing-banner{padding:20px 22px;border-radius:var(--radius);background:linear-gradient(135deg,#111827,#233047);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px}.billing-banner h2{margin:.3rem 0 .35rem;font-size:1.15rem}.billing-banner p{margin:0;color:#c6cfdd;font-size:.78rem;max-width:750px;line-height:1.55}.placeholder-badge{background:rgba(255,255,255,.1);color:#fff}

/* Auth and marketing */
.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#e9efff,transparent 34%),#f7f9fc;padding:24px}.auth-shell{width:min(430px,100%);display:grid;gap:18px}.auth-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:28px}.auth-card h1{margin:.35rem 0 .4rem;letter-spacing:-.04em}.auth-link{display:block;margin-top:16px;text-align:center;font-size:.77rem;color:var(--brand);font-weight:750}.auth-note{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted);text-align:center}.marketing-body{background:#fff}.marketing-nav{height:78px;display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:auto;padding:0 24px}.marketing-nav nav{display:flex;align-items:center;gap:24px;font-size:.82rem;font-weight:700}.hero{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.08fr .92fr;gap:50px;align-items:center;padding:74px 24px 82px}.pill{display:inline-flex;background:var(--brand-soft);color:var(--brand);font-size:.72rem;font-weight:800;border-radius:999px;padding:.48rem .7rem}.hero h1{font-size:3.4rem;line-height:1.02;letter-spacing:-.065em;margin:18px 0}.hero-copy>p{color:var(--muted);line-height:1.65;font-size:1rem;max-width:650px}.hero-actions{display:flex;gap:10px;margin:24px 0}.proof{display:grid;gap:7px;color:#5f6c82;font-size:.78rem}.proof strong{color:var(--text);margin-bottom:3px}.mock-window{border:1px solid var(--line);border-radius:18px;padding:10px;background:#fff;box-shadow:0 24px 60px rgba(40,55,90,.14)}.mock-top{display:flex;gap:5px;padding:4px 2px 10px}.mock-top span{width:8px;height:8px;border-radius:50%;background:#dfe4ec}.mock-layout{background:#f4f6fa;border-radius:12px;display:grid;grid-template-columns:100px 1fr;min-height:360px;overflow:hidden}.mock-side{background:#151d2b;color:#fff;padding:18px 12px;display:grid;align-content:start;gap:15px;font-size:.72rem}.mock-side i{height:10px;background:#2d3748;border-radius:5px}.mock-content{padding:28px}.mock-content h3{font-size:1.25rem}.mock-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mock-kpis b{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;font-size:1.25rem}.mock-kpis small{display:block;font-size:.55rem;color:var(--muted);margin-top:5px}.mock-table{display:grid;gap:8px;margin-top:18px}.mock-table span{height:34px;background:#fff;border-radius:8px}.feature-grid{max-width:1180px;margin:auto;padding:30px 24px 80px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-grid article{border:1px solid var(--line);border-radius:16px;padding:24px}.feature-grid h2{font-size:1.05rem}.feature-grid p{color:var(--muted);font-size:.82rem;line-height:1.6}.feature-icon{width:38px;height:38px;border-radius:10px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;margin-bottom:18px}.cta{max-width:1132px;margin:0 auto 55px;background:var(--brand);color:#fff;border-radius:20px;padding:34px 38px;display:flex;align-items:center;justify-content:space-between;gap:22px}.cta h2{margin-bottom:.4rem}.cta p{margin:0;color:#dfe5ff}.marketing-footer{max-width:1180px;margin:auto;padding:28px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}

@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.prescription-layout{grid-template-columns:280px minmax(0,1fr)}.upload-layout{grid-template-columns:1fr}.diagnostic-card{order:-1}.hero{grid-template-columns:1fr}.hero-product{max-width:760px}}
@media(max-width:900px){.portal-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-265px;width:248px;transition:left .2s ease}.sidebar.open{left:0;box-shadow:14px 0 34px rgba(0,0,0,.25)}.portal-main{padding:0 18px 40px}.mobile-menu{display:block}.prescription-layout{grid-template-columns:1fr}.source-column{position:relative;top:auto;grid-template-columns:1fr 1fr}.modern-source-preview object{height:430px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.detail-hero,.review-detail-actions{align-items:flex-start;flex-direction:column}.topbar{height:94px}.topbar h1{font-size:1.4rem}}
@media(max-width:680px){.portal-main{padding:0 12px 30px}.topbar{gap:8px}.topbar-actions .button{padding:.58rem .7rem;font-size:.73rem}.panel-head{padding:16px;flex-direction:column}.kpi-grid{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:14px}.entity-grid{grid-template-columns:1fr;padding:12px}.entity-card{padding:13px}.source-column{grid-template-columns:1fr}.modern-source-preview object{height:380px}.m13-fieldset{padding:8px;overflow:auto}.m13-canvas{min-width:620px}.form-toolbar{align-items:flex-start;flex-direction:column}.sticky-form-actions{align-items:stretch;flex-direction:column}.sticky-form-actions>div{justify-content:flex-end}.billing-internal input{width:100%}.detail-meta{width:100%;flex-direction:column}.detail-meta span{min-width:0}.review-card,.billing-banner{align-items:flex-start;flex-direction:column}.review-card-actions,.review-actions{justify-content:flex-start}.reject-form{width:100%;flex-direction:column}.reject-form input{min-width:0}.copy-field{min-width:240px}.marketing-nav nav>a:not(.button){display:none}.hero{padding-top:45px}.hero h1{font-size:2.5rem}.feature-grid{grid-template-columns:1fr}.cta{margin-left:16px;margin-right:16px;align-items:flex-start;flex-direction:column}}

/* --- Workflow refinement: OCR progress, audit, training data, calibration --- */
.nav-section-label{margin:16px 12px 5px;color:#657188;text-transform:uppercase;letter-spacing:.12em;font-size:.58rem;font-weight:850}
.button.is-processing{cursor:progress;transform:none!important;opacity:.92}.button-spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:button-spin .7s linear infinite}.button:disabled{cursor:not-allowed;opacity:.72;transform:none!important}@keyframes button-spin{to{transform:rotate(360deg)}}
.source-panel-head{align-items:center}.source-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.source-actions .table-action{white-space:nowrap}.prescription-layout.compare-mode{grid-template-columns:minmax(420px,1fr) minmax(520px,1fr);gap:16px}.prescription-layout.compare-mode .ocr-detail-card{display:none}.prescription-layout.compare-mode .modern-source-preview object{height:calc(100vh - 205px);min-height:680px}.prescription-layout.compare-mode .source-column{top:12px}.prescription-layout.compare-mode .m13-canvas{width:min(100%,780px)}
.form-action-copy{display:flex;align-items:flex-end;gap:16px;justify-content:flex-end}.form-action-copy>small{max-width:390px;color:var(--muted);font-size:.68rem;line-height:1.45;text-align:right}.action-buttons{display:flex;gap:8px;align-items:center;justify-content:flex-end}.training-actions>div:first-child{display:grid;gap:3px}.training-actions>div:first-child strong{font-size:.78rem}.training-actions>div:first-child small{color:var(--muted);font-size:.68rem}
/* The original overlay coordinates were visually a touch low in browsers because of input line boxes. */
.m13-input{top:calc(var(--y)*1% - 2px)!important;padding-top:0!important;padding-bottom:0!important}.m13-check{top:calc(var(--y)*1% - 2px)!important}.m13-treatment-grid{top:calc(12.846% - 2px)!important}
.pdf-modal[hidden]{display:none!important}.modal-open{overflow:hidden}.pdf-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px}.pdf-modal-backdrop{position:absolute;inset:0;background:rgba(11,18,32,.72);backdrop-filter:blur(4px)}.pdf-modal-panel{position:relative;width:min(1320px,96vw);height:min(930px,94vh);background:#fff;border-radius:16px;box-shadow:0 30px 90px rgba(0,0,0,.32);overflow:hidden;display:grid;grid-template-rows:auto 1fr}.pdf-modal-panel header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 15px;border-bottom:1px solid var(--line)}.pdf-modal-panel header>div{display:flex;gap:8px}.pdf-modal-panel object{width:100%;height:100%;border:0;background:#eef1f6}

/* Audit log */
.audit-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.audit-filters select{min-width:180px}.audit-stream{padding:10px 22px 20px}.audit-entry{display:grid;grid-template-columns:82px 16px minmax(0,1fr);gap:12px;position:relative;padding:14px 0}.audit-entry:not(:last-child):before{content:"";position:absolute;left:96px;top:37px;bottom:-14px;width:1px;background:var(--line)}.audit-time{display:grid;align-content:start;gap:2px;text-align:right;padding-top:2px}.audit-time strong{font-size:.7rem;color:#3e4a60}.audit-time span{font-size:.65rem;color:var(--muted)}.audit-marker{width:10px;height:10px;margin-top:5px;border:2px solid #fff;border-radius:50%;background:var(--brand);box-shadow:0 0 0 2px #cfd8ff;z-index:1}.audit-body{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff}.audit-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.audit-entry-head h3{font-size:.86rem;margin:.45rem 0 .25rem}.audit-actor{font-size:.7rem;color:var(--muted);white-space:nowrap}.audit-context{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:.7rem;color:var(--muted)}.audit-context a{color:#4356b5;font-weight:750}.audit-details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.audit-details summary{cursor:pointer;font-size:.7rem;color:#536078;font-weight:750}.audit-details.compact pre{white-space:pre-wrap;word-break:break-word;font-size:.67rem;background:#f7f9fc;border-radius:8px;padding:10px}.audit-change-table{display:grid;margin-top:9px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.audit-change-head,.audit-change-row{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1fr) minmax(0,1fr);gap:0}.audit-change-head{background:#f8fafc;color:#7c879a;text-transform:uppercase;letter-spacing:.05em;font-size:.58rem;font-weight:800}.audit-change-head span,.audit-change-row>*{padding:8px 10px;border-right:1px solid var(--line)}.audit-change-head span:last-child,.audit-change-row>*:last-child{border-right:0}.audit-change-row{border-top:1px solid var(--line);font-size:.68rem}.audit-change-row strong{font-size:.68rem}.audit-change-row span{white-space:pre-wrap;word-break:break-word}.empty-state{padding:45px 20px;text-align:center;display:grid;gap:6px;color:var(--muted)}.empty-state strong{color:var(--text)}.pagination{padding:13px 18px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.72rem;color:var(--muted)}.pagination>div{display:flex;gap:7px}

/* Training data */
.training-hero{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#fff,#f7f9ff)}.training-hero h2{margin:.35rem 0 .4rem;font-size:1.15rem}.training-hero p{max-width:850px;margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}.training-stats{display:flex;gap:8px}.training-stats>div{min-width:110px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;display:grid;gap:3px}.training-stats strong{font-size:1.25rem}.training-stats span{font-size:.65rem;color:var(--muted)}.reopen-panel{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.reopen-panel h3{margin:.3rem 0 .3rem;font-size:.95rem}.reopen-panel p{margin:0;color:var(--muted);font-size:.75rem}

/* OCR configuration */
.ocr-config-hero{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.ocr-config-hero h2{margin:.35rem 0 .4rem;font-size:1.15rem}.ocr-config-hero p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55;max-width:900px}.ocr-config-hero .diagnostic-status{margin:0;min-width:260px}.ocr-config-hero .diagnostic-status>div{display:grid;gap:2px}.ocr-config-hero .diagnostic-status small{font-size:.65rem;font-weight:500}.ocr-config-form{display:grid;gap:18px}.ocr-config-grid{display:grid;grid-template-columns:minmax(560px,1.35fr) minmax(320px,.65fr);gap:18px;align-items:start}.calibration-preview-panel{overflow:hidden;position:sticky;top:14px}.calibration-stage-wrap{padding:18px;background:#edf1f7}.calibration-stage{display:none;position:relative;width:min(100%,760px);margin:auto;aspect-ratio:839/1191;box-shadow:0 15px 35px rgba(25,42,70,.16);background:#dbe9f3;overflow:hidden}.calibration-stage.active{display:block}.calibration-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.calibration-overlay-layer{position:absolute;inset:0;z-index:3}.calibration-zone{position:absolute;border:1px solid rgba(51,92,255,.52);background:rgba(51,92,255,.08);padding:0;border-radius:2px;min-width:3px;min-height:3px}.calibration-zone:hover{background:rgba(51,92,255,.16);border-color:rgba(51,92,255,.9)}.calibration-zone-checkbox{border-color:rgba(17,140,103,.68);background:rgba(17,140,103,.10)}.calibration-zone-table{border-color:rgba(187,126,20,.72);background:rgba(187,126,20,.06)}.calibration-zone.selected{border:2px solid #e64562;background:rgba(230,69,98,.12);z-index:4}.calibration-zone.disabled{opacity:.25;border-style:dashed;background:transparent}.ocr-config-controls{display:grid;gap:14px}.config-card{overflow:hidden}.config-card .panel-head{padding:15px 17px}.config-card-body{padding:16px 17px;display:grid;gap:12px}.form-label{display:grid;gap:6px}.form-label>span{font-size:.68rem;color:#556177;font-weight:750}.form-label input,.form-label select,.config-card input,.config-card select{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:.62rem .7rem;color:var(--text)}.form-label input[type=file]{padding:.48rem}.config-grid-fields{grid-template-columns:1fr 1fr}.config-hint{margin:0 17px 16px;padding:10px 11px;border-radius:9px;background:#f7f9fc;color:var(--muted);font-size:.67rem;line-height:1.45}.toggle-row{display:flex;align-items:center;gap:9px;font-size:.72rem;color:#47536a}.toggle-row input{width:auto}.compact-calibration{gap:9px}.field-calibration-card{border-color:#d9dfff}.ocr-config-actions{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;bottom:10px;z-index:12;box-shadow:0 14px 40px rgba(32,48,83,.14)}.ocr-config-actions>div:first-child{display:grid;gap:3px}.ocr-config-actions strong{font-size:.8rem}.ocr-config-actions span{font-size:.68rem;color:var(--muted)}.ocr-config-actions>div:last-child{display:flex;gap:8px}.test-result-panel{overflow:hidden}.test-result-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;padding:16px}.raw-ocr{border:1px solid var(--line);border-radius:10px;padding:12px;height:max-content}.raw-ocr summary{cursor:pointer;font-size:.72rem;font-weight:750}.raw-ocr pre{white-space:pre-wrap;word-break:break-word;font-size:.64rem;line-height:1.45;max-height:520px;overflow:auto;background:#f7f9fc;padding:10px;border-radius:8px}

@media(max-width:1250px){.prescription-layout.compare-mode{grid-template-columns:1fr}.prescription-layout.compare-mode .source-column{position:relative;top:auto}.prescription-layout.compare-mode .modern-source-preview object{height:620px}.ocr-config-grid{grid-template-columns:1fr}.calibration-preview-panel{position:relative;top:auto}.ocr-config-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.field-calibration-card{grid-column:1/-1}}
@media(max-width:900px){.source-panel-head{align-items:flex-start}.source-actions{justify-content:flex-start}.form-action-copy{align-items:stretch;flex-direction:column}.form-action-copy>small{text-align:left;max-width:none}.training-hero,.ocr-config-hero,.reopen-panel{align-items:flex-start;flex-direction:column}.audit-entry{grid-template-columns:66px 14px minmax(0,1fr)}.audit-entry:not(:last-child):before{left:78px}.test-result-grid{grid-template-columns:1fr}.ocr-config-actions{position:relative;bottom:auto;align-items:flex-start;flex-direction:column}.ocr-config-controls{grid-template-columns:1fr}.field-calibration-card{grid-column:auto}}
@media(max-width:680px){.source-actions{gap:8px}.source-actions .table-action{font-size:.72rem}.action-buttons{flex-wrap:wrap}.pdf-modal{padding:6px}.pdf-modal-panel{width:100%;height:98vh;border-radius:10px}.pdf-modal-panel header{align-items:flex-start;flex-direction:column}.audit-filters{width:100%}.audit-filters select{width:100%}.audit-stream{padding:8px 12px 16px}.audit-entry{grid-template-columns:1fr;gap:5px}.audit-entry:before,.audit-marker{display:none}.audit-time{text-align:left;display:flex;gap:6px}.audit-entry-head{flex-direction:column}.audit-change-head,.audit-change-row{grid-template-columns:1fr}.audit-change-head span,.audit-change-row>*{border-right:0;border-bottom:1px solid var(--line)}.training-stats{width:100%}.training-stats>div{flex:1;min-width:0}.ocr-config-grid{display:block}.calibration-preview-panel{margin-bottom:14px}.calibration-stage-wrap{padding:8px}.config-grid-fields{grid-template-columns:1fr}.ocr-config-actions>div:last-child{width:100%;flex-direction:column}.ocr-config-actions .button{width:100%}.pagination{align-items:flex-start;flex-direction:column}}

/* OCR configurator guidance + automatic registration */
.ocr-explainer{overflow:hidden}.ocr-step-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 20px 20px}.ocr-step-grid article{display:flex;gap:11px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcff}.ocr-step-number{width:27px;height:27px;flex:0 0 27px;display:grid;place-items:center;border-radius:50%;background:#edf1ff;color:#4254be;font-size:.68rem;font-weight:850}.ocr-step-grid strong{display:block;font-size:.75rem;margin-bottom:4px}.ocr-step-grid p{margin:0;color:var(--muted);font-size:.66rem;line-height:1.48}.calibration-panel-head{align-items:flex-start}.calibration-toolbar{display:grid;justify-items:end;gap:8px}.preview-mode-tabs{display:flex;padding:3px;border:1px solid var(--line);background:#f7f9fc;border-radius:9px}.preview-mode-tab{border:0;background:transparent;color:#69758a;padding:.42rem .65rem;border-radius:7px;font-size:.64rem;font-weight:750;cursor:pointer}.preview-mode-tab.active{background:#fff;color:#2f3c56;box-shadow:0 1px 5px rgba(30,45,72,.11)}.preview-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 16px 12px;border-top:1px solid var(--line);font-size:.62rem;color:var(--muted)}.preview-legend>span{display:flex;align-items:center;gap:6px}.legend-zone{width:14px;height:9px;border:1px solid rgba(51,92,255,.7);background:rgba(51,92,255,.11);border-radius:2px}.legend-zone.checkbox{border-color:rgba(17,140,103,.7);background:rgba(17,140,103,.10)}.legend-zone.selected{border:2px solid #e64562;background:rgba(230,69,98,.12)}.legend-line{width:17px;height:0;border-top:2px solid #285cf6}.calibration-preview-raw .calibration-overlay-layer{display:none}.calibration-preview-raw .calibration-stage>img{object-fit:contain;background:#eef1f6}.label-with-help{display:flex;align-items:center;gap:6px;min-width:0}.info-bubble{position:relative;display:inline-grid;place-items:center;flex:0 0 17px;width:17px;height:17px;border-radius:50%;background:#eef2ff;color:#475ac7;font-size:.59rem;line-height:1;cursor:help;outline:none}.info-bubble>b{font:800 .59rem/1 system-ui,sans-serif}.info-tooltip{position:absolute;z-index:50;right:-8px;top:calc(100% + 8px);width:min(290px,72vw);padding:10px 11px;border-radius:9px;background:#202a3c;color:#fff;font-size:.64rem;font-weight:500;line-height:1.48;box-shadow:0 10px 28px rgba(15,25,43,.24);opacity:0;visibility:hidden;transform:translateY(-3px);transition:.14s ease;pointer-events:none}.info-tooltip:before{content:"";position:absolute;right:12px;top:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #202a3c}.info-bubble:hover .info-tooltip,.info-bubble:focus .info-tooltip,.info-bubble:focus-within .info-tooltip{opacity:1;visibility:visible;transform:none}.field-help{color:var(--muted);font-size:.61rem;line-height:1.4}.prominent-toggle{align-items:flex-start;padding:10px 11px;border:1px solid #dfe5ff;border-radius:10px;background:#fafbff}.prominent-toggle>span:nth-of-type(1){display:grid;gap:2px;flex:1}.prominent-toggle strong{font-size:.7rem}.prominent-toggle small{font-size:.61rem;color:var(--muted);line-height:1.35}.prominent-toggle input{margin-top:2px}.alignment-results{display:grid;gap:8px;padding-top:3px}.mini-section-title{text-transform:uppercase;letter-spacing:.06em;color:#7c879a;font-size:.58rem;font-weight:850}.alignment-result{padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;display:grid;gap:7px}.alignment-result.good{border-color:#cfe8df;background:#fbfffd}.alignment-result.warn{border-color:#eadfbd;background:#fffdf8}.alignment-result-head{display:flex;align-items:center;justify-content:space-between;gap:9px}.alignment-result-head strong{font-size:.7rem}.status-pill{display:inline-flex;padding:.22rem .42rem;border-radius:999px;font-size:.56rem;font-weight:800}.status-good{background:#e9f7f1;color:#24725b}.status-warn{background:#fbf2d9;color:#84651c}.alignment-metrics{display:flex;gap:9px;flex-wrap:wrap;font-size:.59rem;color:var(--muted)}.alignment-metrics strong{color:var(--text)}.alignment-result>small{font-size:.59rem;color:var(--muted);line-height:1.4}.inline-hint{margin:0!important}.alignment-card{border-color:#dbe2ff}
@media(max-width:1100px){.ocr-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.ocr-step-grid{grid-template-columns:1fr;padding:0 12px 14px}.calibration-panel-head{gap:12px}.calibration-toolbar{justify-items:start}.preview-mode-tabs{width:100%}.preview-mode-tab{flex:1}.info-tooltip{position:fixed;left:16px;right:16px;top:auto;bottom:18px;width:auto}.info-tooltip:before{display:none}}
.ocr-alignment-mini{margin:10px 0;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:#fafbfe;display:grid;gap:7px}.ocr-alignment-mini>strong{font-size:.67rem}.ocr-alignment-mini>div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.62rem;color:var(--muted)}.ocr-alignment-mini>a{font-size:.61rem;font-weight:750;color:#4356b5}
.ocr-system-health{display:grid;gap:8px;min-width:290px}.ocr-system-health .diagnostic-status{margin:0;min-width:0}
@media(max-width:900px){.ocr-system-health{width:100%;min-width:0}}

/* OCR configurator v2: preprocessing-first alignment + direct field manipulation */
.calibration-preview-prepared .calibration-overlay-layer,
.calibration-preview-raw .calibration-overlay-layer{display:none}
.calibration-preview-prepared .calibration-stage>img,
.calibration-preview-raw .calibration-stage>img{object-fit:contain;background:#eef1f6}
.preview-mode-tabs{max-width:100%}.preview-mode-tab{white-space:nowrap}.legend-note{margin-left:auto;color:#56627a!important;font-weight:650}
.calibration-zone{overflow:visible;touch-action:none;cursor:move;user-select:none;-webkit-user-select:none;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}
.calibration-zone.selected{box-shadow:0 0 0 2px rgba(255,255,255,.9),0 0 0 4px rgba(230,69,98,.26)}
.calibration-zone.is-dragging{cursor:grabbing;background:rgba(230,69,98,.17);box-shadow:0 8px 18px rgba(34,45,72,.16)}
.calibration-resize-handle{display:none;position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;border-radius:4px;background:#e64562;border:2px solid #fff;box-shadow:0 1px 6px rgba(31,42,66,.28);cursor:nwse-resize;z-index:8}
.calibration-zone.selected .calibration-resize-handle{display:block}
.field-calibration-sticky{position:sticky;top:14px;z-index:9;border-color:#cfd7ff;box-shadow:0 16px 38px rgba(34,49,86,.12)}
.field-calibration-sticky .panel-head{background:linear-gradient(180deg,#fbfcff,#fff)}
.field-direct-help{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;border:1px solid #dce3ff;border-radius:10px;background:#f7f9ff;color:#43506b}
.field-direct-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#e9eeff;color:#3853c4;font-size:1rem;font-weight:850}
.field-direct-help>div{display:grid;gap:3px}.field-direct-help strong{font-size:.69rem;color:#35415a}.field-direct-help small{font-size:.61rem;line-height:1.42;color:#6f7a90}
.alignment-result .alignment-metrics{row-gap:5px}.alignment-result .alignment-metrics span{padding:.18rem .35rem;background:#f7f9fc;border-radius:6px}
.ocr-config-controls{align-self:start}
@media(max-width:1250px){.field-calibration-sticky{position:relative;top:auto;z-index:auto}.legend-note{width:100%;margin-left:0}.preview-mode-tabs{width:100%}.preview-mode-tab{flex:1}}
@media(max-width:680px){.calibration-resize-handle{width:16px;height:16px;right:-8px;bottom:-8px}.field-direct-help{padding:9px}.preview-mode-tab{padding:.42rem .38rem;font-size:.59rem}}

/* OCR engine switch + OpenAI extraction configuration */
[data-ocr-engine-section][hidden], [data-tesseract-only-action][hidden]{display:none!important}
.ocr-engine-switch-panel{overflow:hidden}.ocr-engine-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 20px 16px}.ocr-engine-card{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;gap:13px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.ocr-engine-card:hover{border-color:#c9d2ef;box-shadow:0 8px 24px rgba(30,45,72,.08);transform:translateY(-1px)}.ocr-engine-card.selected{border-color:#8d9ff0;box-shadow:0 0 0 3px rgba(76,96,196,.08),0 10px 26px rgba(37,53,91,.08);background:#fcfdff}.ocr-engine-card>input{position:absolute;opacity:0;pointer-events:none}.ocr-engine-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#edf1ff;color:#4356b5;font-weight:900;font-size:.82rem}.ocr-engine-icon.openai{background:#edf7f4;color:#176b56}.ocr-engine-copy{display:grid;gap:4px;min-width:0}.ocr-engine-copy strong{font-size:.82rem;color:var(--text)}.ocr-engine-copy small{font-size:.64rem;line-height:1.45;color:var(--muted)}.engine-check{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;border:1px solid #d7ddea;color:transparent;font-size:.68rem;font-weight:900}.ocr-engine-card.selected .engine-check{background:#465bc3;color:#fff;border-color:#465bc3}.engine-global-note{margin:0 20px 18px;padding:10px 12px;border-radius:10px;background:#f7f9fc;color:#637087;font-size:.64rem;line-height:1.45}.engine-global-note strong{color:#3d4960}.shared-test-source{margin-top:14px}.test-source-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.55fr);gap:18px;align-items:end}.test-source-current{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfe;min-width:0}.test-source-current span{font-size:.57rem;text-transform:uppercase;letter-spacing:.06em;color:#8a94a8;font-weight:800}.test-source-current strong{font-size:.66rem;overflow-wrap:anywhere}.openai-flow-panel{margin-top:14px;overflow:hidden}.openai-flow-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 20px 20px}.openai-flow-steps article{display:flex;gap:11px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.openai-flow-steps article>span{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#eaf5f1;color:#176b56;font-size:.66rem;font-weight:900}.openai-flow-steps strong{display:block;font-size:.72rem;margin-bottom:4px}.openai-flow-steps p{margin:0;font-size:.62rem;line-height:1.47;color:var(--muted)}.openai-config-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px;margin-top:14px}.openai-main-config,.prompt-config-card{min-width:0}.prompt-stack{display:grid;gap:14px}.prompt-stack textarea{min-height:150px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.66rem;line-height:1.55}.prompt-reset-button{justify-self:start}.openai-key-status{display:flex;gap:10px;align-items:flex-start;margin:0 16px 16px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.openai-key-status.good{border-color:#cfe8df;background:#fbfffd}.openai-key-status.bad{border-color:#ecd4d8;background:#fffafb}.openai-key-status>div{display:grid;gap:3px}.openai-key-status strong{font-size:.68rem}.openai-key-status small{font-size:.61rem;line-height:1.45;color:var(--muted)}.immutable-mapping-panel{margin-top:14px;overflow:hidden}.immutable-mapping-details>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 20px;cursor:pointer}.immutable-mapping-details>summary::-webkit-details-marker{display:none}.immutable-mapping-details>summary>span:first-child{display:grid;gap:4px}.immutable-mapping-details>summary strong{font-size:.76rem}.immutable-mapping-details>summary small{font-size:.61rem;color:var(--muted)}.details-chevron{font-size:1.2rem;color:#7b8699;transition:transform .15s ease}.immutable-mapping-details[open] .details-chevron{transform:rotate(180deg)}.mapping-content{border-top:1px solid var(--line);padding:16px 20px 20px;display:grid;gap:14px}.mapping-intro{padding:11px 12px;border-radius:10px;background:#f7f9fc}.mapping-intro strong{font-size:.68rem}.mapping-intro p{margin:4px 0 0;font-size:.62rem;line-height:1.48;color:var(--muted)}.mapping-table{max-height:430px;overflow:auto;border:1px solid var(--line);border-radius:10px}.mapping-table table{margin:0}.mapping-table code{font-size:.61rem}.raw-schema-details{border:1px solid var(--line);border-radius:10px;overflow:hidden}.raw-schema-details>summary{padding:10px 12px;font-size:.64rem;font-weight:750;cursor:pointer;background:#fafbfe}.raw-schema-details pre{max-height:440px;overflow:auto;margin:0;padding:12px;border-top:1px solid var(--line);font-size:.59rem;line-height:1.45;background:#171d29;color:#e7edf7}.privacy-notice-panel{display:flex;gap:13px;align-items:flex-start;margin-top:14px;padding:15px 17px;border-color:#eadfbd;background:#fffdf8}.privacy-notice-icon{flex:0 0 30px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fbf2d9;color:#84651c;font-weight:900}.privacy-notice-panel strong{display:block;font-size:.7rem;margin-bottom:4px}.privacy-notice-panel p{margin:0;font-size:.62rem;line-height:1.5;color:#6f6651}.response-meta{display:grid;gap:3px;justify-items:end}.response-meta span{font-size:.56rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.response-meta code{font-size:.59rem;max-width:260px;overflow-wrap:anywhere}.ocr-config-form>div[data-ocr-engine-section="OPENAI"]{margin-top:0}.ocr-config-form>div[data-ocr-engine-section="TESSERACT"]{margin-top:14px}
@media(max-width:1100px){.openai-flow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.openai-config-grid{grid-template-columns:1fr}.test-source-row{grid-template-columns:1fr}}
@media(max-width:760px){.ocr-engine-switch{grid-template-columns:1fr;padding:0 12px 12px}.engine-global-note{margin:0 12px 14px}.openai-flow-steps{grid-template-columns:1fr;padding:0 12px 14px}.mapping-content{padding:12px}.immutable-mapping-details>summary{padding:14px}.privacy-notice-panel{margin-top:12px}.response-meta{justify-items:start}}

.openai-test-meta{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px}.openai-test-meta>span{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--border,#dfe5e2);border-radius:12px;background:var(--surface-soft,#f7f9f8)}.openai-test-meta small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#68736f)}.openai-test-meta strong{font-size:13px;overflow-wrap:anywhere}@media(max-width:900px){.openai-test-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* ==========================================================================
   OCR CONFIGURATOR — COMPLETE UI POLISH
   Keeps all Django-rendered controls visually consistent across Tesseract
   and OpenAI modes.
   ========================================================================== */

/* Reusable grid must also work when it is not combined with .config-card-body. */
.config-grid-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

/* Generic configurator form controls, including Django textareas. */
.ocr-config-form .form-label{
  min-width:0;
  align-content:start;
}
.ocr-config-form .form-label>span:first-child,
.ocr-config-form .label-with-help{
  color:#4c5870;
  font-size:.69rem;
  font-weight:780;
}
.ocr-config-form .form-label input:not([type="checkbox"]):not([type="radio"]),
.ocr-config-form .form-label select,
.ocr-config-form .form-label textarea,
.ocr-config-form .config-card input:not([type="checkbox"]):not([type="radio"]),
.ocr-config-form .config-card select,
.ocr-config-form .config-card textarea{
  width:100%;
  min-width:0;
  border:1px solid #d9e0ea;
  border-radius:10px;
  background:#fff;
  color:var(--text);
  padding:.69rem .78rem;
  outline:none;
  box-shadow:0 1px 1px rgba(20,35,60,.015);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.ocr-config-form .form-label input:not([type="checkbox"]):not([type="radio"]):hover,
.ocr-config-form .form-label select:hover,
.ocr-config-form .form-label textarea:hover{
  border-color:#cbd4e2;
}
.ocr-config-form .form-label input:not([type="checkbox"]):not([type="radio"]):focus,
.ocr-config-form .form-label select:focus,
.ocr-config-form .form-label textarea:focus,
.ocr-config-form .config-card input:not([type="checkbox"]):not([type="radio"]):focus,
.ocr-config-form .config-card select:focus,
.ocr-config-form .config-card textarea:focus{
  border-color:#93a8ff;
  background:#fff;
  box-shadow:0 0 0 3px rgba(51,92,255,.09);
}
.ocr-config-form .form-label input:disabled,
.ocr-config-form .form-label select:disabled,
.ocr-config-form .form-label textarea:disabled{
  color:#7d8799;
  background:#f5f7fa;
  cursor:not-allowed;
}
.ocr-config-form .form-label input[type="file"]{
  padding:.48rem;
  background:#fafbfd;
  font-size:.68rem;
}
.ocr-config-form .form-label input[type="file"]::file-selector-button{
  border:1px solid #d9e0ea;
  border-radius:8px;
  background:#fff;
  color:#42506a;
  padding:.5rem .7rem;
  margin-right:.65rem;
  font:inherit;
  font-weight:750;
  cursor:pointer;
}
.ocr-config-form .form-label input[type="file"]::file-selector-button:hover{
  background:#f5f7fb;
}

/* Django validation output should never fall back to raw browser list styling. */
.ocr-config-form .errorlist{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:4px;
  color:#a83243;
  font-size:.64rem;
  line-height:1.4;
}
.ocr-config-form>.errorlist.nonfield,
.ocr-config-form>.errorlist{
  padding:11px 13px;
  border:1px solid #efcbd2;
  border-radius:10px;
  background:#fff5f6;
}

/* Hero health panel. */
.ocr-config-hero{
  background:linear-gradient(135deg,#ffffff 0%,#fbfcff 64%,#f4f7ff 100%);
}
.ocr-system-health{
  width:min(390px,100%);
}
.ocr-system-health .diagnostic-status{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:rgba(255,255,255,.86);
}
.ocr-system-health .diagnostic-status.good{
  border-color:#cde8dd;
  background:#fbfffd;
}
.ocr-system-health .diagnostic-status.bad{
  border-color:#efd3d8;
  background:#fffafb;
}

/* Engine selection should read as one deliberate segmented choice. */
.ocr-engine-switch-panel .panel-head{
  padding-bottom:16px;
}
.ocr-engine-switch{
  gap:12px;
}
.ocr-engine-card{
  min-height:82px;
  isolation:isolate;
}
.ocr-engine-card:focus-within{
  border-color:#8d9ff0;
  box-shadow:0 0 0 3px rgba(76,96,196,.10);
}
.ocr-engine-card.selected:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(67,86,181,.035),transparent 58%);
  pointer-events:none;
  z-index:-1;
}
.ocr-engine-card[data-engine-card="OPENAI"].selected{
  border-color:#99cfc0;
  box-shadow:0 0 0 3px rgba(23,107,86,.07),0 10px 26px rgba(37,53,91,.08);
}
.ocr-engine-card[data-engine-card="OPENAI"].selected .engine-check{
  background:#176b56;
  border-color:#176b56;
}

/* Shared test source. */
.shared-test-source .config-card-body{
  padding-top:17px;
}
.test-source-current{
  position:relative;
  overflow:hidden;
}
.test-source-current:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:#5b6fd7;
}

/* OpenAI section — professional cards and readable hierarchy. */
[data-ocr-engine-section="OPENAI"]{
  min-width:0;
}
.openai-flow-panel{
  border-color:#dbe8e4;
  background:linear-gradient(180deg,#fff,#fcfefd);
}
.openai-flow-steps article{
  min-width:0;
  position:relative;
  overflow:hidden;
  align-items:flex-start;
}
.openai-flow-steps article:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:2px;
  background:linear-gradient(90deg,#8fc8b9,transparent 75%);
  opacity:.55;
}
.openai-flow-steps article>div{
  min-width:0;
}
.openai-config-grid>.panel{
  height:100%;
}
.openai-main-config .config-card-body{
  align-items:start;
}
.openai-main-config .field-help,
.prompt-config-card .field-help{
  display:block;
  margin-top:-1px;
}

/* Prompt editor was previously only partially styled. */
.prompt-stack .form-label{
  gap:7px;
}
.prompt-stack textarea{
  display:block;
  width:100%!important;
  min-height:190px;
  max-height:520px;
  resize:vertical;
  tab-size:2;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-size:.68rem!important;
  line-height:1.58!important;
  color:#263247!important;
  background:#fbfcfe!important;
}
.prompt-stack textarea:focus{
  background:#fff!important;
}
.prompt-reset-button{
  margin-top:2px;
}

/* API key status has stronger success/error semantics. */
.openai-key-status{
  position:relative;
  overflow:hidden;
}
.openai-key-status:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:#9aa4b5;
}
.openai-key-status.good:before{background:var(--good)}
.openai-key-status.bad:before{background:var(--bad)}
.openai-key-status .diagnostic-dot{
  margin-top:2px;
  flex:0 0 9px;
}

/* Locked mapping reads like a deliberate read-only inspector. */
.immutable-mapping-details>summary{
  user-select:none;
  transition:background .14s ease;
}
.immutable-mapping-details>summary:hover{
  background:#fafbfe;
}
.immutable-mapping-details[open]>summary{
  background:#fbfcfe;
}
.mapping-table thead th{
  position:sticky;
  top:0;
  z-index:2;
  box-shadow:0 1px 0 var(--line);
}
.mapping-table td:first-child code{
  color:#3247a8;
  background:#f0f3ff;
  border-radius:5px;
  padding:.18rem .3rem;
}
.raw-schema-details>summary{
  list-style:none;
}
.raw-schema-details>summary::-webkit-details-marker{
  display:none;
}
.raw-schema-details>summary:after{
  content:"anzeigen";
  float:right;
  color:#7b8699;
  font-size:.57rem;
  font-weight:700;
}
.raw-schema-details[open]>summary:after{
  content:"ausblenden";
}

/* Privacy message and result metadata. */
.privacy-notice-panel{
  box-shadow:none;
}
.privacy-notice-panel code{
  padding:.12rem .26rem;
  border-radius:5px;
  background:#f8efda;
  color:#6f571c;
}
.openai-test-meta{
  padding:0 16px;
}
.openai-test-meta>span{
  min-width:0;
}
.openai-test-meta strong{
  line-height:1.35;
}

/* Tesseract field editor polish. */
.field-calibration-sticky{
  max-height:calc(100vh - 28px);
  overflow:auto;
  scrollbar-width:thin;
}
.field-calibration-sticky .panel-head{
  position:sticky;
  top:0;
  z-index:3;
  border-bottom:1px solid var(--line);
}
.field-calibration-sticky .config-card-body{
  padding-bottom:18px;
}
.compact-calibration{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.calibration-zone{
  touch-action:none;
}
.calibration-zone.selected{
  box-shadow:0 0 0 1px rgba(255,255,255,.9),0 4px 14px rgba(37,52,83,.12);
}

/* Processing state remains visually stable while a request is synchronous. */
.button.is-processing{
  opacity:.82;
  cursor:wait;
  transform:none!important;
}
.button-spinner{
  width:14px;
  height:14px;
  flex:0 0 14px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:freiprax-spin .7s linear infinite;
}
@keyframes freiprax-spin{to{transform:rotate(360deg)}}

/* Clear hover/focus behavior for help bubbles. */
.info-bubble{
  border:1px solid #dce3ff;
  transition:background .14s ease,color .14s ease,border-color .14s ease,transform .14s ease;
}
.info-bubble:hover,
.info-bubble:focus{
  background:#dfe6ff;
  border-color:#c6d0ff;
  color:#3549b0;
  transform:translateY(-1px);
}
.info-tooltip{
  text-align:left;
  letter-spacing:normal;
  text-transform:none;
  white-space:normal;
}

/* Bottom action bar. */
.ocr-config-actions{
  border-color:#dce2ee;
  backdrop-filter:blur(10px);
  background:rgba(255,255,255,.96);
}
.ocr-config-actions>div:last-child{
  flex-wrap:wrap;
  justify-content:flex-end;
}

@media(max-width:1100px){
  .openai-config-grid>.panel{height:auto}
  .openai-flow-steps article{min-height:0}
}
@media(max-width:900px){
  .ocr-config-hero{padding:18px}
  .ocr-system-health{width:100%}
  .field-calibration-sticky{max-height:none;overflow:visible}
  .field-calibration-sticky .panel-head{position:relative}
  .openai-test-meta{padding:0 14px}
}
@media(max-width:680px){
  .config-grid-fields,.compact-calibration{grid-template-columns:1fr}
  .ocr-engine-card{grid-template-columns:40px minmax(0,1fr) 22px;padding:13px}
  .ocr-engine-icon{width:40px;height:40px}
  .ocr-config-actions>div:last-child{width:100%;display:grid;grid-template-columns:1fr}
  .ocr-config-actions .button{width:100%}
  .prompt-stack textarea{min-height:170px}
  .openai-test-meta{grid-template-columns:1fr;padding:0 12px}
}

/* Prescription creation: role-aware assignment and optional PDF flow. */
.prescription-create-page{max-width:1240px}.prescription-create-intro{max-width:780px}.prescription-create-layout{grid-template-columns:minmax(0,1fr) 340px}.prescription-create-card{padding:0;overflow:hidden}.prescription-create-card .upload-form{gap:0}.create-section{padding:22px}.create-section+.create-section{border-top:1px solid var(--line)}.create-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.create-section-head h3{margin:.25rem 0 .3rem;font-size:1rem;letter-spacing:-.025em}.create-section-head p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55;max-width:680px}.assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assignment-field{display:grid;gap:7px;font-size:.78rem;font-weight:750;color:#4d5870}.assignment-field select{width:100%;border:1px solid #d9e0ea;background:#fff;border-radius:11px;padding:.74rem .82rem;color:var(--text);outline:none}.assignment-field select:focus{border-color:#9bb0ff;box-shadow:0 0 0 3px rgba(51,92,255,.09)}.assignment-field select:disabled{background:#f4f6f9;color:#8b94a6}.locked-assignment{min-height:76px;border:1px solid #dfe5ee;background:#fafbfd;border-radius:12px;padding:12px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px}.locked-assignment-icon{width:38px;height:38px;border-radius:10px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-size:.75rem;font-weight:850}.locked-assignment>div{display:grid;gap:2px;min-width:0}.locked-assignment small{font-size:.64rem;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.055em}.locked-assignment strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.locked-assignment span:not(.locked-assignment-icon):not(.locked-badge){font-size:.68rem;color:#8a94a6}.locked-badge,.optional-pill{display:inline-flex;align-items:center;width:max-content;border-radius:999px;background:#f0f3f8;color:#667188;padding:.42rem .58rem;font-size:.66rem;font-weight:800}.optional-pill{background:var(--good-soft);color:var(--good)}.pdf-upload-field{position:relative;border:1px dashed #cfd7e5;background:#fafbfd;border-radius:13px;padding:16px;display:grid;grid-template-columns:46px minmax(0,1fr);gap:13px;align-items:center;transition:.18s ease;cursor:pointer}.pdf-upload-field:hover{border-color:#9dafef;background:#f7f9ff}.pdf-upload-icon{width:46px;height:46px;border-radius:11px;background:#fff0f2;color:#b53b4a;display:grid;place-items:center;font-size:.68rem;font-weight:900;border:1px solid #f3d4d9}.pdf-upload-copy{display:grid;gap:4px;min-width:0}.pdf-upload-copy strong{font-size:.82rem}.pdf-upload-copy small{font-size:.7rem;color:var(--muted);line-height:1.45}.pdf-upload-field input[type=file]{grid-column:1/-1;width:100%;border:1px solid #dce2eb;background:#fff;border-radius:9px;padding:.58rem .65rem;font-size:.73rem;color:#5c687d}.creation-actions{padding:20px 22px;border-top:1px solid var(--line);display:grid;gap:10px;background:#fbfcfe}.creation-action-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}.creation-action-card>div{display:flex;align-items:flex-start;gap:11px;min-width:0}.creation-action-card strong{display:block;font-size:.84rem;margin-bottom:3px}.creation-action-card p{margin:0;color:var(--muted);font-size:.71rem;line-height:1.45}.creation-action-icon{width:34px;height:34px;flex:0 0 34px;border-radius:9px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-weight:900}.creation-action-card.manual-flow{background:#fcfdfd}.creation-action-card.manual-flow .creation-action-icon{background:#eef6f2;color:#32725a}.creation-action-divider{display:flex;align-items:center;gap:10px;color:#9aa3b3;font-size:.65rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.creation-action-divider:before,.creation-action-divider:after{content:"";height:1px;background:var(--line);flex:1}.create-form-footer{padding:0 22px 20px}.create-diagnostic-card{position:sticky;top:18px}.manual-entry-note{display:grid;gap:3px;margin:14px 0;padding:12px;border-radius:10px;background:#f3f6fb;border:1px solid #e3e8f1;color:#536078}.manual-entry-note strong{font-size:.74rem;color:#344057}.manual-entry-note span{font-size:.69rem;line-height:1.45}.source-empty-state{min-height:270px;padding:30px 22px;display:grid;place-items:center;text-align:center;background:#fafbfd;border-radius:0 0 15px 15px}.source-empty-state>div{max-width:240px;display:grid;justify-items:center;gap:8px}.source-empty-icon{width:48px;height:48px;border-radius:13px;background:#eef2f7;color:#7a879c;display:grid;place-items:center;font-size:1.35rem;font-weight:700}.source-empty-state strong{font-size:.84rem}.source-empty-state p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.5}
@media(max-width:1050px){.prescription-create-layout{grid-template-columns:1fr}.create-diagnostic-card{position:relative;top:auto}.assignment-grid{grid-template-columns:1fr}}
@media(max-width:680px){.create-section{padding:17px}.creation-actions{padding:16px}.creation-action-card{grid-template-columns:1fr}.creation-action-card .button{width:100%}.locked-assignment{grid-template-columns:36px minmax(0,1fr)}.locked-badge{grid-column:2}.create-section-head{display:grid}.create-form-footer{padding:0 16px 16px}}
.ocr-summary.ocr-manual{border-color:#dde4ee;background:#f6f8fb;color:#536078}.ocr-summary.ocr-manual .diagnostic-dot{background:#7c889d;color:#7c889d}

/* Late PDF attachment for manually created prescriptions. */
.late-attachment-form{width:100%;margin-top:8px;padding-top:12px;border-top:1px solid var(--line);display:grid;gap:9px;text-align:left}.late-attachment-picker{display:grid;gap:6px;color:#49566d;font-size:.7rem;font-weight:800}.late-attachment-picker input[type=file]{width:100%;min-width:0;border:1px solid #dbe2ec;background:#fff;border-radius:9px;padding:.55rem .6rem;color:#5f6b80;font-size:.68rem}.late-attachment-picker input[type=file]::file-selector-button{border:0;border-radius:7px;background:var(--brand-soft);color:var(--brand);padding:.45rem .58rem;margin-right:.55rem;font-weight:800;cursor:pointer}.late-attachment-form>small,.source-empty-lock-note{display:block;color:var(--muted);font-size:.65rem;line-height:1.45;text-align:left}.source-empty-state:has(.late-attachment-form)>div{max-width:270px;width:100%}



/* =========================================================
   OCR queue / worker monitor
   ========================================================= */

.queue-overview {
  display: grid;
  gap: 22px;
}

.queue-overview-head {
  align-items: flex-start;
}


.queue-worker-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.queue-worker-badge.is-online {
  color: #166534;
  background: #ecfdf3;
  border: 1px solid #bbf7d0;
}

.queue-worker-badge.is-offline {
  color: #991b1b;
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.queue-live-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 50%;
  background: currentColor;
}

.queue-worker-badge.is-online .queue-live-dot {
  animation: queue-worker-pulse 1.8s ease-in-out infinite;
}

@keyframes queue-worker-pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: .45;
    transform: scale(.72);
  }
}


/* Current worker state */

.queue-worker-status {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  border-radius: 14px;
  border: 1px solid transparent;
  margin: 0px 20px;
}

.queue-worker-status.is-healthy {
  background: #f0fdf4;
  border-color: #bbf7d0;
}

.queue-worker-status.is-offline {
  background: #fff7ed;
  border-color: #fed7aa;
}

.queue-worker-status-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 12px;
  font-size: 20px;
  font-weight: 800;
}

.queue-worker-status.is-healthy .queue-worker-status-icon {
  color: #15803d;
  background: #dcfce7;
}

.queue-worker-status.is-offline .queue-worker-status-icon {
  color: #c2410c;
  background: #ffedd5;
}

.queue-worker-status-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.queue-worker-status-copy strong {
  font-size: 15px;
  line-height: 1.3;
}

.queue-worker-status-copy span {
  color: #64748b;
  font-size: 13px;
  line-height: 1.5;
}


/* Queue counters */

.queue-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0px 20px 20px;
}

.queue-stat {
  display: flex;
  flex-direction: column;
  min-height: 118px;
  padding: 16px 18px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #ffffff;
}

.queue-stat-label {
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
}

.queue-stat-value {
  margin-top: 7px;
  color: #111827;
  font-size: 30px;
  line-height: 1;
  font-weight: 750;
}

.queue-stat-time {
  margin-top: 8px;
  color: #111827;
  font-size: 21px;
  line-height: 1.1;
  font-weight: 750;
}

.queue-stat small {
  margin-top: auto;
  padding-top: 12px;
  color: #94a3b8;
  font-size: 11px;
  line-height: 1.35;
}

.queue-stat.has-error {
  border-color: #fecaca;
  background: #fffafa;
}

.queue-stat.has-error .queue-stat-value {
  color: #b91c1c;
}


/* Mobile/tablet */

@media (max-width: 1000px) {
  .queue-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .queue-overview-head {
    gap: 14px;
  }

  .queue-worker-badge {
    align-self: flex-start;
  }

  .queue-worker-status {
    align-items: flex-start;
    padding: 16px;
  }

  .queue-stats {
    grid-template-columns: 1fr;
  }

  .queue-stat {
    min-height: 105px;
  }
}