:root{--navy:#102b3a;--teal:#137c7b;--ink:#183746;--muted:#667c86;--border:#dce5e6}*{box-sizing:border-box}body{margin:0;background:#f4f7f6;color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}aside{position:fixed;inset:0 auto 0 0;width:244px;background:var(--navy);color:white;padding:32px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-weight:800;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:1.7px;color:#a8c4cc}.mark{font-size:27px;border:1px solid #446574;border-radius:12px;padding:4px 9px;color:#8ed6cc}nav{display:grid;gap:7px;margin-top:48px}button,a{font:inherit}button{cursor:pointer;border:1px solid var(--border);border-radius:8px;background:white;padding:10px 16px;color:var(--ink);font-weight:600}button:hover{background:#e7efed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #db9c47;outline-offset:2px}nav button{border:0;background:transparent;color:#bed1d8;text-align:left;padding:14px 16px}nav button.active{background:#244756;color:white;border-left:3px solid #80cbbc}.aside-note{margin-top:auto;color:#9dbac4;font-size:13px}.prototype{font-size:9px;letter-spacing:1.3px;margin-top:30px;color:#98b2bc}main{margin-left:244px;padding:26px 42px;max-width:1600px}header{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:20px;color:var(--muted);font-size:12px}.eyebrow{letter-spacing:2px;font-weight:700}.heading{display:flex;justify-content:space-between;align-items:center;margin:30px 0 26px;gap:20px}h1{font-size:34px;letter-spacing:-1px;margin:0}h2{font-size:20px;margin:0 0 18px}p{color:var(--muted);margin:8px 0 16px}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:#096867}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat,.panel,.card{background:white;border:1px solid var(--border);border-radius:12px;padding:22px}.stat b{display:block;font-size:34px;font-weight:650;margin:8px 0}.stat small{color:var(--muted)}.stat:first-child{background:var(--navy);color:white}.stat:first-child small{color:#bed1d8}.columns{display:grid;grid-template-columns:1.3fr 1fr;gap:22px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.card-top{display:flex;justify-content:space-between;gap:10px;align-items:start}.badge{display:inline-block;border-radius:25px;background:#e6f3ed;color:#206c59;padding:4px 10px;font-size:11px;font-weight:700}.badge.wait{background:#fff1d8;color:#8e611e}.card h3{margin:10px 0 2px;font-size:20px}.card p{font-size:13px}.card button{padding:7px 12px;font-size:12px;margin-right:6px}.total{border-top:1px solid var(--border);padding-top:12px;margin-top:15px;font-size:22px;font-weight:650}.empty{text-align:center;padding:48px 22px;border:1px dashed #c5d4d6;border-radius:12px;background:#ffffff90;color:var(--muted)}.empty strong{color:var(--ink);display:block;font-size:19px;margin-bottom:6px}.toolbar{display:flex;justify-content:space-between;gap:14px;margin-bottom:20px}input,select,textarea{width:100%;font:inherit;padding:11px;border:1px solid #bfced1;border-radius:7px;background:white;color:var(--ink)}input[type=search]{max-width:420px}label{display:block;font-weight:600;font-size:13px;margin-bottom:6px}.field{margin-bottom:15px}textarea{min-height:85px;resize:vertical}dialog{width:min(640px,calc(100vw - 24px));border:0;border-radius:14px;max-height:92vh;padding:26px;box-shadow:0 20px 80px #102b3a55}dialog::backdrop{background:#102b3a99}.dialog-heading{display:flex;justify-content:space-between;align-items:start}.dialog-heading button{padding:0 10px;font-size:26px;border:0}#fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.field.wide{grid-column:1/-1}footer{display:flex;gap:10px;justify-content:end;margin-top:20px}#error{color:#a12828}#estimate{background:#eaf4ef;border-radius:8px;padding:12px}#estimate:empty{display:none}.tablewrap{overflow:auto;background:white;border:1px solid var(--border);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--border)}th{background:#eaf0ef;font-weight:600}a{color:var(--teal)}.line{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--border);padding:13px 0}.line small{display:block;color:var(--muted)}.intro{background:linear-gradient(110deg,#123545,#235e67);color:white;border-radius:13px;padding:28px;margin-bottom:24px}.intro p{color:#c0d8da;max-width:650px}.intro h2{font-size:26px}.intro button{margin-top:8px}#notice:not(:empty){padding:12px;background:#e3f2e9;margin-bottom:16px;border-radius:8px}@media(max-width:950px){aside{width:190px;padding:24px 12px}main{margin-left:190px;padding:24px}.stats{grid-template-columns:1fr 1fr}.columns{grid-template-columns:1fr}}@media(max-width:640px){aside{position:static;width:auto;padding:18px}.brand{font-size:16px}nav{display:flex;overflow:auto;margin-top:18px;gap:4px}nav button{white-space:nowrap;padding:10px;font-size:12px}.aside-note,.prototype{display:none}main{margin:0;padding:20px 14px}h1{font-size:28px}.heading{align-items:start}.heading button{font-size:12px}.stats{gap:10px}.stat{padding:16px}.stat b{font-size:28px}#fields{grid-template-columns:1fr}.field.wide{grid-column:auto}header{font-size:10px}.cards{grid-template-columns:1fr}}

.employee-dot{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:8px;flex:none}.calendar-controls{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:12px}.calendar-controls label{margin:0;min-width:150px}.calendar-scroll{overflow:auto;border:1px solid var(--border);border-radius:12px;background:white;max-height:70vh}.calendar-grid{min-width:1700px}.calendar-row{display:flex;border-bottom:1px solid var(--border)}.staff-name{width:180px;flex:none;padding:14px;position:sticky;left:0;background:#f7faf9;z-index:3;font-weight:700;border-right:1px solid var(--border)}.staff-name small{display:block;color:var(--muted);font-weight:400}.hours{display:grid;grid-template-columns:repeat(24,1fr);flex:1}.hours span{padding:10px 4px;border-right:1px solid var(--border);font-size:12px}.day-track{display:flex;position:relative;flex:1;height:110px}.time-cell{width:calc(100% / 24);padding:0;border:0;border-right:1px solid #e4eae8;border-radius:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 54px,#eef2f1 55px)}.calendar-booking{position:absolute;top:5px;bottom:5px;background:color-mix(in srgb,var(--employee-color) 14%,white);border:1px solid var(--employee-color);border-left:5px solid var(--employee-color);padding:6px;overflow:hidden;text-align:left;font-size:12px;border-radius:7px;min-width:12px;z-index:1}.calendar-booking:hover{background:color-mix(in srgb,var(--employee-color) 25%,white)}.calendar-booking span,.calendar-booking small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-booking.completed{border-style:dashed}.calendar-controls input,.calendar-controls select{max-width:250px}aside{overflow-y:auto}nav{margin-top:28px;gap:3px}nav button{padding:10px 16px}

.week-scroll{overflow:auto;border:1px solid var(--border);border-radius:12px;background:white;max-height:75vh}.week-grid{display:grid;grid-template-columns:180px repeat(7,minmax(135px,1fr));min-width:1125px}.week-header{position:sticky;top:0;z-index:3;background:#eaf0ef;padding:14px 8px;border-bottom:1px solid var(--border);font-weight:700;font-size:13px}.week-label{position:sticky;left:0;z-index:2;background:#f2f6f4;padding:14px 10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);overflow-wrap:anywhere}.week-label.week-header{z-index:4}.week-label small{display:block;color:var(--muted);margin-top:4px}.week-cell{min-height:150px;padding:6px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.weekend{background:#f6f8f7}.week-today{box-shadow:inset 0 -3px var(--teal);color:var(--teal)}.week-booking{background:color-mix(in srgb,var(--employee-color) 14%,white);border:1px solid var(--employee-color);border-left:4px solid var(--employee-color);text-align:left;padding:7px;font-size:12px;overflow-wrap:anywhere}.week-booking span,.week-booking small{display:block}.week-booking.completed{border-style:dashed}.week-add{font-size:11px;padding:6px;background:transparent;margin-top:auto}.week-hours{color:var(--muted);font-size:11px}@media(max-width:640px){.week-grid{grid-template-columns:120px repeat(7,145px)}}

.version-label{color:#a9d9d1;font-size:12px;margin-top:16px}#account-controls{color:#bed1d8;font-size:12px;margin-top:12px}#account-controls small{display:block}#account-controls button{padding:5px 8px;font-size:11px;margin-top:6px}body.signed-out>aside,body.signed-out>main{display:none}#login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}#login-form{width:min(440px,100%)}#login-form h1{font-size:28px;margin-top:18px}#login-form label{margin-top:16px}#login-submit{margin-top:8px;width:100%}#login-error{color:#a12828}
