@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #18181b;--ink-2: #3f3f46;--muted: #71717a;--faint: #a1a1aa;--line: #e4e4e7;--line-strong: #d4d4d8;--paper: #ffffff;--canvas: #fafafa;--subtle: #f4f4f5;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-ink: #1d4ed8;--accent-soft: #eff6ff;--accent-light: #93c5fd;--accent-glow: rgba(37, 99, 235, .16);--ok: #16a34a;--ok-soft: #f0fdf4;--ok-ink: #15803d;--warn: #d97706;--warn-soft: #fffbeb;--warn-ink: #b45309;--danger: #dc2626;--danger-soft: #fef2f2;--danger-ink: #b91c1c;--violet: #7c3aed;--violet-soft: #f5f3ff;--violet-ink: #6d28d9;--red: var(--danger);--dark: #18181b;--dark-2: #27272a;--dark-ink: #e4e4e7;--dark-muted: #a1a1aa;--dark-rule: rgba(255, 255, 255, .12);--acid: var(--accent-light);--acid-dark: var(--accent);--focus-ring: var(--accent);--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 14px;--r-2xl: 18px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px -2px rgba(0, 0, 0, .08), 0 2px 6px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 16px 40px -12px rgba(0, 0, 0, .16);--shadow: var(--shadow-sm);--font-display: "Space Grotesk Variable", "Avenir Next", sans-serif;--font-body: "IBM Plex Sans Variable", "Avenir Next", sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", ui-monospace, monospace;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;font-family:var(--font-body);color:var(--ink);background:var(--canvas);font-synthesis:none}*{box-sizing:border-box}h1,h2,h3{min-width:0;overflow-wrap:anywhere;font-family:var(--font-display)}html{background:var(--canvas);overflow-x:clip}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas);overflow-x:clip}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-topbar{position:sticky;top:0;z-index:50;background:#ffffffe0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.app-topbar-inner{width:min(1240px,calc(100% - 48px));margin:0 auto;min-height:60px;display:flex;align-items:center;gap:24px}.app-brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:0 0 auto}.app-brand-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--ink);color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em}.app-brand-text{display:flex;flex-direction:column;line-height:1.15}.app-brand-text strong{font-size:13px;font-weight:800;letter-spacing:-.01em}.app-brand-text small{font-size:10px;color:var(--muted)}.app-nav{display:flex;align-items:center;gap:2px;min-width:0;flex:1;overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-tab{display:inline-flex;align-items:center;white-space:nowrap;padding:7px 12px;border-radius:var(--r-md);font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;transition:color var(--dur-micro),background var(--dur-micro)}.app-tab:hover{color:var(--ink);background:var(--subtle)}.app-tab.active{color:var(--ink);background:var(--subtle);font-weight:700;box-shadow:inset 0 0 0 1px var(--line)}.app-topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex:0 0 auto}.app-context{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--canvas);font-size:11px;color:var(--muted);white-space:nowrap}.app-context strong{color:var(--ink);font-weight:750}.app-settings-link{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-md);font-size:12.5px;font-weight:600;color:var(--muted);text-decoration:none}.app-settings-link:hover,.app-settings-link.active{color:var(--ink);background:var(--subtle)}.app-logout-btn{padding:5px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:none;color:var(--muted);font-size:11.5px;transition:color var(--dur-micro),border-color var(--dur-micro),background var(--dur-micro)}.app-logout-btn:hover{color:var(--danger-ink);border-color:#fecaca;background:var(--danger-soft)}.app-main{flex:1;width:min(1240px,calc(100% - 48px));margin:0 auto;padding:28px 0 64px}.app-main [id]{scroll-margin-top:76px}.app-footer{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:18px 0 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--faint);font-size:11px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:24px}.page-heading h1{margin:6px 0;font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.15}.page-heading p{max-width:640px;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.module-label{flex:0 0 auto;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.platform-page{min-width:0}.page-tabs{display:flex;gap:4px;align-items:center;overflow-x:auto;padding:4px;margin-bottom:20px;background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-lg);scrollbar-width:none}.page-tabs::-webkit-scrollbar{display:none}.page-tab{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:6px 12px;border-radius:var(--r-sm);font-size:12px;font-weight:600;color:var(--muted);text-decoration:none;transition:color var(--dur-micro),background var(--dur-micro)}.page-tab:hover{color:var(--ink);background:var(--paper)}.page-tab.active{color:var(--ink);background:var(--paper);box-shadow:var(--shadow-xs)}.page-tab .page-tab-idx{font-family:var(--font-mono);font-size:10px;color:var(--faint)}.page-tab.active .page-tab-idx{color:var(--accent)}button.page-tab{border:0;background:transparent;font:inherit;cursor:pointer}.workbench-stages{margin-bottom:22px}.workbench-page .page-heading{margin-bottom:18px}.stage-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.stage-heading h2{margin:0;font-size:17px;font-weight:800;letter-spacing:-.02em}.stage-heading p{margin:4px 0 0;color:var(--muted);font-size:12.5px;line-height:1.55;max-width:640px}.postflow-embed{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);overflow:hidden}.postflow-embed iframe{display:block;width:100%;height:760px;border:0;background:var(--canvas)}.newsletter-dispatch{display:flex;flex-direction:column;gap:12px}.newsletter-dispatch-actions{display:flex;gap:10px;flex-wrap:wrap}.link-quiet{font-size:12px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap}.link-quiet:hover{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}.nlw-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}.nlw-rail{position:sticky;top:80px;display:flex;flex-direction:column;gap:12px}.nlw-rail-card{padding:16px}.nlw-rail-card .section-heading{margin-bottom:12px}.nlw-projects{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.nlw-project{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);cursor:pointer;text-align:left;transition:border-color var(--dur-micro),background var(--dur-micro)}.nlw-project:hover{border-color:var(--line-strong);background:var(--subtle)}.nlw-project.active{border-color:var(--ink);background:var(--ink)}.nlw-project.active b{color:#fff}.nlw-project.active small{color:#ffffffb8}.nlw-project b{font-size:13px;color:var(--ink)}.nlw-project small{font-size:10.5px;color:var(--muted)}.nlw-project-count{position:absolute;top:10px;right:10px;min-width:20px;padding:1px 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:800;text-align:center}.nlw-project.active .nlw-project-count{background:#fff;color:var(--ink)}.nlw-new-project{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.nlw-new-project-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:960px){.nlw-layout{grid-template-columns:1fr}.nlw-rail{position:static}}.nlw-connect{display:grid;grid-template-columns:minmax(0,1fr) 240px auto;gap:8px}.nlw-seg{display:inline-flex;gap:2px;margin-left:6px;padding:2px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--subtle)}.nlw-seg-btn{min-height:24px;padding:2px 10px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer}.nlw-seg-btn.active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-xs)}.nlw-preview{max-width:720px;padding:6px 2px 12px}.nlw-preview-title{margin:0 0 4px;font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.25}.nlw-preview-sub{margin:0 0 18px;color:var(--muted);font-size:14px}.nlw-preview h2,.nlw-preview h3,.nlw-preview h4,.nlw-preview h5{margin:22px 0 8px;letter-spacing:-.01em}.nlw-preview h2{font-size:19px}.nlw-preview h3{font-size:16px}.nlw-preview p{margin:0 0 12px;font-size:14px;line-height:1.85}.nlw-preview img{max-width:100%;height:auto;border-radius:var(--r-md);margin:8px 0}.nlw-preview blockquote{margin:12px 0;padding:8px 16px;border-left:3px solid var(--line-strong);background:var(--subtle);color:var(--ink-2);border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:13.5px}.nlw-preview ul,.nlw-preview ol{margin:0 0 12px;padding-left:22px;font-size:14px;line-height:1.8}.nlw-preview code{font-family:var(--font-mono);font-size:.9em;background:var(--subtle);padding:1px 5px;border-radius:4px}.nlw-preview pre{background:var(--dark);color:var(--dark-ink);padding:14px 16px;border-radius:var(--r-md);overflow-x:auto;font-size:12.5px;line-height:1.6}.nlw-preview pre code{background:none;padding:0;color:inherit}.nlw-preview hr{border:none;border-top:1px solid var(--line);margin:20px 0}.nlw-preview a{color:var(--accent-ink)}.nlw-picker-group{margin-bottom:18px}.nlw-picker-group:last-child{margin-bottom:0}.nlw-picker-group h3{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;font-size:13px;letter-spacing:-.01em}.nlw-picker-group h3 span{color:var(--faint);font-size:11px;font-weight:600}.nlw-modal-mask{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:#18181b80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nlw-modal{width:min(440px,100%);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-2xl);box-shadow:var(--shadow-lg);overflow:hidden}.nlw-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.nlw-modal-head h3{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em}.nlw-modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.nlw-modal-body .hint{display:block;margin-top:4px;font-size:11px;color:var(--muted);line-height:1.5}.nlw-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line);background:var(--canvas)}.nlw-conn-quiet{display:flex;flex-direction:column;gap:8px;padding:0 4px}.nlw-rail .nlw-connect{grid-template-columns:1fr}.project-chip{padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:12.5px;font-weight:650;cursor:pointer;transition:border-color var(--dur-micro),background var(--dur-micro),color var(--dur-micro)}.project-chip:hover{border-color:var(--line-strong);color:var(--ink)}.project-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.project-chip small{margin-left:6px;font-size:10px;opacity:.75}.nlw-issues{display:flex;gap:10px;flex-wrap:wrap}.nlw-issue{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);cursor:pointer;min-width:200px;text-align:left;transition:border-color var(--dur-micro),box-shadow var(--dur-micro)}.nlw-issue:hover{border-color:var(--line-strong)}.nlw-issue.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.nlw-issue b{font-size:13px}.nlw-issue-status{font-size:10.5px;color:var(--muted);font-weight:700}.nlw-issue.status-published{background:var(--ok-soft);border-color:#bbf7d0}.nlw-issue.status-ready{background:var(--violet-soft);border-color:#ddd6fe}.due-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--subtle);color:var(--muted);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}.due-chip.over{background:var(--danger-soft);color:var(--danger-ink)}.due-chip.draft{background:var(--accent-soft);color:var(--accent-ink)}.nlw-editor .field{margin-bottom:12px}.nlw-view-tabs{margin-bottom:16px}.nlw-editor-page{padding:0;display:flex;flex-direction:column}.nlw-editor-head{position:sticky;top:60px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 22px;border-bottom:1px solid var(--line);background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r-xl) var(--r-xl) 0 0}.nlw-editor-breadcrumb{display:flex;align-items:center;gap:10px;min-width:0}.nlw-editor-breadcrumb h2{margin:0;font-size:16px;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nlw-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nlw-tool{padding:4px 10px;border-radius:999px;background:var(--subtle);color:var(--muted);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.nlw-tool.ok{background:var(--ok-soft);color:var(--ok-ink)}.status-text-writing{color:var(--warn-ink)}.status-text-ready{color:var(--violet-ink)}.status-text-published{color:var(--ok-ink)}.nlw-editor-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:14px}.nlw-title-input{font-size:15px;font-weight:700}.nlw-markdown{min-height:60vh;font-family:var(--font-mono);font-size:12.5px;line-height:1.7}.nlw-editor-layout{display:flex;gap:0;align-items:stretch}.nlw-editor-layout.with-materials .nlw-editor-body{flex:1 1 600px;min-width:0;border-right:1px solid var(--line)}.nlw-materials-drawer{flex:0 0 420px;max-width:440px;min-width:320px;background:var(--canvas);display:flex;flex-direction:column}@media(max-width:1080px){.nlw-editor-layout{flex-direction:column}.nlw-editor-layout.with-materials .nlw-editor-body{border-right:none;border-bottom:1px solid var(--line)}.nlw-materials-drawer{flex:1 1 auto;max-width:100%}}.materials-panel{display:flex;flex-direction:column;height:100%;font-size:13px}.mat-header{padding:14px 16px 12px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.mat-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.mat-title-row h3{margin:0;font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:6px}.mat-title-row h3 small{font-size:11px;color:var(--muted);font-weight:600}.mat-head-actions{display:flex;gap:4px;align-items:center}.mat-config-row{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-radius:var(--r-md);background:var(--subtle)}.mat-config-row label{display:flex;flex-direction:column;gap:4px;font-size:11px}.mat-toolbar{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(120px,1fr);gap:8px}.mat-toolbar input,.mat-toolbar select{font-size:12px;min-height:32px;padding:4px 8px}.mat-batch-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;padding-top:4px;flex-wrap:wrap}.mat-batch-actions{display:flex;gap:6px}.mat-list{padding:12px 14px;overflow-y:auto;max-height:calc(60vh + 160px);display:flex;flex-direction:column;gap:10px}.mat-item{padding:12px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);display:flex;flex-direction:column;gap:6px;transition:all var(--dur-micro)}.mat-item:hover{border-color:var(--line-strong);box-shadow:var(--shadow-xs)}.mat-item.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.mat-item-top{display:flex;gap:8px;align-items:flex-start}.mat-checkbox-label{padding-top:2px;cursor:pointer;flex:0 0 auto}.mat-checkbox-label input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.mat-item-heading{min-width:0;flex:1}.mat-item-heading h4{margin:0 0 4px;font-size:13px;font-weight:750;line-height:1.35}.mat-item-heading h4 a{color:var(--ink);text-decoration:none}.mat-item-heading h4 a:hover{color:var(--accent-ink);text-decoration:underline}.mat-item-badges{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.mat-item-badges .due-chip,.mat-item-badges .tag-chip,.mat-item-badges .status-badge{font-size:9.5px;padding:1px 6px}.mat-item-summary{margin:0;font-size:11.5px;color:var(--muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mat-item-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10.5px;color:var(--faint);border-top:1px dashed var(--line);padding-top:6px;margin-top:2px}.mat-ev-source{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.nlw-insert-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 22px 0}.nlw-insert-row .input{flex:1 1 280px}.disabled-btn{opacity:.5;cursor:not-allowed}.nlw-img-strip{display:flex;gap:8px;flex-wrap:wrap;padding:10px 22px 0}.nlw-img-strip img{width:88px;height:60px;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--subtle)}.nlw-editor-actions{display:flex;gap:10px;flex-wrap:wrap}.nlw-cal-nav{display:flex;align-items:center;gap:10px}.nlw-cal-nav strong{font-size:14px;font-variant-numeric:tabular-nums}.nlw-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.nlw-cal-weekday{text-align:center;font-size:10.5px;font-weight:750;color:var(--faint);padding:4px 0;text-transform:uppercase}.nlw-cal-day{min-height:84px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);padding:5px;display:flex;flex-direction:column;gap:3px;overflow:hidden}.nlw-cal-day.pad{border-style:dashed;background:transparent;border-color:var(--line);opacity:.5}.nlw-cal-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.nlw-cal-day.clickable{cursor:pointer}.nlw-cal-day.clickable:hover{background:var(--canvas);border-color:var(--line-strong)}.nlw-cal-day.picked{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-glow)}.nlw-quick-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;padding:12px;border:1px dashed var(--accent);border-radius:var(--r-md);background:var(--accent-soft)}.nlw-quick-add .input{flex:1 1 260px}.nlw-quick-add .select{flex:0 1 180px}.nlw-quick-date{font-size:12px;font-weight:800;color:var(--accent-ink);font-variant-numeric:tabular-nums;white-space:nowrap}.nlw-cal-date{font-size:11px;font-weight:750;color:var(--muted);font-variant-numeric:tabular-nums}.nlw-cal-day.today .nlw-cal-date{color:var(--accent-ink)}.nlw-cal-chip{border:0;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;background:var(--subtle);color:var(--ink-2)}.nlw-cal-chip.status-todo,.nlw-cal-chip.status-discussing{background:var(--subtle);color:var(--muted)}.nlw-cal-chip.status-writing{background:var(--warn-soft);color:var(--warn-ink)}.nlw-cal-chip.status-ready{background:var(--violet-soft);color:var(--violet-ink)}.nlw-cal-chip.status-published{background:var(--ok-soft);color:var(--ok-ink)}.nlw-cal-legend{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.nlw-cal-legend .nlw-cal-chip{cursor:default;width:auto}@media(max-width:840px){.nlw-connect{grid-template-columns:1fr}.nlw-new-project{grid-template-columns:1fr 1fr}.nlw-cal-grid{grid-template-columns:repeat(7,minmax(58px,1fr));overflow-x:auto}}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-xs)}.card-pad{padding:20px 24px}.card-title{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.card-heading>div{display:flex;align-items:center;gap:10px}.card-heading h2{margin:0;font-size:16px;letter-spacing:-.02em}.card-heading.compact{margin-bottom:14px}.section-heading{margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.section-heading>div{display:flex;align-items:center;gap:10px;min-width:0}.section-heading h2{margin:0;font-size:16px;letter-spacing:-.02em}.section-heading>span{color:var(--muted);font-size:11px}.step-number{display:inline-grid;place-items:center;height:26px;min-width:26px;padding:0 7px;border-radius:var(--r-sm);background:var(--ink);color:#fff;font-size:11px;font-weight:800;letter-spacing:.02em}.step-number.muted{background:var(--subtle);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}.helper{font-size:12px;color:var(--muted)}.button{min-height:36px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);color:var(--ink);font-size:13px;font-weight:650;text-decoration:none;white-space:nowrap;transition:background var(--dur-micro),border-color var(--dur-micro),color var(--dur-micro),opacity var(--dur-micro)}.button:hover:not(:disabled){background:var(--subtle);border-color:var(--line-strong)}.button:disabled{cursor:not-allowed;opacity:.5}.button-primary{min-height:42px;padding:0 18px;background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}.button-primary:hover:not(:disabled){background:var(--ink-2);border-color:var(--ink-2)}.button-secondary{min-height:36px;font-size:12px}.button-upload{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:700}.button-upload:hover:not(:disabled){background:var(--danger-ink);border-color:var(--danger-ink)}.action-btn-small{min-height:28px;padding:0 10px;font-size:11px;border-radius:var(--r-sm);gap:5px;text-decoration:none}.btn-text{min-height:28px;padding:0 6px;border:0;background:none;color:var(--muted);font-size:12px;font-weight:600}.btn-text:hover:not(:disabled){color:var(--ink);text-decoration:underline;text-underline-offset:3px}.preset-btn{padding:5px 11px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);font-size:12px;font-weight:600;color:var(--ink);transition:background var(--dur-micro),border-color var(--dur-micro)}.preset-btn:hover{background:var(--subtle);border-color:var(--line-strong)}.preset-btn.text-muted{color:var(--muted);border-style:dashed}.label{display:block;font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:5px}.input,.select,.textarea{width:100%;min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);color:var(--ink);font-size:13px;outline:none;transition:border-color var(--dur-micro),box-shadow var(--dur-micro)}.textarea{min-height:88px;padding-block:9px;resize:vertical;line-height:1.55}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--subtle);color:var(--muted);cursor:not-allowed}.input::placeholder,.textarea::placeholder{color:var(--faint)}.status-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:var(--subtle);border:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.status-badge.ok{background:var(--ok-soft);color:var(--ok-ink);border-color:#bbf7d0}.status-badge.warn{background:var(--warn-soft);color:var(--warn-ink);border-color:#fde68a}.status-badge.danger{background:var(--danger-soft);color:var(--danger-ink);border-color:#fecaca}.alert{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:var(--r-md);font-size:12px;line-height:1.55;border:1px solid var(--line);background:var(--subtle);color:var(--ink-2)}.alert strong{font-weight:750}.alert-info{background:var(--accent-soft);border-color:#bfdbfe;color:#1e3a8a}.alert-warn{background:var(--warn-soft);border-color:#fde68a;color:#78350f}.alert-danger{background:var(--danger-soft);border-color:#fecaca;color:#7f1d1d}.alert-ok{background:var(--ok-soft);border-color:#bbf7d0;color:#14532d}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper)}.table{width:100%;border-collapse:collapse;font-size:12.5px}.table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:750;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:var(--canvas);border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background var(--dur-micro)}.table tbody tr:hover{background:var(--canvas)}.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite;flex:0 0 auto}.progress-track{height:5px;overflow:hidden;background:var(--subtle);border-radius:999px;margin-top:15px}.progress-track span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .45s var(--ease-in-out)}.progress-card{padding:20px 24px;margin-top:18px}.progress-copy{display:flex;align-items:center;gap:13px}.progress-copy strong{font-size:14px}.progress-copy p{margin:3px 0 0;color:var(--muted);font-size:12px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);padding:11px 15px;border-radius:var(--r-md);color:#fff;background:var(--ink);box-shadow:var(--shadow-lg);font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:300;max-width:min(92vw,560px);text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.toast.error{background:var(--danger-ink)}.muted{color:var(--muted)}.text-sm{font-size:12px}.text-xs{font-size:11px}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px #16a34a1f}.tab-pane-fade{animation:fadeIn .22s var(--ease-out)}.build-banner{position:sticky;top:0;z-index:1200;background:var(--warn);color:#fff;font-size:12px;font-weight:600;padding:6px 14px;text-align:center}.workspace-lazy-fallback{display:flex;align-items:center;justify-content:center;gap:10px;min-height:60vh;color:var(--muted);font-size:13px;font-weight:600}.inline-error{margin:9px 2px 0;color:var(--danger-ink);font-size:11px;line-height:1.5}.status-banner{min-height:64px;padding:14px 18px;border:1px solid var(--line);background:var(--paper);border-radius:var(--r-xl);display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin-bottom:18px}.status-banner.ready{border-color:#bbf7d0;background:var(--ok-soft)}.status-banner.warning{border-color:#fde68a;background:var(--warn-soft)}.status-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-md);color:#fff;background:var(--ink);font-weight:800;font-size:13px}.status-banner strong{display:block;font-size:13px}.status-banner p{margin:3px 0 0;font-size:12px;color:var(--muted)}.credential-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.credential-button{min-height:32px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font-size:11px;font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--dur-micro)}.credential-button:hover{background:var(--subtle)}.credential-button.primary{background:var(--ink);border-color:var(--ink);color:#fff}.credential-button:disabled,.credential-button.disabled{cursor:wait;opacity:.5;pointer-events:none}.source-card,.activity{padding:22px 24px}.source-card{margin-top:18px}.queue-card{margin-top:0}.source-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.url-field{min-height:52px;display:flex;align-items:center;gap:12px;padding:0 15px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);transition:border-color .2s,box-shadow .2s}.multi-url-field{align-items:flex-start;padding-top:13px;padding-bottom:13px}.url-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.url-field span{font-size:18px;font-weight:700}.url-field input,.url-field textarea{width:100%;border:0;outline:0;background:transparent;font-size:14px}.url-field textarea{min-height:82px;resize:vertical;line-height:1.55}.url-field input::placeholder,.url-field textarea::placeholder{color:var(--faint)}.source-actions-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}.quick-presets{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.queue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.queue-summary{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.queue-summary button{min-height:26px;padding:3px 9px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font-size:11px;font-weight:650;transition:background var(--dur-micro)}.queue-summary button:hover{background:var(--subtle)}.queue-item{min-height:60px;padding:8px 11px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);text-align:left}.queue-item.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.queue-item.checked{background:var(--accent-soft)}.queue-check{position:relative;width:20px;height:20px}.queue-check input{position:absolute;opacity:0}.queue-check span{width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper)}.queue-check input:checked+span{border-color:var(--accent);background:var(--accent)}.queue-check input:checked+span:after{content:"✓";color:#fff;font-size:11px;font-weight:900}.queue-open{min-width:0;padding:2px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:0;background:transparent;color:inherit;text-align:left}.queue-index{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--subtle);font-size:10px;font-weight:800}.queue-open b,.queue-open small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-item b{font-size:11px}.queue-item small{margin-top:3px;color:var(--muted);font-size:10px}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--warn)}.status-dot.failed{background:var(--danger)}.status-dot.uploaded{background:var(--ok)}.publisher-view-switcher{display:flex;gap:4px;margin-bottom:20px;padding:4px;flex-wrap:wrap;background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-lg);width:fit-content}.publisher-tab-btn{padding:7px 14px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;font-size:12.5px;font-weight:650;color:var(--muted);cursor:pointer;transition:color var(--dur-micro),background var(--dur-micro),box-shadow var(--dur-micro)}.publisher-tab-btn:hover{color:var(--ink)}.publisher-tab-btn.active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-xs);font-weight:700}.batch-actions{margin-top:18px;padding:22px 24px;box-shadow:none}.batch-actions-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.batch-actions-heading>div{display:flex;align-items:flex-start;gap:12px}.batch-actions-heading h2{margin:1px 0 5px;font-size:16px}.batch-actions-heading p{margin:0;color:var(--muted);font-size:11px}.batch-actions-heading>strong{padding:5px 10px;border-radius:999px;background:var(--subtle);color:var(--muted);font-size:10px;white-space:nowrap}.batch-settings{margin-top:16px;padding:14px;display:grid;grid-template-columns:1fr 1fr auto auto;gap:10px;align-items:end;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas)}.batch-settings label:not(.batch-notify){display:grid;gap:6px}.batch-settings label>span{color:var(--muted);font-size:10px;font-weight:700}.batch-settings select{min-height:38px;padding:0 11px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);color:var(--ink);outline:none}.batch-notify{min-height:38px;padding:0 12px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);white-space:nowrap;font-size:12px}.batch-notify input{accent-color:var(--accent)}.batch-buttons{margin-top:10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.batch-buttons .button{min-height:40px;padding:0 14px;font-size:12px}.batch-progress{margin-top:14px;display:grid;gap:7px}.batch-progress>span{height:5px;overflow:hidden;border-radius:999px;background:var(--subtle)}.batch-progress i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .25s}.batch-progress p{margin:0;color:var(--muted);font-size:10px}.activity{margin-top:18px;box-shadow:none}.activity-time{color:var(--muted);font-size:11px}.activity-empty{padding:22px;border-radius:var(--r-md);background:var(--subtle);color:var(--muted);text-align:center;font-size:12px}.activity-row{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:var(--r-md);background:var(--subtle)}.activity-indicator{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:5px}.activity-row strong{font-size:13px}.activity-row p{margin:4px 0 0;color:var(--muted);font-size:11px}.empty-editor-card{padding:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.editor-form{display:grid;gap:18px}.type-options{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.type-options input{position:absolute;opacity:0;pointer-events:none}.type-options label>span{min-height:64px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);cursor:pointer}.type-options b,.type-options small{display:block}.type-options b{font-size:12px}.type-options small{color:var(--muted);font-size:10px;line-height:1.35}.type-options input:checked+span{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.type-options input:checked+span b{color:var(--accent-ink)}.video-choices video{width:100%;max-height:190px;margin-bottom:8px;border-radius:var(--r-md);background:#101110}.youtube-mark{display:grid;place-items:center;width:28px;height:20px;border-radius:6px;background:#fff;color:var(--danger);font-size:9px}.studio-workstation{display:grid;grid-template-columns:440px minmax(0,1fr);gap:28px;align-items:flex-start;margin-top:24px}.studio-preview-pane{position:sticky;top:80px;display:flex;flex-direction:column;gap:16px;background:var(--dark);color:#fff;padding:22px 20px;border-radius:var(--r-2xl);border:1px solid var(--dark-rule);box-shadow:var(--shadow-lg)}.phone-simulator-frame{position:relative;width:100%;max-width:320px;margin:0 auto;aspect-ratio:9 / 16;background:#000;border-radius:36px;overflow:hidden;border:4px solid #333633;box-shadow:0 16px 36px #0009,inset 0 0 0 2px #ffffff1a;display:flex;align-items:center;justify-content:center}.phone-screen-video{width:100%;height:100%;object-fit:cover;background:#000}.phone-overlay-layer{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:14px 12px;z-index:10;background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,transparent 20%,transparent 65%,rgba(0,0,0,.7) 100%)}.phone-top-bar{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;color:#ffffffe6;text-shadow:0 1px 3px rgba(0,0,0,.8)}.phone-side-actions{position:absolute;right:8px;bottom:70px;display:flex;flex-direction:column;align-items:center;gap:14px}.phone-action-pill{display:flex;flex-direction:column;align-items:center;gap:2px}.phone-action-icon{width:36px;height:36px;border-radius:50%;background:#1e1e1e99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;font-size:16px;color:#fff;border:1px solid rgba(255,255,255,.2)}.phone-action-label{font-size:9px;font-weight:700;color:#ffffffd9;text-shadow:0 1px 2px rgba(0,0,0,.8)}.phone-bottom-meta{margin-top:auto;max-width:78%;display:flex;flex-direction:column;gap:4px}.phone-author-tag{font-size:12px;font-weight:800;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9)}.phone-title-snippet{font-size:10px;line-height:1.35;color:#fffffff2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 3px rgba(0,0,0,.9)}.phone-safe-guide-box{position:absolute;inset:8% 20% 22% 6%;border:1px dashed rgba(147,197,253,.5);pointer-events:none;border-radius:var(--r-md)}.phone-safe-guide-label{position:absolute;top:4px;left:4px;font-size:8px;color:var(--accent-light);background:#000000b3;padding:1px 4px;border-radius:4px}.video-subtitle-overlay{position:absolute;left:5%;right:5%;top:72%;transform:translateY(-50%);text-align:center;pointer-events:none;z-index:12;line-height:1.3}.sub-classic-yellow,.sub-neon-green,.sub-bold-white{font-size:13px;font-weight:900;text-shadow:-1.5px -1.5px 0 #000,1.5px -1.5px 0 #000,-1.5px 1.5px 0 #000,1.5px 1.5px 0 #000,0 2px 4px rgba(0,0,0,.9);padding:4px 10px;border-radius:6px;display:inline-block;max-width:90%;word-break:break-word}.sub-classic-yellow{color:#ffeb3b;background:#0000008c}.sub-neon-green{color:#22c55e;background:#0009}.sub-bold-white{color:#fff;background:#0000008c}.platform-overlay-nav{display:flex;gap:6px;justify-content:center;background:#ffffff0f;padding:4px;border-radius:var(--r-md)}.overlay-toggle-btn{padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-2);font-size:11px;font-weight:700;transition:background .16s,color .16s,border-color .16s;cursor:pointer}.overlay-toggle-btn:hover{border-color:var(--line-strong)}.overlay-toggle-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}.studio-preview-pane .overlay-toggle-btn,.playback-speed-bar .speed-chip-btn{border-color:#ffffff1f;background:#ffffff0a;color:#bdc0b9}.studio-preview-pane .overlay-toggle-btn:hover,.playback-speed-bar .speed-chip-btn:hover{border-color:#ffffff40}.studio-preview-pane .overlay-toggle-btn.active{background:#fff;color:var(--ink);border-color:#fff}.playback-speed-bar{display:flex;align-items:center;justify-content:space-between;background:#ffffff0d;padding:6px 12px;border-radius:var(--r-md)}.speed-chips{display:flex;gap:4px}.speed-chip-btn{padding:3px 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-2);font-size:11px;font-weight:750;transition:background .16s,color .16s,border-color .16s;cursor:pointer}.speed-chip-btn:hover{border-color:var(--line-strong)}.speed-chip-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}.playback-speed-bar .speed-chip-btn.active{background:#fff;color:var(--ink);border-color:#fff}.studio-editor-pane{display:flex;flex-direction:column;gap:20px}.deck-step-card{background:var(--paper);border-radius:var(--r-xl);padding:22px 24px;border:1px solid var(--line);box-shadow:var(--shadow-xs);transition:border-color .2s,box-shadow .2s}.deck-step-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.deck-step-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.deck-step-header>div{flex:1;min-width:0}.step-number-badge{width:28px;height:28px;border-radius:var(--r-md);background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:800;font-size:12px;font-family:var(--font-mono);flex:0 0 auto}.deck-step-title{font-size:15px;font-weight:800;color:var(--ink);margin:0}.deck-step-desc{font-size:12px;color:var(--muted);margin-top:2px;display:block}.deck-action-bar{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.framing-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.framing-card-item{border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;cursor:pointer;background:var(--canvas);transition:border-color .18s,background .18s,box-shadow .18s;display:flex;flex-direction:column;gap:8px;position:relative;text-align:left}.framing-card-item:hover{border-color:var(--line-strong);background:var(--paper)}.framing-card-item.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.framing-card-icon{font-size:24px}.framing-card-name{font-size:13px;font-weight:800;color:var(--ink)}.framing-card-tag{display:inline-block;align-self:flex-start;font-size:10px;font-weight:750;padding:2px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink)}.framing-card-summary{font-size:11px;color:var(--muted);line-height:1.4;margin:0}.ai-deck-box{background:var(--canvas);border:1px solid var(--line);border-radius:var(--r-xl);padding:18px}.ai-controls-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.ai-tone-chips,.ai-lang-chips{display:flex;flex-wrap:wrap;gap:6px}.ai-tone-btn,.ai-lang-btn{padding:6px 12px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);font-size:11px;font-weight:700;color:var(--ink-2);transition:background .16s,color .16s,border-color .16s;cursor:pointer}.ai-tone-btn:hover,.ai-lang-btn:hover{border-color:var(--line-strong)}.ai-tone-btn.active,.ai-lang-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}.ai-generate-action-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:var(--r-md);border:none;background:var(--accent);color:#fff;font-size:13px;font-weight:750;transition:background .15s;cursor:pointer}.ai-generate-action-btn:hover:not(:disabled){background:var(--accent-hover)}.ai-generate-action-btn:disabled{opacity:.6;cursor:not-allowed}.ai-result-preview-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);padding:14px;margin-top:12px;display:flex;flex-direction:column;gap:10px}.ai-result-hook-text{font-size:13px;font-weight:800;color:var(--accent-ink);padding:8px 12px;background:var(--accent-soft);border-radius:var(--r-sm)}.ai-result-caption-text{font-size:12px;line-height:1.5;color:var(--ink-2);white-space:pre-line;max-height:120px;overflow-y:auto}.subtitle-presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.subtitle-preset-item{border:1px solid var(--line);border-radius:var(--r-lg);padding:12px;cursor:pointer;background:var(--paper);display:flex;flex-direction:column;align-items:center;gap:6px;transition:border-color .16s,box-shadow .16s}.subtitle-preset-item:hover{border-color:var(--line-strong)}.subtitle-preset-item.active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.preset-color-badge{width:100%;padding:6px;border-radius:var(--r-sm);text-align:center;font-size:11px;font-weight:900}.floating-batch-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#18181bf5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#fff;padding:12px 22px;border-radius:999px;border:1px solid rgba(255,255,255,.15);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:20px;z-index:100;animation:slideUp .25s var(--ease-out);max-width:min(100% - 32px,920px);flex-wrap:wrap;justify-content:center}.floating-bar-info{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:750}.floating-bar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.floating-action-btn{padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;font-size:12px;font-weight:750;cursor:pointer;transition:background .16s,border-color .16s}.floating-action-btn:hover{background:#ffffff2e;border-color:#fff6}.floating-action-btn.primary{background:#fff;color:var(--ink);border-color:#fff;font-weight:800}.floating-action-btn.primary:hover{background:var(--accent-soft)}.schedule-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}.kpi-card{padding:14px 16px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;gap:4px}.kpi-card small{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.kpi-card strong{font-size:24px;font-weight:800;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}.kpi-card strong.ok{color:var(--ok)}.kpi-card strong.highlight{color:var(--accent)}.kpi-card strong.warn{color:var(--danger)}.schedule-toolbar-row{margin-bottom:16px;display:flex;justify-content:flex-end}.delete-btn{background:var(--danger-soft);color:var(--danger-ink);border-color:#fecaca}.delete-btn:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.asset-library-section{padding:24px;margin-bottom:24px}.asset-stats-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;padding:12px 18px;border-radius:var(--r-lg);background:var(--canvas);border:1px solid var(--line)}.stat-pill{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}.stat-pill strong{color:var(--ink);font-weight:800;font-size:13px}.assets-empty-state{text-align:center;padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.empty-icon{font-size:40px;margin-bottom:4px}.assets-empty-state h3{margin:0;font-size:18px}.assets-empty-state p{margin:0 0 12px;color:var(--muted);font-size:13px;max-width:460px;line-height:1.5}.asset-filter-toolbar{display:flex;flex-direction:column;gap:14px;margin-bottom:20px;padding:16px 20px;border-radius:var(--r-xl);background:var(--canvas);border:1px solid var(--line)}.filter-row-top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.filter-search-box{flex:1;min-width:260px;display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line);transition:border-color var(--dur-micro),box-shadow var(--dur-micro)}.filter-search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.filter-search-box input{border:none;outline:none;background:transparent;width:100%;font-size:13px;font-family:inherit}.clear-search-btn{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px}.filter-sort-select{display:flex;gap:14px;flex-wrap:wrap}.filter-sort-select label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--muted)}.filter-sort-select select{min-height:32px;padding:4px 10px;border-radius:var(--r-sm);border:1px solid var(--line);font-size:12px;background:var(--paper);font-weight:600;cursor:pointer;outline:none}.filter-chips-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:12px;border-top:1px dashed var(--line);padding-top:12px}.filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.filter-label{font-weight:750;color:var(--ink);margin-right:2px}.filter-chip{min-height:26px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:11px;font-weight:700;color:var(--muted);cursor:pointer;transition:border-color var(--dur-micro),background var(--dur-micro),color var(--dur-micro)}.filter-chip:hover{border-color:var(--ink);color:var(--ink)}.filter-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.asset-batch-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:12px;flex-wrap:wrap}.batch-select-info{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700}.select-all-label{display:flex;align-items:center;gap:6px;cursor:pointer}.select-all-label input{accent-color:var(--accent)}.selected-count-pill{padding:2px 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px}.batch-export-actions{display:flex;gap:8px;flex-wrap:wrap}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:14px}.asset-card{border-radius:var(--r-xl);border:1px solid var(--line);background:var(--paper);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;transition:border-color var(--dur-micro),box-shadow var(--dur-micro)}.asset-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.asset-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.asset-preview-container{height:160px;background:#0f172a;position:relative;overflow:hidden;display:grid;place-items:center}.asset-preview-container img,.asset-preview-container video{width:100%;height:100%;object-fit:cover}.asset-placeholder{color:#64748b;font-size:13px;font-weight:700}.canvas-tag{position:absolute;top:10px;left:10px;padding:3px 8px;border-radius:var(--r-sm);font-size:10px;font-weight:800}.canvas-tag.short{background:var(--accent);color:#fff}.canvas-tag.landscape{background:var(--dark-2);color:#fff}.duration-tag{position:absolute;bottom:10px;right:10px;padding:2px 6px;border-radius:4px;background:#000000bf;color:#fff;font-size:11px;font-family:var(--font-mono);font-weight:700}.asset-checkbox-label{position:absolute;top:10px;right:10px;z-index:3;background:#0009;padding:4px;border-radius:var(--r-sm);display:grid;place-items:center;cursor:pointer}.asset-checkbox-label input{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.asset-info{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1;justify-content:space-between}.asset-info h4{margin:0;font-size:14px;line-height:1.35;font-weight:750;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.asset-meta-text{margin:0;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}.asset-meta-text b{color:var(--ink)}.asset-meta-text a{color:var(--accent-ink)}.asset-tags{display:flex;gap:4px;flex-wrap:wrap}.tag-chip{font-size:10px;font-weight:700;padding:2px 6px;border-radius:var(--r-sm);background:var(--subtle);color:var(--ink-2)}.asset-card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.yt-link{color:var(--danger-ink)}.guide-shell{max-width:880px}.eyebrow{display:inline-flex;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.guide-hero{max-width:800px;margin:20px 0 26px}.guide-hero h1{margin:16px 0 18px;font-size:clamp(30px,4.5vw,44px);line-height:1.08;letter-spacing:-.035em;font-weight:800}.guide-hero h1 span{color:var(--muted)}.guide-hero p{max-width:680px;margin:0;color:var(--muted);font-size:14px;line-height:1.65}.guide-alert{margin-bottom:18px;padding:14px 18px;display:grid;grid-template-columns:minmax(180px,.35fr) 1fr;gap:16px;border:1px solid #fde68a;border-radius:var(--r-xl);background:var(--warn-soft)}.guide-alert strong{font-size:13px;color:var(--warn-ink)}.guide-alert p{margin:0;color:#78350f;font-size:12px;line-height:1.55}.guide-steps{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--shadow-xs)}.guide-step{padding:24px;display:grid;grid-template-columns:44px 1fr;gap:16px;border-bottom:1px solid var(--line)}.guide-step:last-child{border-bottom:0}.guide-number{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--ink);color:#fff;font-size:12px;font-weight:800;font-family:var(--font-mono)}.guide-step h2{margin:1px 0 8px;font-size:17px;letter-spacing:-.02em}.guide-step p{max-width:720px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}.guide-step code,.guide-trouble code,.guide-trouble dd code{padding:2px 5px;border-radius:4px;background:var(--subtle);color:var(--ink);font-size:.9em;font-family:var(--font-mono)}.guide-action{margin-top:14px;min-height:36px;padding:0 14px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);background:var(--paper);font-size:12px;font-weight:700;text-decoration:none;transition:background var(--dur-micro)}.guide-action:hover{background:var(--subtle)}.guide-action.dark{color:#fff;background:var(--ink);border-color:var(--ink)}.scope-list{margin-top:15px;display:grid;gap:8px}.scope-list span{padding:10px 13px;border-radius:var(--r-md);background:var(--subtle);color:var(--muted);font-size:12px}.scope-list b{color:var(--ink)}.guide-trouble{margin-top:18px;padding:22px 24px}.guide-trouble>div{display:flex;align-items:center;gap:12px;margin-bottom:16px}.guide-trouble h2{margin:0;font-size:16px}.guide-trouble dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.guide-trouble dl div{padding:13px 14px;border-radius:var(--r-md);background:var(--subtle)}.guide-trouble dt{font-size:12px;font-weight:750}.guide-trouble dd{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.guide-official{margin:18px 0 0;color:var(--muted);font-size:11px}.guide-official a{color:var(--accent-ink);font-weight:700}.guide-trouble .api-token-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.guide-trouble .api-token-row .input{flex:1 1 240px}.guide-trouble-lead{margin:0 0 14px;font-size:13px;line-height:1.7;color:var(--muted)}.api-token-saved{font-size:12px;color:var(--ok-ink);font-weight:700}.kh-step{margin-top:16px;padding:20px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:none}.kh-controls-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.kh-controls-row>input[type=text],.kh-controls-row>input[type=password]{flex:1 1 280px}.kh-market,.kh-limit{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ink-2)}.kh-limit input{width:64px}.kh-manual-input{min-height:92px;padding:9px 11px}.kh-note{margin:0;font-size:11px;color:var(--muted);line-height:1.6}.kh-note+.kh-note{margin-top:4px}.dimension-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:12px;font-weight:650;color:var(--muted);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-micro),background var(--dur-micro),color var(--dur-micro)}.dimension-pill:hover{border-color:var(--line-strong);color:var(--ink)}.dimension-pill input{accent-color:var(--accent);margin:0}.dimension-pill:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:700}.kh-step details>summary{min-height:36px;display:flex;align-items:center;cursor:pointer;font-size:12px;font-weight:700;color:var(--muted)}.kh-step details[open]>summary{margin-bottom:8px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--canvas);padding:24px}.login-card{width:100%;max-width:420px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:32px 28px}.login-header{text-align:center;margin-bottom:24px}.login-badge-mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--ink);color:#fff;font-size:16px;font-weight:800;letter-spacing:-.05em;border-radius:var(--r-md);margin-bottom:12px}.login-title{font-size:18px;font-weight:700;color:var(--ink);margin:0 0 6px;letter-spacing:-.02em}.login-subtitle{font-size:13px;color:var(--muted);margin:0}.login-error-alert{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--danger-soft);border:1px solid #fecaca;border-radius:var(--r-md);color:var(--danger-ink);font-size:12.5px;margin-bottom:20px}.login-error-dot{width:6px;height:6px;border-radius:50%;background:var(--danger);flex-shrink:0}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field-header{display:flex;align-items:center;justify-content:space-between}.login-label{font-size:12px;font-weight:600;color:var(--ink-2)}.login-toggle-btn{background:none;border:none;padding:0;font-size:11.5px;color:var(--accent);cursor:pointer}.login-toggle-btn:hover{text-decoration:underline}.login-input{width:100%;min-height:40px;padding:9px 12px;font-size:13.5px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:#fff;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.login-submit-btn{width:100%;margin-top:8px;min-height:42px;font-size:13.5px;font-weight:700;color:#fff;background:var(--ink);border:1px solid var(--ink);border-radius:var(--r-md);transition:background .15s,opacity .15s}.login-submit-btn:hover:not(:disabled){background:var(--ink-2)}.login-submit-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer-notice{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);text-align:center}.login-notice-text{margin:0;font-size:11.5px;color:var(--muted);line-height:1.5}.login-notice-text strong{color:var(--ink)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}:where(a,button,summary,[role=button],label:has(input[type=checkbox]),label:has(input[type=radio])):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:6px}::selection{background:#dbeafe;color:var(--ink)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}@media(max-width:1100px){.studio-workstation{grid-template-columns:1fr}.studio-preview-pane{position:static}}@media(max-width:840px){.app-topbar-inner{width:min(100% - 28px,1240px);gap:14px;flex-wrap:wrap}.app-brand-text{display:none}.app-main{width:min(100% - 28px,1240px);padding-top:20px}.source-form{grid-template-columns:1fr}.button-primary{width:100%}.guide-hero h1{font-size:clamp(30px,9vw,44px)}.queue-grid{grid-template-columns:1fr}.source-card,.activity{padding:18px}.batch-settings{grid-template-columns:1fr 1fr}.schedule-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:768px){.framing-grid-3{grid-template-columns:1fr}}@media(max-width:640px){.subtitle-presets-grid{grid-template-columns:1fr}}@media(max-width:560px){.app-topbar-inner{width:min(100% - 20px,1240px);min-height:54px;gap:10px}.app-tab{padding:6px 9px;font-size:12px}.app-context{display:none}.app-main,.app-footer{width:min(100% - 20px,1240px)}.app-footer{flex-direction:column;gap:6px}.page-heading{flex-direction:column;align-items:flex-start;gap:14px}.page-heading h1{font-size:22px}.module-label{align-self:flex-start}.type-options{grid-template-columns:1fr}.card-heading{align-items:flex-start}.helper{display:none}.status-banner{grid-template-columns:auto 1fr}.credential-actions{grid-column:1 / -1;justify-content:stretch}.credential-actions .credential-button{flex:1}.status-badge{display:none}.batch-actions{padding:18px}.batch-actions-heading{flex-direction:column}.batch-settings,.batch-buttons{grid-template-columns:1fr}.schedule-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-hero{margin-top:16px}.guide-alert{grid-template-columns:1fr;gap:6px}.guide-step{padding:18px;grid-template-columns:34px 1fr;gap:12px}.guide-number{width:30px;height:30px}.guide-step h2{font-size:16px}.guide-trouble dl{grid-template-columns:1fr}.filter-sort-select{width:100%}.filter-sort-select label{flex:1;justify-content:space-between}}@media(prefers-reduced-motion:reduce){.batch-progress i,.progress-track span,.tab-pane-fade,.floating-batch-bar{transition-duration:0ms;animation-duration:0ms}.spinner{animation-duration:1.8s}}
