:root{--ink:#153b35;--muted:#627771;--green:#176658;--green-hover:#104f44;--line:#dbe7e1;--wash:#f2f7f4;--white:#fff;--danger:#a52b35;--radius:20px;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:#f7faf8;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.6}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,img:focus-visible{outline:3px solid #d5aa46;outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:2.35rem;line-height:1.3;letter-spacing:-.035em;font-weight:650}h2{font-size:1.5rem;line-height:1.4;font-weight:650}h3{font-size:1.1rem}small{font-size:.875rem}.header{height:100px;max-width:1280px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:1.4rem;font-weight:700;white-space:nowrap}.brand-mark{display:grid;place-items:center;background:var(--green);color:white;width:43px;height:43px;border-radius:13px;font-size:1.75rem}.brand-note{display:block;font-size:.75rem;color:var(--muted);font-weight:400;letter-spacing:.1em;line-height:1.2}nav{display:flex;align-items:center;gap:20px}.nav-link{font-size:.875rem;color:#49685e}.nav-link span{margin-left:12px}.patient-main{max-width:1184px;margin:auto;padding:76px 32px 60px;min-height:calc(100vh - 184px)}.query-layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:90px}.query-intro{padding-bottom:18px}.eyebrow{display:block;font-size:.75rem;font-weight:650;letter-spacing:.14em;color:var(--green);margin-bottom:23px}.query-intro h1{font-size:clamp(2.3rem,3.5vw,3.25rem);line-height:1.5;letter-spacing:-.055em}.query-intro h1 span{color:var(--green)}.intro-text{color:var(--muted);margin-top:22px;line-height:1.9}.steps{display:flex;align-items:center;margin-top:44px;gap:17px}.steps div{flex-shrink:0}.steps span{font-family:Georgia,serif;font-size:1.65rem;color:#538271}.steps p{font-size:.875rem;margin-top:3px}.steps i{height:1px;width:32px;background:#becfc4;margin-bottom:22px}.privacy-note{display:flex;align-items:center;gap:14px;margin-top:55px;color:#466f61;font-size:.875rem}.privacy-note small{color:var(--muted);font-size:.75rem}.lock-icon{font-size:1.5rem}.query-card{background:white;border:1px solid var(--line);border-radius:24px;padding:36px;box-shadow:0 18px 48px #1d5c3d07}.card-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.small-tag{display:inline-block;background:#edf5ef;border:1px solid #dceadf;border-radius:5px;padding:3px 9px;font-size:.75rem;color:var(--green);font-weight:600}.card-symbol{font-size:1.6rem;color:#588c76}.query-card h2{margin:16px 0 8px}.card-topline+h2{margin-top:0}.muted{color:var(--muted);font-size:.875rem}.query-card form{margin-top:30px}label{display:block;font-size:.875rem;font-weight:600;margin:20px 0 9px}input{display:block;width:100%;min-width:0;min-height:49px;border:1px solid #cbdad1;background:#fff;border-radius:9px;padding:11px 13px;color:var(--ink)}input::placeholder{color:#8c9c95;font-size:.875rem}input:focus{border-color:var(--green);outline:3px solid #17665812}.code-input{font-family:ui-monospace,Consolas,monospace;text-transform:uppercase;font-size:1.05rem}.field-help{font-size:.75rem;color:var(--muted);margin:9px 0 20px;overflow-wrap:anywhere}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid transparent;border-radius:9px;padding:11px 18px;font-size:.875rem;font-weight:600;min-height:46px;line-height:1.5}.primary{background:var(--green);color:white}.primary:hover{background:var(--green-hover)}.secondary{background:white;border-color:#cadbd0;color:var(--ink)}.secondary:hover{background:var(--wash)}.full{width:100%;margin-top:18px;justify-content:space-between}.card-help{border-top:1px solid var(--line);margin-top:30px;padding-top:22px;font-size:.875rem}.card-help strong{font-weight:500}.card-help p{margin-top:6px;font-size:.75rem;color:var(--muted)}footer{border-top:1px solid var(--line);padding:26px 20px;text-align:center;color:var(--muted);font-size:.75rem;max-width:1184px;margin:auto}.form-error{color:var(--danger);background:#fff1f1;border-radius:8px;font-size:.875rem;padding:12px;margin:14px 0;overflow-wrap:anywhere}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:20;background:#153b35;color:white;box-shadow:0 6px 28px #0002;border-radius:10px;padding:13px 22px;max-width:calc(100% - 36px);font-size:.875rem;width:max-content}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.section-heading .eyebrow{margin-bottom:12px}.section-heading .muted{margin-top:12px}.result-heading{font-size:2rem}.patient-banner{padding:25px 30px;background:#eaf3ed;border:1px solid #d6e5db;border-radius:16px;display:flex;align-items:center;gap:65px;margin-bottom:32px}.patient-banner span,.patient-banner strong{display:block}.patient-banner strong{font-size:1.1rem;margin-top:5px;overflow-wrap:anywhere}.patient-banner .button{margin-left:auto}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.report-card{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.report-thumb{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:#eaf0ec;height:220px;padding:15px}.report-thumb img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 4px #0001)}.report-card-body{padding:16px}.report-card-body h3{font-size:1rem;overflow-wrap:anywhere}.report-card-body p{font-size:.75rem;color:var(--muted);margin:5px 0 13px}.report-actions{display:flex;justify-content:space-between;gap:10px}.report-actions .button{min-height:38px;padding:7px 13px;font-size:.75rem}.report-note{margin:30px 0;color:var(--muted);font-size:.875rem}.empty-state{padding:55px 25px;text-align:center;color:var(--muted);background:#f6f9f7;border:1px dashed var(--line);border-radius:12px}.empty-state>span{display:block;font-size:2.5rem;margin-bottom:15px}.empty-state h2,.empty-state h3{color:var(--ink);margin-bottom:10px}.empty-state p{font-size:.875rem}.doctor-main{max-width:1184px;margin:auto;padding:44px 32px 64px;min-height:calc(100vh - 184px)}.login-wrap{display:grid;grid-template-columns:1fr 1fr;max-width:920px;gap:80px;align-items:center;margin:35px auto}.login-intro h1{line-height:1.55}.login-intro>.muted{margin-top:24px;font-size:1rem}.back-link{display:inline-block;margin-top:40px;font-size:.875rem;color:var(--green)}.text-button{border:0;background:transparent;padding:10px 0;color:var(--green);font-size:.875rem;min-height:44px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:30px}.stats>div{border:1px solid var(--line);background:white;border-radius:14px;padding:22px 25px;display:flex;align-items:center;justify-content:space-between}.stats span{font-size:.875rem;color:var(--muted)}.stats strong{font-size:2rem;font-weight:500;font-variant-numeric:tabular-nums}.stats>div:last-child{background:#edf4ee}.list-card{border:1px solid var(--line);background:white;border-radius:18px;padding:26px}.list-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.list-header h2{font-size:1.15rem;margin-bottom:3px}.search-form{display:flex;gap:10px;width:360px}.search-form .button{flex-shrink:0}.patient-row{display:grid;grid-template-columns:1fr 1.2fr 1.6fr 1fr auto;gap:16px;align-items:center;padding:22px 6px;border-top:1px solid var(--line)}.patient-row strong{font-size:1rem;overflow-wrap:anywhere}.patient-row .row-label{display:block;color:var(--muted);font-size:.75rem;margin-bottom:3px}.patient-row .mono{font-size:.8rem;overflow-wrap:anywhere}.status{display:inline-block;font-size:.75rem;color:var(--green);background:#edf5ef;padding:4px 10px;border-radius:6px}.status.pending{background:#fcf3df;color:#896229}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:22px;font-size:.875rem}.pagination button{min-height:38px;padding:6px 12px}.mono{font-family:ui-monospace,Consolas,monospace;letter-spacing:.03em}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}dialog{color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 20px 100px #12372a30;max-height:90dvh;overflow:auto}dialog::backdrop{background:#0d2e246b;backdrop-filter:blur(3px)}.form-dialog{width:440px;max-width:calc(100% - 28px)}.detail-dialog{width:760px;max-width:calc(100% - 28px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.dialog-heading .eyebrow{margin-bottom:7px}.dialog-heading h2{overflow-wrap:anywhere}.icon-button{border:1px solid var(--line);background:white;width:40px;height:40px;flex-shrink:0;border-radius:50%;font-size:1.5rem;line-height:1}.access-card{background:#edf5ef;border-radius:12px;padding:20px;display:flex;justify-content:space-between;align-items:center;gap:20px}.access-card strong{display:block;margin-top:6px;font-size:1.15rem;overflow-wrap:anywhere}.access-card .button{flex-shrink:0}.access-card p{font-size:.875rem;margin-top:8px}.reset-access{font-size:.75rem;text-decoration:underline;text-underline-offset:4px}.upload-form{border:1px solid var(--line);border-radius:13px;padding:22px;margin:10px 0 26px}.upload-zone{display:flex;align-items:center;flex-direction:column;gap:5px;background:#f6f9f7;border:1px dashed #b7cebf;border-radius:10px;padding:22px;text-align:center;cursor:pointer}.upload-zone>span{font-size:1.75rem;color:var(--green)}.upload-zone small{color:var(--muted);font-weight:400;font-size:.75rem}input[type=file]{font-size:.75rem;border:0;padding:5px;min-height:36px}.reports-heading{display:flex;justify-content:space-between;margin-bottom:16px}.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.compact .report-thumb{height:185px}.danger-button{color:var(--danger);border:0;background:transparent;font-size:.75rem;padding:5px 10px}.image-dialog{width:95vw;max-width:1200px;height:94dvh;max-height:94dvh;padding:18px;background:#f4f7f5}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.viewer-toolbar>div{display:flex;gap:10px;flex-shrink:0}.viewer-toolbar>span{overflow-wrap:anywhere;font-weight:600}.viewer-hint{font-size:.75rem;color:var(--muted);margin:10px 0}.viewer-body{height:calc(100% - 94px);overflow:auto;text-align:center;background:#dfe8e2;border-radius:10px;padding:12px}.viewer-body img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in}.viewer-body img.original-size{max-width:none;max-height:none;cursor:zoom-out}
@media(min-width:1500px){.patient-main{padding-top:110px}}@media(max-width:1000px){.query-layout{gap:35px}.header{padding:0 32px}.query-card{padding:28px}.patient-row{grid-template-columns:1fr 1fr 1.5fr auto}.patient-row .row-status{display:none}.patient-banner{gap:35px}.login-wrap{gap:35px}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.header{height:78px;padding:0 20px}.brand{font-size:1.2rem;gap:9px}.brand-mark{width:36px;height:36px;font-size:1.5rem;border-radius:11px}.brand-note{font-size:.65rem}.nav-link{font-size:.75rem}.nav-link span{margin-left:4px}nav{gap:12px}.patient-main,.doctor-main{padding:30px 20px 40px;min-height:calc(100dvh - 153px)}.query-layout{grid-template-columns:1fr;gap:27px}.query-intro{padding:0}.eyebrow{font-size:.65rem;margin-bottom:13px}.query-intro h1{font-size:2rem;line-height:1.4}.query-intro h1 br{display:none}.intro-text{font-size:.875rem;margin-top:12px}.desktop-only{display:none}.steps,.privacy-note{display:none}.query-card{padding:24px;border-radius:18px}.card-topline{margin-bottom:15px}.query-card h2{font-size:1.35rem}.query-card form{margin-top:24px}.card-help{margin-top:24px;padding-top:20px}footer{padding:24px 20px;font-size:.7rem}.login-wrap{display:block;margin:0}.login-intro{margin-bottom:26px}.login-intro h1{font-size:1.85rem;line-height:1.4}.login-intro h1 br{display:none}.login-intro>.muted{margin-top:12px;font-size:.875rem}.back-link{display:none}.section-heading{align-items:flex-start;flex-wrap:wrap;margin-bottom:22px}.section-heading h1{font-size:1.7rem}.section-heading>.button{width:100%}.section-heading .eyebrow{font-size:.6rem}.section-heading .muted{margin-top:8px}.stats{gap:9px;margin-bottom:20px}.stats>div{display:block;padding:14px;border-radius:10px}.stats span{font-size:.75rem}.stats strong{display:block;font-size:1.6rem;margin-top:5px}.list-card{padding:17px;border-radius:13px}.list-header{display:block}.search-form{width:100%;margin-top:18px}.patient-row{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:12px;padding:18px 0}.patient-row .row-code{grid-column:1/3;grid-row:2}.patient-row .row-status{display:block}.patient-row>.button{justify-self:end}.list-header .muted{font-size:.75rem}.pagination{justify-content:space-between;font-size:.75rem;gap:8px}.patient-banner{padding:20px;gap:20px;flex-wrap:wrap}.patient-banner>div{flex:1 1 35%}.patient-banner .button{margin-left:0;flex:1 1 35%}.report-grid{gap:14px;grid-template-columns:1fr}.report-thumb{height:280px}.report-card-body{padding:16px}.form-dialog,.detail-dialog{padding:21px;max-height:94dvh;border-radius:16px}.access-card{padding:16px;display:block}.access-card .button{margin-top:15px;width:100%}.access-card strong{font-size:1rem}.upload-form{padding:16px}.compact{grid-template-columns:1fr}.compact .report-thumb{height:210px}.image-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding:12px}.viewer-toolbar{align-items:flex-start}.viewer-toolbar .button{padding:8px 10px;min-height:40px;font-size:.75rem}.viewer-toolbar>span{font-size:.875rem}.viewer-toolbar>div{gap:7px}}
select{font:inherit;display:block;width:100%;min-height:49px;padding:10px 12px;border:1px solid #cbdad1;border-radius:9px;background:#fff;color:var(--ink)}select:focus-visible{outline:3px solid #d5aa46;outline-offset:3px}fieldset{border:0;margin:0;padding:0;min-width:0}.visit-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.visit-toolbar>div{min-width:240px}.visit-toolbar label{margin-top:0}.account-actions{display:flex;gap:15px;align-items:center;padding:12px 0}.query-card #query-form{margin-top:18px}.query-card #query-form label{margin-top:14px}
@media(max-width:700px){.visit-toolbar{display:block}.visit-toolbar>.button{margin-top:15px}.visit-toolbar>div{min-width:0}.query-card #query-form{margin-top:15px}.patient-row .row-query{grid-column:1/3;grid-row:2}.query-intro h1{font-size:1.75rem}.query-layout{gap:22px}.card-help{margin-top:20px}}
@media(max-width:700px){.query-intro h1 br{display:block}}
@media(prefers-reduced-motion:no-preference){.button{transition:background .15s}dialog[open]{animation:appear .15s ease-out}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}

.query-method{display:flex;gap:8px;margin-bottom:20px;background:#edf4ef;border-radius:10px;padding:5px}.query-card #query-form .query-method label{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;margin:0;padding:10px 5px;cursor:pointer;font-size:.875rem;border-radius:7px}.query-method label:has(input:checked){background:white;box-shadow:0 1px 4px #163b3515}.query-method input{width:16px;min-height:16px;height:16px;padding:0;accent-color:var(--green)}.sensitive-input{text-transform:uppercase}
.batch-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:26px}.batch-action{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;text-align:left;color:var(--ink);font:inherit}.batch-action:hover{border-color:var(--green);background:#f4f9f5}.batch-action strong,.batch-action span{display:block}.batch-action span{font-size:.8rem;color:var(--muted);margin-top:6px}.number-card{padding:20px;background:#edf5ef;border:1px solid var(--line);border-radius:12px;margin-bottom:12px}.number-card>span{font-size:.85rem;color:var(--muted)}.number-card>strong{display:block;font-size:2.4rem;color:var(--green);letter-spacing:.18em}.number-card p{font-size:.85rem;margin:4px 0 12px;color:var(--muted)}.batch-rows{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:12px;margin:14px 0}.batch-row{padding:14px 16px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.batch-row:last-child{border-bottom:0}.batch-row p{font-size:.85rem;color:var(--muted);margin:4px 0}.batch-row .status{margin-top:4px}#batch-preview{margin-top:22px}#batch-receipt{margin-top:12px}#download-template{margin-top:16px}#batch-form>.button{margin-top:18px}.site-qr{display:block;width:100%;max-width:300px;height:auto;margin:20px auto}#site-url{overflow-wrap:anywhere;text-align:center}#query-number{letter-spacing:.08em;font-variant-numeric:tabular-nums}
@media(max-width:700px){.batch-actions{grid-template-columns:1fr;gap:10px}.batch-action{padding:15px 17px}.batch-action strong{font-size:.95rem}.batch-action span{font-size:.8rem}.batch-rows{max-height:280px}.patient-row>div{min-width:0}.patient-row span{overflow-wrap:anywhere}.number-card{padding:16px}}
#batch-reselect{margin-top:10px}

/* Hospital IDs may be long; keep mobile cards within the viewport. */
.number-card strong { overflow-wrap: anywhere; font-size: clamp(1.25rem, 5vw, 2.4rem); }
.patient-row, .batch-row { overflow-wrap: anywhere; min-width: 0; }

.account-actions{flex-wrap:wrap}.danger-outline{color:var(--danger);background:white;border:1px solid #d8a0a4}.danger-solid{background:var(--danger);color:white}.danger-solid:hover{background:#85222a}.deletion-summary{white-space:pre-line;overflow-wrap:anywhere;background:#fff3f3;padding:16px;border-radius:10px;margin-bottom:16px}.deletion-check{display:flex;align-items:flex-start;gap:10px}.deletion-check input{width:18px;min-height:18px;height:18px;flex-shrink:0;margin-top:4px}#delete-patient-form button{margin-top:12px}
