:root{--navy:#102a43;--ink:#17324d;--muted:#6b7c8f;--line:#dce5ec;--paper:#f5f8fa;--orange:#f4a340;--radius:14px;font-family:'DM Sans',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{background:var(--navy);color:#d9e6f1;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;color:white;padding:0 10px 42px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--orange);color:var(--navy);font-size:24px;font-weight:bold}.brand strong{display:block;letter-spacing:1.7px;font:800 17px Manrope}.brand small{display:block;font-size:8px;letter-spacing:2.3px;margin-top:-2px}.sidebar nav{display:grid;gap:7px}.sidebar nav>*{text-align:left;color:#c7d5e1;padding:12px;border-radius:9px;font-weight:600}.sidebar nav .active{background:#234967;color:#fff}.sidebar nav span{font-size:18px;margin-right:12px}.sidebar-bottom{margin-top:auto}.demo-note{border-top:1px solid #2d506c;padding:18px 9px;font-size:11px;line-height:1.5;color:#aabed0;display:flex;gap:8px}.demo-note>span{color:#7ed5a8;font-size:10px}.demo-note strong{color:#fff}.text-button{font-size:11px;text-decoration:underline;color:#aabed0;padding:8px}main{padding:37px 42px 50px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#7a8c9c;margin:0 0 6px}h1,h2{font-family:Manrope;margin:0;letter-spacing:-.6px}h1{font-size:25px}.top-actions{display:flex;align-items:center;gap:14px}.nav-group,.segmented{border:1px solid var(--line);background:#fff;border-radius:9px;overflow:hidden;display:flex}.nav-group button,.segmented button{padding:9px 12px;border-right:1px solid var(--line);font-size:13px}.nav-group button:last-child,.segmented button:last-child{border:0}.segmented .selected{background:#e9f0f5;font-weight:700}.primary{background:var(--orange);border-radius:9px;padding:10px 15px;font-weight:700;font-size:13px;box-shadow:0 2px 5px #e4b26d66}.summary{display:flex;gap:12px;margin-bottom:20px}.metric{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 17px;min-width:128px}.metric small{display:block;color:var(--muted);font-size:11px}.metric strong{font:800 19px Manrope}.calendar{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:auto;box-shadow:0 3px 14px #14385808}.day-grid{min-width:850px;display:grid;grid-template-columns:62px repeat(var(--columns),minmax(145px,1fr));position:relative}.corner,.installer-head{height:62px;background:#f9fbfc;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:4}.installer-head{padding:12px 14px;border-left:1px solid var(--line);display:flex;align-items:center;gap:9px}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:white;font-size:11px;font-weight:bold}.installer-head strong{font-size:13px;display:block}.installer-head small{font-size:10px;color:var(--muted)}.time-col{grid-column:1;position:relative;background:#fbfcfd;border-right:1px solid var(--line)}.time-label{height:64px;text-align:right;padding:0 10px;color:#8292a0;font-size:10px;transform:translateY(-7px)}.person-track{grid-row:2;position:relative;height:768px;border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#eef2f4 32px,#eef2f4 33px,transparent 33px,transparent 63px,#dbe4ea 64px)}.person-track:hover{background-color:#f7fafc}.job{position:absolute;left:7px;right:7px;padding:7px 8px;border-radius:8px;border-left:4px solid var(--job-color);background:color-mix(in srgb,var(--job-color) 14%,white);color:#294152;overflow:hidden;cursor:grab;z-index:2;box-shadow:0 1px 2px #18385614}.job:hover{filter:brightness(.98);box-shadow:0 4px 10px #18385620}.job.cancelled{opacity:.5;text-decoration:line-through}.job-time{font-size:10px;font-weight:700;color:#63788a}.job-title{font-size:12px;font-weight:700;line-height:1.2;margin:2px 0}.job-detail{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job .status-dot{position:absolute;right:7px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--job-color)}.week{min-width:1000px}.week-head,.week-row{display:grid;grid-template-columns:145px repeat(7,minmax(135px,1fr))}.week-head>div{padding:13px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:#f9fbfc;font-size:12px;font-weight:700}.week-row>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:142px;padding:8px}.week-person{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:700}.week-job{border-left:3px solid var(--job-color);background:color-mix(in srgb,var(--job-color) 12%,white);padding:5px 6px;margin-bottom:6px;font-size:10px;border-radius:4px;cursor:pointer}.week-job strong{display:block;font-size:11px}.modal{border:0;border-radius:16px;padding:0;width:min(680px,calc(100vw - 28px));box-shadow:0 18px 55px #102a4355;color:var(--ink)}.modal::backdrop{background:#102a4380}.modal form,.installers-modal{padding:25px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:19px}.modal h2{font-size:20px}.icon-close{font-size:27px;line-height:20px;color:#748694}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:5px;font-size:11px;font-weight:700;color:#53697b}.wide{grid-column:span 2}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid #cdd9e2;border-radius:7px;padding:9px;color:var(--ink);font-size:13px;background:#fff}fieldset{border:1px solid #d9e3e9;border-radius:8px;margin:0;padding:10px}legend{font-size:11px;font-weight:700;padding:0 4px}.checks{display:flex;gap:10px;flex-wrap:wrap}.checks label{display:flex;gap:5px;align-items:center;font-size:12px!important}.modal-actions{display:flex;gap:10px;align-items:center;margin-top:22px}.modal-actions>span{flex:1}.modal-actions button,.add-installer{padding:9px 13px;background:#edf2f5;border-radius:8px;font-size:13px;font-weight:600}.modal-actions .danger{background:#fff0ef;color:#b9382c}.modal-intro{font-size:13px;color:var(--muted);margin-top:-7px}.installer-row{display:grid;grid-template-columns:38px 1fr auto 28px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f3}.installer-row input[type=text]{border:1px solid #cdd9e2;border-radius:7px;padding:8px}.installer-color{width:32px;height:32px;padding:1px;border:0;background:none}.switch{font-size:12px;display:flex;gap:5px;align-items:center}.remove-installer{font-size:21px;color:#8d9aa4}.add-installer{margin-top:16px;color:#30526e}.empty{padding:60px;text-align:center;color:var(--muted)}@media(max-width:820px){.app-shell{display:block}.sidebar{padding:12px 17px;min-height:auto;display:flex;flex-direction:row;align-items:center}.brand{padding:0;margin-right:auto}.sidebar nav{display:flex}.sidebar nav a,.sidebar nav button{padding:7px}.sidebar nav span,.sidebar-bottom{display:none}main{padding:24px 16px}.topbar{display:block}.top-actions{margin-top:17px;flex-wrap:wrap}.summary{overflow:auto}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}}
