:root{--duration-fast:0.12s;--duration-normal:0.2s;--duration-slow:0.3s;--ease-default:ease;--ease-out:ease-out;--ease-in-out:ease-in-out;--ease-out-expo:cubic-bezier(0.32,0.72,0,1);--bg-primary:#18181b;--surface-elevated:#27272a;--surface-hover:#333333;--text-primary:#ffffff;--text-muted:#a1a1aa;--text-secondary:#a1a1aa;--border-subtle:1px solid rgba(255,255,255,0.08);--bg-page:var(--bg-primary);--bg-sidebar:var(--surface-elevated);--bg-elevated:var(--surface-elevated);--bg-elevated-hover:var(--surface-hover);--bg-input:rgba(255,255,255,0.04);--bg-input-hover:var(--surface-hover);--bg-input-focus:var(--surface-hover);--shadow-soft:0 2px 8px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.1);--shadow-soft-lg:0 16px 48px rgba(0,0,0,0.22),0 4px 12px rgba(0,0,0,0.12);--shadow-edge:0 1px 0 rgba(255,255,255,0.04);--shadow-fab:0 2px 8px rgba(0,0,0,0.18);--shadow-fab-hover:0 4px 12px rgba(0,0,0,0.22);--topbar-height:56px;--fab-size:44px;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.625rem;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.875rem;--text-md:1rem;--text-title:1.125rem;--text-page-title:1.25rem;--text-display:1.5rem;--tracking-tight:-0.02em;--tracking-label:0.04em;--calendar-z-body:0;--calendar-z-lines:1;--calendar-z-blocks:2;--calendar-z-drag:3;--calendar-z-popover:4;--calendar-column-border:1px solid rgba(255,255,255,0.08);--time-block-bg:rgba(255,255,255,0.08);--time-block-bg-hover:rgba(255,255,255,0.14);--time-block-shadow:0 1px 3px rgba(0,0,0,0.3);--time-block-shadow-hover:0 4px 12px rgba(0,0,0,0.45);--time-block-border-hover:rgba(255,255,255,0.18);--hour-grid-line:1px solid rgba(255,255,255,0.1);--hour-grid-line-major:1px solid rgba(255,255,255,0.18);--hour-grid-row-hover-bg:rgba(255,255,255,0.05);--current-time-color:#22d3ee;--calendar-time-gutter-width:60px;--calendar-day-column-width:72px;--calendar-block-gap:4px;--scrollbar-width:6px;--scrollbar-thumb:rgba(255,255,255,0.15);--scrollbar-thumb-hover:rgba(255,255,255,0.25);--scrollbar-track:transparent}*,:after,:before{box-sizing:border-box}.scrollbar-minimal{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.scrollbar-minimal::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}.scrollbar-minimal::-webkit-scrollbar-track{background:var(--scrollbar-track)}.scrollbar-minimal::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--scrollbar-width)}.scrollbar-minimal::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.scrollbar-minimal::-webkit-scrollbar-corner{background:var(--scrollbar-track)}body,html{height:100%}body{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-inconsolata),ui-monospace,"Cascadia Code","Source Code Pro",monospace;font-size:var(--text-md);line-height:1.5;letter-spacing:.01em;-webkit-font-smoothing:antialiased}.layout-root{flex-direction:row}.layout-root,.main{display:flex;min-height:100%}.main{flex:1 1;min-width:0;margin-left:220px;flex-direction:column;overflow:hidden}.main-content{flex:1 1;min-height:0;overflow:auto;padding:var(--space-lg);scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.main-content::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}.main-content::-webkit-scrollbar-track{background:var(--scrollbar-track)}.main-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--scrollbar-width)}.main-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.card{padding:var(--space-lg);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:var(--shadow-soft)}.page-title{margin:0 0 var(--space-xs);font-size:var(--text-page-title);font-weight:600;line-height:1.35;letter-spacing:var(--tracking-tight)}.page-description{margin:0 0 var(--space-lg);font-size:var(--text-base);line-height:1.5;color:var(--text-muted)}.page-section{margin-top:var(--space-lg)}.section-title{margin:0 0 var(--space-sm);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-muted)}.btn-primary{padding:var(--space-sm) var(--space-md);font-size:var(--text-base);font-weight:500;font-family:inherit;color:var(--bg-page);background:var(--text-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:opacity .15s var(--ease-default),background .15s var(--ease-default)}.btn-primary:hover{opacity:.92}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.content-narrow{max-width:520px}.settings-section{padding:var(--space-xl);border-radius:var(--radius-lg);border:var(--border-subtle);background:var(--bg-elevated);box-shadow:var(--shadow-soft);margin-bottom:var(--space-xl)}.settings-section-title{margin:0 0 var(--space-xs);font-size:var(--text-title);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--text-primary)}.settings-block{margin-bottom:var(--space-xl)}.settings-block:last-of-type{margin-bottom:0}.settings-actions{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid rgba(255,255,255,.06)}.entity-page-header{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-lg);margin-bottom:var(--space-xl)}.entity-page-creation-button-container{position:absolute;bottom:var(--space-lg);right:calc(var(--fab-size) + var(--space-md) + var(--space-lg));font-size:var(--text-base);font-family:inherit}.entity-page-new-btn{flex-shrink:0;padding:var(--space-sm) var(--space-lg);font-size:var(--text-base);font-weight:600;font-family:inherit;color:var(--bg-page);background:rgba(255,255,255,.95);border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:background .12s ease,box-shadow .12s ease;min-height:2.5rem}.entity-page-new-btn:hover{background:#ffffff;box-shadow:0 2px 8px rgba(0,0,0,.25)}.entity-page-new-btn:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:2px}.entity-page-muted{margin:0 0 var(--space-md);font-size:var(--text-sm);color:var(--text-muted)}.projects-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.projects-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);min-height:3rem;border-radius:var(--radius-lg);color:inherit;text-decoration:none;cursor:pointer;transition:background .2s ease}.projects-row:hover{background:var(--bg-elevated-hover);box-shadow:var(--shadow-edge)}.projects-row:active{background:var(--bg-elevated)}.projects-chip{flex-shrink:0;width:12px;height:12px;border-radius:4px}.projects-row-content{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.projects-row-client{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-muted);line-height:1.3}.projects-row-title{font-size:var(--text-md);font-weight:600;line-height:1.35;color:var(--text-primary);min-width:0}.projects-row-subtitle{font-size:var(--text-sm);line-height:1.4;color:var(--text-muted);min-width:0}.projects-row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);min-width:0}.hierarchy-badge{letter-spacing:.02em;opacity:.9;line-height:1.3}.contract-badge,.hierarchy-badge{display:inline-block;font-size:var(--text-xs);font-weight:500;color:var(--text-muted)}.contract-badge{padding:2px var(--space-xs);background:var(--bg-elevated,rgba(255,255,255,.04));border-radius:var(--radius-sm);line-height:1.2}.milestone-breadcrumb{font-size:var(--text-xs);color:var(--text-muted);line-height:1.3}.milestone-breadcrumb:before{content:"› ";opacity:.7}.projects-row-new{animation:projects-row-fade-in .35s ease}.projects-row-next-hint{margin:0;padding:0 var(--space-lg) var(--space-sm);font-size:var(--text-xs);line-height:1.4}.projects-row-next-link{color:var(--text-muted);text-decoration:none;transition:color .15s ease}.projects-row-next-btn,.projects-row-next-link:hover{color:var(--text-primary)}.projects-row-next-btn{display:inline-block;padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:500;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease,color .15s ease}.projects-row-next-btn:hover{background:var(--bg-elevated-hover,rgba(255,255,255,.06))}@keyframes projects-row-fade-in{0%{opacity:0}to{opacity:1}}.entity-breadcrumbs{display:flex;flex-wrap:wrap;align-items:baseline;gap:0;font-size:var(--text-xs);line-height:1.4;color:var(--text-muted);margin-bottom:var(--space-xs)}.entity-breadcrumbs__segment{display:inline-flex;align-items:baseline}.entity-breadcrumbs__sep{margin:0 var(--space-xs);color:var(--text-muted);opacity:.8;-webkit-user-select:none;-moz-user-select:none;user-select:none}.entity-breadcrumbs__crumb{color:var(--text-secondary,rgba(255,255,255,.75))}.entity-breadcrumbs__type{color:var(--text-muted);font-weight:500}.project-detail-back{display:inline-flex;align-items:center;margin-bottom:var(--space-md);font-size:var(--text-base);color:var(--text-muted);text-decoration:none;transition:color .15s ease}.project-detail-back:hover{color:var(--text-primary)}.project-detail-header{margin-bottom:var(--space-xl)}.project-detail-context{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-muted);margin-bottom:var(--space-xs);line-height:1.3}.project-detail-context-line{margin:0 0 var(--space-sm);font-size:var(--text-sm);color:var(--text-muted);line-height:1.4}.project-detail-context-link{color:var(--text-primary);text-decoration:none;font-weight:500}.project-detail-context-link:hover{text-decoration:underline}.project-detail-title-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.project-detail-chip{flex-shrink:0;width:14px;height:14px;border-radius:4px}.project-detail-name{margin:0;font-size:var(--text-display);font-weight:600;line-height:1.3;letter-spacing:var(--tracking-tight);color:var(--text-primary)}.project-detail-edit-btn{margin-left:auto;padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);font-weight:500;color:var(--text-muted);background:var(--bg-input);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color .15s ease,background .15s ease}.project-detail-edit-btn:hover{color:var(--text-primary);background:var(--bg-input-hover)}.project-detail-title-row-spacer{flex:1 1;min-width:0}.project-detail-section{margin-bottom:var(--space-xl)}.project-detail-path{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-lg);font-size:var(--text-sm);line-height:1.5;color:var(--text-muted)}.project-detail-path-item{padding-left:0;transition:padding-left .15s ease}.project-detail-path-level-0{padding-left:0}.project-detail-path-level-1{padding-left:var(--space-lg)}.project-detail-path-level-2{padding-left:calc(var(--space-lg) * 2)}.project-detail-path-current{color:var(--text-primary);font-weight:500}.project-detail-section-title{margin:0 0 var(--space-md);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-muted)}.project-detail-section-title-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.project-detail-milestones-list{list-style:none;margin:0;padding:0;padding-left:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-md)}.project-detail-milestone{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);padding-left:var(--space-md);cursor:pointer;min-height:2.75rem;font-size:var(--text-md);color:var(--text-primary);border-radius:var(--radius-md);transition:background .2s ease}.project-detail-milestone:hover{background:var(--bg-elevated-hover);box-shadow:var(--shadow-edge)}.project-detail-milestone-grip{flex-shrink:0;width:14px;height:18px;opacity:.28;transition:opacity .2s ease;cursor:default;pointer-events:none}.project-detail-milestone:hover .project-detail-milestone-grip{opacity:.5}.project-detail-milestone-grip:before{content:"";display:block;width:2px;height:2px;border-radius:50%;background:currentColor;box-shadow:4px 0 0 currentColor,0 4px 0 currentColor,4px 4px 0 currentColor,0 8px 0 currentColor,4px 8px 0 currentColor}.project-detail-milestone-name{flex:1 1;min-width:0;font-weight:500}.project-detail-milestone-hours{flex-shrink:0;padding:2px 8px;font-size:var(--text-xs);font-weight:500;color:var(--text-muted);background:var(--bg-input);border-radius:4px;box-shadow:var(--shadow-edge)}.project-detail-milestone-new{animation:project-detail-milestone-insert .35s cubic-bezier(.22,1,.36,1)}.project-detail-milestone-removing{animation:project-detail-milestone-remove .25s ease forwards}@keyframes project-detail-milestone-insert{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes project-detail-milestone-remove{to{opacity:0;transform:translateY(-2px)}}.project-detail-milestone-add{display:flex;align-items:center;padding:var(--space-md) var(--space-lg);padding-left:calc(var(--space-md) + 14px + var(--space-md));min-height:2.75rem;font-size:var(--text-md);color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease,color .2s ease;background:transparent;border:none;width:100%;text-align:left;font-family:inherit;box-shadow:none}.project-detail-milestone-add:hover{background:var(--bg-elevated-hover);color:var(--text-primary);box-shadow:var(--shadow-edge)}.project-detail-activity-placeholder{padding:var(--space-lg);font-size:var(--text-base);color:var(--text-muted);background:var(--bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.milestones-list-header{margin-bottom:var(--space-xl)}.milestones-list-title{margin:0;font-size:var(--text-display);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--text-primary)}.milestones-list{display:flex;flex-direction:column;gap:var(--space-xl)}.milestones-group{display:flex;flex-direction:column;gap:var(--space-sm)}.milestones-group-header{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-muted)}.milestones-group-chip{flex-shrink:0;width:10px;height:10px;border-radius:3px}.milestones-group-project{min-width:0}.milestones-group-client{font-weight:500;text-transform:none;letter-spacing:0}.milestones-group-sep{opacity:.7}.milestones-group-empty{margin:0;padding-left:calc(10px + var(--space-sm));font-size:var(--text-base);color:var(--text-muted)}.milestones-group-list{list-style:none;margin:0;padding:0;padding-left:calc(10px + var(--space-sm));display:flex;flex-direction:column;gap:2px}.milestones-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);min-height:2.5rem;border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);text-decoration:none;transition:background .15s ease}.milestones-row:hover{background:var(--bg-elevated-hover);box-shadow:var(--shadow-edge)}.milestones-row-name{flex:1 1;min-width:0;font-weight:500}.milestones-row-hours{flex-shrink:0;padding:2px 6px;font-size:var(--text-xs);font-weight:500;color:var(--text-muted);background:var(--bg-input);border-radius:4px}.milestone-detail-back{display:inline-flex;align-items:center;margin-bottom:var(--space-md);font-size:var(--text-base);color:var(--text-muted);text-decoration:none;transition:color .15s ease}.milestone-detail-back:hover{color:var(--text-primary)}.milestone-detail-path{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-lg);font-size:var(--text-sm);line-height:1.5;color:var(--text-muted)}.milestone-detail-path-item,.milestone-detail-path-level-0{padding-left:0}.milestone-detail-path-level-1{padding-left:var(--space-lg)}.milestone-detail-path-level-2{padding-left:calc(var(--space-lg) * 2)}.milestone-detail-path-level-3{padding-left:calc(var(--space-lg) * 3)}.milestone-detail-path-current{color:var(--text-primary);font-weight:500}.milestone-detail-header{margin-bottom:var(--space-xl)}.milestone-detail-context-line{margin:0 0 var(--space-sm);font-size:var(--text-sm);color:var(--text-muted);line-height:1.4}.milestone-detail-context-link{color:var(--text-primary);text-decoration:none;font-weight:500}.milestone-detail-context-link:hover{text-decoration:underline}.milestone-detail-title-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.milestone-detail-title-row-spacer{flex:1 1;min-width:0}.milestone-detail-chip{flex-shrink:0;width:14px;height:14px;border-radius:4px}.milestone-detail-name{margin:0;font-size:var(--text-display);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--text-primary)}.milestone-detail-meta{margin:var(--space-sm) 0 0;font-size:var(--text-base);color:var(--text-muted)}.milestone-detail-path-link{color:inherit;text-decoration:none;transition:color .15s ease}.milestone-detail-path-link:hover{color:var(--text-primary)}.milestone-detail-edit-btn{margin-left:auto;padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);font-weight:500;color:var(--text-muted);background:var(--bg-input);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color .15s ease,background .15s ease}.milestone-detail-edit-btn:hover{color:var(--text-primary);background:var(--bg-input-hover)}.clients-list{list-style:none;margin:0;padding:0;flex-direction:column}.clients-list,.clients-row{display:flex;gap:var(--space-md)}.clients-row{align-items:center;padding:var(--space-sm) 0;min-height:2.75rem;cursor:pointer;border-radius:var(--radius-md);transition:background .15s ease}.clients-row:hover{background:var(--bg-input-hover)}.clients-name{font-size:var(--text-md);font-weight:500;color:var(--text-primary);min-width:0}.clients-currency{flex-shrink:0;padding:2px 8px;border-radius:4px;box-shadow:var(--shadow-edge)}.clients-currency,.list-view-meta-badge{font-size:var(--text-xs);font-weight:500;color:var(--text-muted);background:var(--bg-input)}.list-view-meta-badge{display:inline-block;padding:2px var(--space-xs);border-radius:var(--radius-sm);line-height:1.2}.list-view-status-active{color:rgba(34,197,94,.95);background:rgba(34,197,94,.12)}.list-view-status-active,.list-view-status-inactive{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label);border-radius:var(--radius-sm);line-height:1.3}.list-view-status-inactive{color:var(--text-muted);background:var(--surface-hover)}.list-view-link{color:var(--text-primary);text-decoration:none;font-weight:500}.list-view-link:hover{text-decoration:underline}.list-view-chip{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%;border:none;margin-top:2px}.list-view-meta-sep{margin:0 var(--space-xs);opacity:.7}.list-view-status-muted{text-transform:capitalize;color:var(--text-secondary)}.invoices-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xl)}.calendar-page{display:flex;flex-direction:column;height:calc(100vh - var(--topbar-height));margin:calc(-1 * var(--space-lg));margin-top:calc(-1 * var(--space-lg));width:calc(100% + 2 * var(--space-lg));min-height:0;overflow:hidden}.calendar-page-toolbar{flex-shrink:0;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:var(--border-subtle);background:var(--bg-page)}.calendar-nav-buttons,.calendar-page-toolbar{display:flex;align-items:center;gap:var(--space-sm)}.calendar-nav-btn{padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);color:var(--text-primary);border:var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer}.calendar-nav-btn,.calendar-nav-btn:hover{background:var(--surface-hover)}.calendar-loading{margin:0;padding:var(--space-md);color:var(--text-muted);font-size:var(--text-base)}.calendar-content-wrap{position:relative;min-height:100%}.calendar-empty-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}.calendar-empty-state-message{padding:var(--space-lg) var(--space-xl);max-width:20rem;text-align:center}.calendar-empty-state-message,.empty-state{margin:0;font-size:var(--text-base);color:var(--text-muted);line-height:1.5}.empty-state{padding:var(--space-md) 0}.empty-state-block{padding:var(--space-lg) 0}.empty-state-block .empty-state-message{margin:0 0 var(--space-md);font-size:var(--text-base);color:var(--text-muted);line-height:1.5}.empty-state-cta{display:inline-block;padding:var(--space-sm) var(--space-md);font-size:var(--text-base);font-family:inherit;font-weight:500;color:var(--text-muted);background:var(--bg-input);border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-edge);transition:color .15s ease,background .15s ease,box-shadow .15s ease}.empty-state-cta:hover{color:var(--text-primary);background:var(--bg-input-hover);box-shadow:var(--shadow-soft)}.empty-state-action{margin-top:var(--space-xs);font-size:var(--text-sm);color:var(--text-secondary)}.empty-state-follow-up{margin:var(--space-sm) 0 0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.empty-state-link{color:var(--text-primary);font-weight:500;text-decoration:underline;text-underline-offset:2px}.back-link,.empty-state-link:hover{color:var(--text-muted)}.back-link{text-decoration:none;transition:color .15s ease}.back-link:hover{color:var(--text-primary)}.empty-state-card{margin-bottom:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-elevated);border-radius:var(--radius-lg);border:var(--border-subtle)}.empty-state-card p{margin:0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.45}.calendar-page-grid{flex:1 1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.calendar-horizontal-scroll{flex:1 1;min-width:0;min-height:0;width:100%;overflow:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.calendar-grid{display:flex;flex-direction:column;flex:1 0 auto;min-width:0;overflow:visible;border-radius:0;border:none;border-top:var(--border-subtle)}.calendar-grid-header{display:grid;flex-shrink:0;top:0;z-index:10;border-bottom:var(--calendar-column-border);box-shadow:0 1px 0 var(--calendar-column-border)}.calendar-grid-header,.calendar-grid-time-gutter-header{position:-webkit-sticky;position:sticky;background:var(--bg-page)}.calendar-grid-time-gutter-header{left:0;z-index:11;width:var(--calendar-time-gutter-width);min-width:var(--calendar-time-gutter-width);border-right:var(--calendar-column-border)}.calendar-grid-hour-lines{position:absolute;left:var(--calendar-time-gutter-width);right:0;top:0;height:100%;z-index:var(--calendar-z-lines);pointer-events:none}.calendar-grid-hour-line{width:100%;border-top:var(--hour-grid-line);box-sizing:border-box}.calendar-grid-hour-line-major{border-top:var(--hour-grid-line-major)}.calendar-grid-body{position:relative;z-index:var(--calendar-z-body);display:grid;grid-template-rows:1fr;flex:0 0 auto;min-height:var(--calendar-body-height,1024px);height:var(--calendar-body-height,1024px)}.calendar-grid-time-gutter{position:-webkit-sticky;position:sticky;left:0;z-index:5;width:var(--calendar-time-gutter-width);min-width:var(--calendar-time-gutter-width);min-height:0;border-right:var(--calendar-column-border);background:var(--bg-page)}.calendar-grid-time-gutter .hour-grid{position:absolute;inset:0}.calendar-grid-cell{padding:var(--space-xs) var(--space-md);border-right:var(--calendar-column-border);font-size:var(--text-sm)}.calendar-grid-cell:last-child{border-right:none}.calendar-grid-header-cell{display:flex;flex-direction:column;gap:1px}.calendar-grid-day-name{color:var(--text-muted);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-label)}.calendar-grid-day-num{color:var(--text-primary);font-size:var(--text-base);font-weight:600;line-height:1.2}.calendar-grid-day-total{color:var(--text-muted);font-size:var(--text-xs);font-weight:500}.calendar-grid-body-cell{padding:0;min-height:0;background:var(--bg-page);overflow:hidden}.calendar-grid-day-column{position:relative;width:100%;height:100%;overflow:hidden}.calendar-grid-day-inner{position:relative;height:100%;width:100%;padding:0 10%;box-sizing:border-box;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.02) 0,transparent 10%,transparent 90%,rgba(0,0,0,.02))}.calendar-grid-day-bg{position:absolute;inset:0;pointer-events:auto}.calendar-grid-day-content{position:relative;z-index:var(--calendar-z-blocks);height:100%;overflow:hidden;pointer-events:none}.calendar-grid-drag-start-layer{position:absolute;inset:0;z-index:var(--calendar-z-body);pointer-events:auto;cursor:crosshair}.calendar-grid-time-block-wrap{position:absolute;z-index:var(--calendar-z-blocks);overflow:hidden;pointer-events:auto;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.calendar-grid-time-block-wrap .time-block{height:100%;margin-bottom:0;box-sizing:border-box}.calendar-grid-time-block-wrap:hover{z-index:calc(var(--calendar-z-blocks) + 1)}.calendar-grid-time-block-wrap:hover .time-block-popup{opacity:1;visibility:visible}.time-block-popup{position:absolute;bottom:100%;left:0;margin-bottom:var(--space-xs);padding:var(--space-sm);min-width:10rem;max-width:16rem;background:var(--bg-sidebar);border:var(--border-subtle);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s ease;z-index:var(--calendar-z-popover);pointer-events:none;display:flex;flex-direction:column;gap:2px}.time-block-popup-time{color:var(--text-muted);font-size:var(--text-xs)}.time-block-popup-project{color:var(--text-primary);font-weight:500;font-size:var(--text-xs)}.time-block-popup-milestone{color:var(--text-secondary);font-size:var(--text-xs)}.time-block-popup-desc{color:var(--text-muted);font-size:var(--text-xs);white-space:pre-wrap;word-break:break-word}.time-block-popup-duration{color:var(--text-muted);font-size:var(--text-xs);margin-top:2px}.calendar-grid-more-wrap{position:relative;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.04);border-radius:var(--radius-sm);border:1px dashed rgba(255,255,255,.1);overflow:visible}.calendar-grid-more-wrap:hover .calendar-grid-more-popup{opacity:1;visibility:visible}.calendar-grid-more-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.calendar-grid-more-popup{position:absolute;bottom:100%;left:0;margin-bottom:var(--space-xs);padding:var(--space-sm);min-width:10rem;background:var(--bg-sidebar);border:var(--border-subtle);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s ease;z-index:var(--calendar-z-popover);pointer-events:none}body.calendar-is-dragging,body.calendar-is-dragging *,body.calendar-is-moving,body.calendar-is-moving *{cursor:-webkit-grabbing!important;cursor:grabbing!important}.calendar-grid-drag-preview{position:absolute;left:0;right:0;z-index:var(--calendar-z-drag);pointer-events:none;opacity:.5;border:1px dashed rgba(255,255,255,.4);border-radius:var(--radius-sm);background-color:rgba(255,255,255,.08)}.calendar-grid-resize-preview{opacity:.7;background:rgba(255,255,255,.12);box-shadow:0 0 12px rgba(255,255,255,.15),var(--time-block-shadow)}.calendar-grid-move-preview,.calendar-grid-resize-preview{position:absolute;left:0;right:0;z-index:var(--calendar-z-drag);pointer-events:none;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-md)}.calendar-grid-move-preview{opacity:1;background:var(--time-block-bg);box-shadow:var(--time-block-shadow)}.calendar-grid-time-block-moving{opacity:.4;transition:opacity .15s ease}.calendar-grid-more-popup-milestone{color:var(--text-secondary);font-size:var(--text-xs)}.calendar-grid-more-popup-duration{color:var(--text-muted);font-size:var(--text-xs)}.calendar-grid-more-popup-item{display:flex;flex-direction:column;gap:2px;padding:var(--space-xs) 0;font-size:var(--text-xs)}.calendar-grid-more-popup-item:not(:last-child){border-bottom:1px solid rgba(255,255,255,.06)}.calendar-grid-more-popup-time{color:var(--text-muted);font-size:var(--text-xs)}.calendar-grid-more-popup-project{color:var(--text-primary);font-weight:500}.current-time-indicator{position:absolute;left:0;right:0;z-index:var(--calendar-z-drag);display:flex;align-items:center;gap:var(--space-xs);pointer-events:none}.current-time-indicator-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--current-time-color);box-shadow:0 0 0 2px var(--bg-page)}.current-time-indicator-line{flex:1 1;height:2px;background:var(--current-time-color)}.time-block{position:relative;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);background:linear-gradient(to right,var(--time-block-accent-tint,transparent) 0,transparent 24px),var(--time-block-bg);border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid rgba(255,255,255,.06);border-left:3px solid var(--time-block-accent,rgba(255,255,255,.12));box-shadow:var(--time-block-shadow);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.time-block:hover{background:linear-gradient(to right,var(--time-block-accent-tint,transparent) 0,transparent 24px),var(--time-block-bg-hover);border-color:var(--time-block-border-hover);border-left-color:var(--time-block-accent,rgba(255,255,255,.22));border-left-width:3px;box-shadow:var(--time-block-shadow-hover)}.calendar-grid-time-block-wrap:hover .time-block-project{color:var(--text-primary);opacity:1}.calendar-grid-time-block-wrap:hover .time-block-milestone{color:var(--text-secondary);opacity:1}.calendar-grid-time-block-wrap:hover .time-block-duration,.calendar-grid-time-block-wrap:hover .time-block-range{opacity:1}.time-block-resize-handle{position:absolute;left:0;right:0;height:5px;cursor:ns-resize;opacity:0;pointer-events:none;transition:opacity .15s ease,background .15s ease;z-index:1}.time-block:hover .time-block-resize-handle{opacity:1;pointer-events:auto}.time-block-resize-handle:hover{background:rgba(255,255,255,.2)}.time-block-resize-handle-top{top:0;border-radius:var(--radius-md) var(--radius-md) 0 0}.time-block-resize-handle-bottom{bottom:0;border-radius:0 0 var(--radius-md) var(--radius-md)}.time-block:last-child{margin-bottom:0}.time-block-range{color:var(--text-muted);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-label);opacity:.9}.time-block-project{color:var(--text-primary);font-size:var(--text-base);font-weight:600;line-height:1.3}.time-block-milestone{opacity:.85}.time-block-description,.time-block-milestone{color:var(--text-muted);font-size:var(--text-xs)}.time-block-description{display:block;opacity:.9;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-block-duration{color:var(--text-muted);font-size:var(--text-xs);font-weight:500;opacity:.85}.hour-grid{display:flex;flex-direction:column}.hour-grid-row{display:flex;align-items:flex-start;width:100%;border-bottom:var(--hour-grid-line);box-sizing:border-box;cursor:pointer;transition:background .12s ease}.hour-grid-row:hover{background:var(--hour-grid-row-hover-bg)}.hour-grid-row:last-child{border-bottom:none}.hour-grid-label{color:var(--text-muted);font-size:var(--text-xs);font-weight:500;opacity:.7}@keyframes create-entry-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes create-entry-modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.create-entry-modal-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:var(--space-lg);animation:create-entry-backdrop-in .12s ease-out}.create-entry-modal{width:100%;max-width:360px;padding:0;background:rgba(28,28,31,.88);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft-lg);animation:create-entry-modal-in .12s ease-out}.create-entry-modal-header{padding:var(--space-lg) var(--space-xl);box-shadow:0 1px 0 rgba(255,255,255,.04)}.create-entry-modal-time-range{font-size:var(--text-md);font-weight:600;color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.create-entry-modal-body{padding:0 var(--space-xl) var(--space-lg)}.create-entry-modal-context{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);background:rgba(255,255,255,.04);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.06)}.create-entry-modal-context-row{display:flex;align-items:baseline;gap:var(--space-sm);font-size:var(--text-xs);line-height:1.4}.create-entry-modal-context-label{flex-shrink:0;width:4.5rem;font-weight:500;color:var(--text-muted)}.create-entry-modal-context-value{min-width:0;color:var(--text-secondary,rgba(255,255,255,.78));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.create-entry-modal-field{margin-bottom:var(--space-md)}.create-entry-modal-label{display:block;margin-bottom:var(--space-xs);font-size:var(--text-sm);font-weight:500;color:var(--text-muted)}.create-entry-modal-project-wrap{display:flex;align-items:center;gap:var(--space-sm)}.create-entry-modal-project-chip{flex-shrink:0;width:8px;height:8px;border-radius:4px}.create-entry-modal-project-wrap .create-entry-modal-select{flex:1 1;min-width:0}.create-entry-modal-input{width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--text-md);color:var(--text-primary);background:var(--bg-input);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-edge);outline:none}.create-entry-modal-input::placeholder{color:var(--text-muted);opacity:.7}.create-entry-modal-input:focus{box-shadow:0 0 0 1px rgba(255,255,255,.12)}.create-entry-modal-input:disabled{opacity:.6;cursor:not-allowed}.create-entry-modal-select{width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--text-md);color:var(--text-primary);background:var(--bg-input);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-edge);outline:none;cursor:pointer}.create-entry-modal-select:focus{box-shadow:0 0 0 1px rgba(255,255,255,.12)}.create-entry-modal-select:disabled{opacity:.6;cursor:not-allowed}.create-entry-modal-footer{padding:0 var(--space-xl) var(--space-xl);box-shadow:0 -1px 0 rgba(255,255,255,.04)}.create-entry-modal-error{margin:0 0 var(--space-md);font-size:var(--text-sm);color:#f87171}.create-entry-modal-actions{display:flex;gap:var(--space-sm);justify-content:flex-end;margin-top:var(--space-lg)}.create-entry-modal-btn{padding:var(--space-sm) var(--space-md);font-size:var(--text-base);font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:background .12s ease,opacity .15s ease}.create-entry-modal-btn:disabled{opacity:.6;cursor:not-allowed}.create-entry-modal-btn-secondary{color:var(--text-primary);background:var(--bg-input);border:none;box-shadow:var(--shadow-edge)}.create-entry-modal-btn-secondary:hover:not(:disabled){background:var(--bg-input-hover)}.create-entry-modal-btn-primary{color:var(--bg-page);background:var(--text-primary);border:none}.create-entry-modal-btn-primary:hover:not(:disabled){background:#e4e4e7}@media (max-width:768px){.main{margin-left:0}}@font-face{font-family:Inconsolata;font-style:normal;font-weight:200 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/d4fbdff1b926f9f7-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inconsolata;font-style:normal;font-weight:200 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/e1bfc245270dd1fc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inconsolata;font-style:normal;font-weight:200 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/d8c14dc5fcaf3a63-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inconsolata Fallback;src:local("Arial");ascent-override:76.59%;descent-override:16.94%;line-gap-override:0.00%;size-adjust:112.16%}.__className_c86147{font-family:Inconsolata,Inconsolata Fallback;font-style:normal}.__variable_c86147{--font-inconsolata:"Inconsolata","Inconsolata Fallback"}