.app-shell{background:var(--bg);flex-direction:column;height:100svh;display:flex;overflow:hidden}.app-header{background:var(--surface);border-bottom:1px solid var(--border);border-top:3px solid var(--mint);box-shadow:var(--shadow-sm);z-index:10;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.app-title{font-family:var(--font-heading);letter-spacing:.02em;color:var(--text);font-size:1.05rem;font-weight:700}.app-nav{flex-wrap:wrap;gap:.25rem;margin-left:auto;display:flex}.nav-icon-link{border-radius:var(--radius);width:2.2rem;height:2.2rem;color:var(--text-muted);justify-content:center;align-items:center;text-decoration:none;transition:background .12s,color .12s;display:inline-flex}.nav-icon-link:hover{background:var(--surface-hover);color:var(--text)}.nav-icon-link-active{background:var(--surface-active);color:var(--text)}.user-chip{appearance:none;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;font:inherit;align-items:center;gap:.5rem;max-width:14rem;padding:.25rem .6rem .25rem .25rem;font-size:.85rem;font-weight:500;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.user-chip:hover{background:var(--surface-hover);border-color:var(--text-muted)}.user-chip-avatar{background:var(--mint,var(--surface-active));width:1.85rem;height:1.85rem;color:var(--text);letter-spacing:.04em;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.user-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-tabbar{display:none}@media (width<=720px){.app-nav-desktop{display:none}.user-chip-name{max-width:8rem}.app-tabbar{z-index:60;background:var(--surface);border-top:1px solid var(--border);padding:.3rem .4rem calc(env(safe-area-inset-bottom,0px) + .3rem);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:sticky;bottom:0;box-shadow:0 -4px 16px -12px #00000059}.tabbar-link{color:var(--text-muted);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:.15rem;min-height:3.1rem;padding:.35rem .25rem;font-size:.7rem;font-weight:500;line-height:1.1;text-decoration:none;display:flex}.tabbar-link:hover{color:var(--text)}.tabbar-link-active{color:var(--text);background:var(--surface-active)}.tabbar-icon{display:inline-flex}.tabbar-label{white-space:nowrap}}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-subtle);align-items:center;gap:2px;padding:2px;display:inline-flex}.theme-toggle-btn{appearance:none;color:var(--text-muted);border-radius:var(--radius-pill);cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.85rem;line-height:1;transition:background .12s,color .12s;display:inline-flex}.theme-toggle-btn:hover{color:var(--text)}.theme-toggle-btn-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.theme-toggle-label{display:inline}.profile-modal-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.profile-logout-button{flex-shrink:0;padding:.3rem .7rem;font-size:.8rem}.profile-identity{align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.profile-avatar{object-fit:cover;background:var(--surface-active);border-radius:999px;flex-shrink:0;width:2.6rem;height:2.6rem}.profile-avatar-placeholder{color:var(--text-muted);letter-spacing:.04em;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:inline-flex}.profile-identity-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.profile-identity-text h3{margin:0;font-size:1rem}.login-screen{background:var(--bg-subtle);justify-content:center;align-items:center;min-height:100svh;padding:1.5rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:22rem;box-shadow:var(--shadow-lg);text-align:center;flex-direction:column;gap:.85rem;padding:2rem 1.75rem;display:flex}.login-title{letter-spacing:.04em;margin:0;font-size:1.5rem}.login-subtitle{color:var(--text-muted);margin:0;font-size:.9rem}.login-button{justify-content:center;margin-top:.5rem}.profile-modal-header h2{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:1.05rem;font-weight:600}.profile-section{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;padding:.6rem 0 .1rem;display:flex}.profile-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin:0;font-size:.78rem;font-weight:600}.inline-row{flex-direction:column;gap:.1rem;min-width:0;display:flex}.inline-display{align-items:flex-start;gap:.5rem;min-width:0;margin:0;display:flex}.inline-display-value{min-width:0;color:var(--text);overflow-wrap:anywhere;flex:1;font-size:.88rem;line-height:1.35}.inline-display .inline-edit-trigger{opacity:0;flex-shrink:0;transition:opacity .12s}.inline-row:hover .inline-edit-trigger,.inline-row:focus-within .inline-edit-trigger{opacity:1}.inline-edit-trigger{margin-top:-2px}.inline-icon-button{appearance:none;color:var(--text-subtle);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;padding:0;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.inline-icon-button:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.inline-icon-button:disabled{opacity:.5;cursor:not-allowed}.inline-icon-button-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.inline-icon-button-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.inline-edit{align-items:flex-start;gap:.4rem;min-width:0;margin:0;display:flex}.inline-edit-fields{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.inline-edit-actions{flex-shrink:0;gap:.2rem;margin-top:1px;display:flex}.inline-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);padding:.35rem .55rem;font-family:inherit;font-size:.9rem;transition:border-color .12s,box-shadow .12s}.inline-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.inline-input-row{grid-template-columns:6rem 1fr;gap:.4rem;display:grid}.inline-input-narrow{width:100%}.empty-value{color:var(--text-subtle);font-style:normal}.overlay-backdrop{z-index:50;background:#0f111500;transition:background .18s;display:flex;position:fixed;inset:0}.overlay-backdrop-open{background:#0f111573}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .overlay-backdrop-open{background:#0009}}:root[data-theme=dark] .overlay-backdrop-open{background:#0009}.overlay-panel{background:var(--bg);box-shadow:var(--shadow-lg);will-change:transform, opacity;flex-direction:column;transition:transform .22s cubic-bezier(.32,.72,.27,.99),opacity .18s;display:flex;position:relative}.overlay-panel-right{border-left:1px solid var(--border);width:min(560px,100%);height:100%;margin-left:auto;transform:translate(100%)}.overlay-panel-left{border-right:1px solid var(--border);width:min(720px,100%);height:100%;margin-right:auto;transform:translate(-100%)}.overlay-panel-modal{border:1px solid var(--border);border-radius:var(--radius-lg);opacity:0;width:min(680px,100% - 2rem);max-height:calc(100% - 3rem);margin:auto;transform:translateY(8px)scale(.98)}.overlay-panel-open{opacity:1;transform:translate(0)}.overlay-panel-modal.overlay-panel-open{transform:translateY(0)scale(1)}.overlay-close{z-index:1;appearance:none;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1rem;line-height:1;display:inline-flex;position:absolute;top:.85rem;right:.85rem}.overlay-close:hover{background:var(--surface-hover);color:var(--text)}.overlay-content{flex:1;padding:1.75rem 1.6rem 2.5rem;overflow-y:auto}.overlay-panel-modal .overlay-content{padding:1.6rem 1.6rem 1.8rem}@media (width<=720px){.overlay-panel-right,.overlay-panel-left,.overlay-panel-modal{border:0;border-radius:0;width:100%;height:100%;max-height:100%;margin:0}.overlay-content{padding:1rem .9rem calc(4.5rem + env(safe-area-inset-bottom,0px))}}.nav-link{color:var(--text-muted);border-radius:var(--radius-sm);padding:.45rem .85rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .12s,color .12s}.nav-link:hover{background:var(--surface-hover);color:var(--text)}.nav-link-active{background:var(--surface-active);color:var(--text)}.app-pager{flex:1;width:100%;min-height:0;padding:0;position:relative;overflow:hidden}.app-pager-track{will-change:transform;width:100%;height:100%;transition:transform .32s cubic-bezier(.32,.72,.27,.99);display:flex}@media (prefers-reduced-motion:reduce){.app-pager-track{transition:none}}.app-pager-panel{-webkit-overflow-scrolling:touch;flex-direction:column;flex:0 0 100%;align-items:center;width:100%;height:100%;padding:1.75rem 1.5rem 4rem;display:flex;overflow:hidden auto}.app-pager-panel>*{width:100%;max-width:56rem}.app-body{flex:1;width:100%;min-height:0;display:flex}.app-sidebar{display:none}.app-sidebar-nav{flex-direction:column;gap:.15rem;padding:1rem .6rem;display:flex}.sidebar-link{border-radius:var(--radius);color:var(--text-muted);letter-spacing:.01em;align-items:center;gap:.7rem;padding:.55rem .75rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-link:hover{background:var(--surface-hover);color:var(--text)}.sidebar-link-active{background:var(--surface-active);color:var(--text);font-weight:600}.sidebar-link-icon{width:1.4rem;color:inherit;justify-content:center;display:inline-flex}@media (width>=1024px){.app-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex:0 0 14rem;display:flex;overflow-y:auto}.app-nav-desktop{display:none}.app-pager-panel{padding:2rem 2.25rem 3rem}.app-pager-panel>*{max-width:72rem}}@media (width>=1280px){.app-pager-panel{padding:2.25rem 3rem 3rem}}.page-loading{color:var(--text-muted);text-align:center;padding:3rem 1rem;font-size:.92rem}.primary-button,.ghost-button,.danger-button{appearance:none;border-radius:var(--radius);cursor:pointer;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.9rem;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.primary-button{border:1px solid var(--accent);background:var(--accent);color:var(--on-accent)}.primary-button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.primary-button:disabled{opacity:.5;cursor:not-allowed}.ghost-button{border:1px solid var(--border);background:var(--surface);color:var(--text)}.ghost-button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.ghost-button:disabled{opacity:.5;cursor:not-allowed}.danger-button{border:1px solid var(--border);background:var(--surface);color:var(--danger)}.danger-button:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.confirm-backdrop{justify-content:center;align-items:center}.confirm-dialog{border-radius:var(--radius-md);width:min(340px,100% - 2rem);max-height:none;box-shadow:var(--shadow-lg)}.confirm-dialog .overlay-content{flex:none;padding:1.1rem 1.2rem 1rem;overflow:visible}.confirm-dialog-title{margin:0 0 .35rem;font-size:.98rem;font-weight:600}.confirm-dialog-body{color:var(--text);margin:0 0 .25rem;font-size:.88rem}.confirm-dialog-note{color:var(--text-muted);margin:0 0 1rem;font-size:.8rem}.confirm-dialog-actions{justify-content:flex-end;gap:.45rem;display:flex}.confirm-dialog-actions .ghost-button,.confirm-dialog-actions .danger-button{padding:.4rem .85rem;font-size:.85rem}@media (width<=720px){.confirm-dialog{border:1px solid var(--border);border-radius:var(--radius-md);width:min(340px,100% - 2rem);height:auto;max-height:none;margin:auto}}.subscriptions-trigger{color:var(--accent);align-self:flex-start;margin-top:-.5rem;font-size:.85rem}.subscriptions-trigger:hover{color:var(--accent);background:var(--surface-hover)}.subscriptions-modal{width:min(480px,100% - 2rem);max-height:min(80vh,640px)}.subscriptions-modal .overlay-content{flex-direction:column;gap:.75rem;min-height:0;padding:1.25rem;display:flex}.subscriptions-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.subscriptions-header h3{margin:0;font-size:1.05rem}.subscriptions-help{color:var(--text-muted);margin:0;font-size:.85rem}.subscriptions-filter{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:.5rem .75rem;font-size:.9rem}.subscriptions-list{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex:auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.subscriptions-row+.subscriptions-row{border-top:1px solid var(--border)}.subscriptions-row-label{cursor:pointer;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.subscriptions-row-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.subscriptions-row-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.subscriptions-row-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.subscriptions-row-customer{color:var(--text-muted);font-size:.78rem}.subscriptions-empty{text-align:center;color:var(--text-muted);padding:1rem;font-size:.85rem}.subscriptions-footer{justify-content:flex-end;display:flex}@media (width<=720px){.subscriptions-modal{width:calc(100% - 1rem);max-height:90vh}}.link-button{appearance:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:.25rem .4rem;font-size:.9rem;font-weight:500}.link-button:hover{color:var(--text);background:var(--surface-hover)}.icon-button{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1.1rem;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.icon-button-danger{color:var(--text-muted);background:0 0;border:0}.icon-button-danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.pill{border-radius:var(--radius-pill);background:var(--surface-active);color:var(--text-muted);align-items:center;padding:.2rem .6rem;font-size:.75rem;font-weight:500;display:inline-flex}.pill-accent{background:var(--accent-soft);color:var(--accent)}.pill-locked{color:#b00020;background:#fde7e7}.calendar-page{flex-direction:column;flex:1;gap:1rem;min-height:0;display:flex}.calendar-header{grid-template-columns:2.75rem 1fr 2.75rem;place-items:center;column-gap:.5rem;display:grid;position:relative}.calendar-header .icon-button{width:2.75rem;height:2.75rem;font-size:1.25rem}.month-title{appearance:none;font:inherit;letter-spacing:-.01em;color:var(--text);cursor:pointer;border-radius:var(--radius);text-transform:capitalize;background:0 0;border:0;min-width:12rem;padding:.4rem .9rem;font-size:1.15rem;font-weight:600}.month-title:hover{background:var(--surface-hover)}.weekday-row{text-align:center;text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);grid-template-columns:1.6rem repeat(7,minmax(0,1fr));gap:.3rem;padding:0 .2rem;font-size:.7rem;font-weight:600;display:grid}.weekday-week-label{color:var(--text-subtle);opacity:.7;font-size:.6rem}.calendar-grid{flex-direction:column;gap:.3rem;display:flex}.calendar-track-viewport{touch-action:pan-y;position:relative;overflow:hidden}.calendar-track{will-change:transform;align-items:flex-start;display:flex}.calendar-track-panel{flex:0 0 100%;min-width:0}.calendar-grid-skeleton .day-cell-skeleton{cursor:default;background:var(--surface)}.calendar-grid-skeleton .day-cell-skeleton .day-number{opacity:.55}.calendar-grid-skeleton-pulsing .day-cell-skeleton{background:linear-gradient(100deg, var(--surface) 30%, color-mix(in srgb, var(--accent) 12%, var(--surface)) 50%, var(--surface) 70%);background-size:220% 100%;animation:1.3s ease-in-out infinite calendar-shimmer;position:relative;overflow:hidden}.calendar-grid-skeleton-pulsing .week-indicator{background:linear-gradient(100deg, var(--surface) 30%, color-mix(in srgb, var(--accent) 12%, var(--surface)) 50%, var(--surface) 70%);background-size:220% 100%;animation:1.3s ease-in-out infinite calendar-shimmer}@keyframes calendar-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media (prefers-reduced-motion:reduce){.calendar-grid-skeleton-pulsing .day-cell-skeleton,.calendar-grid-skeleton-pulsing .week-indicator{background:var(--surface);animation:none}.calendar-track{transition:none!important}}.calendar-week-row{grid-template-columns:1.6rem repeat(7,minmax(0,1fr));align-items:stretch;gap:.3rem;display:grid}.week-indicator{border-radius:var(--radius);font-variant-numeric:tabular-nums;color:var(--text-muted);border:1px solid var(--border);background:var(--surface);justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.week-indicator-empty{background:var(--surface);color:var(--text-subtle)}.week-indicator-partial{background:color-mix(in srgb, var(--warning) 22%, var(--surface));border-color:color-mix(in srgb, var(--warning) 45%, var(--border));color:var(--text)}.week-indicator-full{background:color-mix(in srgb, var(--success) 22%, var(--surface));border-color:color-mix(in srgb, var(--success) 45%, var(--border));color:var(--text)}.week-indicator-muted{opacity:.35;color:var(--text-subtle)}.day-cell{appearance:none;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);aspect-ratio:1;cursor:pointer;font:inherit;justify-content:flex-start;align-items:flex-start;padding:.45rem;transition:background .12s,border-color .12s;display:flex;position:relative}.day-cell:hover{background:var(--surface-hover)}.day-cell-active:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.day-cell-muted{opacity:.4}.day-cell-weekend:not(.day-cell-muted):not(.day-cell-active){background:var(--bg-subtle)}.day-cell-weekend:not(.day-cell-muted):not(.day-cell-active) .day-number{color:var(--text-muted)}.day-cell-holiday:not(.day-cell-muted):not(.day-cell-active){background:color-mix(in srgb, #c8932f 16%, var(--surface));border-color:color-mix(in srgb, #c8932f 32%, var(--border))}.day-cell-holiday:not(.day-cell-muted):not(.day-cell-active) .day-number{color:color-mix(in srgb, #8a6210 70%, var(--text))}.day-cell-active{background:var(--accent);border-color:var(--accent)}.day-cell-active .day-number,.day-cell-active .day-lunch{color:var(--on-accent)}.day-number{color:var(--text);font-variant-numeric:tabular-nums;font-size:.88rem;font-weight:500}.day-dot{border-radius:999px;width:.35rem;height:.35rem;position:absolute;bottom:.4rem;left:50%;transform:translate(-50%)}.day-dot-full{background:var(--success)}.day-dot-partial{background:var(--warning)}.day-dot-empty{background:var(--text-subtle);opacity:.5}.day-dot-locked{background:var(--danger)}.day-cell-active .day-dot{background:var(--on-accent)}.day-lunch{opacity:.75;font-size:.65rem;position:absolute;top:.3rem;right:.35rem}.day-panel{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);flex-direction:column;flex:1;min-height:8rem;margin-top:.5rem;padding:1.1rem 1.2rem;display:flex;overflow:hidden}.day-panel-header{flex-shrink:0;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.15rem .75rem;margin-bottom:.75rem;display:grid}.day-panel-headline{flex-wrap:wrap;grid-area:1/1;align-items:center;gap:.5rem .65rem;min-width:0;display:flex}.day-panel-headline h2{text-transform:capitalize;overflow-wrap:anywhere;min-width:0;margin:0;font-size:1.1rem;line-height:1.2}.day-panel-cta{white-space:nowrap}.day-panel-aside{grid-area:1/2/span 2;place-self:center end;align-items:center;gap:.75rem;display:flex}.day-panel-flag{vertical-align:.15em;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, #8a6210 80%, var(--text));background:color-mix(in srgb, #c8932f 16%, var(--surface));border:1px solid color-mix(in srgb, #c8932f 32%, var(--border));border-radius:999px;margin-left:.55rem;padding:.1rem .5rem;font-size:.62rem;font-weight:700;display:inline-block}.day-panel-subtitle{color:var(--text-muted);font-variant-numeric:tabular-nums;grid-area:2/1;margin:0;font-size:.85rem}.day-panel-actions{align-items:center;gap:.5rem;display:flex}.lunch-toggle{font:inherit;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.15rem 0;font-size:.8rem;display:inline-flex;position:relative}.lunch-toggle input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lunch-toggle-label{white-space:nowrap}.lunch-toggle-track{background:var(--border);border-radius:999px;flex-shrink:0;width:2.25rem;height:1.25rem;transition:background .15s;display:inline-block;position:relative}.lunch-toggle-thumb{background:var(--surface);border-radius:999px;width:1rem;height:1rem;transition:transform .15s;position:absolute;top:.125rem;left:.125rem;box-shadow:0 1px 3px #00000040}.lunch-toggle:hover:not([aria-disabled=true]){color:var(--text)}.lunch-toggle:focus-within .lunch-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.lunch-toggle[data-checked=true]{color:var(--text)}.lunch-toggle[data-checked=true] .lunch-toggle-track{background:var(--accent)}.lunch-toggle[data-checked=true] .lunch-toggle-thumb{transform:translate(1rem)}.lunch-toggle[aria-disabled=true]{opacity:.5;cursor:not-allowed}.day-panel-empty{color:var(--text-muted);text-align:center;padding:1.5rem 0;font-size:.92rem}.entry-list{flex-direction:column;flex:1;gap:.4rem;min-height:0;margin:0;padding:0 .25rem 0 0;list-style:none;display:flex;overflow-y:auto}.entry-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);align-items:center;gap:.5rem;padding:.6rem .75rem;transition:background .12s,border-color .12s;display:flex}.entry-row:hover{border-color:var(--border-strong)}.entry-row-locked{opacity:.7}.entry-row-main{appearance:none;text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:0;flex:1;align-items:center;gap:.9rem;padding:0;display:flex}.entry-row-main:disabled{cursor:default}.entry-row-hours{font-variant-numeric:tabular-nums;min-width:3rem;color:var(--text);font-size:.95rem;font-weight:600}.entry-row-text{flex-direction:column;gap:.1rem;min-width:0;line-height:1.35;display:flex}.entry-row-text strong{font-size:.9rem;font-weight:600}.entry-row-text small{color:var(--text-muted);font-size:.8rem}.entry-row-text em{color:var(--text-subtle);overflow-wrap:anywhere;word-break:break-word;white-space:normal;font-size:.82rem;font-style:normal}.entry-row-lock{opacity:.6;font-size:.95rem}.form-page,.profile-page,.utilization-page{flex-direction:column;gap:1.2rem;display:flex}.form-page-header{grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;min-height:2rem;display:grid}.form-page-header h2{text-align:center;margin:0;font-size:1.15rem}.register-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:1rem;padding:1.4rem;display:flex}.field{flex-direction:column;gap:.35rem;display:flex}.field>span{color:var(--text-muted);justify-content:space-between;align-items:baseline;font-size:.8rem;font-weight:500;display:flex}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--text);padding:.55rem .7rem;font-size:.92rem;transition:border-color .12s,box-shadow .12s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field textarea{resize:vertical;min-height:5rem;font-family:inherit}.field select:disabled,.field input:disabled,.field textarea:disabled{background:var(--bg-muted);color:var(--text-subtle);cursor:not-allowed}.field input.hours-slider{accent-color:var(--accent);background:0 0;border:none;margin-top:.25rem;padding:0}.field input.hours-slider:focus{box-shadow:none}.field input.hours-slider:disabled{opacity:.5;background:0 0}.field-row{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.hint{color:var(--text-subtle);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:500}.hint-ok{color:var(--success)}.form-error,.form-success{border-radius:var(--radius);border:1px solid #0000;padding:.6rem .8rem;font-size:.88rem}.form-error{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-soft)}.form-success{color:var(--success);background:var(--success-soft);border-color:var(--success-soft)}.form-page-actions{justify-content:space-between;align-items:center;gap:.75rem;padding-top:.25rem;display:flex}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.1rem 1.15rem}.profile-card h3{margin:0;font-size:1.05rem;font-weight:600}.profile-meta{color:var(--text-muted);margin-top:.1rem;font-size:.82rem}.profile-list{grid-template-columns:1fr 1fr;gap:.65rem 1.25rem;margin:.85rem 0 0;display:grid}.profile-list>div{flex-direction:column;gap:.1rem;min-width:0;display:flex}.profile-list dt{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);font-size:.68rem;font-weight:600}.profile-list dd{color:var(--text);word-break:break-word;margin:0;font-size:.88rem;line-height:1.35}.util-detail-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:.85rem;padding:1.2rem 1.4rem;display:flex}.util-detail-header{color:var(--text);font-size:1.05rem;font-weight:600}.util-detail-metrics{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.util-metric{flex-direction:column;gap:.2rem;display:flex}.util-metric-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);font-size:.72rem;font-weight:600}.util-metric-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--text);font-size:1.6rem;font-weight:600}.util-progress{background:var(--bg-muted);border-radius:999px;width:100%;height:1.1rem;position:relative;overflow:hidden}.util-progress-fill{border-radius:999px;height:100%;transition:width .25s}@media (width>=1180px){.calendar-page{grid-template-columns:minmax(0,1fr) minmax(22rem,26rem);align-items:start;column-gap:1.75rem;display:grid}.calendar-main{flex-direction:column;min-width:0;display:flex}.calendar-page>.day-panel{max-height:calc(100svh - 9rem);margin-top:0;position:sticky;top:0}.calendar-track-viewport{touch-action:auto}.day-cell{padding:.55rem}.entry-row-main:hover:not(:disabled){background:var(--surface-hover)}}@media (width>=1440px){.calendar-page{grid-template-columns:minmax(0,1fr) 28rem}}.offline-banner{padding:.4rem .9rem calc(.4rem + env(safe-area-inset-top,0px));letter-spacing:.01em;text-align:center;border-bottom:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;font-size:.82rem;font-weight:500;animation:.18s ease-out offline-banner-in;display:flex}.offline-banner-icon{color:currentColor;align-items:center;display:inline-flex}.offline-banner-offline{background:color-mix(in srgb, var(--warning) 22%, var(--surface));border-bottom-color:color-mix(in srgb, var(--warning) 45%, var(--border));color:color-mix(in srgb, var(--warning) 70%, var(--text))}.offline-banner-reconnected{background:color-mix(in srgb, var(--success) 22%, var(--surface));border-bottom-color:color-mix(in srgb, var(--success) 45%, var(--border));color:color-mix(in srgb, var(--success) 70%, var(--text))}@keyframes offline-banner-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.offline-screen{text-align:center;color:var(--text);flex-direction:column;align-items:center;gap:.4rem;padding:3rem 1.5rem;display:flex}.offline-screen-art{color:var(--accent,var(--text-muted));opacity:.75;margin-bottom:.5rem}.offline-screen-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.72rem;font-weight:700}.offline-screen-title{font-family:var(--font-heading,inherit);margin:0;font-size:clamp(1.4rem,2.4vw,2rem);font-weight:600;line-height:1.2}.offline-screen-body{max-width:32rem;color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.5}.offline-screen-cta{margin-top:1rem}.util-progress-success{background:var(--success)}.util-progress-warning{background:var(--warning)}.util-progress-danger{background:var(--danger)}.util-progress-tick{background:#000000b3;border-radius:1px;width:3px;position:absolute;top:-3px;bottom:-3px;transform:translate(-50%)}.util-progress-label{color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0;font-size:.85rem}.util-pace-hint{color:var(--text);margin:0;font-size:.9rem}.util-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:1fr 1fr;gap:1rem;padding:1.2rem 1.4rem;display:grid}.util-summary>div{flex-direction:column;gap:.25rem;display:flex}.util-summary-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);font-size:.72rem;font-weight:600}.util-summary-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);font-size:1.75rem;font-weight:600}.util-summary-sub{color:var(--text-muted);font-size:.85rem}.util-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:.6rem;height:16rem;padding:1rem 1rem .75rem;display:grid}.util-col{flex-direction:column;justify-content:flex-end;align-items:center;gap:.4rem;height:100%;display:flex}.util-bar{background:var(--bg-muted);border-radius:var(--radius-sm) var(--radius-sm) 0 0;flex:1;width:65%;position:relative;overflow:hidden}.util-bar-internal,.util-bar-external{position:absolute;bottom:0;left:0;right:0}.util-bar-internal{background:var(--text-subtle);opacity:.45;z-index:1}.util-bar-external{background:var(--accent);z-index:2}.util-bar-target{border-top:1.5px dashed var(--warning);z-index:3;height:0;position:absolute;left:-20%;right:-20%}.util-col-current .util-bar{outline:2px solid var(--accent-soft);outline-offset:2px}.util-col-label{color:var(--text);text-transform:capitalize;font-size:.75rem;font-weight:600}.util-col-value{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.72rem}.util-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:1.25rem;font-size:.8rem;display:flex}.util-legend span{align-items:center;gap:.4rem;display:inline-flex}.util-swatch{border-radius:2px;width:.75rem;height:.75rem;display:inline-block}.util-swatch-external{background:var(--accent)}.util-swatch-internal{background:var(--text-subtle);opacity:.45}.util-swatch-target{border-top:1.5px dashed var(--warning);background:0 0;border-radius:0;align-self:center;width:1rem;height:0}@media (width<=640px){.app-header{gap:.5rem;padding:.5rem .85rem}.app-title{margin-right:auto;font-size:1rem}.nav-link{padding:.4rem .55rem;font-size:.85rem}.app-pager-panel{padding:.75rem .85rem 1.25rem}.calendar-page{gap:.6rem}.day-cell{padding:.3rem}.day-number{font-size:.82rem}.day-panel{min-height:6rem;margin-top:0;padding:.75rem .9rem .9rem}.day-panel-header{gap:.1rem .5rem;margin-bottom:.5rem}.day-panel-headline h2{font-size:.95rem;line-height:1.2}.day-panel-subtitle{font-size:.78rem}.desktop-only{display:none!important}.field-row,.profile-list{grid-template-columns:1fr}.util-chart{height:13rem;padding:.75rem .5rem}.util-summary{grid-template-columns:1fr;padding:1rem 1.1rem}.util-summary-value{font-size:1.5rem}}.calendar-fab{display:none}@media (width<=720px){.calendar-fab{right:1rem;bottom:calc(env(safe-area-inset-bottom,0px) + 4.25rem);background:var(--accent);width:3.5rem;height:3.5rem;color:var(--on-accent);z-index:40;border-radius:999px;justify-content:center;align-items:center;text-decoration:none;transition:transform .12s,background .12s;display:inline-flex;position:fixed;box-shadow:0 10px 24px -10px #0006,0 2px 6px -2px #00000040}.calendar-fab:active{transform:scale(.94)}.calendar-fab:hover{background:var(--accent-hover)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f5f7f6;--bg-subtle:#edf3f0;--bg-muted:#edf3f0;--surface:#fff;--surface-hover:#edf3f0;--surface-active:#d6e8e3;--border:#d4ddd8;--border-strong:#b9c6bf;--text:#1a1a1a;--text-muted:#555;--text-subtle:#7a8580;--accent:#1e3a30;--accent-hover:#162d24;--accent-soft:#99c0b652;--on-accent:#fff;--mint:#99c0b6;--mint-hover:#7daa9e;--mint-light:#d6e8e3;--success:#2e7d52;--success-soft:#def0e5;--warning:#b8860b;--warning-soft:#fdf4dc;--danger:#c13030;--danger-soft:#fce4e4;--radius-sm:6px;--radius:10px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 3px #1e3a300f;--shadow:0 4px 12px #1e3a3014;--shadow-lg:0 8px 24px #1e3a301f;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-heading:"Rajdhani", "Inter", "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;font-family:var(--font-sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;font-weight:400;line-height:1.6}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0f1a16;--bg-subtle:#142420;--bg-muted:#182b25;--surface:#162320;--surface-hover:#1b2c27;--surface-active:#233a33;--border:#2a3a34;--border-strong:#3a4d46;--text:#eef3f1;--text-muted:#a8b5b0;--text-subtle:#7a8580;--accent:#99c0b6;--accent-hover:#b6d4cb;--accent-soft:#99c0b638;--on-accent:#0f1a16;--mint:#99c0b6;--mint-hover:#b6d4cb;--mint-light:#99c0b62e;--success:#7ae4a8;--success-soft:#7ae4a829;--warning:#f0c068;--warning-soft:#f0c0682e;--danger:#ff9b9b;--danger-soft:#ff9b9b2e;--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 3px #00000059, 0 1px 2px #0003;--shadow-lg:0 12px 28px -12px #00000080}}:root[data-theme=dark]{--bg:#0f1a16;--bg-subtle:#142420;--bg-muted:#182b25;--surface:#162320;--surface-hover:#1b2c27;--surface-active:#233a33;--border:#2a3a34;--border-strong:#3a4d46;--text:#eef3f1;--text-muted:#a8b5b0;--text-subtle:#7a8580;--accent:#99c0b6;--accent-hover:#b6d4cb;--accent-soft:#99c0b638;--on-accent:#0f1a16;--mint:#99c0b6;--mint-hover:#b6d4cb;--mint-light:#99c0b62e;--success:#7ae4a8;--success-soft:#7ae4a829;--warning:#f0c068;--warning-soft:#f0c0682e;--danger:#ff9b9b;--danger-soft:#ff9b9b2e;--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 3px #00000059, 0 1px 2px #0003;--shadow-lg:0 12px 28px -12px #00000080}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}#root{min-height:100svh}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:0;color:var(--text);margin:0;font-weight:600;line-height:1.3}h1{font-size:1.75rem;line-height:1.2}h2{font-size:1.3rem;line-height:1.25}h3{font-size:1.05rem;line-height:1.3}p{margin:0}input,select,textarea,button{font-family:inherit;font-size:inherit;color:inherit}::selection{background:var(--accent-soft)}a{color:var(--accent);text-decoration:none}
