.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:var(--radius-md);font-weight:700;letter-spacing:0;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.ui-button:disabled{cursor:not-allowed;opacity:.55}.ui-button-default{background:var(--primary);color:var(--primary-foreground);border-color:color-mix(in oklch,var(--primary),black 8%)}.ui-button-outline{background:var(--card);color:var(--foreground);border-color:var(--border)}.ui-button-ghost{background:transparent;color:var(--foreground)}.ui-button-default:hover:not(:disabled),.ui-button-outline:hover:not(:disabled),.ui-button-ghost:hover:not(:disabled){background:var(--accent);color:var(--accent-foreground);border-color:color-mix(in oklch,var(--accent),black 8%)}.ui-button-default{min-height:2.5rem;padding:.625rem .9rem}.ui-button-sm{min-height:2.125rem;padding:.45rem .7rem;font-size:.875rem}.ui-button svg{width:1rem;height:1rem}.ui-calendar{--rdp-accent-color: var(--primary);--rdp-accent-background-color: color-mix(in oklch, var(--primary), white 84%);--rdp-day-width: var(--cell-size, 2.75rem);--rdp-day-height: var(--cell-size, 2.75rem);--rdp-day_button-width: calc(var(--cell-size, 2.75rem) - .25rem);--rdp-day_button-height: calc(var(--cell-size, 2.75rem) - .25rem);color:var(--foreground)}.ui-rdp-root{width:max-content;max-width:100%}.ui-rdp-month-caption{display:flex;align-items:center;justify-content:center;min-height:2.5rem;color:var(--foreground);font-weight:800}.ui-rdp-caption-label{font-size:.95rem}.ui-rdp-nav{display:flex;gap:.25rem;justify-content:flex-end;margin-bottom:-2.5rem}.ui-rdp-nav-button{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground)}.ui-rdp-month-grid{border-collapse:separate;border-spacing:.25rem}.ui-rdp-weekday{padding:.35rem 0;color:var(--muted-foreground);font-size:.76rem;font-weight:800;text-align:center}.ui-rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height)}.ui-rdp-day-button{display:inline-grid;place-items:center;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--foreground);font:inherit;cursor:pointer}.ui-rdp-day-button:hover:not(:disabled),.ui-rdp-day-button:focus-visible{border-color:var(--ring);background:var(--accent);color:var(--accent-foreground);outline:none}.ui-rdp-selected .ui-rdp-day-button{background:var(--primary);color:var(--primary-foreground)}.ui-rdp-today .ui-rdp-day-button{border-color:var(--ring)}.ui-rdp-outside .ui-rdp-day-button{color:var(--muted-foreground);opacity:.55}.ui-date-picker{position:relative;width:100%}.ui-date-picker-trigger{width:100%;justify-content:flex-start;min-height:2.75rem}.ui-date-picker-popover{position:absolute;top:calc(100% + .4rem);left:0;right:auto;z-index:80;max-width:calc(100vw - 2rem);padding:.5rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--popover);color:var(--popover-foreground);box-shadow:var(--shadow-lg);overflow-x:auto}.ui-date-picker-popover-right{left:auto;right:0}.ui-date-picker-popover .ui-calendar{--cell-size: 2rem}.ui-date-picker-popover .ui-rdp-month-caption{min-height:2rem;font-size:.95rem}.ui-date-picker-popover .ui-rdp-nav-button{width:2rem;height:2rem}.ui-date-picker-popover .ui-rdp-month-grid{border-spacing:.12rem}.ui-date-picker-popover .ui-rdp-weekday{padding:.12rem 0;font-size:.72rem}.ui-date-picker-popover .ui-rdp-day-button{border-radius:var(--radius-sm);font-size:.78rem}@media(prefers-color-scheme:dark){.ui-date-picker-popover{background:#182233;border-color:#344154;color:#d7e0ef}.ui-date-picker-popover .ui-rdp-month-caption{color:#eef4ff}.ui-date-picker-popover .ui-rdp-weekday{color:#93a4bc}.ui-date-picker-popover .ui-rdp-nav-button{background:#202a3b;border-color:#3a4658;color:#d7e0ef}.ui-date-picker-popover .ui-rdp-nav-button:hover:not(:disabled){background:#26344a;border-color:#4ade80}.ui-date-picker-popover .ui-rdp-day-button{background:#111827;border-color:#263244;color:#d7e0ef}.ui-date-picker-popover .ui-rdp-day-button:hover:not(:disabled),.ui-date-picker-popover .ui-rdp-day-button:focus-visible{background:#123524;border-color:#4ade80;color:#eef4ff}.ui-date-picker-popover .ui-rdp-selected .ui-rdp-day-button{background:#15803d;border-color:#4ade80;color:#fff}.ui-date-picker-popover .ui-rdp-today .ui-rdp-day-button{border-color:#86efac}.ui-date-picker-popover .ui-rdp-outside .ui-rdp-day-button{background:#0f172a;border-color:#1f2937;color:#65758c;opacity:1}}.ui-billable-calendar{--cell-size: clamp(3.25rem, 9vw, 5.25rem);overflow-x:auto}.ui-billable-calendar .ui-rdp-root,.ui-billable-calendar .ui-rdp-month-grid{width:100%}.ui-billable-calendar .ui-rdp-month-grid{table-layout:fixed}.ui-billable-calendar .ui-rdp-day{width:calc(100% / 7);min-width:0;height:var(--cell-size)}.ui-billable-calendar .ui-rdp-day-button{width:100%;height:100%}.ui-billable-calendar .ui-rdp-month-caption,.ui-billable-calendar .ui-rdp-nav{display:none}.ui-billable-day-button{position:relative;overflow:hidden;align-content:start;justify-items:start;gap:.22rem;padding:.5rem;background:#fff;border-color:#d1d5db;color:#334155;text-align:left}.ui-billable-day-button:hover:not(:disabled),.ui-billable-day-button:focus-visible{border-color:var(--ring);box-shadow:inset 0 0 0 1px var(--ring)}.ui-billable-day-button:active:not(:disabled){transform:translateY(1px)}.ui-billable-calendar .ui-rdp-weekend .ui-billable-day-button{color:var(--muted-foreground);background:var(--muted)}.ui-billable-calendar .ui-rdp-timer-hours:not(.ui-rdp-invoice-hours) .ui-billable-day-button{background:#dcfce7;border-color:#4ade80}.ui-billable-calendar .ui-rdp-invoice-hours .ui-billable-day-button{background:#d1fae5;border-color:#10b981;border-width:3px}.ui-billable-calendar .ui-rdp-invoice-hours .ui-billable-day-button:after,.ui-billable-calendar .ui-rdp-selected .ui-billable-day-button:after{position:absolute;top:.38rem;right:.38rem;width:.55rem;height:.55rem;border-radius:999px;background:#10b981;box-shadow:0 0 0 2px #10b98138;content:""}.ui-billable-calendar .ui-rdp-selected .ui-billable-day-button{background:#d1fae5;border-color:#10b981;color:#064e3b}.ui-billable-calendar .ui-rdp-timer-hours .ui-billable-day-button{box-shadow:inset 0 -3px #4ade80}.ui-billable-calendar .ui-rdp-holiday:not(.ui-rdp-invoice-hours):not(.ui-rdp-timer-hours) .ui-billable-day-button{background:#fce7f3;border-color:#ec4899}@media(prefers-color-scheme:dark){.ui-billable-day-button{background:#182233;border-color:#344154;color:#d7e0ef}.ui-billable-calendar .ui-rdp-weekday{color:#93a4bc}.ui-billable-calendar .ui-rdp-weekend .ui-billable-day-button{background:#202a3b;border-color:#3a4658;color:#a8b5c7}.ui-billable-calendar .ui-rdp-outside .ui-billable-day-button{background:#111827;border-color:#263244;color:#65758c}.ui-billable-calendar .ui-rdp-timer-hours:not(.ui-rdp-invoice-hours) .ui-billable-day-button{background:#123524;border-color:#4ade80}.ui-billable-calendar .ui-rdp-invoice-hours .ui-billable-day-button{background:#14382f;border-color:#2fb889}.ui-billable-calendar .ui-rdp-invoice-hours .ui-billable-day-button:after,.ui-billable-calendar .ui-rdp-selected .ui-billable-day-button:after{background:#35d29b;box-shadow:0 0 0 2px #35d29b47}.ui-billable-calendar .ui-rdp-selected .ui-billable-day-button{background:#14382f;border-color:#2fb889;color:#e7fff4}.ui-billable-day-button:hover:not(:disabled),.ui-billable-day-button:focus-visible{border-color:#86efac;box-shadow:inset 0 0 0 1px #86efac}.ui-billable-calendar .ui-rdp-holiday:not(.ui-rdp-invoice-hours):not(.ui-rdp-timer-hours) .ui-billable-day-button{background:#38223b;border-color:#c85da4}.ui-billable-calendar .ui-rdp-timer-hours .ui-billable-day-button{box-shadow:inset 0 -3px #4ade80}}.ui-billable-day-number{display:inline-flex;align-items:center;gap:.25rem;min-height:1.1rem;font-size:.9rem;font-weight:800}.ui-billable-holiday-indicator{font-size:.9rem}.ui-billable-day-hours,.ui-billable-day-timer-hours,.ui-billable-day-timer-small{display:flex;align-items:baseline;gap:.28rem;max-width:100%;color:var(--muted-foreground);font-size:clamp(.66rem,1.6vw,.78rem);font-weight:700;line-height:1.15;white-space:nowrap}.ui-billable-day-hours{color:var(--foreground)}.ui-billable-day-hours span,.ui-billable-day-timer-hours span,.ui-billable-day-timer-small span{font-size:.68rem;font-weight:800;opacity:.9;text-transform:uppercase}.ui-billable-day-hours strong,.ui-billable-day-timer-hours strong,.ui-billable-day-timer-small strong{color:inherit;font-size:.78rem;font-weight:900}.ui-billable-day-timer-hours,.ui-billable-day-timer-small{color:#15803d}@media(prefers-color-scheme:dark){.ui-billable-day-hours{color:#dffcf0}.ui-billable-day-timer-hours,.ui-billable-day-timer-small{color:#bbf7d0}}@media(max-width:640px){.ui-date-picker-popover{max-width:calc(100vw - 1rem)}.ui-date-picker-popover .ui-calendar{--cell-size: 1.9rem}.ui-billable-calendar{--cell-size: 3.6rem}}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%;width:100%}body{margin:0;color:var(--text);background:transparent;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit}button{touch-action:manipulation}img,svg{display:block;max-width:100%}a{color:inherit}::selection{background:#2f5ec429}.landing-shell{min-height:100vh;color:var(--text);background:radial-gradient(circle at 14% 16%,rgba(217,175,111,.18),transparent 24%),radial-gradient(circle at 84% 10%,rgba(120,160,214,.2),transparent 22%),linear-gradient(180deg,#f5efe4,#ece4d8 48%,#e5ddd1)}.landing-loading{min-height:100vh;display:grid;place-items:center;gap:.75rem;text-align:center;padding:2rem}.landing-loading h1{margin:0;font-size:clamp(2.5rem,8vw,4rem);letter-spacing:-.06em;color:var(--accent-strong)}.landing-loading p{margin:0;color:var(--text-muted)}.landing-hero,.landing-section{width:min(1120px,calc(100% - 2rem));margin:0 auto}.landing-hero{min-height:100vh;display:grid;align-content:start;padding:1.25rem 0 3.5rem}.landing-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.4rem 0 1.5rem}.landing-brand{display:inline-flex;align-items:center;gap:.75rem;font-weight:800;letter-spacing:-.04em;color:#14304f}.landing-brand-mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:.85rem;background:linear-gradient(135deg,#17345f,#27537d);color:#fff;box-shadow:0 14px 28px #17345f33}.landing-nav-links{display:inline-flex;align-items:center;gap:1rem;color:#70819a}.landing-nav-links a{text-decoration:none}.landing-nav-links a:hover,.landing-nav-links a:focus-visible{color:#17345f}.landing-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:2rem;align-items:center;padding:2rem 0 0}.landing-hero-copy{max-width:34rem}.landing-eyebrow{margin:0 0 .9rem;font-size:.82rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#596a82}.landing-hero-copy h1,.landing-section h2{margin:0;letter-spacing:-.06em;text-wrap:balance}.landing-hero-copy h1{font-size:clamp(3rem,6vw,5.2rem);line-height:.94;max-width:11ch;color:#14304f}.landing-intro{margin:1.25rem 0 0;max-width:32rem;font-size:1.06rem;line-height:1.7;color:#65758d}.landing-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.95rem;margin-top:1.75rem}.landing-primary-cta{min-width:13.5rem}.landing-secondary-cta{display:inline-flex;align-items:center;gap:.55rem;min-height:3.2rem;padding:.85rem 1.2rem;border-radius:var(--button-radius);text-decoration:none;font-weight:700;color:#1a4067;background:#fffaf4b8;border:1px solid rgba(26,64,103,.12)}.landing-secondary-cta:hover,.landing-secondary-cta:focus-visible{transform:translateY(-1px);background:#fff8f1eb}.landing-meta{margin:1rem 0 0;color:#5f6c7d;font-size:.94rem}.landing-warning{width:min(100%,34rem);margin:1rem 0 0;padding:.875rem 1rem;border:1px solid #fca5a5;border-radius:.5rem;background-color:#fef2f2;color:#b91c1c;font-size:.95rem;line-height:1.5}.landing-poster{position:relative;min-height:31rem;padding:1.5rem;border-radius:2.2rem;overflow:hidden;background:radial-gradient(circle at 22% 80%,rgba(206,165,102,.18),transparent 20%),linear-gradient(165deg,#17345f,#21486e 58%,#295777);box-shadow:0 30px 80px #12223d38}.landing-poster-glow{position:absolute;inset:auto auto 3rem 2rem;width:14rem;height:14rem;border-radius:999px;background:#d6ad6e2e;filter:blur(18px)}.landing-poster-panel{position:relative;z-index:1;border-radius:1.7rem;border:1px solid rgba(230,236,245,.12);background:#eff5fc1a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.landing-poster-panel-main{max-width:25rem;margin-top:1rem;padding:1.5rem}.landing-panel-label,.landing-mini-label{display:inline-flex;align-items:center;gap:.45rem;color:#ecf2f9d1;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.landing-poster-panel-main h2{margin:1rem 0 0;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.02;color:#fff}.landing-poster-panel-main p,.landing-poster-panel-stack p{margin:.9rem 0 0;line-height:1.6;color:#dfe8f4d6}.landing-poster-panel-stack{position:absolute;right:1.5rem;bottom:1.5rem;width:min(18rem,calc(100% - 3rem));padding:1.25rem;display:grid;gap:1rem}.landing-section{padding:4rem 0}.landing-section-heading{max-width:42rem}.landing-section h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.02;color:#17345f}.landing-feature-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin-top:2rem}.landing-feature-columns h3{margin:0 0 1rem;font-size:1.15rem;color:#17345f}.landing-feature-list{list-style:none;padding:0;margin:0;display:grid;gap:.9rem}.landing-feature-list li{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;padding:1rem 0;border-top:1px solid rgba(23,52,95,.1);color:#5f6f86}.landing-feature-list li:last-child{border-bottom:1px solid rgba(23,52,95,.1)}.landing-feature-list svg{color:#17345f;margin-top:.15rem}.landing-feature-list.premium svg{color:#8b6230}.landing-detail{padding-top:0}.landing-detail-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:2rem;padding:2rem;border-radius:2rem;background:#fff9f1b3;border:1px solid rgba(23,52,95,.08);box-shadow:0 20px 56px #222b3e0f}.landing-detail-points{display:grid;gap:1rem}.landing-detail-points p{display:grid;grid-template-columns:auto 1fr;gap:.85rem;margin:0;padding:1rem 0;border-top:1px solid rgba(23,52,95,.1);line-height:1.65;color:#61718a}.landing-detail-points p:last-child{border-bottom:1px solid rgba(23,52,95,.1)}.landing-detail-points svg{color:#17345f;margin-top:.1rem}.landing-footer-cta{padding-top:0;padding-bottom:5rem}.landing-footer-cta h2{max-width:16ch}@media(max-width:920px){.landing-hero{min-height:auto;padding-bottom:2.5rem}.landing-hero-grid,.landing-feature-columns,.landing-detail-card{grid-template-columns:1fr}.landing-hero-copy h1{max-width:12ch}.landing-poster{min-height:26rem}}@media(max-width:640px){.landing-hero,.landing-section{width:min(100%,calc(100% - 1.5rem))}.landing-nav{align-items:flex-start;flex-direction:column}.landing-nav-links{gap:.8rem}.landing-hero-grid{padding-top:1rem}.landing-hero-copy h1{font-size:clamp(2.6rem,14vw,4rem);max-width:none}.landing-poster{min-height:24rem;padding:1rem}.landing-poster-panel-main,.landing-poster-panel-stack,.landing-detail-card{padding:1.2rem}.landing-poster-panel-stack{position:static;width:100%;margin-top:1rem}}.dashboard,.invoice-page,.invoices-page,.gst-report-page,.tax-obligations-page,.projects-page,.notes-page,.reports-page,.preferences-page,.subscription-page,.support-page,.todos-page{padding-left:var(--nav-rail-width, 5rem);transition:padding-left .22s ease}.top-bar{position:sticky;top:0;z-index:120;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(180deg,#f8f6eff5,#f8f6efe6);border-bottom:1px solid rgba(31,41,55,.08)}.top-bar-content{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1400px;margin:0 auto;padding:1rem 2rem}.app-name-link{text-decoration:none;color:inherit;min-width:0}.app-name{margin:0;font-size:clamp(1.4rem,2vw,2rem);font-weight:700;letter-spacing:-.04em;color:#172033}.logout-btn,.avatar-button{display:inline-flex;align-items:center;justify-content:flex-start;gap:.875rem;width:100%;min-width:0;min-height:3rem;padding:0 .75rem;border-radius:.75rem;border:1px solid transparent;background:transparent;color:#32415f;cursor:pointer;transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease}.logout-btn:hover,.avatar-button:hover{background:#1f293714;border-color:transparent;color:#172033}.avatar-button{overflow:visible}.avatar-button.active{box-shadow:0 0 0 4px #1ba36729}.avatar-button.expiring{box-shadow:0 0 0 4px #d9770629}.avatar-button.expired{box-shadow:0 0 0 4px #dc262629}.user-avatar,.user-avatar-placeholder{flex:0 0 1.75rem;width:1.75rem;height:1.75rem;border-radius:999px}.user-avatar{object-fit:cover}.user-avatar-placeholder{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2f5ec4,#1c7c73);color:#fff}.logout-btn:hover{color:#b42318}.nav-rail{position:fixed;top:0;left:0;bottom:0;width:var(--nav-rail-width, 1rem);z-index:130;display:flex;flex-direction:column;gap:.5rem;padding:.5rem;border-right:1px solid rgba(31,41,55,.1);background:linear-gradient(180deg,#fffaf2fa,#f6f6f1f0);box-shadow:10px 0 40px #0f172a14;transition:width .22s ease,box-shadow .22s ease,background-color .22s ease;overflow:hidden}.nav-rail.expanded{box-shadow:16px 0 54px #0f172a1f}.nav-toggle-btn,.nav-item{position:relative;display:flex;align-items:center;width:100%;min-width:0;min-height:2.75rem;gap:.875rem;border-radius:.75rem;color:#334155;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.nav-toggle-btn{justify-content:flex-start;border:1px solid transparent;padding:0 .625rem;background:transparent;cursor:pointer;font:inherit}.nav-toggle-btn:hover{background:#1f293714;border-color:transparent;color:#172033}.nav-rail-content{display:flex;flex-direction:column;gap:.4rem}.nav-item{padding:0 .625rem;text-decoration:none;background:transparent;border:1px solid transparent}.nav-item.section-start{margin-top:.85rem}.nav-item.section-start:before{content:"";position:absolute;left:.625rem;right:.625rem;top:-.55rem;border-top:1px solid rgba(51,65,85,.16)}.nav-item:hover{color:#172033;background:#1f293714;border-color:transparent}.nav-item.active{color:#12305a;background:#2f5ec429;border-color:transparent}.nav-toggle-btn svg,.nav-item svg,.logout-btn svg{flex:0 0 1rem}.nav-label{min-width:7rem;overflow:hidden;opacity:1;transform:translate(0);white-space:nowrap;transition:opacity .18s ease,transform .18s ease}.nav-rail.collapsed .nav-toggle-btn,.nav-rail.collapsed .nav-item,.nav-rail.collapsed .logout-btn,.nav-rail.collapsed .avatar-button{justify-content:center;width:2.5rem;height:2.5rem;min-height:2.5rem;padding:0;align-self:center;gap:0}.nav-rail.collapsed .nav-label{width:0;min-width:0;opacity:0;pointer-events:none;transform:translate(-.5rem)}.nav-rail.collapsed .nav-item.section-start:before{left:.4rem;right:.4rem}.nav-rail.collapsed .user-avatar,.nav-rail.collapsed .user-avatar-placeholder{flex-basis:1.5rem;width:1.5rem;height:1.5rem}.nav-rail-actions{display:flex;flex-direction:column;gap:.4rem;margin-top:auto}@media(prefers-reduced-motion:reduce){.dashboard,.invoice-page,.invoices-page,.gst-report-page,.tax-obligations-page,.projects-page,.notes-page,.reports-page,.preferences-page,.support-page,.todos-page,.logout-btn,.avatar-button,.nav-rail,.nav-label,.nav-toggle-btn,.nav-item{transition:none}}@media(prefers-color-scheme:dark){.top-bar{background:linear-gradient(180deg,#111827f5,#111827e0);border-bottom-color:#94a3b82e}.app-name{color:#f0fdf4}.logout-btn,.avatar-button{background:transparent;border-color:transparent;color:#e2e8f0}.logout-btn:hover,.avatar-button:hover{background:#94a3b824;border-color:transparent;color:#fff}.nav-rail{background:linear-gradient(180deg,#0f172afa,#111827f5);border-right-color:#94a3b829;box-shadow:10px 0 40px #02061761}.nav-toggle-btn{color:#e2e8f0;background:transparent;border-color:transparent}.nav-toggle-btn:hover{color:#fff;background:#94a3b824;border-color:transparent}.nav-item{color:#dbe4f0;background:transparent}.nav-item.section-start:before{border-top-color:#e2e8f02e}.nav-item:hover{color:#fff;background:#94a3b824;border-color:transparent}.nav-item.active{color:#f8fafc;background:#86efac2e;border-color:transparent}}@media(max-width:768px){.dashboard,.invoice-page,.gst-report-page,.tax-obligations-page,.projects-page,.notes-page,.reports-page,.preferences-page,.subscription-page,.todos-page{padding-left:4.25rem}.nav-rail{width:3.5rem;padding:.65rem .4rem}.nav-rail.expanded{width:min(14rem,76vw)}.nav-toggle-btn,.nav-item,.logout-btn,.avatar-button{min-height:2.75rem;border-radius:.625rem}.nav-rail.collapsed .nav-toggle-btn,.nav-rail.collapsed .nav-item,.nav-rail.collapsed .logout-btn,.nav-rail.collapsed .avatar-button{width:2.5rem;height:2.5rem}.top-bar-content{padding:.85rem 1rem}}@media print{.top-bar,.nav-rail{display:none!important}.dashboard,.invoice-page,.gst-report-page,.tax-obligations-page,.projects-page,.notes-page,.reports-page,.preferences-page,.subscription-page,.todos-page{padding-left:0!important}}.timer-bar{--timer-frame-max-width: var(--app-content-max-width, var(--dashboard-content-max-width, 1280px));--timer-frame-padding: var(--app-content-horizontal-padding, var(--dashboard-horizontal-padding, 2rem));width:100%;background-color:#fff;padding:1.5rem var(--timer-frame-padding)}.timer-bar-content{--timer-control-height: 4rem;width:min(calc(var(--timer-frame-max-width) - var(--timer-frame-padding) - var(--timer-frame-padding)),100%);max-width:calc(var(--timer-frame-max-width) - var(--timer-frame-padding) - var(--timer-frame-padding));margin:0 auto;display:flex;align-items:stretch;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap}.search-suggestion-item{width:100%;padding:.75rem 1rem;cursor:pointer;border:0;border-bottom:1px solid #e5e7eb;background:transparent;transition:background-color .2s;text-align:left}.timer-display{flex:0 0 auto;min-height:var(--timer-control-height);padding:0 .25rem;display:inline-flex;align-items:center;justify-content:center;font-size:1.875rem;font-weight:700;font-family:Courier New,monospace;color:#111827;min-width:140px;text-align:right;background:transparent;border:none}.timer-btn:disabled,.timer-display:disabled{opacity:.6;cursor:not-allowed}.project-btn{display:flex;align-items:center;gap:.5rem;flex:1 1 0;min-width:0;max-width:none;padding:.5rem .75rem;min-height:var(--timer-control-height, 4rem);background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:.5rem;cursor:pointer;transition:all .2s;font-size:1.5rem;font-weight:500;white-space:nowrap}.project-btn.has-project{background-color:var(--current-project-bg);border-color:var(--current-project-accent);color:var(--current-project-accent)}.project-btn.has-project:hover{background-color:var(--current-project-hover-bg);border-color:var(--current-project-accent)}.timer-bar .project-name{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}.current-timer-error{width:min(calc(var(--timer-frame-max-width) - var(--timer-frame-padding) - var(--timer-frame-padding)),100%);max-width:calc(var(--timer-frame-max-width) - var(--timer-frame-padding) - var(--timer-frame-padding));margin:.75rem auto 0;color:#ef4444}.current-timer-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.current-timer-dialog{background-color:#fff;border-radius:.75rem;padding:2rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.current-timer-dialog .modal-title{font-size:1.5rem;font-weight:700;color:#111827;margin-bottom:1.5rem}.current-timer-dialog .form-group{margin-bottom:1.25rem}.current-timer-dialog .form-label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.current-timer-dialog .form-input{width:100%;padding:.625rem .875rem;font-size:.875rem;background-color:#fff;color:#111827;border:1px solid #d1d5db;border-radius:.5rem;outline:none;transition:all .2s;box-sizing:border-box}.current-timer-dialog .form-input:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.current-timer-dialog .form-hint{font-size:.75rem;color:#6b7280;margin-top:.375rem;margin-bottom:0}.current-timer-dialog .modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.current-timer-dialog .modal-warning{margin:0 0 1rem;padding:.875rem 1rem;border:1px solid #fca5a5;border-radius:.5rem;background-color:#fef2f2;color:#b91c1c;font-size:.95rem;line-height:1.5}.current-timer-dialog .btn{padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;border:none;border-radius:.5rem;cursor:pointer;transition:all .2s}.current-timer-dialog .btn-cancel{background-color:#fff;color:#374151;border:1px solid #d1d5db}.current-timer-dialog .btn-cancel:hover{background-color:#f9fafb}.current-timer-dialog .btn-save{background-color:#16a34a;color:#fff}.current-timer-dialog .btn-save:hover{background-color:#15803d}.current-timer-dialog .btn:disabled{cursor:not-allowed;opacity:.65}.current-timer-dialog.project-selector-modal{max-width:500px}.current-timer-dialog.start-time-edit-modal{max-width:400px}.current-timer-dialog .create-project-form-container{display:flex;flex-direction:column;gap:1rem}.current-timer-dialog .client-button-list{display:flex;flex-wrap:wrap;gap:.5rem}.current-timer-dialog .client-button{padding:.5rem 1rem;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#111827;font-size:.875rem;cursor:pointer;transition:all .2s}.current-timer-dialog .client-button:hover{background-color:#f9fafb;border-color:#16a34a}.current-timer-dialog .client-button.selected{background-color:#f0fdf4;border-color:#16a34a;color:#16a34a;font-weight:500}.current-timer-dialog .project-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto;margin-bottom:1rem}.current-timer-dialog .project-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;cursor:pointer;transition:all .2s;text-align:left;font-size:.875rem;color:#111827;width:100%}.current-timer-dialog .project-item-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.current-timer-dialog .project-item-name{font-weight:500}.current-timer-dialog .project-item-client{font-size:.75rem;color:#6b7280}.current-timer-dialog .project-item:hover{background-color:#f9fafb;border-color:#16a34a}.current-timer-dialog .project-item.selected{background-color:#f0fdf4;border-color:#16a34a;color:#16a34a}.current-timer-dialog .no-projects{text-align:center;color:#6b7280;font-size:.875rem;padding:2rem 1rem}@media(prefers-color-scheme:dark){.timer-bar{background-color:#111827}.task-input,.project-btn{background-color:#1f2937;color:#f9fafb;border-color:#4b5563}.task-input::placeholder{color:#6b7280}.search-suggestions{background-color:#1f2937;border-color:#4b5563;box-shadow:0 4px 12px #0000004d}.search-suggestion-item{border-bottom-color:#374151}.search-suggestion-item:hover,.project-btn:hover{background-color:#374151}.suggestion-description,.timer-display{color:#f9fafb}.suggestion-project,.current-timer-dialog .project-item-client,.current-timer-dialog .no-projects{color:#9ca3af}.current-timer-dialog .client-button,.current-timer-dialog .project-item{background-color:#374151;border-color:#4b5563;color:#f9fafb}.current-timer-dialog .client-button:hover,.current-timer-dialog .project-item:hover{background-color:#4b5563;border-color:#16a34a}.current-timer-dialog .client-button.selected,.current-timer-dialog .project-item.selected{background-color:#1e3a5f;border-color:#16a34a;color:#4ade80}.current-timer-dialog{background-color:#1f2937}.current-timer-dialog .modal-title,.current-timer-dialog .form-input{color:#f9fafb}.current-timer-dialog .form-label{color:#d1d5db}.current-timer-dialog .form-input{background-color:#374151;border-color:#4b5563}.current-timer-dialog .form-hint{color:#9ca3af}.current-timer-dialog .modal-actions{border-top-color:#374151}.current-timer-dialog .modal-warning{background-color:#7f1d1d47;border-color:#991b1b;color:#fecaca}.current-timer-dialog .btn-cancel{background-color:#374151;color:#e5e7eb;border-color:#4b5563}.current-timer-dialog .btn-cancel:hover{background-color:#4b5563}}@media(max-width:768px){.timer-bar{padding:1rem}.timer-bar-content{--timer-control-height: 3.5rem;gap:.75rem}.timer-controls{width:100%;flex-basis:100%;flex-wrap:wrap;justify-content:stretch}.project-btn{flex:1 1 100%;min-width:0;font-size:1rem}.timer-display{flex:1 1 0;min-width:0;font-size:1rem}.timer-btn{flex:0 0 var(--timer-control-height)}}.ticket-card{position:relative;display:grid;grid-template-columns:.3rem minmax(0,1fr) auto;grid-template-areas:"accent main side";align-items:center;column-gap:.55rem;background-color:#fff;border:1px solid #dde4ee;border-radius:6px;padding:.45rem .55rem;transition:border-color .2s ease,box-shadow .2s ease}.ticket-card:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0f172a14}.ticket-card-clickable{cursor:pointer}.ticket-card-clickable:focus-visible{outline:2px solid #4ade80;outline-offset:2px}.ticket-card-selected{border-color:#86efac;box-shadow:inset 0 0 0 1px #16a34a33}.ticket-card-menu-open{z-index:1100}.ticket-card-ghost{opacity:.72;border-style:dashed;animation:ticket-pulse 2s ease-in-out infinite}@keyframes ticket-pulse{0%,to{opacity:.72}50%{opacity:.52}}.ticket-accent{grid-area:accent;width:.3rem;height:100%;min-height:3.45rem;border-radius:999px;background:var(--ticket-accent-color, #64748b)}.ticket-main{grid-area:main;display:flex;align-items:flex-start;gap:.4rem;min-width:0}.ticket-drag-handle{align-self:center;flex:0 0 auto;color:#94a3b8}.ticket-copy{min-width:0;width:100%}.ticket-time{margin-bottom:.1rem;color:#6b7280;font-family:Courier New,monospace;font-size:.75rem;font-weight:700}.ticket-title{margin:0;color:#111827;display:-webkit-box;font-size:.92rem;font-weight:700;line-height:1.24;overflow-wrap:anywhere;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ticket-description{margin:.1rem 0 0;color:#526073;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;margin-top:.25rem;min-width:0}.ticket-project,.ticket-status,.ticket-tag{display:inline-flex;align-items:center;max-width:min(100%,13rem);min-height:1.15rem;border:1px solid;border-radius:5px;padding:.125rem .4rem;font-size:.68rem;font-weight:700;line-height:1}.ticket-project{min-width:4.75rem;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-status{gap:.25rem;border-color:#d8dee8;background:#f8fafc;color:#647084}.ticket-status svg{flex:0 0 auto}.ticket-tag{border-color:#d8dee8;background:#f8fafc;color:#647084;max-width:min(100%,8rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-side{grid-area:side;display:flex;align-items:center;justify-content:flex-end;gap:.45rem;min-width:0}.ticket-duration{min-width:4.4rem;color:#16a34a;font-family:Courier New,monospace;font-size:.78rem;font-weight:700;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.ticket-actions{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:.25rem;flex:0 0 auto;min-width:3.2rem}.ticket-action-btn,.ticket-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border:0;border-radius:5px;background-color:transparent;padding:0;cursor:pointer;transition:background-color .2s ease,color .2s ease}.ticket-start-btn{color:#10b981}.ticket-start-btn:hover{background-color:#d1fae5;color:#059669}.ticket-stop-btn{color:#ef4444}.ticket-stop-btn:hover{background-color:#fee2e2;color:#dc2626}.ticket-menu-btn{color:#6b7280}.ticket-menu-btn:hover{background-color:#f3f4f6;color:#111827}.ticket-menu-popup{z-index:1000;min-width:140px;border:1px solid #e5e7eb;border-radius:8px;background-color:#fff;box-shadow:0 8px 24px #0f172a29;padding:.5rem}.ticket-menu-item{display:block;width:100%;border:0;border-radius:6px;background-color:transparent;color:#111827;cursor:pointer;font-size:.875rem;padding:.625rem 1rem;text-align:left}.ticket-menu-item:hover{background-color:#f3f4f6}.ticket-menu-item-delete{color:#ef4444}.ticket-menu-item-delete:hover{background-color:#fef2f2}.ticket-card-compact{grid-template-columns:.25rem minmax(0,1fr);grid-template-areas:"accent main" "accent side";align-items:stretch;column-gap:.5rem;row-gap:.25rem;border-radius:4px;padding:.35rem .4rem}.ticket-card-compact .ticket-accent{width:.25rem;min-height:3.25rem}.ticket-card-compact .ticket-main{gap:.35rem}.ticket-card-compact .ticket-time{margin-bottom:.1rem;font-size:.6875rem}.ticket-card-compact .ticket-title{font-size:.78rem;font-weight:700;line-height:1.22}.ticket-card-compact .ticket-description{display:none}.ticket-card-compact .ticket-meta{gap:.25rem;margin-top:.25rem}.ticket-card-compact .ticket-project,.ticket-card-compact .ticket-status,.ticket-card-compact .ticket-tag{min-height:1.1rem;max-width:min(100%,10rem);border-radius:4px;padding:.125rem .35rem;font-size:.625rem}.ticket-card-compact .ticket-project{min-width:4.25rem}.ticket-card-compact .ticket-side{gap:.35rem;justify-content:flex-end}.ticket-card-compact .ticket-side:has(.ticket-duration){justify-content:space-between}.ticket-card-compact .ticket-duration{min-width:0;font-size:.6875rem;text-align:left}.ticket-card-compact .ticket-actions{min-width:1.55rem;flex-direction:column;gap:.125rem}.ticket-card-compact .ticket-action-btn,.ticket-card-compact .ticket-menu-btn{width:1.45rem;height:1.45rem;border-radius:4px}.ticket-card-scheduled{grid-template-columns:.22rem minmax(0,1fr) auto;align-items:start;column-gap:.42rem;border-radius:4px}.ticket-card-scheduled .ticket-accent{width:.22rem;min-height:0;height:100%}.ticket-card-scheduled .ticket-main{gap:.25rem;min-height:0}.ticket-card-scheduled .ticket-drag-handle{align-self:start;margin-top:.35rem}.ticket-card-scheduled .ticket-title{-webkit-line-clamp:1;font-size:.78rem;line-height:1.16}.ticket-card-scheduled .ticket-meta{flex-wrap:nowrap;gap:.2rem;margin-top:.16rem;overflow:hidden}.ticket-card-scheduled .ticket-project,.ticket-card-scheduled .ticket-tag{min-width:0;min-height:1rem;max-width:100%;border-radius:4px;padding:.1rem .3rem;font-size:.6rem}.ticket-card-scheduled .ticket-side{align-items:start;gap:.2rem}.ticket-card-scheduled .ticket-actions{min-width:2.7rem;gap:.12rem}.ticket-card-scheduled .ticket-action-btn,.ticket-card-scheduled .ticket-menu-btn{width:1.3rem;height:1.3rem;border-radius:4px}.ticket-card-scheduled .ticket-action-btn svg,.ticket-card-scheduled .ticket-menu-btn svg{width:.9rem;height:.9rem}@media(prefers-color-scheme:dark){.ticket-card{background-color:#0f172ac7;border-color:#94a3b838}.ticket-card:hover{border-color:#94a3b857;box-shadow:0 2px 10px #02061752}.ticket-card-selected{border-color:#4ade808c;box-shadow:inset 0 0 0 1px #4ade8038}.ticket-time,.ticket-description,.ticket-drag-handle{color:#94a3b8}.ticket-title{color:#f9fafb}.ticket-status,.ticket-tag{border-color:#94a3b847;background:#0f172ac7;color:#cbd5e1}.ticket-duration{color:#4ade80}.ticket-start-btn{color:#34d399}.ticket-start-btn:hover{background-color:#064e3b;color:#6ee7b7}.ticket-stop-btn{color:#f87171}.ticket-stop-btn:hover{background-color:#7f1d1db8;color:#fecaca}.ticket-menu-btn{color:#9ca3af}.ticket-menu-btn:hover{background-color:#374151;color:#f9fafb}.ticket-menu-popup{border-color:#374151;background-color:#1f2937;box-shadow:0 8px 24px #00000080}.ticket-menu-item{color:#f9fafb}.ticket-menu-item:hover{background-color:#374151}.ticket-menu-item-delete{color:#f87171}.ticket-menu-item-delete:hover{background-color:#991b1b}}@media(max-width:700px){.ticket-title{font-size:.95rem}}.dashboard{--dashboard-content-max-width: 1280px;--dashboard-horizontal-padding: 2rem;--app-content-max-width: var(--dashboard-content-max-width);--app-content-horizontal-padding: var(--dashboard-horizontal-padding);min-height:100vh;background-color:#fff}@media(prefers-color-scheme:dark){.dashboard{background-color:#111827}}.timer-bar{width:100%;background-color:#fff;padding:1.5rem var(--dashboard-horizontal-padding)}@media(prefers-color-scheme:dark){.timer-bar{background-color:#111827}}.timer-bar-content{--timer-control-height: 4rem;max-width:calc(var(--dashboard-content-max-width) - var(--dashboard-horizontal-padding) - var(--dashboard-horizontal-padding));margin:0 auto;display:flex;align-items:stretch;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap}.task-input-wrapper{flex:1 1 24rem;display:flex;align-items:stretch;justify-content:flex-start;position:relative;min-width:min(100%,22rem)}.task-input{width:100%;min-height:var(--timer-control-height);padding:0 1.5rem;font-size:1.125rem;text-align:center;background-color:#fff;color:#111827;border:1px solid #d1d5db;border-radius:.5rem;outline:none;transition:all .2s}.task-input:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.task-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.task-input::placeholder{color:#9ca3af}.search-suggestions{position:absolute;top:100%;left:0;width:100%;margin-top:.5rem;background-color:#fff;border:1px solid #d1d5db;border-radius:.5rem;box-shadow:0 4px 12px #0000001a;max-height:300px;overflow-y:auto;z-index:1000}.modal-content .search-suggestions{left:0;transform:none;max-width:100%}.search-suggestion-item{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid #e5e7eb;transition:background-color .2s;text-align:left}.search-suggestion-item:last-child{border-bottom:none}.search-suggestion-item:hover{background-color:#f3f4f6}.suggestion-description{font-size:.9375rem;font-weight:500;color:#111827;margin-bottom:.25rem}.suggestion-project{font-size:.8125rem;color:#6b7280}@media(prefers-color-scheme:dark){.task-input{background-color:#1f2937;color:#f9fafb;border-color:#4b5563}.task-input:focus{border-color:#16a34a}.task-input:disabled{background-color:#1f2937}.task-input::placeholder{color:#6b7280}.search-suggestions{background-color:#1f2937;border-color:#4b5563;box-shadow:0 4px 12px #0000004d}.search-suggestion-item{border-bottom-color:#374151}.search-suggestion-item:hover{background-color:#374151}.suggestion-description{color:#f9fafb}.suggestion-project{color:#9ca3af}}.timer-controls{display:flex;align-items:stretch;gap:1rem;flex:1 1 24rem;flex-wrap:nowrap;justify-content:flex-end;min-width:0}.timer-display{flex:0 0 auto;min-height:var(--timer-control-height);padding:0 .25rem;display:inline-flex;align-items:center;justify-content:center;font-size:1.875rem;font-weight:700;font-family:Courier New,monospace;color:#111827;min-width:140px;text-align:right}.timer-display.clickable{cursor:pointer;transition:color .2s}.timer-display.clickable:hover{color:#16a34a}@media(prefers-color-scheme:dark){.timer-display{color:#f9fafb}.timer-display.clickable:hover{color:#4ade80}}.timer-btn{flex:0 0 var(--timer-control-height);padding:1rem;border:none;border-radius:.5rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;width:var(--timer-control-height);height:var(--timer-control-height)}.timer-btn-start{background-color:#10b981;color:#fff}.timer-btn-start:hover{background-color:#059669}.timer-btn-stop{background-color:#ef4444;color:#fff}.timer-btn-stop:hover{background-color:#dc2626}.timer-btn:disabled{opacity:.6;cursor:not-allowed}.timer-btn.loading{opacity:.8}.loading-spinner{width:32px;height:32px;border:3px solid transparent;border-top:3px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-btn{display:flex;align-items:center;gap:.5rem;flex:1 1 0;min-width:0;max-width:none;padding:.5rem .75rem;min-height:var(--timer-control-height);background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:.5rem;cursor:pointer;transition:all .2s;font-size:1.5rem;font-weight:500;white-space:nowrap}.project-btn:hover{background-color:#f9fafb;border-color:#9ca3af}.project-btn:disabled{opacity:.5;cursor:not-allowed}.project-name{max-width:150px;overflow:hidden;text-overflow:ellipsis}@media(prefers-color-scheme:dark){.project-btn{background-color:#1f2937;color:#e5e7eb;border-color:#4b5563}.project-btn:hover{background-color:#374151;border-color:#6b7280}}.content-area{max-width:var(--dashboard-content-max-width);margin:0 auto;padding:2rem var(--dashboard-horizontal-padding) 2rem;color:#6b7280;min-width:0}@media(prefers-color-scheme:dark){.content-area{color:#9ca3af}}.view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:1rem;min-height:2rem;flex-wrap:wrap}.view-toggle{display:flex;align-items:center;gap:.25rem;background-color:#f3f4f6;padding:.25rem;border-radius:.5rem;flex-wrap:wrap;margin-left:auto;max-width:100%}.week-nav{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}@media(prefers-color-scheme:dark){.view-toggle{background-color:#374151}}.view-toggle-btn{display:flex;align-items:center;justify-content:center;padding:.5rem;background-color:transparent;border:none;border-radius:.375rem;cursor:pointer;color:#6b7280;transition:all .2s}.view-toggle-btn:hover{color:#111827}.view-toggle-btn.active{background-color:#fff;color:#16a34a;box-shadow:0 1px 3px #0000001a}@media(prefers-color-scheme:dark){.view-toggle-btn{color:#9ca3af}.view-toggle-btn:hover{color:#f9fafb}.view-toggle-btn.active{background-color:#1f2937;color:#4ade80}}.timer-list{display:flex;flex-direction:column;gap:1.5rem}.timer-day-group{display:flex;flex-direction:column;gap:.5rem}.day-header{font-size:.875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;padding:.5rem .75rem;margin-bottom:.25rem}@media(prefers-color-scheme:dark){.day-header{color:#9ca3af}}.timer-entry{background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;padding:.625rem 1rem;transition:all .2s}.timer-entry:hover{box-shadow:0 2px 8px #0000001a;border-color:#d1d5db}.ghost-timer{opacity:.7;border-style:dashed!important;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.7}50%{opacity:.5}}@media(prefers-color-scheme:dark){.timer-entry{background-color:#1f2937;border-color:#374151}.timer-entry:hover{box-shadow:0 2px 8px #0000004d;border-color:#4b5563}}.timer-entry-main{display:flex;align-items:center;gap:1.5rem}.timer-entry-time{min-width:110px;font-size:.8125rem;color:#6b7280;text-align:left;font-family:Courier New,monospace}@media(prefers-color-scheme:dark){.timer-entry-time{color:#9ca3af}}.timer-entry-description{flex:1;text-align:left;min-width:0}.entry-description{font-size:.9375rem;font-weight:500;color:#111827;margin-bottom:.125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-project{font-size:.75rem;font-weight:500;padding:.125rem .5rem;border-radius:.25rem;border:1px solid;display:inline-block;width:fit-content}@media(prefers-color-scheme:dark){.entry-description{color:#f9fafb}}.timer-entry-duration{min-width:80px;font-size:1rem;font-weight:600;font-family:Courier New,monospace;color:#16a34a;text-align:right}@media(prefers-color-scheme:dark){.timer-entry-duration{color:#4ade80}}.timer-entry-actions{min-width:70px;display:flex;gap:.25rem;justify-content:flex-end;align-items:center}.timer-action-btn{padding:.375rem;background-color:transparent;border:none;border-radius:.375rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.timer-start-btn{color:#10b981}.timer-start-btn:hover{background-color:#d1fae5;color:#059669}@media(prefers-color-scheme:dark){.timer-start-btn{color:#34d399}.timer-start-btn:hover{background-color:#064e3b;color:#6ee7b7}}.timer-menu-btn{padding:.375rem;background-color:transparent;border:none;border-radius:.375rem;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center;transition:all .2s}.timer-menu-btn:hover{background-color:#f3f4f6;color:#111827}@media(prefers-color-scheme:dark){.timer-menu-btn{color:#9ca3af}.timer-menu-btn:hover{background-color:#374151;color:#f9fafb}}.timer-menu-popup{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 4px 12px #00000026;padding:.5rem;min-width:140px;z-index:1000}@media(prefers-color-scheme:dark){.timer-menu-popup{background-color:#1f2937;border-color:#374151;box-shadow:0 4px 12px #00000080}}.menu-item{width:100%;padding:.625rem 1rem;background-color:transparent;border:none;border-radius:.375rem;text-align:left;font-size:.875rem;color:#111827;cursor:pointer;transition:background-color .2s;display:block}.menu-item:hover{background-color:#f3f4f6}.menu-item-delete{color:#ef4444}.menu-item-delete:hover{background-color:#fef2f2}@media(prefers-color-scheme:dark){.menu-item{color:#f9fafb}.menu-item:hover{background-color:#374151}.menu-item-delete{color:#f87171}.menu-item-delete:hover{background-color:#991b1b}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background-color:#fff;border-radius:.75rem;padding:2rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@media(prefers-color-scheme:dark){.modal-content{background-color:#1f2937}}.modal-title{font-size:1.5rem;font-weight:700;color:#111827;margin-bottom:1.5rem}@media(prefers-color-scheme:dark){.modal-title{color:#f9fafb}}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.form-label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}@media(prefers-color-scheme:dark){.form-label{color:#d1d5db}}.form-input{width:100%;padding:.625rem .875rem;font-size:.875rem;background-color:#fff;color:#111827;border:1px solid #d1d5db;border-radius:.5rem;outline:none;transition:all .2s;box-sizing:border-box}.form-input:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.form-hint{font-size:.75rem;color:#6b7280;margin-top:.375rem;margin-bottom:0}@media(prefers-color-scheme:dark){.form-input{background-color:#374151;color:#f9fafb;border-color:#4b5563}.form-input:focus{border-color:#16a34a}.form-hint{color:#9ca3af}}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}@media(prefers-color-scheme:dark){.modal-actions{border-top-color:#374151}.modal-warning{background-color:#7f1d1d47;border-color:#991b1b;color:#fecaca}}.btn{padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;border:none;border-radius:.5rem;cursor:pointer;transition:all .2s}.btn-cancel{background-color:#fff;color:#374151;border:1px solid #d1d5db}.btn-cancel:hover{background-color:#f9fafb}@media(prefers-color-scheme:dark){.btn-cancel{background-color:#374151;color:#e5e7eb;border-color:#4b5563}.btn-cancel:hover{background-color:#4b5563}}.btn-save{background-color:#16a34a;color:#fff}.btn-save:hover{background-color:#15803d}.project-selector-modal{max-width:500px}.start-time-edit-modal{max-width:400px}.delete-confirmation-modal{max-width:440px}.delete-confirmation-modal .modal-actions{flex-direction:row}.delete-confirmation-modal .modal-actions .btn{width:auto}.delete-confirmation-copy{color:#374151;line-height:1.6;margin:0}.delete-confirmation-details{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding:.875rem;border:1px solid #e5e7eb;border-radius:.5rem;color:#6b7280;background-color:#f9fafb}.btn-delete{background-color:#ef4444;color:#fff}.btn-delete:hover:not(:disabled){background-color:#dc2626}.btn:disabled{cursor:not-allowed;opacity:.65}@media(prefers-color-scheme:dark){.delete-confirmation-copy{color:#d1d5db}.delete-confirmation-details{background-color:#111827;border-color:#374151;color:#9ca3af}}.create-project-form-container{display:flex;flex-direction:column;gap:1rem}.create-project-section{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.create-project-form{display:flex;flex-direction:column;gap:.75rem}.client-selector-wrapper{width:100%}.client-button-list{display:flex;flex-wrap:wrap;gap:.5rem}.client-button{padding:.5rem 1rem;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#111827;font-size:.875rem;cursor:pointer;transition:all .2s}.client-button:hover{background-color:#f9fafb;border-color:#16a34a}.client-button.selected{background-color:#f0fdf4;border-color:#16a34a;color:#16a34a;font-weight:500}@media(prefers-color-scheme:dark){.client-button{background-color:#374151;border-color:#4b5563;color:#f9fafb}.client-button:hover{background-color:#4b5563;border-color:#16a34a}.client-button.selected{background-color:#1e3a5f;border-color:#16a34a;color:#4ade80}}.client-select{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;background-color:#fff;color:#111827;font-size:.875rem;cursor:pointer}.client-select:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}@media(prefers-color-scheme:dark){.client-select{background-color:#374151;border-color:#4b5563;color:#f9fafb}.client-select:focus{border-color:#16a34a}}.create-client-inline{display:flex;gap:.5rem;align-items:center}.create-client-inline .form-input{flex:1}.create-client-inline .btn{min-width:fit-content;padding:.5rem 1rem}.create-project-section>.btn{align-self:flex-start;white-space:nowrap}.btn-secondary{background-color:#6b7280;color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:background-color .2s;white-space:nowrap}.btn-secondary:hover:not(:disabled){background-color:#4b5563}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}@media(prefers-color-scheme:dark){.btn-secondary{background-color:#4b5563}.btn-secondary:hover:not(:disabled){background-color:#374151}}.project-list-divider{display:flex;align-items:center;margin-bottom:1rem;color:#6b7280;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.project-list-divider:before,.project-list-divider:after{content:"";flex:1;border-bottom:1px solid #e5e7eb}.project-list-divider:before{margin-right:.75rem}.project-list-divider:after{margin-left:.75rem}@media(prefers-color-scheme:dark){.project-list-divider{color:#9ca3af}.project-list-divider:before,.project-list-divider:after{border-bottom-color:#4b5563}}.project-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto;margin-bottom:1rem}.project-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;cursor:pointer;transition:all .2s;text-align:left;font-size:.875rem;color:#111827;width:100%}.project-item-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.project-item-name{font-weight:500}.project-item-client{font-size:.75rem;color:#6b7280}@media(prefers-color-scheme:dark){.project-item-client{color:#9ca3af}}.project-item:hover{background-color:#f9fafb;border-color:#16a34a}.project-item.selected{background-color:#f0fdf4;border-color:#16a34a;color:#16a34a}@media(prefers-color-scheme:dark){.project-item{background-color:#374151;border-color:#4b5563;color:#f9fafb}.project-item:hover{background-color:#4b5563;border-color:#16a34a}.project-item.selected{background-color:#1e3a5f;border-color:#16a34a;color:#4ade80}}.no-projects{text-align:center;color:#6b7280;font-size:.875rem;padding:2rem 1rem}@media(prefers-color-scheme:dark){.no-projects{color:#9ca3af}}.calendar-view{display:flex;flex-direction:column;gap:0;min-width:0}.calendar-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0;flex:1 1 18rem;min-width:0;line-height:1.3}@media(prefers-color-scheme:dark){.calendar-title{color:#f9fafb}}.calendar-nav-btn{background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;padding:.5rem 1rem;cursor:pointer;font-size:1.25rem;font-weight:700;color:#6b7280;transition:all .2s}.calendar-nav-btn:hover:not(:disabled){background-color:#f3f4f6;color:#111827;border-color:#d1d5db}.calendar-nav-btn:disabled{opacity:.4;cursor:not-allowed}.calendar-nav-btn.today-btn{font-size:.875rem;font-weight:600;padding:.5rem 1rem}@media(prefers-color-scheme:dark){.calendar-nav-btn{background-color:#1f2937;border-color:#374151;color:#9ca3af}.calendar-nav-btn:hover:not(:disabled){background-color:#374151;color:#f9fafb;border-color:#4b5563}}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.5rem;align-items:start}.calendar-day{background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;min-height:150px;display:flex;flex-direction:column;font-size:.8125rem;min-width:0}.calendar-day.today{border-color:#16a34a;border-width:2px}@media(prefers-color-scheme:dark){.calendar-day{background-color:#1f2937;border-color:#374151}.calendar-day.today{border-color:#4ade80}}.calendar-day-header{padding:.5rem;border-bottom:1px solid #e5e7eb;display:flex;flex-direction:column;gap:.25rem;position:relative;min-width:0}@media(prefers-color-scheme:dark){.calendar-day-header{border-bottom-color:#374151}}.calendar-add-btn{position:absolute;top:.25rem;right:.25rem;width:20px;height:20px;border-radius:.25rem;border:1px solid #d1d5db;background-color:#fff;color:#6b7280;font-size:.875rem;font-weight:600;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .2s}.calendar-add-btn:hover{background-color:#16a34a;color:#fff;border-color:#16a34a}@media(prefers-color-scheme:dark){.calendar-add-btn{background-color:#374151;border-color:#4b5563;color:#9ca3af}.calendar-add-btn:hover{background-color:#16a34a;color:#fff;border-color:#16a34a}}.calendar-day-name{font-size:.75rem;font-weight:600;color:#111827;padding-right:1.75rem;display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}@media(prefers-color-scheme:dark){.calendar-day-name{color:#f9fafb}}.calendar-day-holiday-indicator{font-size:.95rem;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.calendar-day-total{font-size:.6875rem;font-weight:600;color:#16a34a;background-color:#f0fdf4;padding:.125rem .375rem;border-radius:.25rem;text-align:center}@media(prefers-color-scheme:dark){.calendar-day-total{color:#4ade80;background-color:#1e3a5f}}.calendar-day-timers{padding:.375rem;display:flex;flex-direction:column;gap:.375rem;overflow-y:auto;flex:1;min-width:0}.calendar-timer{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.25rem;padding:.375rem;transition:all .2s;position:relative;display:flex;justify-content:space-between;gap:.375rem}.calendar-timer:hover{background-color:#f3f4f6;border-color:#d1d5db;box-shadow:0 1px 3px #0000001a}@media(prefers-color-scheme:dark){.calendar-timer{background-color:#111827;border-color:#374151}.calendar-timer:hover{background-color:#1f2937;border-color:#4b5563;box-shadow:0 1px 3px #0000004d}}.calendar-timer.ticket-card{display:grid;grid-template-columns:.25rem minmax(0,1fr);grid-template-areas:"accent main" "accent side";align-items:stretch;justify-content:stretch;gap:.25rem .5rem;border-left-width:1px;padding:.35rem .4rem}.calendar-timer.ticket-card:hover{box-shadow:0 1px 3px #0000001a}@media(max-width:1024px){.calendar-day{min-height:120px}.calendar-day-name{font-size:.6875rem}}@media(max-width:768px){.calendar-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.375rem}.calendar-day{min-height:100px}.calendar-day-header{padding:.25rem}.calendar-day-name{font-size:.625rem}.calendar-timer.ticket-card{padding:.25rem}}@media(max-width:900px){.dashboard{--dashboard-horizontal-padding: 1rem}.timer-bar{padding:1rem 1rem .5rem}.timer-bar-content{align-items:stretch}.task-input-wrapper,.timer-controls{flex-basis:100%}.timer-controls{flex-wrap:wrap;justify-content:space-between}.view-header{align-items:stretch}.view-toggle{margin-left:0;width:100%;justify-content:space-between}}@media(max-width:640px){.dashboard{--dashboard-horizontal-padding: 1rem}.content-area{padding:1rem var(--dashboard-horizontal-padding)}.calendar-title{font-size:1rem}.week-nav{width:100%;justify-content:space-between}.calendar-nav-btn{flex:1 1 3rem;padding:.5rem .75rem}.calendar-nav-btn.today-btn{flex:1 1 5rem}}.timesheet-view{background-color:#fff;border-radius:.5rem;padding:0;box-shadow:0 1px 3px #0000001a}.timesheet-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden}.timesheet-table th,.timesheet-table td{padding:1rem;text-align:right;border-bottom:1px solid #e5e7eb;vertical-align:middle}.timesheet-table th{background-color:#f9fafb;font-weight:600;color:#374151;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;text-align:right;white-space:nowrap;position:sticky;top:0;z-index:10}.timesheet-table th:first-child,.timesheet-table td:first-child{text-align:left!important;padding-left:1.25rem}.timesheet-table th:last-child,.timesheet-table td:last-child{padding-right:1.25rem;font-weight:600}.timesheet-table tbody tr:last-child td{border-bottom:none}.timesheet-table tr:hover{background-color:#f9fafb}.timesheet-hours{text-align:right;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:500;font-size:.875rem;color:#374151;padding-right:1.5rem}.timesheet-total{text-align:right;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:700;font-size:.875rem;color:#111827}.timesheet-totals-row{border-top:2px solid #d1d5db;background-color:#f9fafb;font-weight:600}.timesheet-totals-row td{padding-top:1rem;padding-bottom:1rem;color:#111827}.timesheet-totals-row:hover{background-color:#f9fafb!important}.timesheet-grand-total{background-color:#f0fdf4;border-left:3px solid #16a34a;color:#166534;font-weight:700}.timesheet-project{font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:.375rem;border:1px solid;display:inline-block;width:fit-content;letter-spacing:.025em}.timesheet-draggable-row{cursor:move;transition:background-color .15s ease}.timesheet-draggable-row:active{cursor:grabbing}.timesheet-draggable-row:hover{background-color:#f3f4f6!important}.timesheet-draggable-row.dragging{opacity:.4}.timesheet-draggable-row.drag-over-above{border-top:3px solid #16a34a;background-color:#f0fdf4!important}.timesheet-draggable-row.drag-over-below{border-bottom:3px solid #16a34a;background-color:#f0fdf4!important}@media(prefers-color-scheme:dark){.timesheet-view{background-color:#1f2937}.timesheet-table{border-color:#374151}.timesheet-table th{background-color:#374151;color:#e5e7eb;border-color:#4b5563}.timesheet-table td{color:#e5e7eb;border-color:#374151}.timesheet-hours{color:#d1d5db}.timesheet-total{color:#f3f4f6}.timesheet-table tr:hover{background-color:#374151}.timesheet-draggable-row:hover{background-color:#374151!important}.timesheet-draggable-row.drag-over-above{border-top:3px solid #4ade80;background-color:#1e3a5f!important}.timesheet-draggable-row.drag-over-below{border-bottom:3px solid #4ade80;background-color:#1e3a5f!important}.timesheet-totals-row{background-color:#374151;border-top-color:#6b7280}.timesheet-totals-row td{color:#f3f4f6}.timesheet-totals-row:hover{background-color:#374151!important}.timesheet-grand-total{background-color:#1e3a8a;border-left-color:#4ade80;color:#86efac}}@media(max-width:768px){.timesheet-header{flex-direction:column;gap:1rem;align-items:flex-start}.timesheet-table{font-size:.75rem}.timesheet-table th,.timesheet-table td{padding:.5rem .25rem}.timesheet-view{padding:1rem}.timesheet-week-range{font-size:.875rem}}.dashboard{background:radial-gradient(circle at top left,rgba(255,232,199,.65),transparent 24%),linear-gradient(180deg,#fffaf2d6,#f4f0e9f5)}.timer-bar{background:transparent;padding-top:1.25rem}.content-area{width:min(1280px,100%)}.task-input{border-radius:1.1rem;border-color:#1720331a;background:#ffffffe0;box-shadow:0 16px 38px #17203314;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.task-input:focus{border-color:#2f5ec46b;box-shadow:0 16px 40px #1720331f,0 0 0 4px #2f5ec41f}.search-suggestions{border-radius:1rem;border-color:#17203314;background:#fffdf8f5;box-shadow:0 22px 48px #17203324;overflow:hidden}.search-suggestion-item{width:100%;border:0;border-bottom:1px solid rgba(23,32,51,.08);background:transparent;transition:background-color .18s ease,color .18s ease}.search-suggestion-item:hover,.search-suggestion-item:focus-visible{background:#2f5ec414}.timer-display{border:0;background:transparent;padding:.35rem .5rem;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.timer-display:disabled{opacity:1}.timer-display.clickable{border-radius:.9rem;transition:color .2s ease,background-color .2s ease}.timer-display.clickable:hover{background:#2f5ec414}.timer-btn,.project-btn{border-radius:1rem;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease}.timer-btn:hover,.project-btn:hover{transform:translateY(-1px);box-shadow:0 14px 32px #17203324}.project-btn{background:#ffffffe0;border-color:#1720331a;color:#22304d}.project-name{min-width:0}.content-area{padding-top:1rem}.modal-overlay{overscroll-behavior:contain}@media(prefers-reduced-motion:reduce){.task-input,.search-suggestion-item,.timer-display.clickable,.timer-btn,.project-btn{transition:none}}@media(prefers-color-scheme:dark){.dashboard{background:radial-gradient(circle at top left,rgba(22,101,52,.22),transparent 28%),linear-gradient(180deg,#080f1dfa,#0f172a)}.task-input{background:#0f172ae0;border-color:#94a3b82e;box-shadow:0 20px 48px #02061752}.search-suggestions{background:#0f172af5;border-color:#94a3b829;box-shadow:0 22px 48px #0206176b}.search-suggestion-item{border-bottom-color:#94a3b81f}.search-suggestion-item:hover,.search-suggestion-item:focus-visible{background:#86efac1f}.timer-display.clickable:hover{background:#86efac1a}.project-btn{background:#0f172ae0;border-color:#94a3b82e;color:#e2e8f0}.timer-btn:hover,.project-btn:hover{box-shadow:0 14px 32px #02061757}}.projects-page{min-height:100vh;background-color:#f9fafb;display:flex;flex-direction:column}@media(prefers-color-scheme:dark){.projects-page{background-color:#111827}}.projects-content{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.section{background-color:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:2rem;margin-bottom:2rem}@media(prefers-color-scheme:dark){.section{background-color:#1f2937}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header-actions{display:flex;align-items:center;gap:.75rem}.section-header h2{font-size:1.5rem;font-weight:600;color:#111827;margin:0}@media(prefers-color-scheme:dark){.section-header h2{color:#f9fafb}}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background-color:#16a34a;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:#15803d}.btn-secondary{padding:.625rem 1rem;background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background-color:#f9fafb;border-color:#9ca3af}@media(prefers-color-scheme:dark){.btn-secondary{background-color:#374151;color:#f9fafb;border-color:#4b5563}.btn-secondary:hover{background-color:#4b5563;border-color:#6b7280}}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:.5rem;background-color:transparent;color:#6b7280;border:none;border-radius:.375rem;cursor:pointer;transition:all .2s}.btn-icon:hover{background-color:#f3f4f6;color:#111827}.btn-icon.btn-danger:hover{background-color:#fee2e2;color:#dc2626}.btn-icon.btn-warning:hover{background-color:#fef3c7;color:#d97706}.btn-icon.btn-success:hover{background-color:#dcfce7;color:#16a34a}@media(prefers-color-scheme:dark){.btn-icon{color:#9ca3af}.btn-icon:hover{background-color:#374151;color:#f9fafb}.btn-icon.btn-danger:hover{background-color:#7f1d1d;color:#fca5a5}.btn-icon.btn-warning:hover{background-color:#78350f;color:#fbbf24}.btn-icon.btn-success:hover{background-color:#14532d;color:#86efac}}.view-toggle{display:inline-flex;align-items:center;padding:.25rem;background-color:#f3f4f6;border-radius:.5rem;gap:.25rem}.view-toggle-btn{padding:.5rem .75rem;border:none;border-radius:.375rem;background:transparent;color:#4b5563;cursor:pointer;transition:all .2s ease}.view-toggle-btn.active{background-color:#fff;color:#111827;box-shadow:0 1px 2px #0f172a1f}.table-container{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.data-table th{padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr{border-bottom:1px solid #e5e7eb}.data-table tbody tr:hover{background-color:#f9fafb}.data-table tbody tr.draggable-row{cursor:move;transition:background-color .15s ease}.data-table tbody tr.draggable-row:active{cursor:grabbing}.data-table tbody tr.draggable-row.dragging{opacity:.4}.data-table tbody tr.draggable-row.drag-over-above{border-top:3px solid #16a34a;background-color:#f0fdf4!important}.data-table tbody tr.draggable-row.drag-over-below{border-bottom:3px solid #16a34a;background-color:#f0fdf4!important}.data-table td{padding:1rem;color:#111827}.code-cell{font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:.875rem;color:#16a34a;font-weight:500}.actions-column{width:176px;text-align:right}.actions-cell{text-align:right}.actions-group{display:inline-flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:120px}@media(prefers-color-scheme:dark){.data-table thead{background-color:#374151;border-bottom-color:#4b5563}.data-table th{color:#d1d5db}.data-table tbody tr{border-bottom-color:#374151}.data-table tbody tr:hover{background-color:#374151}.data-table tbody tr.draggable-row.drag-over-above{border-top:3px solid #4ade80;background-color:#1e3a5f!important}.data-table tbody tr.draggable-row.drag-over-below{border-bottom:3px solid #4ade80;background-color:#1e3a5f!important}.data-table td{color:#f9fafb}.code-cell{color:#4ade80}.view-toggle{background-color:#111827}.view-toggle-btn{color:#9ca3af}.view-toggle-btn.active{background-color:#374151;color:#f9fafb;box-shadow:none}}.empty-state{text-align:center;padding:3rem;color:#6b7280}.empty-state p{font-size:1rem;margin:0}@media(prefers-color-scheme:dark){.empty-state{color:#9ca3af}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:.5rem;padding:2rem;width:90%;max-width:500px;box-shadow:0 20px 25px -5px #0000001a}@media(prefers-color-scheme:dark){.modal-overlay{background-color:#000000bf}.modal-content{background-color:#1f2937}}.modal-content h3{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 1.5rem}@media(prefers-color-scheme:dark){.modal-content h3{color:#f9fafb}}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.625rem .75rem;font-size:.875rem;color:#111827;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;transition:all .2s}.form-group textarea{resize:vertical;min-height:80px;font-family:inherit;line-height:1.5}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}@media(prefers-color-scheme:dark){.form-group label{color:#d1d5db}.form-group input,.form-group select,.form-group textarea{background-color:#374151;border-color:#4b5563;color:#f9fafb}.form-group input:focus,.form-group select:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a33}}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:2rem}.modal-warning{margin:0 0 1rem;padding:.875rem 1rem;border:1px solid #fca5a5;border-radius:.5rem;background-color:#fef2f2;color:#b91c1c;font-size:.95rem;line-height:1.5}.confirm-modal{max-width:440px}.confirm-modal-copy{color:#374151;line-height:1.6;margin:0}.confirm-modal-details{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding:.875rem;border:1px solid #e5e7eb;border-radius:.5rem;color:#6b7280;background-color:#f9fafb}.btn-confirm-danger{background-color:#ef4444}.btn-confirm-danger:hover:not(:disabled){background-color:#dc2626}.btn-confirm-warning{background-color:#d97706}.btn-confirm-warning:hover:not(:disabled){background-color:#b45309}.btn-primary:disabled,.btn-secondary:disabled{cursor:not-allowed;opacity:.65}@media(prefers-color-scheme:dark){.modal-warning{background-color:#7f1d1d47;border-color:#991b1b;color:#fecaca}.confirm-modal-copy{color:#d1d5db}.confirm-modal-details{background-color:#111827;border-color:#374151;color:#9ca3af}}@media(max-width:768px){.projects-content{padding:1rem}.section{padding:1.5rem 1rem}.section-header{flex-direction:column;align-items:flex-start;gap:1rem}.section-header-actions{width:100%;flex-direction:column;align-items:stretch}.section-header h2{font-size:1.25rem}.view-toggle{width:100%}.view-toggle-btn{flex:1}.btn-primary{width:100%;justify-content:center}.data-table th,.data-table td{padding:.75rem .5rem;font-size:.875rem}.data-table th{font-size:.7rem}.modal-content{width:95%;padding:1.5rem}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}.confirm-modal-actions{flex-direction:row}.confirm-modal-actions button{width:auto}}.support-page{min-height:100vh;background:radial-gradient(circle at top left,rgba(255,237,208,.72),transparent 24%),linear-gradient(180deg,#f7f3ea,#eef2f6)}.support-shell{width:min(960px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 4rem}.support-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:end;padding:2rem;border-radius:2rem;border:1px solid rgba(23,32,51,.08);background:#fffdf8e0;box-shadow:0 24px 72px #1c23351a}.support-eyebrow{margin:0 0 .85rem;font-size:.82rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#5e6f86}.support-hero h1{margin:0;font-size:clamp(2.4rem,5vw,4rem);line-height:.98;letter-spacing:-.06em;text-wrap:balance}.support-intro{margin:1rem 0 0;max-width:40rem;color:var(--text-muted);line-height:1.7}.support-primary-link{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:3.25rem;padding:.9rem 1.25rem;border-radius:var(--button-radius);text-decoration:none;font-weight:700;background:var(--button-bg);color:#fff;box-shadow:0 14px 30px #16a34a33}.support-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.5rem}.support-card{display:grid;align-content:start;gap:.9rem;padding:1.5rem;border-radius:1.6rem;border:1px solid rgba(23,32,51,.08);background:#ffffffbd}.support-card h2{margin:0;font-size:1.15rem}.support-card p,.support-card li{color:var(--text-muted);line-height:1.65}.support-card ul{margin:0;padding-left:1.1rem}.support-card a{font-weight:700;color:var(--accent-strong);text-decoration:none}@media(prefers-color-scheme:dark){.support-page{background:radial-gradient(circle at top left,rgba(78,115,171,.16),transparent 24%),linear-gradient(180deg,#0f172a,#111827)}.support-hero{border-color:#94a3b829;background:#0f172ac7;box-shadow:0 24px 72px #02061757}.support-eyebrow{color:#9fb5d8}.support-hero h1,.support-card h2,.support-card svg{color:#f8fafc}.support-intro,.support-card p,.support-card li{color:#cbd5e1}.support-card{border-color:#94a3b829;background:#0f172aa3}.support-card a{color:#86efac}}@media(max-width:860px){.support-hero,.support-grid{grid-template-columns:1fr}}@media(max-width:640px){.support-shell{width:min(100%,calc(100% - 1.5rem));padding-top:1.5rem}.support-hero,.support-card{padding:1.25rem}}:root{color-scheme:light;--background: oklch(.9777 .0041 301.4256);--foreground: oklch(.3651 .0325 287.0807);--card: oklch(1 0 0);--card-foreground: oklch(.3651 .0325 287.0807);--popover: oklch(1 0 0);--popover-foreground: oklch(.3651 .0325 287.0807);--primary: oklch(.627 .154 145.3);--primary-foreground: oklch(.9777 .0041 301.4256);--secondary: oklch(.8957 .0265 300.2416);--secondary-foreground: oklch(.3651 .0325 287.0807);--muted: oklch(.8906 .0139 299.7754);--muted-foreground: oklch(.5288 .0375 290.7895);--accent: oklch(.906 .08 145);--accent-foreground: oklch(.315 .09 150);--destructive: oklch(.6332 .1578 22.6734);--destructive-foreground: oklch(.9777 .0041 301.4256);--border: oklch(.8447 .0226 300.1421);--input: oklch(.9329 .0124 301.2783);--ring: oklch(.627 .154 145.3);--chart-1: oklch(.627 .154 145.3);--chart-2: oklch(.906 .08 145);--chart-3: oklch(.7321 .0749 169.867);--chart-4: oklch(.854 .0882 76.8292);--chart-5: oklch(.7857 .0645 258.0839);--sidebar: oklch(.9554 .0082 301.3541);--sidebar-foreground: oklch(.3651 .0325 287.0807);--sidebar-primary: oklch(.627 .154 145.3);--sidebar-primary-foreground: oklch(.9777 .0041 301.4256);--sidebar-accent: oklch(.906 .08 145);--sidebar-accent-foreground: oklch(.315 .09 150);--sidebar-border: oklch(.8719 .0198 302.169);--sidebar-ring: oklch(.627 .154 145.3);--font-sans: Geist, "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif;--font-serif: "Lora", Georgia, serif;--font-mono: "Fira Code", "Courier New", monospace;--radius: .375rem;--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) + 4px);--shadow-2xs: 1px 2px 5px 1px hsl(0 0% 0% / .03);--shadow-xs: 1px 2px 5px 1px hsl(0 0% 0% / .03);--shadow-sm: 1px 2px 5px 1px hsl(0 0% 0% / .06), 1px 1px 2px 0px hsl(0 0% 0% / .06);--shadow: 1px 2px 5px 1px hsl(0 0% 0% / .06), 1px 1px 2px 0px hsl(0 0% 0% / .06);--shadow-md: 1px 2px 5px 1px hsl(0 0% 0% / .06), 1px 2px 4px 0px hsl(0 0% 0% / .06);--shadow-lg: 1px 2px 5px 1px hsl(0 0% 0% / .06), 1px 4px 6px 0px hsl(0 0% 0% / .06);--shadow-xl: 1px 2px 5px 1px hsl(0 0% 0% / .06), 1px 8px 10px 0px hsl(0 0% 0% / .06);--shadow-2xl: 1px 2px 5px 1px hsl(0 0% 0% / .15);--app-bg: var(--background);--surface: color-mix(in oklch, var(--card), var(--background) 12%);--surface-strong: var(--card);--surface-muted: color-mix(in oklch, var(--muted), white 30%);--text: var(--foreground);--text-muted: var(--muted-foreground);--accent-strong: var(--primary);--accent-soft: color-mix(in oklch, var(--primary), white 84%);--focus-ring: 0 0 0 3px color-mix(in oklch, var(--ring), transparent 72%);--danger: var(--destructive);--button-bg: #216e5f;--button-bg-hover: #1a5a4e;--button-border: #216e5f;--button-radius: 4px;--alert-error-bg: #fef2f2;--alert-error-border: #fca5a5;--alert-error-text: #991b1b;--alert-warning-bg: #fffbeb;--alert-warning-border: #fcd34d;--alert-warning-text: #92400e}.dark{color-scheme:dark;--background: oklch(.2166 .0215 292.8474);--foreground: oklch(.9053 .0245 293.557);--card: oklch(.2544 .0301 292.7315);--card-foreground: oklch(.9053 .0245 293.557);--popover: oklch(.2544 .0301 292.7315);--popover-foreground: oklch(.9053 .0245 293.557);--primary: oklch(.755 .15 145);--primary-foreground: oklch(.2166 .0215 292.8474);--secondary: oklch(.4604 .0472 295.5578);--secondary-foreground: oklch(.9053 .0245 293.557);--muted: oklch(.256 .032 294.838);--muted-foreground: oklch(.6974 .0282 300.0614);--accent: oklch(.325 .065 150);--accent-foreground: oklch(.91 .08 145);--destructive: oklch(.6875 .142 21.4566);--destructive-foreground: oklch(.2166 .0215 292.8474);--border: oklch(.3063 .0359 293.3367);--input: oklch(.2847 .0346 291.2726);--ring: oklch(.755 .15 145);--chart-1: oklch(.755 .15 145);--chart-2: oklch(.91 .08 145);--chart-3: oklch(.7321 .0749 169.867);--chart-4: oklch(.854 .0882 76.8292);--chart-5: oklch(.7857 .0645 258.0839);--sidebar: oklch(.1985 .02 293.6639);--sidebar-foreground: oklch(.9053 .0245 293.557);--sidebar-primary: oklch(.755 .15 145);--sidebar-primary-foreground: oklch(.2166 .0215 292.8474);--sidebar-accent: oklch(.325 .065 150);--sidebar-accent-foreground: oklch(.91 .08 145);--sidebar-border: oklch(.2847 .0346 291.2726);--sidebar-ring: oklch(.755 .15 145);--button-bg: #216e5f;--button-bg-hover: #1a5a4e;--button-border: #216e5f;--alert-error-bg: rgba(127, 29, 29, .28);--alert-error-border: #991b1b;--alert-error-text: #fecaca;--alert-warning-bg: rgba(120, 53, 15, .28);--alert-warning-border: #d97706;--alert-warning-text: #fde68a}*{box-sizing:border-box}html{min-height:100%;background:radial-gradient(circle at top left,color-mix(in oklch,var(--secondary),transparent 18%),transparent 32%),radial-gradient(circle at top right,color-mix(in oklch,var(--accent),transparent 42%),transparent 28%),linear-gradient(180deg,var(--background) 0%,color-mix(in oklch,var(--background),var(--secondary) 44%) 100%);scroll-behavior:smooth}body{min-height:100%}.App{min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.skip-link{position:absolute;top:0;left:1rem;transform:translateY(-140%);padding:.85rem 1rem;border-radius:var(--radius-md);background:var(--surface-strong);color:var(--text);text-decoration:none;box-shadow:var(--shadow-lg);z-index:200}.skip-link:focus-visible{transform:translateY(1rem)}.environment-badge{position:fixed;top:1rem;right:1rem;z-index:150;pointer-events:none;padding:.35rem .65rem;border:1px solid rgba(18,60,134,.18);border-radius:var(--button-radius);background:#fffdf8e6;color:var(--accent-strong);box-shadow:0 10px 24px #1c23351f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-loading,.loading-state{display:grid;place-items:center;min-height:40vh;padding:2rem;color:var(--text-muted);text-align:center}.loading-state{gap:1rem}.loading-spinner{width:1.25rem;height:1.25rem;border:2px solid rgba(84,97,121,.22);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-container,.error-boundary{min-height:100vh;display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at 15% 20%,rgba(255,231,194,.92),transparent 24%),radial-gradient(circle at 80% 0%,rgba(185,225,255,.7),transparent 24%),linear-gradient(145deg,#f4ede0,#e9f1fb 52%,#eef5ef)}.login-box,.error-boundary-content{width:min(100%,460px);padding:2.5rem;border-radius:1.75rem;border:1px solid var(--border);background:linear-gradient(180deg,#ffffffeb,#fffcf7d6);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-box .app-name,.error-boundary-content h1{margin:0;line-height:1;text-wrap:balance}.login-box .app-name{font-size:clamp(2.4rem,8vw,3.75rem);font-weight:800;letter-spacing:-.06em;color:var(--accent-strong)}.app-tagline{margin-top:.85rem;color:var(--text-muted);font-size:1rem}.login-section{display:grid;gap:.9rem;margin-top:2rem}.google-oauth-btn,.btn-primary,.retry-btn{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:3.25rem;padding:.9rem 1.25rem;border-radius:var(--button-radius);border:1px solid rgba(18,60,134,.12);background:var(--button-bg);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.google-oauth-btn:hover,.btn-primary:hover,.retry-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px #216e5f33;filter:saturate(1.05)}.App .google-oauth-btn,.App .retry-btn,.App .btn-primary,.App .btn-save,.App .btn-submit,.App .btn-print,.App .btn-download-pdf,.App .btn-save-details,.App .btn-save-draft,.App .btn-save-final,.App .btn-new-invoice,.App .create-invoice-btn,.App .add-receipt-btn,.App .save-button,.App .toggle-workdays-button,.App .subscription-primary-btn,.App .stripe-checkout-button,.App .notes-primary-btn,.App .support-primary-link,.App .primary-action,.App .timer-btn-start,.App .calendar-add-btn{border-radius:var(--button-radius)!important;border-color:var(--button-border)!important;background:var(--button-bg)!important;color:#fff!important}.App .google-oauth-btn:hover,.App .retry-btn:hover,.App .btn-primary:hover,.App .btn-save:hover,.App .btn-submit:hover,.App .btn-print:hover,.App .btn-download-pdf:hover,.App .btn-save-details:hover,.App .btn-save-draft:hover,.App .btn-save-final:hover,.App .btn-new-invoice:hover,.App .create-invoice-btn:hover,.App .add-receipt-btn:hover,.App .save-button:hover,.App .toggle-workdays-button:hover,.App .subscription-primary-btn:hover,.App .stripe-checkout-button:hover,.App .notes-primary-btn:hover,.App .support-primary-link:hover,.App .primary-action:hover,.App .timer-btn-start:hover,.App .calendar-add-btn:hover{background:var(--button-bg-hover)!important;border-color:var(--button-bg-hover)!important}.App .error-message,.App .form-error,.App .table-error,.App .modal-error,.App .save-error,.App .todos-error,.App .subscription-error,.App .stripe-checkout-error,.App .notes-message.error,.App .current-timer-error{border:1px solid var(--alert-error-border)!important;border-radius:var(--button-radius)!important;background:var(--alert-error-bg)!important;color:var(--alert-error-text)!important}.App .modal-warning,.App .gst-warning,.App .landing-warning{border:1px solid var(--alert-warning-border)!important;border-radius:var(--button-radius)!important;background:var(--alert-warning-bg)!important;color:var(--alert-warning-text)!important}.oauth-description,.fallback-description{margin:0;color:var(--text-muted);font-size:.875rem;line-height:1.5}.auth-status{display:grid;gap:.75rem;text-align:center}.auth-status.success{color:#156f51}.auth-status.error{color:var(--danger)}.error-message{margin-top:.5rem;padding:.9rem 1rem;border-radius:1rem;background:#b4231814;color:#8a1f17;border:1px solid rgba(180,35,24,.14)}.error-boundary-content{width:min(100%,640px);text-align:center}.error-boundary-content h1{font-size:clamp(2rem,6vw,3rem);color:var(--danger)}.error-boundary-content .error-message{margin-top:1rem}.error-details{margin-top:1.5rem;padding:1rem;border-radius:1rem;border:1px solid var(--border);background:var(--surface-muted);text-align:left}.error-details summary{cursor:pointer;font-weight:700;color:var(--text)}.error-stack{margin-top:1rem;padding:1rem;border-radius:1rem;background:#172033;color:#f0fdf4;overflow:auto;font-size:.875rem;white-space:pre-wrap}.error-actions{margin-top:1.75rem}:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.loading-spinner,.google-oauth-btn,.btn-primary,.retry-btn{animation:none;transition:none}}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--app-bg: #0f172a;--surface: rgba(15, 23, 42, .82);--surface-strong: #111c31;--surface-muted: rgba(15, 23, 42, .72);--text: #f0fdf4;--text-muted: #b6c2d3;--accent: #86efac;--accent-strong: #c7f1ff;--accent-soft: rgba(134, 239, 172, .2);--border: rgba(148, 163, 184, .16);--focus-ring: 0 0 0 3px rgba(134, 239, 172, .24);--shadow-lg: 0 24px 80px rgba(2, 6, 23, .46)}html{background:radial-gradient(circle at top left,rgba(27,78,134,.42),transparent 28%),radial-gradient(circle at top right,rgba(28,124,115,.35),transparent 24%),linear-gradient(180deg,#09111f,#0f172a)}.login-container,.error-boundary{background:radial-gradient(circle at 15% 20%,rgba(32,91,172,.24),transparent 24%),radial-gradient(circle at 85% 0%,rgba(32,166,151,.22),transparent 24%),linear-gradient(145deg,#0b1220,#101b2f 52%,#102225)}.login-box,.error-boundary-content{background:linear-gradient(180deg,#0f172aeb,#111827d1)}.error-message{color:#fecaca;background:#b4231829;border-color:#fca5a529}.error-stack{background:#020617}}@media(max-width:640px){.login-container,.error-boundary{padding:1rem}.login-box,.error-boundary-content{padding:1.5rem}}
