@font-face{font-family:Wocult Sora;src:url('assets/fonts/sora-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Wocult Sora;src:url('assets/fonts/sora-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Wocult Sora;src:url('assets/fonts/sora-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Wocult Sora;src:url('assets/fonts/sora-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Wocult Merriweather;src:url('assets/fonts/merriweather-700.ttf') format('truetype');font-weight:700 900;font-display:swap}
:root{
  --refine-scrollbar-thumb:rgba(46,46,48,.22);--refine-scrollbar-thumb-active:rgba(46,46,48,.40);
  --font-ui:"Wocult Sora",system-ui,sans-serif;--font-heading:var(--font-ui);--font-brand:"Wocult Merriweather",Georgia,serif;
  --text-page-title:28px;--text-section-title:14px;--text-card-title:14.5px;--text-body:14px;--text-subtitle:14.5px;--text-small:12.5px;--text-meta:11.5px;--text-nav:13.5px;--text-section-label:12px;--text-profile:12px;--text-version:10.5px;
  --line-height-tight:1.2;--line-height-body:1.5;--line-height-subtitle:1.55;--tracking-section-label:.8px;--tracking-page-title:-.3px;
  --app-card-padding:20px;--app-card-gap:12px;--app-grid-gap:18px;--app-chip-size:38px;--app-chip-radius:10px;--app-chip-icon-size:18px;--app-nav-icon-size:17px;--app-control-height:40px;

  --app-bg:#F6F7F8;--app-surface:#fff;--app-surface-2:#F0F3F5;--app-surface-hover:#F5F7F9;
  --app-border:#E2E6EA;--app-border-strong:#BCC5CF;--app-text:#18212D;--app-muted:#566271;--app-description:#5F6B7A;--app-meta:#687484;
  --app-control-text:#202733;--app-control-border:#cfd5de;--app-workspace-dark:#1C1C1F;--app-surface-dark:#232326;--app-surface-raised-dark:#29292D;
  --app-accent:#FFC500;--app-accent-soft:rgba(255,197,0,.12);--app-accent-ink:#1C1C1F;--app-icon-accent:#8A6500;--app-focus:#8A6500;--app-sidebar:#182129;
  --app-sidebar-hover:rgba(255,255,255,.06);--app-sidebar-active:rgba(255,197,0,.12);--app-sidebar-text:#F5F3EE;--app-sidebar-muted:#C2CAD3;--app-sidebar-meta:#A8B2BE;--app-sidebar-active-text:#FFE28A;--app-profile-bg:rgba(255,255,255,.04);--app-avatar:#596472;--app-topbar-bg:#FBFCFD;--app-control-bg:#fff;
  --app-info:#2f6f9f;--app-info-bg:#e8f2f9;--app-success:#397343;--app-success-bg:#e8f3e9;
  --app-warning:#8b6113;--app-warning-bg:#fbf1d9;--app-error:#a33e3b;--app-error-bg:#f9e9e8;
  --app-space-1:4px;--app-space-2:8px;--app-space-3:12px;--app-space-4:16px;--app-space-5:20px;--app-space-6:24px;--app-space-8:32px;
  --app-radius-sm:7px;--app-radius:9px;--app-radius-lg:14px;--app-shadow:0 1px 2px rgba(20,31,45,.03),0 3px 10px rgba(20,31,45,.025);
  --app-motion:150ms;--app-sidebar-width:260px;--app-topbar-height:64px;
  --app-input-bg:#FFFFFF;--app-input-text:var(--app-text);--app-input-placeholder:var(--app-meta);
  --app-accent-hover:#E8B400;--app-activity:#7654D6;--app-activity-bg:#EEE9FF;
  --app-backdrop:rgba(0,0,0,.48);--app-dialog-shadow:0 18px 60px rgba(0,0,0,.25);
  --text-label:12.5px;--text-control:14px;--text-dialog-title:20px;
}
:root[data-theme="dark"]{
  --refine-scrollbar-thumb:rgba(245,243,238,.18);--refine-scrollbar-thumb-active:rgba(245,243,238,.34);
  --app-bg:var(--app-workspace-dark);--app-surface:var(--app-surface-dark);--app-surface-2:var(--app-surface-raised-dark);--app-surface-hover:#2D2D31;
  --app-border:rgba(255,255,255,.07);--app-border-strong:rgba(255,255,255,.16);--app-text:#F5F3EE;--app-muted:rgba(245,243,238,.55);--app-description:rgba(245,243,238,.50);--app-meta:rgba(245,243,238,.40);
  --app-control-text:var(--app-text);--app-control-border:rgba(255,255,255,.08);
  --app-accent:#FFC500;--app-accent-soft:rgba(255,197,0,.13);--app-focus:var(--app-accent);--app-sidebar:#141416;
  --app-sidebar-text:var(--app-text);--app-sidebar-muted:rgba(245,243,238,.62);--app-sidebar-hover:rgba(255,255,255,.04);--app-sidebar-active:rgba(255,197,0,.14);
  --app-profile-bg:rgba(255,255,255,.04);--app-avatar:#4A4A4E;--app-sidebar-meta:var(--app-meta);--app-sidebar-active-text:var(--app-accent);--app-icon-accent:var(--app-accent);--app-topbar-bg:var(--app-bg);--app-control-bg:var(--app-sidebar);
  --app-info:#8bc0e8;--app-info-bg:#203848;--app-success:#8bc592;--app-success-bg:#203727;--app-warning:#e0bd70;--app-warning-bg:#41351d;--app-error:#e79a97;--app-error-bg:#442624;
  --app-shadow:0 2px 8px rgba(0,0,0,.25);
  --app-input-bg:#29292D;--app-activity:#B9A6FF;--app-activity-bg:#352D52;
  --y:var(--app-accent);--yd:var(--app-accent);--ydeep:var(--app-workspace-dark);--blk:var(--app-text);--gray:var(--app-surface-2);--g2:var(--app-border);--g3:var(--app-muted);--w:var(--app-surface);--red:var(--app-error);--grn:var(--app-success);--blu:var(--app-info);--bdr:var(--app-border);
}
html{background:var(--app-bg);color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
html body{background:var(--app-bg);color:var(--app-text);transition:background var(--app-motion),color var(--app-motion)}
body.app-authenticated{position:fixed;inset:0;height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-columns:var(--app-sidebar-width) minmax(0,1fr);grid-template-rows:var(--app-topbar-height) minmax(0,1fr)}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--app-sidebar-width);z-index:1000;background:linear-gradient(180deg,#17202a 0%,var(--app-sidebar) 100%);color:var(--app-sidebar-text);display:none;flex-direction:column;padding:24px 16px 18px;border-right:1px solid rgba(255,255,255,.07)}
body.app-authenticated .app-sidebar{display:flex}.app-brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px}.app-brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--app-accent);color:#211b0c;font:700 21px Georgia,serif}.app-brand strong,.app-brand small{display:block}.app-brand strong{font:650 19px/1.05 system-ui,sans-serif;letter-spacing:-.01em}.app-brand small{font-size:13px;color:#cbd2da;letter-spacing:0;margin-top:4px;text-transform:none}
.app-nav{display:flex;flex-direction:column;gap:3px;overflow:auto}.app-nav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:9px 11px;border:0;border-radius:var(--app-radius);background:transparent;color:var(--app-sidebar-muted);font:500 13px/1.2 inherit;text-align:left;cursor:pointer;transition:background var(--app-motion),color var(--app-motion)}.app-nav-item:hover{background:var(--app-sidebar-hover);color:var(--app-sidebar-text)}.app-nav-item.active{background:var(--app-sidebar-active);color:#fff}.app-nav-item.active::after{content:"";margin-left:auto;width:5px;height:5px;border-radius:50%;background:var(--app-accent)}.app-nav-icon,.app-icon-button svg,.notification-bell svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.app-profile{margin-top:auto;padding:18px 8px 0;border-top:1px solid rgba(255,255,255,.11)}.app-profile-row{display:flex;align-items:center;gap:11px}.app-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#56616f;color:#fff;font-size:12px;font-weight:750;letter-spacing:.04em}.app-profile-copy{min-width:0}.app-profile-copy strong,.app-profile-copy small{display:block}.app-profile-copy strong{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;color:#f3f5f7}.app-profile-copy small{margin-top:4px;color:#aeb7c2;font-size:11px}.app-logout{display:inline-flex;align-items:center;gap:9px;margin-top:13px;padding:7px 2px;border:0;background:transparent;color:#c1c9d3;font:500 12px inherit;cursor:pointer}.app-logout svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-logout:hover{color:#fff}
body.app-authenticated .topbar{grid-column:2;grid-row:1;position:relative;inset:auto;width:auto;min-width:0;background:var(--app-surface);color:var(--app-text);height:var(--app-topbar-height);border-bottom:1px solid var(--app-border);padding:0 28px;z-index:50}
body.app-authenticated .topbar>svg{display:none}.top-auth-email{display:none!important}
body.app-authenticated>.app-workspace{grid-column:2;grid-row:2;position:relative;inset:auto;width:auto;height:auto!important;min-width:0;min-height:0!important;max-height:none;margin-top:0!important;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-block-start:var(--app-topbar-height)}
body.app-authenticated>.app-workspace>.landing{min-height:100%}
.app-page-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 24px 0}.app-page-tools h1{font:700 24px Georgia,serif;margin-right:auto}
body.app-authenticated #notifications-panel{top:calc(var(--app-topbar-height) + var(--app-space-2))}

