@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700;800&display=swap");:root{--bg-base:#f5f3ee;--bg-wash:#e5edf3;--surface:rgba(255,255,255,0.82);--surface-strong:rgba(255,255,255,0.94);--line:rgba(25,49,68,0.16);--line-strong:rgba(25,49,68,0.28);--text:#102538;--muted:#4a5f70;--primary:#1f5f94;--primary-strong:#12446d;--accent:#d6672f;--accent-soft:#f7dccf;--ok:#1b8755;--shadow-soft:0 16px 38px rgba(16,37,56,0.12);--shadow-hard:0 26px 55px rgba(16,37,56,0.16)}*{box-sizing:border-box}body,html{min-height:100%}body{color:var(--text);font-family:Manrope,PingFang SC,Hiragino Sans GB,sans-serif;background:radial-gradient(circle at 12% 0,#ffddc3 0,transparent 34%),radial-gradient(circle at 86% 0,#d0e6f8 0,transparent 30%),linear-gradient(150deg,var(--bg-base),var(--bg-wash))}body,h1,h2,h3,h4,h5,p{margin:0}p{line-height:1.6}.app-shell{width:min(1240px,92vw);margin:0 auto;padding:2.4rem 0 3rem;display:grid;grid-gap:1rem;gap:1rem}.hero{position:relative;overflow:hidden;display:grid;grid-gap:.95rem;gap:.95rem;padding:1.25rem;border-radius:26px;border:1px solid var(--line);background:linear-gradient(120deg,rgba(255,255,255,.92),rgba(255,246,241,.9));box-shadow:var(--shadow-hard)}.hero:after{content:"";position:absolute;top:-80px;right:-80px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(214,103,47,.15),rgba(214,103,47,0));pointer-events:none}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.74rem;font-weight:700;color:var(--primary-strong)}.hero-chips{display:flex;flex-wrap:wrap;gap:.42rem}.hero-actions{display:flex;align-items:center;gap:.55rem}.hero-chip{border:1px solid var(--line);border-radius:999px;padding:.25rem .55rem;font-size:.73rem;font-weight:700;color:#274359;background:rgba(255,255,255,.86)}.hero-chip-ok{border-color:rgba(27,135,85,.42);color:var(--ok);background:rgba(236,251,244,.9)}.logout-btn{min-height:36px;border:1px solid rgba(25,49,68,.24);border-radius:999px;padding:.32rem .72rem;font-size:.74rem;font-weight:700;color:#1a425f;background:rgba(255,255,255,.86);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.logout-btn:hover:not(:disabled){background:#fff;border-color:rgba(31,95,148,.35);transform:translateY(-1px)}.logout-btn:disabled{opacity:.65;cursor:not-allowed}.hero-main{display:grid;grid-template-columns:1.05fr 1fr;grid-gap:.8rem;gap:.8rem;align-items:stretch}.hero-copy h1{font-family:Sora,Manrope,sans-serif;font-size:clamp(2rem,3.3vw,3.1rem);line-height:1.08;margin-bottom:.55rem}.hero-copy p{max-width:50ch;color:var(--muted);font-size:.98rem}.hero-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.58rem;gap:.58rem}.metric-card{border:1px solid var(--line);border-radius:16px;padding:.72rem .78rem;background:rgba(255,255,255,.84);display:grid;grid-gap:.2rem;gap:.2rem}.metric-card-highlight{background:linear-gradient(140deg,rgba(18,68,109,.93),rgba(31,95,148,.88));border-color:rgba(255,255,255,.24)}.metric-label{font-size:.76rem;letter-spacing:.04em;text-transform:uppercase;color:#567188;font-weight:700}.metric-card-highlight .metric-label{color:rgba(238,247,255,.84)}.metric-value{font-family:Sora,Manrope,sans-serif;font-size:1rem;font-weight:700;color:#1a3247}.metric-card-highlight .metric-value{color:#fff}.metric-note{color:#5b7081;font-size:.8rem}.metric-card-highlight .metric-note{color:rgba(238,247,255,.92)}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.33fr) minmax(0,1fr);grid-gap:1rem;gap:1rem;align-items:start}.workspace-primary,.workspace-secondary{display:grid;grid-gap:.9rem;gap:.9rem}.panel{border:1px solid var(--line);border-radius:22px;padding:1.15rem;background:var(--surface);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.compose-panel{border-top:4px solid rgba(31,95,148,.35)}.analyzer-panel{border-top:4px solid rgba(214,103,47,.42)}.panel-head{margin-bottom:.9rem}.panel-head h2{font-family:Sora,Manrope,sans-serif;font-size:1.08rem;margin-bottom:.25rem}.panel-head p{color:var(--muted);font-size:.9rem}.stack-form{display:grid;grid-gap:.78rem;gap:.78rem}.form-slab{border:1px solid var(--line);border-radius:16px;padding:.72rem;background:rgba(255,255,255,.78);display:grid;grid-gap:.55rem;gap:.55rem}.form-slab h3{font-family:Sora,Manrope,sans-serif;font-size:.88rem;color:#274359}.field-wrap{display:grid;grid-gap:.34rem;gap:.34rem}.field-wrap.inline{grid-template-columns:auto 72px;align-items:center;justify-content:start;gap:.56rem}label,legend{font-size:.83rem;color:#294055;font-weight:700}button,input,textarea{font:inherit}input,textarea{min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface-strong);color:var(--text);padding:.6rem .72rem}input::placeholder,textarea::placeholder{color:#6a7f8f}input[type=file]{padding-block:.5rem}textarea{min-height:96px;resize:vertical}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid rgba(31,95,148,.5);outline-offset:1px}.mode-row{display:flex;flex-wrap:wrap;gap:.58rem}.mode-chip{min-height:44px;border:1px solid var(--line);background:rgba(255,255,255,.8);border-radius:999px;padding:.46rem .82rem;font-size:.84rem;font-weight:700;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.mode-chip.active{border-color:rgba(31,95,148,.45);box-shadow:inset 0 0 0 1px rgba(31,95,148,.32);background:rgba(238,248,255,.9)}.mode-chip input{margin:0}.toggle-fieldset{border:1px dashed var(--line-strong);border-radius:14px;padding:.66rem;display:flex;flex-wrap:wrap;gap:.62rem}.field-help{margin:-.12rem 0 0;width:100%;font-size:.76rem;color:#597489}.toggle-item{min-height:40px;font-size:.82rem;font-weight:600;display:inline-flex;align-items:center;gap:.32rem}.toggle-item input{margin:0}.workflow-progress{border:1px solid var(--line);border-radius:16px;padding:.68rem .72rem;background:rgba(238,248,255,.56);margin-bottom:.82rem}.workflow-progress-title{font-size:.8rem;font-weight:800;color:#2a4a62;margin-bottom:.44rem}.workflow-progress-list{margin:0;padding:0;list-style:none;display:grid;grid-gap:.42rem;gap:.42rem}.workflow-progress-item{border:1px solid rgba(25,49,68,.15);border-radius:12px;background:rgba(255,255,255,.8);padding:.45rem .52rem;display:grid;grid-template-columns:24px 1fr;grid-gap:.45rem;gap:.45rem;align-items:center}.workflow-progress-item p{font-size:.82rem;font-weight:700}.workflow-progress-item small{font-size:.74rem;color:#5b7081}.workflow-progress-item.is-active{border-color:rgba(31,95,148,.36);box-shadow:inset 0 0 0 1px rgba(31,95,148,.2)}.workflow-progress-index{width:24px;height:24px;border-radius:999px;border:1px solid rgba(31,95,148,.3);font-size:.72rem;font-weight:800;color:var(--primary-strong);background:rgba(238,248,255,.9);display:inline-flex;align-items:center;justify-content:center}.cta-btn{min-height:46px;border:none;border-radius:14px;padding:.66rem 1rem;color:#fff;background:linear-gradient(140deg,var(--accent),#c15521);cursor:pointer;font-weight:800;letter-spacing:.01em;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.cta-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 24px rgba(193,85,33,.26)}.cta-btn.muted{background:linear-gradient(140deg,#2e6088,#244c6e)}.cta-btn.muted:hover:not(:disabled){box-shadow:0 12px 24px rgba(36,76,110,.24)}.cta-btn:disabled{opacity:.6;cursor:not-allowed}.submit-progress-card{margin-top:.35rem;border:1px solid rgba(31,95,148,.24);border-radius:12px;padding:.52rem .58rem .58rem;background:linear-gradient(145deg,rgba(239,248,255,.9),rgba(255,255,255,.92));display:grid;grid-gap:.36rem;gap:.36rem}.submit-progress-head{display:flex;justify-content:space-between;align-items:baseline;font-size:.75rem;color:#325975}.submit-progress-head strong{font-size:.82rem;color:#1d4260}.submit-progress-track{position:relative;height:8px;border-radius:999px;background:rgba(29,66,96,.12);overflow:hidden}.submit-progress-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(115deg,var(--primary-strong),#3a84bc 55%,#5eb1cf);box-shadow:0 0 0 1px rgba(26,71,102,.08);animation:submit-progress-glow 1.2s ease-in-out infinite;transition:width .42s ease}@keyframes submit-progress-glow{0%,to{filter:saturate(.94) brightness(.98)}50%{filter:saturate(1.1) brightness(1.05)}}@media (prefers-reduced-motion:reduce){.submit-progress-fill{animation:none}}.error-text{color:#aa3b22;margin-top:.7rem;font-size:.88rem}.submit-meta{margin-top:-.2rem;font-size:.8rem;color:#51697b}.result-panel{margin-top:.9rem;display:grid;grid-gap:.78rem;gap:.78rem}.result-panel h2{font-family:Sora,Manrope,sans-serif;font-size:1.06rem}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:1.2rem}.auth-panel{width:min(520px,100%);border:1px solid rgba(25,49,68,.16);border-radius:26px;padding:1.35rem;background:radial-gradient(circle at 100% 0,rgba(214,103,47,.12),transparent 42%),radial-gradient(circle at 0 100%,rgba(31,95,148,.12),transparent 36%),rgba(255,255,255,.9);box-shadow:0 22px 46px rgba(16,37,56,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;grid-gap:.85rem;gap:.85rem}.auth-head{display:grid;grid-gap:.42rem;gap:.42rem}.auth-eyebrow{font-size:.73rem;letter-spacing:.14em;text-transform:uppercase;color:#2f5d80;font-weight:700}.auth-head h1{font-family:Sora,Manrope,sans-serif;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1.08}.auth-head p{color:#4d6679;font-size:.92rem}.auth-form{display:grid;grid-gap:.7rem;gap:.7rem}.auth-field{display:grid;grid-gap:.4rem;gap:.4rem}.auth-field label{font-size:.84rem;font-weight:700;color:#22445e}.auth-field input{min-height:46px;border-radius:12px;border:1px solid rgba(31,95,148,.24);padding:.58rem .66rem;font-size:.95rem;background:rgba(255,255,255,.92)}.auth-field input:focus-visible{outline:2px solid rgba(31,95,148,.3);outline-offset:1px}.auth-submit{margin-top:.1rem}.auth-hint{min-height:1.3rem;font-size:.82rem;color:#4f6679}.result-overview{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.84);padding:.68rem .72rem;display:grid;grid-gap:.48rem;gap:.48rem}.result-overview h3{font-size:.9rem}.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.44rem;gap:.44rem}.overview-card{border:1px solid rgba(25,49,68,.16);border-radius:12px;background:rgba(255,255,255,.82);padding:.45rem .52rem;display:grid;grid-gap:.14rem;gap:.14rem}.overview-card-emphasis{border-color:rgba(214,103,47,.36);background:linear-gradient(150deg,rgba(255,241,233,.95),rgba(255,255,255,.9))}.overview-label{font-size:.73rem;color:var(--muted)}.overview-value{font-size:.86rem;font-weight:800;color:#183348}.title-board{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.88);padding:.66rem .72rem}.title-board h3{font-size:.92rem}.title-board ul{margin:.5rem 0 0;padding-left:1rem;display:grid;grid-gap:.28rem;gap:.28rem}.badge{display:inline-block;font-size:.7rem;font-weight:700;padding:.14rem .44rem;border-radius:999px;border:1px solid rgba(31,95,148,.3);color:var(--primary-strong);margin-right:.44rem;background:rgba(238,248,255,.8)}.platform-block{display:grid;grid-gap:.64rem;gap:.64rem}.platform-block h3{font-family:Sora,Manrope,sans-serif;font-size:.98rem}.platform-meta{margin-top:-.42rem;font-size:.79rem;color:#4f6a7c}.variant-grid{display:grid;grid-gap:.64rem;gap:.64rem;grid-template-columns:repeat(auto-fit,minmax(238px,1fr))}.variant-card{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.88);padding:.72rem;display:grid;grid-gap:.5rem;gap:.5rem}.variant-card h3{font-family:Sora,Manrope,sans-serif;font-size:.95rem}.variant-card-head{display:grid;grid-gap:.3rem;gap:.3rem}.variant-tag-line{margin:0;padding:.35rem .45rem;border-radius:10px;border:1px solid rgba(31,95,148,.24);background:rgba(238,248,255,.72);display:flex;justify-content:space-between;gap:.5rem;align-items:center;font-size:.75rem;color:#3d5a6f}.variant-tag-line strong{color:#1a4967;font-size:.78rem}.variant-full-script,.variant-sections{border:1px solid rgba(25,49,68,.12);border-radius:10px;padding:.5rem;background:rgba(255,255,255,.76)}.variant-full-script h4,.variant-sections h4{font-size:.75rem;margin-bottom:.3rem;color:#33526a}.variant-full-script p{margin:0;font-size:.87rem;white-space:pre-wrap;line-height:1.55}.variant-card dl{margin:0;display:grid;grid-gap:.34rem;gap:.34rem}.variant-card dl>div{border:1px solid rgba(25,49,68,.12);border-radius:10px;padding:.38rem .46rem;background:rgba(255,255,255,.76)}.variant-card dt{font-size:.72rem;color:var(--muted);letter-spacing:.02em}.variant-card dd{margin:.07rem 0 0;font-size:.86rem}.hints-panel{border-top:1px solid var(--line);padding-top:.54rem;display:grid;grid-gap:.5rem;gap:.5rem}.hints-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.hints-panel h4{font-size:.86rem}.hints-progress{font-size:.74rem;font-weight:800;color:#2a5879}.hints-progress-track{border-radius:999px;height:8px;border:1px solid rgba(31,95,148,.24);background:rgba(238,248,255,.74);overflow:hidden}.hints-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(120deg,#2e6c9a,#d6672f);transition:width .18s ease}.hints-actions{display:flex;align-items:center;justify-content:space-between;gap:.56rem}.hints-action-toggle{min-height:44px;display:inline-flex;align-items:center;gap:.42rem;font-size:.78rem;font-weight:700;color:#2a4961}.hints-action-toggle input{margin:0}.hints-reset-btn{min-height:38px;border-radius:10px;border:1px solid rgba(31,95,148,.3);background:rgba(238,248,255,.86);color:#234a69;font-size:.74rem;font-weight:700;padding:.35rem .6rem;cursor:pointer}.hints-reset-btn:disabled{opacity:.5;cursor:not-allowed}.hints-priority-grid{display:grid;grid-gap:.42rem;gap:.42rem}.hints-priority{border:1px solid rgba(25,49,68,.14);border-radius:12px;background:rgba(255,255,255,.72);padding:.45rem .5rem;display:grid;grid-gap:.25rem;gap:.25rem}.hints-priority-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.hints-priority-head span{font-size:.72rem;font-weight:700;color:#4a667d}.hints-priority-label{margin:0;font-size:.72rem;font-weight:800;letter-spacing:.01em}.hints-priority-p0 .hints-priority-label{color:#9e3c21}.hints-priority-p1 .hints-priority-label{color:#295e84}.hints-priority-p2 .hints-priority-label{color:#2f6650}.hints-panel h5{font-size:.74rem;color:var(--muted);margin-bottom:.14rem}.hints-checklist{margin:0;padding:0;list-style:none;display:grid;grid-gap:.22rem;gap:.22rem;font-size:.8rem}.hints-checkitem{min-height:44px;display:flex;align-items:center;gap:.42rem;border:1px solid rgba(25,49,68,.13);border-radius:10px;background:rgba(255,255,255,.8);padding:.38rem .48rem;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.hints-checkitem input{margin:0}.hints-checkitem span{line-height:1.55}.hints-checkitem:hover{border-color:rgba(31,95,148,.28);background:rgba(238,248,255,.76)}.hints-checkitem.is-done{border-color:rgba(27,135,85,.33);background:rgba(236,251,244,.86)}.hints-checkitem.is-done span{color:#2d5743;text-decoration:line-through}.hints-empty{margin:0;font-size:.78rem;color:#577084}.hints-keywords{margin:0;font-size:.75rem;color:#456178}.analysis-result{margin-top:.85rem;display:grid;grid-gap:.68rem;gap:.68rem}.analyzer-cadence{border:1px dashed var(--line-strong);border-radius:14px;background:rgba(255,255,255,.76);padding:.65rem .72rem;margin-bottom:.82rem}.analyzer-cadence h3{font-family:Sora,Manrope,sans-serif;font-size:.86rem;margin-bottom:.35rem}.analyzer-cadence ul{margin:0;padding-left:1rem;display:grid;grid-gap:.22rem;gap:.22rem;font-size:.8rem;color:#385469}.upload-form{margin-top:0;padding-top:0;border-top:none}.pipeline-tip{border:1px dashed var(--line-strong);border-radius:12px;padding:.55rem .64rem;background:rgba(255,255,255,.78);display:grid;grid-gap:.34rem;gap:.34rem}.pipeline-tip p{font-size:.81rem;color:var(--muted)}.chip-row{display:flex;flex-wrap:wrap;gap:.42rem}.chip{font-size:.74rem;font-weight:700;padding:.24rem .5rem;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.88)}.chip-ok{border-color:rgba(27,135,85,.38);color:var(--ok)}.chip-warn{border-color:rgba(214,103,47,.4);color:#9a4a23}.structure-grid{display:grid;grid-gap:.52rem;gap:.52rem}.mini-card{border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.88);padding:.56rem .66rem;display:grid;grid-gap:.2rem;gap:.2rem}.mini-card h4{font-size:.79rem}.mini-card p{font-size:.82rem;color:#315064}.rewrite-box{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.9);padding:.6rem .7rem}.rewrite-box h3{font-size:.87rem;margin-bottom:.32rem}.rewrite-box ul{margin:0;padding-left:1rem;display:grid;grid-gap:.2rem;gap:.2rem;font-size:.82rem}.cadence-panel{border-style:dashed;border-color:rgba(25,49,68,.26);background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(238,248,255,.78))}.cadence-list{margin:0;padding-left:1rem;display:grid;grid-gap:.32rem;gap:.32rem;font-size:.86rem;color:#334f62}@media (prefers-reduced-motion:no-preference){.hero,.panel{animation:panel-rise .32s ease both}.workspace-secondary .panel:last-child{animation-delay:70ms}}@keyframes panel-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1080px){.hero-main{grid-template-columns:1fr}.hero-copy p{max-width:none}.hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:960px){.app-shell{width:min(860px,94vw)}.workspace-grid{grid-template-columns:1fr}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.app-shell{padding-top:1.3rem;padding-bottom:2.1rem}.hero,.panel{border-radius:18px;padding:.92rem}.hero-actions,.hero-top{align-items:flex-start;flex-direction:column}.hero-actions{width:100%}.field-wrap.inline,.hero-metrics{grid-template-columns:1fr}.field-wrap.inline{justify-content:stretch}.mode-row{display:grid;grid-template-columns:1fr}.workflow-progress-item{grid-template-columns:22px 1fr;gap:.38rem}.hints-actions,.hints-top{flex-direction:column;align-items:flex-start}.overview-grid,.variant-grid{grid-template-columns:1fr}}