:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19243c;background:#f4f6fa;font-size:16px;--brand:#335cff;--line:#e2e6ef;--muted:#69758b}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);background:white;border-radius:9px;padding:10px 16px;font-weight:600;color:inherit}button:hover{background:#edf1fa}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--brand);color:white;border-color:var(--brand)}button.text-link{border:0;background:none;padding:0;font-weight:600;color:var(--brand)}button.text-link:hover{background:none;text-decoration:underline}a{color:var(--brand)}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #cfd6e2;border-radius:8px;background:#fff;color:#19243c}input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand)}input[type=color]{height:44px;padding:4px}textarea{min-height:100px;resize:vertical}label{display:grid;gap:7px;font-size:.875rem;font-weight:600}label.check{display:flex;align-items:center;gap:10px;padding:8px 0}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-size:2.5rem;font-weight:650;letter-spacing:-3px;text-decoration:none;color:#18243b;line-height:1}.brand b{color:var(--brand)}.brand-small{font-size:.75rem;text-transform:uppercase;letter-spacing:3px;color:var(--muted);margin:10px 0 42px 4px}.nav{display:grid;gap:8px}.nav button{border:0;background:transparent;text-align:left;padding:13px 15px;font-size:.9375rem;font-weight:500}.nav button.active{background:#eaf0ff;color:var(--brand);font-weight:650}.nav span{display:inline-block;width:28px;font-size:1.125rem}.nav-caption{text-transform:uppercase;font-size:.75rem;letter-spacing:1.5px;color:#7a879c;margin:28px 14px 12px}.sidebar-foot{margin-top:auto;padding-top:30px;font-size:.875rem;color:var(--muted)}.sidebar-foot button{margin-top:14px;width:100%}.content{padding:34px 40px;max-width:1640px;width:100%;margin:auto}.topline{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:32px}.eyebrow{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:1.6px;margin-bottom:8px}h1{font-size:2rem;letter-spacing:-1px;margin:0}h2{font-size:1.125rem;letter-spacing:-.3px;margin:0 0 18px}h3{font-size:1rem;margin:0 0 8px}p{line-height:1.6}.muted{color:var(--muted);font-size:.875rem;line-height:1.6}.toolbar,.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar{margin:22px 0}.toolbar input,.toolbar select{width:auto}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:26px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.metric .number{display:block;font-size:1.875rem;font-weight:650;margin:12px 0 2px;letter-spacing:-1px}.metric .label{font-size:.875rem;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:20px}.agenda{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.person-head{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:16px}.avatar{display:grid;place-items:center;background:#eaf0ff;color:var(--brand);width:42px;height:42px;border-radius:50%;font-size:.875rem;font-weight:650;flex-shrink:0}.appointment{background:#f5f7fd;border-left:3px solid var(--brand);padding:16px;border-radius:5px;margin:12px 0}.appointment.cancelled{opacity:.55}.appointment time{font-size:.875rem;font-weight:650}.appointment h3{margin-top:12px}.appointment select{font-size:.875rem;padding:7px;margin-top:12px}.badge{background:#eaf0ff;border-radius:5px;padding:4px 8px;color:#3356a3;font-size:.75rem;display:inline-block}.empty{padding:35px 15px;text-align:center;color:var(--muted);font-size:.875rem;line-height:1.7}.empty-mark{font-size:2rem;color:#a9b9d8;display:block;margin-bottom:12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th{text-align:left;color:var(--muted);font-weight:500;padding:13px 14px;background:#f7f9fc}td{padding:17px 14px;border-bottom:1px solid var(--line)}td button{font-size:.875rem;padding:7px 10px}.settings-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px}.tabs{display:flex;flex-direction:column;gap:5px}.tabs button{text-align:left;border:0;background:transparent;font-size:.875rem;font-weight:500}.tabs button.active{background:white;box-shadow:0 1px 5px #1626470c;color:var(--brand)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.span2{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.note{background:#edf3ff;padding:14px 16px;border-radius:8px;color:#415776;font-size:.875rem;line-height:1.6;margin:0 0 22px}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-art{background:#132947;color:white;display:flex;flex-direction:column;justify-content:space-between;padding:64px}.login-art .brand{color:white}.login-art h1{font-size:3.6rem;line-height:1.1;max-width:500px;font-weight:500;letter-spacing:-2px}.login-art p{color:#b4c6e0;max-width:390px}.login-form{display:grid;place-items:center;padding:35px}.login-form form{width:100%;max-width:370px;display:grid;gap:22px}.login-form h1{margin-bottom:5px}.login-form .primary{padding:14px}.public{max-width:920px;margin:auto;padding:40px 24px}.public header{display:flex;align-items:center;justify-content:space-between;margin-bottom:45px}.public h1{margin-bottom:12px}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;max-height:310px;overflow:auto;margin-top:16px}.slot{font-size:.875rem;text-align:left}.slot.selected{border-color:var(--brand);background:#eaf0ff}.slot small{display:block;color:var(--muted);font-weight:400;margin-top:6px}.summary{background:#142b49;color:white;padding:20px;border-radius:10px;line-height:1.7;margin-top:20px}.summary .muted{color:#c0d0e6}.error{color:#b5243c;font-size:.875rem;line-height:1.5}dialog{border:1px solid var(--line);border-radius:16px;max-width:760px;width:calc(100% - 32px);padding:28px;box-shadow:0 25px 90px #15223933;color:inherit}dialog::backdrop{background:#14223965}dialog header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}dialog h2{margin:0}#toast{position:fixed;bottom:25px;right:25px;background:#152b49;color:white;padding:14px 20px;border-radius:10px;box-shadow:0 8px 35px #14223933;display:none;z-index:10;max-width:420px;font-size:.875rem}.loading{padding:80px;text-align:center}.schedule-row{display:grid;grid-template-columns:120px 1fr 1fr 42px;gap:10px;margin:10px 0;align-items:center}.settings-row{display:grid;grid-template-columns:1fr 1fr 100px 42px;gap:10px;align-items:center;margin:10px 0}.success{font-size:1.5rem;margin:15px 0;color:#167756}.link-button{border:0;background:transparent;padding:0;color:var(--brand);font-weight:500}.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}.seg button{border:0;border-radius:0;background:transparent;padding:8px 14px;box-shadow:none}.seg button.active{background:var(--brand);color:#fff}.agenda-week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:12px;overflow:auto;padding-bottom:8px}.week-day{min-height:320px;margin-bottom:0;padding:16px}.week-day header{cursor:pointer;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.week-day header:hover strong{color:var(--brand)}.week-day.today header strong{color:var(--brand)}.week-day .appointment{padding:12px;margin:8px 0}.week-day .empty{padding:18px 8px;font-size:.8125rem}@media(max-width:1100px){.content{padding:28px 22px}.agenda{grid-template-columns:1fr}.agenda-week{grid-template-columns:repeat(7,minmax(160px,1fr))}.shell{grid-template-columns:200px minmax(0,1fr)}.settings-layout{grid-template-columns:160px minmax(0,1fr)}}@media(max-width:720px){.shell{display:block}.sidebar{position:static;height:auto;padding:20px}.brand-small,.sidebar-foot,.nav-caption{display:none}.sidebar .brand{font-size:2rem;margin-bottom:20px}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap;padding:10px}.nav span{display:none}.content{padding:24px 16px}.topline{align-items:flex-start;flex-wrap:wrap}h1{font-size:1.75rem}.metrics{gap:8px}.metric{padding:14px 10px}.metric .number{font-size:1.375rem}.metric .label{font-size:.75rem}.settings-layout{display:block}.tabs{flex-direction:row;overflow:auto;margin-bottom:20px}.tabs button{white-space:nowrap}.form-grid,.booking-grid{grid-template-columns:1fr}.span2{grid-column:auto}.login{display:block}.login-art{padding:30px}.login-art h1{font-size:2rem;margin-top:35px}.login-art p{display:none}.login-form{padding:35px 25px}.panel{padding:18px}.schedule-row{grid-template-columns:85px 1fr 1fr 35px;gap:5px}.schedule-row input,.schedule-row select{padding:8px 4px}.settings-row{grid-template-columns:1fr 1fr; padding-bottom:15px;border-bottom:1px solid var(--line)}.public header{gap:15px}.public header a{font-size:.875rem}.actions{flex-wrap:wrap}}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.seg button{border:0;border-radius:0;background:transparent;padding:8px 14px;box-shadow:none}
.seg button.active{background:var(--brand);color:#fff}
.agenda-week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:12px;overflow:auto;padding-bottom:8px}
.agenda-week .week-day{min-height:260px;margin-bottom:0;padding:16px}
.agenda-week .week-day header{cursor:pointer;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.agenda-week .week-day header:hover strong{color:var(--brand)}
.agenda-week .week-day.today{border-color:#b8c8f0;box-shadow:inset 0 0 0 1px #d7e1f8}
.agenda-week .week-day.today header strong{color:var(--brand)}
.agenda-week .appointment{padding:12px;margin:8px 0}
.agenda-week .empty{padding:18px 8px}
@media(max-width:1100px){.agenda-week{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.agenda-week{grid-template-columns:1fr}.seg{width:100%}.seg button{flex:1}}
.badge-reliable{background:#e5f6ef;color:#0f6b45}
.badge-ok{background:#eef2f8;color:#3a4a63}
.badge-caution{background:#fff4e5;color:#8a5a00}
.badge-alert{background:#fde8ec;color:#8a1f32}
.badge-unknown{background:#f0f2f6;color:#69758b}