.app-icon-button,.notification-bell{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--app-border);border-radius:8px;background:var(--app-surface);color:var(--app-text);cursor:pointer}.app-icon-button:hover,.notification-bell:hover{background:var(--app-surface-hover)}.notification-bell{font-size:0}.notification-badge{font-size:9px}.theme-moon{display:none}:root[data-theme="dark"] .theme-sun{display:none}:root[data-theme="dark"] .theme-moon{display:block}.app-menu-toggle{display:none}.app-menu-lines,.app-menu-lines::before,.app-menu-lines::after{display:block;width:17px;height:1.5px;background:currentColor;content:""}.app-menu-lines::before{transform:translateY(-5px)}.app-menu-lines::after{transform:translateY(3.5px)}.app-sidebar-backdrop{display:none}
.landing{background:var(--app-bg);color:var(--app-text)}body.app-authenticated .landing{align-items:stretch;padding:32px}.scratch-screen,.url-entry{max-width:960px}.scratch-screen h2,.url-entry h2,.landing-hero h1,.lcard-title{font-family:system-ui,sans-serif;color:var(--app-text)}.scratch-screen .sub,.url-entry p,.lcard-desc,.hint{color:var(--app-muted)}
.app-overview{width:100%;max-width:1240px;margin:0 auto}.app-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.app-page-header h1{font-size:26px;line-height:1.2;letter-spacing:-.02em;margin:0;color:var(--app-text)}.app-page-header p{font-size:14px;color:var(--app-muted);margin:7px 0 0}.app-section-label{font-size:11px;font-weight:750;color:var(--app-muted);letter-spacing:.09em;text-transform:uppercase;margin:0 0 10px}.app-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:20px}.app-dashboard-panel{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius-lg);padding:20px;box-shadow:var(--app-shadow)}.app-dashboard-panel.attention{grid-row:span 2}.app-record-list{display:flex;flex-direction:column}.app-record{display:flex;align-items:center;gap:12px;width:100%;padding:13px 2px;border:0;border-bottom:1px solid var(--app-border);background:transparent;color:var(--app-text);text-align:left;font:inherit;cursor:pointer}.app-record:last-child{border-bottom:0}.app-record:hover .app-record-title{color:var(--app-focus)}.app-record-copy{min-width:0;flex:1}.app-record-title{font-size:13px;font-weight:650}.app-record-meta{font-size:11px;color:var(--app-muted);margin-top:4px}.app-record-chevron{color:var(--app-muted);font-size:17px}.app-empty{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 0;color:var(--app-muted)}.app-empty svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6}.app-empty strong{font-size:13px;color:var(--app-text)}.app-empty span{font-size:12px;line-height:1.5}
.app-launcher-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.app-launcher{position:relative;min-height:148px;padding:20px;border:1px solid var(--app-border);border-radius:var(--app-radius-lg);background:var(--app-surface);color:var(--app-text);display:flex;flex-direction:column;text-align:left;font:inherit;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.02);transition:border-color var(--app-motion),background var(--app-motion),box-shadow var(--app-motion)}.app-launcher:hover{border-color:var(--app-border-strong);background:var(--app-surface-2);box-shadow:var(--app-shadow)}.app-launcher-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--app-accent-soft);color:var(--app-warning);margin-bottom:16px}.app-launcher-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.app-launcher-title{font-size:14px;font-weight:700;margin-bottom:5px}.app-launcher-desc{font-size:12px;line-height:1.5;color:var(--app-muted);padding-right:24px}.app-launcher-chevron{position:absolute;right:18px;bottom:18px;color:var(--app-muted);font-size:18px}
.app-breadcrumbs{font-size:11px;color:var(--app-muted);margin-bottom:8px}.app-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:650;background:var(--app-surface-2);color:var(--app-muted);border:1px solid var(--app-border)}.app-status.info{background:var(--app-info-bg);color:var(--app-info)}.app-status.success{background:var(--app-success-bg);color:var(--app-success)}.app-status.warning{background:var(--app-warning-bg);color:var(--app-warning)}.app-status.error{background:var(--app-error-bg);color:var(--app-error)}
.sfield input,.sfield textarea,.sfield select,.wf-input,.saved-input,select{background:var(--app-surface);border-color:var(--app-border);color:var(--app-text)}.sfield input:focus,.sfield textarea:focus,.sfield select:focus,.wf-input:focus,.saved-input:focus{outline:2px solid color-mix(in srgb,var(--app-focus) 35%,transparent);outline-offset:1px;border-color:var(--app-focus)}table{color:var(--app-text)}thead{background:var(--app-surface-2)!important}tbody tr:hover{background:var(--app-surface-hover)}.lcard,.card,.stat,.news-social-stage,.admin-template-card{background:var(--app-surface);border-color:var(--app-border);color:var(--app-text)}
:where(button,a,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--app-focus)!important;outline-offset:2px!important}
/* 15.22 visual correction: prototype-aligned shell, hierarchy and density. */
.app-nav{gap:5px}.app-nav-item{min-height:46px;padding:10px 12px;gap:13px;color:#c2cad4;font-size:13.5px}.app-nav-item.active{background:#2b3743}.app-nav-icon{width:20px;height:20px}
body.app-authenticated .topbar{background:var(--app-surface);padding:0 28px;box-shadow:0 1px 0 rgba(20,31,45,.02)}
body.app-authenticated .app-icon-button,body.app-authenticated .notification-bell{display:inline-grid;place-items:center;width:36px;height:36px;min-width:36px;padding:0;border:1px solid var(--app-control-border);background:var(--app-surface);color:var(--app-control-text);box-shadow:0 1px 2px rgba(20,31,45,.04)}
body.app-authenticated .app-menu-toggle{display:none}
body.app-authenticated .notification-bell[style*="display: none"],body.app-authenticated .notification-bell[style*="display:none"]{display:none!important}
body.app-authenticated .app-icon-button:hover,body.app-authenticated .notification-bell:hover{border-color:var(--app-border-strong);background:var(--app-surface-hover);color:var(--app-text)}
body.app-authenticated .landing{padding:34px 40px 48px}
.app-overview{max-width:1480px}.app-page-header{margin-bottom:22px}.app-page-header h1{font-size:28px;font-weight:720;letter-spacing:-.025em}.app-page-header p{font-size:14px;margin-top:6px}
.app-dashboard-grid{grid-template-columns:minmax(0,1.75fr) minmax(300px,.82fr);gap:20px;align-items:start}.app-dashboard-panel{padding:0;overflow:hidden}.app-dashboard-panel.attention{grid-row:span 2}
.app-panel-heading{display:flex;align-items:center;gap:11px;min-height:58px;padding:12px 16px;border-bottom:1px solid var(--app-border)}.app-panel-heading h2{margin:0;font-size:14px;line-height:1.25;font-weight:700;color:var(--app-text)}.app-panel-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px}.app-panel-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-panel-icon.attention{background:var(--app-error-bg);color:var(--app-error)}.app-panel-icon.upcoming{background:var(--app-info-bg);color:var(--app-info)}.app-panel-icon.activity{background:#eee9ff;color:#7654d6}:root[data-theme="dark"] .app-panel-icon.activity{background:#352d52;color:#b9a6ff}
.app-record{min-height:68px;padding:12px 17px;gap:14px;transition:background var(--app-motion)}.app-record:hover{background:var(--app-surface-hover)}.app-record:hover .app-record-title{color:var(--app-text)}.app-record-title{display:block;overflow-wrap:anywhere;font-size:13.5px;line-height:1.35;font-weight:680}.app-record-meta{display:block;overflow-wrap:anywhere;margin-top:4px;font-size:11.5px;line-height:1.35}.app-record-chevron{font-size:20px;color:var(--app-muted)}
.app-empty{min-height:138px;justify-content:center;padding:20px 20px 22px;gap:6px}.app-empty-icon{display:grid;place-items:center;width:30px;height:30px;margin-bottom:3px;border-radius:8px;background:var(--app-surface-2);color:var(--app-muted)}.app-empty-icon svg{width:18px;height:18px}.app-empty strong{font-size:13px}.app-empty span:last-child{font-size:11.5px;line-height:1.45}
:root[data-theme="dark"] .app-dashboard-panel{box-shadow:var(--app-shadow)}
@media(min-width:1600px){body.app-authenticated .landing{padding-left:54px;padding-right:54px}.app-overview{max-width:1520px}}
@media(max-width:1050px){.app-launcher-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-dashboard-grid{grid-template-columns:1fr}.app-dashboard-panel.attention{grid-row:auto}}
@media(max-width:800px){body.app-authenticated{grid-template-columns:minmax(0,1fr)}.app-sidebar{transform:translateX(-100%);display:flex;transition:transform var(--app-motion)}body.app-drawer-open .app-sidebar{transform:translateX(0)}body.app-authenticated .topbar{grid-column:1;padding:0 14px}body.app-authenticated>.app-workspace{grid-column:1}.app-menu-toggle{display:inline-grid!important}.app-sidebar-backdrop{position:fixed;inset:0;z-index:999;border:0;background:rgba(0,0,0,.48)}body.app-drawer-open .app-sidebar-backdrop{display:block}body.app-authenticated .landing{padding:24px 16px}.app-page-header h1{font-size:23px}.app-dashboard-panel{border-radius:10px}}
@media(max-width:600px){.app-launcher-grid{grid-template-columns:1fr}.app-launcher{min-height:138px}.app-page-header{margin-bottom:22px}.tbar-r{gap:7px}.topbar .btn{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:0s!important}}

/* Shared theme geometry and typography; appearance comes only from tokens. */
:root body.app-authenticated{background:var(--app-bg);font-family:var(--font-ui)}
:root body.app-authenticated .app-workspace,
:root body.app-authenticated .landing{background:var(--app-bg);color:var(--app-text)}
:root .app-sidebar{background:var(--app-sidebar);padding:28px 18px;border-color:var(--app-border);gap:28px}
:root .app-brand{gap:10px;padding:0 6px}
:root .app-brand-mark{width:32px;height:32px;border-radius:9px;font-size:16px;background:var(--app-accent);color:var(--app-accent-ink)}
:root .app-brand strong{font:700 15px/1.15 var(--font-brand);letter-spacing:.2px;text-transform:uppercase}
:root .app-brand small{font-size:var(--text-version);line-height:1.15;color:var(--app-sidebar-meta);letter-spacing:.6px;text-transform:uppercase;margin-top:0}
:root .app-nav{gap:2px}
:root .app-nav-item{min-height:35px;padding:9px 12px;gap:11px;border-radius:8px;font-family:inherit;font-size:var(--text-nav);font-weight:500;line-height:17px;color:var(--app-sidebar-muted)}
:root .app-nav-item.active{background:var(--app-sidebar-active);color:var(--app-sidebar-active-text);font-weight:600}
:root .app-nav-item.active::after{content:none}
:root .app-nav-icon{width:var(--app-nav-icon-size);height:var(--app-nav-icon-size);stroke-width:1.7}
:root .app-profile{padding:10px;border:0;border-radius:10px;background:var(--app-profile-bg)}
:root .app-profile-row{gap:10px}
:root .app-avatar{width:28px;height:28px;flex:none;background:var(--app-avatar);color:var(--app-sidebar-text);font-size:11px}
:root .app-profile-copy strong{color:var(--app-sidebar-text);font-size:var(--text-profile)}
:root .app-profile-copy small{color:var(--app-sidebar-meta);font-size:var(--text-version);margin-top:2px}
:root .app-logout{color:var(--app-sidebar-muted);margin-top:8px}
:root body.app-authenticated .topbar{background:var(--app-topbar-bg);border-color:var(--app-border);padding-inline:32px;box-shadow:none}
:root body.app-authenticated .app-icon-button,
:root body.app-authenticated .notification-bell{background:var(--app-control-bg);color:var(--app-control-text);border-color:var(--app-control-border);box-shadow:none}
:root body.app-authenticated .landing{padding:36px 40px 32px}
:root .app-overview{max-width:none}
:root .app-page-header{margin-bottom:28px}
:root .app-page-header h1{font-family:var(--font-heading);font-size:var(--text-page-title);font-weight:700;line-height:var(--line-height-tight);letter-spacing:var(--tracking-page-title)}
:root .app-page-header p{font-size:var(--text-subtitle);line-height:var(--line-height-subtitle);margin-top:8px;color:var(--app-muted)}
.app-launcher-action,.app-draft-divider{display:none}
:root .app-launcher-grid{gap:var(--app-grid-gap)}
:root .app-draft-divider{grid-column:1/-1;display:flex;align-items:center;gap:10px;color:var(--app-meta);font-size:var(--text-section-label);font-weight:700;letter-spacing:var(--tracking-section-label);text-transform:uppercase;margin-bottom:-4px}
:root .app-draft-divider:not(:first-child){margin-top:12px}
:root .app-draft-divider::after{content:"";height:1px;flex:1;background:var(--app-border)}
:root .app-launcher{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius-lg);padding:var(--app-card-padding);gap:var(--app-card-gap);box-shadow:var(--app-shadow)}
:root .app-launcher:hover{background:var(--app-surface-2);border-color:var(--app-border-strong)}
:root .app-launcher-icon{width:var(--app-chip-size);height:var(--app-chip-size);border-radius:var(--app-chip-radius);background:var(--app-accent-soft);color:var(--app-icon-accent);margin:0}
:root .app-launcher-icon svg{width:var(--app-chip-icon-size);height:var(--app-chip-icon-size);stroke-width:1.6}
:root .app-launcher-title{font-size:var(--text-card-title);font-weight:600;margin:0}
:root .app-launcher-desc{font-size:var(--text-small);line-height:var(--line-height-body);color:var(--app-description);padding:0;flex:1}
:root .app-launcher-action{display:flex;align-items:center;gap:5px;font-size:var(--text-small);font-weight:600;color:var(--app-text)}
:root .app-launcher-action svg{width:13px;height:13px;fill:none;stroke:var(--app-icon-accent);stroke-width:2}
:root .app-launcher-chevron{display:none}
:root body.app-authenticated a{color:var(--app-text)}
:root body.app-authenticated a:hover{color:var(--app-icon-accent)}
@media(max-width:800px){
  :root body.app-authenticated .topbar{padding-inline:14px}
  :root body.app-authenticated .landing{padding:24px 16px}
  :root{--text-page-title:23px}
  .tabs{overflow-x:auto}.wf-steps{min-width:0;overflow-x:auto}.wf-step{white-space:nowrap}
}

