:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f3f5f1;color:#1a211e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #1a211e;--muted: #64706c;--line: #dfe5de;--panel: #fbfcf8;--panel-strong: #ffffff;--green: #2f6f73;--green-soft: #e1efec;--rose: #9f4f68;--amber: #b7832f;--blue: #5b64a6;--donut-empty: #e7ece7;--donut-muted: #d9e1dd;--nonwork: #faeef1;--nonwork-strong: #f3dfe6;--shadow: 0 18px 60px rgba(25, 32, 29, .1)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 15% 0%,rgba(47,111,115,.12),transparent 28rem),linear-gradient(135deg,#f3f5f1,#edf2f0 52%,#f8f5ef)}button,input,select{font:inherit}button{cursor:pointer}input,select{width:100%;min-height:40px;border:1px solid #d8dfd7;border-radius:8px;background:#ffffffe6;color:var(--ink);padding:0 10px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input:focus,select:focus{border-color:#2f6f73a6;box-shadow:0 0 0 3px #2f6f7324;background:#fff}table{border-collapse:collapse;width:100%}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s ease}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:26px;height:100vh;padding:28px 20px;border-right:1px solid rgba(26,33,30,.08);background:#fbfcf8c7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden}.brand-block{display:flex;align-items:center;gap:14px;padding:0 6px}.brand-copy{min-width:0}.mobile-menu-button{display:none;width:42px;height:42px;margin-left:auto;align-items:center;justify-content:center;border:1px solid rgba(26,33,30,.08);border-radius:8px;color:var(--ink);background:#ffffff94}.sidebar-collapse-button{display:inline-flex;width:34px;height:34px;margin-left:auto;align-items:center;justify-content:center;border:1px solid rgba(26,33,30,.08);border-radius:8px;color:var(--muted);background:#ffffff80}.mobile-menu-button:hover{background:#e8efea}.sidebar-collapse-button:hover{color:var(--ink);background:#e8efea}.brand-mark{display:block;width:42px;height:42px;flex:0 0 auto;border-radius:8px;background:#fff;object-fit:cover;box-shadow:0 12px 30px #2f6f733d}.brand-mark.large{width:58px;height:58px;margin-bottom:18px;font-size:1.35rem}.brand-block h1,.page-header h2,.panel-title h3,.signin-panel h1{margin:0;letter-spacing:0}.brand-block h1{font-size:1.12rem}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0}.nav-list{display:grid;gap:6px}.footer-nav{padding-bottom:2px}.nav-item,.ghost-button,.primary-button,.icon-button,.period-control button,.segmented-control button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:8px}.nav-item{justify-content:flex-start;min-height:44px;padding:0 12px;color:#38433f;background:transparent}.nav-item:hover,.nav-item.active{color:var(--ink);background:#e8efea}.nav-item.active{box-shadow:inset 3px 0 0 var(--green)}.sidebar-footer{display:grid;gap:12px;margin-top:auto}.user-chip{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:10px;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#fff9}.user-chip img{width:34px;height:34px;border-radius:50%}.user-chip strong,.user-chip span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip strong{font-size:.88rem}.user-chip span{color:var(--muted);font-size:.76rem}@media(min-width:1121px){.app-shell.sidebar-collapsed{grid-template-columns:86px minmax(0,1fr)}.sidebar.collapsed{gap:22px;padding-inline:16px}.sidebar.collapsed .brand-block{justify-content:center;padding:0}.sidebar.collapsed .brand-copy,.sidebar.collapsed .nav-item span,.sidebar.collapsed .user-chip div,.sidebar.collapsed .ghost-button span{display:none}.sidebar.collapsed .sidebar-collapse-button{position:absolute;top:58px;right:8px;width:26px;height:26px;min-height:26px;padding:0}.sidebar.collapsed .brand-mark{width:44px;height:44px}.sidebar.collapsed .nav-item{justify-content:center;padding:0}.sidebar.collapsed .sidebar-footer{justify-items:center}.sidebar.collapsed .footer-nav,.sidebar.collapsed .ghost-button.full-width{width:100%}.sidebar.collapsed .user-chip{display:flex;justify-content:center;width:100%;padding:9px}.sidebar.collapsed .ghost-button.full-width{padding:0}}.main{width:min(1580px,100%);padding:32px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.page-header h2{font-size:clamp(2rem,5vw,3.8rem);line-height:1}.header-actions,.toolbar-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.period-control{display:inline-grid;grid-template-columns:38px minmax(150px,auto) 38px;align-items:center;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#fbfcf8c7;overflow:hidden}.period-control.compact{grid-template-columns:38px 38px}.period-control strong{padding:0 14px;text-align:center;white-space:nowrap}.period-control button{width:38px;height:38px;color:var(--ink);background:transparent}.period-control button:hover{background:#e8efea}.current-month-button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;padding:0 13px;border:1px solid rgba(26,33,30,.08);border-radius:8px;color:#2f3c37;background:#fbfcf8c7;font-weight:800}.current-month-button:hover{background:#e8efea}.balance-pill{display:grid;gap:2px;min-width:124px;padding:8px 12px;border:1px solid rgba(47,111,115,.18);border-radius:8px;background:var(--green-soft)}.balance-pill.attention{border-color:#9f4f6842;background:#f5e7ec}.balance-pill span{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase}.balance-pill strong{font-size:1.05rem}.view-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.today-grid{align-items:start}.panel{min-width:0;padding:20px;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#fbfcf8db;box-shadow:var(--shadow)}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:1 / -1}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-title{display:flex;align-items:center;gap:12px;margin-bottom:18px}.section-toolbar .panel-title{margin-bottom:0}.panel-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;color:var(--green);background:var(--green-soft)}.panel-title h3{font-size:1.25rem}.time-entry-grid,.settings-stack{display:grid;gap:14px}.time-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:grid;gap:7px}.field>span{color:#596660;font-size:.8rem;font-weight:700}.suffixed-input{position:relative}.duration-input{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.settings-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.suffixed-input input{padding-right:42px}.suffixed-input span{position:absolute;top:50%;right:10px;color:var(--muted);font-size:.78rem;transform:translateY(-50%)}.primary-button,.ghost-button{min-height:42px;padding:0 16px;font-weight:800}.primary-button{color:#fff;background:#1f5e61;box-shadow:0 12px 28px #1f5e6138}.primary-button:hover{background:#184e51}.primary-button:disabled,button:disabled{cursor:not-allowed;opacity:.5}.primary-button.compact{min-height:40px;padding:0 14px}.ghost-button{color:#2f3c37;background:#e8efea}.ghost-button:hover{background:#dde8e2}.full-width{width:100%}.metric-list{display:grid;gap:10px}.metric-list.relaxed{gap:14px}.metric-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid rgba(26,33,30,.08)}.metric-line:last-child{border-bottom:0;padding-bottom:0}.metric-line span{color:var(--muted)}.metric-line.good strong{color:var(--green)}.metric-line.notice strong{color:var(--amber)}.project-allocation-list,.project-settings-list,.bar-list{display:grid;gap:10px}.project-allocation-row,.project-settings-row{display:grid;align-items:center;gap:12px;padding:10px;border:1px solid rgba(26,33,30,.07);border-radius:8px;background:#ffffff8a}.project-allocation-row{grid-template-columns:minmax(0,1fr) 140px}.absence-today-stack{display:grid;gap:12px}.project-allocation-row.removable-row{grid-template-columns:minmax(0,1fr) 140px 38px}.allocation-add-row{display:grid;grid-template-columns:minmax(220px,1fr) 140px auto;align-items:end;gap:12px;padding:12px;border:1px solid rgba(26,33,30,.07);border-radius:8px;background:#ffffff6b}.project-settings-row{grid-template-columns:44px minmax(0,1fr) 38px 38px;align-items:start}.project-settings-row.inactive{opacity:.62}.project-label{display:flex;align-items:flex-start;gap:9px;min-width:140px}.project-label span{width:10px;height:26px;flex:0 0 auto;border-radius:999px}.project-label div{min-width:0}.project-label strong,.project-label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-label small{max-width:220px;color:var(--muted);font-size:.72rem;font-weight:700}.table-scroll,.allocation-matrix-wrap{overflow:auto;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#ffffff7a}.data-table th,.data-table td,.allocation-matrix th,.allocation-matrix td{border-bottom:1px solid rgba(26,33,30,.07);padding:10px;text-align:left;vertical-align:middle}.data-table thead th,.allocation-matrix thead th{position:sticky;top:0;z-index:2;color:#4e5d57;font-size:.78rem;background:#f7f9f5}.time-table .week-number-cell{min-width:62px;color:var(--green);font-size:.78rem;font-weight:900;white-space:nowrap}.time-table td:nth-child(2){min-width:90px}.time-table td:nth-child(2) span,.allocation-matrix th span{display:block;color:var(--muted);font-size:.72rem}.day-cell em,.holiday-name{display:block;color:#9f4f68;font-size:.72rem;font-style:normal;font-weight:800}.time-table input,.time-table select,.planning-table input,.time-select{min-width:96px}.time-table .lunch-cell,.time-table .lunch-cell input{width:72px;min-width:72px}.time-table .lunch-cell .suffixed-input input{padding-right:26px}.time-table .lunch-cell .suffixed-input span{right:8px}.time-table .manual-flex-cell,.time-table .manual-flex-cell input{width:92px;min-width:92px}.time-table .manual-flex-cell .suffixed-input input{padding-right:24px}.time-table .manual-flex-cell .suffixed-input span{right:8px}.time-table .note-cell{min-width:220px;width:100%}.time-table .note-cell input{min-width:220px}.read-only-time{display:inline-flex;align-items:center;min-height:34px;color:#4e5d57;font-weight:800;white-space:nowrap}.today-row{background:#2f6f7312}.time-table tr.non-working-row td{background:var(--nonwork)}.time-table tr.today-row.non-working-row td{background:linear-gradient(90deg,#2f6f7314,#9f4f6814)}.time-table tr.week-end-row td{border-bottom:3px solid rgba(47,111,115,.22)}.status-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:999px;color:#41504b;background:#edf1ec;font-weight:800;white-space:nowrap}.status-pill.positive{color:#245f45;background:#dff0e6}.status-pill.negative{color:#8d3048;background:#f3dfe6}.status-pill.calm{color:#41504b;background:#edf1ec}.segmented-control{display:inline-flex;gap:4px;padding:4px;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#edf1ec}.theme-choice{display:inline-flex;width:fit-content;gap:4px;padding:4px;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#edf1ec}.segmented-control button,.theme-choice button{min-height:34px;padding:0 11px;color:#4b5853;background:transparent;font-weight:800}.segmented-control button.active,.theme-choice button.active{color:var(--ink);background:#fff;box-shadow:0 6px 18px #1a211e14}.calendar-board{display:grid;grid-template-columns:64px repeat(7,minmax(128px,1fr));gap:8px;overflow:auto}.weekday{color:var(--muted);font-size:.78rem;font-weight:800;padding:0 4px}.week-header{text-align:center}.calendar-week-number{display:grid;place-items:start center;min-height:164px;padding-top:12px;border:1px solid rgba(47,111,115,.16);border-radius:8px;color:var(--green);background:#e1efec8f;font-size:.78rem;font-weight:900}.calendar-cell{min-height:164px;padding:10px;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#ffffff9e}.calendar-cell.muted{opacity:.34}.calendar-cell.non-working-cell{border-color:#9f4f682e;background:var(--nonwork)}.calendar-cell.today-cell{border-color:#2f6f7366;background:#e1efecc7}.calendar-cell.today-cell.non-working-cell{background:linear-gradient(135deg,#e1efece6,#f3dfe6e6)}.calendar-cell-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px}.calendar-cell-top span{color:var(--muted);font-size:.78rem;font-weight:800}.calendar-inputs{display:grid;gap:8px}.allocation-matrix{width:max-content;min-width:100%}.allocation-matrix th,.allocation-matrix td{min-width:72px;text-align:center}.allocation-matrix .sticky-col{position:sticky;left:0;z-index:3;width:240px;min-width:240px;text-align:left;background:#f7f9f5;box-shadow:1px 0 #1a211e14}.allocation-matrix tbody .sticky-col{background:#fbfcf8}.allocation-matrix .sticky-total-col{position:sticky;left:240px;z-index:3;width:96px;min-width:96px;text-align:left;background:#f7f9f5;box-shadow:1px 0 #1a211e14}.allocation-matrix tbody .sticky-total-col{background:#fbfcf8}.allocation-matrix thead .sticky-col,.allocation-matrix thead .sticky-total-col{z-index:5}.allocation-matrix input.compact-input{width:58px;min-width:58px;min-height:34px;text-align:center;padding:0 4px}.allocation-matrix input.compact-input.has-value{border-color:#2f6f7357;background:linear-gradient(180deg,#2f6f731a,#ffffffdb);box-shadow:0 0 0 2px #2f6f731a;color:var(--ink);font-weight:800}.allocation-matrix input.compact-input.has-value:focus{border-color:#2f6f738c;box-shadow:0 0 0 3px #2f6f7329}.allocation-row-label{display:flex;align-items:flex-start;gap:8px}.drag-handle{display:inline-flex;width:28px;height:32px;flex:0 0 28px;align-items:center;justify-content:center;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#eef3ed;color:var(--muted);cursor:grab}.drag-handle:hover,.drag-handle:focus-visible{border-color:#2f6f7347;color:var(--green)}.drag-handle:active{cursor:grabbing}.allocation-matrix tbody tr.dragging{opacity:.58}.allocation-matrix tbody tr.drag-target-before th,.allocation-matrix tbody tr.drag-target-before td{box-shadow:inset 0 2px #2f6f7394}.allocation-matrix tbody tr.drag-target-after th,.allocation-matrix tbody tr.drag-target-after td{box-shadow:inset 0 -2px #2f6f7394}.today-col{background:#2f6f7314}.non-working-col{background:var(--nonwork)}.today-col.non-working-col{background:linear-gradient(135deg,#e1efece6,#f3dfe6e6)}.total-cell{color:var(--ink);font-weight:800;white-space:nowrap}.allocation-matrix tfoot td{color:#4d5a55;font-size:.78rem;font-weight:800;white-space:nowrap}.allocation-matrix tfoot td.balanced{color:var(--green)}.allocation-matrix tfoot td.under{color:var(--amber)}.allocation-matrix tfoot td.over{color:var(--rose)}.progress-row{display:grid;gap:8px}.progress-row>div:first-child{display:flex;justify-content:space-between;gap:14px;color:#4b5853}.progress-row>div:first-child>span{min-width:0}.progress-row small{display:block;color:var(--muted);font-size:.72rem;font-weight:700}.progress-row strong{color:var(--ink);white-space:nowrap}.progress-value{display:grid;justify-items:end;min-width:72px}.progress-track{height:10px;overflow:hidden;border-radius:999px;background:#e5ebe4}.progress-track span{display:block;height:100%;min-width:4px;border-radius:inherit}.allocation-summary-stack{display:grid;gap:18px}.allocation-donut-row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:22px;padding-bottom:4px}.allocation-donut{position:relative;display:grid;place-items:center;width:150px;aspect-ratio:1;border-radius:999px;box-shadow:inset 0 0 0 1px #1a211e14}.allocation-donut:after{position:absolute;inset:31px;border-radius:inherit;background:var(--panel);box-shadow:0 0 0 1px #1a211e0f;content:""}.allocation-donut-center{position:relative;z-index:1;display:grid;gap:2px;text-align:center}.allocation-donut-center strong{font-size:1.22rem}.allocation-donut-center span{color:var(--muted);font-size:.72rem;font-weight:800}.allocation-legend{display:grid;gap:10px;min-width:0}.allocation-segment-list{display:grid;gap:7px;padding-top:2px}.allocation-segment-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px}.allocation-segment-row span{width:10px;height:22px;border-radius:999px}.allocation-segment-row small{overflow:hidden;color:var(--muted);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.allocation-segment-row strong{color:var(--ink);font-size:.86rem}.summary-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.metric-tile{display:grid;gap:8px;min-height:86px;padding:14px;border:1px solid rgba(26,33,30,.07);border-radius:8px;background:#ffffff8a}.metric-tile span{color:var(--muted);font-size:.78rem;font-weight:800}.metric-tile strong{align-self:end;font-size:1.22rem}.stacked-ratio{display:flex;height:18px;overflow:hidden;margin-bottom:22px;border-radius:999px;background:#e7ece7}.stacked-ratio span{min-width:0}.ratio-flex{background:var(--green)}.ratio-overtime{background:var(--blue)}.ratio-off{background:var(--rose)}.dual-bar{display:grid;gap:8px;margin-top:12px}.planning-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dual-bar span{display:block;height:12px;border-radius:999px}.dual-bar span:first-child{background:var(--green)}.dual-bar span:last-child{background:var(--blue)}.plan-input-group{display:grid;grid-template-columns:minmax(104px,1fr) 38px;align-items:center;gap:8px;min-width:158px}.plan-weeks-cell{min-width:640px}.week-month-groups{display:flex;align-items:flex-start;gap:12px;white-space:nowrap}.week-month-group{display:grid;gap:6px}.week-month-label{color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.week-chip-list{display:flex;flex-wrap:nowrap;gap:6px}.week-chip{min-height:30px;padding:0 9px;border:1px solid rgba(26,33,30,.08);border-radius:999px;color:#4b5853;background:#ffffff94;font-size:.72rem;font-weight:900}.week-chip:hover,.week-chip.active{color:var(--ink);background:var(--green-soft)}.week-chip.active{border-color:#2f6f734d}.add-project-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-bottom:14px}.project-entry-form{padding:12px;border:1px solid rgba(26,33,30,.07);border-radius:8px;background:#ffffff6b}.project-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-edit-fields{display:grid;gap:10px}.time-post-groups{display:grid;gap:18px}.time-post-group{display:grid;gap:10px}.time-post-group-header{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:4px 2px}.time-post-group-header h4{margin:0;font-size:1.05rem;letter-spacing:0}.time-post-group-header>span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 10px;border-radius:999px;color:var(--green);background:var(--green-soft);font-weight:900}.project-metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.compact-field{display:grid;gap:5px}.compact-field span{color:var(--muted);font-size:.72rem;font-weight:800}.color-input{height:40px;padding:4px}.icon-button{width:38px;height:38px;color:#40504a;background:#edf1ec}.icon-button:hover,.icon-button.active{color:var(--green);background:var(--green-soft)}.icon-button.danger:hover{color:var(--rose);background:#f3dfe6}.empty-state{display:grid;gap:6px;padding:22px;border:1px dashed rgba(26,33,30,.16);border-radius:8px;background:#ffffff6b}.empty-state p{max-width:560px;margin:0;color:var(--muted)}.compact-empty{padding:14px}.modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:#1a211e52;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-panel{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:20px;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#fbfcf8f5;box-shadow:var(--shadow)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.modal-header h3{margin:0;font-size:1.3rem;letter-spacing:0}.helper-metrics{margin-bottom:14px}.planning-helper-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.helper-card{display:grid;gap:12px;padding:12px;border:1px solid rgba(26,33,30,.07);border-radius:8px;background:#ffffff7a}.helper-card-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.helper-card strong{font-size:1.1rem}.modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:14px}.signin-screen,.centered-screen{display:grid;place-items:center;min-height:100vh;padding:24px}.signin-panel{width:min(620px,100%);padding:38px;border:1px solid rgba(26,33,30,.08);border-radius:8px;background:#fbfcf8db;box-shadow:var(--shadow)}.signin-logo{display:block;width:220px;height:auto;margin:-18px 0 18px}.signin-panel h1{max-width:540px;font-size:clamp(2.2rem,8vw,4.8rem);line-height:.96}.signin-panel p:not(.eyebrow){max-width:510px;margin:18px 0 26px;color:#4f5d58;font-size:1.05rem;line-height:1.55}.inline-error,.error-banner{border:1px solid rgba(159,79,104,.28);border-radius:8px;color:#762d42;background:#f6e5ea}.inline-error{margin-top:16px;padding:12px}.error-banner{display:grid;gap:4px;margin-bottom:18px;padding:12px 14px}.loading-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:8px;background:#fff;box-shadow:0 14px 34px #2f6f732e}.loading-logo{width:100%;height:100%;border-radius:inherit;object-fit:cover}.centered-screen p{color:var(--muted);font-weight:800}html[data-theme=dark]{color-scheme:dark;background:#0f1013;color:#f4f4f5;--ink: #f4f4f5;--muted: #a8a8ad;--line: #303139;--panel: #17181c;--panel-strong: #202127;--green: #9aa4ff;--green-soft: rgba(154, 164, 255, .14);--rose: #f0a4b8;--amber: #dec079;--blue: #9db4ff;--donut-empty: rgba(255, 255, 255, .07);--donut-muted: #3b3d45;--nonwork: rgba(240, 164, 184, .12);--nonwork-strong: rgba(240, 164, 184, .2);--shadow: 0 24px 70px rgba(0, 0, 0, .38)}html[data-theme=dark] body{background:linear-gradient(135deg,#0f1013,#14151a 52%,#101115)}html[data-theme=dark] input,html[data-theme=dark] select{border-color:#e8e8ee21;background:#191a1ef0;color:var(--ink)}html[data-theme=dark] input:focus,html[data-theme=dark] select:focus{border-color:#9aa4ff94;background:#1f2026fa;box-shadow:0 0 0 3px #9aa4ff29}html[data-theme=dark] .sidebar,html[data-theme=dark] .period-control,html[data-theme=dark] .panel,html[data-theme=dark] .signin-panel{border-color:#e8e8ee1a;background:#17181ce6}html[data-theme=dark] .sidebar{border-right-color:#e8e8ee1a}html[data-theme=dark] .user-chip,html[data-theme=dark] .project-allocation-row,html[data-theme=dark] .project-settings-row,html[data-theme=dark] .allocation-add-row,html[data-theme=dark] .project-entry-form,html[data-theme=dark] .modal-panel,html[data-theme=dark] .helper-card,html[data-theme=dark] .metric-tile,html[data-theme=dark] .empty-state{border-color:#e8e8ee17;background:#ffffff0b}html[data-theme=dark] .nav-item{color:#c4c4ca}html[data-theme=dark] .nav-item:hover,html[data-theme=dark] .nav-item.active,html[data-theme=dark] .period-control button:hover,html[data-theme=dark] .ghost-button:hover,html[data-theme=dark] .current-month-button:hover,html[data-theme=dark] .sidebar-collapse-button:hover,html[data-theme=dark] .mobile-menu-button:hover{color:var(--ink);background:#9aa4ff21}html[data-theme=dark] .ghost-button,html[data-theme=dark] .current-month-button,html[data-theme=dark] .icon-button,html[data-theme=dark] .mobile-menu-button,html[data-theme=dark] .sidebar-collapse-button,html[data-theme=dark] .week-chip,html[data-theme=dark] .segmented-control,html[data-theme=dark] .theme-choice,html[data-theme=dark] .status-pill,html[data-theme=dark] .status-pill.calm,html[data-theme=dark] .progress-track,html[data-theme=dark] .stacked-ratio,html[data-theme=dark] .drag-handle{color:#c6c6cc;background:#ffffff12}html[data-theme=dark] .allocation-donut{box-shadow:inset 0 0 0 1px #e8e8ee1a}html[data-theme=dark] .allocation-donut:after{box-shadow:0 0 0 1px #e8e8ee14}html[data-theme=dark] .segmented-control,html[data-theme=dark] .theme-choice,html[data-theme=dark] .drag-handle{border-color:#e8e8ee1a}html[data-theme=dark] .segmented-control button,html[data-theme=dark] .theme-choice button{color:#c6c6cc}html[data-theme=dark] .segmented-control button.active,html[data-theme=dark] .theme-choice button.active{color:var(--ink);background:#9aa4ff29;box-shadow:0 8px 22px #00000038}html[data-theme=dark] .balance-pill,html[data-theme=dark] .panel-icon,html[data-theme=dark] .calendar-week-number,html[data-theme=dark] .time-post-group-header>span,html[data-theme=dark] .week-chip:hover,html[data-theme=dark] .week-chip.active,html[data-theme=dark] .icon-button:hover,html[data-theme=dark] .icon-button.active{background:#9aa4ff24}html[data-theme=dark] .balance-pill{border-color:#9aa4ff38}html[data-theme=dark] .balance-pill.attention,html[data-theme=dark] .icon-button.danger:hover,html[data-theme=dark] .status-pill.negative,html[data-theme=dark] .inline-error,html[data-theme=dark] .error-banner{background:#e0a0b029}html[data-theme=dark] .balance-pill.attention,html[data-theme=dark] .inline-error,html[data-theme=dark] .error-banner{border-color:#e0a0b04d}html[data-theme=dark] .field>span,html[data-theme=dark] .data-table thead th,html[data-theme=dark] .allocation-matrix thead th,html[data-theme=dark] .read-only-time,html[data-theme=dark] .progress-row>div:first-child,html[data-theme=dark] .signin-panel p:not(.eyebrow){color:#c6c6cc}html[data-theme=dark] .table-scroll,html[data-theme=dark] .allocation-matrix-wrap{border-color:#e8e8ee17;background:#ffffff09}html[data-theme=dark] .data-table th,html[data-theme=dark] .data-table td,html[data-theme=dark] .allocation-matrix th,html[data-theme=dark] .allocation-matrix td,html[data-theme=dark] .metric-line{border-bottom-color:#e8e8ee17}html[data-theme=dark] .data-table thead th,html[data-theme=dark] .allocation-matrix thead th,html[data-theme=dark] .allocation-matrix .sticky-col,html[data-theme=dark] .allocation-matrix .sticky-total-col{background:#1d1e23}html[data-theme=dark] .allocation-matrix tbody .sticky-col,html[data-theme=dark] .allocation-matrix tbody .sticky-total-col{background:#191a1f}html[data-theme=dark] .allocation-matrix .sticky-col,html[data-theme=dark] .allocation-matrix .sticky-total-col{box-shadow:1px 0 #e8e8ee17}html[data-theme=dark] .today-row,html[data-theme=dark] .today-col{background:#9aa4ff1a}html[data-theme=dark] .time-table tr.today-row.non-working-row td,html[data-theme=dark] .today-col.non-working-col,html[data-theme=dark] .calendar-cell.today-cell.non-working-cell{background:linear-gradient(135deg,#9aa4ff1f,#f0a4b829)}html[data-theme=dark] .calendar-cell{border-color:#e8e8ee17;background:#ffffff0b}html[data-theme=dark] .calendar-cell.today-cell{border-color:#9aa4ff52;background:#9aa4ff1f}html[data-theme=dark] .status-pill.positive{color:#d9ddff;background:#9aa4ff24}html[data-theme=dark] .status-pill.negative,html[data-theme=dark] .inline-error,html[data-theme=dark] .error-banner{color:#f0bac7}html[data-theme=dark] .allocation-matrix input.compact-input.has-value{border-color:#9aa4ff6b;background:linear-gradient(180deg,#9aa4ff29,#191a1ef5);box-shadow:0 0 0 2px #9aa4ff1f}html[data-theme=dark] .primary-button{background:#4f5fd5;box-shadow:0 12px 30px #00000047}html[data-theme=dark] .primary-button:hover{background:#6271e8}html[data-theme=dark] .brand-mark{background:linear-gradient(135deg,#4f5fd5,#7877d8);box-shadow:0 12px 32px #0000004d}@media(max-width:1120px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:16px}.sidebar-collapse-button{display:none}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar-footer{grid-template-columns:minmax(0,1fr) 140px}.sidebar-footer .footer-nav,.span-4,.span-5,.span-7,.span-8{grid-column:1 / -1}.summary-metrics,.planning-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){body{background:radial-gradient(circle at 10% 0%,rgba(47,111,115,.09),transparent 18rem),linear-gradient(135deg,#f3f5f1,#edf2f0)}html[data-theme=dark] body{background:linear-gradient(135deg,#0f1013,#14151a 58%,#101115)}input,select,button{min-height:44px}.app-shell{display:block;min-height:100vh}.sidebar{position:sticky;top:0;z-index:20;gap:12px;padding:10px 12px 12px;border-right:0;border-bottom:1px solid rgba(26,33,30,.08);background:#fbfcf8eb}html[data-theme=dark] .sidebar{border-bottom-color:#e8e8ee1a;background:#17181cf0}.brand-block{gap:10px;padding:0}.mobile-menu-button{display:inline-flex}.brand-mark{width:34px;height:34px}.brand-block .eyebrow{display:none}.brand-block h1{font-size:1rem}.nav-list,.sidebar-footer{display:none}.sidebar.menu-open .nav-list{display:grid;grid-template-columns:1fr;gap:8px;padding-top:4px}.nav-item{width:100%;min-height:40px;padding:0 12px;border:1px solid rgba(26,33,30,.08);background:#ffffff85;white-space:normal}html[data-theme=dark] .nav-item{border-color:#e8e8ee17;background:#ffffff0b}.nav-item.active{box-shadow:inset 0 -3px 0 var(--green)}.sidebar.menu-open .sidebar-footer{display:grid;grid-template-columns:1fr;align-items:stretch;gap:8px;margin-top:0}.user-chip{flex:1 1 auto;min-width:0;padding:8px}.sidebar-footer .ghost-button{width:100%;padding:0 12px;white-space:nowrap}.main{width:100%;padding:16px 12px 28px}.page-header,.section-toolbar{align-items:stretch;flex-direction:column}.header-actions,.toolbar-group{justify-content:flex-start}.page-header{gap:14px;margin-bottom:16px}.page-header h2{font-size:clamp(2rem,12vw,2.8rem)}.panel{padding:14px}.view-grid{gap:12px}.period-control{width:100%;grid-template-columns:38px minmax(0,1fr) 38px}.time-entry-grid,.summary-metrics,.planning-metrics,.allocation-donut-row{grid-template-columns:1fr}.allocation-donut{justify-self:center}.header-actions,.header-actions .balance-pill,.current-month-button,.segmented-control,.theme-choice{width:100%}.segmented-control,.theme-choice{display:flex;flex-wrap:wrap}.segmented-control button,.theme-choice button{flex:1 1 auto}.project-settings-row,.project-form-grid,.project-metadata-grid,.settings-pair,.add-project-form{grid-template-columns:1fr}.project-allocation-row{grid-template-columns:minmax(0,1fr) 116px}.project-allocation-row.removable-row{grid-template-columns:minmax(0,1fr) 116px 44px}.allocation-add-row{grid-template-columns:minmax(0,1fr) 116px auto}.project-settings-row{align-items:stretch}.project-settings-row .icon-button{width:100%}.project-label{min-width:0}.project-label small{max-width:100%}.table-scroll,.allocation-matrix-wrap{max-width:calc(100vw - 24px);-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}.data-table th,.data-table td,.allocation-matrix th,.allocation-matrix td{padding:8px}.time-table{min-width:940px}.planning-table{min-width:1360px}.calendar-board{grid-template-columns:48px repeat(7,minmax(108px,1fr));gap:6px;margin:0 -2px;padding-bottom:4px;-webkit-overflow-scrolling:touch}.calendar-week-number,.calendar-cell{min-height:148px}.calendar-cell{padding:8px}.allocation-matrix .sticky-col{width:168px;min-width:168px}.allocation-matrix .sticky-total-col{left:168px;width:78px;min-width:78px}.allocation-matrix th,.allocation-matrix td{min-width:62px}.allocation-matrix input.compact-input{width:52px;min-width:52px}.allocation-row-label{gap:6px}.drag-handle{width:26px;flex-basis:26px}.metric-line,.progress-row>div:first-child,.time-post-group-header{align-items:flex-start;flex-direction:column}.signin-screen,.centered-screen{padding:14px}.modal-backdrop{align-items:end;padding:12px}.modal-panel{width:100%;max-height:calc(100vh - 24px);padding:14px}.planning-helper-grid,.helper-card-fields{grid-template-columns:1fr}.modal-actions{flex-direction:column}.modal-actions .ghost-button{width:100%}.signin-panel{padding:24px}.signin-logo{width:min(210px,100%);margin-top:-12px}.signin-panel h1{font-size:clamp(2.1rem,13vw,3.25rem)}}@media(max-width:520px){.project-allocation-row,.project-allocation-row.removable-row,.allocation-add-row{grid-template-columns:1fr}.project-allocation-row.removable-row .icon-button{width:100%}.allocation-matrix .sticky-col{width:144px;min-width:144px}.allocation-matrix .sticky-total-col{left:144px;width:70px;min-width:70px}.allocation-matrix th,.allocation-matrix td{min-width:58px}.allocation-matrix input.compact-input{width:48px;min-width:48px}}@media(max-width:380px){.nav-item{padding:0 10px}.nav-item span{font-size:.86rem}.sidebar-footer{align-items:stretch;flex-direction:column}.sidebar-footer .ghost-button{width:100%}}
