@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:var(--font-geist-sans);--font-mono:var(--font-geist-mono);--spacing:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#faf8f5;--color-surface:#fff;--color-surface-alt:#fff9f2;--color-border:#eae4da;--color-text:#1c1916;--color-muted:#78716a;--color-primary:#2d6a61;--color-primary-dark:#1e4f48;--color-primary-soft:#eef7f5;--color-accent:#d4930e;--color-accent-soft:#fef7e4;--color-success:#3a9268;--color-danger:#c24e4a;--color-warning:#b8790e}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.start{inset-inline-start:var(--spacing)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-14{gap:calc(var(--spacing) * 14)}.gap-16{gap:calc(var(--spacing) * 16)}.gap-20{gap:calc(var(--spacing) * 20)}.gap-24{gap:calc(var(--spacing) * 24)}.gap-28{gap:calc(var(--spacing) * 28)}.border{border-style:var(--tw-border-style);border-width:1px}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:26px;--shadow-sm:0 1px 3px #1c191612;--shadow-md:0 4px 16px #1c191614;--shadow-lg:0 8px 32px #1c19161a;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}:root,:root[data-tone=sunrise]{--color-bg:#f7f3ef;--color-surface:#fff;--color-surface-alt:#fff7ec;--color-border:#e7dcd2;--color-text:#201a17;--color-muted:#746a61;--color-primary:#5b5fe8;--color-primary-dark:#4247c7;--color-primary-soft:#eceeff;--color-accent:#d97745;--color-accent-soft:#fff1e7;--color-success:#28866f;--color-danger:#c24e4a;--color-warning:#b8790e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-tone=ocean]{--color-bg:#f2f7fa;--color-surface-alt:#eaf6ff;--color-border:#d5e2ea;--color-primary:#2374ab;--color-primary-dark:#155e8d;--color-primary-soft:#e4f2fb;--color-accent:#c77d33;--color-accent-soft:#fff1dd}:root[data-tone=classic]{--color-bg:#f7f5f2;--color-surface-alt:#fdf9f4;--color-border:#e5ded6;--color-primary:#6f5bd8;--color-primary-dark:#5642b7;--color-primary-soft:#f0edff;--color-accent:#c88a22;--color-accent-soft:#fff5da}:root[data-tone=mono]{--color-bg:#f5f5f4;--color-surface-alt:#fafafa;--color-border:#d9d9d6;--color-primary:#30343f;--color-primary-dark:#161a22;--color-primary-soft:#eceeef;--color-accent:#a0673d;--color-accent-soft:#f6eee7}:root[data-theme=dark]{--color-bg:#151517;--color-surface:#202126;--color-surface-alt:#282931;--color-border:#343640;--color-text:#f4f1eb;--color-muted:#aaa59c;--color-primary-soft:#233032}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--color-primary-soft:color-mix(in srgb, var(--color-primary) 20%, #202126)}}:root[data-theme=dark]{--color-accent-soft:#403622}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--color-accent-soft:color-mix(in srgb, var(--color-accent) 18%, #202126)}}:root[data-theme=dark]{--shadow-sm:0 1px 3px #00000047;--shadow-md:0 8px 24px #00000042;--shadow-lg:0 16px 40px #00000052;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--color-bg);scroll-behavior:smooth;scrollbar-gutter:stable;height:100%}body{background:var(--color-bg);min-height:100%;color:var(--color-text);font-family:var(--font-sans,system-ui, sans-serif);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-moz-text-size-adjust:100%;text-size-adjust:100%;margin:0;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.app-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}@media (min-width:1180px){.app-shell{grid-template-columns:280px minmax(0,1fr)}}@media (max-width:900px){.app-shell{grid-template-columns:1fr}}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);z-index:30;flex-direction:column;width:248px;height:100vh;display:flex;position:fixed;top:0;left:0;overflow-y:auto}@media (min-width:1180px){.sidebar{width:280px}}.sidebar-brand{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:20px 16px 14px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));border-radius:12px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 10px 22px #2d6a613d}@supports (color:color-mix(in lab, red, red)){.brand-mark{box-shadow:0 10px 22px color-mix(in srgb, var(--color-primary) 24%, transparent)}}.brand-mark span,.brand-mark:before,.brand-mark:after{content:"";background:#ffffffe6;border-radius:3px 3px 1px 1px;display:block}.brand-mark{grid-template-columns:repeat(3,5px);align-items:end;gap:3px;padding-bottom:10px}.brand-mark span{width:5px;height:14px}.brand-mark:before{width:5px;height:9px}.brand-mark:after{width:5px;height:19px}.brand-mark-lg{border-radius:16px;grid-template-columns:repeat(3,7px);gap:4px;width:56px;height:56px;padding-bottom:14px}.brand-mark-lg span,.brand-mark-lg:before,.brand-mark-lg:after{width:7px}.brand-mark-lg span{height:20px}.brand-mark-lg:before{height:13px}.brand-mark-lg:after{height:28px}.sidebar-brand strong{font-size:.9rem;font-weight:900;display:block}.sidebar-brand span{color:var(--color-muted);font-size:.7rem}.sidebar-nav{flex:1;padding:10px 8px}.nav-group-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.07em;padding:12px 10px 4px;font-size:.7rem;font-weight:800}.nav-link{border-radius:var(--r-md);color:var(--color-muted);cursor:pointer;align-items:center;gap:10px;padding:9px 10px;font-size:.875rem;font-weight:600;transition:background .1s,color .1s;display:flex}.nav-link:hover{background:var(--color-bg);color:var(--color-text);transform:translate(2px)}.nav-link.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.nav-link-icon{text-align:center;flex-shrink:0;width:20px;font-size:1rem;line-height:1}.sidebar-footer{border-top:1px solid var(--color-border);padding:12px 14px}.sidebar-user{border-radius:var(--r-md);cursor:pointer;align-items:center;gap:10px;padding:8px;transition:background .1s;display:flex}.sidebar-user:hover{background:var(--color-bg)}.sidebar-user-name{color:var(--color-text);font-size:.82rem;font-weight:800}.sidebar-user-meta{color:var(--color-muted);font-size:.72rem}.sidebar-logout{border:1px solid var(--color-border);color:var(--color-muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;padding:4px 9px;font-size:.68rem;transition:background .14s,color .14s,transform .14s}.sidebar-logout:hover{background:var(--color-bg);color:var(--color-text);transform:translateY(-1px)}.main-content{max-width:none;min-height:100vh;margin-left:248px;padding:24px 32px 56px}@media (min-width:1180px){.main-content{margin-left:280px}}@media (max-width:900px){.main-content{padding:16px 18px calc(84px + var(--safe-bottom));max-width:100%;margin-left:0}}.content-max{width:100%;max-width:1120px;margin:0 auto}.desktop-topbar{justify-content:flex-end;max-width:1120px;margin:0 auto 18px;display:flex}@media (max-width:900px){.desktop-topbar{display:none}}.mobile-nav{background:#fffffff0;display:none;position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.mobile-nav{background:color-mix(in srgb, var(--color-surface) 94%, transparent)}}.mobile-nav{border-top:1px solid var(--color-border);-webkit-backdrop-filter:blur(20px);z-index:30}.mobile-nav-grid{padding-bottom:var(--safe-bottom);grid-template-columns:repeat(5,1fr);display:grid}.mobile-nav-item{color:var(--color-muted);flex-direction:column;align-items:center;gap:3px;min-height:54px;padding:10px 2px 8px;font-size:.65rem;font-weight:700;text-decoration:none;transition:color .15s;display:flex;position:relative}.mobile-nav-item.active{color:var(--color-primary)}.mobile-nav-icon{border-radius:10px;place-items:center;width:40px;height:28px;font-size:1.35rem;line-height:1;transition:background .15s;display:grid}.mobile-nav-item.active .mobile-nav-icon{background:var(--color-primary-soft)}@media (max-width:900px){.sidebar{display:none}.mobile-nav{display:block}}.avatar{color:#3a2800;background:linear-gradient(135deg,#f5cc60,#d4930e);border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:.72rem;font-weight:900;display:grid}.btn{border-radius:var(--r-md);cursor:pointer;white-space:nowrap;touch-action:manipulation;border:none;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:0 18px;font-size:.9rem;font-weight:700;transition:background .12s,transform 80ms,box-shadow .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 8px 18px #2d6a613d}@supports (color:color-mix(in lab, red, red)){.btn-primary{box-shadow:0 8px 18px color-mix(in srgb, var(--color-primary) 24%, transparent)}}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px)}.btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:#f0ebe3}.btn-accent{background:var(--color-accent);color:#fff;box-shadow:0 2px 8px #d4930e33}.btn-accent:hover:not(:disabled){background:#bc8009}.btn-ghost{color:var(--color-muted);background:0 0;padding:0 10px}.btn-ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-bg)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#a83d39}.btn-lg{border-radius:var(--r-lg);min-height:52px;padding:0 24px;font-size:.97rem}.btn-sm{border-radius:var(--r-sm);min-height:36px;padding:0 12px;font-size:.8rem}.btn-full{width:100%}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);padding:20px}.card-sm{border-radius:var(--r-lg);padding:14px}.card-lg{border-radius:var(--r-2xl);padding:28px}.card-accent{background:var(--color-accent-soft);border-color:#d4930e59}.card-success{background:#ebf4f0;border-color:#3a92684d}@supports (color:color-mix(in lab, red, red)){.card-success{background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface))}}.card-warm{background:linear-gradient(135deg,#fffbf5,#fff9f0);border-color:#d4930e33}.badge{border-radius:999px;align-items:center;gap:3px;height:22px;padding:0 8px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-gray{background:var(--color-bg);color:var(--color-muted)}.badge-green{color:var(--color-success);background:#e6f5ed}.badge-amber{background:var(--color-accent-soft);color:var(--color-accent)}.badge-red{color:var(--color-danger);background:#faeaea}.badge-primary{background:var(--color-primary-soft);color:var(--color-primary)}.badge-partial{color:var(--color-warning);background:#fef3e4}.progress-track{background:var(--color-border);border-radius:999px;height:7px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--color-primary), #4a9b8a);border-radius:999px;height:100%;transition:width .4s}.progress-fill-accent{background:linear-gradient(90deg, var(--color-accent), #f0cc60)}.stat-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (max-width:640px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-lg);padding:16px}.stat-label{color:var(--color-muted);font-size:.75rem;font-weight:600}.stat-value{color:var(--color-text);margin:3px 0 2px;font-size:1.55rem;font-weight:900;line-height:1}.stat-detail{color:var(--color-muted);font-size:.72rem}.form-group{gap:5px;display:grid}.form-label{color:var(--color-text);font-size:.85rem;font-weight:700}.form-input,.form-select{border:1.5px solid var(--color-border);border-radius:var(--r-md);height:48px;color:var(--color-text);background:var(--color-surface);appearance:none;outline:none;width:100%;padding:0 13px;font-size:1rem;transition:border-color .12s}.form-input:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2d6a611a}.form-hint{color:var(--color-muted);font-size:.78rem}.form-error{color:var(--color-danger);font-size:.8rem;font-weight:600}.task-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-lg);padding:14px 16px;transition:box-shadow .12s}.task-item:hover{box-shadow:var(--shadow-md)}.task-item.completed{background:#f0fbf5;border-color:#b8e8ce}.task-item.partial{background:#fefaf0;border-color:#eedd9a}.task-item.recovery{background:#f3f1ff;border-color:#cec8f0}.timer-wrap{place-items:center;padding:36px 0;display:grid}.timer-ring{aspect-ratio:1;place-items:center;width:min(260px,68vw);display:grid;position:relative}.timer-ring svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.timer-digits{z-index:1;text-align:center;position:relative}.timer-display{z-index:1;text-align:center;font-variant-numeric:tabular-nums;color:var(--color-text);font-size:clamp(2.6rem,9vw,4rem);font-weight:900;line-height:1;position:relative}.timer-time{font-variant-numeric:tabular-nums;color:var(--color-text);font-size:clamp(2.6rem,9vw,4rem);font-weight:900;line-height:1}.timer-sub{color:var(--color-muted);margin-top:4px;font-size:.8rem;font-weight:600}.city-skyline{background:linear-gradient(180deg, var(--color-primary-soft) 0%, var(--color-primary-soft) 55%, var(--color-accent-soft) 55%);border-radius:var(--r-xl) var(--r-xl) 0 0;align-items:flex-end;gap:6px;min-height:110px;padding:18px 16px 0;display:flex}.city-ground{background:#f5e5c5}@supports (color:color-mix(in lab, red, red)){.city-ground{background:color-mix(in srgb, var(--color-accent) 24%, var(--color-surface))}}.city-ground{border-radius:0 0 var(--r-xl) var(--r-xl);height:18px}.building{border-radius:6px 6px 0 0;flex:1;min-height:38px;transition:height .5s}.building-home{background:linear-gradient(180deg, #f4e3c0, var(--color-accent))}@supports (color:color-mix(in lab, red, red)){.building-home{background:linear-gradient(180deg, color-mix(in srgb, var(--color-accent) 26%, white), var(--color-accent))}}.building-home{border:1px solid #e1c284}@supports (color:color-mix(in lab, red, red)){.building-home{border:1px solid color-mix(in srgb, var(--color-accent) 42%, var(--color-border))}}.building-biz{background:linear-gradient(#e2eae9,#b8ccc9)}@supports (color:color-mix(in lab, red, red)){.building-biz{background:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 14%, white), color-mix(in srgb, var(--color-primary) 34%, white))}}.building-biz{border:1px solid #aebdb3}@supports (color:color-mix(in lab, red, red)){.building-biz{border:1px solid color-mix(in srgb, var(--color-primary) 32%, var(--color-border))}}.building-empty{background:var(--color-border);opacity:.5}.mood-chips{flex-wrap:wrap;gap:8px;display:flex}.mood-chip{border:1.5px solid var(--color-border);background:var(--color-surface);min-height:44px;color:var(--color-text);cursor:pointer;touch-action:manipulation;border-radius:999px;padding:0 18px;font-size:.9rem;font-weight:600;transition:all .12s}.mood-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.mood-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.voucher-card{background:linear-gradient(135deg, #fffdf5, var(--color-accent-soft));border-radius:var(--r-lg);border:1.5px dashed #d4930e80;padding:16px}.voucher-code{font-family:var(--font-mono,monospace);color:var(--color-primary);background:var(--color-primary-soft);border-radius:var(--r-sm);letter-spacing:.07em;padding:3px 9px;font-size:.82rem;font-weight:800;display:inline-block}.gold{color:var(--color-accent);align-items:center;gap:4px;font-weight:800;display:inline-flex}.login-page{background:var(--color-bg);grid-template-columns:minmax(0,1fr) minmax(380px,460px);min-height:100vh;display:grid}.login-hero{background:linear-gradient(140deg, #201a17d6, #201a175c), radial-gradient(circle at 16% 18%, #d4930e6b, transparent 28%), linear-gradient(135deg, var(--color-primary) 0%, #252c66 58%, var(--color-accent) 130%);padding:clamp(32px,6vw,80px)}@supports (color:color-mix(in lab, red, red)){.login-hero{background:linear-gradient(140deg, #201a17d6, #201a175c), radial-gradient(circle at 16% 18%, color-mix(in srgb, var(--color-accent) 42%, transparent), transparent 28%), linear-gradient(135deg, var(--color-primary) 0%, #252c66 58%, var(--color-accent) 130%)}}.login-hero{color:#fff;flex-direction:column;justify-content:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-hero-top{justify-content:space-between;align-items:center;gap:18px;display:flex;position:absolute;top:clamp(24px,4vw,42px);left:clamp(24px,4vw,56px);right:clamp(24px,4vw,56px)}.login-hero-content{max-width:660px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#ffffffb8;margin:0 0 14px;font-size:.76rem;font-weight:900}.login-hero h1{max-width:720px;margin:0 0 18px;font-size:clamp(3rem,7vw,6.2rem);font-weight:900;line-height:1.05}.login-hero-copy{color:#ffffffd6;max-width:560px;margin:0 0 34px;font-size:1.05rem;line-height:1.75}.login-banner{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:18px;align-items:center;gap:18px;max-width:560px;padding:16px 18px;display:flex}.login-banner p{color:#ffffffdb;margin:0;font-size:.9rem;line-height:1.5}.mini-city{flex:none;align-items:end;gap:5px;width:78px;height:52px;display:flex}.mini-city span{background:#ffffffd6;border-radius:5px 5px 1px 1px;flex:1;animation:.62s both city-rise}.mini-city span:first-child{height:44%}.mini-city span:nth-child(2){height:72%;animation-delay:70ms}.mini-city span:nth-child(3){height:55%;animation-delay:.12s}.mini-city span:nth-child(4){height:90%;animation-delay:.17s}.login-form-panel{background:var(--color-surface);border-left:1px solid var(--color-border);flex-direction:column;display:flex}.login-mobile-header{display:none}.login-form-inner{flex-direction:column;flex:1;justify-content:center;padding:clamp(24px,4vw,56px);display:flex}@media (max-width:980px){.login-page{grid-template-columns:1fr}.login-hero{display:none}.login-form-panel{min-height:100svh;padding-bottom:max(24px, var(--safe-bottom));border-left:none}.login-mobile-header{padding:max(44px, calc(24px + var(--safe-top))) 24px 28px;background:linear-gradient(140deg, var(--color-primary) 0%, var(--color-primary-dark) 72%, var(--color-accent) 140%);color:#fff;flex-shrink:0;align-items:center;gap:14px;display:flex}.login-form-inner{flex:1;justify-content:flex-start;padding:28px 22px 8px}}.login-mobile-header p{color:#fff;margin:0;font-size:1.15rem;font-weight:900;line-height:1.2}.login-mobile-header span{color:#ffffffb8;margin-top:2px;font-size:.8rem;display:block}.login-form-inner h2{margin:0;font-size:1.65rem;font-weight:900}.login-form-inner h2+p,.demo-panel p,.login-note{color:var(--color-muted);margin:0;font-size:.875rem;line-height:1.55}.demo-panel{border:1.5px solid #e3c895}@supports (color:color-mix(in lab, red, red)){.demo-panel{border:1.5px solid color-mix(in srgb, var(--color-accent) 34%, var(--color-border))}}.demo-panel{border-radius:var(--r-lg);background:var(--color-accent-soft);padding:18px}.demo-panel span{color:var(--color-muted);font-size:.72rem}.divider-row{color:var(--color-muted);font-size:.8rem}.divider-row .divider{flex:1}.form-error-box{background:#f9eded}@supports (color:color-mix(in lab, red, red)){.form-error-box{background:color-mix(in srgb, var(--color-danger) 10%, var(--color-surface))}}.form-error-box{border:1px solid #dcb1a9}@supports (color:color-mix(in lab, red, red)){.form-error-box{border:1px solid color-mix(in srgb, var(--color-danger) 34%, var(--color-border))}}.form-error-box{border-radius:var(--r-md);padding:10px 14px}.form-error-box p{margin:0}.mobile-only{display:none}@media (max-width:980px){.mobile-only{display:block}}.page-header{margin-bottom:22px}.page-title{margin:0 0 4px;font-size:clamp(1.45rem,3vw,2rem);font-weight:900;line-height:1.1}.page-subtitle{color:var(--color-muted);margin:0;font-size:.875rem}.section-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.07em;margin:0 0 10px;font-size:.72rem;font-weight:800}.divider{background:var(--color-border);height:1px}.empty-state{text-align:center;color:var(--color-muted);flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.empty-state-icon{opacity:.5;font-size:2.2rem}.empty-state p{max-width:260px;margin:0;font-size:.9rem;line-height:1.55}.stack{flex-direction:column;display:flex}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-14{gap:14px}.gap-16{gap:16px}.gap-20{gap:20px}.gap-24{gap:24px}.gap-28{gap:28px}.gap-32{gap:32px}.cluster{flex-wrap:wrap;align-items:center;display:flex}.row{align-items:center;display:flex}.row-between{justify-content:space-between}.grid-2{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}@media (max-width:560px){.grid-2{grid-template-columns:1fr}}@media (max-width:768px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.grid-3,.grid-4{grid-template-columns:1fr}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.22s both fade-up}@keyframes city-rise{0%{opacity:.35;transform:scaleY(.35)}to{opacity:1;transform:scaleY(1)}}@keyframes soft-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.text-muted{color:var(--color-muted)}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-center{text-align:center}.font-black{font-weight:900}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.loading-state{min-height:60vh;color:var(--color-muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:.875rem;display:flex}.loading-state p{margin:0}.loading-pulse{background:linear-gradient(135deg,#f5cc60,#d4930e);border-radius:12px;width:40px;height:40px;animation:1.4s ease-in-out infinite pulse-glow}@keyframes pulse-glow{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #d4930e4d}50%{opacity:.8;transform:scale(.88);box-shadow:0 0 0 8px #d4930e00}}.streak-badge{color:var(--color-accent);background:linear-gradient(135deg,#fef7e4,#fdf3ce);border:1.5px solid #d4930e4d;border-radius:99px;flex-shrink:0;align-items:center;gap:5px;padding:4px 12px;font-size:.78rem;font-weight:800;display:inline-flex}.auth-loading{background:var(--color-bg);place-items:center;min-height:100vh;display:grid}.auth-loading p{color:var(--color-muted);margin:0;font-size:.875rem}.prefs-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.prefs-bar-compact{justify-content:flex-end}.prefs-bar-compact .segmented-control{grid-template-columns:repeat(2,minmax(48px,1fr))}.prefs-bar-compact .select-shell{min-height:36px;padding:0 9px}.prefs-bar-compact .segmented-control button{min-height:30px;font-size:.72rem}.prefs-bar-compact .select-shell span,.prefs-bar-compact .select-shell select{font-size:.72rem}.segmented-control{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);border-radius:12px;grid-template-columns:repeat(2,minmax(58px,1fr));padding:3px;display:inline-grid}.segmented-control button{min-height:32px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:9px;font-size:.76rem;font-weight:800;transition:background .14s,color .14s}.segmented-control button.active{background:var(--color-primary);color:#fff}.select-shell{border:1px solid var(--color-border);background:var(--color-surface);min-height:40px;box-shadow:var(--shadow-sm);border-radius:12px;align-items:center;gap:7px;padding:0 10px;display:inline-flex}.select-shell span{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:800}.select-shell select{color:var(--color-text);cursor:pointer;background:0 0;border:0;outline:0;font-size:.8rem;font-weight:800}.chatbot{z-index:45;pointer-events:none;justify-items:end;gap:10px;display:grid;position:fixed;bottom:22px;right:22px}.chatbot>*{pointer-events:auto}.chatbot-panel{border:1px solid var(--color-border);background:var(--color-surface);width:min(360px,100vw - 28px);max-height:min(560px,100vh - 120px);box-shadow:var(--shadow-lg);border-radius:18px;grid-template-rows:auto minmax(120px,1fr) auto;animation:.16s both soft-pop;display:grid;overflow:hidden}.chatbot-header{border-bottom:1px solid var(--color-border);background:var(--color-surface-alt);justify-content:space-between;gap:12px;padding:16px;display:flex}.chatbot-header strong{font-size:.95rem;font-weight:900}.chatbot-header p{color:var(--color-muted);margin:3px 0 0;font-size:.76rem;line-height:1.45}.icon-button{border:1px solid var(--color-border);background:var(--color-surface);width:30px;height:30px;color:var(--color-muted);cursor:pointer;border-radius:9px}.chatbot-messages{flex-direction:column;gap:8px;padding:14px;display:flex;overflow:auto}.chat-bubble{border-radius:14px;max-width:86%;padding:9px 11px;font-size:.82rem;line-height:1.45}.chat-bubble.bot{background:var(--color-primary-soft);color:var(--color-text);align-self:flex-start}.chat-bubble.user{background:var(--color-primary);color:#fff;align-self:flex-end}.chatbot-input{border-top:1px solid var(--color-border);grid-template-columns:1fr auto;gap:8px;padding:12px;display:grid}.chatbot-input input{border:1px solid var(--color-border);background:var(--color-bg);min-width:0;height:40px;color:var(--color-text);border-radius:12px;outline:0;padding:0 12px}.chatbot-input button,.chatbot-fab{background:var(--color-primary);color:#fff;cursor:pointer;border:0;font-weight:900}.chatbot-input button{border-radius:12px;padding:0 13px}.chatbot-fab{min-height:46px;box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:9px;padding:0 15px 0 10px;transition:transform .15s,background .15s;display:inline-flex;position:relative}.chatbot-fab:hover{background:var(--color-primary-dark);transform:translateY(-2px)}.coach-mark{background:linear-gradient(var(--color-surface), var(--color-surface)) center 8px / 12px 3px no-repeat, linear-gradient(var(--color-surface), var(--color-surface)) center 16px / 16px 3px no-repeat, #578881;border-radius:50%;width:28px;height:28px}@supports (color:color-mix(in lab, red, red)){.coach-mark{background:linear-gradient(var(--color-surface), var(--color-surface)) center 8px / 12px 3px no-repeat, linear-gradient(var(--color-surface), var(--color-surface)) center 16px / 16px 3px no-repeat, color-mix(in srgb, white 20%, var(--color-primary))}}.chatbot-fab i{background:var(--color-accent);border:2px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;top:2px;right:4px}@media (max-width:900px){.chatbot{right:14px;bottom:calc(76px + var(--safe-bottom))}.chatbot-fab span:last-of-type{display:none}.chatbot-fab{justify-content:center;width:50px;padding:0}}@media (max-width:640px){.prefs-bar{grid-template-columns:1fr 1fr;width:100%;display:grid}.prefs-bar .segmented-control{grid-column:1/-1;width:100%}.prefs-bar .select-shell{justify-content:space-between;min-width:0}.prefs-bar .select-shell span{font-size:.64rem}.prefs-bar .select-shell select{min-width:0;max-width:84px}.timer-ring{width:min(300px,82vw)}.timer-display,.timer-time{font-size:clamp(2.1rem,15vw,3.2rem)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