/* Typography for shared dashboard and legacy workspace components. */
body.app-authenticated .app-panel-heading h2{font-size:var(--text-section-title)}
body.app-authenticated .app-record-title{font-size:var(--text-nav)}
body.app-authenticated .app-record-meta,body.app-authenticated .app-empty span:last-child{font-size:var(--text-meta)}
body.app-authenticated .app-status{font-family:var(--font-ui)}
body.app-authenticated :is(.scratch-screen h2,.url-entry h2,.app-page-tools h1){font-family:var(--font-heading);font-size:var(--text-page-title);font-weight:700;line-height:var(--line-height-tight);letter-spacing:var(--tracking-page-title)}
body.app-authenticated :is(.scratch-screen .sub,.url-entry p){font-family:var(--font-ui);font-size:var(--text-body);line-height:var(--line-height-body);color:var(--app-muted)}
body.app-authenticated :is(.sfield input,.sfield textarea,.sfield select,.wf-input,.wf-textarea,.saved-input){font-family:var(--font-ui);font-size:var(--text-body);line-height:var(--line-height-body)}
body.app-authenticated .app-logout{font-family:var(--font-ui);font-size:var(--text-profile)}
body.app-authenticated :is(.app-icon-button,.notification-bell):hover{background:var(--app-surface-hover);border-color:var(--app-border-strong)}
/* Light legacy surfaces use the same neutral palette as the shared components. */
:root:not([data-theme="dark"]) body.app-authenticated{
  --y:var(--app-accent);--yd:var(--app-icon-accent);--ydeep:var(--app-accent-ink);--blk:var(--app-text);--gray:var(--app-surface-2);--g2:var(--app-border);--g3:var(--app-muted);--w:var(--app-surface);--bdr:var(--app-border);
}
:root:not([data-theme="dark"]) body.app-authenticated :is(.wf-section,.source-card,.chat-msg-claude,.admin-template-card,.news-social-stage){background:var(--app-surface);border-color:var(--app-border);color:var(--app-text)}
:root :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not([type="hidden"]),select,textarea){
  min-height:var(--app-control-height);border-radius:var(--app-radius);border:1px solid var(--app-control-border);padding:9px 12px;background:var(--app-surface);color:var(--app-text);font-family:var(--font-ui);font-size:var(--text-body);line-height:var(--line-height-body);
}
:root textarea{min-height:88px;resize:vertical}
:root :is(input,textarea)::placeholder{color:var(--app-meta);opacity:1}
:root :is(input[type="checkbox"],input[type="radio"],input[type="range"]){accent-color:var(--app-focus)}
:root :is(input,textarea,select):focus{outline:2px solid var(--app-focus);outline-offset:2px;border-color:var(--app-focus)}
:root :is(input,textarea,select)[aria-invalid="true"]{border-color:var(--app-error)}
:root :is(.btn,.btn-lg){min-height:var(--app-control-height);font-family:var(--font-ui);font-size:var(--text-small);font-weight:600;line-height:var(--line-height-body);border-radius:var(--app-radius);border:1px solid transparent}
:root :is(.btn-ghost,.wf-back){background:var(--app-surface);color:var(--app-text);border:1px solid var(--app-control-border)}
:root :is(.btn-ghost,.wf-back):hover{background:var(--app-surface-hover);border-color:var(--app-border-strong)}
:root :is(button,input,textarea,select):disabled{cursor:not-allowed;opacity:.55}
:root button[aria-busy="true"]{cursor:progress}
:root table{font-family:var(--font-ui);font-size:var(--text-small);line-height:var(--line-height-body)}
:root :is(th,td){border-color:var(--app-border)}
:root th{font-weight:600;color:var(--app-muted)}
:root :is(.badge,.field-badge){border-radius:999px}

