@import"https://fonts.googleapis.com/css2?family=Jura:wght@300;400;500;600;700&family=Alumni+Sans+Pinstripe&family=JetBrains+Mono:wght@400;500&display=swap";:root{--ink-900: oklch(0% 0 0);--ink-800: oklch(12% 0 0);--ink-700: oklch(20% 0 0);--ink-600: oklch(30% 0 0);--ink-500: oklch(40% 0 0);--ink-400: oklch(50% 0 0);--ink-300: oklch(60% 0 0);--ink-200: oklch(75% 0 0);--ink-100: oklch(88% 0 0);--white: oklch(100% 0 0);--silver-400: oklch(65% 0 0);--silver-300: oklch(75% 0 0);--silver-200: oklch(85% 0 0);--silver-100: oklch(92% 0 0);--silver-50: oklch(96% 0 0);--signal-error: oklch(45% .2 25);--signal-success: oklch(40% .15 145);--signal-focus: oklch(45% .2 260);--signal-go: oklch(40% .15 145);--signal-warn: oklch(75% .15 85);--signal-stop: oklch(45% .2 25);--light-source: oklch(100% 0 0 / .5);--shadow-source: oklch(0% 0 0 / .5);--depth-raised: 0 2px 4px oklch(0% 0 0 / .12), 0 1px 2px oklch(0% 0 0 / .08);--depth-pressed: inset 0 2px 4px oklch(0% 0 0 / .12);--depth-elevated: 0 4px 12px oklch(0% 0 0 / .12), 0 2px 4px oklch(0% 0 0 / .08);--grid: .5rem;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-expo: cubic-bezier(.7, 0, .84, 0);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-subtle: cubic-bezier(.25, .1, .25, 1);--duration-instant: .1s;--duration-quick: .15s;--duration-standard: .25s;--duration-deliberate: .4s;--font-body: "Jura", "Work Sans", system-ui, sans-serif;--font-display: "Alumni Sans Pinstripe", "Bebas Neue", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--text-xs: clamp(.7rem, .65rem + .25vw, .75rem);--text-sm: clamp(.8rem, .75rem + .25vw, .875rem);--text-base: clamp(.95rem, .9rem + .25vw, 1rem);--text-lg: clamp(1.1rem, 1rem + .5vw, 1.25rem);--text-xl: clamp(1.25rem, 1.1rem + .75vw, 1.5rem);--text-2xl: clamp(1.5rem, 1.25rem + 1vw, 2rem);--text-3xl: clamp(1.75rem, 1.5rem + 1.5vw, 2.5rem);--text-4xl: clamp(2rem, 1.75rem + 2vw, 3rem);--text-timer: 4rem;--leading-none: 1;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--space-5: 2.5rem;--space-6: 3rem;--space-8: 4rem;--space-12: 6rem;--max-content-width: 72ch;--max-wide-content: 75rem;--min-touch-target: 2.75rem;--container-padding: clamp(1rem, 5vw, 3rem);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: .75rem;--radius-xl: .75rem;--radius-full: 9999px;--z-dropdown: 100;--z-overlay: 200;--z-dialog: 300;--z-toast: 400}.ta-base{font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-800);line-height:1.5;box-sizing:border-box}.ta-base *,.ta-base *:before,.ta-base *:after{box-sizing:inherit}.ta-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid var(--silver-300);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;line-height:1;cursor:pointer;transition:box-shadow var(--duration-quick) var(--ease-out-expo),background-color var(--duration-quick) var(--ease-out-expo),transform var(--duration-quick) var(--ease-out-expo);-webkit-user-select:none;user-select:none;white-space:nowrap}.ta-button:focus-visible{outline:2px solid var(--ink-500);outline-offset:2px}.ta-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.ta-button i{font-size:var(--text-sm)}.ta-button--primary{background-color:var(--ink-800);color:var(--white);border-color:var(--ink-800);box-shadow:var(--depth-raised)}.ta-button--primary:hover:not(:disabled){background-color:var(--ink-700);box-shadow:var(--depth-elevated)}.ta-button--primary:active:not(:disabled){box-shadow:var(--depth-pressed);transform:translateY(1px)}.ta-button--secondary{background-color:var(--white);color:var(--ink-700);border-color:var(--silver-300);box-shadow:var(--depth-raised)}.ta-button--secondary:hover:not(:disabled){background-color:var(--silver-50);box-shadow:var(--depth-elevated)}.ta-button--secondary:active:not(:disabled){box-shadow:var(--depth-pressed);transform:translateY(1px)}.ta-button--ghost{background-color:transparent;color:var(--ink-600);border-color:transparent;box-shadow:none}.ta-button--ghost:hover:not(:disabled){background-color:var(--silver-100)}.ta-button--ghost:active:not(:disabled){background-color:var(--silver-200)}.ta-button--danger{background-color:var(--signal-stop);color:var(--white);border-color:var(--signal-stop);box-shadow:var(--depth-raised)}.ta-button--danger:hover:not(:disabled){opacity:.9;box-shadow:var(--depth-elevated)}.ta-button--sm{padding:calc(var(--space-1) * .75) var(--space-1);font-size:var(--text-xs)}.ta-button--lg{padding:calc(var(--space-1) * 1.5) var(--space-3);font-size:var(--text-lg)}.ta-input-wrap{display:flex;flex-direction:column;gap:calc(var(--space-1) * .5)}.ta-input-label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;color:var(--ink-600)}.ta-input{--depth: 2;padding:var(--space-1) var(--space-2);border:1px solid var(--silver-300);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-800);background-color:var(--silver-100);box-shadow:inset var(--shadow-source) calc(.15rem * var(--depth)) calc(.15rem * var(--depth)) .3rem;transition:box-shadow var(--duration-quick) var(--ease-out-expo),border-color var(--duration-quick) var(--ease-out-expo);outline:none;width:100%}.ta-input::placeholder{color:var(--silver-400)}.ta-input:focus{box-shadow:inset var(--shadow-source) 2px 2px 4px,0 0 0 2px #004cb833;box-shadow:inset var(--shadow-source) 2px 2px 4px,0 0 0 2px oklch(45% .2 260 / .2);border-color:var(--signal-focus)}.ta-input--error{border-color:var(--signal-stop)}.ta-input--error:focus{border-color:var(--signal-stop)}.ta-input-error{font-size:var(--text-xs);color:var(--signal-stop)}.ta-select-wrap{position:relative;display:flex;flex-direction:column;gap:calc(var(--space-1) * .5)}.ta-select-label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;color:var(--ink-600)}.ta-select-trigger{display:flex;align-items:center;justify-content:space-between;padding:var(--space-1) var(--space-2);border:1px solid var(--silver-300);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-800);background-color:var(--white);box-shadow:var(--depth-raised);cursor:pointer;transition:box-shadow var(--duration-quick) var(--ease-out-expo),border-color var(--duration-quick) var(--ease-out-expo);-webkit-user-select:none;user-select:none}.ta-select-trigger:focus{outline:2px solid var(--ink-500);outline-offset:2px}.ta-select-trigger--open{box-shadow:var(--depth-pressed);border-color:var(--ink-500)}.ta-select-trigger i{font-size:var(--text-xs);color:var(--ink-400);transition:transform var(--duration-quick) var(--ease-out-expo)}.ta-select-trigger--open i{transform:rotate(180deg)}.ta-select-placeholder{color:var(--silver-400)}.ta-select-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:calc(var(--space-1) * .5);padding:calc(var(--space-1) * .5) 0;border:1px solid var(--silver-200);border-radius:var(--radius-md);background-color:var(--white);box-shadow:var(--depth-elevated);z-index:var(--z-dropdown);max-height:240px;overflow-y:auto;opacity:0;transform:translateY(-4px);transition:opacity var(--duration-quick) var(--ease-out-expo),transform var(--duration-quick) var(--ease-out-expo);pointer-events:none}.ta-select-dropdown--open{opacity:1;transform:translateY(0);pointer-events:auto}.ta-select-option{padding:var(--space-1) var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-700);cursor:pointer;transition:background-color var(--duration-quick)}.ta-select-option:hover{background-color:var(--silver-50)}.ta-select-option--selected{color:var(--ink-900);font-weight:500;background-color:var(--silver-100)}.ta-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--duration-standard) var(--ease-out-expo);pointer-events:none}.ta-dialog-overlay--open{opacity:1;pointer-events:auto}.ta-dialog{background-color:var(--white);border-radius:var(--radius-xl);box-shadow:var(--depth-elevated);padding:var(--space-3);min-width:320px;max-width:560px;width:90vw;max-height:80vh;overflow-y:auto;transform:scale(.95) translateY(8px);transition:transform var(--duration-standard) var(--ease-out-expo),opacity var(--duration-standard) var(--ease-out-expo);opacity:0}.ta-dialog-overlay--open .ta-dialog{transform:scale(1) translateY(0);opacity:1}.ta-dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.ta-dialog-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--ink-900);letter-spacing:.02em}.ta-dialog-close{background:none;border:none;color:var(--ink-400);cursor:pointer;padding:calc(var(--space-1) * .5);border-radius:var(--radius-sm);transition:color var(--duration-quick)}.ta-dialog-close:hover{color:var(--ink-700)}.ta-dialog-body{color:var(--ink-600);font-size:var(--text-sm);line-height:1.6}.ta-dialog-footer{display:flex;justify-content:flex-end;gap:var(--space-1);margin-top:var(--space-3)}.ta-timer-display{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3)}.ta-timer-time{font-family:var(--font-mono);font-size:var(--text-timer);font-weight:400;letter-spacing:.05em;color:var(--ink-800);font-variant-numeric:tabular-nums;transition:color var(--duration-standard) var(--ease-out-expo)}.ta-timer-time--running{color:var(--signal-go)}.ta-timer-time--idle{color:var(--signal-warn)}.ta-timer-time--stopped{color:var(--ink-400)}.ta-timer-state{font-family:var(--font-body);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-400)}.ta-timer-state--running{color:var(--signal-go)}.ta-timer-state--idle{color:var(--signal-warn)}.ta-timer-project{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-600)}.ta-timer-description{font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink-400);max-width:300px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ta-timer-controls{display:flex;gap:var(--space-1);margin-top:var(--space-1)}.ta-entry-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--silver-100);transition:background-color var(--duration-quick)}.ta-entry-row:hover{background-color:var(--silver-50)}.ta-entry-project-badge{display:inline-flex;align-items:center;gap:calc(var(--space-1) * .5);padding:calc(var(--space-1) * .25) var(--space-1);border-radius:var(--radius-full);font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;background-color:var(--silver-100);color:var(--ink-600);white-space:nowrap}.ta-entry-project-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--ink-400);flex-shrink:0}.ta-entry-description{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ta-entry-description--empty{color:var(--silver-400);font-style:italic}.ta-entry-duration{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-800);font-variant-numeric:tabular-nums;white-space:nowrap}.ta-entry-actions{display:flex;gap:calc(var(--space-1) * .5);opacity:0;transition:opacity var(--duration-quick)}.ta-entry-row:hover .ta-entry-actions{opacity:1}.ta-entry-action{background:none;border:none;color:var(--ink-400);cursor:pointer;padding:calc(var(--space-1) * .5);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:color var(--duration-quick)}.ta-entry-action:hover{color:var(--ink-700)}.ta-project-selector{position:relative}.ta-project-selector-input{width:100%}.ta-project-selector-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:calc(var(--space-1) * .5);padding:calc(var(--space-1) * .5) 0;border:1px solid var(--silver-200);border-radius:var(--radius-md);background-color:var(--white);box-shadow:var(--depth-elevated);z-index:var(--z-dropdown);max-height:240px;overflow-y:auto}.ta-project-selector-item{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);cursor:pointer;transition:background-color var(--duration-quick)}.ta-project-selector-item:hover{background-color:var(--silver-50)}.ta-project-selector-item--selected{background-color:var(--silver-100)}.ta-project-selector-dot{width:10px;height:10px;border-radius:var(--radius-full);background-color:var(--ink-400);flex-shrink:0}.ta-project-selector-name{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-700)}.ta-project-selector-confidence{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--silver-400)}.ta-nl-input-wrap{display:flex;flex-direction:column;gap:var(--space-1)}.ta-nl-input{--depth: 2;padding:var(--space-2) var(--space-3);border:1px solid var(--silver-400);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-900);background-color:#fff;box-shadow:inset 0 -.25rem .5rem #0000000f;transition:box-shadow var(--duration-quick) var(--ease-out-expo),border-color var(--duration-quick) var(--ease-out-expo);outline:none;width:100%;text-align:center}.ta-nl-input--variant-b{background:linear-gradient(180deg,#f8f8f8,#fff);box-shadow:inset 0 .15rem .35rem #0000000d}.ta-nl-input--variant-c{background-color:var(--silver-50);box-shadow:inset var(--shadow-source) .2rem .2rem .5rem}.ta-nl-input--variant-d{background-color:#fff;box-shadow:inset 0 -.35rem .65rem #0000001a}.ta-nl-input:focus{border-color:var(--signal-focus);box-shadow:inset 0 -.25rem .5rem #0000000f,0 0 0 2px #004cb833;box-shadow:inset 0 -.25rem .5rem #0000000f,0 0 0 2px oklch(45% .2 260 / .2)}.ta-nl-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-1);padding:var(--space-2);border:1px solid var(--silver-200);border-radius:var(--radius-md);background-color:var(--silver-50)}.ta-nl-preview-field{display:flex;flex-direction:column;gap:2px}.ta-nl-preview-label{font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em}.ta-nl-preview-value{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-800);font-weight:500}.ta-nl-preview-value--empty{color:var(--silver-400);font-weight:400;font-style:italic}.ta-nl-confidence{display:flex;align-items:center;gap:calc(var(--space-1) * .5)}.ta-nl-confidence-bar{flex:1;height:4px;border-radius:var(--radius-full);background-color:var(--silver-200);overflow:hidden}.ta-nl-confidence-fill{height:100%;border-radius:var(--radius-full);background-color:var(--signal-go);transition:width var(--duration-standard) var(--ease-out-expo)}.ta-nl-confidence-fill--low{background-color:var(--signal-stop)}.ta-nl-confidence-fill--medium{background-color:var(--signal-warn)}.ta-nl-confidence-text{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-400);min-width:32px;text-align:right}.ta-timesheet-grid{width:100%;border-collapse:separate;border-spacing:0;font-family:var(--font-body);font-size:var(--text-sm)}.ta-timesheet-grid th{padding:var(--space-1);font-weight:500;color:var(--ink-500);text-align:center;border-bottom:2px solid var(--silver-200);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.ta-timesheet-grid th:first-child{text-align:left;min-width:160px}.ta-timesheet-grid td{padding:var(--space-1);text-align:center;border-bottom:1px solid var(--silver-100)}.ta-timesheet-grid td:first-child{text-align:left}.ta-timesheet-project-cell{display:flex;align-items:center;gap:calc(var(--space-1) * .5)}.ta-timesheet-cell-input{width:64px;padding:calc(var(--space-1) * .5);border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-700);text-align:center;background-color:transparent;outline:none;transition:border-color var(--duration-quick),background-color var(--duration-quick),box-shadow var(--duration-quick);font-variant-numeric:tabular-nums}.ta-timesheet-cell-input:hover{border-color:var(--silver-300);background-color:var(--white)}.ta-timesheet-cell-input:focus{border-color:var(--ink-500);background-color:var(--white);box-shadow:var(--depth-pressed)}.ta-timesheet-total-row td{font-weight:600;color:var(--ink-800);border-top:2px solid var(--silver-200);border-bottom:none}.ta-timesheet-total-row td:first-child{font-weight:500}.ta-toast-container{position:fixed;top:var(--space-2);right:var(--space-2);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-1);pointer-events:none}.ta-toast{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);background-color:var(--white);box-shadow:var(--depth-elevated);border-left:3px solid var(--ink-500);font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-700);pointer-events:auto;min-width:280px;max-width:400px;transform:translate(110%);transition:transform var(--duration-standard) var(--ease-out-expo),opacity var(--duration-standard) var(--ease-out-expo);opacity:0}.ta-toast--visible{transform:translate(0);opacity:1}.ta-toast--exiting{transform:translate(110%);opacity:0}.ta-toast--success{border-left-color:var(--signal-go)}.ta-toast--error{border-left-color:var(--signal-stop)}.ta-toast--warning{border-left-color:var(--signal-warn)}.ta-toast-icon{flex-shrink:0;font-size:var(--text-base)}.ta-toast--success .ta-toast-icon{color:var(--signal-go)}.ta-toast--error .ta-toast-icon{color:var(--signal-stop)}.ta-toast--warning .ta-toast-icon{color:var(--signal-warn)}.ta-toast-message{flex:1}.ta-toast-dismiss{background:none;border:none;color:var(--ink-400);cursor:pointer;padding:2px;font-size:var(--text-xs);transition:color var(--duration-quick)}.ta-toast-dismiss:hover{color:var(--ink-700)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-700);background-color:var(--silver-50);line-height:var(--leading-normal);min-height:100vh}a{color:var(--ink-700);text-decoration:none;transition:color var(--duration-quick)}a:hover{color:var(--ink-900)}h1,h2,h3{font-family:var(--font-display);font-weight:400;color:var(--ink-900);letter-spacing:.02em;line-height:var(--leading-tight);text-transform:uppercase}h4{font-family:var(--font-body);font-weight:600;color:var(--ink-700);line-height:var(--leading-tight)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-lg)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4);flex-wrap:wrap;gap:var(--space-2)}.topbar-brand{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--ink-900);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;line-height:1}.topbar-brand:hover{color:var(--ink-700)}.topbar-timer{display:flex;align-items:center;gap:var(--space-1)}.topbar-timer-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--ink-300);transition:background-color var(--duration-quick)}.topbar-timer-dot--running{background-color:var(--signal-go);animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.topbar-timer-time{font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink-500)}.topbar-timer-time--running{color:var(--signal-go)}.topbar-nav{display:flex;gap:var(--space-1);list-style:none;flex-wrap:wrap}.nav-pill{--depth: 1;position:relative;display:inline-flex;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:transparent;color:var(--ink-500);text-decoration:none;font-size:var(--text-sm);font-weight:500;min-height:var(--min-touch-target);align-items:center;transition:color var(--duration-instant),background var(--duration-quick),box-shadow var(--duration-quick)}.nav-pill:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:var(--light-source) 0 0 0;transition:box-shadow var(--duration-quick)}.nav-pill:hover{color:var(--ink-900);background:var(--silver-100);box-shadow:var(--shadow-source) calc(.2rem * var(--depth)) calc(.2rem * var(--depth)) .4rem}.nav-pill:hover:before{box-shadow:var(--light-source) calc(-.2rem * var(--depth)) calc(-.2rem * var(--depth)) .4rem}.nav-pill--active{background:var(--silver-100);color:var(--ink-900);box-shadow:inset var(--shadow-source) calc(.15rem * var(--depth)) calc(.15rem * var(--depth)) .3rem}.nav-pill--active:before{box-shadow:inset var(--light-source) calc(-.15rem * var(--depth)) calc(-.15rem * var(--depth)) .3rem}.nav-pill:focus-visible{outline:2px solid var(--signal-focus);outline-offset:2px}.topbar-user{display:flex;align-items:center;gap:var(--space-1);margin-left:auto}.topbar-user-avatar{width:28px;height:28px;border-radius:var(--radius-full);object-fit:cover}.topbar-user-icon{font-size:var(--text-xl);color:var(--ink-400);line-height:1}.topbar-user-name{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-500);white-space:nowrap}.topbar-sign-out{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-400);cursor:pointer;transition:color var(--duration-quick),background var(--duration-quick)}.topbar-sign-out:hover{color:var(--ink-700);background:var(--silver-200)}.offline-indicator{display:flex;align-items:center;gap:.25rem;font-family:var(--font-body);font-size:var(--text-xs);color:var(--signal-warn)}.sign-in-page{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:var(--space-4)}.sign-in-card{--depth: 2;background-color:var(--silver-100);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-source) calc(.33rem * var(--depth)) calc(.33rem * var(--depth)) .6rem;padding:var(--space-6);text-align:center;max-width:420px;width:100%;position:relative}.sign-in-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:var(--light-source) calc(-.33rem * var(--depth)) calc(-.33rem * var(--depth)) .6rem}.sign-in-title{font-family:var(--font-display);font-size:var(--text-4xl);color:var(--ink-900);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2)}.sign-in-subtitle{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-400);margin-bottom:var(--space-1)}.sign-in-text{font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-500)}.auth-form{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3);text-align:left}.form-field{display:flex;flex-direction:column;gap:calc(var(--space-1) * .5)}.form-field label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;color:var(--ink-600)}.form-field input{padding:var(--space-2) var(--space-3);border:1px solid var(--silver-400);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-900);background-color:#fff;box-shadow:inset 0 -.25rem .5rem #0000000f;transition:box-shadow var(--duration-quick) var(--ease-out-expo),border-color var(--duration-quick) var(--ease-out-expo);outline:none;width:100%}.form-field input::placeholder{color:var(--silver-400)}.form-field input:focus{border-color:var(--signal-focus);box-shadow:inset 0 -.25rem .5rem #0000000f,0 0 0 2px #004cb833;box-shadow:inset 0 -.25rem .5rem #0000000f,0 0 0 2px oklch(45% .2 260 / .2)}.forgot-password-link{font-size:var(--text-xs);color:var(--ink-400);text-align:right;margin-top:calc(var(--space-1) * .25)}.forgot-password-link:hover{color:var(--ink-700)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--silver-300);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:background-color var(--duration-quick) var(--ease-out-expo),box-shadow var(--duration-quick) var(--ease-out-expo),transform var(--duration-quick) var(--ease-out-expo);min-height:var(--min-touch-target);width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--ink-800);color:var(--white);border-color:var(--ink-800);box-shadow:var(--depth-raised)}.btn-primary:hover:not(:disabled){background-color:var(--ink-700);box-shadow:var(--depth-elevated)}.btn-primary:active:not(:disabled){box-shadow:var(--depth-pressed);transform:translateY(1px)}.btn-secondary{background-color:var(--white);color:var(--ink-700);border-color:var(--silver-300);box-shadow:var(--depth-raised)}.btn-secondary:hover:not(:disabled){background-color:var(--silver-50);box-shadow:var(--depth-elevated)}.btn-social{background-color:var(--white);color:var(--ink-700);border-color:var(--silver-300);box-shadow:var(--depth-raised)}.btn-social:hover:not(:disabled){background-color:var(--silver-50);box-shadow:var(--depth-elevated)}.btn-social i{font-size:var(--text-lg)}.auth-divider{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0;color:var(--ink-400);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background-color:var(--silver-200)}.social-buttons{display:flex;flex-direction:column;gap:var(--space-1)}.auth-footer{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--ink-400)}.auth-footer a{color:var(--ink-700);font-weight:500}.auth-footer a:hover{color:var(--ink-900);text-decoration:underline}.auth-error{margin-top:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--signal-stop);background-color:#f14d4c14}.auth-success{margin-top:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--signal-go);background-color:#27873314}.auth-verify-notice{text-align:center;padding:var(--space-2) 0}.auth-verify-notice i{font-size:var(--text-3xl);color:var(--ink-400);margin-bottom:var(--space-2)}.app-main{flex:1;display:flex;flex-direction:column;padding:var(--space-3);overflow-y:auto;background-color:var(--silver-50);max-width:var(--max-wide-content);width:100%;margin:0 auto}.timer-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4);gap:var(--space-4)}.timer-sphere{--depth: 3;width:clamp(140px,20vw,200px);height:clamp(140px,20vw,200px);border-radius:50%;background:radial-gradient(circle at 40% 40%,var(--light-source),transparent,var(--shadow-source));box-shadow:var(--shadow-source) calc(.33rem * var(--depth)) calc(.33rem * var(--depth)) .6rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);cursor:pointer;transition:box-shadow var(--duration-standard) var(--ease-subtle)}.timer-sphere:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:var(--light-source) calc(-.33rem * var(--depth)) calc(-.33rem * var(--depth)) .6rem;transition:box-shadow var(--duration-standard) var(--ease-subtle)}.timer-sphere{position:relative}.timer-sphere:hover{--depth: 4}.timer-sphere--running{box-shadow:var(--shadow-source) calc(.33rem * var(--depth)) calc(.33rem * var(--depth)) .6rem,0 0 0 2px #0058134d;box-shadow:var(--shadow-source) calc(.33rem * var(--depth)) calc(.33rem * var(--depth)) .6rem,0 0 0 2px oklch(40% .15 145 / .3)}.timer-sphere-time{font-family:var(--font-mono);font-size:clamp(1.5rem,4vw,2.5rem);font-weight:400;letter-spacing:.02em;color:var(--ink-700);font-variant-numeric:tabular-nums;line-height:1;position:relative;z-index:1}.timer-sphere-time--running{color:var(--signal-go)}.timer-sphere-state{font-family:var(--font-body);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.15em;color:var(--ink-500);position:relative;z-index:1}.timer-sphere-state--running{color:var(--signal-go)}.btn-tile{--depth: 1;position:relative;display:inline-flex;padding:.1rem;border-radius:var(--radius-sm);background:var(--silver-100);cursor:pointer;border:none;font:inherit;box-shadow:var(--shadow-source) calc(.33rem * var(--depth)) calc(.33rem * var(--depth)) .6rem;transition:box-shadow .15s .15s ease-in}.btn-tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:var(--light-source) calc(-.33rem * var(--depth)) calc(-.33rem * var(--depth)) .6rem;transition:box-shadow .15s .15s ease-in}.btn-tile__inner{position:relative;display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);min-block-size:var(--min-touch-target);border-radius:calc(var(--radius-sm) - 2px);background:var(--ink-900);color:var(--white);font-family:var(--font-body);font-weight:500;font-size:var(--text-sm);box-shadow:inset var(--shadow-source) 0 0 0;transition:box-shadow .15s ease-in}.btn-tile__inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset var(--light-source) 0 0 0;transition:box-shadow .15s ease-in}.btn-tile__inner span,.btn-tile__inner i{transition:transform .3s ease-in-out}.btn-tile:hover{box-shadow:var(--shadow-source) 0 0 0;transition:box-shadow .15s ease-out}.btn-tile:hover:before{box-shadow:var(--light-source) 0 0 0;transition:box-shadow .15s ease-out}.btn-tile:hover .btn-tile__inner{box-shadow:inset var(--shadow-source) calc(.25rem * var(--depth)) calc(.25rem * var(--depth)) .6rem;transition:box-shadow .15s .15s ease-out}.btn-tile:hover .btn-tile__inner:before{box-shadow:inset var(--light-source) calc(-.25rem * var(--depth)) calc(-.25rem * var(--depth)) .6rem;transition:box-shadow .15s .15s ease-out}.btn-tile:hover .btn-tile__inner span,.btn-tile:hover .btn-tile__inner i{transform:translateY(.15rem)}.btn-tile:focus-visible{outline:2px solid var(--signal-focus);outline-offset:2px}.quick-entry{width:min(100%,500px)}.dashboard-zen{display:flex;flex-direction:column;flex:1;min-height:0}.zen-entries-section{max-width:600px;width:100%;margin:0 auto;padding:0 var(--space-3) var(--space-3)}.zen-entries-header{margin-bottom:var(--space-2)}.zen-entries-list{background-color:var(--silver-100);border-radius:var(--radius-md);overflow:hidden}.bottom-stats{display:flex;justify-content:center;gap:var(--space-8);padding:var(--space-3) var(--space-4);border-top:1px solid var(--silver-200)}.stat{text-align:center}.stat-value{font-family:var(--font-mono);font-size:var(--text-2xl);color:var(--ink-900);font-variant-numeric:tabular-nums;line-height:1;margin-bottom:var(--space-1)}.stat-label{font-family:var(--font-body);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-500)}.kbd-hint{font-size:var(--text-xs);color:var(--silver-400);text-align:center}.kbd{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border:1px solid var(--silver-200);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-500);background-color:var(--white);min-width:20px;text-align:center}.offline-indicator{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--signal-warn);background-color:#d9a5141a}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.page-title{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--ink-900);letter-spacing:.02em;text-transform:uppercase}.card{--depth: 2;background-color:var(--silver-100);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-source) calc(.33rem * var(--depth)) calc(.33rem * var(--depth)) .6rem;padding:var(--space-3);position:relative}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:var(--light-source) calc(-.33rem * var(--depth)) calc(-.33rem * var(--depth)) .6rem}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.card-title{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;color:var(--ink-700)}.stats-grid{display:flex;gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap}.stat-card{--depth: 1;background-color:var(--silver-100);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-source) calc(.33rem * var(--depth)) calc(.33rem * var(--depth)) .6rem;padding:var(--space-2);display:flex;flex-direction:column;gap:.25rem;position:relative;min-width:120px}.stat-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:var(--light-source) calc(-.33rem * var(--depth)) calc(-.33rem * var(--depth)) .6rem}.stat-sub{font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink-400)}.filters-bar{display:flex;align-items:flex-end;gap:var(--space-1);flex-wrap:wrap;margin-bottom:var(--space-2)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6) var(--space-3);text-align:center}.empty-state-icon{font-size:var(--text-4xl);color:var(--silver-300);margin-bottom:var(--space-2)}.empty-state-title{font-family:var(--font-body);font-size:var(--text-xl);font-weight:600;color:var(--ink-500);margin-bottom:var(--space-1)}.empty-state-text{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-400);max-width:var(--max-content-width)}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.loading-spinner i{font-size:var(--text-2xl);color:var(--ink-400);animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-list{display:grid;gap:var(--space-1)}.project-card{--depth: 1;background-color:var(--silver-100);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-source) calc(.33rem * var(--depth)) calc(.33rem * var(--depth)) .6rem;padding:var(--space-2) var(--space-3);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-2);cursor:pointer;position:relative;transition:box-shadow var(--duration-quick) var(--ease-out-expo),transform var(--duration-quick) var(--ease-out-expo)}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:var(--light-source) calc(-.33rem * var(--depth)) calc(-.33rem * var(--depth)) .6rem;transition:box-shadow var(--duration-quick) var(--ease-out-expo)}.project-card:hover{--depth: 2;transform:translateY(-1px)}.project-color-dot{width:12px;height:12px;border-radius:var(--radius-full);background-color:var(--ink-400);flex-shrink:0}.project-info{display:flex;flex-direction:column;gap:2px;min-width:0}.project-name{font-family:var(--font-body);font-size:var(--text-base);font-weight:500;color:var(--ink-700)}.project-client{font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink-400)}.project-meta{display:flex;align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-500);white-space:nowrap}.report-chart-wrap{position:relative;width:100%;height:300px}.report-chart-wrap canvas{width:100%;height:100%}.settings-section{margin-bottom:var(--space-4)}.settings-section-title{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;color:var(--ink-700);margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--silver-200)}.settings-field{margin-bottom:var(--space-2);max-width:400px}@media(prefers-color-scheme:dark){:root{--ink-900: oklch(95% 0 0);--ink-800: oklch(88% 0 0);--ink-700: oklch(78% 0 0);--ink-600: oklch(68% 0 0);--ink-500: oklch(55% 0 0);--ink-400: oklch(45% 0 0);--ink-300: oklch(35% 0 0);--ink-200: oklch(25% 0 0);--ink-100: oklch(18% 0 0);--white: oklch(13% 0 0);--silver-400: oklch(45% 0 0);--silver-300: oklch(35% 0 0);--silver-200: oklch(25% 0 0);--silver-100: oklch(20% 0 0);--silver-50: oklch(17% 0 0);--light-source: oklch(100% 0 0 / .08);--shadow-source: oklch(0% 0 0 / .6)}body{background-color:#040404}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-muted{color:var(--ink-400)}.text-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
