:root,[data-theme=light]{--font-body: "Satoshi", Inter, system-ui, sans-serif;--font-display: "Boska", Georgia, serif;--text-xs: clamp(.75rem, .72rem + .2vw, .875rem);--text-sm: clamp(.875rem, .84rem + .3vw, 1rem);--text-base: clamp(1rem, .96rem + .25vw, 1.125rem);--text-lg: clamp(1.125rem, 1rem + .6vw, 1.4rem);--text-xl: clamp(1.5rem, 1.2rem + 1vw, 2rem);--text-2xl: clamp(2rem, 1.6rem + 1.6vw, 2.8rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--color-bg: #fff8f6;--color-surface: rgba(255, 255, 255, .82);--color-surface-solid: #ffffff;--color-surface-2: rgba(255, 244, 241, .92);--color-surface-offset: rgba(248, 238, 246, .92);--color-border: rgba(79, 51, 76, .12);--color-divider: rgba(79, 51, 76, .08);--color-text: #2d2230;--color-text-muted: #6d6370;--color-text-faint: #9a8f9b;--color-primary: #e96b94;--color-primary-hover: #db547f;--color-secondary: #b78bff;--color-accent: #ffb487;--color-sage: #92b79b;--color-gold: #d7b166;--color-rose: #e96b94;--color-peach: #ffb487;--color-success: #4c8b5f;--color-warning: #b87917;--color-blue: #4998bf;--radius-sm: 12px;--radius-md: 18px;--radius-lg: 24px;--radius-xl: 30px;--shadow-sm: 0 4px 10px rgba(90, 58, 89, .06);--shadow-md: 0 14px 30px rgba(90, 58, 89, .08);--shadow-lg: 0 24px 56px rgba(90, 58, 89, .12);--transition: .18s cubic-bezier(.16, 1, .3, 1);--grad-brand: linear-gradient(120deg, #e96b94, #b78bff);--grad-gold: linear-gradient(120deg, #e7c97b, #d7b166 55%, #b8912f)}[data-theme=dark]{--color-bg: #171318;--color-surface: rgba(35, 29, 37, .88);--color-surface-solid: #231d25;--color-surface-2: rgba(42, 35, 44, .92);--color-surface-offset: rgba(32, 28, 38, .96);--color-border: rgba(255, 255, 255, .12);--color-divider: rgba(255, 255, 255, .08);--color-text: #f3edf5;--color-text-muted: #c0b3c4;--color-text-faint: #8c8090;--color-primary: #c48cff;--color-primary-hover: #d39eff;--color-secondary: #b78bff;--color-accent: #ffc8a6;--color-sage: #9bc9a7;--color-gold: #e7c97b;--color-rose: #ff9abb;--color-peach: #ffc8a6;--color-success: #7cc490;--color-warning: #efbd5f;--color-blue: #7ac6ef;--shadow-sm: 0 4px 10px rgba(0, 0, 0, .22);--shadow-md: 0 14px 30px rgba(0, 0, 0, .28);--shadow-lg: 0 24px 56px rgba(0, 0, 0, .35);--grad-brand: linear-gradient(120deg, #ff9abb, #c48cff)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;color:var(--color-text);background:radial-gradient(circle at top left,color-mix(in oklab,var(--color-rose) 16%,transparent),transparent 25%),radial-gradient(circle at top right,color-mix(in oklab,var(--color-secondary) 14%,transparent),transparent 28%),linear-gradient(180deg,var(--color-bg) 0%,color-mix(in oklab,var(--color-bg) 82%,white) 100%);background-attachment:fixed}a,button,input,select,textarea{font:inherit;color:inherit}a{color:var(--color-primary);text-decoration:none}button{cursor:pointer;border:none;background:none}input,select,textarea{width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-solid);color:var(--color-text);transition:border-color var(--transition),box-shadow var(--transition)}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-primary) 30%,transparent)}:focus-visible{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;top:12px;background:var(--color-surface-2);padding:10px 14px;border-radius:12px;z-index:1000;border:1px solid var(--color-border)}.skip-link:focus{left:12px}.glass{background:var(--color-surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:var(--radius-lg)}.panel{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:var(--radius-lg);padding:var(--space-5)}.stack{display:grid;gap:var(--space-3);align-content:start}.row{display:flex;align-items:center;gap:var(--space-3)}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.wrap{flex-wrap:wrap}.muted{color:var(--color-text-muted)}.faint{color:var(--color-text-faint)}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:color-mix(in oklab,white 70%,var(--color-surface));color:var(--color-primary);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;width:fit-content}.page-title{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.05;font-weight:500;margin:10px 0}.section-title{font-size:var(--text-lg);margin-bottom:6px;font-weight:700}.section-copy,.lede{color:var(--color-text-muted);font-size:var(--text-sm)}.lede{max-width:60ch;font-size:var(--text-base)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:var(--radius-sm);font-weight:700;min-height:44px;border:1px solid transparent;transition:transform var(--transition),background var(--transition),box-shadow var(--transition);white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-sm)}.btn-gold{background:var(--grad-gold);color:#2d2230}.btn-ghost{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-sm{padding:8px 12px;min-height:38px;font-size:var(--text-sm)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.badge{padding:6px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:700;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.badge.rose{background:color-mix(in oklab,var(--color-rose) 18%,transparent);color:#b0416c}.badge.sage{background:color-mix(in oklab,var(--color-success) 18%,transparent);color:#427057}.badge.gold{background:color-mix(in oklab,var(--color-warning) 20%,transparent);color:#8a6310}.badge.lilac{background:color-mix(in oklab,var(--color-secondary) 20%,transparent);color:#6e42a8}.badge.blue{background:color-mix(in oklab,var(--color-blue) 18%,transparent);color:#2f6d8c}[data-theme=dark] .badge.rose,[data-theme=dark] .badge.sage,[data-theme=dark] .badge.gold,[data-theme=dark] .badge.lilac,[data-theme=dark] .badge.blue{color:var(--color-text)}.item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--color-surface-2);border:1px solid var(--color-border)}.item strong{display:block;font-size:var(--text-sm)}.item small{display:block;color:var(--color-text-muted);font-size:var(--text-xs)}.list{display:grid;gap:10px}.progress{height:10px;border-radius:999px;background:color-mix(in oklab,var(--color-primary) 10%,var(--color-surface-offset));overflow:hidden;margin-top:10px}.progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--color-primary),var(--color-blue),var(--color-sage))}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{padding:9px 14px;border-radius:999px;border:1px solid var(--color-border);background:transparent;min-height:40px;color:var(--color-text)}.tab.active{background:color-mix(in oklab,var(--color-primary) 12%,var(--color-surface-2));border-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}.field{display:grid;gap:6px}.field label{font-size:var(--text-sm);font-weight:500}.field .error-text{color:var(--color-primary);font-size:var(--text-xs)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 900px){.grid-2,.grid-3{grid-template-columns:1fr}}.empty{padding:var(--space-8);text-align:center;color:var(--color-text-muted);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-primary);animation:spin .8s linear infinite;margin:var(--space-8) auto}@keyframes spin{to{transform:rotate(360deg)}}img,video{max-width:100%;height:auto}svg,canvas{max-width:100%}@media (max-width: 768px){html{font-size:15px}}@media (max-width: 480px){html{font-size:14px}}.app-shell{max-width:1580px;margin:0 auto;padding:20px;display:grid;gap:18px;min-height:100dvh}.topbar{display:grid;grid-template-columns:260px 1fr auto auto;gap:16px;align-items:center}.brand{display:flex;align-items:center;gap:12px;padding:14px 18px;min-height:72px}.brand-logo{height:36px;width:auto;max-width:160px;object-fit:contain;flex-shrink:0;display:block}.brand .tagline{font-size:var(--text-xs);color:var(--color-text-muted)}.searchbar{min-height:72px;display:flex;align-items:center;gap:10px;padding:0 18px;color:var(--color-text-muted);font-size:var(--text-sm)}.searchbar input[type=search]{flex:1;min-width:0;border:none;background:transparent;color:var(--color-text);font-size:var(--text-sm);padding:8px 0}.searchbar input[type=search]:focus{outline:none}.topbar-actions{display:flex;align-items:center;gap:12px;min-height:72px;padding:0 16px}.status-pill{min-height:72px;display:flex;align-items:center;gap:10px;padding:0 18px;font-size:var(--text-sm)}.icon-btn{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;border:1px solid var(--color-border);background:var(--color-surface);font-size:1.1rem;transition:transform var(--transition)}.icon-btn:hover{transform:translateY(-1px)}.layout{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:start}.layout.with-rail{grid-template-columns:260px 1fr 320px}.sidebar{padding:18px;display:flex;flex-direction:column;gap:14px;position:sticky;top:20px;align-self:start}.section-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);padding:6px 2px 0}.nav-list{display:grid;gap:8px}.nav-btn{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;text-align:left;background:transparent;border:1px solid transparent;min-height:48px;color:var(--color-text);transition:background var(--transition),border-color var(--transition)}.nav-btn:hover{background:color-mix(in oklab,var(--color-primary) 6%,var(--color-surface))}.nav-btn.active{background:color-mix(in oklab,var(--color-primary) 12%,var(--color-surface));border-color:var(--color-border);font-weight:700}.nav-icon{width:20px;height:20px;border-radius:7px;background:color-mix(in oklab,var(--color-primary) 16%,transparent);display:grid;place-items:center;font-size:.8rem;flex-shrink:0}.side-card{margin-top:auto;padding:16px;border-radius:20px;background:var(--color-surface-2);border:1px solid var(--color-border)}.side-card h3{font-size:var(--text-sm);margin-bottom:6px}.side-card p{color:var(--color-text-muted);font-size:var(--text-sm)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-collapse-btn{width:34px;height:34px;font-size:1rem;flex-shrink:0}.layout,.sidebar{transition:grid-template-columns var(--transition),width var(--transition)}.nav-label{white-space:nowrap;overflow:hidden}.layout.nav-collapsed{grid-template-columns:88px 1fr}.layout.nav-collapsed.with-rail{grid-template-columns:88px 1fr 320px}.nav-collapsed .sidebar{padding:14px 10px}.nav-collapsed .sidebar-head{justify-content:center}.nav-collapsed .section-label,.nav-collapsed .nav-label{display:none}.nav-collapsed .nav-btn{justify-content:center;gap:0;padding:12px 0}.nav-collapsed .side-card{display:none}.main{padding:20px;display:grid;gap:16px;align-content:start;min-height:calc(100dvh - 130px)}.rail{padding:18px;display:grid;gap:16px;align-content:start;position:sticky;top:20px}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.hero-card{background:linear-gradient(135deg,color-mix(in oklab,var(--color-rose) 16%,var(--color-surface)),color-mix(in oklab,var(--color-peach) 12%,var(--color-surface)),color-mix(in oklab,var(--color-secondary) 12%,var(--color-surface)));display:flex;flex-direction:column;justify-content:space-between;min-height:220px;gap:16px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{padding:14px;border-radius:18px;background:color-mix(in oklab,white 55%,var(--color-surface));border:1px solid var(--color-border)}[data-theme=dark] .stat{background:color-mix(in oklab,black 20%,var(--color-surface))}.stat strong{display:block;font-size:1.35rem;font-family:var(--font-display)}.stat span{color:var(--color-text-muted);font-size:var(--text-sm)}.mood-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:140px 100px;gap:10px;margin-top:14px}.tile{border-radius:18px;position:relative;overflow:hidden;border:1px solid color-mix(in oklab,white 50%,var(--color-border));background:var(--color-surface-2)}.tile.span-2{grid-row:span 2}.tile span{position:absolute;left:10px;bottom:10px;background:#fffc;padding:6px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:700;color:#4b3550}.mb-canvas{position:relative;width:100%;min-height:520px;border-radius:var(--radius-lg);border:1px dashed var(--color-border);background:radial-gradient(var(--color-border) 1px,transparent 1px) 0 0 / 22px 22px,var(--color-surface-2);overflow:hidden;touch-action:none}.mb-el{position:absolute;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:var(--color-surface);overflow:hidden;-webkit-user-select:none;user-select:none}.mb-el img{width:100%;height:100%;object-fit:cover;display:block}.mb-el-selected{outline:2px solid var(--color-primary);outline-offset:2px}.mb-note{width:100%;height:100%;padding:12px;box-sizing:border-box;font-size:var(--text-sm);color:#4b3550;white-space:pre-wrap;overflow:auto}.mb-el-note{background:#fff7e6}.mb-link{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:10px;box-sizing:border-box;text-align:center;word-break:break-word;color:var(--color-blue);text-decoration:underline}.mb-color-label{position:absolute;left:8px;bottom:8px;background:#ffffffd9;padding:2px 8px;border-radius:999px;font-size:var(--text-xs);font-weight:700}.mb-tools{position:absolute;top:4px;right:4px;display:flex;align-items:center;gap:4px;z-index:3}.mb-tool{width:22px;height:22px;border:none;border-radius:999px;background:var(--color-primary);color:#fff;cursor:pointer;line-height:1;font-size:13px;display:inline-flex;align-items:center;justify-content:center}.mb-del{background:var(--color-rose)}.mb-color-input{width:24px;height:24px;padding:0;border:2px solid white;border-radius:6px;cursor:pointer;background:none}.mb-resize{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;background:var(--color-primary);border-top-left-radius:6px;z-index:2}.countdown{display:flex;gap:10px;flex-wrap:wrap}.count-b{padding:10px 12px;border-radius:16px;background:var(--color-surface-2);border:1px solid var(--color-border);min-width:72px;text-align:center}.count-b strong{display:block;font-size:1.2rem;font-family:var(--font-display)}.count-b span{font-size:var(--text-xs);color:var(--color-text-muted)}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}.kanban-col{padding:12px;border-radius:20px;background:var(--color-surface-2);border:1px solid var(--color-border);display:grid;gap:10px;align-content:start;min-height:120px}.kanban-col h3{font-size:var(--text-sm);padding:4px}.kanban-card{padding:12px;border-radius:16px;background:var(--color-surface-solid);border:1px solid var(--color-border);font-size:var(--text-sm);cursor:grab;box-shadow:var(--shadow-sm)}.kanban-card:active{cursor:grabbing}.kanban-card.dragover{outline:2px dashed var(--color-primary)}.kanban-col.dropzone{outline:2px dashed color-mix(in oklab,var(--color-primary) 40%,transparent)}.vendor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.vendor-card{border-radius:var(--radius-lg);border:1.5px solid var(--color-primary);background:var(--color-surface);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition)}.vendor-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.vendor-cover{position:relative;height:120px;background:linear-gradient(135deg,#ffd6e2,#ded2ff);overflow:hidden}.vendor-cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.vendor-body{padding:14px;display:grid;gap:8px}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--color-divider)}.table th{color:var(--color-text-muted);font-weight:700;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.table-wrap{overflow-x:auto;border-radius:var(--radius-md)}.ring{width:140px;height:140px;margin:4px auto 12px;border-radius:50%;display:grid;place-items:center}.ring-inner{width:100px;height:100px;border-radius:50%;display:grid;place-items:center;background:var(--color-surface-solid);border:1px solid var(--color-border);font-weight:700;color:var(--color-primary);font-family:var(--font-display);text-align:center;line-height:1.1}.mobile-tabs{display:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e142080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100;padding:20px}.modal{background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);width:min(520px,100%);max-height:90dvh;overflow-y:auto;box-shadow:var(--shadow-lg);display:grid;gap:var(--space-4)}.auth-wrap{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;gap:0}.auth-aside{padding:56px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(150deg,color-mix(in oklab,var(--color-rose) 22%,var(--color-bg)),color-mix(in oklab,var(--color-secondary) 22%,var(--color-bg)))}.auth-main{display:grid;place-items:center;padding:40px 24px}.auth-card{width:min(440px,100%);display:grid;gap:var(--space-4)}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.error-banner{background:color-mix(in oklab,var(--color-primary) 14%,var(--color-surface));border:1px solid color-mix(in oklab,var(--color-primary) 30%,transparent);color:var(--color-text);padding:12px 14px;border-radius:var(--radius-sm);font-size:var(--text-sm)}@media (max-width: 1200px){.layout,.layout.with-rail{grid-template-columns:1fr}.sidebar,.rail{position:static}.hero,.kanban{grid-template-columns:1fr}}@media (max-width: 900px){.topbar{grid-template-columns:1fr auto}.searchbar,.status-pill{display:none}.stats{grid-template-columns:1fr}.mood-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.tile.span-2{grid-row:auto;grid-column:1 / -1}.auth-wrap{grid-template-columns:1fr}.auth-aside{display:none}}.nav-drawer-toggle,.nav-drawer-backdrop{display:none}@media (max-width: 768px){html,body{overflow-x:hidden;max-width:100%}.app-shell{padding:12px;gap:12px}.main,.rail{min-width:0;max-width:100%}.nav-drawer-toggle{display:grid;width:42px;height:42px;flex-shrink:0;font-size:1.2rem}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(284px,82vw);max-width:82vw;margin:0;border-radius:0 var(--radius-lg) var(--radius-lg) 0;transform:translate(-102%);transition:transform var(--transition);z-index:200;overflow-y:auto;will-change:transform}.sidebar.drawer-open{transform:translate(0)}.nav-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#1e142080;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:150}.nav-collapse-btn{display:none}.layout.nav-collapsed,.layout.nav-collapsed.with-rail{grid-template-columns:1fr}.nav-collapsed .sidebar{padding:18px}.nav-collapsed .nav-label,.nav-collapsed .section-label,.nav-collapsed .side-card{display:revert}.nav-collapsed .nav-btn{justify-content:flex-start;gap:12px;padding:13px 14px}.main{padding:16px;min-height:auto}.modal{padding:var(--space-4)}}@media (max-width: 480px){.app-shell{padding:10px}.topbar{gap:10px}.brand{padding:10px 12px;min-height:60px;gap:8px}.topbar-actions{min-height:60px;gap:8px;padding:0 10px}.main{padding:13px}.panel{padding:var(--space-4)}.mood-grid,.demo-grid,.grid-2,.grid-3{grid-template-columns:1fr}.btn{padding:11px 14px}}.editable-card{position:relative;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.editable-card:hover,.editable-card:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:color-mix(in oklab,var(--color-primary) 40%,var(--color-border))}.editable-card:focus-visible{outline:none}.edit-affordance{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:700;color:var(--color-primary);opacity:.85}.edit-affordance:before{content:"✎";font-size:.95em}.editable-card:hover .edit-affordance,.editable-card:focus-visible .edit-affordance{opacity:1}.nav-card{cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.nav-card:hover,.nav-card:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:color-mix(in oklab,var(--color-primary) 40%,var(--color-border))}.nav-card:focus-visible{outline:none}.editable-row{cursor:pointer;transition:background var(--transition)}.editable-row:hover,.editable-row:focus-visible{background:var(--color-surface-2);outline:none}tr.editable-row:hover,tr.editable-row:focus-visible{background:var(--color-surface-2)}.editable-row .edit-affordance{opacity:0;transition:opacity var(--transition)}.editable-row:hover .edit-affordance,.editable-row:focus-visible .edit-affordance{opacity:1}.notif-wrap{position:relative}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--color-primary);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;pointer-events:none}.notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(360px,86vw);max-height:420px;overflow-y:auto;background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:60;padding:8px}.notif-panel .notif-head{display:flex;justify-content:space-between;align-items:center;padding:6px 10px}.notif-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text)}.notif-item:hover{background:var(--color-surface-2)}.notif-item.unread{background:color-mix(in oklab,var(--color-primary) 8%,transparent)}.notif-item strong{display:block;font-size:var(--text-sm)}.notif-item small{display:block;color:var(--color-text-muted)}.notif-item .notif-time{margin-top:2px;font-size:var(--text-xs);opacity:.75}.notif-seeall{display:block;width:100%;text-align:center;border:none;border-top:1px solid var(--color-border);background:transparent;padding:10px 12px;color:var(--color-primary);font-size:var(--text-sm);cursor:pointer}.notif-seeall:hover{background:var(--color-surface-2)}.notif-row{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;border:none;background:transparent;padding:12px 14px;cursor:pointer;border-radius:var(--radius-sm, 8px)}.notif-row:hover{background:var(--color-surface-2)}.notif-row .notif-dot{flex:0 0 auto;width:8px;height:8px;margin-top:6px;border-radius:50%;background:transparent}.notif-row.unread .notif-dot{background:var(--color-primary)}.notif-row-body{display:block;min-width:0}.notif-row-body strong{display:block;font-size:var(--text-sm)}.notif-row-body small{display:block;color:var(--color-text-muted)}.notif-row-body .notif-time{margin-top:2px;font-size:var(--text-xs);opacity:.75}.countdown-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:18px 22px;margin-bottom:18px;background:linear-gradient(135deg,#ffd6e2,#ded2ff);color:#2b2330}.countdown-banner-num{font-size:clamp(28px,6vw,44px);font-weight:800;line-height:1;letter-spacing:-1px}.countdown-banner-label{font-size:var(--text-lg, 18px);font-weight:600}.countdown-banner-next{margin-left:auto;font-size:var(--text-sm);opacity:.8}.verify-banner{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:10px 16px 0;padding:10px 16px;border-radius:var(--radius-md);background:color-mix(in oklab,var(--color-warning) 16%,var(--color-surface));border:1px solid color-mix(in oklab,var(--color-warning) 40%,transparent);color:var(--color-text);font-size:var(--text-sm)}.thread{display:flex;flex-direction:column;gap:10px;max-height:46vh;overflow-y:auto;padding:6px 2px}.msg-bubble{max-width:78%;padding:9px 13px;border-radius:16px;background:var(--color-surface-2);border:1px solid var(--color-border)}.msg-bubble.mine{align-self:flex-end;background:color-mix(in oklab,var(--color-primary) 18%,var(--color-surface))}.msg-bubble .msg-meta{display:block;font-size:var(--text-xs);color:var(--color-text-faint);margin-bottom:2px}.public-page{min-height:100dvh;background:var(--color-bg, #faf7fb)}.public-header{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.public-header-inner{max-width:1080px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.public-header .brand{padding:0;min-height:0;font-weight:700;font-size:var(--text-lg, 1.1rem);color:var(--color-primary);text-decoration:none}.public-main{max-width:1080px;margin:0 auto;padding:24px 20px 64px}.btn-danger{background:color-mix(in oklab,var(--color-rose) 90%,#fff);color:#fff;border-color:transparent}[data-theme=dark] .btn-danger{background:var(--color-rose)}.grow{flex:1 1 auto}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}@media (max-width: 900px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 520px){.stat-grid{grid-template-columns:1fr}}.stat-card{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:18px;background:color-mix(in oklab,white 55%,var(--color-surface));border:1px solid var(--color-border)}[data-theme=dark] .stat-card{background:color-mix(in oklab,black 20%,var(--color-surface))}.stat-card.stat-sage{border-left:4px solid var(--color-success)}.stat-card.stat-rose{border-left:4px solid var(--color-rose)}.stat-card.stat-gold{border-left:4px solid var(--color-warning)}.stat-card.stat-blue{border-left:4px solid var(--color-blue)}.stat-card.stat-lilac{border-left:4px solid var(--color-secondary)}.stat-label{color:var(--color-text-muted);font-size:var(--text-sm)}.stat-value{font-size:1.6rem;font-family:var(--font-display);font-weight:700;line-height:1.1}.stat-hint{font-size:var(--text-xs)}.minichart-bars{display:flex;align-items:flex-end;gap:6px;width:100%}.minichart-bar-col{flex:1 1 0;display:flex;align-items:flex-end;height:100%}.minichart-bar{width:100%;border-radius:6px 6px 0 0;min-height:2px;transition:height var(--transition)}.onboarding-card{border:1px solid color-mix(in oklab,var(--color-secondary) 40%,var(--color-border));background:color-mix(in oklab,var(--color-secondary) 8%,var(--color-surface));margin-bottom:16px}.onboarding-progress{display:flex;gap:6px;margin:10px 0 4px}.onboarding-progress .dot{width:24px;height:5px;border-radius:999px;background:var(--color-border)}.onboarding-progress .dot.on{background:var(--color-secondary)}.getting-started-card{border:1px solid color-mix(in oklab,var(--color-primary) 30%,var(--color-border));background:color-mix(in oklab,var(--color-primary) 6%,var(--color-surface));margin-bottom:16px}.progress-track{width:100%;height:8px;border-radius:999px;background:var(--color-border);overflow:hidden;margin:12px 0}.progress-fill{height:100%;border-radius:999px;background:var(--grad-brand);transition:width .3s ease}.gs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.gs-item{display:flex;align-items:center;gap:10px;font-size:var(--text-sm)}.gs-check{width:20px;text-align:center;color:var(--color-text-muted)}.gs-item.done .gs-check{color:var(--color-success, #3a9d6b)}.gs-item.done .gs-label{color:var(--color-text-muted);text-decoration:line-through}.gs-link{color:var(--color-text);text-decoration:none}.gs-link:hover{text-decoration:underline}.concierge{display:flex;flex-direction:column;gap:12px;min-height:420px}.concierge-thread{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:4px;max-height:60vh}.concierge-compact .concierge-thread{max-height:46vh}.concierge-welcome{color:var(--color-text-muted);display:flex;flex-direction:column;gap:12px}.concierge-prompts{display:flex;flex-wrap:wrap;gap:8px}.concierge-msg{display:flex;flex-direction:column;gap:8px;max-width:92%}.concierge-user{align-self:flex-end;align-items:flex-end}.concierge-assistant{align-self:flex-start}.concierge-bubble-text{white-space:pre-wrap;padding:10px 14px;border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border);line-height:1.5}.concierge-user .concierge-bubble-text{background:var(--grad-brand);color:#fff;border:none}.concierge-suggestions{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.concierge-vendor{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--color-surface)}.concierge-vendor-head{display:flex;flex-direction:column}.concierge-vendor-meta{display:flex;justify-content:space-between;font-size:.85rem;color:var(--color-text-muted)}.concierge-why{font-size:.85rem;color:var(--color-text-muted);margin:0}.concierge-palettes{display:flex;flex-direction:column;gap:10px}.concierge-palette{display:flex;flex-direction:column;gap:4px}.concierge-swatches{display:flex;gap:6px}.concierge-swatch{width:34px;height:34px;border-radius:8px;border:1px solid var(--color-border)}.concierge-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.concierge-images img{width:100%;height:96px;object-fit:cover;border-radius:10px}.concierge-action{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--color-success)}.concierge-input{display:flex;gap:8px}.concierge-input input{flex:1;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-solid);color:var(--color-text)}.concierge-foot{display:flex;justify-content:space-between;align-items:center}.concierge-bubble-root{position:fixed;right:22px;bottom:90px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.concierge-fab{width:56px;height:56px;border-radius:50%;border:none;background:var(--grad-brand);color:#fff;font-size:1.4rem;cursor:pointer;box-shadow:0 8px 24px #4f334c47}.concierge-panel{width:min(380px,calc(100vw - 44px));border-radius:var(--radius-lg);padding:14px;border:1px solid var(--color-border)}.concierge-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}@media (max-width: 720px){.concierge-bubble-root{right:14px;bottom:146px}}.help-bubble-root{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.help-fab{width:56px;height:56px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface-solid);color:var(--color-text);font-size:1.5rem;font-weight:600;cursor:pointer;box-shadow:0 8px 24px #4f334c47}.help-panel{width:min(380px,calc(100vw - 44px));max-height:min(70vh,560px);border-radius:var(--radius-lg);padding:14px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:10px}.help-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.help-panel-head>div{display:flex;align-items:center;gap:8px}.help-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:160px;max-height:340px;padding-right:2px}.help-intro{font-size:var(--text-sm);color:var(--color-text-muted)}.help-msg{max-width:85%;padding:8px 10px;border-radius:12px;font-size:var(--text-sm);border:1px solid var(--color-border);background:var(--color-surface-2)}.help-msg p{margin:2px 0 0;white-space:pre-wrap;word-break:break-word}.help-msg-who{font-size:.7rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.help-msg-user{align-self:flex-end;background:var(--grad-brand);color:#fff;border-color:transparent}.help-msg-user .help-msg-who{color:#ffffffd9}.help-msg-assistant,.help-msg-admin,.help-escalate{align-self:flex-start}.help-input{display:flex;gap:8px}.help-input input{flex:1;min-width:0}@media (max-width: 720px){.help-bubble-root{right:14px;bottom:78px}}.support-layout{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:16px;align-items:start}.support-list{max-height:70vh;overflow-y:auto}.plain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.support-ticket-btn{width:100%;text-align:left;border:1px solid var(--color-border);background:var(--color-surface-2);border-radius:12px;padding:10px;cursor:pointer;color:var(--color-text);display:flex;flex-direction:column;gap:4px}.support-ticket-btn.active{border-color:var(--color-accent, var(--color-text));box-shadow:0 0 0 1px var(--color-accent, var(--color-text)) inset}.support-ticket-preview{font-size:var(--text-sm);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-detail{display:flex;flex-direction:column;gap:12px;min-height:320px}.support-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.support-thread{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto;padding:4px}@media (max-width: 720px){.support-layout{grid-template-columns:1fr}}.ctx-menu{position:fixed;z-index:1000;padding:6px;border-radius:12px;border:1px solid var(--color-border);box-shadow:0 12px 32px #0000002e}.ctx-item{border:none;background:none;color:var(--color-text);padding:8px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;font-size:var(--text-sm)}.ctx-item:hover{background:var(--color-surface-2)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:1001;background:var(--color-text);color:var(--color-surface);padding:10px 18px;border-radius:999px;font-size:var(--text-sm);box-shadow:0 8px 24px #00000040}.nav-group-wrap{display:contents}.nav-section-label{display:block;margin:14px 8px 4px;font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted, #8a8a8a)}.nav-collapsed .nav-section-label{text-align:center;margin-inline:0;opacity:.6}.print-root{display:block}@media print{body *{visibility:hidden!important}.print-root,.print-root *{visibility:visible!important}.print-root{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:24px;background:#fff}.app-shell,.topbar,.sidebar,.rail,.modal-backdrop,.no-print{display:none!important}}.bingo-card{background:#fff;color:#1c1c1c;border:2px solid var(--color-border, #e2ddd4);border-radius:14px;padding:20px;max-width:640px;margin:0 auto}.bingo-card h3{text-align:center;margin:0 0 14px;font-family:var(--font-display, serif);letter-spacing:.04em}.bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.bingo-square{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;text-align:center;padding:6px;font-size:var(--text-xs);line-height:1.2;border:1px solid var(--color-border, #e2ddd4);border-radius:8px;background:var(--color-surface-alt, #faf7f2);overflow:hidden}.sign-card{aspect-ratio:3 / 4;width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:40px 32px;border-radius:10px;box-sizing:border-box}.sign-title{font-size:2.4rem;line-height:1.1;font-weight:600}.sign-subtitle{font-size:1.2rem;opacity:.85}.sign-body{font-size:1rem;line-height:1.5;white-space:pre-wrap}.sign-classic{background:#fbf8f2;color:#2c2620;border:2px solid #c9b487;font-family:var(--font-display, Georgia, serif)}.sign-classic .sign-title{font-family:var(--font-display, Georgia, serif);letter-spacing:.04em}.sign-modern{background:#16181d;color:#f5f5f5;border:none;font-family:var(--font-body, "Helvetica Neue", Arial, sans-serif)}.sign-modern .sign-title{text-transform:uppercase;letter-spacing:.12em;font-weight:700}.sign-botanical{background:linear-gradient(160deg,#eef3e6,#dbe7cf);color:#33452c;border:1px solid #a9c191;font-family:var(--font-display, Georgia, serif)}.sign-romantic{background:linear-gradient(160deg,#fdeef1,#f6d9e2);color:#6d2c43;border:1px solid #e6a9be;font-family:var(--font-display, "Segoe Script", cursive)}.sign-romantic .sign-title{font-style:italic}