/* Application-wide presentation primitives. Root theme also covers auth and invitations. */
:root body{font-family:var(--font-ui);font-size:var(--text-body);line-height:var(--line-height-body);color:var(--app-text)}
:root button,:root input,:root textarea,:root select{font-family:var(--font-ui);color:var(--app-text)}
:root a{color:var(--app-text);text-decoration-color:var(--app-border-strong);text-underline-offset:3px}
:root a:hover{color:var(--app-icon-accent)}
:root .app-panel-surface{background:var(--app-surface);color:var(--app-text)}
:root .app-panel-surface .app-panel-surface{background:var(--app-surface-2)}
:root .app-panel-surface input,:root .app-panel-surface textarea,:root .app-panel-surface select{background:var(--app-input-bg)}
:root :is(.wf-section,.news-social-stage,.admin-template-card,.news-social-review-card,.news-image-panel,.editorial-more-panel){border-radius:var(--app-radius-lg);background:var(--app-surface);border-color:var(--app-border);color:var(--app-text)}
:root #workflow,:root #main{background:var(--app-bg)}
:root .topbar{background:var(--app-topbar-bg);color:var(--app-text);height:var(--app-topbar-height);border-bottom:1px solid var(--app-border)}
:root .wf-header{background:var(--app-surface);border-bottom:1px solid var(--app-border);min-height:52px;height:auto;gap:12px;padding-block:8px;flex-wrap:wrap;z-index:20}
:root .wf-steps{margin-left:0;min-width:0;max-width:100%;gap:4px}
:root .wf-step{font-family:var(--font-ui);font-size:var(--text-small);color:var(--app-muted);border-radius:var(--app-radius-sm);padding:8px 12px}
:root .wf-step.done{color:var(--app-text)}
:root .wf-step.active{color:var(--app-icon-accent);background:var(--app-accent-soft);border-bottom-color:var(--app-accent)}
:root .wf-step.disabled{color:var(--app-meta)}
:root .wf-step.nav-ok:hover{color:var(--app-text);background:var(--app-surface-hover)}
:root :is(.wf-back,.login-secondary-link,.login-forgot-link){color:var(--app-text);font-family:var(--font-ui);font-size:var(--text-small)}
:root .tabs{background:var(--app-bg);border-color:var(--app-border);overflow-x:auto}
:root :is(.tab,.chip,.news-image-tab){font-family:var(--font-ui);font-size:var(--text-small);color:var(--app-muted)}
:root :is(.tab.on,.chip.on,.news-image-tab.active){background:var(--app-accent-soft);color:var(--app-icon-accent);border-color:var(--app-border-strong)}
:root .tab.on{border-bottom-color:var(--app-accent)}
:root :is(.source-badge,.stat.hl){background:var(--app-surface-2);color:var(--app-text)}
:root .stat.hl .sl,:root .ts{color:var(--app-muted)}
:root .stat.hl .sn{color:var(--app-icon-accent)}
:root :is(.btn,.btn-lg,.login-primary-btn,.app-button-primary){background:var(--app-accent);color:var(--app-accent-ink);min-height:var(--app-control-height);font-family:var(--font-ui);font-size:var(--text-small);font-weight:600;line-height:var(--line-height-body);border-radius:var(--app-radius);border:1px solid transparent}
:root :is(.btn,.btn-lg,.login-primary-btn,.app-button-primary):hover{background:var(--app-accent-hover);color:var(--app-accent-ink)}
:root :is(.btn-dark,.btn-ghost,.login-google-btn,.saved-draft,.app-button-secondary,.guest-word-action-btn){background:var(--app-surface-2);color:var(--app-text);border:1px solid var(--app-control-border);border-radius:var(--app-radius);font-family:var(--font-ui);font-size:var(--text-small);font-weight:600}
:root :is(.btn-dark,.btn-ghost,.login-google-btn,.saved-draft,.app-button-secondary,.guest-word-action-btn):hover{background:var(--app-surface-hover);color:var(--app-text);border-color:var(--app-border-strong)}
:root :is(.app-button-tertiary,.saved-del){background:transparent;color:var(--app-muted);border:1px solid var(--app-border);border-radius:var(--app-radius)}
:root .app-button-destructive{background:var(--app-error-bg);color:var(--app-error);border:1px solid var(--app-error)}
:root .app-button-destructive:hover{background:var(--app-error-bg);color:var(--app-error);filter:brightness(.95)}
:root :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),textarea,select,[contenteditable="true"]){background:var(--app-input-bg);color:var(--app-input-text);border-color:var(--app-control-border);font-family:var(--font-ui);font-size:var(--text-control);line-height:var(--line-height-body)}
:root :is(input,textarea)::placeholder{color:var(--app-input-placeholder)}
:root input[type="file"]::file-selector-button{background:var(--app-surface-2);color:var(--app-text);border:1px solid var(--app-control-border);border-radius:var(--app-radius-sm);padding:7px 10px;margin-right:10px;font:inherit}
:root :is([contenteditable="true"],input,textarea,select):focus-visible{outline:2px solid var(--app-focus);outline-offset:2px}
:root :is(.sfield label,.wf-label,.login-field-group label){font-family:var(--font-ui);font-size:var(--text-label);color:var(--app-text)}
:root :is(.hint,.sub,.login-helper-text,.login-mode-note,.login-subtitle){font-family:var(--font-ui);color:var(--app-muted)}
:root :is(.scratch-screen>h2,.url-entry>h2,.login-title){font-family:var(--font-heading);font-size:var(--text-page-title);line-height:var(--line-height-tight);font-weight:700;letter-spacing:var(--tracking-page-title)}
:root :is(.wf-section h2,.editorial-more-title){font-family:var(--font-heading);font-size:var(--text-dialog-title);line-height:var(--line-height-tight)}
:root :is(.ctitle,.source-title){font-size:var(--text-card-title);font-weight:600}
:root :is(.csrc,.source-meta,.field-badge,.badge,.sent,.editorial-more-pill){font-size:var(--text-meta)}
:root :is(.login-screen,.login-layout,.login-right){background:var(--app-bg)!important;color:var(--app-text)}
:root .login-left{background:var(--app-surface-2)}
:root .login-panel{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius-lg);padding:28px;box-shadow:var(--app-shadow)}
:root .login-brand-icon span{color:var(--app-accent-ink)}
:root .login-brand-name{font-family:var(--font-brand);color:var(--app-text)}
:root .login-field-group input{border-radius:var(--app-radius);height:var(--app-control-height)}
:root .login-password-row{min-width:0}:root .login-password-row input{min-width:0;border-radius:var(--app-radius) 0 0 var(--app-radius)}
:root .login-password-toggle{background:var(--app-surface-2);color:var(--app-text);font-family:var(--font-ui);border-color:var(--app-control-border);border-radius:0 var(--app-radius) var(--app-radius) 0;min-width:90px}
:root .login-password-toggle:hover{background:var(--app-surface-hover)}
:root .login-primary-btn,:root .login-google-btn{text-transform:none;letter-spacing:normal}
:root .login-error,:root .errbanner{color:var(--app-error)}
:root .errbanner{background:var(--app-error-bg);border-color:var(--app-error)}
:root :is(.chat-msg-user,.chat-msg-update-action){background:var(--app-accent-soft);color:var(--app-text);border-color:var(--app-border-strong)}
:root .chat-msg-claude{background:var(--app-surface);color:var(--app-text)}
:root .bh,:root .sp{background:var(--app-success-bg);color:var(--app-success)}
:root .bl,:root .sn2{background:var(--app-error-bg);color:var(--app-error)}
:root .be{background:var(--app-info-bg);color:var(--app-info)}
:root .bi{background:var(--app-warning-bg);color:var(--app-warning)}
:root .bp{background:var(--app-activity-bg);color:var(--app-activity)}
:root .bg,:root .su{background:var(--app-surface-2);color:var(--app-muted)}
:root .hbox.h10,:root .hbox.h9{background:var(--app-error-bg);color:var(--app-error)}
:root .hbox.h8,:root .hbox.h7,:root .hbox.h6,:root .hbox.h5{background:var(--app-warning-bg);color:var(--app-warning)}
:root .hbox.h4,:root .hbox.h3{background:var(--app-success-bg);color:var(--app-success)}
:root .hbox.h2,:root .hbox.h1{background:var(--app-surface-2);color:var(--app-muted)}
:root table{background:var(--app-surface);color:var(--app-text)}
:root th{background:var(--app-surface-2)}
:root tbody tr:hover{background:var(--app-surface-hover)}
:root audio{max-width:100%;color-scheme:inherit}
:root .news-image-crop-canvas{background:var(--app-surface-2)}
:root #fb-toast{background:var(--app-surface-2);color:var(--app-text);box-shadow:var(--app-shadow)}
:root .wf-body,:root .scratch-screen,:root .app-panel-surface{min-width:0;overflow-wrap:anywhere}
@media(max-width:800px){
  :root .wf-row{grid-template-columns:1fr}
  :root .wf-body{padding:24px 16px 48px}
  :root .login-right{padding:24px 16px}:root .login-panel{padding:22px}
  :root .login-left{min-height:210px}
  :root .grid{grid-template-columns:minmax(0,1fr);padding-inline:16px}
  :root .wf-steps{width:100%;overflow-x:auto}
  :root .wf-step{flex:none}
  :root .img-url-row,:root .wf-actions{flex-wrap:wrap}
}
:root .app-detail-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.5fr);gap:16px;align-items:start}
:root .app-filter-layout{display:grid;grid-template-columns:2fr repeat(4,minmax(110px,1fr)) auto;gap:10px;margin-bottom:12px;align-items:center}
@media(max-width:1100px){:root .app-detail-layout{grid-template-columns:minmax(0,1fr)}:root .app-filter-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){:root .app-filter-layout{grid-template-columns:minmax(0,1fr)}}
:root .btn:not(.btn-y):not(.app-button-primary):not(.app-button-destructive){background:var(--app-surface-2);color:var(--app-text);border-color:var(--app-control-border)}
:root .btn:not(.btn-y):not(.app-button-primary):not(.app-button-destructive):hover{background:var(--app-surface-hover);border-color:var(--app-border-strong)}
:root .wf-back{border:0;background:transparent;padding:8px;border-radius:var(--app-radius-sm)}
:root .wf-back:hover{background:var(--app-surface-hover);color:var(--app-text)}

