:root{--navy:#132b39;--ink:#213b49;--muted:#617683;--line:#dce5e9;--canvas:#f3f6f7;--teal:#087d78;--teal-soft:#e3f3ef;--red:#ad3b43;--amber:#8b6223;--radius:14px;font-family:Inter,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button{border:1px solid #cedde2;border-radius:8px;background:white;color:var(--ink);padding:10px 15px;cursor:pointer;text-decoration:none;font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.button:hover{background:#f0f6f7;border-color:#8eaeb8}button:disabled{opacity:.42;cursor:not-allowed}button.primary,.button.primary{color:white;background:var(--teal);border-color:var(--teal)}button.primary:hover,.button.primary:hover{background:#056661}.quiet{background:transparent;border-color:transparent;padding:8px 10px;color:var(--muted)}input,select{width:100%;border:1px solid #ccdade;border-radius:8px;padding:11px 12px;background:white;color:var(--ink);min-height:44px}input:disabled,select:disabled{background:#f2f5f6;color:#6b7c83}label{display:block;font-size:13px;font-weight:600;margin:15px 0 8px}label>input,label>select{display:block;margin-top:7px}.check{display:flex;gap:8px;align-items:center;font-weight:500;margin:10px 0}.check input{width:17px;min-height:auto;margin:0;accent-color:var(--teal)}:focus-visible{outline:3px solid #74c5bf;outline-offset:3px}[hidden]{display:none!important}h1{font-size:30px;font-weight:650;letter-spacing:-.8px;margin:6px 0 10px}h2{font-size:18px;font-weight:650;margin:0 0 14px}p{line-height:1.55}small,.small{font-size:12px;line-height:1.55}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:var(--muted);margin:0 0 8px}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:22px;box-shadow:0 2px 3px #19313e04}.section-head,.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px}.page-title{margin-bottom:24px}.page-title p{margin-bottom:0}.section-head h2{margin:0}.section-head{margin-bottom:17px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pill{display:inline-block;background:var(--teal-soft);color:#216b5f;padding:6px 10px;border-radius:7px;font-size:11px;font-weight:700;white-space:nowrap}.pill.pending{background:#fff1dc;color:var(--amber)}.pill.rejected,.pill.revoked{background:#fcebed;color:var(--red)}.pill.cancelled{background:#eef2f4;color:#6b7d86}.info-box{background:#edf5f8;border:1px solid #dce9ee;border-radius:9px;padding:14px 16px;color:#526e7b;font-size:13px;line-height:1.6}.brand{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:650;line-height:1.15}.brand small{font-size:9px;letter-spacing:3px;opacity:.65}.mark{display:flex;align-items:center;justify-content:center;width:39px;height:39px;border-radius:11px;background:#29b9a0;color:#082f31;font-weight:850;flex:none}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;max-width:1440px;margin:auto}.login-intro{background:var(--navy);color:white;padding:12vh 8vw;display:flex;flex-direction:column;justify-content:center}.login-intro .eyebrow{color:#83b6bc;margin-top:70px}.login-intro h1{font-size:44px;line-height:1.16;letter-spacing:-1.5px}.login-intro p:not(.eyebrow){color:#b5cbd0;max-width:430px}.version-tag{color:#84c6bc;font-size:12px;letter-spacing:1px;margin-top:35px}.login-card{max-width:400px;width:85%;align-self:center;justify-self:center;padding:32px}.login-card .primary{width:100%;margin-top:22px}.error{color:var(--red);font-size:13px}.shell{display:grid;grid-template-columns:228px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:#d7e6e9;padding:30px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar .brand{padding:0 8px;margin-bottom:32px}.nav-caption{font-size:9px;letter-spacing:1.7px;color:#7997a3;margin:26px 13px 10px}.nav-item{background:transparent;color:#b5cad2;border:0;display:block;width:100%;text-align:left;border-radius:8px;padding:12px;font-weight:500;margin:3px 0}.nav-item:hover{background:#203d4c;color:white}.nav-item.active{background:#254954;color:#cefff2;box-shadow:inset 3px 0 #48c2a9}.sidebar-footer{margin-top:auto;padding:24px 10px 0;font-size:11px;color:#a5bec9}.sidebar-footer small{display:block;font-size:10px;color:#728f9c;margin:10px 0 0 12px}.dot{display:inline-block;width:6px;height:6px;background:#49bfa1;border-radius:50%;margin-right:4px}.workspace{min-width:0}.topbar{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 36px}.topbar .eyebrow{font-size:9px}.top-actions{display:flex;align-items:center;gap:9px}#user-name{font-size:14px;font-weight:600;margin-top:7px}.test-banner{background:#fff7e8;border-bottom:1px solid #f1e4ca;color:#82622e;padding:9px 36px;font-size:11px}main{max-width:1550px;margin:auto;padding:30px 36px}footer{padding:18px 36px;color:#80939c;font-size:11px}.clock{font-size:56px;letter-spacing:-2px;font-weight:650;font-variant-numeric:tabular-nums;margin:16px 0 8px;color:var(--navy)}.punch-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.punch{min-height:57px;font-size:14px}.time-card .muted{font-size:13px}.timeline-item{display:flex;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid #edf2f4}.timeline-item:last-child{border:0}.timeline-time{font-variant-numeric:tabular-nums;font-weight:650;font-size:16px;min-width:74px}.timeline-item small{display:block;color:var(--muted);font-size:11px}.timeline{min-height:200px;margin-bottom:20px}.empty{text-align:center;padding:35px 15px;color:#81939c;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 22px}.stat{border:1px solid var(--line);border-radius:12px;background:white;padding:19px}.stat .number{display:block;font-size:26px;font-weight:650;margin:7px 0;color:var(--navy);font-variant-numeric:tabular-nums}.stat .label{font-size:11px;color:var(--muted)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}thead th{text-align:left;font-weight:600;font-size:10px;color:#6d8290;background:#f6f9fa;border-bottom:1px solid var(--line);padding:12px 11px}tbody td{padding:13px 11px;border-bottom:1px solid #edf1f3;vertical-align:top}tbody tr:last-child td{border-bottom:0}td.wrap{white-space:normal;min-width:200px;max-width:340px;font-size:11px;line-height:1.5}td .quiet,td button{font-size:11px;padding:5px 8px;margin:0 3px 3px 0}tr.voided{color:#98a6ad}tr.voided td:nth-child(3){text-decoration:line-through}.filter-row{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}.filter-row label{margin:0;min-width:160px}.filter-row button{min-height:44px}.weekdays{display:flex;flex-wrap:wrap;gap:12px}.weekdays label{display:flex;align-items:center;gap:4px;font-size:12px}.weekdays input{width:15px;min-height:auto;margin:0;accent-color:var(--teal)}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:620px;max-width:95vw;max-height:92vh;box-shadow:0 30px 90px #1027373d;color:var(--ink)}dialog::backdrop{background:#122b3b80;backdrop-filter:blur(3px)}dialog .primary{margin-top:18px}#toast{position:fixed;z-index:10000;right:24px;top:22px;padding:16px 23px;max-width:min(580px,90vw);background:#163c3a;color:white;border-radius:10px;box-shadow:0 8px 30px #102a4030;font-size:13px;line-height:1.6}#toast.bad{background:#81373f}code{font-family:Consolas,monospace;background:#edf3f5;padding:3px 5px;border-radius:4px;font-size:12px}form>button[type=submit]{margin-top:18px}.filter-row>button[type=submit]{margin-top:0}#assignment-history{margin-top:18px;line-height:1.7}
@media(max-width:1150px){main{padding:24px}.topbar{padding:0 24px}.test-banner{padding:9px 24px}.shell{grid-template-columns:205px 1fr}.two-cols{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.clock{font-size:48px}}
@media(max-width:720px){.shell{display:block}.sidebar{position:static;height:auto;padding:16px}.sidebar .brand{font-size:16px;margin-bottom:12px}.sidebar nav{display:flex;gap:6px;overflow:auto}.nav-item{width:auto;white-space:nowrap;font-size:11px;padding:9px}.nav-caption{margin:14px 5px 6px;font-size:8px}.sidebar-footer{display:none}.topbar{padding:14px 18px;height:auto;align-items:flex-start}.topbar .eyebrow{display:none}.top-actions{gap:1px;flex-wrap:wrap;justify-content:flex-end}.top-actions .pill{display:none}main{padding:20px 15px}.test-banner{padding:9px 18px}.page-title{align-items:flex-start;flex-wrap:wrap}h1{font-size:25px}.card{padding:19px}.form-grid{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:15px}.login-shell{display:block}.login-intro{padding:32px 26px}.login-intro .eyebrow{margin-top:28px}.login-intro h1{font-size:30px}.login-intro .version-tag{margin-top:10px}.login-card{margin:25px auto;width:90%}.filter-row label{flex:1}.clock{font-size:49px}}
/* Alpha 2: people-first overview, inbox badges and activity log. */
.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-counter,.bell-counter{background:#c83727;color:white;font-size:.76rem;font-weight:800;min-width:23px;height:23px;line-height:23px;text-align:center;border-radius:20px;padding:0 6px}.nav-item .nav-counter{margin-left:auto}.bell-button{position:relative;display:grid;place-items:center;width:44px;height:44px;border:1px solid #dde6e1;border-radius:14px;background:white;color:#476356;padding:0}.bell-button.has-unread{background:#fff4df;color:#a65314;border-color:#e9b76a}.bell-counter{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;line-height:20px;font-size:.68rem;border:2px solid white;box-sizing:content-box}.presence-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:22px 0 18px}.presence-stat{display:flex;flex-direction:column;gap:12px;text-align:left;align-items:flex-start;background:white;border:1px solid #dce5df;border-top:4px solid #28765a;border-radius:18px;padding:20px;box-shadow:0 3px 14px #19392b08;white-space:normal}.presence-stat span{font-weight:650;font-size:.88rem;color:#3e5b4b}.presence-stat strong{font-size:2.5rem;line-height:1.1;color:#173d2c}.presence-stat small{font-size:.72rem;color:#678274;font-weight:400}.presence-stat.pause{border-top-color:#d09421}.presence-stat.vacation{border-top-color:#5992b2}.presence-stat.absent{border-top-color:#ca684f}.presence-stat.remote{border-top-color:#8371b4}.presence-stat.selected,.secondary-status.selected{outline:2px solid #276e52;background:#edf7f0}.presence-secondary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.secondary-status{font-size:.85rem;font-weight:500;background:#f0f4f1;border:1px solid #dce5df;border-radius:30px;padding:9px 14px}.secondary-status strong{margin-left:9px}.person-cell{display:flex;align-items:center;gap:12px}.avatar{display:grid;place-items:center;min-width:38px;height:38px;border-radius:12px;background:#edf3ec;color:#2c6249;font-weight:750;font-size:.8rem}.presence-office{background:#e2f2e5;color:#1d6345}.presence-pause{background:#fff0cf;color:#8e630e}.presence-vacation{background:#e6f1fa;color:#326582}.presence-remote{background:#f0eafa;color:#655089}.presence-absent{background:#fcece4;color:#973e2a}.presence-off_duty,.presence-unknown{background:#edf0ee;color:#626f66}.presence-justified{background:#e4f2f0;color:#2e6d68}.pending-info{color:#955f06;font-weight:650;font-size:.9rem;line-height:1.6}.awaiting-decision{background:#fffaf0}.cancellation-status{margin-top:8px;font-size:.78rem;line-height:1.4;color:#9d5515}.highlight-row{outline:2px solid #be8431;outline-offset:-2px;background:#fff2d6}.approvals-filter{max-width:510px;margin-bottom:22px}.request-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.notifications-dialog{position:fixed;top:75px;right:22px;left:auto;margin:0;width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 100px);overflow:auto;padding:26px;border-radius:20px}.notification-item{border-bottom:1px solid #e5eae7;padding:16px 12px;font-size:.88rem}.notification-item.unread{background:#fff8e9;border-left:3px solid #d59a25}.notification-item time{font-size:.72rem;color:#6c7c71}.notification-item p{line-height:1.6;overflow-wrap:anywhere;margin:9px 0}.notification-new{float:right;font-size:.7rem;color:#8c5708;background:#ffe9b5;padding:2px 7px;border-radius:10px;font-weight:700}#notifications-more{width:100%;margin-top:15px}#notifications-list{margin-top:12px}#notifications-dialog::backdrop{background:rgb(18 42 30 / 24%)}
@media(max-width:1250px){.presence-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.presence-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.presence-stat{padding:16px}.presence-stat strong{font-size:2rem}.notifications-dialog{top:68px;right:8px;max-height:calc(100dvh - 80px);padding:18px}.top-actions{gap:8px}.bell-button{width:38px;height:38px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Milano Tech: original typographic placeholder, not an asserted official brand asset. */
.developer-brand{display:flex;align-items:center;gap:.6rem;font-size:.9rem;line-height:1.2}.developer-monogram{display:inline-grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:.6rem;background:#173f50;color:#fff;font-size:.82rem;font-weight:800;letter-spacing:-.02em}.developer-brand strong{font-size:1rem;font-weight:650;letter-spacing:-.035em}.developer-brand b{font-weight:850;color:#278477}.developer-brand small{display:block;font-size:.6rem;margin-top:.16rem;letter-spacing:.03em;opacity:.8}.login-intro .developer-brand{margin-top:2.5rem}.sidebar-footer .developer-brand{margin-top:1.2rem}.sidebar-footer .developer-brand small{color:inherit}.workspace>footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.4rem 2rem}#page-freshness{font-size:.68rem;display:block;margin-top:.2rem}.cause-code{font-family:ui-monospace,monospace;letter-spacing:.03em}.settings-links button{margin:.4rem .4rem .4rem 0}.danger-quiet{color:#9c3131!important}#manual-original{line-height:1.65}#report-cause-legend:empty{display:none}#cause-dialog{width:min(620px,95vw)}#manual-punch-dialog{width:min(680px,95vw)}.table-wrap td .pill{margin:2px;display:inline-block}#causes-table tr td:nth-child(2){white-space:normal;min-width:190px}
@media(max-width:720px){.workspace>footer{padding:1.2rem}.developer-brand small{font-size:.58rem}#page-freshness{max-width:185px}.topbar .top-actions{gap:.3rem}}
/* Alpha 4: configuration hierarchy, operational calendar and bounded logo. */
.config-subnav { margin: 0 0 14px 12px; padding-left: 10px; border-left: 2px solid #cce0d8; }
.config-subnav .nav-item { font-size: .82rem; padding: 9px 10px; }
.config-breadcrumb { display:flex; align-items:center; gap:9px; color:#69817a; font-size:.82rem; margin-bottom:18px; }
.config-breadcrumb button { padding:5px 9px; background:transparent; }
.configuration-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(235px,1fr)); gap:18px; }
.configuration-grid button { text-align:left; display:flex; flex-direction:column; gap:12px; padding:24px; border:1px solid #dce7e1; background:white; box-shadow:0 3px 15px #24493a08; border-radius:16px; min-height:170px; }
.configuration-grid button:hover { border-color:#248365; background:#f6faf8; }
.configuration-grid button span { color:#638578; font-size:.78rem; letter-spacing:.1em; }
.configuration-grid button strong { font-size:1.06rem; color:#183e33; }
.configuration-grid button small { color:#627b73; font-weight:400; line-height:1.5; }
.customer-logo { width:46px; height:46px; object-fit:contain; border-radius:6px; background:white; margin-left:auto; }
.customer-name { font-size:.83rem; font-weight:600; color:#49655d; padding:0 4px 8px; overflow-wrap:anywhere; }
.logo-preview { max-width:240px; max-height:100px; object-fit:contain; background:#f1f5f3; padding:10px; margin:14px 0; border-radius:10px; }
.coverage-panel:not(:empty) { padding:15px; border:1px solid #e5cf94; border-radius:10px; background:#fff9e8; margin:12px 0; }
.coverage-panel p { margin:5px 0; } .coverage-panel ul { padding-left:20px; max-height:250px; overflow:auto; }
.issue-summary { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.issue-tag { display:inline-block; padding:4px 9px; border-radius:7px; background:#fff0d6; color:#74520e; font-size:.79rem; }
.issue-tag.error { background:#fce8e5; color:#a63328; } .issue-tag.info { background:#e7f1f8; color:#235879; }
.report-highlight { outline:2px solid #25896e; outline-offset:-2px; background:#f1f9f5; }
.calendar-toolbar { display:flex; gap:14px; justify-content:space-between; align-items:center; margin:20px 0; }
.calendar-toolbar h2 { margin:0; text-transform:capitalize; }
.calendar-legend { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:12px; font-size:.83rem; color:#60766e; }
.absence-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-left:1px solid #dce6e1; border-top:1px solid #dce6e1; border-radius:12px; overflow:hidden; background:#fff; }
.calendar-weekday { background:#edf5f0; text-align:center; padding:12px 4px; font-weight:600; color:#456154; font-size:.82rem; }
.calendar-cell { min-height:145px; border-right:1px solid #e1e9e5; border-bottom:1px solid #e1e9e5; padding:8px; overflow:hidden; }
.calendar-cell.weekend { background:#f7f9f8; } .calendar-cell.blank { background:#f3f5f4; }
.calendar-day-button { font-size:.84rem; padding:4px 8px; margin-bottom:5px; border:none; background:transparent; color:#254f40; }
.calendar-cell.today .calendar-day-button { background:#1d7058; color:white; border-radius:50%; }
.calendar-event { text-align:left; display:block; width:100%; padding:6px 7px; margin:4px 0; border:0; border-left:3px solid #679b88; background:#eaf4ed; border-radius:5px; white-space:normal; font-size:.75rem; line-height:1.35; }
.calendar-event strong,.calendar-event small { display:block; overflow-wrap:anywhere; }
.calendar-event.pending { background:#fff3d6; border-left-color:#cfa44f; } .calendar-event.peer { background:#eef1f2; border-left-color:#899799; color:#425657; }
.calendar-event:hover { filter:brightness(.98); } .calendar-more { width:100%; padding:4px; font-size:.74rem; }
.calendar-detail { padding:13px 0; border-bottom:1px solid #e1e9e5; }
@media(max-width:1000px){.calendar-cell{padding:4px;min-height:115px}.calendar-event{font-size:.7rem;padding:4px}}
@media(max-width:680px){.absence-calendar{grid-template-columns:1fr}.calendar-weekday,.calendar-cell.blank{display:none}.calendar-cell{min-height:65px}.calendar-event{font-size:.85rem}.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar h2{order:-1;width:100%}}

@media(min-width:721px){.sidebar{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.sidebar>.brand,.sidebar>nav,.sidebar>#admin-nav,.sidebar>.sidebar-footer{flex-shrink:0}}
.customer-logo{display:block;object-fit:contain;width:auto;max-width:160px;max-height:64px;margin:0 10px 12px;background:#fff;border-radius:6px;padding:5px}

#toast{pointer-events:none}

/* Alpha 5: proper navigation grouping, detailed times and operational review. */
.configuration-group {display:flex;flex-direction:column;flex-shrink:0;min-width:0;gap:0}
.configuration-group>.config-subnav {margin:3px 0 8px 12px;padding:3px 0 3px 9px;border-left:1px solid #466b72;gap:2px}
.configuration-group #configuration-toggle {display:flex;justify-content:space-between;align-items:center;width:100%}
#configuration-toggle[aria-expanded="false"] .nav-chevron {transform:rotate(-90deg)}
#admin-nav>nav {display:flex;flex-direction:column}
.punch-time {display:block;font-family:Consolas,monospace;font-size:13px;line-height:1.8;white-space:nowrap}
.timecard-details td {vertical-align:top}.timecard-details .wrap {min-width:155px;max-width:285px}
.day-sequence {margin:6px 0}.day-sequence p{font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.day-sequence summary,.aggregate-details summary {cursor:pointer;color:#186a59}
.aggregate-details {margin-top:22px;padding-top:16px;border-top:1px solid #dfe7e4}
.compact-filter {max-width:260px;margin:12px 0}.review-note {display:block;max-width:270px;overflow-wrap:anywhere;margin-top:6px}
#anomalies-table .check,#report-check-table .check{white-space:nowrap}
.mail-actions {display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 8px}
#mail-settings-form code {overflow-wrap:anywhere}#mail-error:empty{display:none}#mail-error{color:#9c3027}
#page-preferences article {max-width:750px}#anomaly-review-note {min-height:90px}
#sites-table td {vertical-align:top}.oauth-result{font-family:system-ui,sans-serif;max-width:650px;margin:80px auto;padding:30px}
@media(max-width:720px){.mail-actions>*{width:100%}.timecard-details td{min-width:90px}.configuration-group>.config-subnav{margin-left:6px}.aggregate-details{overflow:auto}}

/* Alpha 6: anomaly modal and consolidated exports */
#anomaly-review-dialog{width:min(620px,calc(100vw - 32px));padding:28px;overflow-y:auto;max-height:90dvh}
#anomaly-review-dialog #anomaly-review-form{display:flex;flex-direction:column;gap:14px;min-width:0}
#anomaly-review-dialog .section-head{margin:0;align-items:center}
#anomaly-review-dialog .review-detail{background:#fff8ed;border:1px solid #f4dfbd;border-radius:10px;color:#4a5f66;padding:14px 16px;line-height:1.55;overflow-wrap:anywhere}
#anomaly-review-dialog .review-field{display:block;width:100%;min-width:0}
#anomaly-review-dialog .review-field label{display:block;width:100%;margin:0 0 8px;font-size:13px}
#anomaly-review-dialog textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:128px;padding:12px 14px;border:1px solid #c5d5db;border-radius:9px;color:var(--ink);background:white;font:inherit;line-height:1.5;resize:vertical}
#anomaly-review-dialog #review-chars{display:block;text-align:right;font-size:11px;margin-top:5px}
#anomaly-review-dialog .info-box{margin:0}#anomaly-review-dialog button[type="submit"]{align-self:flex-end;margin:0}
#admin-anomalies-nav{display:flex;align-items:center;justify-content:space-between;gap:7px}
#report-site-label,#report-team-label{min-width:155px}
.developer-emblem{display:block;width:38px;height:38px;object-fit:contain;flex:none}
.sidebar-footer .developer-emblem{width:36px;height:36px}
@media(max-width:660px){#anomaly-review-dialog{padding:20px}#anomaly-review-dialog button[type="submit"]{width:100%}}

.dashboard-anomaly-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:1px solid #d5e4e1;background:#f6fbfa;border-radius:12px;margin:0 0 16px;padding:12px 18px;font-size:14px;color:#2a5350}
.dashboard-anomaly-row strong{font-size:21px;color:#0c766e;font-variant-numeric:tabular-nums}.dashboard-anomaly-row small{color:#617b7d;font-size:12px;margin-left:7px}

/* Alpha 7: device provisioning and developer contact */
.developer-brand .developer-contact{font-size:.64rem;letter-spacing:.005em;color:#84d8cb;opacity:1;margin-top:.35rem;overflow-wrap:anywhere}
.sidebar-footer .developer-brand .developer-contact{color:#a4deda}
.credential-view{border:1px solid #c1d7d7;background:#f4fbf9;border-radius:9px;padding:15px;font:600 13px Consolas,monospace;overflow-wrap:anywhere;letter-spacing:1px;user-select:all;margin-bottom:12px}
#terminal-table td,#badge-table td,#device-event-table td{vertical-align:middle}

/* Alpha 8: online punch confirmations and installable Android PWA. */
.connection-banner{background:#fff1dc;color:#795317;border-bottom:1px solid #e8d2aa;padding:12px 20px;font-size:13px;line-height:1.5;text-align:center}
.punch-confirmation{background:#e3f3ef;color:#175c50;border:1px solid #baded2;border-radius:10px;padding:14px;font-size:13px;line-height:1.6;margin-top:18px;overflow-wrap:anywhere}
.pending-punch-panel{background:#fff7e8;border:1px solid #ecd8ae;border-radius:10px;padding:16px;margin-top:18px;color:#795317;font-size:13px;line-height:1.5}
.pending-punch-panel p{margin:8px 0 14px}.install-link{width:100%;margin-top:14px}
#install-dialog{max-width:520px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow:auto}
#install-dialog .modal-body{padding:24px}#install-dialog ol{padding-left:22px;line-height:1.65}#install-dialog li{margin:10px 0}
@media(max-width:720px){input,select,textarea{font-size:16px}.nav-item,.quiet{min-height:44px}.topbar{gap:8px;padding:12px 15px}.top-actions{max-width:65%}.punch{min-height:64px;font-size:16px}.clock{font-size:clamp(38px,12vw,49px)}.sidebar{padding-top:max(16px,env(safe-area-inset-top))}footer{padding-bottom:max(18px,env(safe-area-inset-bottom))}#install-dialog .modal-body{padding:20px}.pending-punch-panel .inline button{width:100%}}

/* Alpha 8.2: action-first layout on narrow screens, desktop order unchanged. */
#punch-location-help:not([hidden]) {border-left:3px solid var(--teal);padding:8px 12px;margin:9px 0 0;background:#f0f8f6}
.install-platforms{display:flex;gap:10px;margin:16px 0 8px}
.install-platforms button[aria-pressed="true"]{background:#087d78;color:white;border-color:#087d78}
@media(max-width:720px){
  #page-today .time-card{display:flex;flex-direction:column}
  #page-today .punch-site-fields{order:-2}
  #page-today .punch-buttons{order:-1;margin:8px 0 12px;gap:9px}
  #page-today .punch-buttons [data-punch="IN"]{order:1}
  #page-today .punch-buttons [data-punch="OUT"]{order:2}
  #page-today .punch-buttons [data-punch="BREAK_OUT"]{order:3}
  #page-today .punch-buttons [data-punch="BREAK_IN"]{order:4}
  #page-today .punch-buttons .punch{min-width:0;padding:12px 7px;min-height:68px}
  #page-today .clock-details{order:0;border-top:1px solid var(--line);margin-top:5px;padding-top:15px}
  #page-today .punch-confirmation,#page-today .pending-punch-panel,#page-today #punch-location-help{order:1}
  #page-today .time-card>p:last-child{order:2}
  #page-today .section-head{flex-wrap:wrap;gap:7px}
  #page-today .section-head .small{order:3;width:100%;font-size:11px}
  #install-dialog .install-platforms button{flex:1}
}

@media(max-width:720px){
  /* The today screen is action-oriented without changing other mobile sections. */
  .shell:has(#page-today:not([hidden])) .sidebar{padding:7px 12px 3px}
  .shell:has(#page-today:not([hidden])) .sidebar .brand,
  .shell:has(#page-today:not([hidden])) .sidebar .nav-caption,
  .shell:has(#page-today:not([hidden])) #customer-name,
  .shell:has(#page-today:not([hidden])) #customer-logo{display:none}
  .shell:has(#page-today:not([hidden])) .sidebar nav{margin:0}
  .shell:has(#page-today:not([hidden])) .topbar{padding:7px 12px}
  .shell:has(#page-today:not([hidden])) .test-banner{padding:5px 12px}
  #page-today .page-title{margin-bottom:12px}
  #page-today .page-title h1{font-size:24px}
  #page-today .time-card{padding:15px}
  #page-today .punch-site-fields label{margin:0 0 6px}
  #page-today .site-preferences{order:2;margin-top:9px}
  #page-today .site-preferences .check{margin:0}
  #page-today .site-preferences .quiet{min-height:36px}
}

/* Alpha 8.3: independently configurable schedule attendance tolerances. */
.tolerance-fields{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:12px}
.tolerance-fields legend{font-weight:700;padding:0 6px}
.tolerance-fields .form-grid{margin-top:14px}
.tolerance-fields input:disabled{background:#f2f5f4;opacity:.65}
.tolerance-fields p{margin:12px 0 2px}
.schedule-models{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.schedule-models table{font-size:12px}
.tolerance-note{margin:8px 0 4px;font-size:12px;max-width:380px}
.tolerance-note summary{cursor:pointer;color:#17685b;font-weight:600}
.tolerance-note ul{margin:8px 0;padding-left:18px;line-height:1.65}
.tolerance-note p{margin:7px 0}
@media(max-width:720px){.tolerance-fields{padding:10px}.schedule-models{max-width:calc(100vw - 58px)}}

/* Alpha 8.4: admin-only geofences and consent-triggered OSM map */
.geo-config-form .section-head h2{margin-bottom:5px}
.geo-site-list{display:grid;gap:15px;margin:18px 0 24px}
.geo-site{padding:18px;border:1px solid var(--line);border-radius:12px;background:#f9fbfb}
.geo-site h3{margin:0 0 7px;font-size:16px}
.geo-site .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.geo-site .form-grid label{margin-top:9px}
.geo-section-title{margin-top:28px}
.geo-map-panel{border:1px solid #b9dcd7;border-radius:12px;padding:15px;margin:12px 0 26px;background:#f7fbfa}
/* MapLibre layers: the displayed perimeter is geodesic, not a fixed-size drawing. */
.geo-map-canvas{position:relative;width:100%;height:440px;min-height:320px;border-radius:12px;border:1px solid #c9dcd8;background:#e6eeed;overflow:hidden;margin:12px 0}
.geo-map-status{min-height:1.5em;color:#245465}
.geo-map-status[data-error="true"]{color:#a92a24;font-weight:600}
#geo-map-coordinates,#geo-map-radius{font-variant-numeric:tabular-nums;font-weight:650}
#geo-test-summary{margin-top:14px}
.geo-pending{color:var(--amber)}
#geo-smart-rules{margin:12px 0}
@media(max-width:880px){.geo-site .form-grid{grid-template-columns:1fr}}
@media(max-width:720px){#page-geolocation .section-head{flex-wrap:wrap}.geo-site{padding:12px}.geo-map-canvas{height:360px;min-height:280px}}

/* Alpha 8.5 - administration of site-scoped OfficeNetworks whitelist. */
.office-rules{display:grid;gap:12px;margin:16px 0 20px}
.office-rule{border:1px solid var(--line);border-radius:12px;background:#f8fbfa;padding:15px}
.office-rule-grid{display:grid;grid-template-columns:minmax(150px,1.5fr) minmax(140px,1fr) minmax(170px,1.4fr);gap:12px}
.office-rule-grid label{margin:5px 0 8px}
.office-rule-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px}
.office-add-grid{display:grid;grid-template-columns:1.35fr 1fr 1.3fr;gap:12px}
.office-add-grid label{margin-top:6px}
@media(max-width:900px){.office-add-grid,.office-rule-grid{grid-template-columns:1fr}}
