:root{--bg:#f6f5f1;--surface:#fff;--ink:#26332c;--muted:#718078;--sage:#698a77;--sage-dark:#3d6550;--sage-light:#e9f2eb;--rose:#bd775d;--rose-pale:#faede5;--line:#e6eae3;--gold:#ae8140;--gold-pale:#fff4df;--red:#bb4f43;--red-pale:#fbece9;--shadow:0 8px 30px rgba(38,51,44,.045);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #9bc8ac;outline-offset:2px}a{color:var(--sage-dark)}p{line-height:1.55}small{font-size:12px}.app-shell{display:flex;min-height:100vh}.sidebar{width:262px;position:sticky;top:0;height:100vh;flex-shrink:0;background:#fff;display:flex;flex-direction:column;border-right:1px solid var(--line);padding:27px 15px 22px}.brand{display:flex;align-items:center;gap:10px;padding:0 15px}.brand-mark{display:grid;place-items:center;background:#e7eee8;color:#5c836e;font-size:32px;border-radius:17px;width:48px;height:48px}.brand strong{font-size:18px;letter-spacing:-.85px;font-weight:800}.brand strong span{color:var(--rose)}.brand small{display:block;font-size:10px;font-weight:750;letter-spacing:2.2px;color:#789281;margin-top:2px}.workspace-tag{display:flex;align-items:center;gap:8px;color:#7b8e7e;font-size:11px;margin:27px 15px 25px}.online-dot{width:7px;height:7px;border-radius:50%;background:#84b895}.navigation{display:flex;flex-direction:column;gap:4px;overflow:auto}.nav-group{margin:16px 14px 9px;color:#9aa6a0;font-size:10px;letter-spacing:1.5px;font-weight:800}.nav-link{display:flex;align-items:center;gap:12px;border:0;width:100%;text-align:left;background:transparent;color:#64746b;border-radius:11px;padding:11px 13px;font-size:13px;font-weight:650}.nav-link:hover{background:#f7f9f6}.nav-link.active{background:#e9f1e9;color:#426951}.nav-icon{display:inline-grid;place-items:center;font-size:18px;width:22px;flex-shrink:0}.nav-count{margin-left:auto;background:#eff1ed;color:#68776b;border-radius:50px;font-size:10px;min-width:20px;text-align:center;padding:3px 7px}.nav-link.active .nav-count{background:#d9e9db;color:#365b43}.sidebar-bottom{margin-top:auto}.sidebar-card{background:linear-gradient(145deg,#eaf1e9,#f7f3e9);border-radius:14px;padding:18px;margin:12px 5px}.sidebar-card .micro{color:#779280;display:block;font-size:9px;letter-spacing:1.2px;font-weight:750}.sidebar-card strong{font-size:13px;display:block;margin-top:12px}.sidebar-card p{font-size:11px;color:#708178;margin:6px 0 0}.version{font-size:10px;color:#a1aca4;margin:15px;text-align:center}.content-shell{width:calc(100% - 262px);min-width:0}.topbar{height:80px;padding:0 39px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff}.topbar-left,.topbar-actions{display:flex;align-items:center;gap:13px}.breadcrumbs span{display:block;color:#9ba69f;font-weight:800;letter-spacing:1.45px;font-size:10px}.breadcrumbs strong{font-size:14px;font-weight:700;margin-top:5px;display:block}.role-switch{background:#f5f7f3;border:1px solid #e7ebe5;border-radius:9px;color:#486855;font-size:12px;font-weight:700;padding:10px 12px}.chev{margin-left:8px;color:#8ba495}.avatar{display:grid;place-items:center;border-radius:50%;width:36px;height:36px;background:#dbe9dd;color:#456a51;font-size:12px;font-weight:800}.demo-pill{font-size:10px;color:#ac7641;background:#fff2df;border:1px solid #f5ddb6;border-radius:20px;padding:7px 10px;letter-spacing:.5px;font-weight:800}.mobile-menu{display:none}.security-banner{margin:20px 39px 0;background:#fff8ea;color:#836744;border:1px solid #efddba;border-radius:12px;padding:13px 15px;display:flex;align-items:flex-start;gap:12px;font-size:12px;line-height:1.55}.security-banner strong{color:#76522f}.alert-glyph{border:1.5px solid #c79a56;border-radius:50%;display:grid;place-items:center;height:18px;width:18px;flex-shrink:0;font-weight:bold}.security-banner button{margin-left:auto;background:transparent;border:0;color:#ad906d;font-size:21px}.main-wrap{max-width:1440px;margin:auto;padding:30px 39px 70px}.eyebrow{color:var(--sage);font-size:10px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase;margin:0 0 12px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:27px;flex-wrap:wrap}.page-head h1{font-size:30px;margin:0;letter-spacing:-1.25px;font-weight:750}.page-head p{color:var(--muted);margin:9px 0 0;font-size:13px}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;padding:11px 15px;font-size:12px;font-weight:760;min-height:41px;white-space:nowrap}.btn-primary{background:var(--sage-dark);color:white}.btn-primary:hover{background:#31523f}.btn-secondary{background:white;border-color:#dbe5dc;color:#456a51}.btn-secondary:hover{background:#eef4ee}.btn-ghost{background:transparent;color:#647b69;border-color:#e3e8e2}.btn-danger{color:#a3463f;background:#fff0ed;border-color:#f4d3cc}.btn-small{min-height:33px;font-size:11px;padding:6px 10px}.grid{display:grid;gap:17px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:21px}.stat-card{background:white;border:1px solid var(--line);border-radius:15px;padding:21px;min-height:137px;box-shadow:var(--shadow)}.stat-card .meta{color:#829188;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:1.1px;display:flex;justify-content:space-between;align-items:center}.stat-icon{background:#eff4ed;color:#658777;display:grid;place-items:center;width:31px;height:31px;border-radius:9px;font-size:16px}.stat-card .value{font-size:32px;font-weight:780;letter-spacing:-1.4px;margin-top:16px}.stat-card .foot{font-size:11px;color:#8b998d;margin-top:5px}.panels{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr)}.panel{background:white;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);min-width:0}.panel-pad{padding:22px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px}.panel-title h2{font-size:15px;letter-spacing:-.35px;margin:0}.panel-title small{color:#829188}.text-link{border:0;background:transparent;color:#4d765a;font-weight:760;font-size:12px}.list-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #f0f1ed}.list-row:last-child{border-bottom:0}.date-chip{width:45px;min-width:45px;height:51px;background:#f4f7f1;border-radius:9px;color:#59735e;display:flex;flex-direction:column;align-items:center;justify-content:center}.date-chip b{font-size:17px}.date-chip span{font-size:9px;letter-spacing:.5px;text-transform:uppercase}.list-info{min-width:0;flex:1}.list-info strong{font-size:12.5px}.list-info .sub{font-size:11px;color:#8e9b90;margin-top:5px}.small-badge,.status{font-size:10px;font-weight:780;letter-spacing:.1px;border-radius:18px;display:inline-flex;align-items:center;gap:5px;padding:5px 9px;white-space:nowrap;background:#eef4ee;color:#56755f}.small-badge.private{background:#f7f1e8;color:#9a754c}.small-badge.ndis{background:#eaf1fc;color:#5279a3}.status.open,.status.overdue,.status.high,.status.critical{background:#fff0ec;color:#b14f3f}.status.draft,.status.review,.status.investigating,.status.medium{background:#fff4e1;color:#a87b38}.status.closed,.status.complete,.status.active,.status.verified,.status.implemented,.status.low{background:#e8f3eb;color:#4b7956}.status.pending,.status.not-started{background:#eff1f0;color:#7a8a80}.attention-item{display:flex;gap:10px;align-items:start;border-radius:11px;background:#fbf7ef;padding:12px;margin:9px 0;color:#776244;font-size:12px;line-height:1.5}.attention-item.red{background:#fff0ec;color:#9e493f}.attention-item.green{background:#eff7ee;color:#507351}.attention-item span:first-child{font-size:16px}.empty{padding:36px 16px;text-align:center;color:#90a097}.empty .flower{font-size:34px;color:#9bad9c;margin-bottom:8px}.empty h3{font-size:15px;color:#435a49;margin:8px 0}.empty p{font-size:12px;max-width:350px;margin:8px auto}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-tile{text-align:left;border:1px solid #e6ede5;background:#f9faf7;border-radius:12px;padding:15px;color:#4a6551;display:flex;flex-direction:column;gap:10px}.quick-tile strong{font-size:12px}.quick-tile small{color:#819387}.quick-tile .tile-icon{font-size:22px}.tool-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:17px 0;flex-wrap:wrap}.search{border:1px solid var(--line);background:white;border-radius:9px;padding:11px 12px;min-width:260px;color:#435b4b;font-size:12px;max-width:100%;outline:none}.filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-pill{background:white;border:1px solid var(--line);color:#77877a;padding:8px 12px;border-radius:25px;font-size:11px;font-weight:700}.filter-pill.selected{background:#eaf2e9;border-color:#c8dec9;color:#467152}.data-table-wrap{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;text-align:left;min-width:640px}.data-table th{font-size:10px;color:#88988d;text-transform:uppercase;letter-spacing:.8px;padding:15px 19px;border-bottom:1px solid var(--line);font-weight:800}.data-table td{font-size:12px;color:#5b6d61;padding:17px 19px;border-bottom:1px solid #eff2ee}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fcfdfb}.data-table .primary-cell{color:#2f4b39;font-weight:750}.mini-avatar{display:inline-grid;place-items:center;border-radius:50%;width:33px;height:33px;background:#edf3ea;color:#52735c;font-weight:800;font-size:11px;margin-right:8px}.table-action{background:none;border:0;color:#5f8067;font-size:11px;font-weight:770;text-decoration:underline;text-underline-offset:4px}.chips{display:flex;flex-wrap:wrap;gap:5px}.chip{background:#f1f5f1;border:1px solid #e8efe6;color:#607c63;border-radius:6px;padding:4px 7px;font-size:10px;font-weight:650}.feature-note{padding:14px 17px;background:#f4f8f1;border:1px solid #e3ebe0;border-radius:11px;color:#6d816e;font-size:12px;line-height:1.55;margin:12px 0 20px}.feature-note.warn{background:#fff6e7;border-color:#f1dfb7;color:#856e46}.section-title{font-size:15px;margin:30px 0 15px}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.compliance-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px;display:flex;flex-direction:column;gap:12px}.compliance-card h3{font-size:13px;margin:0}.compliance-card p{color:#86978b;font-size:11px;margin:0}.compliance-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#7b8b7e}.progress-track{height:8px;border-radius:20px;background:#e9eee7;overflow:hidden}.progress-track .bar{height:100%;background:#779b80;border-radius:20px}.checkbox-line{display:flex;align-items:center;gap:8px;font-size:12px;margin:8px 0}.checkbox-line input{accent-color:var(--sage-dark)}.modal-backdrop{position:fixed;inset:0;background:rgba(30,49,38,.48);z-index:30;display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:min(680px,100%);max-height:min(92vh,1000px);overflow-y:auto;background:white;border-radius:19px;box-shadow:0 22px 80px rgba(25,38,25,.24)}.modal.large{width:min(790px,100%)}.modal-head{padding:25px 28px 17px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #edf0ec}.modal-head .eyebrow{margin-bottom:6px}.modal-head h2{margin:0;font-size:21px;letter-spacing:-.6px}.icon-button{background:transparent;border:0;font-size:22px;color:#84958a;display:grid;place-items:center;padding:5px}.modal-body{padding:22px 28px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:16px 28px 22px;border-top:1px solid #edf0ec}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:7px;min-width:0;margin-bottom:15px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:770;color:#54705e}.field input,.field select,.field textarea{width:100%;border:1px solid #dde6db;border-radius:8px;padding:11px;background:#fff;color:#3b5643;font-size:12px;min-height:41px}.field textarea{min-height:90px;resize:vertical}.field .hint{font-size:10px;color:#899a90}.field .check-grid{display:flex;gap:9px;flex-wrap:wrap}.field .check-option{display:flex;align-items:center;gap:5px;padding:8px 10px;border:1px solid #e0e8e1;border-radius:8px;background:#f9fbf8;font-size:11px;color:#586e5c;font-weight:650}.field .check-option input{width:auto;min-height:0;accent-color:var(--sage-dark)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-box{border:1px solid var(--line);background:#fbfcfa;border-radius:10px;padding:13px;min-width:0}.detail-box span{font-size:10px;color:#83968a;text-transform:uppercase;letter-spacing:.6px;display:block;margin-bottom:7px}.detail-box p{margin:0;font-size:12px;color:#3e5645;white-space:pre-wrap;overflow-wrap:anywhere}.detail-box.wide{grid-column:1/-1}.detail-section{font-weight:750;color:#405e48;margin:21px 0 11px;font-size:13px}.timeline{border-left:2px solid #e6eee4;margin:9px 0 8px 8px}.timeline-entry{padding:4px 0 15px 17px;position:relative;font-size:11px;color:#637469}.timeline-entry:before{content:'';position:absolute;left:-6px;top:6px;border-radius:50%;width:10px;height:10px;background:#83a68a;border:2px solid white}.timeline-entry strong{display:block;color:#476551;margin-bottom:4px}.inline-alert{border-radius:11px;padding:13px 14px;background:#fff1e9;border:1px solid #f2d3c5;color:#a15740;font-size:11px;line-height:1.55;margin:11px 0}.inline-alert.positive{background:#edf7ee;border-color:#d8ebd9;color:#4c7b54}.notice-list{display:flex;flex-direction:column;gap:8px}.notice-list .notice{padding:12px;border:1px solid #e4eee1;background:#fafcf9;border-radius:9px;font-size:12px;color:#68836d}.kv{display:flex;justify-content:space-between;gap:12px;margin:8px 0;font-size:11px;color:#718577}.kv strong{color:#476550}.demo-footer{margin-top:36px;color:#9aa79c;font-size:11px;text-align:center}.toast{position:fixed;bottom:25px;right:25px;z-index:60;max-width:330px;background:#2e5a3c;color:#fff;border-radius:11px;padding:13px 17px;font-size:12px;box-shadow:0 9px 25px rgba(0,0,0,.18)}.toggle{display:flex;align-items:center;gap:8px;font-size:12px}.toggle input{accent-color:#53765c}.warning-card{background:#fff7eb;border:1px solid #f4dec0;padding:17px;border-radius:11px;color:#896a42;font-size:12px}.statement{font-size:14px;line-height:1.6;color:#53675b}.print-only{display:none}@media(max-width:1250px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.panels{grid-template-columns:1fr}.sidebar{width:230px}.content-shell{width:calc(100% - 230px)}.main-wrap{padding:28px}.topbar{padding:0 28px}.security-banner{margin:20px 28px 0}}@media(max-width:810px){.sidebar{position:fixed;transform:translateX(-100%);transition:transform .22s ease;z-index:25;box-shadow:12px 0 30px rgba(0,0,0,.08);width:264px}.sidebar.open{transform:translateX(0)}.content-shell{width:100%}.mobile-menu{display:grid}.topbar{height:72px;padding:0 18px}.main-wrap{padding:25px 18px 65px}.security-banner{margin:15px 18px 0}.page-head h1{font-size:25px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.three-cols,.two-cols{grid-template-columns:1fr}}@media(max-width:560px){.stats{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px;min-height:116px}.stat-card .meta{font-size:9px}.stat-card .value{font-size:27px;margin-top:10px}.stat-card .foot{font-size:10px}.topbar-actions{gap:6px}.role-switch{padding:8px;font-size:10px}.role-switch .chev{display:none}.avatar{display:none}.demo-pill{font-size:8px;padding:7px 6px}.breadcrumbs span{font-size:8px}.breadcrumbs strong{font-size:12px}.modal-backdrop{padding:0;align-items:stretch}.modal,.modal.large{border-radius:0;max-height:100vh;height:100%;width:100%;display:flex;flex-direction:column}.modal-body{overflow-y:auto;flex:1}.modal-head,.modal-body,.modal-foot{padding-left:18px;padding-right:18px}.field-grid,.detail-grid{grid-template-columns:1fr}.detail-box.wide{grid-column:auto}.quick-grid{grid-template-columns:1fr 1fr}.search{min-width:100%}}@media print{.sidebar,.topbar,.security-banner,.page-actions,.filter-row,.tool-row,.table-action,.btn,.demo-footer{display:none!important}.content-shell{width:100%}.main-wrap{max-width:none;padding:0}.panel,.stat-card{box-shadow:none}.print-only{display:block}}
/* Roster v0.4 */
.person-picker{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:750;color:var(--muted)}
.person-picker select{border:1px solid var(--line);padding:8px 24px 8px 9px;border-radius:9px;background:#fff;color:var(--sage-dark);font-size:11px;max-width:170px;min-width:110px}
.roster-toolbar{background:#fff;border:1px solid var(--line);padding:18px;border-radius:15px;margin:20px 0;box-shadow:var(--shadow)}
.roster-toolbar-top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.roster-toolbar-top strong{font-size:14px;color:var(--ink)}.roster-stepper{display:flex;align-items:center;gap:7px}.roster-stepper .btn{min-height:35px;padding:8px 12px}
.week-select,.roster-filters label{display:flex;gap:7px;align-items:center;font-size:11px;font-weight:750;color:var(--muted)}
.week-select input,.roster-filters select{border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px;color:var(--sage-dark);font-size:12px;max-width:240px}
.roster-filters{display:flex;gap:15px;flex-wrap:wrap;margin-top:17px;border-top:1px solid var(--line);padding-top:15px}
.roster-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.roster-toolbar-actions .btn{min-height:36px}
.roster-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;overflow-x:visible;scrollbar-width:thin;padding:1px 1px 16px;align-items:stretch}
.day-column{background:#fff;min-width:0;border:1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;min-height:215px;box-shadow:var(--shadow)}
.day-column.is-today{border-color:#87b89b;box-shadow:0 0 0 2px #ddf0e2}
.day-header{padding:15px 12px 11px;display:flex;align-items:flex-start;justify-content:space-between;gap:5px;border-bottom:1px solid var(--line)}
.day-header>div{display:flex;align-items:center;gap:7px}.day-header strong{font-size:21px;color:var(--sage-dark);letter-spacing:-1px}
.day-weekday{font-size:10px;letter-spacing:.4px;font-weight:800;text-transform:uppercase;color:var(--muted)}
.day-qty{font-size:10px;color:var(--muted);padding-top:6px;white-space:nowrap}
.day-shifts{padding:9px;display:flex;flex-direction:column;gap:8px;flex:1}
.shift-card{border:1px solid #e2e9e1;background:#f9fbf8;border-left:3px solid #afbea8;border-radius:11px;padding:10px 9px 9px;min-width:0}
.shift-card.published{border-left-color:var(--sage)}.shift-card.pending-change{border-left-color:var(--gold);background:#fff9ef}
.shift-card-top{display:flex;align-items:flex-start;gap:7px;justify-content:space-between;flex-wrap:wrap}
.shift-card-top strong{font-size:12px;white-space:nowrap;color:#324f3a}.shift-card-top .status{font-size:9px;white-space:normal;line-height:1.3}
.shift-card h4{margin:12px 0 3px;font-size:12px;color:#375540;overflow-wrap:anywhere}
.shift-worker,.shift-services{font-size:10px!important;margin:0 0 5px!important;color:#6c806e;overflow-wrap:anywhere}
.shift-services{color:#9a9e94}.shift-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.shift-actions .btn{font-size:10px;min-height:31px;padding:6px 9px}
.roster-flag{display:block;font-size:10px;color:#98723e;font-weight:700;margin-top:10px}
.empty-day{color:#a0aca3;font-size:10px;text-align:center;padding:29px 0}
.add-day-btn{border:0;background:#f7faf6;border-radius:0 0 15px 15px;padding:12px;color:#6b8971;font-size:11px;font-weight:770;text-align:center}
.add-day-btn:hover{background:#eef6ed}.roster-bottom{margin-top:21px}
.roster-guide{display:flex;flex-direction:column;gap:15px}.roster-guide>div{display:flex;align-items:start;gap:11px;font-size:12px;color:#627568;line-height:1.6}
.roster-guide b{background:#e9f3e8;color:#507454;border-radius:30px;width:25px;height:25px;display:grid;place-items:center;flex-shrink:0}
.roster-message{display:flex;gap:12px;padding:12px 8px;border-bottom:1px solid var(--line)}.roster-message.unread{background:#f2f8f1}
.roster-message strong{font-size:12px;display:block}.roster-message small{display:block;color:var(--muted);font-size:10px;margin:4px 0}.roster-message p{font-size:11px;margin:0;color:#68806d}
.status.published-awaiting-acknowledgement,.status.changes-to-publish{background:#fff4e1;color:#956b30}
.status.acknowledged{background:#e8f3eb;color:#4b7956}
@media(max-width:1450px){.roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.person-picker span{display:none}.person-picker select{max-width:115px}}
@media(max-width:810px){.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));overflow-x:visible}.day-column{min-width:0}.topbar{gap:12px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:560px){.topbar{height:auto;min-height:72px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}.topbar-left{min-width:130px}.topbar-actions{flex:1;gap:5px}.person-picker select{font-size:10px;max-width:122px;min-width:95px;padding:7px 6px}.roster-grid{grid-template-columns:1fr}.day-column{min-height:unset}.day-header{padding:10px 14px}.day-shifts{padding:11px}.roster-toolbar{padding:12px}.week-select{flex-wrap:wrap}.roster-toolbar-top strong{font-size:12px}.roster-filters{gap:10px}.roster-filters label{width:100%;justify-content:space-between}.roster-filters select{flex:1;min-width:0}.roster-toolbar-actions .btn{flex:1}.shift-card{padding:13px}}
@media print{.add-day-btn,.roster-toolbar-actions,.roster-stepper,.person-picker,.week-select,.roster-filters,.shift-actions{display:none!important}.roster-grid{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}.shift-card{break-inside:avoid}.day-column{break-inside:avoid}}

/* Phone test v0.5 */
.phone-steps{display:flex;flex-direction:column;gap:4px}.phone-step{display:flex;align-items:center;gap:14px;padding:15px 8px;border-bottom:1px solid var(--line)}.phone-step-no{width:31px;height:31px;flex:0 0 31px;border-radius:50%;background:#e5f1e4;display:grid;place-items:center;font-size:13px;color:#52735a;font-weight:800}.phone-step-details{min-width:0;flex:1}.phone-step-details strong{font-size:13px;color:var(--ink)}.phone-step-details p{font-size:11px;margin:5px 0 0;color:var(--muted)}.phone-step .btn{flex-shrink:0}.shared-roster{min-height:100vh;background:#f6f4ef;padding:25px 16px;color:#304736;font-family:inherit}.shared-brand{max-width:560px;margin:auto;padding:20px 0 28px;font-size:23px;font-weight:800;color:#597c60}.shared-brand span{color:#d19874}.shared-brand small{font-size:11px;letter-spacing:2px;margin-left:9px}.shared-card{background:#fff;border:1px solid #e4e9e0;border-radius:18px;max-width:560px;margin:auto;padding:24px;box-shadow:0 10px 30px #0000000a}.shared-card h1{font-size:27px;margin:12px 0;color:#36513d}.shared-card p{font-size:13px;color:#627969;line-height:1.6}.shared-shift{display:flex;justify-content:space-between;gap:12px;padding:15px 3px;border-bottom:1px solid #e4e9e0}.shared-shift strong{display:block;font-size:15px}.shared-shift small{display:block;color:#78917f;margin-top:7px}.shared-shift>span{border-radius:20px;background:#ebf4e9;padding:6px 9px;height:fit-content;font-size:10px;font-weight:750}.shared-warning{padding:13px;background:#fff4e5;border-radius:8px;color:#926a35!important;margin:24px 0!important}.shared-card>a{display:inline-flex;text-decoration:none}
@media(max-width:560px){.phone-step{gap:9px;flex-wrap:wrap}.phone-step-details{flex-basis:calc(100% - 50px)}.phone-step .btn{width:100%;margin-left:40px}.shared-card{padding:19px}}

/* v0.6 business website & backup improvements */
.sidebar-website-link{display:flex;gap:12px;align-items:center;margin:11px 5px;padding:12px 14px;color:#356c4b;font-size:12px;font-weight:800;text-decoration:none;border:1px solid #cfe3d3;border-radius:11px;background:#f3f9f3}.sidebar-website-link:hover{background:#e5f3e8}.website-footer-link{font-weight:800;display:inline-flex;gap:5px;text-decoration:none;border-bottom:1px solid #b1cbb7;padding-bottom:5px;color:#3c7050;margin-right:7px}.demo-footer{display:flex;gap:13px;align-items:center;justify-content:center;flex-wrap:wrap}.sms-link-choice{display:flex!important;align-items:center;gap:9px;font-size:12px!important;color:#3b6650!important;line-height:1.4}.sms-link-choice input{width:18px!important;min-height:18px!important;height:18px;flex-shrink:0;accent-color:#477158}.sms-length{font-size:11px;color:#58725f;margin:0 0 18px}.sidebar-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}@media(max-width:810px){.sidebar{height:100dvh}.sidebar-bottom{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}}@media(max-width:560px){.demo-footer{flex-direction:column;line-height:1.5}.sidebar-website-link{min-height:46px}}

.sidebar-scrim{display:none}@media(max-width:810px){.sidebar-scrim.is-visible{display:block;position:fixed;inset:0;z-index:24;background:rgba(29,43,33,.36);border:0;padding:0}}
/* v0.7 live access gate and mobile account controls. */
[hidden]{display:none!important}
.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f6f4ef}
.auth-card{width:min(100%,470px);background:white;border:1px solid #e0e6df;border-radius:22px;padding:32px;box-shadow:0 16px 50px #2b483b12}
.auth-card .brand{margin-bottom:30px}.auth-card h1{font-size:30px;margin:0 0 12px}.auth-card form{display:grid;gap:16px;margin:20px 0}.auth-card label{display:grid;gap:8px;font-weight:600;font-size:13px}.auth-card input{width:100%;border:1px solid #d7e0d7;border-radius:8px;padding:12px;font:inherit}.auth-card #auth-status{line-height:1.5;color:#526257}.demo-entry{display:block;font-weight:600;color:#426c53;margin-top:20px}.demo-entry-note{display:block;color:#7a6550;margin-top:7px}.signed-in-user{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
@media(max-width:640px){.auth-card{padding:24px}.topbar-actions{gap:5px}.signed-in-user{max-width:90px}.topbar-actions .btn{padding:8px;font-size:11px}.topbar-actions .demo-pill{display:none}}

.auth-card label.remember-me{display:flex;align-items:flex-start;gap:10px;font-weight:600}.auth-card label.remember-me input{width:20px;height:20px;margin:1px 0 0;flex-shrink:0;accent-color:#3d6550}.auth-card label.remember-me small{display:block;font-weight:400;color:#6f7f74;margin-top:3px}
