:root{--accent:#79348c;--bg:#f7f3fa;--ink:#231d2b;--muted:#63596b;--line:#ddd6e5;--on-accent:#fff;font:16px/1.45 system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a.button{border:1px solid var(--line);border-radius:9px;padding:9px 14px;min-height:44px;background:#fff;color:#31213b;cursor:pointer;text-decoration:none;display:inline-block}button:hover{border-color:var(--accent);background:#f3edf8}button.primary,.primary{background:var(--accent);color:var(--on-accent)}button:disabled{opacity:.5;cursor:wait}input,select,textarea{width:100%;border:1px solid #a49bac;border-radius:7px;padding:10px;min-height:44px;background:#fff;color:#201629}input[type=checkbox]{width:24px;min-height:24px;height:24px;accent-color:var(--accent)}textarea{min-height:120px;resize:vertical}label{display:grid;gap:5px;font-weight:550;font-size:.9rem}label.check{display:flex;align-items:center;gap:10px}h1{font-size:1.55rem;margin:0 0 16px}h2{font-size:1.15rem;margin:0 0 12px}h3{font-size:1rem}p{margin:10px 0}.muted{color:var(--muted)}.test-banner{padding:5px 16px;text-align:center;background:#efe0b7;color:#4e390f;font-size:.8rem}.login{max-width:480px;margin:5vh auto;padding:25px;background:#fff;border:1px solid var(--line);border-radius:18px}.login form{display:grid;gap:16px}.brand{font-size:1.5rem;color:var(--accent);font-weight:750;letter-spacing:-.04em}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 30px)}aside{border-right:1px solid var(--line);padding:22px 12px;background:#fff}aside .brand{padding:0 12px}nav{display:grid;gap:3px;margin:20px 0}nav button{text-align:left;border:0;background:none}nav button.active{background:#eee2f4;color:#602679;font-weight:700}.workspace{min-width:0}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 25px;background:#fff;border-bottom:1px solid var(--line)}header select{max-width:310px}main{padding:24px;max-width:1700px;margin:auto}.toolbar,.actions{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:16px}.toolbar label{min-width:150px;flex:1;max-width:300px}.actions{margin:16px 0 0}.panel{padding:20px;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:16px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:18px 0}.tile{padding:20px;text-align:left;min-height:100px;font-weight:700;border-left:5px solid var(--accent)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.wide{grid-column:1/-1}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;max-height:65vh}table{border-collapse:separate;border-spacing:0;width:100%;font-size:.91rem}th,td{padding:11px 13px;text-align:left;border-bottom:1px solid #ece7f0;vertical-align:top}th{position:sticky;top:0;background:#eee7f3;z-index:1;white-space:nowrap}tr:nth-child(even) td{background:#fcfafd}td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.balance{font-size:1.8rem;font-weight:750;color:var(--accent)}dialog{border:1px solid var(--line);border-radius:16px;width:min(760px,94vw);max-height:90vh;padding:24px;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#1e132680}dialog form{display:grid;gap:16px}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#25182f;color:#fff;border-radius:10px;max-width:90vw;z-index:50;padding:0}#notice:not(:empty){padding:14px 22px}.error{color:#a52335;white-space:pre-wrap}.report{white-space:pre-wrap}.doc-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.doc-grid textarea{min-height:250px}.secret{font-family:monospace;overflow-wrap:anywhere;padding:12px;background:#f4edf8}.roster td{padding:3px;min-width:95px}.roster td:first-child{min-width:90px}.roster button{width:100%;min-height:46px;padding:5px;font-size:.8rem}.roster td:first-child,.roster th:first-child{position:sticky;left:0;background:#eee7f3;z-index:2}.fullscreen main{max-width:none}.fullscreen aside,.fullscreen header,.fullscreen .test-banner{display:none}.fullscreen .shell{display:block}.fullscreen .table-wrap{max-height:85vh}.edit-row{display:flex;gap:10px;align-items:center;margin:8px 0}.edit-row input[type=color]{width:70px}.badge{display:inline-block;padding:3px 8px;background:#eee2f4;border-radius:6px}.print-title{display:none}details{margin:12px 0}summary{cursor:pointer;font-weight:600}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.month-grid button{min-height:65px;padding:6px;text-align:left}.month-grid small{display:block}.year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.year-grid button{width:100%}@media(max-width:800px){.shell{grid-template-columns:1fr}aside{padding:10px;border-right:0;border-bottom:1px solid var(--line)}nav{display:flex;overflow:auto;margin:8px 0 0}nav button{flex-shrink:0}aside .muted{display:none}header{padding:12px;flex-wrap:wrap}main{padding:14px}.year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login{margin:20px 12px}.doc-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.toolbar label{max-width:none}.month-grid button{font-size:.8rem;min-height:55px}.panel{padding:15px}}@media print{body{background:#fff!important;color:#000}aside,header,.test-banner,.toolbar,.actions,button,#notice,dialog,.no-print{display:none!important}.shell,.workspace{display:block}main{padding:0;max-width:none}.panel{break-inside:avoid;border:0;padding:4mm 0}.table-wrap{max-height:none;overflow:visible;border:0}th{position:static}thead{display:table-header-group}tr{break-inside:avoid}td,th{padding:2mm;font-size:9pt}.doc-grid{display:grid;grid-template-columns:2fr 1fr}.doc-grid textarea{display:none}.print-title{display:block}.roster button{display:block!important;border:0;background:none}.roster td{min-width:0}a{color:#000;text-decoration:none}@page{size:A4;margin:14mm}}
aside{min-width:0}@media(max-width:800px){.shell{grid-template-columns:minmax(0,1fr)}nav{max-width:100%}}

/* Structured daily forms */
.form-tiles .tile{background:#efe0f5;color:#432052;border:1px solid #c7a6d4;min-height:96px}.prewrap,td{white-space:pre-wrap}.record-field{border-bottom:1px solid #ddd;padding:8px 0}.checksum{overflow-wrap:anywhere;font-size:12px}.meeting-rows .panel{display:grid;grid-template-columns:1fr 1fr;gap:12px}dialog:has(.meeting-rows){max-width:1100px;width:94vw}.meeting-rows textarea{min-height:110px}.record-detail{max-height:70vh;overflow:auto}details{margin:16px 0}summary{cursor:pointer;font-weight:600}@media(max-width:650px){.meeting-rows .panel{grid-template-columns:1fr}}@media print{.record-detail{max-height:none;overflow:visible}.form-tiles{display:none}td{font-size:10px}tr{break-inside:avoid}}
#record-print{display:none}@media print{body.printing-record>#app{display:none!important}body.printing-record>#record-print{display:block!important}#record-print .record-detail{max-height:none;overflow:visible}#record-print .table-wrap{overflow:visible}#record-print table{table-layout:fixed;width:100%}#record-print td{overflow-wrap:anywhere}}

/* Daily workflow refinement */
.print-only{display:none}.team-note{padding:12px 16px;margin:10px 0;background:#f8f0dc;border-left:4px solid #bc942e;border-radius:6px}.today-duty{background:#ede0f7;min-height:40px;padding:5px;border-radius:5px}.today-duty button{padding:0 5px;min-height:25px}.shift-palette{flex-wrap:wrap}.fullscreen .shift-palette{position:fixed;right:18px;bottom:14px;z-index:20;max-width:680px;background:#fff;border:1px solid #cab6d3;border-radius:12px;box-shadow:0 5px 25px #0003;padding:12px}.fullscreen main{padding-bottom:160px}.roster th:first-child,.roster td:first-child{position:sticky;left:0;background:#faf8fc;z-index:2;min-width:140px}.roster thead th{position:sticky;top:0;z-index:3;min-width:120px}.roster button{width:100%;font-size:13px;padding:6px;min-width:104px}.roster button:disabled{opacity:1;cursor:default}.preview-banner{position:sticky;top:0;z-index:50;background:#ffedbc;padding:10px 20px;border-bottom:2px solid #9c7010;display:flex;gap:24px;align-items:center;justify-content:space-between}.care-tabs{margin-bottom:18px}.board-notes{margin-top:20px}
@media print{
.print-only{display:block!important}.daily-document{font-family:Georgia,serif;font-size:11pt;line-height:1.5;color:#222}.daily-document>h1,.daily-document>form,.daily-document>.actions,.daily-document>button,.daily-document>.badge{display:none!important}.document-letterhead{display:flex!important;justify-content:space-between;border-bottom:2px solid #79348c;padding:0 0 7mm;margin-bottom:8mm;break-inside:avoid}.document-letterhead img{max-width:48mm;max-height:23mm;object-fit:contain}.document-letterhead strong{font-family:Arial,sans-serif;color:#79348c;font-size:20pt}.document-letterhead h2{font-family:Arial,sans-serif;font-size:16pt;margin:0}.document-letterhead p{margin:2mm 0;font-size:10pt}.document-printbody section{margin-bottom:8mm}.document-printbody h2{font-family:Arial,sans-serif;font-size:11pt;color:#582566;border-bottom:1px solid #ddd;padding-bottom:2mm;break-after:avoid}.document-printbody .prewrap{white-space:pre-wrap;orphans:3;widows:3}.document-meta{border-top:1px solid #ccc;padding-top:4mm;font-size:9pt;color:#555}.preview-banner,.shift-palette{display:none!important}
}
.demo-banner{position:sticky;top:0;z-index:50;background:#ffe5a3;color:#362a0b;padding:10px 18px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-bottom:2px solid #bd8115}.demo-banner select{max-width:330px}.demo-banner button:last-child{margin-left:auto}@media print{.demo-banner{display:none!important}}
.fullscreen .roster table{table-layout:fixed;width:100%}.fullscreen .roster th,.fullscreen .roster td{min-width:0;white-space:normal;overflow-wrap:anywhere}.fullscreen .roster th:first-child,.fullscreen .roster td:first-child{width:130px;min-width:130px}.fullscreen .roster button{min-width:0}.fullscreen .shift-palette p{display:none}.fullscreen .roster{padding-bottom:90px}
.month-grid button{min-width:0;text-align:left;vertical-align:top}.calendar-title{font-size:12px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster th>div>div{font-size:12px;font-weight:400;margin-top:4px}
.meeting-rows [hidden]{display:none!important}

.work-summary .tile strong{display:block;font-size:24px;margin-top:10px}.work-summary .tile{font-weight:400}
.personal-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.personal-cards>section{padding:12px;border:1px solid #e4d9ea;border-radius:10px}.personal-cards h3{margin-top:0}.personal-cards button{margin:4px 0}.roster-checks details{margin-top:12px}.roster-checks summary{cursor:pointer;font-weight:bold}#save-status{position:fixed;bottom:8px;left:50%;transform:translateX(-50%);z-index:60;background:#edf6ef;color:#224a2c;padding:7px 14px;border-radius:10px;font-size:13px;max-width:90vw;text-align:center;pointer-events:none}#save-status:empty{display:none}#save-status[data-state=dirty],#save-status[data-state=saving]{background:#fff1c9;color:#624700}#save-status[data-state=error]{background:#fce0e5;color:#792035}.onboarding-form section[hidden],.onboarding-form button[hidden]{display:none!important}@media(max-width:800px){.personal-cards{grid-template-columns:1fr}}@media print{#save-status,.personal-overview,.roster-checks{display:none!important}}
@media(min-width:801px){aside .brand{font-size:1.15rem;overflow-wrap:anywhere;line-height:1.35}}

/* Optional tab-local readability preview; remove the class for the original view. */
html.readable-preview{font-size:18px;line-height:1.6}
.readable-preview button,.readable-preview a.button{min-height:52px;padding:12px 18px;border-radius:12px}
.readable-preview input,.readable-preview select,.readable-preview textarea{min-height:52px;padding:12px;border-color:#75667f}
.readable-preview label,.readable-preview table{font-size:1rem}
.readable-preview input[type=checkbox]{min-height:28px;width:28px;height:28px;padding:0}
.readable-preview h1{font-size:1.8rem}.readable-preview h2{font-size:1.3rem}.readable-preview h3{font-size:1.1rem}
.readable-preview .shell{grid-template-columns:270px minmax(0,1fr)}
.readable-preview nav{gap:7px}.readable-preview nav button{line-height:1.35}
.readable-preview .panel{padding:26px;margin-bottom:22px}.readable-preview .form-grid{gap:22px}
.readable-preview .tiles{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.readable-preview .tile{min-height:116px;padding:24px;line-height:1.5}
.readable-preview th,.readable-preview td{padding:14px 16px}
.readable-preview .roster td{padding:4px}.readable-preview .roster button{font-size:16px;min-height:54px;padding:8px}
.readable-preview .roster th>div>div{font-size:14px}
.readable-preview dialog{width:min(860px,95vw);padding:28px}.readable-preview dialog form{gap:22px}
.readable-preview #save-status{font-size:16px}
.readable-banner{padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#e8f4ef;color:#1e4837;border-bottom:2px solid #52816c}
.readable-banner p{margin:2px 0;font-size:15px}.readable-banner button{flex-shrink:0;border-color:#52816c}
@media(max-width:1000px){.readable-preview .personal-cards{grid-template-columns:1fr}}
@media(max-width:800px){.readable-preview .shell{grid-template-columns:minmax(0,1fr)}.readable-preview .panel{padding:20px}.readable-preview .tiles{grid-template-columns:minmax(0,1fr)}.readable-banner{padding:12px;flex-wrap:wrap}.readable-banner button{width:100%}.readable-preview nav{gap:6px}.readable-preview .toolbar label{min-width:0}.readable-preview header select{max-width:100%}}
@media print{.readable-banner{display:none!important}.readable-preview .shell{display:block}.readable-preview th,.readable-preview td{padding:2mm;font-size:9pt}.readable-preview .panel{padding:4mm 0}.readable-preview .roster button{font-size:9pt;padding:2mm;min-height:0}}
.medication-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}
.medication-card{border:1px solid #d8cbe1;border-radius:16px;padding:22px;background:white;box-shadow:0 3px 12px #37244008}
.medication-card.documented{background:#f1f8f3;border-color:#96b99f}.medication-card h3{font-size:23px;margin:10px 0}.dose-time{font-size:18px;font-weight:700;color:#66347d}.dose-dosage{font-size:19px}
.dose-confirm{display:flex;align-items:center;gap:14px;font-weight:700;font-size:18px;padding:18px 0;cursor:pointer}.dose-confirm input{width:30px;height:30px;flex:0 0 30px;accent-color:#713586}.dose-signature{color:#285e39}.medication-slot{margin:24px 0}.medication-card details{margin-top:16px}.leave-notifications{border-left:5px solid #47835d}.leave-notifications article+article{border-top:1px solid #ddd;margin-top:18px;padding-top:12px}
dialog.document-editor,.readable-preview dialog.document-editor{width:min(1100px,96vw);max-width:96vw;padding:30px;max-height:94dvh}.document-form .form-grid{gap:22px}.document-form label:has(textarea){grid-column:1/-1}.document-form textarea{min-height:150px;font-size:17px;line-height:1.6}.document-form textarea[name=reflection]{min-height:270px}.document-form input{min-height:46px;font-size:17px}.document-form .meeting-rows textarea{min-height:120px}
@media(max-width:600px){dialog.document-editor{padding:18px!important;width:96vw}.document-form .form-grid{grid-template-columns:1fr}.medication-card{padding:18px}.dose-confirm{font-size:17px}}
@media print{
 @page{size:A4;margin:17mm 16mm}
 body.printing-record{background:white!important;color:#20232b!important}
 #record-print.polished-record{font-family:Arial,sans-serif;font-size:11pt;line-height:1.5;color:#20232b}
 .record-letterhead{display:flex!important;position:static!important;justify-content:space-between;align-items:center;gap:12mm;border-bottom:2px solid #79348c;padding:0 0 7mm;margin-bottom:6mm;background:white!important;color:#20232b!important}
 .record-letterhead img{max-width:36mm;max-height:21mm;object-fit:contain}.record-letterhead h1{font-size:23pt;margin:2mm 0}.record-kicker{font-size:10pt;color:#65606c;margin:0}
 .record-metadata{display:flex;flex-wrap:wrap;gap:4mm 12mm;padding:3mm 0;border-bottom:1px solid #ddd;margin-bottom:7mm}.record-metadata p{margin:0}
 #record-print .record-field{margin:0 0 6mm;padding:0;border:0}#record-print .record-field strong,#record-print .record-field h3{font-size:11pt;color:#653779;margin:0 0 2mm;display:block;break-after:avoid}
 #record-print .record-field p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;orphans:3;widows:3}
 .print-topic{border-top:1px solid #ccc;padding-top:5mm;margin-top:7mm;break-inside:auto}.print-topic h2{font-size:15pt;break-after:avoid}
 .record-signature{border-top:1px solid #aaa;padding-top:4mm;margin-top:8mm;break-inside:avoid}.record-footer{position:static!important;border-top:1px solid #ddd;padding-top:4mm;margin-top:8mm;color:#666}.record-footer p{margin:0}.checksum{font-size:7pt!important;overflow-wrap:anywhere;word-break:break-all}
 #record-print .record-detail{display:block!important}#record-print p{max-width:none}
}
.test-banner[hidden]{display:none!important}.production-app .shell{min-height:100vh}

.cash-actions{justify-content:flex-end;position:sticky;top:0;z-index:2;background:var(--background,#fff);padding:10px;border-radius:12px}.medication-month th{white-space:pre-wrap;min-width:130px}.medication-month td{text-align:center}.med-sheet-cell input{width:24px;height:24px}.med-sheet-cell button{display:block;font-size:11px;padding:3px}.medication-month td:first-child{white-space:nowrap}.general-print-brand{margin-bottom:18px}@media print{.cash-actions{display:none!important}.medication-month th{min-width:0;font-size:9px}.medication-month td{font-size:8px;padding:3px}}
@media print{.medication-month{table-layout:fixed;width:100%}.medication-month th,.medication-month td{font-size:9pt;padding:1.3mm;overflow-wrap:anywhere}.medication-month th:first-child{width:23mm}.med-sheet-cell input{display:none}}

.help-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px}.help-cards .panel{margin:0}.help-dialog{width:min(1100px,96vw)}.help-player video{width:100%;max-height:60vh;background:#201629}.help-steps section{padding:12px 0;border-bottom:1px solid var(--line)}.help-steps button{text-align:left}.mobile-qr a{overflow-wrap:anywhere}

.absence-tag{display:inline-block;padding:3px 6px;border-radius:5px;font-size:12px;margin:2px;background:#eee;color:#33253c;white-space:normal}.absence-tag.approved{background:#dceee4;color:#16462f}.absence-tag.pending{background:#fff0c9;color:#614a12}.absence-tag.wish{background:#e8ddfa;color:#4c2273}.absence-tag.conflict{background:#ffe0cf;color:#722d10;border:1px solid #bb683e}.absence-cell{min-width:105px;display:grid;gap:3px}.absence-cell button{font-size:12px;padding:4px;min-height:32px}.absence-grid th:first-child,.absence-grid td:first-child{position:sticky;left:0;background:#f3edf8;z-index:2;white-space:nowrap}.absence-grid thead th:first-child{z-index:4}.roster-absence .absence-tag{display:block}.roster-absence button{margin-top:2px}@media print{.absence-grid th:first-child,.absence-grid td:first-child{position:static}.absence-cell{min-width:0}.absence-grid td,.absence-grid th{font-size:8pt}.absence-tag{font-size:8pt}}
/* Dedicated compact phone workspace. Desktop layout remains independent. */
.phone-ui .shell.mobile-shell{display:block;max-width:520px;margin:auto;min-width:0}
.phone-ui .workspace{min-width:0;width:100%}
.phone-ui .workspace header{position:static;display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;font-size:14px;min-height:0}
.phone-ui .workspace header>strong{flex:1}.phone-ui .workspace header button{font-size:12px;padding:7px;min-height:36px}
.phone-ui .mobile-nav{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:6px;background:var(--bg,#fff);border-bottom:1px solid #ddd}
.phone-ui .mobile-nav button{font-size:14px;min-height:48px;padding:6px;white-space:normal}
.phone-ui main{padding:12px;min-width:0}.phone-ui h1{font-size:23px;margin:6px 0 14px}.phone-ui h2{font-size:18px}
.phone-ui .panel{padding:12px;margin:10px 0;min-width:0}.phone-ui input,.phone-ui select,.phone-ui textarea{font-size:16px;max-width:100%;min-width:0;box-sizing:border-box}
.phone-ui button{white-space:normal;overflow-wrap:anywhere;max-width:100%}.phone-ui p{overflow-wrap:anywhere}
.phone-ui label{min-width:0}.phone-ui .mobile-month{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:5px 0 10px}.phone-ui .mobile-month button{min-width:40px}
.phone-ui .mobile-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.phone-ui .mobile-days button{min-width:0;min-height:39px;padding:5px;position:relative}.phone-ui .has-entry:after{content:'';position:absolute;bottom:3px;left:calc(50% - 2px);height:4px;width:4px;border-radius:50%;background:currentColor}
.phone-ui .mobile-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.phone-ui .mobile-tabs button{padding:8px 3px;font-size:14px}
.phone-ui .mobile-clock-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.phone-ui .mobile-clock{min-width:0;margin:12px 0;padding:8px;border:1px solid #ccc;border-radius:10px}.phone-ui .mobile-clock input{width:100%;min-height:36px}.phone-ui .mobile-clock-value{display:flex;align-items:center;justify-content:space-between;gap:3px}.phone-ui .mobile-clock-value strong{font-size:19px}.phone-ui .mobile-clock-value label{font-size:11px}.phone-ui .mobile-clock-value select{padding:4px;width:58px;display:block}
.phone-ui .mobile-booking>.check{display:flex;align-items:center;gap:10px;margin:9px 0}.phone-ui .mobile-booking textarea{width:100%;display:block}.phone-ui .mobile-booking>button{width:100%;min-height:48px}.phone-ui .mobile-booking small{display:block;margin-top:8px}.phone-ui .mobile-booking .balance{margin:12px 0;font-size:20px}
.phone-ui details{margin:10px 0}.phone-ui summary{cursor:pointer;padding:8px 0}.phone-ui .mobile-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.phone-ui .mobile-account-grid strong{display:block;font-size:23px;margin-top:6px}.phone-ui .mobile-account-grid .panel{margin:0}.phone-ui .mobile-links{display:grid;gap:8px;margin:15px 0}.phone-ui .mobile-error{color:#922137}
.phone-ui dialog{width:calc(100% - 20px);max-width:500px;box-sizing:border-box;padding:14px}.phone-ui .form-grid{grid-template-columns:1fr}.phone-ui .toolbar,.phone-ui .actions{flex-wrap:wrap}.phone-ui #notice,.phone-ui #save-status{max-width:calc(100vw - 24px);box-sizing:border-box}
.phone-ui .mobile-nav{margin:0}.phone-ui .mobile-booking textarea{min-height:64px}.phone-ui .mobile-clock-value select{min-height:36px}.phone-ui .mobile-clock input[type=range]{padding:0}.phone-ui .mobile-clock{margin:8px 0}.phone-ui .mobile-booking small{font-size:11px}.phone-ui #save-status[data-state=clean]{display:none}

/* Phone fit: allow every grid/flex child to shrink; preserve browser zoom. */
.phone-ui{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.phone-ui .mobile-shell,.phone-ui .workspace,.phone-ui main{width:100%;max-width:100%;min-inline-size:0}
.phone-ui .mobile-shell{max-width:520px}
.phone-ui .workspace header>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.phone-ui .workspace header>span{flex:1 1 45%;text-align:right}
.phone-ui .workspace header>button{flex:1 1 40%}
.phone-ui .mobile-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:4px}
.phone-ui .mobile-nav button{min-width:0;padding:7px 2px;text-align:center;font-size:13px;line-height:1.25}
.phone-ui .mobile-clock-pair,.phone-ui .mobile-account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.phone-ui .mobile-clock{min-inline-size:0;padding:8px 6px}
.phone-ui .mobile-clock-value{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:3px;align-items:end}
.phone-ui .mobile-clock-value>label{min-width:0;font-size:12px}
.phone-ui .mobile-clock-value>span{padding-bottom:10px}
.phone-ui .mobile-clock-value input,.phone-ui .mobile-clock-value select{width:100%;min-width:0;min-height:44px;padding:5px 2px;font-size:16px;text-align:center}
.phone-ui .mobile-clock-value .mobile-hour{font-size:18px;font-weight:700}
.phone-ui .mobile-booking>details:first-child{margin-top:0}
.phone-ui .mobile-date-hint{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.phone-ui .mobile-account-grid summary,.phone-ui .mobile-account-grid strong{overflow-wrap:anywhere}
.phone-ui .mobile-account-grid strong{font-size:20px}
.phone-ui .mobile-booking .balance{font-size:18px}
.phone-ui main>*,.phone-ui .panel>*{min-width:0;max-width:100%}
@media(max-width:360px){.phone-ui main{padding:8px}.phone-ui .panel{padding:10px}.phone-ui .workspace header{padding:8px}.phone-ui h1{font-size:21px}}
.phone-ui .workspace header{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}
.phone-ui .workspace header>strong,.phone-ui .workspace header>span{width:100%;overflow-wrap:break-word}
.phone-ui .workspace header>button{width:100%}
.phone-ui [hidden]{display:none!important}
/* Status belongs below the content on phones, never over the booking button. */
.phone-ui #save-status{position:static;transform:none;margin:8px auto;max-width:calc(100% - 16px)}

/* The focused roster and leave view keeps only navigation, the grid and the edit palette. */
.roster-focusbar{display:none;align-items:center;gap:8px;margin-bottom:12px}
[hidden]{display:none!important}
.roster-focusbar input{max-width:220px}
.fullscreen #main>h1,.fullscreen .roster-controls,.fullscreen #main>.toolbar,.fullscreen #main>.actions,.fullscreen #main>.roster-checks{display:none!important}
.fullscreen .roster-focusbar{display:flex;position:sticky;top:0;z-index:12;background:#fff;padding:8px;border-bottom:1px solid var(--line)}
.fullscreen #main>.shift-palette{display:flex!important}
.fullscreen #main{max-width:none;padding:12px}
.leave-year-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.leave-year-month{min-width:0}
.leave-year-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.leave-year-day{min-height:72px;border:1px solid var(--line);border-radius:7px;padding:4px;overflow-wrap:anywhere}
.leave-year-day>strong{display:block;margin-bottom:2px}
.leave-weekday{text-align:center;font-weight:700;font-size:12px;color:#604b6d}.leave-year-day button{min-height:26px;width:100%;padding:1px;font-size:11px}
.leave-year-day .absence-tag{display:block;font-size:11px;white-space:normal}
.absence-tag.planned{background:#ffecb1;color:#5d4510;border:1px dashed #bd9326}
@media(max-width:1000px){.leave-year-grid{grid-template-columns:1fr}}
@media(max-width:600px){.leave-year-day{min-height:55px;font-size:12px;padding:2px}.leave-year-day .absence-tag{font-size:9px}.roster-focusbar input{min-width:0;max-width:140px}}
.month-grid{gap:8px}.month-grid button{min-height:105px;background:#fff;border-color:#d8c7e2;border-radius:12px;box-shadow:0 1px 4px #231d2b12}
.month-grid button:hover{background:#f9f1fc}.month-grid strong{font-size:19px}
.calendar-title{white-space:normal;font-size:13px;border-radius:6px;padding:3px 5px;line-height:1.3}
.calendar-event-list{margin-top:18px}.calendar-event-list>summary{padding:12px;background:#f1e8f6;border-radius:8px}
@media(max-width:600px){.month-grid{gap:4px}.month-grid button{min-height:83px;padding:4px}.month-grid strong{font-size:16px}.calendar-title{font-size:10px}}
.today-events .event-count{float:right;min-width:30px;text-align:center;border-radius:20px;background:#e9daf1;color:#542c6a;font-size:15px;padding:2px 8px}
.next-event{display:grid;gap:5px;padding:15px;border-left:5px solid var(--accent);background:#f7eefb;border-radius:8px}
.lead-overview{border-left:5px solid var(--accent)}.lead-overview>label{max-width:360px}.lead-highlight{font-size:19px;font-weight:700}
.lead-unit{border-top:1px solid var(--line);padding:10px 0}.lead-unit>summary{font-size:17px}.lead-unit-content{padding:8px 14px}.lead-unit-content h3{margin-bottom:4px}
.meeting-form .meeting-rows{display:grid;gap:8px}.meeting-form .meeting-topic{margin:0;padding:10px 16px}.meeting-topic>summary{font-size:17px;padding:8px 0}
.meeting-form .meeting-footer{position:sticky;bottom:-30px;z-index:15;background:#fff;padding:12px;border-top:2px solid var(--accent);box-shadow:0 -4px 12px #0002}
.meeting-footer>.actions{margin:8px 0 0}.meeting-detail-dialog .record-detail{max-width:100%;overflow-x:hidden}.meeting-detail-topic{overflow-wrap:anywhere}
@media(max-width:600px){.meeting-form .meeting-footer{bottom:-18px}.meeting-footer>.actions{display:grid;grid-template-columns:1fr 1fr}.meeting-footer button{min-width:0}}

/* Shared dialog controls and compact desktop time entry. */
.dialog-topbar{position:sticky;top:-1px;z-index:20;display:flex;justify-content:flex-end;background:#fff;margin:-4px -4px 4px;padding:4px;pointer-events:none}
.dialog-topbar button{pointer-events:auto;font-size:25px;line-height:1;width:44px;height:44px;padding:4px;box-shadow:0 1px 5px #0002}
.desktop-booking{max-width:650px;margin:auto}.desktop-booking .mobile-booking{margin:0;padding:12px}.desktop-booking textarea{min-height:64px}
.desktop-booking .mobile-clock-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.desktop-booking .mobile-clock{min-width:0;border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:10px}
.desktop-booking .mobile-clock-value{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:end}
.desktop-booking .mobile-clock-value input,.desktop-booking .mobile-clock-value select{min-width:0;text-align:center}
.desktop-booking input[type=range]{padding:0}.desktop-booking .mobile-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.desktop-booking .mobile-month{display:flex;align-items:center;justify-content:space-between}.desktop-booking .mobile-days button{padding:4px}
.absence-tag.rejected,.leave-card.rejected{background:#ffe2e2;color:#7d2020}.leave-card.pending{background:#fff0c9;color:#614a12}.leave-card.approved{background:#dceee4;color:#16462f}
@media print{.dialog-topbar{display:none}}
.meeting-edit-dialog.meeting-maximized{width:calc(100vw - 20px)!important;max-width:none!important;height:calc(100vh - 20px);max-height:none;box-sizing:border-box}
.meeting-edit-dialog .dialog-topbar{gap:8px}.meeting-maximized .meeting-rows .panel{grid-template-columns:repeat(2,minmax(0,1fr))}
.lead-filters{display:flex;gap:12px;flex-wrap:wrap}.lead-filters label{flex:1 1 200px;max-width:340px}
.lead-status-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lead-status-columns>div{border:1px solid var(--line);border-radius:10px;padding:12px;min-width:0}
.lead-special-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:9px}.lead-special-day{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbf8fc}.lead-special-day>strong{display:block;margin-bottom:8px}.lead-special-day>div{display:grid;gap:4px;margin-top:7px}.lead-special-day small{color:var(--muted)}.lead-schedule-person,.lead-report-person{display:block;border-radius:5px;padding:3px 6px;overflow-wrap:anywhere}.lead-schedule-person{background:#e9dcf2}.lead-report-person{background:#d9eee5}
.phone-ui .mobile-roster-month{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.phone-ui .mobile-roster-day{display:flex;flex-direction:column;align-items:stretch;gap:3px;text-align:left;min-width:0;min-height:70px;padding:5px;overflow:hidden}.phone-ui .mobile-roster-day.primary{border:2px solid var(--accent)}.phone-ui .mobile-roster-day strong{font-size:13px}.phone-ui .mobile-roster-shift{display:block;border-radius:5px;padding:2px 4px;font-size:10px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phone-ui .mobile-roster-legend{display:flex;flex-wrap:wrap;gap:4px 10px;margin:10px 0;font-size:12px}.phone-ui .mobile-roster-legend>span{display:inline-flex;align-items:center;gap:4px}.phone-ui .mobile-roster-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.phone-ui .mobile-end-date{margin:8px 0}
@media(max-width:650px){.lead-status-columns{grid-template-columns:1fr}.meeting-maximized .meeting-rows .panel{grid-template-columns:1fr}}

/* Compact phone view is deliberately limited to staff accounts. */
.staff-compact .workspace header{padding:4px 8px;font-size:12px;gap:2px}
.staff-compact .workspace header>strong,.staff-compact .workspace header>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.staff-compact .mobile-nav{padding:3px 4px}.staff-compact .mobile-nav button{position:relative;min-height:44px}
.phone-ui .mobile-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important;max-height:none!important;overflow:visible!important}
.staff-compact main{padding:6px 8px}.staff-compact h1{font-size:19px;margin:2px 0 4px}
.staff-compact .mobile-month{margin:0 0 5px}.staff-compact .mobile-month button{min-height:40px;padding:5px 12px}
.staff-compact .account-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 3px;border-radius:12px;background:#a51b46;color:white;font-size:11px;line-height:1;margin-left:3px}
.staff-compact .compact-roster-controls,.staff-compact .compact-calendar-controls{display:flex;gap:4px;align-items:center;margin-bottom:6px}
.staff-compact .compact-roster-controls select{flex:1;min-width:0;width:40%;padding:6px 2px;font-size:13px;min-height:40px}
.staff-compact .compact-roster-controls button,.staff-compact .compact-calendar-controls button{padding:6px;font-size:12px;min-height:40px}
.staff-compact .compact-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.staff-compact .compact-weekday{text-align:center;font-size:11px;color:var(--muted)}
.staff-compact .compact-day{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0;min-height:67px;padding:3px 2px;text-align:left;border-radius:6px;overflow:hidden}
.staff-compact .compact-day strong{font-size:12px;line-height:16px}.staff-compact .compact-day small{font-size:10px;line-height:12px}
.staff-compact .compact-day.is-today{outline:2px solid var(--accent);outline-offset:-2px}
.staff-compact .compact-tag{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:2px;font-size:10px;line-height:12px;font-weight:700;min-width:0}
.staff-compact .compact-key{font-size:11px;line-height:1.35;margin:6px 0}
.staff-compact .compact-legend .compact-tag{display:inline-block;margin:3px;font-size:12px;padding:4px}
.staff-compact .compact-year{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.staff-compact .compact-inbox{margin-bottom:12px}.staff-compact .compact-inbox h2{margin:4px 0 6px}
.staff-compact .compact-inbox button{display:block;width:100%;text-align:left;margin:5px 0;font-size:13px;min-height:44px}
.staff-compact .compact-event-grid .compact-tag{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:28px}

/* Configurable care workspace */
body{font-size:var(--user-font-size,16px)}
.paused-module{background:#e5e7eb!important;color:#374151!important;border-color:#9ca3af!important;box-shadow:none!important}.paused-module small{display:block;font-size:.72em}
.daily-task-panel{margin-top:10px}.daily-task{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:9px 0;border-bottom:1px solid #ddd}.daily-task>button{text-align:left}.daily-task small{grid-column:1/-1}.task-state{align-self:center;white-space:nowrap}.daily-task.done .task-state{color:#176033}.daily-task.open .task-state{color:#855900}.daily-task.not_required .task-state{color:#555}
.fls-daily-progress{grid-column:1/-1;overflow-wrap:anywhere;font-size:.85em}.fls-daily-progress p{margin:4px 0}
.task-badge{display:inline-block;margin-left:10px;padding:3px 9px;border-radius:16px;background:#a51b46;color:#fff;font-size:.7em}.assigned-task-panel h2{display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.compact-density main{padding:12px}.compact-density .panel{padding:12px;margin:8px 0}.compact-density td,.compact-density th{padding:5px}.compact-density nav button{padding:7px 10px}
.appearance-menu-editor .edit-row{cursor:grab;display:flex;flex-wrap:wrap;gap:8px}.appearance-menu-editor input[type=text]{flex:1;min-width:180px}.edit-row select{max-width:100%}.edit-row{flex-wrap:wrap}.edit-row input[type=color]{max-width:60px}.mobile-nav{overflow-x:auto!important}.phone-ui .daily-task{grid-template-columns:minmax(0,1fr) auto}.phone-ui .daily-task button{min-width:0;overflow-wrap:anywhere}
@media(max-width:450px){.daily-task{grid-template-columns:1fr}.daily-task small{grid-column:auto}.daily-task .task-state{font-size:.9em}.edit-row{display:flex;flex-direction:column;align-items:stretch}}
.daily-task-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px}.daily-task-panel>h2,.daily-task-panel>p{grid-column:1/-1}.daily-task-panel .daily-task{align-content:start;grid-template-columns:1fr;gap:5px;padding:8px}.daily-task-panel .daily-task>button{width:100%;min-height:44px}.daily-task-panel .task-state{font-size:.85em;white-space:normal}.daily-task-panel small{font-size:.8em}
@media(max-width:900px){.daily-task-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.daily-task-panel{grid-template-columns:1fr;gap:2px}.daily-task-panel .daily-task{grid-template-columns:minmax(0,1fr) 82px;padding:6px 0}.daily-task-panel .daily-task>button{font-size:.9em}.daily-task-panel .daily-task small{grid-column:1/-1}.daily-task-panel .daily-task>button:last-child:not(:first-child){grid-column:1/-1}}

.inactive-menu summary,.inactive-settings summary{color:#777;cursor:pointer;padding:12px}.inactive-menu button{display:block;width:100%}.inactive-settings h2{color:#777}.custom-rule{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0}.custom-rule strong{min-width:140px}.custom-rule label{display:flex;gap:6px;align-items:center}

/* Text formatting retains existing fields, document grid and print layout. */
.nav-section{display:flex;flex-direction:column;gap:3px;margin:8px 0 14px}.nav-section h2{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#6b6074;margin:8px 8px 4px}.nav-section button{width:100%}
.mobile-conversation-back{display:none}@media(max-width:760px){.conversation-selected .messenger-sidebar{display:none}.conversation-selected .mobile-conversation-back{display:block;margin-bottom:12px}.messenger-layout:not(.conversation-selected) .messenger-conversation{display:none}}
.roster-photo canvas,.roster-photo-proof{max-width:100%;height:auto;display:block;margin:12px auto}.roster-photo canvas{touch-action:manipulation;cursor:crosshair}.roster-photo .table-wrap{max-height:55vh}.roster-photo td input[type=date]{min-width:145px}.roster-photo td input[type=time]{min-width:105px}.roster-photo td select{min-width:115px}.roster-photo label{margin:10px 0}dialog:has(.roster-photo){width:min(1250px,96vw)}
@media(max-width:600px){.roster-photo table,.roster-photo tbody,.roster-photo tr{display:block;width:100%}.roster-photo thead{display:none}.roster-photo tr{padding:8px 0;border-bottom:3px solid var(--accent)}.roster-photo td{display:grid;grid-template-columns:minmax(0,1fr);padding:5px 10px;border:0}.roster-photo td::before{content:attr(data-label);font-size:12px;font-weight:700}.roster-photo td input,.roster-photo td select{min-width:0!important;max-width:100%}}
@media screen and (max-width:800px){
 nav,.mobile-nav,.staff-compact .mobile-nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;max-width:100%;max-height:35vh;overflow-y:auto;overflow-x:visible;white-space:normal}
 nav .nav-section{display:contents}nav .nav-section h2{display:none}
 nav button,nav .nav-section button,.mobile-nav button{width:100%;min-width:0;white-space:normal!important;overflow-wrap:anywhere;flex-shrink:1;padding:8px}
 nav .inactive-menu{grid-column:1/-1}
 .shell,.workspace,main,aside,.panel,.toolbar,.actions,.form-grid>*,.edit-row>*{min-width:0;max-width:100%}
 header{flex-wrap:wrap;padding:12px}header>*{min-width:0;max-width:100%}
 button,input,select,textarea{max-width:100%}button{white-space:normal;overflow-wrap:anywhere}
 .toolbar label{min-width:0;flex-basis:140px}
 main{overflow-wrap:anywhere}
 .responsive-table:not(.roster),.responsive-table:not(.roster)>tbody,.responsive-table:not(.roster)>tbody>tr{display:block;width:100%}
 .responsive-table:not(.roster)>thead{display:none}
 .responsive-table:not(.roster)>tbody>tr{padding:8px;border-bottom:2px solid var(--line)}
 .responsive-table:not(.roster)>tbody>tr>td{display:block;border:0;white-space:normal;overflow-wrap:anywhere;min-width:0;padding:6px}
 .responsive-table:not(.roster)>tbody>tr>td::before{content:attr(data-label);display:block;font-size:.8rem;font-weight:700;color:var(--muted)}
 .edit-row{flex-wrap:wrap}.edit-row input:not([type=color]),.edit-row select{flex:1 1 100%;min-width:0}
 .personnel-facts{grid-template-columns:minmax(0,1fr)!important}
}
.settings-section{padding:12px;border:1px solid var(--line);border-radius:10px}.settings-section>summary{padding:4px}.settings-section[open]>summary{margin-bottom:16px}
@media screen and (max-width:800px){.roster .responsive-table>tbody>tr>td:first-child{position:static;min-width:0}.roster .responsive-table>tbody>tr>td{min-width:0}}
.personnel-facts{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,2fr);gap:10px}.personnel-facts dt{font-weight:650}.personnel-facts dd{margin:0;overflow-wrap:anywhere}.personnel-file input[type=file]{margin:12px 0}
.category-parameters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:-8px 0 16px}.category-parameters p{flex-basis:100%;margin:0}.parameter-editor{max-width:850px}.parameter-editor label{display:block;margin:8px 0;min-width:0}.parameter-editor textarea,.parameter-editor input:not([type=checkbox]),.parameter-editor select{display:block;width:100%;max-width:100%}.parameter-rule fieldset{display:flex;gap:10px;flex-wrap:wrap}.parameter-rule fieldset label{display:flex;align-items:center;gap:6px}.messenger-float{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));z-index:45;max-width:calc(100vw - 32px)}.messenger-bubble{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:var(--accent,#79348c);color:white;box-shadow:0 5px 20px #24162b44;margin-left:auto}.messenger-bubble svg{width:26px;height:26px}.messenger-float-window{width:420px;max-width:100%;max-height:72dvh;overflow:auto;background:#fff;border:1px solid #cbbbd4;border-radius:18px;box-shadow:0 10px 40px #24162b44;padding:14px;margin-bottom:10px}.messenger-float-window[hidden]{display:none}.messenger-float-window header{display:flex;gap:6px;align-items:center;justify-content:space-between}.messenger-float-window textarea{width:100%;min-height:65px}.messenger-float-window .message-stream{max-height:32dvh}.float-thread-list{display:flex;flex-direction:column;gap:5px}.float-thread-list button{text-align:left;white-space:normal}.float-thread-list[hidden]{display:none}@media(max-width:600px){.messenger-float{bottom:82px;right:12px;max-width:calc(100vw - 24px)}.messenger-float-window{width:calc(100vw - 24px);max-height:65dvh}.category-parameters button{font-size:.85rem;padding:6px 10px}}@media print{.messenger-float,.category-parameters{display:none!important}}
.messenger-layout{display:grid;grid-template-columns:minmax(190px,280px) minmax(0,1fr);gap:18px}.messenger-sidebar{min-width:0;align-self:start}.messenger-sidebar h2{font-size:1rem;margin-top:18px}.messenger-sidebar input{width:100%}.messenger-conversations,.messenger-people{display:flex;flex-direction:column;gap:6px;margin:10px 0}.messenger-sidebar button{text-align:left;white-space:normal;overflow-wrap:anywhere}.messenger-conversation{min-width:0}.message-item small{color:#62586b}@media(max-width:760px){.messenger-layout{grid-template-columns:minmax(0,1fr)}.messenger-people{max-height:180px;overflow:auto}.messenger-conversations{max-height:150px;overflow:auto}}
.dossier-tabs{flex-wrap:wrap}.message-stream{max-height:55vh;overflow:auto;overflow-wrap:anywhere;padding:8px}.message-item{background:var(--panel,#fff);border:1px solid var(--line,#ddd);border-radius:12px;padding:12px;margin:8px 0}.message-item p{margin:8px 0;white-space:pre-wrap}.message-composer textarea{min-height:90px;width:100%}.assistant-box label{display:block;margin:14px 0}.assistant-box textarea{display:block;width:100%;min-height:100px}.assistant-box textarea[readonly]{min-height:190px;background:#f5f2f8}.dossier-tabs button{white-space:normal}@media(max-width:600px){.dossier-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.message-stream{max-height:45vh}.assistant-box .actions{flex-direction:column}.message-composer{padding:12px}}
.rich-field{position:relative;min-width:0}.rich-editor{width:100%;border:1px solid #a49bac;border-radius:7px;padding:10px;min-height:120px;background:#fff;color:#201629;font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;resize:vertical;overflow:auto;outline-offset:2px}.rich-editor:focus{outline:2px solid var(--accent)}.rich-toggle{position:absolute;right:6px;top:6px;min-height:28px;padding:2px 7px;font-size:12px;background:#faf7fc;color:var(--accent);opacity:.85}.rich-toolbar{position:absolute;right:0;top:35px;z-index:12;display:flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:100%;padding:7px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 4px 18px #231d2b22}.rich-toolbar[hidden],.inline-sign-question[hidden]{display:none}.rich-toolbar button{padding:4px 8px;min-height:34px;font-size:13px}.rich-toolbar input[type=color]{width:36px;padding:2px;min-height:34px;height:34px}.rich-toolbar select{width:145px;min-height:34px;padding:4px;font-size:13px}.rich-inline{display:inline;white-space:pre-wrap}.document-form .rich-editor{min-height:150px;font-size:17px;line-height:1.6}.document-form label:has(textarea[name=reflection]) .rich-editor{min-height:270px}.meeting-rows .rich-editor{min-height:110px}.document-form .meeting-rows .rich-editor{min-height:120px}.doc-grid .rich-editor{min-height:250px}.inline-sign-host{position:relative;display:inline-flex;max-width:100%}.inline-sign-question{position:absolute;bottom:0;right:0;z-index:15;display:flex;align-items:center;gap:8px;width:max-content;max-width:min(470px,88vw);padding:0 0 0 10px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 4px 18px #231d2b22;white-space:nowrap}.inline-sign-question strong{font-size:13px}.inline-sign-actions{display:flex;gap:5px}.inline-sign-actions button{padding:9px 10px}.inline-sign-question button{opacity:1}.inline-sign-question .primary{white-space:nowrap}@media(max-width:470px){.inline-sign-question{gap:5px;padding-left:6px}.inline-sign-question strong{font-size:11px}.inline-sign-actions button{font-size:12px;padding:9px 7px}}@media print{.rich-toggle,.rich-toolbar,.inline-sign-host{display:none!important}.rich-editor{resize:none;overflow:visible;border:0}}
.photo-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:12px 0}.photo-plan-line{display:grid;grid-template-columns:26px repeat(4,minmax(0,1fr));gap:3px;align-items:stretch;margin:3px 0}.photo-plan-line>strong{align-self:center;font-size:12px}.photo-plan-head{font-size:12px;font-weight:700}.photo-plan-cell{min-width:0;padding:5px 3px!important;text-align:left;border:1px solid #b9d6cb!important;background:#edf8f2!important;color:#173b31!important;border-radius:5px!important;line-height:1.2}.photo-plan-cell strong,.photo-plan-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.photo-plan-cell small{font-size:10px;margin-top:2px}.photo-plan-cell.uncertain{background:#fff2cc!important;border-color:#ad7a13!important;color:#513b0b!important}.photo-plan-cell.omitted{background:#f1f3f5!important;color:#515b65!important;border-color:#d6dbe0!important}.photo-plan-editor{padding:12px;background:#f4f7fa;border:1px solid #bac9d8;border-radius:8px}.photo-plan-editor label{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin-right:10px}.photo-plan-editor input[type=time]{width:110px}.photo-plan-editor select{max-width:100%}.roster-photo [hidden]{display:none!important}@media(max-width:900px){.photo-plan-grid{grid-template-columns:minmax(0,1fr)}}
@media(min-width:901px){.photo-plan-cell{min-height:32px!important}}@media(max-width:700px){.photo-plan-cell small{white-space:normal;overflow:visible;overflow-wrap:anywhere;font-size:10px}.photo-plan-cell strong{font-size:11px}.photo-plan-editor label{display:flex}.photo-plan-editor input,.photo-plan-editor select{min-width:0}}
.section-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-titlebar h1{margin:0;min-width:0;overflow-wrap:anywhere}.section-titlebar>button{margin-left:auto;flex-shrink:0}.section-settings{max-width:850px}.section-settings>label{display:block;margin:12px 0}.section-settings label>input:not([type=checkbox]),.section-settings label>select{display:block;width:100%;max-width:100%}.section-settings .edit-row>input:first-child{min-width:0;flex:1}.section-settings input[type=color]{width:48px;min-width:48px}.section-settings .actions{flex-wrap:wrap}.section-settings .panel label{display:block;margin:8px 0}@media(max-width:600px){.section-titlebar{align-items:flex-start;gap:8px}.section-titlebar h1{font-size:1.25rem}.section-titlebar>button{white-space:normal;max-width:50%;font-size:.8rem;padding:7px 9px}.section-settings .edit-row{flex-wrap:wrap}}@media print{.section-titlebar>button{display:none!important}}
/* Stable, roomy editors and compact administration. */
@media screen{
 #main{overflow-anchor:none}dialog{width:min(1120px,96vw);max-height:94dvh;padding:18px}
 dialog form>.actions,.sticky-actions{position:sticky;bottom:0;z-index:16;padding:10px;background:#f0f2ee;border-top:1px solid var(--line);margin-bottom:0}
 .cash-actions{position:static;background:transparent;padding:0;border-radius:0}
 .fls-child-setting{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(110px,.7fr) minmax(190px,1.5fr);gap:12px;align-items:center;margin:12px 0}
 .fls-child-setting>label:first-child,.fls-child-setting>label:last-child{display:flex;align-items:center;gap:9px}.fls-child-setting input[type=checkbox]{flex:none}
 .fls-catalog-row{display:grid;grid-template-columns:32px minmax(0,1fr) 90px;gap:10px;align-items:center;margin:9px 0}.fls-catalog-row label{display:flex;align-items:center;gap:6px}
 .meeting-rows details.meeting-topic{display:block}.meeting-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .meeting-topic-grid label{grid-column:auto!important}.meeting-topic-grid [data-field=topic]{grid-column:1/3!important}.meeting-topic-grid [data-field=discussion],.meeting-topic-grid [data-field=decision],.meeting-topic-grid [data-field=next]{grid-column:1/-1!important}
 .meeting-topic-grid .rich-editor{min-height:95px!important}.meeting-topic-grid [data-field=discussion],.meeting-topic-grid [data-field=decision]{grid-column:span 1!important}
 .meeting-form>.form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.meeting-form>.form-grid>label{grid-column:span 1!important}.meeting-form>.form-grid>label:has(input[name=title]){grid-column:span 3!important}.meeting-form>.form-grid>label:has(textarea[name=participants]){grid-column:span 2!important}.meeting-form>.form-grid .rich-editor{min-height:62px;font-size:16px;line-height:1.4}.meeting-form{gap:12px}
 .meeting-topic-grid [data-field=next]{grid-column:span 1!important}
 .fullscreen-exit{position:fixed;right:16px;top:12px;z-index:40;font-size:25px;box-shadow:0 3px 12px #25374422}
 .admin-hidden-module{border:1px dashed #a4aeb6!important}.admin-hidden-module small{display:block;font-size:.7rem;font-weight:400}
 .chat-group-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 18px}.chat-group-tabs button{border-radius:20px;padding:10px 18px}
 .message-item{max-width:92%;background:#edf2f4;border-color:#c9d8df}.message-item.is-own{margin-left:auto;background:#e9e1ee;border-color:#cdbbd6}
 .messenger-sidebar{background:#e8edf0;border-color:#c5d2da}.messenger-conversation{padding:16px;border:1px solid var(--line);border-radius:16px;background:#f1f3f1}
 .large-date-row{display:flex;gap:8px;align-items:center}.large-date-row input{flex:1;min-width:0}.large-date-row button{flex:none}
 .date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.date-picker-grid button{padding:10px 4px;font-size:1.1rem;min-height:48px}.date-picker-tools{display:grid;grid-template-columns:52px minmax(0,1fr) 110px 52px;gap:8px;margin:12px 0}
 .dashboard-followup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-followup>.panel{margin:0}
}
@media(max-width:700px){.fls-child-setting{grid-template-columns:minmax(0,1fr)}.fls-child-setting>label:last-child{grid-column:1}.meeting-topic-grid{grid-template-columns:minmax(0,1fr)}.meeting-topic-grid label{grid-column:1!important}.dashboard-followup{grid-template-columns:minmax(0,1fr)}.date-picker-tools{grid-template-columns:44px minmax(0,1fr) 90px 44px}.messenger-conversation{padding:10px}}
@media(max-width:700px){.meeting-form>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meeting-form>.form-grid>label:has(input[name=title]),.meeting-form>.form-grid>label:has(textarea[name=participants]){grid-column:1/-1!important}}
@media print{.fullscreen-exit,.chat-group-tabs,.sticky-actions{display:none!important}}
@media screen{
 dialog.meeting-edit-dialog{width:min(1450px,97vw);max-width:97vw;height:94dvh;max-height:94dvh}
 .meeting-topic-tools{position:sticky;top:52px;z-index:5;background:var(--panel,#f1f3f1);border:1px solid var(--line);border-radius:10px;padding:8px}
 .meeting-topic-nav{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}
 .meeting-topic-nav button{padding:8px 3px;font-size:14px;min-width:0}
 .meeting-topic-tools .actions{margin:0 0 6px}.meeting-rows .meeting-topic{scroll-margin-top:180px}
 .fls-signatures{white-space:pre-wrap;padding:12px;border:1px solid var(--line);border-radius:10px}
 .custom-area-editor{min-width:0}.custom-data-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.custom-data-row>strong{grid-column:1/-1}.custom-column-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 @media(max-width:700px){.meeting-topic-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.custom-data-row,.custom-column-editor{grid-template-columns:minmax(0,1fr)}.meeting-topic-tools{top:42px}}
}
@media print{.meeting-topic-tools{display:none!important}}
@media screen{
 nav button.active:not(.paused-module){background:var(--menu-color,var(--accent))!important;color:var(--menu-ink,var(--on-accent))!important}
 .roster-save-bar{position:sticky;top:8px;z-index:12;background:var(--panel,#f1f3f1);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:12px 0;box-shadow:0 3px 12px #25374418}
 .roster-save-bar .actions{margin:0;flex-wrap:wrap}.roster-save-bar [role=status]{font-weight:700}.roster-save-bar .error:empty{display:none}
 .roster-cell-draft{outline:2px dashed var(--accent);outline-offset:-3px}
 .menu-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.menu-color-grid label{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:8px;padding:8px}
 .menu-color-grid input[type=color]{flex:none;width:52px;min-height:38px}
 @media(max-width:700px){.menu-color-grid{grid-template-columns:minmax(0,1fr)}.roster-save-bar{top:4px;padding:8px}}
}
@media print{.roster-save-bar{display:none!important}}
@media screen{
 .dashboard-followup{align-items:start;margin:12px 0 18px}.dashboard-followup>.panel{min-width:0}
 .fls-second-panel h2{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:0}
 .fls-pending-count{font-size:.85rem;min-width:30px;text-align:center;border-radius:20px;padding:4px 8px;background:var(--accent);color:var(--on-accent)}
 .fls-review-list{max-height:310px;overflow:auto}.fls-review-card{padding:12px 0;border-top:1px solid var(--line)}.fls-review-card>p{margin:5px 0;font-size:.88rem}.fls-review-card details{margin:8px 0}.fls-review-card .check{font-weight:600;padding:9px;background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:8px}.fls-review-card input[type=checkbox]{width:22px;height:22px;flex:none;accent-color:var(--accent)}
 .messenger-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px}.messenger-toolbar .actions,.messenger-toolbar .chat-group-tabs{margin:0}.messenger-toolbar .actions{gap:7px}
 .messenger-layout{--chat-surface:#f4f6f4;--chat-soft:#e5eeeb;--chat-avatar:#e9e1ef;--chat-own:#eae1f0;grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--chat-surface)}
 .messenger-sidebar.panel{margin:0;border:0;border-right:1px solid var(--line);border-radius:0;padding:18px;background:var(--chat-surface);align-self:stretch}
 .messenger-sidebar h2{margin:0 0 14px;font-size:1.15rem}.messenger-sidebar h3{margin:20px 4px 8px;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#62586b)}
 .messenger-sidebar input[type=search]{border-radius:12px;margin:0 0 12px;min-height:44px}
 .messenger-conversations,.messenger-people{gap:4px;margin:0;max-height:320px;overflow:auto}
 .messenger-sidebar .chat-contact{display:flex;align-items:center;gap:10px;width:100%;padding:10px 8px;margin:0;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink);box-shadow:none;min-height:60px}
 .messenger-sidebar .chat-contact:hover{background:var(--chat-soft);border-color:var(--line)}.messenger-sidebar .chat-contact.is-selected{background:var(--chat-avatar);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
 .chat-avatar{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--chat-avatar);color:var(--ink);font-size:.85rem;font-weight:700;letter-spacing:.02em}.chat-avatar.group{border-radius:13px;background:var(--chat-soft)}
 .chat-contact-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.chat-contact-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.94rem}.chat-contact-text small{font-size:.76rem;color:var(--muted,#62586b)}
 .chat-unread{min-width:23px;min-height:23px;display:grid;place-items:center;border-radius:20px;padding:3px 6px;background:var(--accent);color:var(--on-accent);font-size:.75rem;font-weight:700}
 .messenger-conversation{border:0;border-radius:0;padding:20px 24px;background:var(--chat-surface);min-width:0;min-height:410px}
 .chat-conversation-header{display:flex;align-items:center;gap:12px;padding:0 0 16px;border-bottom:1px solid var(--line);margin-bottom:16px}.chat-conversation-header>div{flex:1;min-width:0}.chat-conversation-header h2{font-size:1.15rem;margin:0;overflow-wrap:anywhere}.chat-status{font-size:.8rem;margin:4px 0 0}.chat-conversation-header>button{font-size:.8rem;padding:8px}
 .chat-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;min-height:370px;padding:24px}.chat-empty>.chat-avatar{width:64px;height:64px;font-size:1.2rem}.chat-empty h2{font-size:1.3rem;margin:20px 0 6px}.chat-empty p{max-width:320px;line-height:1.6}
 .message-composer{padding:12px;background:var(--chat-soft);border:1px solid var(--line);border-radius:14px;margin:0 0 20px}.message-composer textarea{width:100%;min-height:80px;max-height:210px;resize:vertical;border:0;border-radius:9px;padding:12px;font:inherit}.message-composer .actions{margin:9px 0 0;gap:7px;flex-wrap:wrap}.message-composer .actions>button{font-size:.82rem;padding:8px 12px}.message-composer .actions>button.primary{margin-right:auto}.message-composer .error:empty{display:none}
 .chat-discard-check:not([hidden]){display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;font-size:.85rem}
 .chat-stream-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;font-size:.85rem}.chat-stream-heading small{font-size:.75rem}
 .message-stream{display:flex;flex-direction:column;gap:10px;max-height:55dvh;overflow:auto;padding:2px 4px 12px;scrollbar-gutter:stable}
 .message-item{align-self:flex-start;max-width:88%;margin:0;padding:12px 15px;background:var(--chat-soft);border:1px solid var(--line);border-radius:4px 15px 15px 15px}.message-item.is-own{align-self:flex-end;margin:0;background:var(--chat-own);border-radius:15px 4px 15px 15px}.message-item p{margin:7px 0 0;line-height:1.5;overflow-wrap:anywhere}.chat-message-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.8rem}.chat-message-meta small{font-size:.7rem;color:var(--muted,#62586b)}
 .chat-list-empty{font-size:.85rem;color:var(--muted,#62586b);padding:6px 8px;line-height:1.5}
 @media(max-width:760px){.messenger-layout{grid-template-columns:minmax(0,1fr)}.messenger-sidebar.panel{border-right:0;padding:14px}.messenger-conversation{padding:14px;min-height:0}.messenger-toolbar{gap:10px}.messenger-toolbar .actions{width:100%;flex-wrap:wrap}.messenger-toolbar button{font-size:.8rem}.message-stream{max-height:46dvh}.chat-conversation-header{gap:8px}.chat-conversation-header h2{font-size:1rem}.chat-contact-text strong{white-space:normal}.message-item{max-width:95%}.fls-review-list{max-height:none}}
}

/* App identity: keep the symbol separate from configurable text. */
.brand{display:flex;align-items:center;gap:10px;line-height:1.2}
.app-brand-icon{display:block;width:40px;height:40px;flex:0 0 40px;border-radius:9px}
.brand-name{min-width:0;overflow-wrap:anywhere}
aside .brand{padding:0 4px;font-size:1.12rem;letter-spacing:-.025em}
aside .app-brand-icon{width:34px;height:34px;flex-basis:34px;border-radius:8px}
.mobile-identity{display:flex;align-items:center;gap:9px;min-width:0}
.mobile-identity .app-brand-icon{width:32px;height:32px;flex-basis:32px;border-radius:7px}
@media print{.app-brand-icon{display:none}}
