@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--asdev-ink:#0a1420;--asdev-navy:#102b49;--asdev-blue:#3b70c9;--asdev-steel:#7f9cab;--asdev-ice:#dce7ec;--asdev-paper:#f3f5f3;--asdev-success:#3e8b6e;--asdev-warning:#c98a3b;--asdev-danger:#b94a4a;--asdev-info:#3b70c9;--color-bg:var(--asdev-ink);--color-bg-soft:#0e1b2c;--color-surface:var(--asdev-navy);--color-surface-soft:#15304f;--color-border:#7f9cab3d;--color-border-strong:#7f9cab66;--color-text:var(--asdev-paper);--color-text-muted:#9fb2bf;--color-accent:var(--asdev-blue);--color-accent-soft:#3b70c924;--color-accent-strong:#2a5599;--color-on-accent:#fff;--color-accent-text:color-mix(in srgb, var(--color-accent) 55%, #fff);--color-danger-text:color-mix(in srgb, var(--asdev-danger) 60%, #fff);--color-warning-text:color-mix(in srgb, var(--asdev-warning) 70%, #fff);--color-success-text:color-mix(in srgb, var(--asdev-success) 60%, #fff);--color-danger-soft:color-mix(in srgb, var(--asdev-danger) 16%, transparent);--color-warning-soft:color-mix(in srgb, var(--asdev-warning) 16%, transparent);--color-success-soft:color-mix(in srgb, var(--asdev-success) 16%, transparent);--font-sans:"Hiragino Sans", "Yu Gothic", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-en:"Plus Jakarta Sans", -apple-system, "Segoe UI", Roboto, sans-serif;--fs-xs:12px;--fs-sm:13px;--fs-base:16px;--fs-md:17px;--fs-lg:20px;--fs-xl:24px;--fs-2xl:30px;--fs-3xl:36px;--fs-4xl:48px;--fs-display:clamp(40px, 8vw, 92px);--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--lh-tight:1.08;--lh-snug:1.3;--lh-base:1.7;--lh-relaxed:1.8;--ls-tight:-.03em;--ls-snug:-.01em;--ls-normal:0;--ls-wide:.04em;--ls-wider:.08em;--ls-widest:.16em;--sp-0:0px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--shadow-sm:0 2px 8px -4px #0a142059;--shadow-md:0 12px 24px -12px #0a142073;--shadow-lg:0 20px 40px -20px #0a14208c;--dur-fast:.15s;--dur-base:.25s;--dur-slow:.4s;--dur-reveal:.9s;--ease:cubic-bezier(.16, 1, .3, 1);--layout-max-width:1120px;--layout-sidebar-width:240px;--layout-header-h-desktop:88px;--layout-header-h-mobile:64px;--layout-bottom-nav-h:64px}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-slow:0s;--dur-reveal:0s}}[data-product=subscription-watcher]{--color-accent:#3b70c9;--color-accent-soft:#3b70c924;--color-accent-strong:#2a5599}[data-product=wariko]{--color-accent:#2e7e96;--color-accent-soft:#2e7e9624;--color-accent-strong:#215e70}[data-product=roomtone]{--color-accent:#7f9cab;--color-accent-soft:#7f9cab29;--color-accent-strong:#5e7a8c}[data-product=recipe-log]{--color-accent:#6e7fc9;--color-accent-soft:#6e7fc924;--color-accent-strong:#4f5fa8}.asdev-on-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--asdev-ink);--color-bg:var(--asdev-paper);--color-bg-soft:#eaeeee;--color-surface:#fff;--color-surface-soft:var(--asdev-ice);--color-border:#0a14201f;--color-border-strong:#0a14203d;--color-text:var(--asdev-ink);--color-text-muted:#3d5266;--color-on-accent:#fff;--color-accent-text:var(--color-accent-strong);--color-danger-text:color-mix(in srgb, var(--asdev-danger) 85%, #000);--color-warning-text:color-mix(in srgb, var(--asdev-warning) 60%, #000);--color-success-text:color-mix(in srgb, var(--asdev-success) 75%, #000);--color-danger-soft:color-mix(in srgb, var(--asdev-danger) 10%, transparent);--color-warning-soft:color-mix(in srgb, var(--asdev-warning) 12%, transparent);--color-success-soft:color-mix(in srgb, var(--asdev-success) 12%, transparent)}.asdev-on-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--asdev-paper);--color-bg:var(--asdev-ink);--color-bg-soft:#0e1b2c;--color-surface:var(--asdev-navy);--color-surface-soft:#15304f;--color-border:#7f9cab3d;--color-border-strong:#7f9cab66;--color-text:var(--asdev-paper);--color-text-muted:#9fb2bf;--color-on-accent:#fff;--color-accent-text:color-mix(in srgb, var(--color-accent) 55%, #fff);--color-danger-text:color-mix(in srgb, var(--asdev-danger) 60%, #fff);--color-warning-text:color-mix(in srgb, var(--asdev-warning) 70%, #fff);--color-success-text:color-mix(in srgb, var(--asdev-success) 60%, #fff)}.asdev-root{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg)}.asdev-root *{box-sizing:border-box}.asdev-root img,.asdev-root svg{max-width:100%;display:block}.asdev-root a{color:inherit;text-decoration:none}.asdev-root :focus{outline:none}.asdev-root :focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.asdev-font-en{font-family:var(--font-en);word-spacing:.08em}.asdev-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.reveal{opacity:1;transform:none}.has-js .reveal{opacity:0;transition:opacity var(--dur-reveal) var(--ease), transform var(--dur-reveal) var(--ease);transform:translateY(20px)}.has-js .reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.has-js .reveal{opacity:1;transition:none;transform:none}}.asdev-eyebrow{font-size:var(--fs-xs);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--color-accent);border:1px solid var(--color-border);border-radius:var(--radius-pill);margin-bottom:var(--sp-3);padding:6px 16px;display:inline-block}.asdev-section-head{justify-content:space-between;align-items:baseline;gap:var(--sp-5);margin-bottom:var(--sp-6);flex-wrap:wrap;display:flex}.asdev-section-head h2{font-size:var(--fs-2xl);letter-spacing:var(--ls-snug);font-weight:var(--fw-extrabold);margin:0}.asdev-section-head .asdev-section-note{color:var(--color-text-muted);font-size:var(--fs-sm);max-width:320px;margin:0}.asdev-btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:pointer;transition:opacity var(--dur-fast) ease, transform var(--dur-fast) ease, background var(--dur-fast) ease, border-color var(--dur-fast) ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:1px solid #0000;min-height:44px;padding:12px 22px;font-family:inherit;line-height:1.2;display:inline-flex}@media (hover:hover) and (pointer:fine){.asdev-btn--primary:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.asdev-btn--danger:hover{background:color-mix(in srgb, var(--asdev-danger) 85%, #000)}}.asdev-btn:active{transform:scale(.97)}.asdev-btn:disabled,.asdev-btn[aria-disabled=true]{opacity:.4;cursor:not-allowed;pointer-events:none}.asdev-btn--sm{font-size:var(--fs-xs);min-height:36px;padding:8px 16px}.asdev-btn--block{width:100%}.asdev-btn--lg{font-size:var(--fs-base);padding:14px 24px}.asdev-btn--primary{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.asdev-btn--secondary{color:var(--color-text);border-color:var(--color-border-strong);background:0 0}@media (hover:hover) and (pointer:fine){.asdev-btn--secondary:hover{border-color:var(--color-accent)}}.asdev-btn--ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.asdev-btn--destructive{color:var(--color-danger-text);border-color:var(--asdev-danger);background:0 0}.asdev-btn--danger{background:var(--asdev-danger);color:#fff;border-color:var(--asdev-danger)}@media (hover:hover) and (pointer:fine){.asdev-btn--ghost:hover{color:var(--color-text);background:var(--color-surface-soft)}.asdev-btn--destructive:hover{background:var(--asdev-danger);color:#fff}}.asdev-field{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);display:grid}.asdev-field label,.asdev-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text);letter-spacing:var(--ls-normal)}.asdev-hint{font-size:var(--fs-xs);color:var(--color-text-muted);margin:0}.asdev-input,.asdev-select{width:100%;font:inherit;font-size:var(--fs-base);color:var(--color-text);background:var(--color-surface-soft);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);transition:border-color var(--dur-fast) ease, background var(--dur-fast) ease;padding:12px 14px}.asdev-input::placeholder{color:var(--color-text-muted)}@media (hover:hover) and (pointer:fine){.asdev-input:hover,.asdev-select:hover{border-color:var(--color-accent)}}textarea.asdev-input{resize:vertical;min-height:120px;line-height:var(--lh-base)}.asdev-input,.asdev-select{min-height:48px}.asdev-input:focus-visible,.asdev-select:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.asdev-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-text-muted) 50%), linear-gradient(135deg, var(--color-text-muted) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 14px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:40px}.asdev-search{align-items:center;display:flex;position:relative}.asdev-search svg{width:16px;height:16px;color:var(--color-text-muted);pointer-events:none;position:absolute;left:14px}.asdev-search .asdev-input{padding-left:40px}.asdev-toggle{align-items:center;gap:var(--sp-3);cursor:pointer;font-size:var(--fs-sm);color:var(--color-text);display:inline-flex}.asdev-toggle input{opacity:0;width:1px;height:1px;margin:-1px;position:absolute}.asdev-toggle .asdev-toggle-track{border-radius:var(--radius-pill);background:var(--color-surface-soft);border:1px solid var(--color-border-strong);width:42px;height:24px;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease;flex-shrink:0;position:relative}.asdev-toggle .asdev-toggle-thumb{background:var(--color-text-muted);width:18px;height:18px;transition:transform var(--dur-base) var(--ease), background var(--dur-fast) ease;border-radius:50%;position:absolute;top:2px;left:2px}.asdev-toggle input:checked~.asdev-toggle-track{background:var(--color-accent-soft);border-color:var(--color-accent)}.asdev-toggle input:checked~.asdev-toggle-track .asdev-toggle-thumb{background:var(--color-accent);transform:translate(18px)}.asdev-toggle input:focus-visible~.asdev-toggle-track{outline:2px solid var(--color-accent);outline-offset:2px}.asdev-checkbox{align-items:center;gap:var(--sp-3);cursor:pointer;font-size:var(--fs-sm);color:var(--color-text);display:inline-flex}.asdev-checkbox input{opacity:0;width:1px;height:1px;margin:-1px;position:absolute}.asdev-checkbox .asdev-checkbox-box{border:1px solid var(--color-border-strong);background:var(--color-surface-soft);width:20px;height:20px;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.asdev-checkbox .asdev-checkbox-box svg{opacity:0;width:12px;height:12px;transition:opacity var(--dur-fast) ease;color:var(--color-on-accent)}.asdev-checkbox input:checked~.asdev-checkbox-box{background:var(--color-accent);border-color:var(--color-accent)}.asdev-checkbox input:checked~.asdev-checkbox-box svg{opacity:1}.asdev-checkbox input:focus-visible~.asdev-checkbox-box{outline:2px solid var(--color-accent);outline-offset:2px}.asdev-card{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-5)}:where(.asdev-card) h3{margin:0 0 var(--sp-2);font-size:var(--fs-lg);letter-spacing:var(--ls-snug)}:where(.asdev-card) p{color:var(--color-text-muted);font-size:var(--fs-sm);line-height:var(--lh-base);margin:0}.asdev-card--metric{gap:var(--sp-2);display:grid}.asdev-card--metric .asdev-metric-label{font-size:var(--fs-xs);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-text-muted)}.asdev-card--metric .asdev-metric-value{font-size:var(--fs-3xl);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-tight);color:var(--color-text)}.asdev-card--metric .asdev-metric-delta{font-size:var(--fs-xs);font-weight:var(--fw-semibold);align-items:center;gap:4px;width:fit-content;display:inline-flex}.asdev-card--metric .asdev-metric-delta.is-up{color:var(--color-success-text)}.asdev-card--metric .asdev-metric-delta.is-down{color:var(--color-danger-text)}.asdev-card--feature{gap:var(--sp-3);display:grid}.asdev-card--feature .asdev-feature-icon{border-radius:var(--radius-md);background:var(--color-accent-soft);width:40px;height:40px;color:var(--color-accent);justify-content:center;align-items:center;display:inline-flex}.asdev-card--feature .asdev-feature-icon svg{width:20px;height:20px}.asdev-card--empty{text-align:center;justify-items:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-5);border-style:dashed;display:grid}.asdev-card--empty .asdev-feature-icon{background:var(--color-surface-soft);color:var(--color-text-muted);width:48px;height:48px}.asdev-card--empty .asdev-feature-icon svg{width:24px;height:24px}.asdev-badge{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);text-transform:uppercase;white-space:nowrap;border-radius:var(--radius-pill);border:1px solid var(--color-border);color:var(--color-text-muted);flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.asdev-badge--accent{color:var(--color-accent-text);border-color:color-mix(in srgb, var(--color-accent) 50%, transparent);background:var(--color-accent-soft)}.asdev-badge--success{color:var(--color-success-text);border-color:color-mix(in srgb, var(--asdev-success) 50%, transparent);background:var(--color-success-soft)}.asdev-badge--warning{color:var(--color-warning-text);border-color:color-mix(in srgb, var(--asdev-warning) 50%, transparent);background:var(--color-warning-soft)}.asdev-badge--danger{color:var(--color-danger-text);border-color:color-mix(in srgb, var(--asdev-danger) 50%, transparent);background:var(--color-danger-soft)}.asdev-badge--plain{text-transform:none;letter-spacing:0}.asdev-status{font-size:var(--fs-sm);color:var(--color-text);align-items:center;gap:8px;display:inline-flex}.asdev-status:before{content:"";background:var(--color-text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.asdev-status--active:before{background:var(--asdev-success)}.asdev-status--paused:before{background:var(--asdev-warning)}.asdev-status--error:before{background:var(--asdev-danger)}.asdev-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.asdev-table th{text-align:left;font-size:var(--fs-xs);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-text-muted);font-weight:var(--fw-semibold);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--color-border)}.asdev-table td{padding:var(--sp-3);border-bottom:1px solid var(--color-border);color:var(--color-text)}.asdev-table tr:last-child td{border-bottom:none}.asdev-table tbody tr{transition:background var(--dur-fast) ease}.asdev-table tbody tr:hover{background:var(--color-surface-soft)}.asdev-list-row{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-3);border-bottom:1px solid var(--color-border);display:flex}.asdev-list-row:last-child{border-bottom:none}.asdev-list-row .asdev-list-title{font-weight:var(--fw-semibold);font-size:var(--fs-base)}.asdev-list-row .asdev-list-sub{font-size:var(--fs-xs);color:var(--color-text-muted);margin-top:2px}.asdev-list-row .asdev-list-meta{text-align:right;font-size:var(--fs-sm);color:var(--color-text-muted);white-space:nowrap}.asdev-tabs{--tabs-name:tabs}.asdev-tabs .asdev-tabs-list{background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.asdev-tabs input[type=radio]{opacity:0;width:1px;height:1px;margin:-1px;position:absolute}.asdev-tabs label{border-radius:var(--radius-sm);min-height:40px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text-muted);cursor:pointer;transition:background var(--dur-fast) ease, color var(--dur-fast) ease;justify-content:center;align-items:center;padding:8px 16px;display:inline-flex}.asdev-tabs input:checked+label{background:var(--color-accent);color:var(--color-on-accent)}.asdev-tabs input:focus-visible+label{outline:2px solid var(--color-accent);outline-offset:2px}@media (hover:hover) and (pointer:fine){.asdev-tabs label:hover{color:var(--color-text)}}.asdev-tabs--block .asdev-tabs-list{flex-wrap:nowrap;width:100%;display:flex}.asdev-tabs--block label{min-width:0;padding-inline:var(--sp-2);text-align:center;flex:1 1 0}.asdev-tabs--scroll .asdev-tabs-list{scrollbar-width:none;flex-wrap:nowrap;max-width:100%;display:flex;overflow-x:auto}.asdev-tabs--scroll label{white-space:nowrap;flex-shrink:0}.asdev-tab-panel{display:none}@media (prefers-reduced-motion:no-preference){.asdev-tab-panel.is-active{animation:asdev-fade-in var(--dur-slow) var(--ease)}}@keyframes asdev-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.asdev-modal-toggle{opacity:0;width:1px;height:1px;margin:-1px;position:absolute}.asdev-modal-backdrop{padding:var(--sp-4);opacity:0;pointer-events:none;transition:opacity var(--dur-base) ease;z-index:100;background:#0a142099;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.asdev-modal-toggle:checked~.asdev-modal-backdrop{opacity:1;pointer-events:auto}.asdev-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--sp-6);width:100%;max-width:420px;transition:transform var(--dur-base) var(--ease);transform:translateY(12px)scale(.98)}.asdev-modal-toggle:checked~.asdev-modal-backdrop .asdev-modal{transform:translateY(0)scale(1)}:where(.asdev-modal) h3{margin:0 0 var(--sp-2);font-size:var(--fs-lg)}:where(.asdev-modal) p{margin:0 0 var(--sp-5);color:var(--color-text-muted);font-size:var(--fs-sm)}.asdev-modal-actions{gap:var(--sp-3);justify-content:flex-end;display:flex}.asdev-modal-close-label{cursor:default;position:absolute;inset:0}.asdev-toast-region{bottom:var(--sp-6);right:var(--sp-6);z-index:200;gap:var(--sp-2);pointer-events:none;display:grid;position:fixed}.asdev-toast{pointer-events:auto;align-items:center;gap:var(--sp-3);background:var(--color-surface);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-md);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--color-text);opacity:0;max-width:320px;transition:transform var(--dur-base) var(--ease), opacity var(--dur-base) var(--ease);padding:14px 18px;display:flex;transform:translateY(12px)}.asdev-toast.is-visible{opacity:1;transform:translateY(0)}.asdev-toast .asdev-toast-dot{background:var(--asdev-success);border-radius:50%;flex-shrink:0;width:8px;height:8px}@media (width<=480px){.asdev-toast-region{left:var(--sp-4);right:var(--sp-4);bottom:var(--sp-4)}.asdev-toast{max-width:none}}.asdev-header{z-index:30;justify-content:space-between;align-items:center;gap:var(--sp-3) var(--sp-4);padding:var(--sp-2) var(--sp-5);min-height:var(--layout-header-h-desktop);background:color-mix(in srgb, var(--color-bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex;position:sticky;top:0}.asdev-header .asdev-brand{font-weight:var(--fw-extrabold);font-size:var(--fs-sm);flex-shrink:0;align-items:center;gap:10px;min-width:0;display:flex}.asdev-header .asdev-brand-mark{width:auto;height:28px}.asdev-header .asdev-brand-word .as{color:var(--color-text)}.asdev-header .asdev-brand-word .dev{color:var(--color-accent)}.asdev-header-actions{align-items:center;gap:var(--sp-3);display:flex}.asdev-shell{grid-template-columns:var(--layout-sidebar-width) 1fr;min-height:100%;display:grid}.asdev-shell__sidebar{border-right:1px solid var(--color-border);padding:var(--sp-5) var(--sp-4);align-content:start;gap:var(--sp-1);background:var(--color-bg-soft);display:grid}.asdev-shell__sidebar .asdev-nav-item{align-items:center;gap:var(--sp-3);border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-text-muted);transition:background var(--dur-fast) ease, color var(--dur-fast) ease;text-align:left;width:100%;min-height:44px;padding:10px 12px;display:flex}.asdev-shell__sidebar .asdev-nav-item svg{flex-shrink:0;width:18px;height:18px}@media (hover:hover) and (pointer:fine){.asdev-shell__sidebar .asdev-nav-item:hover{color:var(--color-text);background:var(--color-surface-soft)}}.asdev-shell__sidebar .asdev-nav-item.is-active{color:var(--color-text);background:var(--color-accent-soft);font-weight:var(--fw-semibold)}.asdev-shell__sidebar .asdev-nav-item.is-active svg{color:var(--color-accent-text)}.asdev-shell__main{padding:var(--sp-6);min-width:0}.asdev-bottom-nav{height:var(--layout-bottom-nav-h);background:color-mix(in srgb, var(--color-surface) 94%, transparent);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--color-border);z-index:30;padding-bottom:env(safe-area-inset-bottom,0px);height:calc(var(--layout-bottom-nav-h) + env(safe-area-inset-bottom,0px));justify-content:space-around;align-items:stretch;display:none;position:fixed;bottom:0;left:0;right:0}.asdev-bottom-nav .asdev-nav-item{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:11px;display:flex}.asdev-bottom-nav .asdev-nav-item svg{width:20px;height:20px}.asdev-bottom-nav .asdev-nav-item.is-active{color:var(--color-accent-text);font-weight:var(--fw-bold)}button.asdev-nav-item{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0}.asdev-bottom-nav .asdev-nav-item{min-width:44px;font-size:11px}.asdev-bottom-nav .asdev-nav-icon{border-radius:var(--radius-pill);width:52px;height:28px;transition:background var(--dur-fast) ease;justify-content:center;align-items:center;display:inline-flex}.asdev-bottom-nav .asdev-nav-item.is-active .asdev-nav-icon{background:var(--color-accent-soft)}.asdev-shell-frame{container:asdev-shell/inline-size}@container asdev-shell (width<=768px){.asdev-shell{grid-template-columns:1fr}.asdev-shell__sidebar{display:none}.asdev-shell__main{padding:var(--sp-4);padding-bottom:calc(var(--layout-bottom-nav-h) + var(--sp-6))}.asdev-bottom-nav{display:flex}.asdev-header{height:var(--layout-header-h-mobile);padding:0 var(--sp-4)}}@container asdev-shell (width<=480px){.asdev-section-head{gap:var(--sp-3)}.asdev-card{padding:var(--sp-4)}}@supports not (container-type:inline-size){@media (width<=768px){.asdev-shell{grid-template-columns:1fr}.asdev-shell__sidebar{display:none}.asdev-shell__main{padding:var(--sp-4);padding-bottom:calc(var(--layout-bottom-nav-h) + var(--sp-6))}.asdev-bottom-nav{display:flex}.asdev-header{height:var(--layout-header-h-mobile);padding:0 var(--sp-4)}}}.asdev-num{font-family:var(--font-en), var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:var(--ls-snug);word-spacing:.08em}.asdev-shell--viewport{min-height:100dvh}.asdev-shell--viewport .asdev-shell__sidebar{grid-auto-rows:max-content;height:100dvh;position:sticky;top:0;overflow-y:auto}.asdev-shell--viewport .asdev-shell__main{width:100%;max-width:var(--layout-max-width);margin-inline:auto}@media (width<=899px){.asdev-shell--viewport{grid-template-columns:minmax(0,1fr)}.asdev-shell--viewport .asdev-shell__sidebar{display:none}.asdev-shell--viewport .asdev-shell__main{padding:var(--sp-4);padding-top:max(var(--sp-4), env(safe-area-inset-top,0px));padding-bottom:calc(var(--layout-bottom-nav-h) + env(safe-area-inset-bottom,0px) + var(--sp-6))}.asdev-shell--viewport~.asdev-bottom-nav,.asdev-shell--viewport .asdev-bottom-nav{display:flex}}.asdev-page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-5);display:flex}.asdev-page-head h1{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-snug);line-height:var(--lh-snug);margin:0}.asdev-page-head>div{min-width:0}.asdev-page-head>.asdev-btn{white-space:nowrap;flex-shrink:0}.asdev-page-head .asdev-page-kicker{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--color-text-muted);margin:0 0 2px}.asdev-section-head--compact{margin-bottom:var(--sp-3);gap:var(--sp-2);align-items:center}.asdev-section-head--compact h2{font-size:var(--fs-md);font-weight:var(--fw-bold)}.asdev-section-head--compact .asdev-section-note{max-width:none}.asdev-card--hero{background:var(--asdev-navy);padding:var(--sp-5);box-shadow:var(--shadow-md);border-color:#0000;position:relative;overflow:hidden}.asdev-card--hero:after{content:"";background:var(--color-accent);height:3px;position:absolute;inset:0 0 auto}.asdev-hero-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text-muted);margin:0}.asdev-hero-value{margin:var(--sp-1) 0 0;font-size:var(--fs-4xl);font-weight:var(--fw-extrabold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--color-text)}.asdev-hero-value small{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--color-text-muted);margin-left:var(--sp-1);letter-spacing:0}.asdev-stat-row{grid-template-columns:repeat(var(--stat-cols,3), minmax(0, 1fr));gap:var(--sp-3);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--color-border);display:grid}.asdev-stat{min-width:0}.asdev-stat-label{font-size:var(--fs-xs);color:var(--color-text-muted);margin:0}.asdev-stat-value{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--color-text);white-space:nowrap;margin:2px 0 0}.asdev-card--list{padding:0;overflow:hidden}.asdev-card--list>.asdev-list-row,.asdev-card--list>li>.asdev-list-row{padding:var(--sp-3) var(--sp-4)}.asdev-card--list>li:last-child>.asdev-list-row{border-bottom:none}.asdev-list-row--action{border:0;border-bottom:1px solid var(--color-border);width:100%;min-height:56px;font:inherit;color:inherit;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) ease;background:0 0}.asdev-list-row--action:active{background:var(--color-surface-soft)}@media (hover:hover) and (pointer:fine){.asdev-list-row--action:hover{background:var(--color-surface-soft)}}.asdev-list-row .asdev-list-main{flex:auto;min-width:0}.asdev-list-row .asdev-list-title{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.asdev-list-row .asdev-list-title>span:first-child,.asdev-list-row .asdev-list-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.asdev-list-row .asdev-list-value{text-align:right;white-space:nowrap;flex-shrink:0}.asdev-list-row .asdev-list-value strong{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--color-text);display:block}.asdev-list-row .asdev-list-value span{font-size:var(--fs-xs);color:var(--color-text-muted);margin-top:2px;display:block}.asdev-list-chevron{width:18px;height:18px;color:var(--color-text-muted);flex-shrink:0}.asdev-bar-list{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.asdev-bar-list li{gap:6px var(--sp-3);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;display:grid}.asdev-bar-list .asdev-bar-label{font-size:var(--fs-sm);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.asdev-bar-list .asdev-bar-value{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text);white-space:nowrap}.asdev-bar-list .asdev-bar-value span{color:var(--color-text-muted);font-weight:var(--fw-regular);margin-left:var(--sp-2);text-align:right;min-width:3.2em;display:inline-block}.asdev-bar-list .asdev-bar-track{border-radius:var(--radius-pill);background:var(--color-surface-soft);grid-column:1/-1;height:8px;overflow:hidden}.asdev-bar-list .asdev-bar-fill{border-radius:var(--radius-pill);background:var(--color-accent);min-width:4px;height:100%;display:block}.asdev-bar-list li.is-muted .asdev-bar-fill{background:var(--asdev-steel)}.asdev-col-chart{grid-template-columns:repeat(var(--cols,6), minmax(0, 1fr));gap:var(--sp-2);height:var(--chart-h,168px);align-items:end;margin:0;padding:0;list-style:none;display:grid}.asdev-col-chart li{text-align:center;grid-template-rows:auto 1fr auto;min-width:0;height:100%;display:grid}.asdev-col-chart .asdev-col-value{font-size:11px;font-weight:var(--fw-semibold);color:var(--color-text);white-space:nowrap;text-overflow:clip;overflow:hidden}.asdev-col-chart .asdev-col-bar-wrap{padding-top:var(--sp-1);border-bottom:1px solid var(--color-border-strong);justify-content:center;align-items:flex-end;display:flex}.asdev-col-chart .asdev-col-bar{background:var(--color-accent);border-radius:4px 4px 0 0;width:min(100%,28px);min-height:2px}.asdev-col-chart li.is-partial .asdev-col-bar{background:repeating-linear-gradient(135deg, var(--color-accent) 0 4px, color-mix(in srgb, var(--color-accent) 45%, transparent) 4px 8px)}.asdev-col-chart .asdev-col-label{margin-top:var(--sp-1);color:var(--color-text-muted);white-space:nowrap;font-size:11px}.asdev-calendar{width:100%}.asdev-calendar-head,.asdev-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.asdev-calendar-head{margin-bottom:var(--sp-1)}.asdev-calendar-head span{text-align:center;font-size:11px;font-weight:var(--fw-semibold);color:var(--color-text-muted);padding:var(--sp-1) 0}.asdev-calendar-head span:first-child{color:var(--color-danger-text)}.asdev-calendar-day{border-radius:var(--radius-md);min-width:0;min-height:52px;font:inherit;color:var(--color-text);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease;background:0 0;border:1px solid #0000;flex-direction:column;justify-content:flex-start;align-items:center;gap:2px;padding:6px 2px 4px;display:flex}.asdev-calendar-day .asdev-calendar-date{font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1.2}.asdev-calendar-day .asdev-calendar-amount{font-size:10px;font-weight:var(--fw-bold);color:var(--color-accent-text);text-overflow:clip;white-space:nowrap;max-width:100%;line-height:1.2;overflow:hidden}.asdev-calendar-day.has-items{background:var(--color-accent-soft)}.asdev-calendar-day.is-today{border-color:var(--color-accent)}.asdev-calendar-day.is-today .asdev-calendar-date{font-weight:var(--fw-extrabold)}.asdev-calendar-day.is-past,.asdev-calendar-day.is-past .asdev-calendar-amount{color:var(--color-text-muted)}.asdev-calendar-day.is-past.has-items{background:var(--color-surface-soft)}.asdev-calendar-day[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);opacity:1}.asdev-calendar-day[aria-pressed=true] .asdev-calendar-amount{color:var(--color-on-accent)}@media (hover:hover) and (pointer:fine){.asdev-calendar-day:hover{border-color:var(--color-border-strong)}}@media (width>=900px){.asdev-calendar-day{min-height:68px}.asdev-calendar-day .asdev-calendar-amount{font-size:11px}}.asdev-banner{gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);align-items:flex-start;display:flex}.asdev-banner>svg{flex-shrink:0;width:20px;height:20px;margin-top:1px}.asdev-banner-body{flex:1;min-width:0}.asdev-banner-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--color-text);margin:0}.asdev-banner-text{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--color-text-muted)}.asdev-banner--danger{border-color:color-mix(in srgb, var(--asdev-danger) 45%, transparent);background:var(--color-danger-soft)}.asdev-banner--danger>svg{color:var(--color-danger-text)}.asdev-banner--warning{border-color:color-mix(in srgb, var(--asdev-warning) 45%, transparent);background:var(--color-warning-soft)}.asdev-banner--warning>svg{color:var(--color-warning-text)}.asdev-banner--accent{border-color:color-mix(in srgb, var(--color-accent) 35%, transparent);background:var(--color-accent-soft)}.asdev-banner--accent>svg{color:var(--color-accent-text)}.asdev-modal-backdrop.is-open{opacity:1;pointer-events:auto}.asdev-modal-backdrop.is-open .asdev-modal{transform:none}@media (prefers-reduced-motion:no-preference){.asdev-modal-backdrop.is-open{animation:asdev-backdrop-in var(--dur-base) var(--ease)}.asdev-modal-backdrop.is-open .asdev-modal{animation:asdev-modal-in var(--dur-base) var(--ease)}}@keyframes asdev-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes asdev-modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.asdev-modal{max-height:calc(100dvh - 2 * var(--sp-4));overscroll-behavior:contain;position:relative;overflow-y:auto}.asdev-modal-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.asdev-modal-head h2,.asdev-modal-head h3{font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-snug);margin:0}.asdev-modal-close{border-radius:var(--radius-pill);width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin:-10px -10px 0 0;display:inline-flex}.asdev-modal-close svg{width:20px;height:20px}@media (hover:hover) and (pointer:fine){.asdev-modal-close:hover{background:var(--color-surface-soft);color:var(--color-text)}}.asdev-modal--wide{max-width:560px}.asdev-modal-footer{bottom:calc(-1 * var(--sp-6));margin:var(--sp-5) calc(-1 * var(--sp-6)) calc(-1 * var(--sp-6));padding:var(--sp-4) var(--sp-6) var(--sp-5);background:var(--color-surface);border-top:1px solid var(--color-border);gap:var(--sp-3);justify-content:flex-end;display:flex;position:sticky}@media (width<=599px){.asdev-modal-backdrop:has(.asdev-modal--sheet){padding:0;padding-top:var(--sp-6);align-items:flex-end}.asdev-modal--sheet{max-width:none;max-height:calc(100dvh - var(--sp-6));border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--sp-5) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom,0px));border-bottom:0}.asdev-modal--sheet .asdev-modal-footer{bottom:calc(-1 * (var(--sp-5) + env(safe-area-inset-bottom,0px)));margin:var(--sp-5) calc(-1 * var(--sp-4)) calc(-1 * (var(--sp-5) + env(safe-area-inset-bottom,0px)));padding:var(--sp-3) var(--sp-4) calc(var(--sp-3) + env(safe-area-inset-bottom,0px))}.asdev-modal--sheet .asdev-modal-footer .asdev-btn{flex:1}@media (prefers-reduced-motion:no-preference){.asdev-modal-backdrop.is-open .asdev-modal--sheet{animation:asdev-sheet-in var(--dur-slow) var(--ease)}}}@keyframes asdev-sheet-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}.asdev-avatar{border-radius:var(--radius-md);background:var(--color-surface-soft);width:40px;height:40px;color:var(--color-text);font-family:var(--font-en), var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-sm);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.asdev-avatar--sm{border-radius:var(--radius-sm);width:28px;height:28px;font-size:var(--fs-xs)}.asdev-avatar--lg{border-radius:var(--radius-md);width:48px;height:48px;font-size:var(--fs-base)}.asdev-avatar--accent{background:var(--color-accent-soft);color:var(--color-accent-text)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.flex-shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}html[data-theme=forest]{--sw-bg-pattern:#e7f4de;--sw-hero-bg:#1b512d;--color-bg:#f4faf1;--color-bg-soft:#e6f3e0;--color-surface:#fff;--color-surface-soft:#e6f3e0;--color-border:#d8ecdc;--color-text:#1b3a26;--color-text-muted:#556e5e;--color-accent:#1c7c54;--color-accent-soft:#ddf0e5;--color-accent-strong:#1b512d;--color-accent-text:#1b512d;--color-on-accent:#fff}html[data-theme=plum]{--sw-bg-pattern:#f0eff4;--sw-hero-bg:#3d2645;--color-bg:#f8f6fa;--color-bg-soft:#f1e7ee;--color-surface:#fff;--color-surface-soft:#f1e7ee;--color-border:#ecdbe6;--color-text:#3d2645;--color-text-muted:#736076;--color-accent:#832161;--color-accent-soft:#f3e1ec;--color-accent-strong:#3d2645;--color-accent-text:#3d2645;--color-on-accent:#fff}html[data-theme=petal]{--sw-bg-pattern:#ffd6ff;--sw-hero-bg:#4a3d5c;--color-bg:#fdf7ff;--color-bg-soft:#f1e9fc;--color-surface:#fff;--color-surface-soft:#f1e9fc;--color-border:#e3dcff;--color-text:#4a3d5c;--color-text-muted:#6e628a;--color-accent:#c8b6ff;--color-accent-soft:#f5eeff;--color-accent-strong:#a894f2;--color-accent-text:#5f4bb0;--color-on-accent:#3d2645}html[data-theme=forest] body,html[data-theme=plum] body,html[data-theme=petal] body{background-image:radial-gradient(circle at 1px 1px, var(--sw-bg-pattern) 1px, transparent 0);background-size:22px 22px}html[data-theme=forest] .asdev-card--hero,html[data-theme=plum] .asdev-card--hero,html[data-theme=petal] .asdev-card--hero{background:var(--sw-hero-bg);--color-text-muted:var(--asdev-paper)}@supports (color:color-mix(in lab, red, red)){html[data-theme=forest] .asdev-card--hero,html[data-theme=plum] .asdev-card--hero,html[data-theme=petal] .asdev-card--hero{--color-text-muted:color-mix(in srgb, var(--asdev-paper) 78%, var(--sw-hero-bg))}}html[data-theme=forest] .asdev-card--hero,html[data-theme=plum] .asdev-card--hero,html[data-theme=petal] .asdev-card--hero{--color-surface-soft:#fff}@supports (color:color-mix(in lab, red, red)){html[data-theme=forest] .asdev-card--hero,html[data-theme=plum] .asdev-card--hero,html[data-theme=petal] .asdev-card--hero{--color-surface-soft:color-mix(in srgb, #fff 9%, var(--sw-hero-bg))}}html[data-theme=petal] :focus-visible{outline-color:var(--color-accent-text)}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;background:var(--color-bg)}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;margin:0}#root{min-height:100dvh}button,[role=button],a{touch-action:manipulation}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.sw-app .asdev-shell__main{padding-top:max(var(--sp-6), env(safe-area-inset-top,0px))}.sw-sidebar-brand{padding:var(--sp-2) var(--sp-3) var(--sp-5)}.sw-brand-studio{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-wide);color:var(--color-text);white-space:nowrap;margin:0}.sw-brand-studio b{color:var(--color-accent-text);font-weight:inherit}.sw-sidebar-brand .sw-brand-app{font-size:var(--fs-md);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-snug);margin:2px 0 0}.sw-sidebar-add{margin:var(--sp-5) 0 0}.sw-screen{gap:var(--sp-6);min-width:0;display:grid}.sw-section{gap:var(--sp-3);min-width:0;display:grid}.sw-section>.asdev-section-head{margin-bottom:0}.sw-dashboard{gap:var(--sp-6);grid-template-columns:minmax(0,1fr);display:grid}.sw-two-col,.sw-cal-layout{gap:var(--sp-6);min-width:0;display:grid}@media (width>=900px){.sw-dashboard{align-items:start;gap:var(--sp-5);grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.sw-dashboard>.sw-span{grid-column:1/-1}.sw-two-col{gap:var(--sp-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.sw-cal-layout{gap:var(--sp-5);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;display:grid}}@media (width<=374px){.asdev-hero-value{font-size:var(--fs-3xl)}.asdev-stat-value{font-size:var(--fs-md)}}.sw-hero-next{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--color-surface-soft);font-size:var(--fs-sm);display:flex}.sw-hero-next .sw-hero-next-label{color:var(--color-text-muted);font-size:var(--fs-xs);margin:0}.sw-hero-next .sw-hero-next-name{color:var(--color-text);font-weight:var(--fw-bold);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.sw-hero-note{margin:var(--sp-3) 0 0;font-size:var(--fs-xs);color:var(--color-text-muted)}.sw-due{font-size:var(--fs-xs);color:var(--color-text-muted)}.sw-due--soon{color:var(--color-warning-text);font-weight:var(--fw-semibold)}.sw-due--today{color:var(--color-danger-text);font-weight:var(--fw-bold)}.sw-row-meta{font-size:var(--fs-xs);color:var(--color-text-muted)}.sw-row-date-chip{text-align:center;flex-shrink:0;place-items:center;width:44px;line-height:1.1;display:grid}.sw-row-date-chip b{font-size:var(--fs-lg);font-weight:var(--fw-extrabold)}.sw-row-date-chip span{color:var(--color-text-muted);font-size:11px}.sw-toolbar{justify-content:flex-end;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.sw-toolbar .asdev-select{width:auto;min-width:11rem;font-size:var(--fs-sm)}.sw-toolbar-summary{font-size:var(--fs-sm);color:var(--color-text-muted);margin:0}.sw-cal-nav{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);display:flex}.sw-cal-nav h2{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0}.sw-icon-btn{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);width:44px;height:44px;color:var(--color-text);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sw-icon-btn svg{width:20px;height:20px}.sw-icon-btn:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.sw-icon-btn:hover{background:var(--color-surface-soft)}}.sw-cal-total{justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) 0 0;margin-top:var(--sp-4);border-top:1px solid var(--color-border);display:flex}.sw-cal-total p{margin:0}.sw-opportunity{gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--color-border);display:grid}.sw-opportunity:last-child{border-bottom:none}.sw-opportunity-head{align-items:center;gap:var(--sp-3);min-width:0;display:flex}.sw-opportunity-head .sw-name{min-width:0;font-weight:var(--fw-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sw-opportunity-head .sw-amount{font-weight:var(--fw-bold);white-space:nowrap}.sw-opportunity-head .sw-amount small{font-weight:var(--fw-regular);color:var(--color-text-muted);font-size:var(--fs-xs);margin-left:2px}.sw-tip{gap:var(--sp-2);padding:var(--sp-4);border-bottom:1px solid var(--color-border);display:grid}.sw-tip:last-child{border-bottom:none}.sw-tip p{font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--color-text);margin:0}.sw-link-btn{align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-1);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-accent-text);cursor:pointer;text-align:left;background:0 0;border:0;display:inline-flex}.sw-link-btn svg{flex-shrink:0;width:16px;height:16px}@media (hover:hover) and (pointer:fine){.sw-link-btn:hover{text-decoration:underline}}.sw-setting{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-4);border-bottom:1px solid var(--color-border);min-height:64px;display:flex}.sw-setting:last-child{border-bottom:none}.sw-setting-text{flex:1;min-width:0}.sw-setting-title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--color-text);align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:0;display:flex}.sw-setting-desc{font-size:var(--fs-xs);color:var(--color-text-muted);margin:2px 0 0;line-height:1.6}.sw-group-label{margin:0 0 var(--sp-2) var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);color:var(--color-text-muted)}.sw-swatches{gap:var(--sp-1);flex-wrap:wrap;display:flex}.sw-swatch{cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex;position:relative}.sw-swatch-dot{border-radius:var(--radius-pill);width:30px;height:30px;transition:transform var(--dur-fast) var(--ease);box-shadow:inset 0 0 0 1px #0a14201f}.sw-swatch[aria-pressed=true] .sw-swatch-dot{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-text);transform:scale(1.05)}.sw-swatch.is-locked .sw-swatch-dot{opacity:.45}.sw-swatch-lock{border-radius:var(--radius-pill);background:var(--color-surface);width:18px;height:18px;color:var(--color-text-muted);box-shadow:var(--shadow-sm);place-items:center;display:grid;position:absolute;bottom:2px;right:2px}.sw-swatch-lock svg{width:11px;height:11px}.sw-form{gap:var(--sp-5);display:grid}.sw-form-row{gap:var(--sp-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;display:grid}.sw-presets{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(72px,1fr));max-height:228px;padding:2px;display:grid;overflow-y:auto}.sw-preset{padding:var(--sp-2) var(--sp-1);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);min-height:76px;color:var(--color-text-muted);font:inherit;cursor:pointer;justify-items:center;gap:6px;min-width:0;font-size:11px;display:grid}.sw-preset span{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;overflow:hidden}.sw-preset[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text)}@media (hover:hover) and (pointer:fine){.sw-preset:hover{background:var(--color-surface-soft)}}.sw-plan{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;text-align:left;display:flex}.sw-plan[aria-checked=true]{border-color:var(--color-accent);background:var(--color-accent-soft);box-shadow:inset 0 0 0 1px var(--color-accent)}@media (hover:hover) and (pointer:fine){.sw-plan:hover{border-color:var(--color-accent)}}.sw-onboarding{z-index:70;background:var(--color-bg);padding:max(var(--sp-4), env(safe-area-inset-top,0px)) var(--sp-5) max(var(--sp-5), env(safe-area-inset-bottom,0px));grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.sw-onboarding-body{align-content:center;justify-items:center;gap:var(--sp-4);text-align:center;width:100%;max-width:420px;margin:0 auto;display:grid}.sw-onboarding-icon{border-radius:var(--radius-xl);background:var(--color-accent-soft);width:72px;height:72px;color:var(--color-accent-text);place-items:center;display:grid}.sw-onboarding-icon svg{width:32px;height:32px}.sw-onboarding h2{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-snug);margin:0}.sw-onboarding p{color:var(--color-text-muted);font-size:var(--fs-base);margin:0}.sw-onboarding-foot{gap:var(--sp-4);width:100%;max-width:420px;margin:0 auto;display:grid}.sw-dots{justify-content:center;gap:var(--sp-2);display:flex}.sw-dots span{border-radius:var(--radius-pill);background:var(--color-border-strong);width:8px;height:8px;transition:width var(--dur-base) var(--ease), background var(--dur-base) ease}.sw-dots span.is-active{background:var(--color-accent);width:24px}.sw-empty-inline{padding:var(--sp-5) var(--sp-4);text-align:center;font-size:var(--fs-sm);color:var(--color-text-muted);margin:0}.sw-hero-empty{gap:var(--sp-4);justify-items:start;display:grid}.sw-hero-empty h2{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);margin:0}.sw-hero-empty p{color:var(--color-text-muted);font-size:var(--fs-sm);margin:0}.sw-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sw-row-date-chip span,.sw-preset{font-size:var(--fs-xs)}.sw-due--soon:before,.sw-due--today:before{content:"";border-radius:var(--radius-pill);vertical-align:.12em;background:currentColor;width:6px;height:6px;margin-right:6px;display:inline-block}.sw-link-btn:active,.sw-preset:active,.sw-plan:active,.sw-swatch:active .sw-swatch-dot{transform:scale(.97)}.sw-link-btn:active{opacity:.7}.asdev-nav-item:active{transform:scale(.96)}.asdev-list-row--action .asdev-list-chevron{transition:transform var(--dur-fast) var(--ease)}.asdev-list-row--action:active .asdev-list-chevron{transform:translate(2px)}@media (prefers-reduced-motion:no-preference){.sw-screen{animation:sw-screen-in var(--dur-slow) var(--ease) both}.asdev-card--list li{animation:sw-rise var(--dur-slow) var(--ease) both}.asdev-card--list li:nth-child(2){animation-delay:40ms}.asdev-card--list li:nth-child(3){animation-delay:80ms}.asdev-card--list li:nth-child(4){animation-delay:.12s}.asdev-card--list li:nth-child(n+5){animation-delay:.16s}.asdev-bar-list .asdev-bar-fill{transform-origin:0;animation:sw-bar-fill .7s var(--ease) both}.asdev-bar-list li:nth-child(2) .asdev-bar-fill{animation-delay:60ms}.asdev-bar-list li:nth-child(3) .asdev-bar-fill{animation-delay:.12s}.asdev-bar-list li:nth-child(n+4) .asdev-bar-fill{animation-delay:.18s}.asdev-nav-item.is-active svg{animation:sw-pop var(--dur-base) var(--ease)}.asdev-card--hero{animation:sw-rise var(--dur-slow) var(--ease) both}.sw-hero-next{animation:sw-rise var(--dur-slow) var(--ease) .12s both}.sw-onboarding-body{animation:sw-rise var(--dur-slow) var(--ease) both}.sw-onboarding-icon{animation:sw-pop .5s var(--ease) 80ms both}.sw-swatch-dot,.sw-preset,.sw-plan{transition:transform var(--dur-fast) var(--ease), background-color var(--dur-fast) ease, border-color var(--dur-fast) ease}}@keyframes sw-screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes sw-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes sw-bar-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes sw-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:scale(1)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
