:root{--navy:#172824;--ink:#20322d;--muted:#6a7971;--cream:#f6f5ef;--gold:#c7ac79;--line:#e2e6df;--green:#e1eee3;--orange:#fff0da;--white:#fff;--red:#a53832}*{box-sizing:border-box}body{margin:0;background:var(--cream);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button,.button{min-height:44px;border:1px solid transparent;border-radius:9px;padding:9px 15px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);background:#edf0eb;font-weight:600}button:hover,.button:hover{filter:brightness(.96)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.primary{background:var(--navy);color:white}.quiet{background:var(--white);border-color:var(--line)}.danger{color:var(--red)}header{height:86px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 4vw;gap:20px}.brand{display:flex;gap:14px;align-items:center;margin-right:auto}.brand-mark{font:38px Georgia;color:var(--gold);width:48px;height:48px;border:1px solid #6d755b;border-radius:50%;display:grid;place-items:center}.brand strong{letter-spacing:4px;font-size:17px}.brand span:not(.brand-mark){display:block;color:#bbc9c1;font-size:12px}#connection{font-size:13px;color:#d1ddd5}main{padding:35px 4vw 60px;max-width:1900px;margin:auto}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-.6px;margin-bottom:0}h2{font-size:18px;margin:0}h3{font-size:18px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);font-weight:700;margin-bottom:6px}.toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}label{display:block;font-size:12px;color:var(--muted);font-weight:600}input,select,textarea{display:block;min-height:44px;border:1px solid #cdd6cd;border-radius:8px;padding:9px 12px;margin-top:5px;background:#fff;color:var(--ink);max-width:100%}select{min-width:170px}input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px}.summary{display:flex;border:1px solid var(--line);border-radius:14px;background:#fff;padding:22px 25px;gap:40px;align-items:center;margin-bottom:28px}.summary span{display:block;font-size:12px;color:var(--muted)}.summary strong{font-size:29px;font-weight:600}.summary p{margin:0 0 0 auto;color:var(--muted);font-size:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading>span{font-size:12px;color:var(--muted)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;white-space:nowrap;background:#eef1eb;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.8px;padding:14px 16px;border-bottom:1px solid var(--line)}td{padding:16px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}.tech-name{font-size:15px;font-weight:650;white-space:nowrap}.position{display:inline-block;width:25px;color:#8d9a90;font-size:12px}.subtle{color:var(--muted);font-size:11px;margin-top:4px}.status{display:inline-block;font-size:11px;font-weight:650;padding:4px 9px;border-radius:20px;white-space:nowrap;background:#edf0eb}.status.ready,.status.finished{background:var(--green);color:#34593e}.status.called{background:var(--orange);color:#9b620b}.status.working{background:#e3eafa;color:#355886}.status.accepted{background:#e8e0f3;color:#6c4387}.job-service{min-width:150px;font-weight:550}.timer{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}.job-controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.job-controls button{font-size:11px;min-height:36px;padding:6px 10px}.slot{min-width:90px;max-width:160px}.slot-card{background:#edf5ed;border:1px solid #d2e3d1;border-radius:8px;padding:7px 9px}.slot-card.half{background:#fff7e7;border-style:dashed;border-color:#d8bc87}.slot-card strong{display:block;font-size:11px;color:#68766b}.slot-card span{white-space:nowrap;font-weight:600}.slot-empty{color:#bbc5bc}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--muted);padding:16px 3px}.roster,.completed{margin-top:35px}#roster{display:flex;flex-wrap:wrap;gap:10px}.person-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;min-width:190px;display:flex;flex-direction:column;gap:8px}.person-card>strong{font-size:14px}.person-card small{color:var(--muted)}.person-card .buttons{display:flex;gap:6px;flex-wrap:wrap}.person-card button{min-height:36px;font-size:11px;padding:6px 9px}.login{max-width:440px;margin:8vh auto;padding:32px;background:#fff;border:1px solid var(--line);border-radius:16px}.login h1{font:34px/1.1 Georgia;margin-bottom:18px}.login p{color:var(--muted)}.login input{width:100%}.login button{width:100%;margin-top:18px}.empty{text-align:center;border:1px dashed #cbd6ca;border-radius:14px;padding:45px 20px;color:var(--muted);margin:16px 0}.notice{padding:12px 16px;background:var(--orange);border-radius:9px;margin-bottom:20px;font-size:13px}.error{color:var(--red);font-size:13px;margin-top:16px}#message{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:13px 20px;border-radius:10px;box-shadow:0 8px 35px #17282430;max-width:90vw;z-index:5}dialog{border:0;border-radius:15px;padding:25px;width:min(500px,94vw);color:var(--ink);box-shadow:0 25px 90px #0003}dialog::backdrop{background:#17282470}.dialog-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.dialog-top h2{font-size:22px}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:10px 0 22px}.service-grid button{background:#f1f3ee;border-color:#dce3d9}.service-grid button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.customer-types{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}.customer-types button[aria-pressed=true]{border-color:var(--navy);background:#e7ede7}.turn-preview{padding:12px 15px;background:#f1f4ee;border-radius:8px;font-size:13px;margin-bottom:15px}.wide-input{width:100%}.pair-code{font-size:32px;font-weight:700;letter-spacing:4px;padding:20px;background:#f0f3ed;border-radius:12px;text-align:center}.offline .mutation{pointer-events:none;opacity:.4}[hidden]{display:none!important}@media(max-width:1000px){main{padding:25px 22px}.toolbar{align-items:flex-start;flex-direction:column}.summary{gap:25px;flex-wrap:wrap}.summary p{margin:0;flex-basis:100%}.filters{width:100%}.filters label{flex:1}.filters input,.filters select{width:100%}.section-heading>span{max-width:50%}header{padding:0 22px}}@media(max-width:600px){main{padding:20px 14px}.summary{gap:20px;padding:20px}.summary>div{width:40%}.filters>.button,.filters>button{font-size:12px}.service-grid{grid-template-columns:repeat(2,1fr)}.login{padding:25px;margin:5vh auto}.section-heading>span{display:none}}

.language-control {font-size:11px;color:#526c58;display:flex;flex-direction:column;gap:4px;margin-left:auto}
.pending{color:#9b620b;font-size:12px}.daily-money{font-size:12px}.daily-money strong{font-variant-numeric:tabular-nums}#shared-tip-fields{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px}#dialog-content label{margin-top:12px}#equal-tip,#clear-shared-tip{margin-top:12px}#history-body td:last-child{min-width:140px}#history-body td:last-child button{display:flex;margin:4px 0;font-size:12px}
.language-control select {padding:6px;max-width:180px}
.board-views{display:flex;gap:8px;margin-bottom:20px}.board-views button{background:#fff;border-color:var(--line)}.board-views button[aria-pressed=true]{background:var(--navy);color:#fff}.section-actions,.compact-filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.compact-filters{margin-bottom:12px}.compact-filters input{width:240px}.compact-filters label{min-width:160px}.compact-filters select{width:100%}.summary{padding:14px 20px;gap:28px;margin-bottom:22px}.summary strong{font-size:25px}.summary p{display:none}#turn-table td{padding:10px 14px}#turn-table th:first-child,#turn-table td:first-child{position:sticky;left:0;z-index:1;background:#fff}#turn-table th:first-child{background:#eef1eb;z-index:2}#turn-table.compact-turns{min-width:640px}#turn-table .tech-name{font-size:14px}.current-service-meta{font-size:11px;color:var(--muted);margin-top:3px}.current-service-meta .timer{font-size:13px;color:var(--ink)}.job-controls{margin-top:5px}.turn-total>strong{font-size:18px}.half-hint{display:block;font-size:11px;color:#9b620b}.turn-legend{margin-top:12px;font-size:12px;color:var(--muted)}.turn-legend>summary{cursor:pointer}.turn-legend .legend{padding:10px 0}#roster.compact-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));align-items:start;gap:8px}.person-row{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.person-row>summary{cursor:pointer;padding:12px;min-height:65px;list-style-position:inside}.person-overview{display:inline-flex;vertical-align:middle;flex-direction:column;gap:3px;width:calc(100% - 25px)}.person-row>summary:has(button) .person-overview{width:calc(100% - 145px)}.person-overview>strong{font-size:14px}.person-overview small{font-size:11px;color:var(--muted)}.person-row>summary>button{font-size:11px;min-height:36px;max-width:120px;padding:6px 9px;vertical-align:middle}.person-row[open]>summary{background:#f0f3ed;border-bottom:1px solid var(--line)}.person-management{padding:12px}.person-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.person-warnings{display:flex;flex-direction:column;gap:4px;margin:8px 0}.person-management .buttons,#dialog-content>.buttons{display:flex;flex-wrap:wrap;gap:7px}.person-management button{font-size:11px;min-height:36px;padding:6px 9px}.person-row>summary:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}.range-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:14px}.range-form input{min-width:170px}.range-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:24px}.range-totals>.pending{grid-column:1/-1}.range-days-table{max-height:420px;overflow:auto;margin:12px}.range-days-table thead th{position:sticky;top:0;z-index:1}.range-days-table td{padding:10px 12px}.range-days-table .pending{display:block}.range-days-table button{font-size:12px;white-space:nowrap}#range-caption{font-size:14px;color:var(--muted);margin-top:20px}@media(max-width:650px){.compact-filters{gap:8px}.compact-filters label{flex:1;min-width:140px}.compact-filters input{width:100%}.section-actions{justify-content:flex-end}.section-actions button{font-size:11px;padding:7px 9px}.range-form label{flex:1}.range-form input{min-width:0;width:100%}.range-form>button{width:100%}.range-totals{grid-template-columns:repeat(2,minmax(0,1fr));padding:15px}.range-days-table{margin:8px}.person-row>summary:has(button) .person-overview{width:calc(100% - 145px)}}
header {flex-wrap:wrap;gap:12px}
.status {white-space:normal}
.service-grid button,.customer-types button {min-height:48px}
@media (max-width:650px) { .language-control {margin-left:0} .brand strong {font-size:15px} }
.history-help{font-size:13px;color:var(--muted);margin:8px 0 14px}.history-toolbar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:10px}.history-views{display:flex;gap:6px;flex-wrap:wrap}.history-views button{background:#fff;border-color:var(--line)}.history-views button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.history-search{margin-left:auto}.history-search input{width:250px}#history-count{margin-bottom:12px}.history-tech,.history-shared{border:1px solid var(--line);border-radius:10px;background:#fff;margin:9px 0;overflow:hidden}.history-tech>summary,.history-shared>summary{cursor:pointer;padding:14px 18px;min-height:60px;list-style-position:inside}.history-tech>summary:focus-visible,.history-shared>summary:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}.history-tech[open]>summary,.history-shared[open]>summary{border-bottom:1px solid var(--line);background:#f0f3ed}.history-summary{display:inline-grid;grid-template-columns:minmax(200px,1.5fr) minmax(90px,.6fr) repeat(3,minmax(130px,1fr));gap:12px;align-items:start;width:calc(100% - 24px);vertical-align:middle}.history-person{display:flex;flex-direction:column;gap:4px}.history-person>strong{font-size:16px}.history-person small{font-size:11px;color:var(--muted)}.history-metric{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.history-metric>strong{font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums}.history-details{padding:14px}.history-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);font-size:12px;margin-bottom:12px}.history-detail-heading button{white-space:nowrap;font-size:12px}.history-table{margin-top:8px}.history-table td{padding:10px 12px}.history-table td:last-child{min-width:140px}.history-table td:last-child button{display:flex;margin:4px 0;font-size:12px;min-height:36px;padding:6px 9px}.history-shared>summary{background:#eef3ee}.history-shared-label{display:inline-flex;vertical-align:middle;flex-direction:column;gap:3px;width:calc(100% - 24px)}.history-shared-label>span:first-child{font-size:11px;color:var(--muted)}.history-shared-label>small{font-size:12px;color:var(--muted)}.history-shared>.history-help{padding:0 14px;margin:12px 0}.history-shared>.table-wrap{margin:0 12px 12px}.history-subheading{font-size:14px;margin:18px 0 8px}@media(max-width:1100px){.history-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.history-person{grid-column:1/-1}.history-search{margin-left:0;flex:1}.history-search input{width:100%}}@media(max-width:650px){.history-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.history-views{width:100%}.history-views button{flex:1}.history-tech>summary,.history-shared>summary{padding:12px}.history-details{padding:10px}.history-detail-heading{align-items:flex-start}.history-search{min-width:150px}}
/* Compact color boxes keep every turn visible in arrival order. */
.turn-color-key{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0 0 10px;color:var(--muted);font-size:11px}.turn-color-key>span{display:inline-flex;align-items:center;gap:6px}.turn-swatch{width:13px;height:13px;border-radius:3px;border:1px solid #9ab9a1;display:inline-block;background:#d8ebdc}.turn-swatch.half{background:#ffe4b7;border-color:#ca9a4f}.turn-total{width:40%;min-width:230px}.turn-strip-total{display:flex;align-items:center;gap:7px;margin-bottom:5px;color:var(--muted);font-size:10px}.turn-strip-total>strong{font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums}.turn-strip-total .half-hint{margin-left:4px;font-size:10px}.turn-strip{display:flex;flex-wrap:wrap;gap:4px;max-width:440px}.turn-chip{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:48px;height:36px;flex:0 0 48px;border:1px solid #9ab9a1;border-radius:5px;background:#d8ebdc;color:#244f30;line-height:1.1;overflow:hidden;vertical-align:middle}.turn-chip.half{background:#ffe4b7;border-color:#ca9a4f;color:#71480a}.turn-chip strong{font-size:13px;font-variant-numeric:tabular-nums}.turn-chip small{font-size:9px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:1px 2px}.slot{min-width:66px;max-width:100px}#turn-table td.slot{padding:8px}#turn-table th{padding:11px 14px}#turn-table.compact-turns{min-width:740px}.service-grid button{overflow-wrap:anywhere}@media(max-width:1000px){.turn-strip{max-width:280px}.turn-total{width:auto}}


/* Appointments use their own compact view and never replace the turn board. */
.appointment-card{border:1px solid #dce4db;border-radius:12px;background:#fff;margin:10px 0;overflow:hidden}.appointment-card>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px;cursor:pointer}.appointment-card summary small{display:block;color:#647466;margin-top:5px}.appointment-body{padding:0 16px 16px}.appointment-body p{white-space:pre-wrap;overflow-wrap:anywhere}.appointment-notice{background:#fff5e0;border:1px solid #e8c786;border-radius:12px;padding:14px;margin:10px 0}.appointment-notice ul{padding-left:20px}.appointment-alerts{padding:12px 0}.appointment-alerts>summary{cursor:pointer;font-weight:600}.appointment-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.appointment-fields input,.appointment-fields select,#appointment-notes{width:100%;box-sizing:border-box}#appointment-notes{font:inherit;padding:10px;border:1px solid #bcccbc;border-radius:8px}.appointment-service{border:1px solid #dce4db;border-radius:10px;padding:12px;margin:14px 0}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:auto}#owner-phone-code:empty{display:none}#appointment-editor{width:min(760px,95vw)}#appointment-conflicts p{margin:6px 0}#appointment-alert-bar button{margin-left:12px}@media(max-width:600px){.appointment-fields{grid-template-columns:1fr}.appointment-card>summary{align-items:flex-start}.appointment-card summary strong{overflow-wrap:anywhere}.board-views{flex-wrap:wrap}}

/* Explicit calendar buttons and typeable 12-hour appointment controls. */
.appointment-date-field{position:relative;min-width:0}.appointment-date-field>label{margin-bottom:6px}.appointment-date-controls{display:flex;align-items:stretch;gap:6px}.appointment-date-controls>input[type=text]{width:150px;min-width:0;flex:1}.appointment-date-picker{min-width:64px;padding:8px;border:1px solid #bcccbc;border-radius:8px;background:#edf0e9;cursor:pointer}.appointment-date-picker[aria-expanded=true]{background:#203c30;color:white}.appointment-date-field>small{display:block;margin-top:4px;font-size:11px;color:#647466}.appointment-calendar{position:absolute;top:100%;left:0;z-index:30;width:min(330px,calc(100vw - 48px));padding:12px;background:#fff;border:1px solid #bcccbc;box-shadow:0 8px 24px #203c3030;border-radius:12px}.appointment-calendar[hidden]{display:none}.appointment-calendar-heading{display:grid;grid-template-columns:30px minmax(0,1fr) 66px 30px;gap:5px;align-items:center}.appointment-calendar-heading button,.appointment-calendar-heading select,.appointment-calendar-heading input{padding:6px;min-width:0;width:100%;font-size:12px}.appointment-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:8px 0}.appointment-calendar-grid button{min-width:0;min-height:36px;padding:5px;border:0;background:#f1f5ee;font-size:13px}.appointment-calendar-grid button[aria-pressed=true]{background:#203c30;color:white}.appointment-calendar-weekday{font-size:10px;text-align:center;color:#647466;overflow-wrap:anywhere}.appointment-calendar [data-calendar-error]:empty{display:none}.appointment-calendar>[data-calendar-close]{width:100%;min-height:36px;font-size:12px}.appointment-time-field{min-width:0}.appointment-time-field>span{display:block;margin-bottom:6px;font-weight:600}.appointment-time-controls{display:grid;grid-template-columns:minmax(36px,1fr) 6px minmax(36px,1fr) minmax(48px,1.2fr);gap:4px;align-items:center}.appointment-time-controls>input[type=text]{min-width:0;text-align:center;background:#edf3ff;border-color:#9bb5e8;padding-left:4px;padding-right:4px;font-variant-numeric:tabular-nums}.appointment-time-controls>select{min-width:0;padding-left:4px;padding-right:4px}.appointment-time-controls>input[type=text]:focus{outline:2px solid #2563eb;outline-offset:1px}.appointment-time-controls>input:invalid:not(:focus){border-color:#ba3838}

.public-links{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;padding:20px;font-size:12px}.public-links a{color:#42634c;text-underline-offset:3px}
