:root{--ink:#172c32;--muted:#738187;--teal:#087f72;--line:#e4e9e8;--bg:#f5f7f6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;border-radius:7px;padding:11px 16px;background:#edf2f0;color:var(--ink)}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #5ed5b5;outline-offset:3px}aside{position:fixed;inset:0 auto 0 0;width:238px;background:#142f33;color:#d9e7e5;padding:37px 22px}.brand{font-size:29px;font-weight:800;letter-spacing:-1px;color:white;text-decoration:none}.brand span{font-size:12px;letter-spacing:3px;color:#8db4ad;margin-left:8px}.workspace{font-size:10px;letter-spacing:1.5px;margin:32px 0;color:#93aaa9;line-height:1.9}.workspace small{font-size:12px;letter-spacing:0}nav{display:grid;gap:9px}nav button{color:#b5c9c6;background:transparent;text-align:left;padding:14px 12px;font-size:18px}nav span{font-size:13px;margin-left:10px}nav button.active{background:#27504f;color:#fff;box-shadow:inset 3px 0 #5cceb2}.aside-bottom{position:absolute;bottom:27px;font-size:11px;color:#a2b8b4}.aside-bottom p{margin:14px 0;color:#79938f}.aside-bottom button{background:transparent;color:#a2b8b4;padding:0;font-size:11px}.dot{display:inline-block;width:6px;height:6px;background:#e7ba68;border-radius:50%;margin-right:6px}main{margin-left:238px}header{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:12px;color:var(--muted)}header span{margin:0 14px;color:#b6c3c1}header b{color:var(--ink);font-weight:500}.user{background:#eaf2ef;border-radius:50%;padding:11px;font-weight:700;color:var(--teal)}.content{padding:36px 42px;max-width:1700px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.7px;color:var(--teal)}h1{font-family:Manrope,sans-serif;font-size:30px;letter-spacing:-1px;margin:9px 0}p{color:var(--muted);line-height:1.6;margin:7px 0}.primary{background:var(--teal);color:white;font-weight:600}.demo{font-size:9px;letter-spacing:1px;color:#876c38;margin-bottom:24px}.demo span{letter-spacing:0;margin-left:12px;color:var(--muted);font-size:11px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:28px}.metric{padding:22px;background:white;border:1px solid var(--line);border-radius:10px;text-align:left}.metric .label{font-size:12px;color:var(--muted)}.metric strong{display:block;font:700 30px Manrope,sans-serif;margin:12px 0 8px}.metric small{color:var(--muted);font-size:11px}.metric.alert strong{color:#b45c39}.panel{border:1px solid var(--line);border-radius:11px;background:white;overflow:hidden}.panel-top{padding:23px 25px;display:flex;align-items:center;justify-content:space-between}h2{font:700 17px Manrope,sans-serif;margin:0}.panel-top p{font-size:11px}input,textarea,select{border:1px solid #d8e1de;border-radius:6px;padding:11px;background:#fff;color:var(--ink)}#search{width:285px;font-size:12px;background:#fafcfb}.filters{display:flex;gap:7px;padding:0 25px 21px;flex-wrap:wrap}.filters button{font-size:11px;background:#fff;color:var(--muted);padding:8px 12px;border:1px solid var(--line)}.filters .selected{background:#e6f3ee;color:var(--teal);border-color:#c4e5d9}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;font-size:9px;color:#85918f;letter-spacing:1px;padding:13px 22px;background:#f8faf9;border-block:1px solid var(--line)}td{padding:21px 22px;border-bottom:1px solid #eef1ef;font-size:12px}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fcfa}.client{font-weight:700;font-size:13px}.service{font-size:11px;color:var(--muted);margin-top:6px}.code{color:#9aa7a3;font-size:10px;margin-top:6px}.badge{display:inline-block;border-radius:5px;padding:6px 8px;background:#edf1f3;color:#657780;font-size:10px}.green{background:#e5f4ed;color:#26815b}.amber{background:#fff3df;color:#a47523}.red{background:#fcece7;color:#b45c39}.blue{background:#eaf0fb;color:#5377a3}.table-footer{display:flex;justify-content:space-between;padding:17px 24px;font-size:10px;color:#8b9793}.table-footer span{color:var(--teal)}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:25px}.note{padding:24px 26px}h3{font:700 17px Manrope,sans-serif;margin:13px 0}.note p{font-size:12px;max-width:480px}.link{padding:12px 0 0;background:none;color:var(--teal);font-size:12px;font-weight:700}.flow{display:flex;justify-content:space-between;align-items:center;margin:20px 0;font-size:13px}.flow small{color:var(--muted);font-size:10px}.flow b{color:#b4c7c1}dialog{border:0;border-radius:12px;padding:0;width:min(980px,96vw);max-height:94vh;box-shadow:0 20px 90px #102d3340}dialog::backdrop{background:#112e3366;backdrop-filter:blur(3px)}.drawer-head{padding:25px 30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.drawer-head h2{margin:7px 0}.close{font-size:25px;background:transparent;padding:4px 12px}.detail-body{padding:25px 30px}.tabs{display:flex;gap:10px;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:15px}.tabs button{font-size:12px}.tabs .active{background:var(--teal);color:white}.cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}.box{border:1px solid var(--line);padding:20px;border-radius:8px;margin-bottom:18px}.box h3{font-size:14px;margin:0 0 12px}.box p{font-size:12px}.box label,form label{display:block;font-size:12px;margin:13px 0}.box input,.box select,.box textarea,form input,form select{width:100%;margin-top:7px}textarea{min-height:140px;resize:vertical}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.items{white-space:normal}.items td,.items th{padding:10px 7px}.items input{width:80px}.items select{max-width:270px;width:100%}.total{text-align:right;font-size:20px;font-weight:700;padding:20px 0}.warning{padding:12px;background:#fff6e6;color:#9a742b;font-size:12px;border-radius:6px}.published{border-left:3px solid var(--teal);padding:15px;background:#f2f8f5;white-space:pre-wrap}.empty{padding:45px;text-align:center;color:var(--muted)}#newDialog{width:480px}form{padding:25px}form .drawer-head{padding:0 0 20px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#153d37;color:white;padding:14px 24px;border-radius:8px;display:none;z-index:10}.small{font-size:11px;color:var(--muted)}@media(max-width:1100px){aside{width:200px}main{margin-left:200px}.content{padding:25px}.metrics{gap:10px}td,th{padding:16px 12px}.heading{gap:15px}h1{font-size:25px}}@media(max-width:750px){aside{position:relative;width:100%;padding:18px}.workspace,.aside-bottom{display:none}nav{display:flex;overflow:auto;margin-top:16px}nav button{white-space:nowrap;padding:9px}.brand{font-size:23px}main{margin:0}header{height:50px;padding:0 20px}.content{padding:20px 15px}.heading{align-items:flex-start}.heading p{font-size:12px}.heading button{font-size:11px}.metrics{grid-template-columns:1fr 1fr}.metric{padding:15px}.metric strong{font-size:25px}.bottom-grid,.cols{grid-template-columns:1fr}.panel-top{display:block;padding:20px}#search{width:100%;margin-top:12px}.table-footer span{display:none}.demo span{display:block;margin:7px 0}.detail-body{padding:18px}.tabs{overflow:auto}.tabs button{white-space:nowrap}.drawer-head{padding:20px}.items input{width:65px}}

#toast{max-width:calc(100vw - 40px);width:max-content;pointer-events:none;box-shadow:0 4px 20px #0003}dialog #toast{position:sticky;bottom:15px;left:auto;transform:none;margin:12px auto;max-width:calc(100% - 30px)}.warning ul{padding-left:20px;margin:8px 0 0}.warning li{margin:6px 0}

/* Administrative dashboard: fixed column allocation and responsive status cards. */
.sync-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:24px}.sync-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.sync-toolbar p{font-size:12px}.sync-toolbar .actions{margin:0;flex-shrink:0}#syncProgress{font-size:12px;overflow-wrap:anywhere;margin:12px 0 0}.content{min-width:0}.attendance-table{table-layout:fixed;width:100%;white-space:normal}.attendance-table th,.attendance-table td{padding:15px 10px;overflow-wrap:anywhere;vertical-align:middle}.attendance-table th:first-child{width:36%}.attendance-table th:nth-child(2){width:15%}.attendance-table th:nth-child(3){width:17%}.attendance-table th:nth-child(4){width:14%}.attendance-table th:nth-child(5){width:12%}.attendance-table th:last-child{width:6%}.attendance-table .badge{max-width:100%;white-space:normal;line-height:1.5}.attendance-table td:nth-child(5){font-variant-numeric:tabular-nums}.attendance-table td:last-child button{padding:8px}.attendance-table .service{line-height:1.5}.aside-bottom{left:22px;right:22px;overflow-wrap:anywhere}
@media(max-width:1050px){.sync-toolbar{align-items:flex-start;flex-direction:column}.attendance-table th,.attendance-table td{padding:13px 7px}.attendance-table th:first-child{width:30%}.attendance-table th:nth-child(3){width:19%}.attendance-table th:nth-child(4){width:15%}.attendance-table th:nth-child(5){width:15%}}
@media(max-width:850px){.attendance-table thead{display:none}.attendance-table,.attendance-table tbody{display:block;width:100%}.attendance-table tr{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px;border-bottom:1px solid var(--line)}.attendance-table td{display:block;padding:0;border:0;min-width:0}.attendance-table td:first-child{grid-column:1 / -1;margin-bottom:6px}.attendance-table td[data-label]::before{content:attr(data-label);display:block;font-size:9px;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.attendance-table td:last-child{grid-column:1 / -1;text-align:right}.attendance-table .empty{grid-column:1 / -1}.sync-toolbar .actions{flex-wrap:wrap}.sync-toolbar button{font-size:12px}}

.attendance-table .timeline-day{cursor:default;background:#edf3f7}.attendance-table .timeline-day:hover{background:#edf3f7}.attendance-table .timeline-day td{padding:12px 14px;border-top:1px solid #dce6ed;border-bottom:1px solid #dce6ed;color:#244455;font-weight:700;font-size:13px;text-align:left}.appointment-date{font-size:11px;color:#087f72;font-weight:700;margin-bottom:8px}@media(max-width:850px){.attendance-table .timeline-day{display:block;padding:0}.attendance-table .timeline-day td{display:block;padding:12px 16px;text-align:left}}
