:root{--ink:#18313b;--muted:#60747b;--bg:#f2f7f7;--panel:#fff;--line:#dce7e7;--brand:#087e82;--brand-dark:#06666a;--light:#e8f5f3;--danger:#a53334;--radius:14px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font:16px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}button,input,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:10px 15px;background:var(--brand);color:#fff;font-weight:650}button:hover{background:var(--brand-dark)}button:disabled{opacity:.48;cursor:not-allowed}button.secondary{background:var(--light);color:var(--brand-dark)}button.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}button.danger{background:var(--danger)}input,textarea{width:100%;padding:11px;border:1px solid #bfd2d2;border-radius:9px;background:#fff;color:var(--ink)}input[type=checkbox]{width:auto;accent-color:var(--brand)}textarea{min-height:130px;resize:vertical}label{display:block;font-weight:600;margin:12px 0 5px}.shell{max-width:1300px;margin:auto;padding:18px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.brand{font-size:1.35rem;font-weight:800;letter-spacing:.02em}.brand small{display:block;font-size:.74rem;color:var(--muted);font-weight:500;letter-spacing:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 4px 20px #1a54540b}.narrow{max-width:420px;margin:10vh auto}.stack{display:grid;gap:12px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.space{justify-content:space-between}.muted{color:var(--muted)}.error{color:var(--danger)}h1,h2,h3{line-height:1.2;margin:0 0 12px}h1{font-size:1.65rem}h2{font-size:1.28rem}h3{font-size:1.06rem}.subhead{margin:0 0 16px}.search{max-width:450px}.patients{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:20px}.patient{padding:16px;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px}.patient:hover{border-color:var(--brand);background:var(--light)}.patient span{display:block;color:var(--muted);font-size:.86rem;margin-top:4px}.tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid var(--line);margin:0 0 20px;padding-bottom:1px}.tab{border-radius:9px 9px 0 0;background:transparent;color:var(--muted);white-space:nowrap}.tab.active{background:var(--light);color:var(--brand-dark);box-shadow:inset 0 -3px var(--brand)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:15px}.card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.thumb{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#172126;border:0;padding:0;border-radius:0}.card-content{padding:12px}.card textarea{min-height:70px}.card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.card-actions button{font-size:.85rem;padding:7px 10px}.uploadbox{border:2px dashed #b7d3d1;border-radius:14px;padding:17px;background:#fbfefd;margin-bottom:20px}.uploadbox input[type=file]{display:none}.uploadbox label.buttonlabel{display:inline-flex;align-items:center;background:var(--brand);color:#fff;padding:10px 15px;border-radius:9px;cursor:pointer;margin:0}.uploadbox .secondary.buttonlabel{background:var(--light);color:var(--brand-dark)}.queue{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:14px 0}.queue-item{border:1px solid var(--line);border-radius:10px;padding:7px;background:#fff}.queue-item img{width:100%;height:95px;object-fit:contain;background:#14252b}.queue-item small{display:block;overflow:hidden;text-overflow:ellipsis}.queue-item button{margin-top:6px;padding:5px 8px;width:100%}.capture-screen{position:fixed;inset:0;z-index:30;background:#050b0d;color:#fff;display:flex;flex-direction:column}.capture-header{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:9px 13px;background:#0e1b20;min-height:58px;flex-wrap:wrap}.capture-video{flex:1;min-height:0;display:block;width:100%;object-fit:contain;background:#000}.capture-footer{display:flex;gap:10px;justify-content:center;padding:10px;background:#0e1b20}.capture-message{position:absolute;top:70px;left:50%;transform:translateX(-50%);padding:12px 22px;background:#0b6d54;color:#fff;border-radius:10px;font-size:1.25rem;font-weight:750;display:none;z-index:3}.capture-message.show{display:block}.capture-message.error{background:var(--danger)}.viewer{position:fixed;z-index:40;inset:0;background:#03090deF;display:grid;grid-template-columns:65px 1fr 65px;grid-template-rows:52px 1fr auto;align-items:center;color:#fff}.viewer.hidden{display:none}.viewer img{grid-column:2;grid-row:2;max-width:100%;max-height:calc(100vh - 125px);width:100%;height:100%;object-fit:contain}.viewer button{background:#ffffff23;font-size:2rem}.viewer #viewer-close{grid-column:3;grid-row:1}.viewer #viewer-prev{grid-column:1;grid-row:2}.viewer #viewer-next{grid-column:3;grid-row:2}.viewer #viewer-description{grid-column:1/4;grid-row:3;text-align:center;padding:8px 20px;max-height:90px;overflow:auto}.report{max-width:210mm;margin:auto}.report-page{background:#fff;width:210mm;min-height:297mm;margin:12px auto;padding:17mm;box-shadow:0 2px 16px #0002}.report-item{break-inside:avoid;margin:15px 0 24px}.report-item img{display:block;max-width:100%;max-height:175mm;object-fit:contain}.report-item p{white-space:pre-wrap;margin:8px 0}.report-section{break-before:page}.report-header{border-bottom:2px solid var(--brand);padding-bottom:12px;margin-bottom:18px}.report-controls{position:sticky;top:0;z-index:2;background:var(--bg);padding:12px;border-bottom:1px solid var(--line)}#toast{position:fixed;right:20px;bottom:20px;z-index:100;background:#1f353b;color:#fff;padding:10px 18px;border-radius:10px;opacity:0;transition:opacity .2s;pointer-events:none}#toast.show{opacity:1}.checkline{display:flex;align-items:center;gap:8px;margin:8px 0}.empty{padding:24px;color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:12px}.badge{padding:3px 8px;background:var(--light);color:var(--brand-dark);font-size:.8rem;border-radius:20px}@media(max-width:650px){.shell{padding:10px}.panel{padding:15px}.top{align-items:flex-start}.top .row{justify-content:flex-end}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.card-content{padding:8px}.tabs{gap:1px}.tab{padding:10px;font-size:.9rem}.queue{grid-template-columns:repeat(3,minmax(0,1fr))}.viewer{grid-template-columns:42px 1fr 42px}.report-page{width:100%;min-height:0;padding:16px}}@media print{body{background:#fff}body *{visibility:hidden}.report-page,.report-page *{visibility:visible}.report-page{box-shadow:none;width:auto;min-height:auto;margin:0;padding:0}.report{max-width:none}.report-section{break-before:page}.report-item{break-inside:avoid}.report-controls{display:none}@page{size:A4 portrait;margin:16mm}}

.queue-item textarea{min-height:55px;padding:6px;font-size:.82rem}

.report-page{break-after:page;position:relative}.report-footer{position:absolute;bottom:10mm;right:17mm;color:#60747b;font-size:.8rem}.report-section{break-before:auto}@media print{.report-page{break-after:page;min-height:265mm;padding:0}.report-footer{bottom:0;right:0}}

/* Paleta do sistema Controle Estoque ODC e componentes responsivos. */
:root{--ink:#17201f;--muted:#687876;--bg:#f4f7f6;--line:#dce6e3;--brand:#0f766e;--brand-dark:#0b5d57;--light:#e9f5f3;--danger:#b42318;--panel:#fff}
button.secondary,.uploadbox .secondary.buttonlabel{color:var(--brand);background:#e9f5f3}input:focus,textarea:focus,select:focus{outline:2px solid #9fd8d0;outline-offset:1px}
select{font:inherit;width:100%;border:1px solid #bfcecb;border-radius:9px;padding:10px;background:#fff;color:var(--ink)}
.brand-logo{display:block;max-width:200px;max-height:58px;width:auto;height:auto;object-fit:contain}.login-brand .brand-logo{max-width:260px;max-height:110px}.top .brand{min-width:0}.top-actions{justify-content:flex-end}.account-name{font-size:.83rem;color:var(--muted)}
.patient{display:flex;align-items:center;gap:13px;min-height:98px}.patient-summary{min-width:0}.patient-summary strong{display:block;overflow-wrap:anywhere}.face-slot{display:grid;place-items:center;flex:none;width:66px;height:66px;border-radius:10px;background:#edf1f0;overflow:hidden;font-size:1.5rem;color:#869592}.face-slot img{display:block;width:100%;height:100%;object-fit:cover}
.patient-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:17px;border-radius:12px;margin-bottom:16px}.patient-head .subhead{margin:0}.patient-head-actions{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.patient-head-actions label{margin:0;min-width:150px;font-size:.85rem}.patient-head-actions select{display:block;margin-top:4px}
.status-none{background:#f7faf9}.status-green{background:#e0f4e7}.status-yellow{background:#fff4d6}.status-red{background:#fde7e5}.patient.status-green:hover{background:#d2eddb}.patient.status-yellow:hover{background:#fcedbd}.patient.status-red:hover{background:#f9d8d4}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin:20px 0 32px}.admin-grid>div{min-width:0}.admin-grid form{display:grid;gap:8px}.admin-grid form label{margin:6px 0 0}.admin-grid form button{justify-self:start;margin-top:8px}.color-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.logo-settings{margin-top:22px}.logo-preview{display:flex;align-items:center;min-height:72px;margin:12px 0}.logo-preview img{max-width:240px;max-height:90px;object-fit:contain}.user-list{margin-top:18px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.user-row small{display:block;color:var(--muted)}.user-row button{font-size:.82rem}.log-wrap{overflow:auto;max-height:500px}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:8px;white-space:nowrap}th{position:sticky;top:0;background:#fff}.checkline input{width:auto}
@media(max-width:760px){.top{align-items:flex-start;flex-direction:column}.top-actions{width:100%;justify-content:flex-start}.top-actions .account-name{width:100%}.admin-grid{grid-template-columns:1fr}.patient-head{align-items:stretch;flex-direction:column}.patient-head-actions{align-items:stretch}.patient-head-actions button{flex:1}.search{max-width:none}.shell{padding:10px}.panel{padding:14px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.queue{grid-template-columns:repeat(2,minmax(0,1fr))}.card-actions button{width:100%}.viewer{grid-template-columns:42px minmax(0,1fr) 42px}.report-page{width:100%;padding:16px;min-height:0}}
@media(max-width:420px){.patients{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.queue{grid-template-columns:repeat(2,minmax(0,1fr))}.account-name{font-size:.76rem}.top-actions button{padding:8px 10px}}
@media(hover:none){button,.buttonlabel{min-height:44px}}
@media print{.patient-head{background:#fff!important}.report-page{width:auto;min-height:265mm;padding:0}.top,.admin-panel{display:none}}

.note-sections{display:grid;gap:16px}.note-section{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fbfdfc}.note-section h3{margin-bottom:8px}.note-section textarea{min-height:145px}.note-section button{margin-top:8px}.report-notes-title{margin-top:24px}.report-note-text{white-space:pre-wrap;overflow-wrap:anywhere}
.patient-search-heading h1{margin-bottom:4px}.patient-search-heading .subhead{margin-bottom:13px}.search-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.search-actions .search{flex:1;min-width:0;max-width:450px}.search-actions #new-patient{white-space:nowrap}
@media(max-width:650px){
 .top{gap:5px;margin-bottom:9px}.top .brand{font-size:1.07rem}.top .brand small{font-size:.65rem}.top-actions{gap:5px}.top-actions button{padding:5px 9px;font-size:.77rem;min-height:34px}.account-name{font-size:.7rem}
 .patient-head{padding:9px 11px;gap:8px;margin-bottom:9px}.patient-head h1{font-size:1.24rem;margin-bottom:3px}.patient-head .subhead{font-size:.76rem;line-height:1.3}.patient-head-actions{gap:6px;align-items:end}.patient-head-actions label{font-size:.73rem;min-width:110px;flex:1}.patient-head-actions select{padding:5px 7px;font-size:.78rem;min-height:34px}.patient-head-actions #report-button{font-size:.77rem;min-height:34px;padding:5px 9px;flex:0 0 auto}.patient-head-actions #delete-patient{font-size:.73rem;min-height:32px;padding:4px 8px;flex:0 0 auto}
 .tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;overflow:visible;margin-bottom:12px;border-bottom:0}.tab{min-width:0;white-space:normal;border-radius:8px;padding:5px 7px;font-size:.78rem;line-height:1.1;min-height:39px}.tab.active{box-shadow:inset 0 -2px var(--brand)}
 .uploadbox{padding:9px;margin-bottom:12px}.uploadbox label.buttonlabel{padding:6px 10px;font-size:.78rem;min-height:36px}.uploadbox .row{gap:6px}#tab-content h2{font-size:1.1rem;margin-bottom:5px}#tab-content .muted{font-size:.82rem}.note-section{padding:11px}
}
@media(max-width:650px){
 .patient-search-panel{padding:12px}.patient-search-heading h1{font-size:1.28rem;margin:0 0 10px}.patient-search-heading .subhead{display:none}.search-actions{gap:8px}.search-actions .search{height:40px;min-height:40px;padding:7px 9px;font-size:16px;max-width:none}.search-actions #new-patient{min-height:40px;padding:6px 9px;font-size:.78rem}.patient-search-panel .patients{margin-top:12px}.patient-search-panel .patients>p{font-size:.8rem;margin:3px 0 0}
 .patient-form-panel{margin:0 auto;padding:14px}.patient-form-panel h1{font-size:1.32rem;margin-bottom:9px}.patient-form-panel label{font-size:.84rem;margin:10px 0 4px}.patient-form-panel input{min-height:40px;padding:8px 10px;font-size:16px}.patient-form-panel .row{gap:8px;margin-top:14px}.patient-form-panel .row button{min-height:40px;padding:7px 12px;font-size:.86rem}#patient-error:empty{display:none}
}
