:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20374b;background:#f4f6f9;font-size:14px;--nav:#172e45;--accent:#147d78;--line:#e4eaf0;--muted:#758497}*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}button{border:1px solid transparent;background:var(--accent);color:white;border-radius:8px;padding:10px 15px;cursor:pointer;font-weight:600;transition:background .15s}button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}button.secondary,.button.secondary{background:white;border:1px solid #dbe3eb;color:#42576c}.danger{background:#fff1f0!important;border-color:#f3cdcb!important;color:#b6403c!important}.small{padding:7px 10px;font-size:12px}.text-button{background:none;color:var(--accent);padding:4px 0;text-align:left;border:0}input,select,textarea{display:block;width:100%;border:1px solid #d8e1e8;border-radius:7px;background:white;color:#263d51;padding:10px 11px;min-height:40px}input:focus,select:focus,textarea:focus{outline:2px solid #80b9b5;outline-offset:1px}input[type=checkbox]{width:16px;min-height:16px;display:inline-block;accent-color:var(--accent)}label{display:block;color:#4b6073;font-size:12px;font-weight:600}label>input,label>select,label>textarea{margin-top:6px}small,.muted{color:var(--muted);font-weight:400}small{font-size:11px}#sidebar{background:var(--nav);color:#d6e1e9;position:fixed;inset:0 auto 0 0;width:232px;padding:29px 18px;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{display:flex;gap:11px;align-items:center;color:white;font-size:29px;font-weight:750;letter-spacing:-1px;padding:0 12px 32px}.brand small{display:block;color:#9aafbe;font-size:10px;letter-spacing:.7px;margin-top:1px}.brand-mark{border-radius:13px;background:#2d9c90;width:40px;height:43px;text-align:center;font-size:39px;line-height:39px;font-weight:800}.nav-label{font-size:9px;letter-spacing:1.9px;color:#8098ad;margin:0 12px 13px}nav{display:grid;gap:5px}nav button{display:flex;align-items:center;gap:13px;background:none;color:#aebfce;font-weight:500;text-align:left;font-size:13px;padding:11px 13px}nav button.active{background:#284458;color:white;box-shadow:inset 3px 0 #52b8a8}nav svg{width:18px;height:18px;flex-shrink:0}.sidebar-bottom{font-size:10px;margin:auto 10px 0;color:#abc0cf;padding-top:25px}.sidebar-bottom small{display:block;margin:9px 0 0 13px;color:#728da2;font-size:9px}.online-dot{width:5px;height:5px;background:#57c8a0;border-radius:50%;display:inline-block;margin-right:5px}.app{margin-left:232px;min-height:100vh;display:flex;flex-direction:column}header{height:79px;display:flex;align-items:center;padding:0 34px;gap:20px;border-bottom:1px solid var(--line);background:white}.breadcrumb{color:#8a97a4;font-size:12px;flex:1}.breadcrumb span{margin:0 10px;color:#c7d0d8}.breadcrumb strong{font-weight:500;color:#40586c}.company-picker{display:flex;align-items:center;gap:10px;font-size:11px}.company-picker select{padding:7px 10px;min-height:34px;font-size:12px;margin:0;width:170px}.account{display:flex;gap:9px;align-items:center;font-size:11px;color:#30485a}.account #avatar{display:grid;place-items:center;width:32px;height:32px;background:#e9f2ef;color:#20796c;border-radius:50%;font-weight:700}main{padding:30px 34px;flex:1;max-width:1700px;width:100%;margin:auto}#pageHeading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:23px}h1{font-size:27px;font-weight:650;letter-spacing:-.7px;margin:0 0 7px}h2{font-size:16px;font-weight:650;margin:0 0 18px}h3{font-size:13px;margin:0 0 10px}p{line-height:1.6}#pageHeading p{margin:0;color:var(--muted);font-size:12px}#connection{font-size:11px;color:var(--muted);margin:-10px 0 17px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:23px}.card,.panel{background:white;border:1px solid var(--line);border-radius:11px}.card{padding:21px}.card .label{font-size:11px;color:var(--muted);display:flex;justify-content:space-between}.card .value{font-size:27px;font-weight:650;letter-spacing:-.8px;margin:15px 0 8px}.card small{font-size:10px}.card-icon{display:grid;place-items:center;background:#e9f4f1;color:#2c8778;border-radius:7px;width:29px;height:29px;margin-top:-5px}.card-icon svg{width:16px;height:16px}.panel{padding:23px;margin-bottom:22px;overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.panel-header h2{margin:0}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:19px;flex-wrap:wrap}.toolbar input{max-width:330px;font-size:12px;background:#fafbfd}.toolbar select{width:auto;max-width:240px;font-size:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}th{background:#f7f9fb;color:#77889a;font-size:10px;font-weight:600;border-bottom:1px solid var(--line);padding:12px}td{padding:15px 12px;border-bottom:1px solid #edf1f5}tr:last-child td{border:0}.numeric{text-align:right;font-variant-numeric:tabular-nums}td strong{font-weight:600}td small{display:block;margin-top:4px}.empty{text-align:center;padding:45px;color:#8796a3;white-space:normal}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:5px 8px;font-size:10px;background:#eef2f5;color:#66798d;font-weight:500}.badge.green{background:#e7f4ed;color:#34815c}.badge.amber{background:#fff3de;color:#ab7c28}.badge.red{background:#fbeceb;color:#b45b55}.badge.blue{background:#eaf1fb;color:#577eac}.split{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.split .panel{margin:0}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-actions button{background:#f8fafb;border:1px solid var(--line);color:#3a5567;text-align:left;font-size:12px;padding:17px}.quick-actions button svg{width:16px;vertical-align:middle;margin-right:7px}.notice{border-left:3px solid #5caa9b;background:#f0f7f5;padding:13px 16px;font-size:12px;line-height:1.6;margin:15px 0;color:#3c6c62}.notice.warning{border-color:#cb9c45;background:#fcf7eb;color:#926d2c}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.check{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:400}.check input{margin:0}.checks{display:flex;flex-wrap:wrap;gap:12px}.checks label{display:flex;align-items:center;gap:5px;font-size:11px}.checks input{margin:0}.line-form{display:grid;grid-template-columns:minmax(160px,2fr) 100px 80px 100px auto;gap:10px;align-items:end;margin:16px 0}.summary{display:flex;justify-content:flex-end;gap:30px;padding:18px 0;font-size:12px}.summary strong{font-size:18px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:15px 0 25px}.detail-grid span{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.product-cell{display:flex;align-items:center;gap:10px}.product-image{width:35px;height:40px;object-fit:contain;background:#f3f6f8;border-radius:5px}.product-placeholder{width:35px;height:40px;display:grid;place-items:center;background:#eef3f6;color:#9aafbf;border-radius:5px}.product-placeholder svg{width:19px;height:19px}dialog{border:1px solid var(--line);border-radius:13px;box-shadow:0 20px 80px #182b4530;padding:25px;max-width:880px;width:calc(100% - 32px);max-height:90vh;color:#20374b}dialog::backdrop{background:#152b4366}.modal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}#formError{color:#b6403c;font-size:12px;margin-bottom:0}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 24px;color:white;background:#183c49;border-radius:9px;max-width:90vw;z-index:100;font-size:13px}footer{color:#98a6b1;font-size:10px;padding:0 34px 20px}footer span{margin:0 8px}.mobile{display:none}.role-row{padding:13px 0;border-bottom:1px solid var(--line)}.role-row strong{display:block;margin-bottom:10px;font-size:12px}.progress{height:5px;background:#eff3f5;border-radius:4px;overflow:hidden;margin:10px 0}.progress i{display:block;height:100%;background:#67b3a6}.row-title{display:flex;justify-content:space-between;font-size:12px;margin:17px 0 5px}.print-only{display:none}
@media(min-width:1500px){main{padding-top:40px}.card .value{font-size:32px}}@media(max-width:1100px){header{padding:0 22px;gap:12px}main{padding:25px 22px}.cards{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.account #accountName{display:none}.company-picker span{display:none}.line-form{grid-template-columns:2fr 1fr 1fr}.line-form label:first-child{grid-column:1/-1}}
@media(max-width:760px){#sidebar{transform:translateX(-100%);transition:transform .2s;width:250px}body.menu-open #sidebar{transform:translateX(0)}#backdrop{position:fixed;inset:0;background:#10283d66;z-index:29}body.menu-open #backdrop{display:block}.mobile{display:block}.app{margin:0}header{height:65px;padding:0 14px;gap:10px}.breadcrumb{display:none}.company-picker{flex:1}.company-picker select{width:100%;max-width:230px}.account{display:none}main{padding:23px 15px}h1{font-size:23px}#pageHeading{align-items:flex-start}#pageHeading button{font-size:11px;padding:9px 11px}.cards{gap:10px}.card{padding:15px}.card .value{font-size:23px}.card .label{font-size:10px}.card-icon{display:none}.panel{padding:16px}.panel-header{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.detail-grid{grid-template-columns:1fr 1fr}.line-form{grid-template-columns:1fr 1fr}.line-form button{grid-column:1/-1}.summary{gap:18px}.quick-actions button{padding:13px}.toolbar input{max-width:none}.toolbar select{max-width:none;width:100%}dialog{padding:18px}.brand{padding-bottom:20px}#closeMenu{margin-bottom:20px}.nav-label{margin-top:10px}.sidebar-bottom{margin-top:20px}.actions button{font-size:11px}footer{padding-left:15px}}
@media print{body{background:white}.app{margin:0}header,#sidebar,#pageHeading,#connection,#view,footer,#toast{display:none!important}dialog{display:block;position:static;max-width:none;max-height:none;width:100%;margin:0;padding:0;border:0;box-shadow:none}dialog::backdrop{display:none}dialog button,dialog form,.no-print,#formError{display:none!important}.print-only{display:block}table{white-space:normal}.panel{border:0;padding:0}}

/* Barber shop calendar: the customer grid contains only available slots. */
.agenda-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.agenda-toolbar label{display:grid;gap:6px;min-width:150px}.agenda-toolbar input,.agenda-toolbar select{width:100%}.agenda-calendar{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.agenda-calendar.week{grid-template-columns:repeat(7,minmax(160px,1fr));overflow:auto;padding-bottom:8px}.agenda-day{background:#f5f8fb;border:1px solid #dce5ed;border-radius:12px;padding:12px;min-height:160px}.agenda-day h2{font-size:15px;margin:0 0 12px}.agenda-appointment{padding:14px;margin-bottom:10px;background:white;border:1px solid #cbdde8;border-left:4px solid #3b80a4;border-radius:8px}.agenda-appointment.completed{border-left-color:#258366}.agenda-appointment h3{font-size:16px;margin:7px 0}.agenda-appointment p{margin:6px 0}.agenda-appointment small{display:block}.agenda-slot{display:flex;width:100%;flex-direction:column;align-items:start;gap:5px;background:#e9f7f0;color:#175c46;border:1px solid #b7ddcc;margin-bottom:8px;padding:12px;border-radius:8px}.agenda-slot:hover{background:#d5eee1;color:#133e30}.agenda-subtitle{margin-top:24px}.agenda-reservation{display:flex;flex-direction:column;gap:6px;padding:14px 0;border-bottom:1px solid #e0e8ed}.agenda-config-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;align-items:center;margin-bottom:12px}.agenda-week-row{display:grid;grid-template-columns:1.1fr repeat(4,1fr);gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid #e0e8ed}.agenda-week-row label,.agenda-config-row label{display:grid;gap:6px}.agenda-week-row label.check,.agenda-config-row label.check{display:flex}.agenda-week-row input,.agenda-config-row input,.agenda-config-row select{min-width:0;width:100%}@media(max-width:650px){.agenda-week-row{grid-template-columns:1fr 1fr}.agenda-week-row>.check{grid-column:1/-1}.agenda-config-row{grid-template-columns:1fr 1fr}.agenda-config-row>.check{grid-column:1/-1}.agenda-toolbar{align-items:stretch}.agenda-toolbar label{flex:1}}

/* Daily appointment work: compact controls, readable rows, separate setup. */
.agenda-date-nav{display:flex;gap:6px;float:right;margin:0 0 12px 12px}.agenda-date-nav button{min-width:44px;min-height:44px}.agenda-hint{font-size:11px;color:var(--muted);margin:0 0 12px}.agenda-settings-panel{background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:22px}.agenda-settings-panel>summary{padding:18px;cursor:pointer;font-weight:600;color:#42576c;min-height:48px}.agenda-settings-panel>.panel{border:0;margin:0}.agenda-settings-panel>.panel>h2{display:none}.agenda-card-time{font-variant-numeric:tabular-nums}.agenda-card-info h3{margin:0 0 4px}.agenda-appointment{display:grid;grid-template-columns:140px 1fr auto;align-items:center;gap:12px}.agenda-appointment p{margin:3px 0}.agenda-card-info .badge{margin-top:6px}.agenda-toolbar>div button{min-height:44px}.agenda-toolbar label{min-width:0}.agenda-toolbar input[type=date]{min-width:0;max-width:100%}
@media(max-width:760px){
 header{gap:7px;padding:0 10px}header button{min-height:44px;padding:9px 10px}header .company-picker{min-width:0}header .company-picker select{min-width:0;max-width:none;font-size:14px;padding:10px 6px}#bookingLink{font-size:0;white-space:nowrap;padding:10px 7px;min-height:44px;display:flex;align-items:center}#bookingLink:after{content:'Web ↗';font-size:12px}#bookingLink[hidden]{display:none}
 main{padding:16px 12px}#pageHeading{gap:10px;margin-bottom:12px}#pageHeading h1{margin:0;font-size:24px}#pageHeading p{display:none}#pageHeading button{font-size:14px;min-height:44px;padding:10px 14px}#connection{font-size:11px;margin-bottom:12px;line-height:1.5}#connection .connection-summary{display:none}#connection button{font-size:11px;padding:7px 10px}
 .agenda-main{padding:12px;margin-bottom:14px}.agenda-date-nav{float:none;margin:0 0 10px;justify-content:center}.agenda-date-nav button:nth-child(2){flex:1}.agenda-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:10px;align-items:end}.agenda-toolbar label{min-width:0;gap:0;font-size:11px}.agenda-toolbar label input,.agenda-toolbar label select{font-size:16px;min-height:44px;width:100%;margin-top:4px}.agenda-toolbar>div{display:flex;align-items:end}.agenda-toolbar>div button{padding:10px;font-size:13px}.agenda-toolbar>label:last-of-type{grid-column:1/-1}.agenda-calendar.week{grid-template-columns:1fr;overflow:visible}.agenda-day{padding:0;background:transparent;border:0;min-height:0}.agenda-day h2{font-size:13px;margin:6px 0 10px}.agenda-appointment{grid-template-columns:76px minmax(0,1fr) auto;gap:8px;padding:12px 9px;margin-bottom:8px}.agenda-card-time{align-self:start;font-size:12px;line-height:1.7;max-width:76px}.agenda-card-info h3{font-size:15px;overflow-wrap:anywhere}.agenda-card-info p{font-size:12px}.agenda-card-info small{font-size:10px}.agenda-card-info .badge{font-size:10px;padding:4px 6px}.agenda-appointment button{min-height:44px;font-size:11px;padding:8px}.agenda-settings-panel>summary{font-size:13px}.agenda-day .empty{padding:24px 12px}
 dialog{width:100%;max-width:none;max-height:94dvh;margin:auto 0 0;border-radius:18px 18px 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom));overflow-y:auto}dialog input,dialog select,dialog textarea{font-size:16px;min-height:46px}dialog .form-grid{gap:13px}dialog .form-actions{position:sticky;bottom:calc(-16px - env(safe-area-inset-bottom));background:white;padding:12px 0 calc(12px + env(safe-area-inset-bottom));margin-top:14px;border-top:1px solid var(--line);z-index:2}dialog .form-actions button{min-height:48px;flex:1}dialog .modal-top h2{font-size:19px;margin:0 0 12px}dialog .check{line-height:1.5;min-height:44px}dialog .check input{min-height:16px}
}
