@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}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--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,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{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.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,)}.border{border-style:var(--tw-border-style);border-width:1px}}*{box-sizing:border-box}html,body{min-height:100%;margin:var(--space-0)}body{background:var(--color-bg-canvas)}.today-screen,.calendar-screen{gap:var(--space-4);width:min(100%,72rem);padding-block:var(--space-6) var(--space-11);margin-inline:auto;display:grid}.today-panel{--today-shell:var(--color-today-shell);--today-surface:var(--color-today-surface);--today-surface-raised:var(--color-today-raised);--today-accent:var(--color-today-accent);--today-border:var(--color-today-border);--today-muted:var(--color-today-muted);gap:var(--space-5);border:calc(var(--space-1) / 2) solid var(--color-accent-primary);min-width:0;display:grid}@supports (color:color-mix(in lab, red, red)){.today-panel{border:calc(var(--space-1) / 2) solid color-mix(in srgb, var(--color-accent-primary) 24%, transparent)}}.today-panel{border-radius:calc(var(--radius-md) * 2);padding:clamp(var(--space-4), 3vw, var(--space-6));background:var(--today-shell);color:var(--color-today-foreground);box-shadow:var(--elevation-card)}.today-heading p,.today-section header p,.calendar-heading p{margin:var(--space-0);color:var(--color-accent-primary);font-size:var(--typography-scale-caption-font-size);font-weight:var(--typography-scale-headline-font-weight);letter-spacing:.08em;text-transform:uppercase}.today-heading h1,.today-section h2,.calendar-heading h1,.calendar-species h2{margin:var(--space-1) var(--space-0) var(--space-0)}.today-hero{align-items:center;gap:clamp(var(--space-4), 4vw, var(--space-7));border:calc(var(--space-1) / 2) solid var(--color-accent-primary);grid-template-columns:auto minmax(0,1fr);min-height:9rem;display:grid}@supports (color:color-mix(in lab, red, red)){.today-hero{border:calc(var(--space-1) / 2) solid color-mix(in srgb, var(--color-accent-primary) 42%, transparent)}}.today-hero{border-radius:calc(var(--radius-md) + var(--space-2));background:radial-gradient(circle at 8% 15%, var(--color-accent-primary), transparent 42%), linear-gradient(135deg, var(--color-bg-surface), var(--color-bg-sunken))}@supports (color:color-mix(in lab, red, red)){.today-hero{background:radial-gradient(circle at 8% 15%, color-mix(in srgb, var(--color-accent-primary) 13%, transparent), transparent 42%), linear-gradient(135deg, color-mix(in srgb, var(--color-bg-surface) 76%, var(--color-accent-primary-subtle)), var(--color-bg-sunken))}}.today-score{aspect-ratio:1;width:clamp(5.5rem,14vw,7rem);color:var(--color-text-primary);font-variant-numeric:tabular-nums;justify-content:center;align-items:baseline;display:flex}.today-score-ring{padding:var(--space-2);background:conic-gradient(var(--color-accent-primary) var(--today-score-angle), var(--color-text-primary) 0);border-radius:50%;flex:none;align-items:center}@supports (color:color-mix(in lab, red, red)){.today-score-ring{background:conic-gradient(var(--color-accent-primary) var(--today-score-angle), color-mix(in srgb, var(--color-text-primary) 10%, transparent) 0)}}.today-score-ring{box-shadow:0 0 0 calc(var(--space-1) / 2) var(--color-accent-primary)}@supports (color:color-mix(in lab, red, red)){.today-score-ring{box-shadow:0 0 0 calc(var(--space-1) / 2) color-mix(in srgb, var(--color-accent-primary) 12%, transparent)}}.today-score-inner{border-radius:inherit;background:var(--color-bg-sunken);justify-content:center;align-items:baseline;width:100%;height:100%;display:flex}@supports (color:color-mix(in lab, red, red)){.today-score-inner{background:color-mix(in srgb, var(--color-bg-sunken) 86%, var(--color-accent-primary-subtle))}}.today-score-inner{padding-top:31%}.today-score strong,.calendar-score strong{font-size:var(--typography-scale-display-font-size)}.today-score span{color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size)}.today-verdict{align-content:center;gap:var(--space-3);display:grid}.today-verdict>p{margin:var(--space-0);color:var(--color-accent-primary);font-size:var(--typography-scale-title2-font-size);font-weight:var(--typography-scale-title2-font-weight)}.today-verdict>div{gap:var(--space-1);display:grid}.today-verdict>div span,.today-tide-card span,.calendar-day span,.calendar-score span{color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size)}.today-verdict a,.calendar-summary a{min-height:var(--size-touch-target-min);color:var(--color-accent-primary);font-weight:var(--typography-scale-headline-font-weight);align-content:center}.today-section{min-width:var(--space-0);gap:var(--space-3);display:grid}.today-species-grid,.calendar-species>ul{gap:var(--space-2);grid-template-columns:1fr;display:grid}.calendar-species>ul{margin:0;padding:0;list-style:none}.today-species-card,.calendar-species li,.today-day,.calendar-day{min-height:var(--size-touch-target-min);border:calc(var(--space-1) / 2) solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-surface);color:var(--color-text-primary)}.today-species-card,.calendar-species li{align-items:center;gap:var(--space-3);padding:var(--space-3);text-align:left;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.today-species-card{border-radius:calc(var(--radius-md) + var(--space-1));background:var(--color-bg-surface);border-color:#0000}@supports (color:color-mix(in lab, red, red)){.today-species-card{background:color-mix(in srgb, var(--color-bg-surface) 84%, var(--color-accent-primary-subtle))}}.today-species-card{text-decoration:none}.today-species-card:hover{border-color:var(--color-accent-primary)}@supports (color:color-mix(in lab, red, red)){.today-species-card:hover{border-color:color-mix(in srgb, var(--color-accent-primary) 46%, transparent)}}.today-species-rank{border-radius:var(--radius-md);background:var(--color-accent-primary);place-items:center;width:2rem;height:2rem;display:grid}@supports (color:color-mix(in lab, red, red)){.today-species-rank{background:color-mix(in srgb, var(--color-accent-primary) 18%, transparent)}}.today-species-rank{color:var(--color-accent-primary);font-weight:var(--typography-scale-headline-font-weight)}.today-species-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.today-species-card>strong{border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);background:var(--color-accent-primary)}@supports (color:color-mix(in lab, red, red)){.today-species-card>strong{background:color-mix(in srgb, var(--color-accent-primary) 14%, transparent)}}.today-species-card>strong{color:var(--color-accent-primary);font-size:var(--typography-scale-caption-font-size)}.today-species-card[aria-pressed=true],.today-day[aria-current=date],.calendar-day[aria-pressed=true]{border-color:var(--color-accent-primary);background:var(--color-accent-primary-subtle)}.today-tide-card{gap:var(--space-4);border-radius:calc(var(--radius-md) + var(--space-1));background:var(--color-bg-surface);border-color:#0000;display:grid}@supports (color:color-mix(in lab, red, red)){.today-tide-card{background:color-mix(in srgb, var(--color-bg-surface) 84%, var(--color-accent-primary-subtle))}}.today-tide-card>div:first-child{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.today-panel .today-hero{border-color:var(--today-border);background:var(--today-surface)}.today-panel .today-score-ring{background:conic-gradient(var(--today-accent) var(--today-score-angle), var(--today-accent) 0)}@supports (color:color-mix(in lab, red, red)){.today-panel .today-score-ring{background:conic-gradient(var(--today-accent) var(--today-score-angle), color-mix(in srgb, var(--today-accent) 13%, transparent) 0)}}.today-panel .today-score-inner{background:var(--today-shell)}.today-panel .today-verdict>p,.today-panel .today-verdict a,.today-panel .today-section header p{color:var(--today-accent)}.today-panel .today-species-card,.today-panel .today-day{background:var(--today-surface-raised);color:var(--color-today-foreground)}.today-panel .today-species-rank,.today-panel .today-species-card>strong{background:var(--today-accent)}@supports (color:color-mix(in lab, red, red)){.today-panel .today-species-rank,.today-panel .today-species-card>strong{background:color-mix(in srgb, var(--today-accent) 14%, transparent)}}.today-panel .today-species-rank,.today-panel .today-species-card>strong{color:var(--today-accent)}.today-panel .today-tide-card{border:calc(var(--space-1) / 2) solid var(--today-border);background:var(--today-surface)}.today-tide-chart-wrap{min-width:0}.today-tide-chart{touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%;height:10rem;display:block;overflow:visible}.today-tide-chart:focus-visible{outline:calc(var(--space-1) / 2) solid var(--today-accent);outline-offset:var(--space-1)}.today-tide-guide{stroke:var(--today-muted)}@supports (color:color-mix(in lab, red, red)){.today-tide-guide{stroke:color-mix(in srgb, var(--today-muted) 22%, transparent)}}.today-tide-guide{stroke-dasharray:3 5}.today-tide-line{fill:none;stroke:var(--today-accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.today-tide-now-line{stroke:var(--today-accent)}@supports (color:color-mix(in lab, red, red)){.today-tide-now-line{stroke:color-mix(in srgb, var(--today-accent) 50%, transparent)}}.today-tide-now-line{stroke-dasharray:2 4}.today-tide-now-halo{fill:var(--today-shell);stroke:var(--today-accent);stroke-width:2px}.today-tide-now-dot{fill:var(--color-today-foreground)}.today-tide-time{fill:var(--today-muted);font-size:var(--typography-scale-caption-font-size)}.today-tide-inspection-guide{stroke:var(--color-today-foreground)}@supports (color:color-mix(in lab, red, red)){.today-tide-inspection-guide{stroke:color-mix(in srgb, var(--color-today-foreground) 55%, transparent)}}.today-tide-inspection-guide{stroke-width:1px}.today-tide-inspection-dot{fill:var(--color-today-foreground);stroke:var(--today-accent);stroke-width:3px}.today-tide-tooltip{fill:var(--color-today-foreground)}.today-tide-tooltip-text{fill:var(--today-shell);font-size:var(--typography-scale-caption-font-size);font-weight:700}.today-tide-card dl,.calendar-summary dl{gap:var(--space-3);margin:var(--space-0);display:grid}.today-tide-card dl>div,.calendar-summary dl>div{justify-content:space-between;gap:var(--space-3);display:flex}.today-tide-card dd,.calendar-summary dd{margin:var(--space-0);text-align:right}.today-week-strip,.calendar-days{grid-auto-columns:minmax(calc(var(--space-11) * 2), 1fr);gap:var(--space-3);padding-bottom:var(--space-2);scrollbar-width:thin;grid-auto-flow:column;display:grid;overflow-x:auto}.today-day,.calendar-day{gap:var(--space-2);padding:var(--space-3);text-align:left;display:grid}.today-day{background:var(--color-bg-surface);border-color:#0000}@supports (color:color-mix(in lab, red, red)){.today-day{background:color-mix(in srgb, var(--color-bg-surface) 84%, var(--color-accent-primary-subtle))}}.today-day{text-decoration:none}.today-day:first-child{border-color:var(--color-accent-primary);background:var(--color-accent-primary)}@supports (color:color-mix(in lab, red, red)){.today-day:first-child{background:color-mix(in srgb, var(--color-accent-primary) 14%, var(--color-bg-surface))}}.today-day strong,.calendar-day strong{font-size:var(--typography-scale-title2-font-size);font-variant-numeric:tabular-nums}.today-unavailable,.calendar-unavailable{color:var(--color-text-secondary)}.today-loading,.calendar-loading{gap:var(--space-4);display:grid}.calendar-detail{gap:var(--space-5);display:grid}.calendar-panel,.assistant-panel{border:calc(var(--space-1) / 2) solid var(--color-accent-primary);min-width:0}@supports (color:color-mix(in lab, red, red)){.calendar-panel,.assistant-panel{border:calc(var(--space-1) / 2) solid color-mix(in srgb, var(--color-accent-primary) 24%, transparent)}}.calendar-panel,.assistant-panel{border-radius:calc(var(--radius-md) * 2);padding:clamp(var(--space-4), 3vw, var(--space-6));background:linear-gradient(180deg, var(--color-bg-surface), var(--color-bg-sunken)), var(--color-bg-surface)}@supports (color:color-mix(in lab, red, red)){.calendar-panel,.assistant-panel{background:linear-gradient(180deg, color-mix(in srgb, var(--color-bg-surface) 92%, var(--color-accent-primary-subtle)), var(--color-bg-sunken)), var(--color-bg-surface)}}.calendar-panel,.assistant-panel{box-shadow:var(--elevation-card)}.calendar-panel{gap:var(--space-5);display:grid}.calendar-summary{gap:var(--space-5);border-color:var(--color-accent-primary);display:grid}@supports (color:color-mix(in lab, red, red)){.calendar-summary{border-color:color-mix(in srgb, var(--color-accent-primary) 34%, transparent)}}.calendar-summary{background:radial-gradient(circle at 10% 12%, var(--color-accent-primary), transparent 38%), linear-gradient(135deg, var(--color-bg-surface), var(--color-bg-sunken))}@supports (color:color-mix(in lab, red, red)){.calendar-summary{background:radial-gradient(circle at 10% 12%, color-mix(in srgb, var(--color-accent-primary) 11%, transparent), transparent 38%), linear-gradient(135deg, color-mix(in srgb, var(--color-bg-surface) 76%, var(--color-accent-primary-subtle)), var(--color-bg-sunken))}}.calendar-score{justify-content:space-between;align-items:baseline;display:flex}.calendar-species{align-content:start;gap:var(--space-4);display:grid}.assistant-screen{gap:var(--space-6);width:min(100%,72rem);padding-block:var(--space-6) var(--space-11);margin-inline:auto;display:grid}.assistant-heading{gap:var(--space-2);display:grid}.assistant-heading>*{margin:var(--space-0)}.assistant-heading>p:first-child,.assistant-kicker{color:var(--color-accent-primary);font-size:var(--typography-scale-caption-font-size);font-weight:var(--typography-scale-headline-font-weight);letter-spacing:.08em;text-transform:uppercase}.assistant-layout,.assistant-species,.assistant-tactics,.assistant-cards{min-width:var(--space-0);gap:var(--space-4);display:grid}.assistant-species{align-content:start}.assistant-species h2,.assistant-summary h2,.assistant-cards h2,.assistant-confidence h2{margin:var(--space-0)}.assistant-species-button{min-height:var(--size-touch-target-min);justify-content:space-between;align-items:center;gap:var(--space-3);border:calc(var(--space-1) / 2) solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-bg-surface);display:flex}@supports (color:color-mix(in lab, red, red)){.assistant-species-button{background:color-mix(in srgb, var(--color-bg-surface) 84%, var(--color-accent-primary-subtle))}}.assistant-species-button{color:var(--color-text-primary);text-align:left}.assistant-species-button[aria-pressed=true]{border-color:var(--color-accent-primary);background:var(--color-accent-primary)}@supports (color:color-mix(in lab, red, red)){.assistant-species-button[aria-pressed=true]{background:color-mix(in srgb, var(--color-accent-primary) 14%, var(--color-bg-surface))}}.assistant-species-button>strong{border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);background:var(--color-accent-primary)}@supports (color:color-mix(in lab, red, red)){.assistant-species-button>strong{background:color-mix(in srgb, var(--color-accent-primary) 14%, transparent)}}.assistant-species-button>strong{color:var(--color-accent-primary);font-size:var(--typography-scale-caption-font-size)}.assistant-species-button:focus-visible,.assistant-follow-up input:focus-visible,.assistant-confidence summary:focus-visible{outline:calc(var(--space-1) / 2) solid var(--color-accent-primary);outline-offset:var(--space-1)}.assistant-summary{gap:var(--space-3);border-color:var(--color-accent-primary);display:grid}@supports (color:color-mix(in lab, red, red)){.assistant-summary{border-color:color-mix(in srgb, var(--color-accent-primary) 36%, transparent)}}.assistant-summary{background:radial-gradient(circle at 12% 10%, var(--color-accent-primary), transparent 42%), linear-gradient(135deg, var(--color-bg-surface), var(--color-bg-sunken))}@supports (color:color-mix(in lab, red, red)){.assistant-summary{background:radial-gradient(circle at 12% 10%, color-mix(in srgb, var(--color-accent-primary) 12%, transparent), transparent 42%), linear-gradient(135deg, color-mix(in srgb, var(--color-bg-surface) 76%, var(--color-accent-primary-subtle)), var(--color-bg-sunken))}}.assistant-summary>*,.assistant-cards p,.assistant-confidence p{margin:var(--space-0)}.assistant-status{color:var(--color-text-secondary)}.assistant-partial-loading{max-width:calc(var(--space-11) * 5)}.assistant-cards>article,.assistant-confidence{align-content:start;gap:var(--space-3);background:var(--color-bg-surface);border-color:#0000;display:grid}@supports (color:color-mix(in lab, red, red)){.assistant-cards>article,.assistant-confidence{background:color-mix(in srgb, var(--color-bg-surface) 84%, var(--color-accent-primary-subtle))}}.assistant-cards ul,.assistant-confidence ul{margin:var(--space-0);padding-inline-start:var(--space-5)}.assistant-confidence details{color:var(--color-text-secondary)}.assistant-confidence summary{min-height:var(--size-touch-target-min);color:var(--color-accent-primary);cursor:pointer;align-content:center}.assistant-follow-up{gap:var(--space-2);display:grid}.assistant-follow-up>div{gap:var(--space-3);display:grid}.assistant-follow-up input{min-height:var(--size-touch-target-min);min-width:var(--space-0);border:calc(var(--space-1) / 2) solid var(--color-border-subtle);border-radius:var(--radius-md);padding-inline:var(--space-4);background:var(--color-bg-surface);color:var(--color-text-primary)}.forecast-tide-extremes{gap:var(--space-2);margin:var(--space-0);color:var(--color-text-secondary);padding-inline-start:var(--space-5);display:grid}.app-shell{min-height:100vh}.placeholder-screen{min-height:calc(100vh - var(--size-app-bar-height));align-content:start;gap:var(--space-5);display:grid}.settings-screen{gap:var(--space-3);max-width:40rem;display:grid}.settings-screen select{min-height:var(--size-touch-target-min);padding:var(--space-2) var(--space-3);color:var(--color-text-primary);background:var(--color-bg-surface);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-sm)}.placeholder-screen h1{margin:var(--space-0);font-size:var(--typography-scale-title1-font-size);line-height:var(--typography-scale-title1-line-height)}.placeholder-screen>p{max-width:calc(var(--space-11) * 10);margin:var(--space-0);color:var(--color-text-secondary)}.placeholder-body{min-height:calc(var(--space-11) * 4);border:calc(var(--space-1) / 2) dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-surface);padding:var(--space-5);color:var(--color-text-secondary)}.dashboard-page{width:min(100%, calc(var(--breakpoint-expanded) + var(--space-8)));margin:var(--space-0) auto;padding:var(--space-6) var(--space-5) var(--space-11)}.dashboard-title{margin:var(--space-0) var(--space-0) var(--space-6);font-size:var(--typography-scale-title1-font-size);line-height:var(--typography-scale-title1-line-height)}.dashboard-solunar{gap:var(--space-5);display:grid}.dashboard-solunar-main,.dashboard-solunar-context{min-width:var(--space-0);gap:var(--space-5);display:grid}.solunar-period-card,.solunar-moon-card,.solunar-sun-card{min-width:var(--space-0)}.solunar-card-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.solunar-card-heading h2,.solunar-moon-card h2,.solunar-sun-card h2,.solunar-moon-card p,.solunar-sun-card p{margin:var(--space-0)}.solunar-card-heading h2,.solunar-moon-card h2,.solunar-sun-card h2{font-size:var(--typography-scale-headline-font-size);line-height:var(--typography-scale-headline-line-height)}.solunar-card-description{margin:var(--space-4) var(--space-0) var(--space-0);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size)}.solunar-period-list{margin:var(--space-5) var(--space-0) var(--space-0);padding:var(--space-0);list-style:none;display:grid}.solunar-period{grid-template-columns:auto minmax(calc(var(--space-11) * 2), 1fr) auto;align-items:center;gap:var(--space-2) var(--space-4);min-height:var(--size-touch-target-field);border-top:calc(var(--space-1) / 2) solid var(--color-border-subtle);padding:var(--space-3) var(--space-0);font-variant-numeric:tabular-nums;display:grid}.solunar-period>.ds-icon{color:var(--color-accent-primary)}.solunar-period-kind{font-weight:var(--typography-scale-headline-font-weight)}.solunar-period-window{color:var(--color-text-primary);text-align:right}.solunar-period-peak{color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size);grid-column:2/-1}.solunar-moon-summary{align-items:center;gap:var(--space-4);display:flex}.solunar-moon-summary p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size)}.solunar-facts{gap:var(--space-3);margin:var(--space-5) var(--space-0) var(--space-0);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.solunar-facts>div{min-width:var(--space-0)}.solunar-facts dt{color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.solunar-facts dd{margin:var(--space-1) var(--space-0) var(--space-0);font-weight:var(--typography-scale-headline-font-weight);font-variant-numeric:tabular-nums}.solunar-sun-card .solunar-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.solunar-polar-state{color:var(--color-text-secondary);margin-top:var(--space-5)!important}.dashboard-page{gap:var(--space-5);display:grid}.dashboard-state-banner{min-height:var(--size-touch-target-field);justify-content:center;align-items:center;gap:var(--space-4);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-accent-primary-subtle);padding:var(--space-3) var(--space-5);color:var(--color-text-secondary);display:flex}.demo-mode-banner{width:100%;min-height:var(--size-touch-target-min);justify-content:space-between;align-items:center;gap:var(--space-3);border:calc(var(--space-1) / 2) solid var(--color-border-strong);background:var(--color-accent-primary-subtle);padding:var(--space-3) max(var(--space-5), env(safe-area-inset-right)) var(--space-3) max(var(--space-5), env(safe-area-inset-left));color:var(--color-text-secondary);font-size:var(--typography-scale-subhead-font-size);line-height:var(--typography-scale-subhead-line-height);display:flex}.dashboard-layout,.dashboard-main,.dashboard-context{min-width:var(--space-0);gap:var(--space-5);display:grid}.dashboard-context,.dashboard-days-context{display:none}.dashboard-hero{justify-items:center;gap:var(--space-3);text-align:center;display:grid}.dashboard-gauge{--dashboard-gauge-color:var(--color-score-good);width:var(--size-gauge);height:var(--size-gauge);place-items:center;display:grid;position:relative}.dashboard-gauge-poor{--dashboard-gauge-color:var(--color-score-poor)}.dashboard-gauge-fair{--dashboard-gauge-color:var(--color-score-fair)}.dashboard-gauge-prime{--dashboard-gauge-color:var(--color-score-prime)}.dashboard-gauge-arc{inset:var(--space-0);border-radius:var(--radius-full);background:conic-gradient(from 225deg, var(--dashboard-gauge-color) var(--space-0) var(--dashboard-score), var(--color-border-subtle) var(--dashboard-score) 75%, transparent 75% 100%);-webkit-mask:radial-gradient(circle, transparent 62%, var(--color-text-primary) 63%);-webkit-mask:radial-gradient(circle, transparent 62%, var(--color-text-primary) 63%);-webkit-mask:radial-gradient(circle, transparent 62%, var(--color-text-primary) 63%);mask:radial-gradient(circle, transparent 62%, var(--color-text-primary) 63%);animation:dashboard-gauge-in var(--motion-duration-gauge) var(--motion-easing-standard);position:absolute}.dashboard-gauge-content{place-items:center;display:grid}.dashboard-gauge-content>strong{font-size:var(--typography-scale-score-numeral-font-size);line-height:var(--typography-scale-score-numeral-line-height);font-variant-numeric:tabular-nums}.dashboard-gauge-content>span:not(.dashboard-confidence){color:var(--dashboard-gauge-color);font-size:var(--typography-scale-caption-font-size);font-weight:var(--typography-scale-caption-font-weight);text-transform:uppercase}.dashboard-confidence{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size);display:flex}.dashboard-confidence-dots{gap:var(--space-2);display:flex}.dashboard-confidence-dots i{width:var(--space-3);height:var(--space-3);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-full)}.dashboard-confidence-dots i.is-filled{border-color:var(--color-text-secondary);background:var(--color-text-secondary)}.dashboard-recommendation p{justify-content:center;gap:var(--space-1);margin:var(--space-0);font-size:var(--typography-scale-headline-font-size);line-height:var(--typography-scale-headline-line-height);flex-wrap:wrap;display:flex}.dashboard-recommendation{justify-items:center;gap:var(--space-1);display:grid}.dashboard-recommendation a,.dashboard-insight-link,.dashboard-metric-link{color:inherit;text-decoration:none}.dashboard-recommendation a{min-height:var(--size-touch-target-min);color:var(--color-accent-primary);align-items:center;display:inline-flex}.dashboard-quality-row{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.dashboard-quality{min-width:var(--space-0);position:relative}.dashboard-quality>summary{max-width:100%;min-height:var(--size-touch-target-min);cursor:pointer;align-items:center;list-style:none;display:flex}.dashboard-quality-row .dashboard-quality .ds-badge{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.dashboard-quality>summary::-webkit-details-marker{display:none}.dashboard-provenance{z-index:var(--z-index-banner);top:var(--size-touch-target-min);width:min(calc(var(--space-11) * 6), 80vw);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-raised);box-shadow:var(--elevation-overlay);padding:var(--space-5);color:var(--color-text-secondary);text-align:left;position:absolute;left:50%;transform:translate(-50%)}.dashboard-provenance ul,.dashboard-provenance p{margin:var(--space-3) var(--space-0) var(--space-0)}.dashboard-quality>summary:focus-visible,.dashboard-table>summary:focus-visible{border-radius:var(--radius-xs);outline:var(--space-1) solid var(--color-border-focus);outline-offset:var(--space-1)}.dashboard-timeline{min-width:var(--space-0)}.dashboard-timeline>header,.dashboard-insight>header,.dashboard-metric>header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.dashboard-timeline>header{flex-wrap:wrap}.dashboard-timeline h2,.dashboard-insight h2,.dashboard-module-error h2{margin:var(--space-0);font-size:var(--typography-scale-headline-font-size);line-height:var(--typography-scale-headline-line-height)}.dashboard-insight header>span,.dashboard-metric header>span,.dashboard-metric>span,.dashboard-context-quality>span,.dashboard-moon span{color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size)}.dashboard-timeline-legend{gap:var(--space-4);margin:var(--space-0);padding:var(--space-0);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size);line-height:var(--typography-scale-caption-line-height);list-style:none;display:flex}.dashboard-timeline-legend li{align-items:center;gap:var(--space-2);display:flex}.dashboard-timeline-legend i{width:var(--space-4);height:var(--space-4);border:var(--space-1) solid var(--color-chart-secondary);background:var(--color-chart-night)}.dashboard-timeline-legend .dashboard-timeline-key-minor{border-color:var(--color-chart-tertiary);background:0 0;border-style:dashed}.dashboard-timeline-scrubber{min-height:calc(var(--space-11) * 2 + var(--space-10));margin-top:var(--space-4);cursor:crosshair;touch-action:pan-y}.dashboard-timeline-scrubber svg{width:100%;height:calc(var(--space-11) * 2 + var(--space-10));border-bottom:calc(var(--space-1) / 2) solid var(--color-border-subtle);background:var(--color-bg-sunken);display:block}.dashboard-solunar-band{fill:var(--color-chart-night);stroke:var(--color-chart-secondary);stroke-width:var(--space-1)}.dashboard-solunar-band-minor{fill:#0000;stroke:var(--color-chart-tertiary);stroke-dasharray:var(--space-2) var(--space-2)}.dashboard-timeline-area{fill:var(--color-chart-area-top)}.dashboard-timeline-line{fill:none;stroke:var(--color-chart-line);stroke-linecap:round;stroke-linejoin:round;stroke-width:var(--space-1);vector-effect:non-scaling-stroke}.dashboard-timeline-now{stroke:var(--color-chart-now-line);stroke-width:var(--space-1);vector-effect:non-scaling-stroke}.dashboard-timeline-value{margin:var(--space-2) var(--space-0) var(--space-0);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size)}.dashboard-table>summary{min-height:var(--size-touch-target-min);cursor:pointer;color:var(--color-accent-primary)}.dashboard-table>div{max-height:calc(var(--space-11) * 5);overflow:auto}.dashboard-table table{border-collapse:collapse;width:100%;font-size:var(--typography-scale-caption-font-size)}.dashboard-table th,.dashboard-table td{border-bottom:calc(var(--space-1) / 2) solid var(--color-border-subtle);padding:var(--space-3);text-align:left}.dashboard-metrics,.dashboard-loading-metrics{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dashboard-metric-link{height:100%;min-width:var(--space-0);display:block}.dashboard-metric{height:100%;min-height:calc(var(--space-11) * 2);min-width:var(--space-0);align-content:start;gap:var(--space-3);grid-template-rows:auto auto 1fr;display:grid}.dashboard-metric>header{min-width:var(--space-0);align-content:start;justify-items:start;gap:var(--space-2);display:grid}.dashboard-metric .dashboard-quality{width:100%;min-width:var(--space-0)}.dashboard-metric .dashboard-quality>summary{max-width:100%}.dashboard-metric .dashboard-quality .ds-badge{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.dashboard-metric>strong,.dashboard-context-quality>strong,.dashboard-moon strong{font-size:var(--typography-scale-metric-font-size);line-height:var(--typography-scale-metric-line-height);font-weight:var(--typography-scale-metric-font-weight);font-variant-numeric:tabular-nums}.dashboard-metric>strong{overflow-wrap:anywhere}.dashboard-module-error{min-height:calc(var(--space-11) * 2)}.dashboard-module-error p{margin:var(--space-3) var(--space-0) var(--space-0);color:var(--color-text-secondary)}.dashboard-insight-link{display:block}.dashboard-insight ol{gap:var(--space-4);margin:var(--space-5) var(--space-0) var(--space-0);padding:var(--space-0);list-style:none;display:grid}.dashboard-insight li{grid-template-columns:auto minmax(0, 1fr) minmax(var(--space-11), 25%);align-items:center;gap:var(--space-3);display:grid}.dashboard-insight li>i{height:var(--space-3);border-radius:var(--radius-full);background:var(--color-border-subtle);align-items:center;display:flex}.dashboard-insight li>i>b{width:var(--dashboard-factor-width);border-radius:inherit;background:var(--color-score-good);height:100%}.dashboard-insight li.is-negative>i{justify-content:flex-end}.dashboard-insight li.is-negative>i>b{background:var(--color-score-poor)}.dashboard-days{overscroll-behavior-inline:contain;scrollbar-width:none;overflow-x:auto}.dashboard-days::-webkit-scrollbar{display:none}.dashboard-days ol{grid-auto-columns:var(--size-touch-target-field);gap:var(--space-2);width:max-content;margin:var(--space-0);padding:var(--space-0);grid-auto-flow:column;list-style:none;display:grid}.dashboard-days li{min-height:var(--size-touch-target-field);border:calc(var(--space-1) / 2) solid var(--color-border-subtle);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size);place-items:center;display:grid}.dashboard-days li[aria-current=date]{border-color:var(--color-accent-primary);background:var(--color-accent-primary-subtle);color:var(--color-accent-primary)}.dashboard-moon{align-items:center;gap:var(--space-4);display:flex}.dashboard-moon>div,.dashboard-context-quality{gap:var(--space-2);display:grid}.dashboard-context-quality .ds-badge{width:fit-content}.dashboard-loading-hero{justify-items:center;gap:var(--space-5);display:grid}.dashboard-loading-hero .ds-skeleton-circle{width:var(--size-gauge);height:var(--size-gauge)}.dashboard-loading-chart,.dashboard-loading-gauge{min-height:calc(var(--space-11) * 4)}@keyframes dashboard-gauge-in{0%{opacity:0;transform:rotate(-45deg)}}.app-shell-stage>.ds-offline-banner{border-right:var(--space-0);border-left:var(--space-0);border-radius:var(--space-0)}.shell-icon-link{width:var(--size-touch-target-min);height:var(--size-touch-target-min);border-radius:var(--radius-sm);color:var(--color-text-primary);place-items:center;display:grid}.desktop-refresh,.desktop-only-app-bar{display:none}.map-page{height:100dvh;min-height:calc(var(--space-11) * 6);background:var(--color-bg-sunken);flex-direction:column;display:flex;position:relative;overflow:hidden}.map-page>.ds-offline-banner{border-right:var(--space-0);border-left:var(--space-0);border-radius:var(--space-0);flex:none}.map-frame{min-height:var(--space-0);flex:auto;position:relative}.map-view,.map-renderer-host{width:100%;height:100%}.map-renderer-host{position:relative}.map-loading,.map-render-error,.map-page-placeholder{place-items:center;display:grid}.map-loading{z-index:var(--z-index-content);inset:var(--space-0);align-content:center;gap:var(--space-4);background:var(--color-bg-sunken);color:var(--color-text-secondary);position:absolute}.map-loading-block{width:calc(var(--space-11) * 3);height:var(--space-8);border-radius:var(--radius-sm);background:var(--color-bg-raised);animation:shimmer var(--motion-duration-gauge) var(--motion-easing-standard) infinite alternate}.map-render-error{z-index:var(--z-index-content);inset:var(--space-0);align-content:center;gap:var(--space-2);background:var(--color-bg-sunken);padding:var(--space-6);text-align:center;position:absolute}.map-render-error span{color:var(--color-text-secondary)}.map-controls{z-index:var(--z-index-app-bar);top:max(var(--space-5), env(safe-area-inset-top));right:max(var(--space-5), env(safe-area-inset-right));border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-surface);box-shadow:var(--elevation-overlay);display:grid;position:absolute;overflow:hidden}.map-controls .ds-icon-button{border-radius:var(--space-0)}.map-coordinate-display,.map-attribution{z-index:var(--z-index-content);bottom:calc(var(--size-tab-bar-height) + var(--space-4) + env(safe-area-inset-bottom));border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-xs);background:var(--color-bg-surface);box-shadow:var(--elevation-card);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size);line-height:var(--typography-scale-caption-line-height);position:absolute}.map-coordinate-display{left:max(var(--space-4), env(safe-area-inset-left));padding:var(--space-2) var(--space-3);font-variant-numeric:tabular-nums}.map-attribution{right:max(var(--space-4), env(safe-area-inset-right));max-width:min(50%, calc(var(--space-11) * 5));padding:var(--space-1) var(--space-2);text-align:right}.map-permission-panel{z-index:var(--z-index-app-bar);top:max(var(--space-5), env(safe-area-inset-top));left:max(var(--space-5), env(safe-area-inset-left));width:min(calc(100% - var(--space-11) * 2), calc(var(--space-11) * 5));max-height:calc(100% - var(--space-10) * 2);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg-surface);box-shadow:var(--elevation-overlay);padding:var(--space-5);position:absolute;overflow:auto}.map-permission-panel>p{margin:var(--space-3) var(--space-0) var(--space-0);color:var(--color-text-secondary);text-align:center}.map-page-placeholder{padding:var(--space-7);align-content:center}.map-renderer-marker{width:var(--size-touch-target-min);height:var(--size-touch-target-min);border:var(--space-0);background:0 0;place-items:center;display:grid}.map-renderer-marker-default:before{width:var(--space-5);height:var(--space-5);border:var(--space-1) solid var(--color-bg-surface);border-radius:var(--radius-full) var(--radius-full) var(--radius-full) var(--space-0);background:var(--color-accent-primary);box-shadow:var(--elevation-raised);content:"";transform:rotate(-45deg)}.map-renderer-marker-current-location{width:var(--size-touch-target-field);height:var(--size-touch-target-field)}.map-renderer-marker-current-location:before{width:var(--space-5);height:var(--space-5);border:var(--space-1) solid var(--color-bg-surface);border-radius:var(--radius-full);background:var(--color-accent-primary);box-shadow:0 0 0 var(--space-3) var(--color-accent-primary-subtle);content:""}.global-loading-host{z-index:var(--z-index-dialog);inset:var(--space-0);align-content:center;gap:var(--space-5);background:var(--color-bg-canvas);padding:var(--space-7);display:grid;position:fixed}.global-loading-host>*{width:min(100%, calc(var(--space-11) * 8));margin:var(--space-0) auto}.shell-error-boundary details{margin-top:var(--space-4);color:var(--color-text-secondary);font-size:var(--typography-scale-footnote-font-size)}.health-page,.error-page{width:min(100%, calc(var(--breakpoint-expanded) + var(--space-5)));margin:var(--space-0) auto;padding:var(--space-9) var(--space-6) var(--space-11)}.health-heading{margin-bottom:var(--space-8)}.eyebrow{margin:var(--space-0) var(--space-0) var(--space-3);color:var(--color-accent-primary);font-size:var(--typography-scale-caption-font-size);font-weight:var(--typography-scale-headline-font-weight);text-transform:uppercase}.health-heading h1,.error-page h1{margin:var(--space-0);font-size:var(--typography-scale-display-font-size);line-height:var(--typography-scale-display-line-height);letter-spacing:var(--typography-scale-display-letter-spacing)}.health-summary{margin:var(--space-4) var(--space-0) var(--space-0);color:var(--color-text-secondary);font-size:var(--typography-scale-subhead-font-size)}.status-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.status-card{min-height:calc(var(--space-11) * 2);padding:var(--space-6)}.status-card-heading{align-items:center;gap:var(--space-4);display:flex}.status-card h2{margin:var(--space-0);font-size:var(--typography-scale-subhead-font-size);font-weight:var(--typography-scale-caption-font-weight)}.status-card p{margin:var(--space-7) var(--space-0) var(--space-0);color:var(--color-text-secondary);font-size:var(--typography-scale-metric-font-size);font-weight:var(--typography-scale-metric-font-weight)}.status-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full);background:var(--color-status-offline)}.status-dot-success{background:var(--color-status-success)}.status-dot-danger{background:var(--color-status-danger)}.offline-banner{width:100%}.readiness{margin-top:var(--space-6);color:var(--color-text-secondary);font-size:var(--typography-scale-footnote-font-size)}.readiness-ready{color:var(--color-status-success)}.readiness-not_ready{color:var(--color-status-danger)}.inline-error{margin-top:var(--space-6);border-left:var(--space-1) solid var(--color-status-danger);border-radius:var(--radius-sm);background:var(--color-bg-surface);padding:var(--space-5) var(--space-6)}.inline-error p{margin:var(--space-0) var(--space-0) var(--space-3)}.inline-error small,.error-page small{color:var(--color-text-secondary);display:block}.inline-error button,.error-page button{min-height:var(--size-touch-target-min);margin-top:var(--space-5);border:var(--space-0);border-radius:var(--radius-sm);background:var(--color-accent-primary);padding:var(--space-0) var(--space-5);color:var(--color-text-on-accent);cursor:pointer;font-weight:var(--typography-scale-headline-font-weight)}.skeleton{border-radius:var(--radius-sm);background:var(--color-bg-raised);animation:shimmer var(--motion-duration-gauge) var(--motion-easing-standard) infinite alternate}.skeleton-eyebrow{width:calc(var(--space-11) + var(--space-8));height:var(--typography-scale-axis-label-line-height)}.skeleton-title{width:min(calc(var(--space-11) * 5), 80vw);height:var(--space-9);margin-top:var(--space-4)}.skeleton-card{min-height:calc(var(--space-11) * 2)}.forecast-page{width:min(100%, calc(var(--breakpoint-expanded) + var(--space-8)));margin:var(--space-0) auto;gap:var(--space-6);padding:var(--space-6) var(--space-5) var(--space-11);display:grid}.forecast-segmented{width:min(100%, calc(var(--space-11) * 5));min-height:var(--size-touch-target-min);margin:var(--space-0) auto;border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-bg-sunken);grid-template-columns:repeat(2,1fr);display:grid;overflow:hidden}.forecast-segmented a{color:var(--color-text-secondary);place-items:center;text-decoration:none;display:grid}.forecast-segmented a[aria-current=page]{background:var(--color-accent-primary-subtle);color:var(--color-accent-primary);font-weight:var(--typography-scale-headline-font-weight)}.forecast-hero{min-height:calc(var(--space-11) * 3);padding:var(--space-7);position:relative}.forecast-hero>.forecast-quality{top:var(--space-5);right:var(--space-5);position:absolute}.forecast-hero h1,.forecast-hero p,.forecast-chart-card h2,.forecast-direction-card h2,.forecast-sun-card h2,.forecast-sun-card p{margin:var(--space-0)}.forecast-hero>p:not(.forecast-metric){max-width:calc(var(--space-11) * 7);margin-top:var(--space-3);color:var(--color-text-secondary)}.forecast-metric{padding-top:var(--space-6);font-size:var(--typography-scale-metric-font-size);font-weight:var(--typography-scale-metric-font-weight);line-height:var(--typography-scale-metric-line-height)}.forecast-chart-grid{gap:var(--space-5);display:grid}.forecast-chart-card{min-width:0;min-height:calc(var(--space-11) * 4);padding:var(--space-5)}.forecast-chart-card>header{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}.forecast-chart-card h2,.forecast-direction-card h2,.forecast-sun-card h2{font-size:var(--typography-scale-headline-font-size);line-height:var(--typography-scale-headline-line-height)}.forecast-direction-card{min-height:calc(var(--space-11) * 4);padding:var(--space-5);position:relative}.forecast-direction-card>.forecast-quality{top:var(--space-5);right:var(--space-5);position:absolute}.forecast-direction-value{align-items:center;gap:var(--space-4);margin:var(--space-5) var(--space-0) var(--space-0);color:var(--color-text-secondary);display:flex}.forecast-direction-arrow{width:var(--size-touch-target-min);height:var(--size-touch-target-min);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-accent-primary);font-size:var(--typography-scale-title2-font-size);place-items:center;display:inline-grid}.forecast-quality{flex:none;position:relative}.forecast-quality>summary{min-height:var(--size-touch-target-min);cursor:pointer;list-style:none}.forecast-quality>summary::-webkit-details-marker{display:none}.forecast-provenance{z-index:var(--z-index-app-bar);top:var(--size-touch-target-min);right:var(--space-0);width:min(calc(var(--space-11) * 6), 80vw);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-raised);box-shadow:var(--elevation-overlay);padding:var(--space-5);color:var(--color-text-secondary);font-size:var(--typography-scale-footnote-font-size);position:absolute}.forecast-provenance ul,.forecast-provenance p{margin:var(--space-3) var(--space-0) var(--space-0);padding-left:var(--space-5)}.forecast-chart-scrubber{min-height:calc(var(--space-11) * 3);margin-top:var(--space-4);cursor:crosshair;touch-action:pan-y}.forecast-chart-scrubber:focus-visible{outline:var(--space-1) solid var(--color-border-focus);outline-offset:var(--space-1)}.forecast-chart{width:100%;height:calc(var(--space-11) * 3);margin-top:var(--space-0);border-bottom:calc(var(--space-1) / 2) solid var(--color-border-subtle);background:var(--color-bg-sunken);display:block}.forecast-crosshair{stroke:var(--color-chart-crosshair);stroke-width:var(--space-1);vector-effect:non-scaling-stroke}.forecast-chart-value{min-height:var(--size-touch-target-min);margin:var(--space-2) var(--space-0) var(--space-0);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size)}.forecast-series{fill:none;stroke:var(--color-chart-line);stroke-linecap:round;stroke-linejoin:round;stroke-width:var(--space-1);vector-effect:non-scaling-stroke}.forecast-series-2{stroke:var(--color-chart-secondary);stroke-dasharray:var(--space-3) var(--space-2)}.forecast-legend{gap:var(--space-4);margin-top:var(--space-3);color:var(--color-text-secondary);font-size:var(--typography-scale-caption-font-size);flex-wrap:wrap;display:flex}.forecast-key{width:var(--space-5);border-top:var(--space-1) solid var(--color-chart-line);vertical-align:middle;display:inline-block}.forecast-key-2{border-top-color:var(--color-chart-secondary);border-top-style:dashed}.forecast-table{margin-top:var(--space-4)}.forecast-table>summary{min-height:var(--size-touch-target-min);cursor:pointer;color:var(--color-accent-primary);font-weight:var(--typography-scale-headline-font-weight)}.forecast-table-scroll{max-height:calc(var(--space-11) * 5);overflow:auto}.forecast-table table{border-collapse:collapse;width:100%;font-size:var(--typography-scale-caption-font-size)}.forecast-table caption{padding:var(--space-3);text-align:left}.forecast-table th,.forecast-table td{border-bottom:calc(var(--space-1) / 2) solid var(--color-border-subtle);padding:var(--space-3);text-align:left;white-space:nowrap}.forecast-sun-card{padding:var(--space-6);position:relative}.forecast-sun-card .forecast-quality{top:var(--space-4);right:var(--space-4);position:absolute}.forecast-sun-card p{margin-top:var(--space-4);color:var(--color-text-secondary)}.forecast-degraded-banner{justify-content:center;align-items:center;gap:var(--space-4);min-height:var(--size-touch-target-field);background:var(--color-accent-primary-subtle);padding:var(--space-3) var(--space-5);color:var(--color-text-primary);display:flex}.forecast-skeleton-hero{min-height:calc(var(--space-11) * 3)}.forecast-skeleton-chart{min-height:calc(var(--space-11) * 4)}.decision-page{gap:var(--space-6);padding-block:var(--space-6);display:grid}.decision-header{justify-content:space-between;align-items:start;gap:var(--space-4);display:flex}.decision-header p,.decision-windows p,.decision-methodology p{color:var(--color-text-secondary)}.decision-hero{gap:var(--space-5);border-top:var(--space-2) solid var(--color-accent-primary);display:grid}.decision-score{width:min(100%, calc(var(--space-11) * 4));min-height:calc(var(--space-11) * 3);border-radius:var(--radius-md);background:var(--color-accent-primary-subtle);text-align:center;place-content:center;display:grid}.decision-score strong{font-size:var(--typography-scale-display-font-size)}.decision-hero-meta,.decision-evidence-list,.decision-versions dl{gap:var(--space-3);margin:0;display:grid}.decision-hero-meta div,.decision-evidence-list div,.decision-versions dl div{justify-content:space-between;gap:var(--space-4);display:flex}.decision-hero-meta dd,.decision-evidence-list dd,.decision-versions dd{text-align:right;margin:0}.decision-provenance summary{min-height:var(--size-touch-target-min);cursor:pointer;color:var(--color-accent-primary)}.decision-layout,.decision-main,.decision-context,.decision-module-list,.decision-detail,.decision-list-grid{gap:var(--space-5);display:grid}.decision-windows ol,.decision-module-list ul,.decision-list-grid ul{gap:var(--space-3);margin:var(--space-4) 0 0;padding:0;list-style:none;display:grid}.decision-windows li,.decision-list-grid li{align-items:center;gap:var(--space-3);min-height:var(--size-touch-target-min);display:flex}.decision-factor,.decision-species-options button{width:100%;min-height:var(--size-touch-target-min);border:calc(var(--space-1) / 2) solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-surface);padding:var(--space-3) var(--space-4);color:var(--color-text-primary);text-align:left}.decision-factor{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.decision-factor:focus-visible,.decision-species-options button:focus-visible{outline:var(--space-1) solid var(--color-border-focus);outline-offset:var(--space-1)}.decision-factor:hover,.decision-species-options button:hover,.decision-species-options button[aria-pressed=true]{border-color:var(--color-accent-primary);background:var(--color-accent-primary-subtle)}.decision-species-options{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.decision-species-options button{width:auto}.decision-loading-hero{min-height:calc(var(--space-11) * 3)}@keyframes shimmer{to{background:var(--color-border-subtle)}}@media (max-width:600px){.health-page,.error-page{padding-top:var(--space-8)}.status-grid{grid-template-columns:1fr}}@media (min-width:600px){.dashboard-quality-row{justify-content:center;width:auto;display:flex}.dashboard-days ol{grid-auto-columns:auto;grid-auto-flow:row;grid-template-columns:repeat(7, minmax(var(--size-touch-target-field), 1fr));width:100%}.today-week-strip{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-flow:row}}@media (min-width:1024px){.desktop-only-app-bar{display:block}.desktop-refresh{display:inline-flex}.placeholder-screen{min-height:calc(100vh - var(--size-app-bar-height))}.map-page{height:calc(100dvh - var(--size-app-bar-height))}.map-coordinate-display,.map-attribution{bottom:max(var(--space-5), env(safe-area-inset-bottom))}.forecast-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.today-screen{grid-template-columns:1fr}.today-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.today-hero,.today-week{grid-column:1/-1}.calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-flow:row}.calendar-detail{grid-template-columns:minmax(0, 8fr) minmax(calc(var(--space-11) * 4), 4fr)}.assistant-layout{grid-template-columns:minmax(calc(var(--space-11) * 4), 4fr) minmax(0, 8fr);gap:var(--space-6)}.assistant-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-follow-up>div{grid-template-columns:minmax(0,1fr) auto}.dashboard-solunar{grid-template-columns:minmax(0, 8fr) minmax(calc(var(--space-11) * 4), 4fr)}.dashboard-layout{grid-template-columns:minmax(0, 8fr) minmax(calc(var(--space-11) * 4), 4fr);gap:var(--space-7)}.dashboard-context{align-content:start;display:grid}.dashboard-days-main{display:none}.dashboard-days-context{display:block}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-timeline-scrubber svg{height:calc(var(--space-11) * 2 + var(--space-10))}.forecast-chart{height:calc(var(--space-11) * 4)}.decision-hero{grid-template-columns:minmax(calc(var(--space-11) * 4), 4fr) minmax(0, 5fr) minmax(0, 3fr);align-items:center}.decision-layout{grid-template-columns:minmax(0, 8fr) minmax(calc(var(--space-11) * 4), 4fr)}.decision-context{align-content:start}.decision-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:600px) and (not (min-width:1024px)){.dashboard-main{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.dashboard-metrics,.dashboard-insight-link,.dashboard-days-main{grid-column:1/-1}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.dashboard-gauge-arc,.map-loading-block,.skeleton{animation:none}}@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}
:root{--typography-font-family-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--typography-font-family-mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", monospace;--typography-scale-score-numeral-font-size:56px;--typography-scale-score-numeral-line-height:60px;--typography-scale-score-numeral-font-weight:700;--typography-scale-score-numeral-letter-spacing:-.02em;--typography-scale-score-numeral-font-variant-numeric:tabular-nums;--typography-scale-display-font-size:34px;--typography-scale-display-line-height:40px;--typography-scale-display-font-weight:700;--typography-scale-display-letter-spacing:-.015em;--typography-scale-title1-font-size:28px;--typography-scale-title1-line-height:34px;--typography-scale-title1-font-weight:700;--typography-scale-title1-letter-spacing:-.01em;--typography-scale-title2-font-size:22px;--typography-scale-title2-line-height:28px;--typography-scale-title2-font-weight:600;--typography-scale-title3-font-size:20px;--typography-scale-title3-line-height:25px;--typography-scale-title3-font-weight:600;--typography-scale-headline-font-size:17px;--typography-scale-headline-line-height:22px;--typography-scale-headline-font-weight:600;--typography-scale-body-font-size:17px;--typography-scale-body-line-height:24px;--typography-scale-body-font-weight:400;--typography-scale-callout-font-size:16px;--typography-scale-callout-line-height:21px;--typography-scale-callout-font-weight:400;--typography-scale-subhead-font-size:15px;--typography-scale-subhead-line-height:20px;--typography-scale-subhead-font-weight:400;--typography-scale-footnote-font-size:13px;--typography-scale-footnote-line-height:18px;--typography-scale-footnote-font-weight:400;--typography-scale-caption-font-size:12px;--typography-scale-caption-line-height:16px;--typography-scale-caption-font-weight:500;--typography-scale-metric-font-size:22px;--typography-scale-metric-line-height:26px;--typography-scale-metric-font-weight:600;--typography-scale-metric-font-variant-numeric:tabular-nums;--typography-scale-axis-label-font-size:11px;--typography-scale-axis-label-line-height:14px;--typography-scale-axis-label-font-weight:500;--typography-scale-axis-label-font-variant-numeric:tabular-nums;--space-0:0px;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px;--space-11:64px;--radius-xs:6px;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-full:999px;--size-touch-target-min:44px;--size-touch-target-field:56px;--size-tab-bar-height:64px;--size-app-bar-height:56px;--size-icon-sm:16px;--size-icon-md:24px;--size-icon-lg:32px;--size-gauge:168px;--size-fab:56px;--motion-duration-instant:80ms;--motion-duration-fast:.14s;--motion-duration-base:.22s;--motion-duration-slow:.32s;--motion-duration-gauge:.7s;--motion-easing-standard:cubic-bezier(.2, 0, 0, 1);--motion-easing-decelerate:cubic-bezier(0, 0, .2, 1);--motion-easing-accelerate:cubic-bezier(.4, 0, 1, 1);--motion-easing-spring:cubic-bezier(.34, 1.3, .64, 1);--breakpoint-compact:0px;--breakpoint-medium:600px;--breakpoint-expanded:1024px;--breakpoint-wide:1440px;--z-index-canvas:0;--z-index-sticky:10;--z-index-app-bar:20;--z-index-fab:30;--z-index-tab-bar:40;--z-index-banner:50;--z-index-sheet:60;--z-index-dialog:70;--z-index-toast:80;--elevation-card:none;--elevation-raised:none;--elevation-overlay:0 12px 32px #00000080}.theme-root,.theme-root[data-theme=dark]{--color-bg-canvas:#061b22;--color-bg-surface:#092630;--color-bg-raised:#0c2d35;--color-bg-sunken:#04171c;--color-bg-overlay:#061b22cc;--color-text-primary:#f7fbfa;--color-text-secondary:#9bb9bd;--color-text-tertiary:#78999d;--color-text-inverse:#061b22;--color-text-on-accent:#061b22;--color-border-subtle:#1e5654;--color-border-strong:#34736e;--color-border-focus:#62e6bd;--color-accent-primary:#62e6bd;--color-accent-primary-press:#3ecda4;--color-accent-primary-subtle:#62e6bd1f;--color-score-poor:#f87171;--color-score-fair:#fbbf24;--color-score-good:#4ade80;--color-score-prime:#22d3ee;--color-score-poor-text:#fca5a5;--color-score-fair-text:#fcd34d;--color-score-good-text:#86efac;--color-score-prime-text:#67e8f9;--color-quality-fresh:#4ade80;--color-quality-stale:#fbbf24;--color-quality-degraded:#fb923c;--color-quality-missing:#94a3b8;--color-status-success:#4ade80;--color-status-warning:#fbbf24;--color-status-danger:#f87171;--color-status-info:#38bdf8;--color-status-offline:#94a3b8;--color-chart-line:#62e6bd;--color-chart-area-top:#62e6bd59;--color-chart-area-bottom:#62e6bd00;--color-chart-grid:#1e5654;--color-chart-crosshair:#62e6bd;--color-chart-secondary:#a78bfa;--color-chart-tertiary:#f472b6;--color-chart-night:#0f1b3280;--color-chart-now-line:#f7fbfa;--color-today-shell:#061b22;--color-today-surface:#092630;--color-today-raised:#0c2d35;--color-today-accent:#62e6bd;--color-today-border:#1e5654;--color-today-muted:#9bb9bd;--color-today-foreground:#f7fbfa;--color-map-marker-spot:#38bdf8;--color-map-marker-catch:#4ade80;--color-map-marker-current:#f2f6fc;--color-map-cluster:#1a2740;--elevation-card:none;--elevation-raised:none;--elevation-overlay:0 12px 32px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.theme-root[data-theme=light]{--color-bg-canvas:#f4f7fb;--color-bg-surface:#fff;--color-bg-raised:#fff;--color-bg-sunken:#e9eef5;--color-bg-overlay:#0b122073;--color-text-primary:#0c1524;--color-text-secondary:#44546b;--color-text-tertiary:#64748b;--color-text-inverse:#f2f6fc;--color-text-on-accent:#06121c;--color-border-subtle:#d9e1ec;--color-border-strong:#94a3b8;--color-border-focus:#0369a1;--color-accent-primary:#0284c7;--color-accent-primary-press:#0369a1;--color-accent-primary-subtle:#0284c714;--color-score-poor:#dc2626;--color-score-fair:#d97706;--color-score-good:#16a34a;--color-score-prime:#0891b2;--color-score-poor-text:#b91c1c;--color-score-fair-text:#b45309;--color-score-good-text:#15803d;--color-score-prime-text:#0e7490;--color-quality-fresh:#16a34a;--color-quality-stale:#b45309;--color-quality-degraded:#c2410c;--color-quality-missing:#64748b;--color-status-success:#16a34a;--color-status-warning:#b45309;--color-status-danger:#dc2626;--color-status-info:#0284c7;--color-status-offline:#64748b;--color-chart-line:#0284c7;--color-chart-area-top:#0284c740;--color-chart-area-bottom:#0284c700;--color-chart-grid:#d9e1ec;--color-chart-crosshair:#0369a1;--color-chart-secondary:#7c3aed;--color-chart-tertiary:#db2777;--color-chart-night:#0f1b3214;--color-chart-now-line:#0c1524;--color-today-shell:#061b22;--color-today-surface:#092630;--color-today-raised:#0c2d35;--color-today-accent:#62e6bd;--color-today-border:#1e5654;--color-today-muted:#9bb9bd;--color-today-foreground:#f7fbfa;--color-map-marker-spot:#0284c7;--color-map-marker-catch:#16a34a;--color-map-marker-current:#0c1524;--color-map-cluster:#fff;--elevation-card:0 1px 3px #0b12201f, 0 1px 2px #0b122014;--elevation-raised:0 4px 12px #0b122029;--elevation-overlay:0 12px 32px #0b122047;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-contrast:more){.theme-root{--color-border-subtle:var(--color-border-strong)}}@media (prefers-reduced-motion:reduce){:root{--motion-duration-fast:var(--motion-duration-instant);--motion-duration-base:var(--motion-duration-instant);--motion-duration-slow:var(--motion-duration-instant);--motion-duration-gauge:var(--motion-duration-instant)}}
.theme-root{background:var(--color-bg-canvas);min-height:100vh;color:var(--color-text-primary);font-family:var(--typography-font-family-sans);font-size:var(--typography-scale-body-font-size);line-height:var(--typography-scale-body-line-height);transition:background-color var(--motion-duration-base) var(--motion-easing-standard)}.theme-root :where(button,input,textarea,select){font:inherit}.theme-root :where(button,a,input,textarea,select,[tabindex]):focus-visible{outline:var(--space-1) solid var(--color-border-focus);outline-offset:var(--space-1)}.ds-icon{flex:none;display:block}.ds-icon-sm{width:var(--size-icon-sm);height:var(--size-icon-sm)}.ds-icon-md{width:var(--size-icon-md);height:var(--size-icon-md)}.ds-icon-lg{width:var(--size-icon-lg);height:var(--size-icon-lg)}.ds-moon-phase{width:var(--ds-moon-phase-size);height:var(--ds-moon-phase-size);flex:none;display:block}.ds-moon-phase-disc{fill:var(--color-bg-sunken)}.ds-moon-phase-light{fill:var(--color-accent-primary)}.ds-moon-phase-outline{fill:none;stroke:var(--color-border-strong);stroke-width:1.5px}.ds-button,.ds-icon-button{justify-content:center;align-items:center;gap:var(--space-3);border:var(--space-1) solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--typography-scale-headline-font-size);font-weight:var(--typography-scale-headline-font-weight);line-height:var(--typography-scale-headline-line-height);transition:background-color var(--motion-duration-fast) var(--motion-easing-standard), border-color var(--motion-duration-fast) var(--motion-easing-standard), color var(--motion-duration-fast) var(--motion-easing-standard);display:inline-flex}.ds-button{min-height:var(--size-touch-target-min);padding:var(--space-3) var(--space-5)}.ds-button-default{min-height:var(--space-10)}.ds-button-field{min-height:var(--size-touch-target-field)}.ds-button-full{width:100%}.ds-button-primary{background:var(--color-accent-primary);color:var(--color-text-on-accent)}.ds-button-primary:hover{background:var(--color-accent-primary-press)}.ds-button-secondary{border-color:var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-primary)}.ds-button-secondary:hover{background:var(--color-bg-raised)}.ds-button-tertiary{color:var(--color-accent-primary);background:0 0}.ds-button-tertiary:hover{background:var(--color-accent-primary-subtle)}.ds-button-destructive{background:var(--color-status-danger);color:var(--color-bg-surface)}.ds-button:disabled,.ds-icon-button:disabled{border-color:var(--color-border-subtle);background:var(--color-bg-sunken);color:var(--color-text-tertiary);cursor:not-allowed}.ds-icon-button{width:var(--size-touch-target-min);min-width:var(--size-touch-target-min);height:var(--size-touch-target-min);padding:var(--space-0)}.ds-icon-button-field{width:var(--size-touch-target-field);height:var(--size-touch-target-field)}.ds-surface{color:var(--color-text-primary)}.ds-surface-canvas{background:var(--color-bg-canvas)}.ds-surface-surface{background:var(--color-bg-surface)}.ds-surface-raised{background:var(--color-bg-raised);box-shadow:var(--elevation-raised)}.ds-surface-sunken{background:var(--color-bg-sunken)}.ds-card{border:calc(var(--space-1) / 2) solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-surface);box-shadow:var(--elevation-card);padding:var(--space-5)}.ds-card-metric{font-variant-numeric:tabular-nums}.ds-card-insight{border-left:var(--space-1) solid var(--color-accent-primary)}.ds-card-tappable{cursor:pointer;transition:background-color var(--motion-duration-fast) var(--motion-easing-standard)}.ds-card-tappable:hover{background:var(--color-bg-raised)}.ds-badge{min-height:var(--space-7);border:calc(var(--space-1) / 2) solid currentColor;border-radius:var(--radius-xs);padding:var(--space-2) var(--space-3);font-size:var(--typography-scale-caption-font-size);font-weight:var(--typography-scale-caption-font-weight);line-height:var(--typography-scale-caption-line-height);align-items:center;display:inline-flex}.ds-tone-neutral{color:var(--color-text-secondary)}.ds-tone-accent,.ds-tone-info{color:var(--color-accent-primary)}.ds-tone-success{color:var(--color-status-success)}.ds-tone-warning{color:var(--color-status-warning)}.ds-tone-danger{color:var(--color-status-danger)}.ds-chip-wrap{min-height:var(--size-touch-target-min);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-bg-surface);align-items:stretch;display:inline-flex;overflow:hidden}.ds-chip-wrap.is-selected{border-color:var(--color-accent-primary);background:var(--color-accent-primary-subtle);color:var(--color-accent-primary)}.ds-chip,.ds-chip-dismiss{border:var(--space-0);color:inherit;cursor:pointer;background:0 0}.ds-chip{min-height:var(--size-touch-target-min);padding:var(--space-2) var(--space-4)}.ds-chip-dismiss{min-width:var(--size-touch-target-min);padding:var(--space-0);place-items:center;display:grid}.ds-divider{height:calc(var(--space-1) / 2);margin:var(--space-5) var(--space-0);border:var(--space-0);background:var(--color-border-subtle)}.ds-field{gap:var(--space-2);color:var(--color-text-secondary);display:grid}.ds-field>label{font-size:var(--typography-scale-footnote-font-size);line-height:var(--typography-scale-footnote-line-height)}.ds-input-wrap{min-height:var(--size-touch-target-field);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg-sunken);align-items:center;display:flex}.ds-input-wrap:focus-within{border-color:var(--color-border-focus)}.ds-input-wrap input{width:100%;min-width:var(--space-0);min-height:var(--size-touch-target-min);border:var(--space-0);padding:var(--space-3) var(--space-4);color:var(--color-text-primary);background:0 0;outline:none}.ds-input-wrap input::placeholder{color:var(--color-text-secondary)}.ds-input-suffix{padding-right:var(--space-4);color:var(--color-text-secondary)}.ds-field-message{font-size:var(--typography-scale-footnote-font-size);line-height:var(--typography-scale-footnote-line-height)}.ds-field.has-error .ds-input-wrap{border-color:var(--color-status-danger)}.ds-field.has-error .ds-field-message{color:var(--color-status-danger)}.ds-search{align-items:center;display:flex;position:relative}.ds-search>.ds-icon{left:var(--space-4);z-index:1;color:var(--color-text-secondary);position:absolute}.ds-search>.ds-field{width:100%}.ds-search>.ds-field>label{width:calc(var(--space-1) / 2);height:calc(var(--space-1) / 2);clip-path:inset(50%);white-space:nowrap;position:absolute;overflow:hidden}.ds-search input{padding-left:var(--space-9)}.ds-search>.ds-icon-button{right:var(--space-2);position:absolute}.ds-section-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.ds-section-header h2{margin:var(--space-0);font-size:var(--typography-scale-title2-font-size);line-height:var(--typography-scale-title2-line-height);font-weight:var(--typography-scale-title2-font-weight)}.ds-section-header p{margin:var(--space-2) var(--space-0) var(--space-0);color:var(--color-text-secondary);font-size:var(--typography-scale-subhead-font-size);line-height:var(--typography-scale-subhead-line-height)}.ds-tabs{gap:var(--space-4);display:grid}.ds-tab-list{gap:var(--space-2);border-bottom:calc(var(--space-1) / 2) solid var(--color-border-subtle);display:flex;overflow-x:auto}.ds-tab{min-height:var(--size-touch-target-min);border:var(--space-0);border-bottom:var(--space-1) solid transparent;padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);cursor:pointer;background:0 0}.ds-tab[aria-selected=true]{border-bottom-color:var(--color-accent-primary);color:var(--color-accent-primary)}.ds-navigation-bar{align-items:center;gap:var(--space-2);display:flex}.ds-navigation-bar a,.ds-bottom-navigation a,.ds-navigation-rail a{min-width:var(--size-touch-target-min);min-height:var(--size-touch-target-min);justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-secondary);text-decoration:none;display:flex}.ds-navigation-bar a{padding:var(--space-3) var(--space-4)}.ds-navigation-bar a[aria-current=page],.ds-bottom-navigation a[aria-current=page],.ds-navigation-rail a[aria-current=page]{background:var(--color-accent-primary-subtle);color:var(--color-accent-primary)}.ds-bottom-navigation{z-index:var(--z-index-tab-bar);right:var(--space-0);bottom:var(--space-0);left:var(--space-0);min-height:calc(var(--size-tab-bar-height) + env(safe-area-inset-bottom));border-top:calc(var(--space-1) / 2) solid var(--color-border-subtle);background:var(--color-bg-surface);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed}.ds-bottom-navigation a{padding:var(--space-2);font-size:var(--typography-scale-caption-font-size);line-height:var(--typography-scale-caption-line-height);flex-direction:column}.ds-bottom-navigation a.is-prominent{transform:translateY(calc(var(--space-4) * -1));width:var(--size-tab-bar-height);height:var(--size-tab-bar-height);border:var(--space-1) solid var(--color-border-subtle);border-radius:var(--radius-full);background:var(--color-bg-raised);box-shadow:var(--elevation-raised);justify-self:center}.ds-navigation-rail{display:none}.ds-top-app-bar{z-index:var(--z-index-app-bar);top:var(--space-0);min-height:calc(var(--size-app-bar-height) + env(safe-area-inset-top));align-items:center;gap:var(--space-3);border-bottom:calc(var(--space-1) / 2) solid var(--color-border-subtle);background:var(--color-bg-canvas);padding:env(safe-area-inset-top) max(var(--space-5), env(safe-area-inset-right)) var(--space-0) max(var(--space-5), env(safe-area-inset-left));display:flex;position:sticky}.ds-top-app-bar-title{min-width:var(--space-0);display:grid}.ds-top-app-bar-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--typography-scale-headline-font-size);line-height:var(--typography-scale-headline-line-height);overflow:hidden}.ds-top-app-bar-title span{color:var(--color-text-secondary);font-size:var(--typography-scale-footnote-font-size);line-height:var(--typography-scale-footnote-line-height)}.ds-top-app-bar-actions{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.brand-mark{width:var(--size-icon-lg);height:var(--size-icon-lg);border:var(--space-1) solid var(--color-accent-primary);border-radius:var(--radius-full);color:var(--color-accent-primary);place-items:center;display:grid}.app-shell{min-height:100vh;display:flex}.app-shell-stage{min-width:var(--space-0);flex:1;min-height:100vh}.ds-overlay{z-index:var(--z-index-dialog);inset:var(--space-0);background:var(--color-bg-overlay);padding:var(--space-5);justify-content:center;align-items:center;display:flex;position:fixed}.ds-overlay-sheet{z-index:var(--z-index-sheet);padding:var(--space-0);align-items:flex-end}.ds-dialog{width:100%;max-width:calc(var(--breakpoint-medium) - (var(--space-11) * 3));max-height:calc(100vh - (var(--space-8) * 2));border:calc(var(--space-1) / 2) solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-raised);box-shadow:var(--elevation-overlay);overflow:auto}.ds-dialog-sheet{max-width:var(--breakpoint-medium);border-bottom-right-radius:var(--space-0);border-bottom-left-radius:var(--space-0);max-height:92vh;padding-bottom:env(safe-area-inset-bottom);animation:ds-sheet-enter var(--motion-duration-slow) var(--motion-easing-spring)}.ds-dialog-sheet-peek{max-height:25vh}.ds-dialog-sheet-half{max-height:50vh}.ds-dialog-sheet-full{max-height:92vh}.ds-sheet-grabber{width:var(--space-9);height:var(--space-2);margin:var(--space-3) auto var(--space-0);border-radius:var(--radius-full);background:var(--color-border-strong);display:block}.ds-dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);display:flex}.ds-dialog-header h2{margin:var(--space-0);font-size:var(--typography-scale-title2-font-size);line-height:var(--typography-scale-title2-line-height)}.ds-dialog-header p{margin:var(--space-2) var(--space-0) var(--space-0);color:var(--color-text-secondary);font-size:var(--typography-scale-subhead-font-size);line-height:var(--typography-scale-subhead-line-height)}.ds-dialog-content{padding:var(--space-0) max(var(--space-5), env(safe-area-inset-right)) max(var(--space-5), env(safe-area-inset-bottom)) max(var(--space-5), env(safe-area-inset-left))}@keyframes ds-sheet-enter{0%{transform:translateY(100%)}}.ds-spinner-wrap{min-width:var(--size-touch-target-min);min-height:var(--size-touch-target-min);place-items:center;display:inline-grid}.ds-spinner{width:var(--size-icon-md);height:var(--size-icon-md);border:var(--space-1) solid var(--color-border-subtle);border-top-color:var(--color-accent-primary);border-radius:var(--radius-full);animation:ds-spin var(--motion-duration-gauge) linear infinite;display:inline-block}.ds-spinner-inline{width:var(--size-icon-sm);height:var(--size-icon-sm)}@keyframes ds-spin{to{transform:rotate(1turn)}}.ds-skeleton{border-radius:var(--radius-xs);background:var(--color-bg-raised);animation:ds-pulse var(--motion-duration-gauge) var(--motion-easing-standard) infinite alternate;display:block}.ds-skeleton-text{width:100%;height:var(--typography-scale-body-line-height)}.ds-skeleton-title{width:60%;height:var(--typography-scale-title1-line-height)}.ds-skeleton-circle{width:var(--size-touch-target-field);height:var(--size-touch-target-field);border-radius:var(--radius-full)}.ds-skeleton-card{width:100%;min-height:calc(var(--space-11) * 2);border-radius:var(--radius-md)}@keyframes ds-pulse{to{background:var(--color-border-subtle)}}.ds-progress{height:var(--space-3);border-radius:var(--radius-full);background:var(--color-border-subtle);overflow:hidden}.ds-progress>span{width:var(--ds-progress-value);border-radius:inherit;background:var(--color-accent-primary);height:100%;transition:width var(--motion-duration-base) var(--motion-easing-standard);display:block}.ds-progress.is-indeterminate>span{width:40%;animation:ds-progress var(--motion-duration-gauge) var(--motion-easing-standard) infinite alternate}@keyframes ds-progress{to{transform:translate(150%)}}.ds-toast,.ds-snackbar{z-index:var(--z-index-toast);right:var(--space-5);bottom:calc(var(--size-tab-bar-height) + var(--space-5) + env(safe-area-inset-bottom));max-width:calc(var(--breakpoint-medium) - (var(--space-11) * 3));min-height:var(--size-touch-target-min);align-items:center;gap:var(--space-4);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg-raised);box-shadow:var(--elevation-overlay);padding:var(--space-3) var(--space-5);color:var(--color-text-primary);display:flex;position:fixed}.ds-feedback-success{border-left-color:var(--color-status-success)}.ds-feedback-error{border-left-color:var(--color-status-danger)}.ds-feedback-info{border-left-color:var(--color-status-info)}.ds-snackbar{justify-content:space-between}.ds-offline-banner{z-index:var(--z-index-banner);min-height:var(--size-touch-target-min);align-items:center;gap:var(--space-3);border:calc(var(--space-1) / 2) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-accent-primary-subtle);padding:var(--space-3) max(var(--space-5), env(safe-area-inset-right)) var(--space-3) max(var(--space-5), env(safe-area-inset-left));color:var(--color-text-secondary);display:flex;position:relative}.ds-offline-banner>:last-child:not(:nth-child(2)){margin-left:auto}.ds-state{max-width:calc(var(--breakpoint-medium) - (var(--space-11) * 3));justify-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-5);text-align:center;margin:auto;display:grid}.ds-state-icon{color:var(--color-accent-primary)}.ds-state h2{margin:var(--space-0);font-size:var(--typography-scale-title2-font-size);line-height:var(--typography-scale-title2-line-height)}.ds-state p{margin:var(--space-0);color:var(--color-text-secondary)}.ds-page-container{width:min(100%, calc(var(--breakpoint-expanded) + (var(--space-11) * 4)));margin:var(--space-0) auto;padding:var(--space-7) max(var(--space-5), env(safe-area-inset-right)) calc(var(--size-tab-bar-height) + var(--space-5) + env(safe-area-inset-bottom)) max(var(--space-5), env(safe-area-inset-left))}.ds-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.ds-grid-item{min-width:var(--space-0);grid-column:1/-1}@media (min-width:600px){.ds-page-container{padding-right:max(var(--space-7), env(safe-area-inset-right));padding-left:max(var(--space-7), env(safe-area-inset-left))}.ds-grid{gap:var(--space-5);grid-template-columns:repeat(8,minmax(0,1fr))}.ds-grid-span-1{grid-column:span 1}.ds-grid-span-2{grid-column:span 2}.ds-grid-span-3{grid-column:span 3}.ds-grid-span-4{grid-column:span 4}.ds-grid-span-6{grid-column:span 6}.ds-grid-span-8{grid-column:span 8}}@media (min-width:1024px){.ds-grid{gap:var(--space-7);grid-template-columns:repeat(12,minmax(0,1fr))}.ds-grid-span-12{grid-column:span 12}.ds-bottom-navigation{display:none}.ds-navigation-rail{z-index:var(--z-index-app-bar);top:var(--space-0);width:calc(var(--space-11) + var(--space-5));border-right:calc(var(--space-1) / 2) solid var(--color-border-subtle);background:var(--color-bg-surface);height:100vh;padding:max(var(--space-3), env(safe-area-inset-top)) var(--space-2) max(var(--space-3), env(safe-area-inset-bottom)) max(var(--space-2), env(safe-area-inset-left));flex-direction:column;flex:none;display:flex;position:sticky}.ds-navigation-rail-primary,.ds-navigation-rail-secondary{gap:var(--space-2);display:grid}.ds-navigation-rail-secondary{margin-top:auto}.ds-navigation-rail a{min-height:var(--size-touch-target-field);gap:var(--space-1);padding:var(--space-2);font-size:var(--typography-scale-caption-font-size);line-height:var(--typography-scale-caption-line-height);text-align:center;flex-direction:column}.ds-dialog-sheet{height:100%;max-width:calc(var(--space-11) * 6 + var(--space-5));border-radius:var(--radius-lg) var(--space-0) var(--space-0) var(--radius-lg);max-height:100%;margin-left:auto;animation-name:ds-panel-enter}.ds-dialog-sheet-peek,.ds-dialog-sheet-half,.ds-dialog-sheet-full{max-height:100%}.ds-overlay-sheet{align-items:stretch}.ds-toast,.ds-snackbar{bottom:var(--space-5)}}@keyframes ds-panel-enter{0%{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.theme-root *,.theme-root :before,.theme-root :after{scroll-behavior:auto!important}.ds-skeleton,.ds-spinner,.ds-progress.is-indeterminate>span{animation:none}.theme-root{transition:none}}
