.btn.block{justify-content:center;align-items:center;gap:var(--sp-8);width:100%;display:inline-flex}.btn.primary{color:var(--on-accent)}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{background:color-mix(in srgb,var(--danger) 14%,var(--surface));border-color:color-mix(in srgb,var(--danger) 42%,var(--line));color:var(--danger)}.btn.danger:hover{background:color-mix(in srgb,var(--danger) 20%,var(--surface));border-color:var(--danger)}.btn.is-loading{opacity:.72}.btn-spinner{border:2px solid color-mix(in srgb,currentColor 28%,transparent);border-radius:var(--radius-pill);border-top-color:currentColor;width:13px;height:13px;animation:.7s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.icon-btn{justify-content:center;align-items:center;gap:var(--sp-6);min-width:40px;padding:0;display:inline-flex}.icon-btn.danger-btn{color:var(--danger);background:0 0;border-color:#0000}.icon-btn.danger-btn:hover{background:color-mix(in srgb,var(--danger) 12%,var(--surface));border-color:color-mix(in srgb,var(--danger) 34%,var(--line))}.field{gap:var(--sp-6);flex-direction:column;min-width:0;display:flex}.field-label{color:var(--muted);font-size:var(--font-size-caption)}.field-control{align-items:center;display:flex;position:relative}.field-icon{color:var(--muted);pointer-events:none;display:inline-flex;position:absolute;inset-inline-start:10px}.field-control .field-icon+.field-input{padding-inline-start:32px}.field-input{width:100%;min-height:40px;padding:var(--sp-8) var(--sp-12);color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);outline:0}.field-input:focus{border-color:var(--accent);box-shadow:var(--ring)}.field-hint{color:var(--muted);font-size:var(--font-size-micro-10)}.field-error{color:var(--danger);font-size:var(--font-size-micro-10)}.field.has-error .field-input{border-color:color-mix(in srgb,var(--danger) 60%,var(--line))}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),textarea,select{color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);font-family:inherit}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.6}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}input:disabled,textarea:disabled,select:disabled{opacity:.55;cursor:not-allowed}.brand-mark{font-family:var(--font-display);color:var(--accent-bright);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:var(--radius-sm);flex:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.tabs{gap:var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line);display:flex;overflow-x:auto}.tabs button{min-height:38px;padding:var(--sp-8) var(--sp-14);border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;flex:none}.tabs button[aria-selected=true]{color:var(--ink);border-color:var(--line);background:var(--surface-2)}.toast{z-index:90;align-items:center;gap:var(--sp-8);padding:var(--sp-10) var(--sp-12);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:var(--font-size-label);animation:toast-in var(--motion-fast) var(--ease-out-quint) both;display:flex;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.toast>span{flex:1;min-width:0}.toast-ok{border-color:color-mix(in srgb,var(--success) 40%,var(--line));background:color-mix(in srgb,var(--success) 10%,var(--surface));color:var(--success)}.toast-error{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.toast-info{color:var(--ink)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}.skeleton{background:color-mix(in srgb,var(--surface-raised,var(--surface-2)) 88%,var(--line));border-radius:var(--radius-control);display:block;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(100deg,transparent,color-mix(in srgb,var(--ink) 5%,transparent),transparent);animation:ui-shimmer 1.8s var(--ease-in-out-soft) infinite;position:absolute;inset:0;transform:translate(-100%)}@keyframes ui-shimmer{to{transform:translate(100%)}}.progressbar{gap:var(--sp-4);flex-direction:column;min-width:0;display:flex}.progressbar-head{justify-content:space-between;align-items:center;gap:var(--sp-8);color:var(--muted);font-size:var(--font-size-caption);display:flex}.progressbar-track{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);height:8px;position:relative;overflow:hidden}.progressbar.sm .progressbar-track{height:5px}.progressbar-fill{background:var(--accent);border-radius:inherit;transform-origin:100%;height:100%;animation:ui-grow var(--motion-slow) var(--ease-out-quint) both;display:block}@keyframes ui-grow{0%{transform:scaleX(0)}to{transform:none}}.statblock{gap:var(--sp-2);min-width:0;padding:var(--sp-10) var(--sp-12);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);flex-direction:column;display:flex}.statblock-label{align-items:center;gap:var(--sp-4);color:var(--muted);font-size:var(--font-size-caption);display:flex}.statblock-value{font-size:var(--font-size-h1);font-variant-numeric:tabular-nums;line-height:1.2}.statblock-value.is-empty{font-size:var(--font-size-caption);color:var(--muted);font-weight:600}.stat-empty{font-size:var(--font-size-micro-10);letter-spacing:0;color:var(--muted);opacity:.8;font-weight:600}.statblock-delta{align-items:center;gap:var(--sp-4);font-size:var(--font-size-micro-10);font-variant-numeric:tabular-nums;display:inline-flex}.statblock-delta.up{color:var(--success)}.statblock-delta.down{color:var(--danger)}.statblock-hint{color:var(--muted);font-size:var(--font-size-micro-10)}.badge{align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-8);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--muted);font-size:var(--font-size-micro-10);display:inline-flex}.badge-accent{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.badge-success{border-color:color-mix(in srgb,var(--success) 45%,var(--line));color:var(--success);background:color-mix(in srgb,var(--success) 12%,var(--surface))}.badge-warning{border-color:color-mix(in srgb,var(--warning) 45%,var(--line));color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,var(--surface))}.badge-danger{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--surface))}.listrow{align-items:center;gap:var(--sp-10);width:100%;padding:var(--sp-10) var(--sp-12);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);text-align:start;display:flex}.listrow.is-clickable{cursor:pointer;transition:border-color var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard)}.listrow.is-clickable:hover{border-color:color-mix(in srgb,var(--accent) 34%,var(--line));background:var(--surface-2)}.listrow-icon{border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 14%,var(--surface));width:30px;height:30px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.listrow-body{gap:var(--sp-2);flex-direction:column;flex:1;min-width:0;display:flex}.listrow-title{font-size:var(--font-size-label);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.listrow-sub{color:var(--muted);font-size:var(--font-size-micro-10);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.listrow-meta{color:var(--muted);font-size:var(--font-size-micro-10);font-variant-numeric:tabular-nums;flex:none}.sectionhead{justify-content:space-between;align-items:flex-end;gap:var(--sp-10);flex-wrap:wrap;display:flex}.sectionhead-kicker{color:var(--muted);font-size:var(--font-size-micro-10);letter-spacing:.08em;display:block}.sectionhead h2{margin:var(--sp-2) 0 0;font-size:var(--font-size-body-plus)}.chart{gap:var(--sp-6);flex-direction:column;min-width:0;margin:0;display:flex}.chart svg{width:100%;overflow:visible}.chart-line{stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--line-length,1200);stroke-dashoffset:var(--line-length,1200)}.chart.is-drawn .chart-line{animation:chart-draw .7s var(--ease-emphasized) forwards}.chart-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2px;opacity:0}.chart.is-drawn .chart-dot{animation:ui-pop .3s var(--ease-emphasized) both}.chart-bars{align-items:flex-end;gap:var(--sp-6);display:flex;overflow-x:auto}.chart-bar-cell{align-items:center;gap:var(--sp-4);flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex}.chart-bar{background:color-mix(in srgb,var(--accent) 78%,transparent);border-radius:var(--radius-sm) var(--radius-sm) 0 0;transform-origin:bottom;width:100%;min-height:2px;animation:ui-grow .7s var(--ease-out-quint) both}.chart-bar-cell small{color:var(--muted);font-size:var(--font-size-micro-9)}.chart-caption{color:var(--muted);font-size:var(--font-size-micro-10)}.chart-caption.is-long{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}@keyframes chart-draw{to{stroke-dashoffset:0}}.completion-check{border:2px solid var(--line);border-radius:var(--radius-pill);transition:border-color .15s var(--ease-standard),background-color .15s var(--ease-standard);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.completion-check svg{width:60%;height:60%;stroke:var(--bg);stroke-dasharray:32;stroke-dashoffset:32px}.completion-check.is-checked{border-color:var(--accent);background:var(--accent)}.completion-check.is-checked svg{animation:ui-check .25s var(--ease-out-quint) forwards}.completion-check[tabindex]{cursor:pointer}.completion-check[tabindex]:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}@keyframes ui-check{to{stroke-dashoffset:0}}.streakstrip{gap:var(--sp-4);flex-wrap:wrap;display:flex}.streakstrip-cell{min-width:22px;height:22px;padding:0 var(--sp-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);font-size:var(--font-size-micro-9);animation:ui-pop .2s var(--ease-out-quint) both;place-items:center;display:grid}.streakstrip-cell.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,var(--surface));color:var(--accent)}@keyframes ui-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.btn-spinner,.skeleton,.modal-backdrop,.modal-panel,.toast,.progressbar-fill,.chart-bar,.completion-check.is-checked svg,.streakstrip-cell{animation:none}.chart-line{stroke-dashoffset:0;animation:none}.chart-dot{opacity:1;animation:none}.completion-check.is-checked svg{stroke-dashoffset:0}.chart-bar{transform:none}}.select{gap:var(--sp-6);flex-direction:column;min-width:0;display:flex;position:relative}.select-trigger{justify-content:space-between;align-items:center;gap:var(--sp-8);text-align:start;width:100%;display:flex}.select-trigger .select-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-value.placeholder,.datefield-trigger .placeholder{color:color-mix(in srgb,var(--muted) 82%,transparent)}.select.open .select-trigger svg{transform:rotate(180deg)}.select-trigger svg{transition:transform var(--motion-fast) var(--ease-standard)}.select-list{z-index:40;inset-inline:0;padding:var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);max-height:260px;box-shadow:var(--shadow-2);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);overflow:auto}.select-option{justify-content:space-between;align-items:center;gap:var(--sp-10);width:100%;min-height:36px;padding:var(--sp-8) var(--sp-10);border-radius:var(--radius-sm);text-align:start;background:0 0;border:1px solid #0000;display:flex}.select-option[data-active=true]{background:var(--surface-2);border-color:var(--line)}.select-option[aria-selected=true]{color:var(--accent)}.select-option[aria-disabled=true]{opacity:.5;cursor:not-allowed}.switch-row{justify-content:space-between;align-items:center;gap:var(--sp-12);flex:1;min-width:0;display:flex}.switch-text{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.switch-label{color:var(--ink);font-size:var(--font-size-label);cursor:pointer}.switch-desc{color:var(--muted);font-size:var(--font-size-micro-10)}.switch{border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line);flex:none;width:44px;min-width:44px;height:26px;min-height:26px;padding:0;position:relative}.switch i{top:3px;border-radius:var(--radius-pill);background:var(--muted);width:18px;height:18px;transition:transform var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard);position:absolute;inset-inline-start:3px}.switch.on{background:color-mix(in srgb,var(--accent) 26%,var(--surface));border-color:var(--accent)}.switch.on i{background:var(--accent);transform:translate(-18px)}.switch-row.is-disabled{opacity:.6}.segmented{gap:var(--sp-4);padding:var(--sp-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap;max-width:100%;display:inline-flex}.segmented button{min-height:32px;padding:var(--sp-4) var(--sp-12);border-radius:calc(var(--radius-sm) - 3px);color:var(--muted);background:0 0;border:1px solid #0000}.segmented button[aria-selected=true]{background:var(--surface);border-color:var(--line);color:var(--ink)}.slider{gap:var(--sp-6);flex-direction:column;min-width:0;display:flex}.slider-head{justify-content:space-between;align-items:center;gap:var(--sp-8);display:flex}.slider-head label{font-size:var(--font-size-label);color:var(--muted)}.slider-head b{font:600 12px var(--font-num);color:var(--ink)}.slider.is-disabled{opacity:.55}.slider .slider-input{width:100%}.datefield{gap:var(--sp-6);flex-direction:column;min-width:0;display:flex;position:relative}.datefield-trigger{align-items:center;gap:var(--sp-8);text-align:start;width:100%;display:flex}.datefield-pop{z-index:40;inset-inline-start:0;width:min(272px,86vw);padding:var(--sp-10);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);position:absolute;top:calc(100% + 4px)}.datefield-pop header{justify-content:space-between;align-items:center;gap:var(--sp-6);margin-bottom:var(--sp-8);display:flex}.datefield-pop header b{font-size:var(--font-size-label)}.datefield-pop header button,.datefield-pop footer button{min-height:30px;padding:var(--sp-4) var(--sp-8);color:var(--muted);background:0 0;border-color:#0000}.datefield-pop .flip{transform:rotate(180deg)}.datefield-weekdays,.datefield-grid{gap:var(--sp-2);grid-template-columns:repeat(7,1fr);display:grid}.datefield-weekdays span{height:24px;color:var(--muted);font-size:var(--font-size-micro-10);place-items:center;display:grid}.datefield-grid button{border-radius:var(--radius-sm);height:32px;font-size:var(--font-size-caption);background:0 0;border:1px solid #0000;place-items:center;display:grid}.datefield-grid button:hover:not(:disabled){background:var(--surface-2);border-color:var(--line)}.datefield-grid button.selected{background:color-mix(in srgb,var(--accent) 22%,var(--surface));border-color:var(--accent);color:var(--accent)}.datefield-grid button.today{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.datefield-grid button:disabled{opacity:.35;cursor:not-allowed}.datefield-blank{height:32px}.datefield-pop footer{margin-top:var(--sp-6);justify-content:flex-end;display:flex}.modal-backdrop{z-index:80;background:color-mix(in srgb,var(--bg) 62%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:ui-fade var(--motion-fast) var(--ease-standard) both;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:92vh;box-shadow:var(--shadow-3);animation:ui-sheet var(--motion-slow) var(--ease-out-quint) both;flex-direction:column;display:flex}.modal-head{justify-content:space-between;align-items:center;gap:var(--sp-10);padding:var(--sp-14) var(--sp-16);border-bottom:1px solid var(--line);display:flex}.modal-head h2{font-size:var(--font-size-body);margin:0}.modal-body{padding:var(--sp-16);flex:1;overflow:auto}.modal-foot{justify-content:flex-end;align-items:center;gap:var(--sp-8);padding:var(--sp-12) var(--sp-16);border-top:1px solid var(--line);display:flex}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-sheet{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.modal-grabber{display:none}.modal-panel.is-dragging{transition:none;animation:none}.modal-panel.is-dismissing{animation:ui-sheet-out var(--motion-fast) var(--ease-standard) both}@keyframes ui-sheet-out{to{opacity:0;transform:translateY(24px)}}@media (width<=719px){.modal-grabber{width:36px;height:4px;margin:var(--sp-8) auto 0;border-radius:var(--radius-pill);background:var(--line);touch-action:none;display:block}.modal-head{touch-action:none}}@media (width>=720px){.modal-backdrop{padding:var(--sp-24);align-items:center}.modal-panel{border-radius:var(--radius-lg);width:min(560px,100%)}.modal-panel.wide{width:min(880px,100%)}}@media (prefers-reduced-motion:reduce){.btn-spinner,.skeleton:after,.modal-backdrop,.modal-panel{animation:none}.switch i{transition:none}}[data-motion=reduced] .skeleton:after{animation:none}