/* Native selection controls must not inherit full-width text-field dimensions. */
:root input:is([type="checkbox"],[type="radio"]){width:16px;height:16px;min-height:0;padding:0;flex:0 0 16px}

/* Shared contextual Back action; destinations are resolved by app-navigation.js. */
:root .app-back-link{display:inline-flex;align-items:center;align-self:flex-start;gap:6px;background:transparent;color:var(--app-muted);border:0;padding:8px 0;margin-bottom:12px;cursor:pointer;font:500 var(--text-small)/var(--line-height-body) var(--font-ui);text-decoration:none}
:root .app-back-link:hover{color:var(--app-text)}

/* Only the outer Refine workspace: preserve native editor/history controls. */
#refine-content{--refine-scrollbar-current:var(--refine-scrollbar-thumb);scrollbar-width:thin;scrollbar-color:var(--refine-scrollbar-current) transparent}
#refine-content:hover,#refine-content:focus-within{--refine-scrollbar-current:var(--refine-scrollbar-thumb-active)}
#refine-content>*{scrollbar-color:auto}
/* Chromium/Safari need auto standard properties to honor the inset thumb. */
@supports selector(::-webkit-scrollbar){
  @media (forced-colors:none){
    #refine-content{scrollbar-width:auto;scrollbar-color:auto}
    #refine-content::-webkit-scrollbar{width:8px;height:8px;background:transparent}
    #refine-content::-webkit-scrollbar-track{background:transparent;border:none;box-shadow:none}
    #refine-content::-webkit-scrollbar-thumb{background-color:var(--refine-scrollbar-current);border:2px solid transparent;background-clip:padding-box;border-radius:999px}
    #refine-content::-webkit-scrollbar-button{width:0;height:0;display:none}
    #refine-content::-webkit-scrollbar-corner{background:transparent}
  }
}

