/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-base:1rem;--text-lg:1.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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{.visible{visibility:visible}.relative{position:relative}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}}:root{--color-bg:oklch(96.5% .021 88);--color-surface:oklch(98.2% .015 92);--color-card:oklch(99.2% .009 95);--color-border:oklch(89% .028 82);--color-text:oklch(30% .035 55);--color-text-muted:oklch(48% .035 60);--color-text-subtle:oklch(62% .03 68);--color-accent:oklch(62% .145 45);--color-accent-hover:oklch(55% .155 44);--color-accent-soft:oklch(93.5% .045 60);--color-danger:oklch(56% .185 28);--color-success:oklch(58% .115 148);--color-warning:oklch(76% .135 80);--color-positive:oklch(56% .115 148);--color-negative:oklch(56% .185 28);--color-xp-fill:oklch(70% .145 62);--color-xp-track:oklch(92% .022 85);--color-time-fill:oklch(63% .055 58);--color-time-track:oklch(92% .022 85);--color-level-badge:oklch(40% .06 48);--emblem-ring:oklch(74% .11 62);--emblem-bg:oklch(94.5% .04 78);--note-paper-1:oklch(93% .085 98);--note-paper-2:oklch(91.5% .065 55);--note-paper-3:oklch(91.5% .055 20);--note-paper-4:oklch(93% .06 150);--note-paper-5:oklch(92% .045 235);--note-paper-6:oklch(91.5% .055 305);--note-paper-7:oklch(94% .075 115);--note-paper-8:oklch(96% .025 85);--note-shadow:0 1px 2px oklch(32% .05 55/.16), 0 7px 16px -6px oklch(35% .06 52/.28);--note-pin:oklch(52% .17 30);--note-tilt-max:2.5deg;--hold-ring-color:oklch(62% .145 45);--hold-ring-track:oklch(98% .01 90/.65);--board-bg:radial-gradient(oklch(56% .075 62/.2) 1px, transparent 1.4px) 0 0 / 9px 9px, radial-gradient(oklch(50% .08 58/.14) 1px, transparent 1.4px) 4px 6px / 13px 13px, radial-gradient(oklch(88% .05 85/.16) 1px, transparent 1.6px) 7px 2px / 17px 17px, linear-gradient(160deg, oklch(76% .055 70), oklch(70% .062 66));--color-sphere-1:oklch(60% .14 42);--color-sphere-2:oklch(60% .12 145);--color-sphere-3:oklch(58% .11 245);--color-sphere-4:oklch(68% .13 88);--color-sphere-5:oklch(58% .12 325);--color-sphere-6:oklch(62% .1 195);--color-sphere-7:oklch(52% .08 60);--color-sphere-8:oklch(62% .13 5);--color-goal-1:oklch(64% .13 50);--color-goal-2:oklch(63% .11 160);--color-goal-3:oklch(60% .1 250);--color-goal-4:oklch(70% .12 92);--color-goal-5:oklch(61% .11 330);--color-goal-6:oklch(64% .09 200);--color-goal-7:oklch(56% .07 65);--color-goal-8:oklch(64% .12 10);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--shadow-card:0 1px 2px oklch(40% .04 60/.05), 0 4px 14px -4px oklch(40% .05 58/.1);--shadow-raised:0 2px 4px oklch(38% .05 58/.08), 0 14px 30px -10px oklch(38% .06 55/.22);--shadow-note:var(--note-shadow);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, Charter, Georgia, serif;--text-base:15px;--text-lg:18px;--text-kpi:34px;--text-label:11px;--tracking-label:.09em;--duration-fast:.12s;--duration-normal:.24s;--duration-slow:.4s;--duration-hold:3s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@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}.sheet{border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-card);width:100%;max-width:640px;color:var(--color-text);box-shadow:var(--shadow-raised);border-bottom:0;margin:auto auto 0;padding:0}.sheet::backdrop{background:color-mix(in oklch, var(--color-text) 34%, transparent)}.sheet[open]{animation:sheet-rise var(--duration-normal) var(--ease-out)}@keyframes sheet-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.sheet-body{padding:var(--space-3) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom,0px));gap:var(--space-4);display:grid}.sheet-grip{border-radius:var(--radius-pill);background:var(--color-border);justify-self:center;width:44px;height:5px}.sheet-head{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:24px;display:flex}.sheet-title{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.2}.sheet-close{border-radius:var(--radius-pill);width:32px;height:32px;color:var(--color-text-subtle);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:0;place-items:center;margin-left:auto;display:grid}.sheet-close:hover{background:var(--color-accent-soft);color:var(--color-text)}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100dvh;display:grid}.shell-sidebar{gap:var(--space-4);height:100dvh;padding:var(--space-4) var(--space-3);background:var(--color-surface);border-right:1px solid var(--color-border);box-shadow:var(--shadow-card);z-index:10;flex-direction:column;display:flex;position:sticky;top:0}.shell-brand{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-family:var(--font-display);font-size:var(--text-lg);border-radius:var(--radius-md);font-weight:700;display:flex}.shell-brand-mark{border-radius:var(--radius-pill);background:var(--emblem-bg);border:2px solid var(--emblem-ring);width:34px;height:34px;color:var(--color-accent);flex:none;place-items:center;display:grid}.shell-nav{gap:var(--space-1);flex:1;align-content:start;display:grid;overflow-y:auto}.shell-nav-link{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-muted);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);font-weight:500;display:flex;position:relative}.shell-nav-link:hover{background:var(--color-accent-soft);color:var(--color-text)}.shell-nav-link-active{background:var(--color-accent);color:var(--color-card);font-weight:600}.shell-nav-link-active:hover{background:var(--color-accent-hover);color:var(--color-card)}.shell-user{gap:var(--space-2);border-top:1px dashed var(--color-border);padding-top:var(--space-3);display:grid}.shell-user-name{padding-inline:var(--space-3);font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.shell-logout{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:var(--text-base);text-align:left;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:0;font-weight:500;display:flex;position:relative}.shell-logout:hover:not(:disabled){background:color-mix(in oklch, var(--color-danger) 12%, transparent);color:var(--color-danger)}.shell-main{padding:var(--space-5) var(--space-6) var(--space-8);width:100%;max-width:1240px;margin-inline:auto}.tabbar{display:none}@media (width<=1099.98px){.shell{grid-template-columns:68px minmax(0,1fr)}.shell-sidebar{padding-inline:var(--space-2);align-items:center}.shell-brand{padding:var(--space-1)}.shell-brand-name,.shell-nav-label,.shell-user-name{display:none}.shell-nav{justify-items:center;width:100%}.shell-nav-link,.shell-logout{justify-content:center;width:44px;height:44px;padding:0}.shell-user{justify-items:center;width:100%}.shell-nav-link:after,.shell-logout:after{content:attr(data-tip);left:calc(100% + var(--space-2));background:var(--color-text);color:var(--color-card);font-size:var(--text-label);letter-spacing:normal;white-space:nowrap;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);box-shadow:var(--shadow-raised);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);z-index:30;font-weight:600;position:absolute;top:50%;transform:translateY(-50%)translate(-4px)}.shell-nav-link:hover:after,.shell-nav-link:focus-visible:after,.shell-logout:hover:after,.shell-logout:focus-visible:after{opacity:1;transform:translateY(-50%)translate(0)}.shell-main{padding-inline:var(--space-5)}}@media (width<=767.98px){.shell{grid-template-columns:minmax(0,1fr)}.shell-sidebar{display:none}.shell-main{padding:var(--space-4) var(--space-4) calc(var(--space-8) + var(--space-7) + env(safe-area-inset-bottom,0px))}.tabbar{background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:var(--shadow-raised);padding-bottom:env(safe-area-inset-bottom,0px);z-index:40;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar-item{padding:var(--space-2) var(--space-1);color:var(--color-text-muted);font-size:var(--text-label);transition:color var(--duration-fast) var(--ease-out);background:0 0;border:0;justify-items:center;gap:2px;display:grid}.tabbar-item:hover{color:var(--color-text)}.tabbar-item-active{color:var(--color-accent);font-weight:700}.tabbar-label{font-size:var(--text-label);letter-spacing:.02em}}.tabbar-sheet-nav{gap:var(--space-1);display:grid}.tabbar-sheet-link{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-text);transition:background var(--duration-fast) var(--ease-out);font-weight:500;display:flex}.tabbar-sheet-link:hover{background:var(--color-accent-soft)}.tabbar-sheet-link-active{background:var(--color-accent-soft);color:var(--color-accent-hover);font-weight:600}.tabbar-sheet-chevron{color:var(--color-text-subtle);margin-left:auto}.tabbar-sheet-foot{justify-content:space-between;align-items:center;gap:var(--space-3);border-top:1px dashed var(--color-border);padding-top:var(--space-3);display:flex}.tabbar-sheet-user{font-family:var(--font-display);font-weight:600}.tabbar-sheet-logout{align-items:center;gap:var(--space-2);color:var(--color-danger);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);transition:background var(--duration-fast) var(--ease-out);background:0 0;border:0;font-weight:600;display:inline-flex}.tabbar-sheet-logout:hover:not(:disabled){background:color-mix(in oklch, var(--color-danger) 12%, transparent)}.splash{place-content:center;justify-items:center;gap:var(--space-4);background:var(--color-bg);min-height:100dvh;display:grid}.splash-brand{font-family:var(--font-display);font-size:30px;font-weight:700}.splash-hint{color:var(--color-text-subtle);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase}.spinner{border-radius:var(--radius-pill);border:3px solid var(--color-xp-track);border-top-color:var(--color-accent);animation:.8s linear infinite spinner-rotate;display:inline-block}.spinner-sm{border-width:2px;width:16px;height:16px}.spinner-md{width:28px;height:28px}.spinner-lg{border-width:4px;width:44px;height:44px}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.toast-stack{bottom:var(--space-5);gap:var(--space-2);z-index:100;pointer-events:none;width:min(420px, calc(100vw - var(--space-6)));display:grid;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--color-card);border:1px solid var(--color-border);border-left:5px solid var(--color-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-raised);padding:var(--space-3) var(--space-4);animation:toast-in var(--duration-normal) var(--ease-spring);font-weight:600}.toast-error{border-left-color:var(--color-danger)}.toast-success{border-left-color:var(--color-success)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.game-label{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);font-weight:600}.xp-bar{gap:var(--space-1);display:grid}.xp-bar-head{justify-content:space-between;align-items:baseline;display:flex}.xp-bar-value{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-accent)}.xp-bar-track{height:12px}.xp-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-card);box-shadow:var(--shadow-card);display:inline-flex}.xp-chip-bar{border-radius:var(--radius-pill);background:var(--color-xp-track);width:64px;height:6px;overflow:hidden}.xp-chip-fill{border-radius:inherit;background:linear-gradient(90deg, var(--color-xp-fill), var(--color-accent));height:100%;transition:width var(--duration-normal) var(--ease-out);display:block}.xp-chip-value{font-family:var(--font-display);font-size:var(--text-base);color:var(--color-accent)}.level-badge{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-card);background:var(--color-level-badge);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-weight:700;display:inline-block}.period-emblem{background:var(--emblem-bg);border:2px solid var(--emblem-ring);border-radius:var(--radius-pill);flex:none;place-items:center;display:inline-grid}.period-emblem-sm{width:34px;height:34px;font-size:18px}.period-emblem-md{width:46px;height:46px;font-size:24px}.period-emblem-lg{width:72px;height:72px;box-shadow:var(--shadow-card);border-width:3px;font-size:38px}.race{gap:var(--space-4);display:grid}.race-meter{gap:var(--space-1);display:grid}.race-head{justify-content:space-between;align-items:baseline;display:flex}.race-time-track{height:6px}.char-sheet{gap:var(--space-6);padding:var(--space-6);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:10px 12px 0 -4px color-mix(in oklch, var(--color-surface) 80%, var(--color-border)), 10px 12px 0 -3px var(--color-border), var(--shadow-card);grid-template-columns:minmax(240px,1fr) minmax(0,1.7fr);align-items:center;display:grid;position:relative}.char-sheet:after{content:"";top:calc(-1 * var(--space-3));left:var(--space-7);background:color-mix(in oklch, var(--color-accent-soft) 72%, transparent);border-inline:1px dashed color-mix(in oklch, var(--color-accent) 35%, transparent);width:96px;height:26px;position:absolute;transform:rotate(-3deg)}.char-sheet-id{align-items:center;gap:var(--space-4);display:flex}.char-sheet-name{font-family:var(--font-display);font-size:30px;line-height:1.15}.char-sheet-badges{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.char-sheet-chapter{gap:var(--space-4);display:grid}.char-sheet-chapter-title{align-items:center;gap:var(--space-3);display:flex}.char-sheet-chapter-name{font-family:var(--font-display);font-size:22px;display:block}@media (width<=1023px){.char-sheet{gap:var(--space-5);grid-template-columns:1fr}}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);font-weight:700;font-size:var(--text-base);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);border:1px solid #0000;line-height:1.2;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase}.btn-md{padding:var(--space-2) var(--space-4)}.btn-lg{padding:var(--space-3) var(--space-5);font-size:var(--text-lg)}.btn-primary{background:var(--color-accent);color:var(--color-card);box-shadow:var(--shadow-card)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.btn-primary:active:not(:disabled){box-shadow:var(--shadow-card);transform:translateY(0)scale(.97)}.btn-ghost{color:var(--color-text-muted);border-color:var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-text);border-color:color-mix(in oklch, var(--color-accent) 40%, var(--color-border))}.btn-ghost:active:not(:disabled){transform:scale(.97)}.btn-danger{background:var(--color-danger);color:var(--color-card);box-shadow:var(--shadow-card)}.btn-danger:hover:not(:disabled){background:color-mix(in oklch, var(--color-danger) 88%, var(--color-text));transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0)scale(.97)}.empty-state{justify-items:center;gap:var(--space-3);text-align:center;padding:var(--space-7) var(--space-5);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg);display:grid}.empty-state-icon{border-radius:var(--radius-pill);background:var(--emblem-bg);border:2px solid var(--emblem-ring);width:56px;height:56px;color:var(--color-accent);place-items:center;display:grid}.empty-state-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.empty-state-hint{color:var(--color-text-subtle);max-width:42ch}.empty-state-action{margin-top:var(--space-2)}.tag-chip{align-items:center;gap:var(--space-1);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:color-mix(in oklch, var(--color-text) 7%, transparent);color:var(--color-text-muted);white-space:nowrap;font-weight:600;display:inline-flex}.tag-chip-accent{background:var(--color-accent-soft);color:var(--color-accent-hover)}.tag-chip-muted{border:1px dashed var(--color-border);color:var(--color-text-subtle);background:0 0}.tag-chip-dot{border-radius:var(--radius-pill);flex:none;width:8px;height:8px}.board-page{gap:var(--space-5);display:grid}.board-frame{padding:var(--space-3);border-radius:calc(var(--radius-lg) + var(--space-2));background:linear-gradient(172deg, color-mix(in oklch, var(--color-sphere-7) 45%, var(--color-card)), color-mix(in oklch, var(--color-sphere-7) 88%, var(--color-text)));box-shadow:var(--shadow-raised)}.board{background:var(--board-bg);border-radius:var(--radius-lg);box-shadow:inset 0 2px 12px color-mix(in oklch, var(--color-text) 40%, transparent);padding:var(--space-6);gap:var(--space-6) var(--space-5);grid-template-columns:repeat(auto-fill,minmax(206px,1fr));align-content:start;min-height:420px;margin:0;list-style:none;display:grid}.board-state{place-items:center;display:grid}.board-state .empty-state{background:color-mix(in oklch, var(--color-card) 82%, transparent);border-radius:var(--radius-lg);padding:var(--space-5)}.note-slot{display:grid}.note{--tilt-seed:0;background:linear-gradient(178deg, color-mix(in oklch, var(--color-card) 28%, transparent), transparent 38%), var(--paper,var(--note-paper-8));border-radius:var(--radius-sm);box-shadow:var(--note-shadow);padding:var(--space-6) var(--space-4) var(--space-3);gap:var(--space-3);min-height:172px;transform:rotate(calc(var(--note-tilt-max) * var(--tilt-seed)));transition:transform var(--duration-normal) var(--ease-spring), box-shadow var(--duration-normal) var(--ease-out), opacity var(--duration-normal) var(--ease-out);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;display:flex;position:relative}.note:hover{box-shadow:var(--shadow-raised);z-index:2;transform:rotate(0)translateY(-5px)scale(1.03)}.note:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.note-pin-dot{top:var(--space-2);border-radius:var(--radius-pill);background:radial-gradient(circle at 35% 30%, color-mix(in oklch, var(--note-pin) 55%, var(--color-card)), var(--note-pin));width:14px;height:14px;box-shadow:0 2px 4px color-mix(in oklch, var(--color-text) 40%, transparent);position:absolute;left:50%;transform:translate(-50%)}.note-text{font-family:var(--font-display);overflow-wrap:anywhere;flex:1;margin:0;font-size:17px;font-weight:600;line-height:1.35}.note-meta{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.note-meta .tag-chip{background:color-mix(in oklch, var(--color-card) 60%, transparent)}.note-chip-xp{background:color-mix(in oklch, var(--color-text) 9%, transparent);margin-left:auto}.note-chip-due{background:color-mix(in oklch, var(--color-warning) 45%, var(--color-card));color:color-mix(in oklch, var(--color-text) 80%, var(--color-warning))}.note-chip-today{background:color-mix(in oklch, var(--color-accent) 22%, var(--color-card));color:var(--color-accent-hover)}.note-chip-overdue{background:color-mix(in oklch, var(--color-danger) 16%, var(--color-card));color:var(--color-danger)}.note-menu-btn{top:var(--space-1);right:var(--space-1);border-radius:var(--radius-pill);width:28px;height:28px;color:color-mix(in oklch, var(--color-text) 55%, transparent);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);touch-action:auto;background:0 0;border:0;place-items:center;display:grid;position:absolute}.note-menu-btn:hover{background:color-mix(in oklch, var(--color-card) 70%, transparent);color:var(--color-text)}.note.is-holding{box-shadow:var(--shadow-raised);z-index:3;transform:rotate(0)translateY(-4px)scale(1.05)}.note.is-holding .note-text,.note.is-holding .note-meta,.note.is-holding .note-menu-btn{opacity:.35;transition:opacity var(--duration-normal) var(--ease-out)}.hold-ring{filter:drop-shadow(0 2px 4px color-mix(in oklch, var(--color-text) 30%, transparent));animation:hold-ring-appear var(--duration-fast) var(--ease-out) both;pointer-events:none;margin:auto;position:absolute;inset:0;transform:rotate(-90deg)}.hold-ring-track{fill:none;stroke:var(--hold-ring-track)}.hold-ring-fill{fill:none;stroke:var(--hold-ring-color);stroke-linecap:round;animation-name:hold-ring-fill;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes hold-ring-fill{to{stroke-dashoffset:0}}@keyframes hold-ring-appear{0%{opacity:0}to{opacity:1}}.note-hold-hint{left:0;right:0;bottom:var(--space-3);text-align:center;font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-accent-hover);pointer-events:none;font-weight:700;position:absolute}.note.is-completing{opacity:0;transition:transform var(--duration-slow) var(--ease-out), opacity var(--duration-slow) var(--ease-out);pointer-events:none;transform:rotate(-6deg)translateY(-16px)scale(.9)}.note-form{gap:var(--space-4);display:grid}.note-form-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.note-form-field{gap:var(--space-2);display:grid}.note-form-label{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);font-weight:700}.note-form-actions{gap:var(--space-3);align-items:center;display:flex}.note-swatches{gap:var(--space-2);flex-wrap:wrap;display:flex}.note-swatch{border:1px solid color-mix(in oklch, var(--color-text) 18%, transparent);border-radius:var(--radius-pill);width:30px;height:30px;transition:transform var(--duration-fast) var(--ease-spring), box-shadow var(--duration-fast) var(--ease-out);padding:0}.note-swatch:hover{transform:scale(1.12)}.note-swatch.is-selected{box-shadow:0 0 0 2px var(--color-card), 0 0 0 4px var(--color-accent)}.note-swatch-goal{border-style:dashed}.note-menu-dialog .note-menu-actions,.done-archive{gap:var(--space-3);display:grid}.archive-empty{color:var(--color-text-subtle);text-align:center;margin:0}.archive-week{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.archive-week summary{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);cursor:pointer;font-family:var(--font-display);font-size:var(--text-lg);transition:background var(--duration-fast) var(--ease-out);font-weight:600;list-style:none;display:flex}.archive-week summary::-webkit-details-marker{display:none}.archive-week summary:hover{background:var(--color-accent-soft)}.archive-chevron{color:var(--color-text-subtle);transition:transform var(--duration-normal) var(--ease-out);flex:none;place-items:center;display:grid}.archive-week[open] .archive-chevron{transform:rotate(90deg)}.archive-count{font-family:var(--font-sans);font-size:var(--text-label);letter-spacing:var(--tracking-label);color:var(--color-card);background:var(--color-success);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);margin-left:auto;font-weight:700}.archive-list{border-top:1px dashed var(--color-border);padding:var(--space-3) var(--space-5) var(--space-4);gap:var(--space-1);margin:0;list-style:none;display:grid}.archive-row{align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);transition:background var(--duration-fast) var(--ease-out);display:flex}.archive-row:hover{background:color-mix(in oklch, var(--color-accent-soft) 60%, transparent)}.archive-check{width:20px;height:20px;color:var(--color-card);background:var(--color-success);border-radius:var(--radius-pill);flex:none;place-items:center;display:grid}.archive-name{color:var(--color-text-muted);overflow-wrap:anywhere;min-width:0;text-decoration:line-through}.archive-date{color:var(--color-text-subtle);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}@media (width<=1023px){.board{padding:var(--space-5);gap:var(--space-5) var(--space-4);grid-template-columns:repeat(auto-fill,minmax(184px,1fr))}}@media (width<=640px){.board{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.note{min-height:150px}.note-form-grid{grid-template-columns:1fr}}.dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card);color:var(--color-text);box-shadow:var(--shadow-raised);min-width:min(420px, calc(100vw - var(--space-6)));max-width:min(560px, calc(100vw - var(--space-6)));margin:auto;padding:0}.dialog::backdrop{background:color-mix(in oklch, var(--color-text) 34%, transparent)}.dialog-body{padding:var(--space-5);gap:var(--space-4);display:grid}.dialog-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.dialog-title{font-family:var(--font-display);font-size:21px;line-height:1.2}.dialog-close{border-radius:var(--radius-pill);width:32px;height:32px;color:var(--color-text-subtle);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:0;place-items:center;margin-left:auto;display:grid}.dialog-close:hover{background:var(--color-accent-soft);color:var(--color-text)}.field{gap:var(--space-1);display:grid}.field-label{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);font-weight:600}.field-control{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.field-control::placeholder{color:var(--color-text-subtle)}.field-control:hover{border-color:color-mix(in oklch, var(--color-accent) 40%, var(--color-border))}.field-control:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.field-control-invalid{border-color:var(--color-danger)}.field-textarea{resize:vertical;min-height:72px}.field-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-text-subtle) 50%), linear-gradient(135deg, var(--color-text-subtle) 50%, transparent 50%);padding-right:var(--space-6);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-repeat:no-repeat;background-size:6px 6px,6px 6px}.field-error{color:var(--color-danger);font-size:var(--text-label);font-weight:600}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chips-item{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-card);color:var(--color-text-muted);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;padding:var(--space-1) var(--space-3);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);font-weight:700}.chips-item:hover{background:var(--color-accent-soft);color:var(--color-text);transform:translateY(-1px)}.chips-item:active{transform:scale(.96)}.chips-item-selected{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-card)}.chips-item-selected:hover{background:var(--color-accent-hover);color:var(--color-card)}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex;position:relative}.page-header:before{content:"";top:calc(-1 * var(--space-2));left:calc(-1 * var(--space-2));background:color-mix(in oklch, var(--color-accent-soft) 72%, transparent);border-inline:1px dashed color-mix(in oklch, var(--color-accent) 35%, transparent);pointer-events:none;width:64px;height:18px;position:absolute;transform:rotate(-3deg)}.page-header-title{font-family:var(--font-display);font-size:30px;line-height:1.15;position:relative}.page-header-subtitle{color:var(--color-text-muted);margin-top:var(--space-1)}.page-header-actions{align-items:center;gap:var(--space-3);display:flex}.back-link{align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:700;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--color-accent-hover)}.goals-page{gap:var(--space-5);display:grid}.goals-section-title{font-family:var(--font-display);margin-bottom:var(--space-3);font-size:20px}.goals-muted{color:var(--color-text-subtle);font-style:italic}.goals-group-title{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:var(--space-3);font-weight:700}.goals-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.goal-card{background:var(--color-card);border:1px solid var(--color-border);border-left:5px solid var(--goal-color,var(--color-accent));border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4);gap:var(--space-3);transition:transform var(--duration-normal) var(--ease-spring), box-shadow var(--duration-normal) var(--ease-out);align-content:start;display:grid}.goal-card:hover{box-shadow:var(--shadow-raised);transform:translateY(-3px)}.goal-card-top{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.goal-card-name{font-family:var(--font-display);font-size:var(--text-lg);margin-right:auto;line-height:1.25}.goal-card-name a{color:inherit;text-decoration:none}.goal-card-name a:hover{color:var(--color-accent-hover)}.goal-card-progress{align-items:center;gap:var(--space-3);display:flex}.goal-card-bar{flex:1}.goal-card-percent{font-family:var(--font-display);text-align:right;min-width:44px}.goal-card-next{gap:var(--space-1);border-top:1px dashed var(--color-border);padding-top:var(--space-2);display:grid}.task-row{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer;display:flex}.task-check{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;flex:none}.task-check:disabled{cursor:not-allowed}.task-title{min-width:0;transition:color var(--duration-fast) var(--ease-out);flex:1}.task-row-done .task-title{color:var(--color-text-subtle);text-decoration:line-through}.next-tasks-list,.goal-tasks-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.goal-detail{gap:var(--space-5);display:grid}.goal-detail-head{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.goal-detail-title{font-family:var(--font-display);margin-right:auto;font-size:28px;line-height:1.2}.goal-detail-title-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}.goal-detail-controls{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.goal-detail-status{min-width:150px}.goal-progress-big{gap:var(--space-2);display:grid}.goal-progress-big .progress{height:14px}.goal-progress-big-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.goal-progress-big-value{font-family:var(--font-display);font-size:var(--text-kpi);color:var(--color-accent);line-height:1}.goal-progress-summary{color:var(--color-text-muted)}.goal-tasks-sections{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;display:grid}.goal-tasks-section{gap:var(--space-3);align-content:start;display:grid}.task-quick-add{margin-top:var(--space-2)}.goal-form{gap:var(--space-4);display:grid}.goal-form-priority{gap:var(--space-1);display:grid}.goal-form-footer{justify-content:flex-end;gap:var(--space-3);display:flex}.goal-move{gap:var(--space-4);display:grid}.goal-move-target{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:flex}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}.card-surface{background:var(--color-surface)}.card-interactive{cursor:pointer;transition:transform var(--duration-normal) var(--ease-spring), box-shadow var(--duration-normal) var(--ease-out)}.card-interactive:hover{box-shadow:var(--shadow-raised);transform:translateY(-3px)}.card-interactive:active{transform:translateY(-1px)}.editable{gap:var(--space-2);display:grid}.editable-value{text-align:left;font:inherit;white-space:pre-wrap;color:var(--color-text);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-3));transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:1px dashed #0000;line-height:1.55}button.editable-value{cursor:text}button.editable-value:hover{border-color:var(--color-border);background:var(--color-surface)}.editable-value-empty{color:var(--color-text-subtle);font-style:italic}.editable-value-static{border:0}.progress{--progress-fill:var(--color-accent);--progress-track:var(--color-xp-track);border-radius:var(--radius-pill);background:var(--progress-track);height:8px;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--progress-fill);height:100%;transition:width var(--duration-normal) var(--ease-out)}.habits-page{gap:var(--space-5);display:grid}.habits-muted{color:var(--color-text-subtle);margin:0;font-style:italic}.habits-tabs{justify-content:center}.habit-grid-scroll{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow-x:auto}.habit-grid{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:max-content;min-width:100%}.habit-grid th,.habit-grid td{padding:var(--space-1);text-align:center;border-bottom:1px solid color-mix(in oklch, var(--color-border) 55%, transparent)}.habit-grid thead th{z-index:2;background:var(--color-surface);font-size:var(--text-label);color:var(--color-text-subtle);padding-block:var(--space-2);font-weight:700;position:sticky;top:0}.habit-grid-name-col{z-index:1;background:var(--color-card);text-align:left;min-width:168px;max-width:220px;padding-inline:var(--space-3);box-shadow:1px 0 0 var(--color-border);position:sticky;left:0}.habit-grid thead .habit-grid-name-col{z-index:3;background:var(--color-surface)}.habit-grid-name{align-items:center;gap:var(--space-1);padding:var(--space-1) 0;font:inherit;color:var(--color-text);text-align:left;background:0 0;border:0;max-width:100%;font-weight:600;display:inline-flex}.habit-grid-name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.habit-grid-star{color:var(--color-warning);flex:none;place-items:center;display:inline-grid}.habit-grid-pencil{color:var(--color-text-subtle);opacity:0;transition:opacity var(--duration-fast) var(--ease-out);flex:none;place-items:center;display:inline-grid}.habit-grid-name:hover .habit-grid-pencil,.habit-grid-name:focus-visible .habit-grid-pencil{opacity:1}.habit-grid-day-today{color:var(--color-accent-hover);background:var(--color-accent-soft);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.habit-grid-cell-today{background:color-mix(in oklch, var(--color-accent-soft) 55%, transparent)}.habit-grid-score-col{z-index:1;background:var(--color-card);min-width:56px;box-shadow:-1px 0 0 var(--color-border);position:sticky;right:0}.habit-grid thead .habit-grid-score-col{z-index:3;background:var(--color-surface)}.habit-grid-score{font-weight:700;font-family:var(--font-display)}.habit-cell{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:30px;height:30px;color:var(--color-card);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);place-items:center;padding:0;display:inline-grid}.habit-cell:hover:not(:disabled){border-color:var(--color-accent);transform:scale(1.08)}.habit-cell:disabled{opacity:.35;cursor:not-allowed}.habit-cell-checked{background:var(--color-success);border-color:var(--color-success)}.habit-cell-numeric{color:var(--color-text);font-size:var(--text-label);width:auto;min-width:30px;padding-inline:var(--space-1);font-weight:700}.habit-cell-filled{background:color-mix(in oklch, var(--color-success) 22%, var(--color-card));border-color:color-mix(in oklch, var(--color-success) 45%, var(--color-border))}.habit-cell-skipped{color:var(--color-text-subtle)}.habit-entry-form{gap:var(--space-4);display:grid}.habit-entry-value{align-items:flex-end;gap:var(--space-2);display:flex}.habit-entry-value .field{flex:1}.habit-entry-unit{padding-bottom:var(--space-2);color:var(--color-text-muted);font-weight:600}.habit-entry-actions{gap:var(--space-3);display:flex}.today-checklist{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.today-row{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);box-shadow:var(--shadow-card);font:inherit;color:var(--color-text);text-align:left;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);font-weight:600;display:flex}.today-row:active{transform:scale(.99)}.today-row-done{background:color-mix(in oklch, var(--color-success) 12%, var(--color-card));border-color:color-mix(in oklch, var(--color-success) 40%, var(--color-border))}.today-row-name{align-items:center;gap:var(--space-2);min-width:0;display:inline-flex}.today-row-value{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text-muted);white-space:nowrap}.today-row-check{border:2px solid var(--color-border);border-radius:var(--radius-pill);width:28px;height:28px;color:var(--color-card);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);flex:none;place-items:center;display:grid}.today-row-check-done{background:var(--color-success);border-color:var(--color-success)}.habit-summary{gap:var(--space-4);display:grid}.habit-summary-kpi{align-items:baseline;gap:var(--space-3);display:flex}.habit-summary-kpi-label{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);font-weight:700}.habit-summary-kpi-value{font-family:var(--font-display);font-size:var(--text-kpi);line-height:1}.habit-summary-rows{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.habit-summary-row{align-items:center;gap:var(--space-3);grid-template-columns:minmax(120px,1fr) 2fr 42px 56px;display:grid}.habit-summary-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.habit-summary-score{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.habit-summary-streak{text-align:right;color:var(--color-text-subtle);font-variant-numeric:tabular-nums;white-space:nowrap}@media (width<=640px){.habit-summary-row{grid-template-columns:1fr 56px 42px}.habit-summary-bar{grid-column:1/-1}}.habits-dynamics{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.habits-dynamics summary{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);cursor:pointer;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;list-style:none;display:flex}.habits-dynamics summary::-webkit-details-marker{display:none}.habits-dynamics summary:hover{background:var(--color-accent-soft)}.habits-dynamics .archive-chevron{color:var(--color-text-subtle);transition:transform var(--duration-normal) var(--ease-out);flex:none;place-items:center;display:grid}.habits-dynamics[open] .archive-chevron{transform:rotate(90deg)}.habits-dynamics .habit-chart,.habits-dynamics .habits-muted{padding:var(--space-3) var(--space-4) var(--space-4)}.habit-form{gap:var(--space-4);display:grid}.habit-form-range{gap:var(--space-3);grid-template-columns:1fr 1fr 1fr;display:grid}.habit-form-active{align-items:center;gap:var(--space-2);cursor:pointer;font-weight:600;display:inline-flex}.habit-form-active input{width:18px;height:18px;accent-color:var(--color-accent)}.habit-form-delete{margin-left:auto}@media (width<=640px){.habit-form-range{grid-template-columns:1fr 1fr}}.month-switcher{align-items:center;gap:var(--space-2);display:inline-flex}.month-switcher-btn{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-card);width:32px;height:32px;color:var(--color-text-muted);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);place-items:center;display:grid}.month-switcher-btn:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-text);transform:translateY(-1px)}.month-switcher-btn:disabled{opacity:.4;cursor:not-allowed}.month-switcher-label{text-align:center;min-width:128px;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.home-page{gap:var(--space-5);display:grid}.home-grid{gap:var(--space-5);grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);grid-template-areas:"campaigns side""today side";align-items:start;display:grid}.home-grid-campaigns{grid-area:campaigns}.home-grid-today{grid-area:today}.home-grid-side{gap:var(--space-5);grid-area:side;display:grid}@media (width<=900px){.home-grid{grid-template-columns:1fr;grid-template-areas:"today""campaigns""side"}}.home-widget{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);gap:var(--space-4);display:grid}.home-widget-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.home-widget-title{font-family:var(--font-display);font-size:var(--text-lg);margin:0}.home-widget-link{font-size:var(--text-label);color:var(--color-accent);font-weight:700;text-decoration:none}.home-widget-link:hover{text-decoration:underline}.home-muted{color:var(--color-text-subtle);margin:0;font-style:italic}.home-footnote{color:var(--color-text-subtle);font-size:var(--text-label);margin:0}.home-campaigns{gap:var(--space-3);display:grid}.home-today-block{gap:var(--space-2);display:grid}.home-stickers{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.home-sticker{align-items:center;gap:var(--space-2) var(--space-3);min-height:48px;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-5);background:var(--paper,var(--note-paper-8));border-radius:var(--radius-md);box-shadow:var(--note-shadow);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform var(--duration-fast) var(--ease-out);flex-wrap:wrap;display:flex;position:relative}.home-sticker.is-holding{transform:scale(.985)}.home-sticker.is-completing{animation:home-sticker-peel var(--duration-slow) var(--ease-out) forwards;pointer-events:none}@keyframes home-sticker-peel{to{opacity:0;transform:translate(24px)rotate(2deg)}}.home-sticker-pin{left:var(--space-3);border-radius:var(--radius-pill);background:var(--note-pin);width:8px;height:8px;margin-top:-4px;position:absolute;top:50%}.home-sticker-title{flex:1;min-width:12ch;font-weight:600}.home-sticker-ring{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.home-day-score{gap:var(--space-2);display:grid}.home-day-score-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.home-score-chip{min-width:34px;height:34px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);font-variant-numeric:tabular-nums;color:var(--color-text-muted);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);font-weight:700}.home-score-chip:hover{border-color:var(--color-accent);transform:scale(1.06)}.home-score-chip-selected{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-card)}.home-tiles{gap:var(--space-3);display:grid}.home-tile{gap:var(--space-2);padding:var(--space-4) var(--space-5);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:inherit;transition:transform var(--duration-fast) var(--ease-out);text-decoration:none;display:grid}.home-tile:hover{box-shadow:var(--shadow-raised);transform:translateY(-2px)}.home-tile-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.home-tile-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.home-tile-caption{font-size:var(--text-label);color:var(--color-text-subtle)}.home-tile-value{font-family:var(--font-display);font-size:var(--text-kpi);line-height:1}.home-tile-note{font-size:var(--text-label);color:var(--color-text-muted)}.home-tile-bar{height:8px}.home-tile-spheres{gap:var(--space-2);display:grid}.home-tile-sphere{gap:3px;display:grid}.home-tile-sphere-head{align-items:center;gap:var(--space-2);display:flex}.home-tile-sphere-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;font-size:var(--text-label);flex:1;overflow:hidden}.home-tile-sphere-hours{font-size:var(--text-label);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.home-leaderboard{gap:var(--space-1);counter-reset:none;margin:0;padding:0;list-style:none;display:grid}.home-leaderboard-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);display:flex}.home-leaderboard-you{background:var(--color-accent-soft)}.home-leaderboard-place{text-align:right;font-variant-numeric:tabular-nums;width:22px;color:var(--color-text-subtle);font-weight:700}.home-leaderboard-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.home-leaderboard-badge{margin-left:var(--space-2);font-size:var(--text-label);color:var(--color-accent-hover);text-transform:uppercase;letter-spacing:var(--tracking-label)}.home-leaderboard-level{font-variant-numeric:tabular-nums;color:var(--color-text-muted);white-space:nowrap}.home-soon-chip{text-transform:uppercase;letter-spacing:var(--tracking-label)}.learning-page{gap:var(--space-5);display:grid}.learning-muted{color:var(--color-text-subtle);margin:0;font-style:italic}.session-form-grid{gap:var(--space-4);grid-template-columns:minmax(160px,1fr) minmax(140px,auto) auto;align-items:end;display:grid}.session-form-activity{grid-column:1/-2}.session-form-note{grid-column:1/-1}.session-form-note summary{cursor:pointer;color:var(--color-text-muted);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;margin-bottom:var(--space-2);font-weight:700}.session-form-submit{align-items:flex-end;display:flex}@media (width<=767px){.session-form-grid{grid-template-columns:1fr;align-items:stretch}.session-form-activity,.session-form-note{grid-column:auto}}.learning-summary{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.learning-index-card{gap:var(--space-2);align-content:center;justify-items:start;display:grid}.discipline-card{gap:var(--space-2);align-content:start;display:grid}.discipline-card-top{align-items:center;gap:var(--space-2);display:flex}.discipline-card-name{font-family:var(--font-display);font-size:var(--text-lg);margin-right:auto;font-weight:600}.discipline-edit-btn{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--color-text-subtle);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:0;place-items:center;display:grid}.discipline-edit-btn:hover{background:var(--color-accent-soft);color:var(--color-text)}.discipline-card-progress{align-items:center;gap:var(--space-3);display:flex}.discipline-card-bar{flex:1}.discipline-card-percent{font-family:var(--font-display);text-align:right;min-width:36px}.discipline-card-week{align-items:center;gap:var(--space-2);display:flex}.discipline-pips{gap:var(--space-1);display:inline-flex}.discipline-pip{border-radius:var(--radius-pill);background:var(--color-xp-track);border:1px solid var(--color-border);width:10px;height:10px}.discipline-pip-filled{background:var(--color-success);border-color:var(--color-success)}.discipline-week-label{font-size:var(--text-label);color:var(--color-text-subtle)}.discipline-card-totals{color:var(--color-text-muted);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;margin:0;font-weight:600}.session-list{gap:var(--space-4);display:grid}.session-day{gap:var(--space-2);display:grid}.session-day-title{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);margin:0;font-weight:700}.session-rows{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.session-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);display:flex}.session-dot{border-radius:var(--radius-pill);flex:none;width:10px;height:10px}.session-discipline{white-space:nowrap;font-weight:700}.session-activity{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-muted);flex:1;overflow:hidden}.session-note-icon{color:var(--color-text-subtle);cursor:help;flex:none;place-items:center;display:grid}.session-duration{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.session-menu-btn{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--color-text-subtle);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;display:grid}.session-menu-btn:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-text)}.session-menu-btn:disabled{opacity:.4}@media (width<=640px){.session-row{flex-wrap:wrap}.session-activity{white-space:normal;flex-basis:100%;order:5}}.login{min-height:100dvh;padding:var(--space-5);background:var(--color-bg);place-items:center;display:grid}.login-sheet{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(400px,100%);padding:var(--space-7) var(--space-6) var(--space-6);box-shadow:10px 12px 0 -4px color-mix(in oklch, var(--color-surface) 80%, var(--color-border)), 10px 12px 0 -3px var(--color-border), var(--shadow-card);position:relative}.login-sheet:after{content:"";top:calc(-1 * var(--space-3));background:color-mix(in oklch, var(--color-accent-soft) 72%, transparent);border-inline:1px dashed color-mix(in oklch, var(--color-accent) 35%, transparent);width:96px;height:26px;position:absolute;left:50%;transform:translate(-50%)rotate(-3deg)}.login-wordmark{font-family:var(--font-display);text-align:center;font-size:34px;line-height:1.15}.login-tagline{margin-top:var(--space-1);text-align:center;color:var(--color-text-subtle);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase}.login-form{margin-top:var(--space-6);gap:var(--space-4);display:grid}.login-error{color:var(--color-danger);text-align:center;font-weight:600}.period-header{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.period-header-info{min-width:0}.period-title{font-family:var(--font-display);font-size:30px;line-height:1.15}.period-header-meta{align-items:center;gap:var(--space-3);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.period-dates{color:var(--color-text-muted)}.period-header-actions{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.period-page{gap:var(--space-5);display:grid}.period-section-title{font-family:var(--font-display);margin-bottom:var(--space-3);font-size:20px}.period-close-btn{color:var(--color-danger);border-color:color-mix(in oklch, var(--color-danger) 35%, var(--color-border));justify-self:start}.period-close-btn:hover:not(:disabled){background:color-mix(in oklch, var(--color-danger) 8%, transparent);color:var(--color-danger);border-color:var(--color-danger)}.period-form-fields{gap:var(--space-4);display:grid}.period-form-emblem{gap:var(--space-2);display:grid}.period-form-emblem-presets{gap:var(--space-2);flex-wrap:wrap;display:flex}.period-form-emblem-option{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);width:40px;height:40px;transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);place-items:center;font-size:20px;display:grid}.period-form-emblem-option:hover{border-color:var(--emblem-ring);transform:translateY(-2px)}.period-form-emblem-option[data-selected]{background:var(--emblem-bg);border:2px solid var(--emblem-ring)}.period-form-dates{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.period-goals{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.period-goal-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);color:inherit;transition:transform var(--duration-fast) var(--ease-spring), box-shadow var(--duration-fast) var(--ease-out);text-decoration:none;display:flex}.period-goal-row:hover{box-shadow:var(--shadow-card);transform:translateY(-1px)}.period-goal-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.period-goal-bar{flex:none;width:clamp(90px,26%,220px)}.period-goal-percent{font-family:var(--font-display);text-align:right;min-width:44px}.period-goals-empty{color:var(--color-text-subtle);font-style:italic}.periods-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.period-card-link{color:inherit;text-decoration:none;display:block}.period-card{gap:var(--space-3);height:100%;display:grid}.period-card-head{align-items:center;gap:var(--space-3);display:flex}.period-card-title{flex:1;min-width:0}.period-card-name{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.2}.period-card-results{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.period-card-xp{align-items:baseline;gap:var(--space-2);display:flex}.period-detail-results{white-space:pre-wrap}.wizard-body{gap:var(--space-4);display:grid}.wizard-hint{color:var(--color-text-muted)}.wizard-tasks{gap:var(--space-3);display:grid}.wizard-task-list{gap:var(--space-3);max-height:44vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.wizard-task-row{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.wizard-task-title{font-weight:600}.wizard-toggle{align-items:center;gap:var(--space-2);cursor:pointer;font-weight:600;display:flex}.wizard-toggle input{width:18px;height:18px;accent-color:var(--color-accent)}.wizard-next{gap:var(--space-4);display:grid}.wizard-confirm{gap:var(--space-3);display:grid}.wizard-summary{gap:var(--space-1);margin:0;display:grid}.wizard-summary dt{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);margin-top:var(--space-2);font-weight:600}.wizard-summary dd{margin:0}.wizard-summary-results{white-space:pre-wrap}.wizard-footer{justify-content:flex-end;gap:var(--space-3);display:flex}.wizard-success{gap:var(--space-5);text-align:center;padding:var(--space-4) var(--space-2) var(--space-2);justify-items:center;display:grid}.wizard-success-title{font-family:var(--font-display);font-size:24px;line-height:1.25}.wizard-success>.xp-bar{width:100%}.wizard-success-actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}@media (width<=640px){.period-form-dates{grid-template-columns:1fr}}.time-page{gap:var(--space-5);display:grid}.time-controls{align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.time-controls-spacer{flex:1}.time-custom-range{align-items:flex-end;gap:var(--space-3);display:flex}.time-custom-range .field{min-width:0}.time-caption{color:var(--color-text-muted);font-size:var(--text-label);margin:0}.time-muted{color:var(--color-text-subtle);margin:0;font-style:italic}.time-subheading{font-family:var(--font-display);font-size:var(--text-lg);margin:0}.time-overview{gap:var(--space-5);grid-template-columns:minmax(260px,320px) 1fr;align-items:start;display:grid}@media (width<=900px){.time-overview{grid-template-columns:1fr}}.time-tile{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);gap:var(--space-3);display:grid}.time-tile-heading{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);margin:0;font-weight:700}.time-donut{gap:var(--space-3);justify-items:center;display:grid}.time-donut-chart{width:100%;position:relative}.time-donut-center{pointer-events:none;place-content:center;justify-items:center;gap:2px;display:grid;position:absolute;inset:0}.time-donut-hours{font-family:var(--font-display);font-size:var(--text-kpi);line-height:1}.time-donut-caption{font-size:var(--text-label);color:var(--color-text-subtle)}.time-legend{gap:var(--space-1) var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.time-legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-label);color:var(--color-text-muted);display:inline-flex}.time-legend-name{text-overflow:ellipsis;white-space:nowrap;max-width:16ch;overflow:hidden}.time-legend-value{font-variant-numeric:tabular-nums;color:var(--color-text-subtle)}.time-dot{border-radius:var(--radius-pill);flex:none;width:10px;height:10px}.time-table-wrap{overflow-x:auto}.time-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.time-table th,.time-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid color-mix(in oklch, var(--color-border) 55%, transparent);text-align:left}.time-table thead th{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle)}.time-col-num{text-align:right;white-space:nowrap}.time-col-spark{width:120px;min-width:90px}.time-cell-name{align-items:center;gap:var(--space-2);min-width:0;display:inline-flex}.time-name-text{text-overflow:ellipsis;white-space:nowrap;max-width:22ch;overflow:hidden}.time-empty-cell{text-align:center;color:var(--color-text-subtle);font-style:italic}.time-percent{justify-items:end;gap:3px;min-width:72px;display:inline-grid}.time-percent-track{border-radius:var(--radius-pill);background:var(--color-xp-track);width:72px;height:4px;overflow:hidden}.time-percent-fill{border-radius:inherit;height:100%;display:block}.time-trend{gap:var(--space-3);display:grid}.time-section-details{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.time-section-details summary{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);cursor:pointer;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;list-style:none;display:flex}.time-section-details summary::-webkit-details-marker{display:none}.time-section-details summary:hover{background:var(--color-accent-soft)}.time-section-details .archive-chevron{color:var(--color-text-subtle);transition:transform var(--duration-normal) var(--ease-out);flex:none;place-items:center;display:grid}.time-section-details[open] .archive-chevron{transform:rotate(90deg)}.time-section-body{gap:var(--space-4);padding:var(--space-2) var(--space-5) var(--space-5);display:grid}.time-heatmap{overflow-x:auto}.time-heatmap svg{min-width:560px}.time-heatmap-label{fill:var(--color-text-subtle);font-size:10px;font-family:var(--font-sans)}.time-heatmap-empty{fill:var(--color-text-subtle);font-size:13px;font-style:italic}.time-compare-spans{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=640px){.time-compare-spans{grid-template-columns:1fr}}.time-compare-span{gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);grid-template-columns:1fr 1fr;margin:0;display:grid}.time-compare-span legend{padding-inline:var(--space-1)}.time-compare-summary{gap:var(--space-2);display:grid}.time-compare-heading{font-size:var(--text-base);margin:0;font-weight:700}.time-compare-totals{align-items:baseline;gap:var(--space-2) var(--space-5);flex-wrap:wrap;display:flex}.time-compare-delta{font-family:var(--font-display);font-size:var(--text-lg)}.time-delta-positive{color:var(--color-positive)}.time-delta-negative{color:var(--color-negative)}.time-sync{align-items:center;gap:var(--space-2);display:inline-flex}.time-sync-chip{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-card);font-size:var(--text-label);color:var(--color-text-muted);white-space:nowrap;align-items:center;display:inline-flex}.time-sync-chip-running{border-color:var(--color-accent);color:var(--color-accent-hover)}.time-sync-chip-error{border-color:var(--color-danger);color:var(--color-danger)}.time-settings-page,.time-mapping{gap:var(--space-5);display:grid}.time-mapping section{gap:var(--space-3);display:grid}.time-mapping-calendar{white-space:nowrap;font-weight:600}.time-mapping-calendar .time-dot{margin-right:var(--space-2);display:inline-block}.time-sphere-input{min-width:140px}.time-swatches{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:inline-flex}.time-swatch{border-radius:var(--radius-pill);width:22px;height:22px;transition:transform var(--duration-fast) var(--ease-spring);border:2px solid #0000;padding:0}.time-swatch:hover{transform:scale(1.12)}.time-swatch-selected{border-color:var(--color-text)}.time-hex-input{width:84px;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-card);font-size:var(--text-label);font-family:inherit}.time-mapping-actions{white-space:nowrap}.time-mapping-actions .btn+.btn{margin-left:var(--space-2)}.time-visibility-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.time-visibility-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);cursor:pointer;display:flex}.time-visibility-row input{width:18px;height:18px;accent-color:var(--color-accent)}.time-visibility-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.time-visibility-count{color:var(--color-text-subtle);font-size:var(--text-label);white-space:nowrap}.time-load-error{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.reports-page{gap:var(--space-5);display:grid}.reports-section{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);gap:var(--space-3);display:grid}.reports-section-title{font-family:var(--font-display);font-size:var(--text-lg);margin:0}.reports-caption{color:var(--color-text-muted);font-size:var(--text-label);margin:0}.reports-kpis{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=760px){.reports-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.reports-kpi{gap:var(--space-1);display:grid}.reports-kpi-label{font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-subtle);font-weight:700}.reports-kpi-value{font-family:var(--font-display);font-size:var(--text-kpi);line-height:1}.reports-kpi-hint{font-size:var(--text-label);color:var(--color-text-subtle)}.reports-rows{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.reports-row{align-items:center;gap:var(--space-3);grid-template-columns:minmax(120px,1fr) 2fr 56px 56px;display:grid}.reports-row-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:var(--space-2);min-width:0;display:inline-flex;overflow:hidden}.reports-row-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.reports-row-muted{color:var(--color-text-subtle)}@media (width<=640px){.reports-row{grid-template-columns:1fr 56px 56px}.reports-row-bar{grid-column:1/-1}}.reports-total{border-top:1px solid var(--color-border);padding-top:var(--space-2);justify-content:space-between;font-weight:700;display:flex}.reports-goal-row{align-items:center;gap:var(--space-2) var(--space-3);grid-template-columns:minmax(140px,1.4fr) 1fr auto;display:grid}.reports-goal-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}@media (width<=640px){.reports-goal-row{grid-template-columns:1fr}.reports-goal-meta{justify-content:flex-start}}.reports-time{gap:var(--space-5);grid-template-columns:minmax(220px,280px) 1fr;align-items:start;display:grid}@media (width<=760px){.reports-time{grid-template-columns:1fr}}.reports-periods{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.reports-period-card{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0;display:grid;overflow:hidden}.reports-period-head{align-items:center;gap:var(--space-3);display:flex}.reports-period-head>div{min-width:0}.reports-period-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.reports-period-dates{font-size:var(--text-label);color:var(--color-text-subtle)}.reports-period-goals{font-size:var(--text-label);color:var(--color-text-muted)}.reports-year-switcher{align-items:center;gap:var(--space-2);display:inline-flex}.reports-year-value{text-align:center;min-width:64px;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}
