:root{--ink:#17191e;--muted:#757984;--paper:#f7f7f5;--card:#fff;--line:#e0e1e0;--blue:#4d65ee;--blue-deep:#3248c6;--blue-wash:#edf0ff;--rail:#191b20;--rail-muted:#9298a8;--rail-ink:#f2f4fa;--success:#6bc496;--shadow:0 20px 50px rgba(25,30,45,.08)}
body.dark{--ink:#f1f3f8;--muted:#a3a8b4;--paper:#101216;--card:#191c22;--line:#30343c;--blue:#91a2ff;--blue-deep:#b2beff;--blue-wash:#242b45;--rail:#0b0d10;--rail-muted:#8d94a4;--rail-ink:#f2f4fa;--success:#7ed5a7;--shadow:0 20px 50px rgba(0,0,0,.25)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;overflow-x:clip;transition:background .2s,color .2s}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid rgba(77,101,238,.45);outline-offset:3px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.rail{position:sticky;top:0;height:100vh;padding:25px 16px 20px;background:var(--rail);color:var(--rail-ink);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;padding:0 9px 25px;font:500 14px 'DM Mono',monospace;letter-spacing:.13em}.brand i{display:block;width:12px;height:12px;border:3px solid currentColor;border-radius:50%;box-shadow:0 0 0 4px rgba(145,162,255,.16)}.new-button{width:100%;padding:11px 12px;text-align:left;color:var(--rail-ink);border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);border-radius:9px;font-weight:600;font-size:14px;transition:.18s}.new-button:hover{transform:translateY(-1px);background:rgba(255,255,255,.12)}.new-button span{color:#a9b7ff;font-size:17px;margin-right:7px}.steps{display:grid;gap:4px;padding:27px 3px}.steps button{display:flex;align-items:center;gap:10px;border:0;border-radius:8px;background:transparent;color:var(--rail-muted);padding:9px 8px;text-align:left;font-size:14px;transition:.18s}.steps button b{font:500 14px 'DM Mono',monospace;color:#747c8e}.steps button.active{color:var(--rail-ink);background:rgba(255,255,255,.08)}.steps button.active b{color:#a9b7ff}.steps button:not(:disabled):hover{color:var(--rail-ink)}.steps button:disabled{cursor:not-allowed;opacity:.55}.rail-bottom{margin-top:auto;padding:17px 7px 0;border-top:1px solid rgba(255,255,255,.1);display:grid;gap:17px}.theme-button{background:none;border:0;color:#b4bac7;padding:0;display:flex;gap:9px;align-items:center;text-align:left;font-size:14px}.theme-button span:first-child{font-size:17px;color:#a9b7ff}.service-state{display:flex;gap:9px;align-items:center}.service-state>i,.topbar-status i{display:block;width:7px;height:7px;border-radius:99px;background:var(--success);box-shadow:0 0 0 3px rgba(107,196,150,.13)}.service-state b,.service-state small{display:block}.service-state b{font-size:14px}.service-state small{margin-top:2px;color:#757d8e;font-size:14px}
.main{min-width:0}.topbar{height:68px;border-bottom:1px solid var(--line);padding:0 clamp(21px,4vw,66px);display:flex;align-items:center;justify-content:space-between}.topbar-status{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:14px;font-weight:600}.topbar-status em{color:var(--line);font-style:normal}.how-button{border:0;background:none;color:var(--muted);font-size:14px;font-weight:700}.how-button span{color:var(--blue);font-size:15px}.content{max-width:1060px;margin:0 auto;padding:clamp(48px,7vw,88px) clamp(21px,4vw,66px) 80px}.page-heading{max-width:760px;margin-bottom:38px}.eyebrow{margin:0;color:var(--blue);font:500 14px 'DM Mono',monospace;letter-spacing:.14em;text-transform:uppercase}.page-heading h1{margin:16px 0 18px;font:600 clamp(42px,6vw,72px)/.98 'Source Serif 4',Georgia,serif;letter-spacing:-.055em}.page-heading h1 em{font-weight:500;color:var(--blue)}.page-heading>p:last-child{max-width:620px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.wizard-card{background:var(--card);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}.card-top{padding:19px clamp(20px,3vw,32px);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);color:var(--muted);font:500 14px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em}.card-top .signal{color:var(--success);letter-spacing:0;text-transform:none}.card-main{padding:clamp(22px,4vw,42px)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.field{min-width:0}.field.wide{grid-column:1/-1}.field label{display:block;margin-bottom:8px;font-size:14px;font-weight:800}.field label span{display:block;margin-top:3px;color:var(--muted);font-size:14px;font-weight:500}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:11px 12px;font-size:14px;outline:none;transition:.18s}.field textarea{min-height:94px;resize:vertical;line-height:1.55}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-wash)}.form-hint{grid-column:1/-1;display:flex;gap:11px;padding:13px 14px;border-left:2px solid var(--blue);border-radius:0 8px 8px 0;background:var(--blue-wash);color:var(--ink);font-size:14px;line-height:1.55}.form-hint span{color:var(--blue);font-size:15px}.actions{padding:18px clamp(20px,3vw,32px);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.actions small{color:var(--muted);font-size:14px;line-height:1.45;max-width:390px}.button-primary,.button-secondary{display:inline-flex;align-items:center;justify-content:center;gap:14px;border-radius:8px;padding:12px 15px;font-size:14px;font-weight:800;transition:.18s}.button-primary{border:0;background:var(--blue);color:#fff;box-shadow:0 8px 18px rgba(77,101,238,.24)}.button-primary:hover{background:var(--blue-deep);transform:translateY(-2px)}.button-primary:disabled{opacity:.65;cursor:wait;transform:none}.button-secondary{border:1px solid var(--line);background:transparent;color:var(--ink)}.button-secondary:hover{border-color:var(--blue);color:var(--blue)}
.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.topic-card{position:relative;border:1px solid var(--line);background:var(--paper);border-radius:11px;padding:17px;text-align:left;color:var(--ink);min-height:148px;transition:.18s}.topic-card:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:0 8px 20px rgba(20,24,40,.06)}.topic-card.active{background:var(--blue-wash);border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.topic-card .topic-index{display:block;margin-bottom:17px;color:var(--blue);font:500 14px 'DM Mono',monospace}.topic-card b{display:block;font:600 20px/1.1 'Source Serif 4',Georgia,serif;letter-spacing:-.025em}.topic-card p{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.topic-card i{position:absolute;right:13px;top:13px;width:17px;height:17px;border:1px solid var(--line);border-radius:50%;font-style:normal}.topic-card.active i{background:var(--blue);border-color:var(--blue)}.topic-card.active i:after{content:'✓';position:absolute;inset:0;color:#fff;font-size:14px;text-align:center;line-height:15px}.analysis-summary{display:flex;gap:13px;margin:0 0 24px;padding:14px;border-radius:9px;background:var(--blue-wash);font-size:14px;line-height:1.6}.analysis-summary>span{color:var(--blue);font-size:17px}.analysis-summary p{margin:0}.subheading{display:flex;align-items:baseline;gap:9px;margin:28px 0 11px;font:600 19px 'Source Serif 4',Georgia,serif}.subheading small{color:var(--muted);font:500 14px Manrope,sans-serif}.tag-area{display:flex;flex-wrap:wrap;gap:8px}.tag{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:7px 10px;color:var(--ink);font-size:14px}.tag b{color:var(--blue);font-size:14px;text-transform:uppercase}.tag button{border:0;background:none;color:var(--muted);padding:0;font-size:14px;line-height:1}.add-tag{display:flex;gap:7px;margin-top:13px}.add-tag input{min-width:0;flex:1;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:7px;padding:9px 10px;font-size:14px}.add-tag button{border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--blue);padding:0 12px;font-weight:800;font-size:14px}.market-list{display:grid;gap:9px}.market-card{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:11px;align-items:start;padding:13px;border:1px solid var(--line);background:var(--paper);border-radius:9px}.market-card>i{color:var(--blue);font:500 14px 'DM Mono',monospace;font-style:normal;padding-top:2px}.market-card b{display:block;font-size:14px;line-height:1.35}.market-card p{margin:3px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.market-card a{color:var(--blue);font-size:14px;text-decoration:none;font-weight:700}.lsi-tags .tag{background:var(--blue-wash);border-color:transparent}.outline-list{display:grid;gap:10px}.outline-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.outline-item>i{color:var(--blue);font:500 14px 'DM Mono',monospace;font-style:normal;padding-top:4px}.outline-item input{width:100%;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--ink);padding:2px 0 6px;font:600 18px 'Source Serif 4',Georgia,serif;outline:none}.outline-item input:focus{border-color:var(--blue)}.outline-item textarea{width:100%;border:0;background:transparent;color:var(--muted);resize:vertical;min-height:40px;padding:0;font-size:14px;line-height:1.5;outline:none}.outline-item small{display:block;margin-top:7px;color:var(--blue);font-size:14px}.article-preview{max-width:760px}.article-preview h1{font:600 clamp(34px,4.5vw,52px)/1.04 'Source Serif 4',Georgia,serif;letter-spacing:-.05em;margin:0 0 22px}.article-preview h2{font:600 28px 'Source Serif 4',Georgia,serif;margin:29px 0 10px}.article-preview h3{font:600 21px 'Source Serif 4',Georgia,serif;margin:22px 0 8px}.article-preview p,.article-preview li{color:var(--muted);font-size:14px;line-height:1.75}.article-preview ul{padding-left:21px}.article-preview a{color:var(--blue)}.article-info{margin-top:28px;padding:13px;border-left:2px solid var(--blue);background:var(--blue-wash);font-size:14px;line-height:1.55}.article-info a{color:var(--blue)}.empty-state{padding:8px 0}.empty-state h2{font:600 36px/1.05 'Source Serif 4',Georgia,serif;letter-spacing:-.04em;margin:0 0 13px}.empty-state p{color:var(--muted);font-size:14px;line-height:1.6}.source-note{display:flex;gap:12px;margin-top:26px;max-width:770px;padding:0 5px;color:var(--muted)}.source-note span{color:var(--blue);font-size:17px}.source-note p{margin:0;font-size:14px;line-height:1.65}.source-note b{color:var(--ink)}
.setup-dialog{width:calc(100% - 40px);max-width:455px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);padding:34px;box-shadow:0 25px 70px rgba(0,0,0,.35)}.setup-dialog::backdrop{background:rgba(8,10,14,.5);backdrop-filter:blur(5px)}.dialog-close{float:right;border:0;background:transparent;color:var(--muted);font-size:25px;line-height:1}.setup-dialog h2{margin:14px 0 19px;font:600 38px/1 'Source Serif 4',Georgia,serif;letter-spacing:-.045em}.setup-dialog p{color:var(--muted);font-size:14px;line-height:1.65}.setup-dialog code,.setup-dialog pre{font-family:'DM Mono',monospace}.setup-dialog pre{white-space:pre-wrap;padding:12px;background:var(--paper);border-radius:8px;color:var(--blue);font-size:14px}.toast{position:fixed;z-index:5;bottom:24px;left:50%;max-width:min(520px,calc(100% - 36px));transform:translate(-50%,150px);padding:12px 15px;border-radius:9px;background:var(--rail);color:#fff;font-size:14px;box-shadow:0 12px 32px rgba(0,0,0,.25);transition:transform .25s}.toast.show{transform:translate(-50%,0)}
@media(max-width:900px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.rail{padding-left:12px;padding-right:12px}.steps button{gap:8px}.content{padding-left:34px;padding-right:34px}}@media(max-width:680px){.app-shell{display:block}.rail{position:static;width:100%;height:auto;padding:13px 17px;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.brand{padding:0}.new-button{width:auto;padding:9px 10px;font-size:0}.new-button span{font-size:18px;margin:0}.steps,.rail-bottom{display:none}.topbar{height:55px;padding:0 20px}.topbar-status{font-size:14px;gap:6px}.how-button{font-size:14px}.content{padding:45px 20px 60px}.page-heading{margin-bottom:29px}.form-grid,.option-grid{grid-template-columns:1fr}.actions{flex-direction:column;align-items:stretch}.actions .button-primary,.actions .button-secondary{width:100%}.actions small{max-width:none}.card-main{padding:24px 20px}.market-card{grid-template-columns:22px minmax(0,1fr)}.market-card a{grid-column:2}.source-note{margin-top:21px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}
/* Automatic article completion: concise primary action, details on demand. */
.article-review-action{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 6px;min-width:0}
.article-review-action .button-primary{min-height:44px;max-width:100%;white-space:normal;text-align:center}
.article-review-action small{color:var(--muted);font-size:14px;line-height:1.7;max-width:300px}
.article-review-action button:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.article-review-status[data-review-status=passed]{background:color-mix(in srgb,var(--success) 14%,var(--paper))}
.article-review-status[data-review-status=processing]{background:var(--blue-wash)}
@media(max-width:680px){.article-review-action{align-items:stretch;flex-direction:column;gap:9px}.article-review-action button{width:100%}.article-review-action small{max-width:none}}
/* Narrow layouts have no safe outside gutter for floating scroll buttons. */
@media(max-width:1024px){body #articleScrollControls{position:static;display:flex;justify-content:flex-end;width:fit-content;max-width:calc(100% - 32px);margin:12px 16px 16px auto;padding:7px;gap:7px;border-radius:12px;box-shadow:none;backdrop-filter:none}body #articleScrollControls button{border-radius:8px;box-shadow:none}}