/* Idea board: shared surfaces, controls and typography in both themes. */
.idea-board .app-page-header{flex-wrap:wrap}.idea-new{white-space:nowrap}
#idea-feedback{color:var(--app-muted);font-size:var(--text-small);margin-bottom:16px}
.idea-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--app-grid-gap)}
.idea-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px;text-align:left;min-width:0;padding:var(--app-card-padding);border:1px solid var(--app-border);border-radius:var(--app-radius-lg);background:var(--app-surface);color:var(--app-text);box-shadow:var(--app-shadow);font:inherit;cursor:pointer;overflow-wrap:anywhere}
.idea-card:hover{background:var(--app-surface-hover);border-color:var(--app-border-strong)}
.idea-card h2{font-size:var(--text-card-title);line-height:var(--line-height-body);font-weight:600}
.idea-preview{font-size:var(--text-small);color:var(--app-description);line-height:var(--line-height-body);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.idea-meta{font-size:var(--text-meta);color:var(--app-muted);line-height:var(--line-height-body)}
.idea-card .idea-meta{margin-top:auto}.idea-open{font-size:var(--text-small);font-weight:600}.idea-open span{color:var(--app-icon-accent)}
.idea-priority{display:inline-block;border-radius:999px;padding:4px 9px;font-size:var(--text-meta);font-weight:600;background:var(--app-surface-2);color:var(--app-muted)}
.idea-priority-high{background:var(--app-error-bg);color:var(--app-error)}.idea-priority-medium{background:var(--app-warning-bg);color:var(--app-warning)}
.idea-empty{max-width:760px}.idea-empty h2{font-size:var(--text-section-title)}.idea-empty p{color:var(--app-muted);font-size:var(--text-body);line-height:var(--line-height-body);margin:12px 0 20px}
.idea-dialog{position:fixed;inset:0;margin:auto;width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:24px;background:var(--app-surface);color:var(--app-text);border:1px solid var(--app-border);border-radius:var(--app-radius-lg);box-shadow:var(--app-dialog-shadow);overflow:auto;font-family:var(--font-ui)}
.idea-dialog::backdrop{background:var(--app-backdrop)}.idea-dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.idea-dialog h2{font-size:var(--text-dialog-title);line-height:var(--line-height-tight);overflow-wrap:anywhere}.idea-dialog h3{font-size:var(--text-section-title);margin-bottom:16px}
.idea-dialog .wf-input,.idea-dialog .wf-textarea{width:100%;margin:6px 0 16px;background:var(--app-input-bg);color:var(--app-input-text);border:1px solid var(--app-border-strong);font-family:var(--font-ui)}
.idea-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin:20px 0}
.idea-danger{color:var(--app-error)!important;background:var(--app-error-bg)!important;margin-left:auto}
.idea-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:var(--line-height-body);font-size:var(--text-body);margin:16px 0}
.idea-discussion{margin-top:24px;padding-top:20px;border-top:1px solid var(--app-border)}.idea-comment{padding:12px 0;border-bottom:1px solid var(--app-border)}.idea-comment .idea-description{margin:8px 0}.idea-discussion form{margin-top:20px}
#idea-dialog-error{font-size:var(--text-small);color:var(--app-error);margin-top:12px}.idea-dialog button:disabled{opacity:.55;cursor:wait}
.idea-card:focus-visible,.idea-dialog :is(button,input,textarea,select):focus-visible{outline:2px solid var(--app-focus);outline-offset:3px}
@media(max-width:1200px){.idea-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.idea-grid{grid-template-columns:1fr}.idea-dialog{padding:18px}.idea-board .app-page-header{gap:16px}}
