:root{--nav:#111827;--bg:#f4f6f9;--line:#e2e7ee;--text:#182235;--muted:#697589;--blue:#2563eb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,system-ui,sans-serif}.app>aside{position:fixed;inset:0 auto 0 0;width:235px;background:var(--nav);color:#b4bdca;padding:20px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;padding:0 8px 20px}.brand i{display:grid;place-items:center;width:34px;height:34px;background:var(--blue);color:#fff;border-radius:7px}.brand small,.brand strong,.project small,.project span,.project strong{display:block}.brand strong{color:#fff}.brand small,.project small,.project span{font-size:10px;color:#7f8ca1}.project{padding:12px;border:1px solid #313b4b;border-radius:7px;background:#192231}.project strong{color:#fff;margin:4px 0}.app nav{margin-top:20px}.app nav p{font-size:10px;font-weight:700;color:#6d798d;text-transform:uppercase;padding:0 10px}.app nav a{display:flex;gap:10px;align-items:center;color:#b4bdca;text-decoration:none;padding:10px;border-radius:6px}.app nav a:hover{background:#202c3e;color:#fff}.principle{margin-top:auto;border-top:1px solid #2a3444;padding:16px 8px;font-size:9px;color:#657188;line-height:1.8}.principle b{color:#9aa6b8}.workspace{margin-left:235px}.workspace>header{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:15px;justify-content:flex-end;padding:0 30px}.search{margin-right:auto;width:340px;border:1px solid var(--line);border-radius:6px;padding:8px 10px;color:#8893a3;display:flex;gap:8px}.avatar{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#dbeafe;color:#1d4ed8;font-weight:700;font-size:11px}main{padding:30px;max-width:1450px;margin:auto}.title{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.title h1{font-size:26px;margin:0 0 5px}.title p{margin:0;color:var(--muted)}.eyebrow{font-size:10px!important;font-weight:800;letter-spacing:.1em}.button{background:var(--blue);color:#fff;text-decoration:none;border:0;border-radius:6px;padding:9px 13px;font-weight:650}.metrics{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:18px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:8px}.card{padding:18px}.card small,.card span,.card strong{display:block}.card small,.card span{color:var(--muted);font-size:11px}.card strong{font-size:27px;margin:4px 0}.grid{display:grid;grid-template-columns:1.3fr 1fr;grid-gap:18px;gap:18px}.panel{overflow:hidden}.panel h2{font-size:14px;margin:0}.panel-head{padding:16px 18px;border-bottom:1px solid var(--line)}.row{display:flex;gap:10px;align-items:center;padding:14px 18px;border-bottom:1px solid #edf0f4;color:inherit;text-decoration:none}.row:last-child{border:0}.row>div{flex:1 1}.row small,.row span,.row strong{display:block}.row strong{font-size:12px}.row small,.row span{font-size:11px;color:var(--muted)}.badge{display:inline-block;border-radius:4px;padding:3px 6px;font-size:9px;font-weight:800;background:#eef2f6;color:#526071}.badge.green{background:#e8f7ee;color:#17733c}.badge.amber{background:#fff2d9;color:#9d5d08}.badge.blue{background:#e8f1ff;color:#245bc7}.toolbar{display:flex;gap:8px;padding:13px;border-bottom:1px solid var(--line)}.input{border:1px solid var(--line);padding:8px 10px;border-radius:5px;color:var(--muted);min-width:280px}table{width:100%;border-collapse:collapse;text-align:left}th{padding:10px 14px;background:#fafbfc;color:var(--muted);font-size:10px;text-transform:uppercase}td{padding:12px 14px;border-top:1px solid #edf0f4;font-size:12px}.id{color:#245bc7;font-weight:750;text-decoration:none}.sub{display:block;margin-top:2px}.back,.sub{color:var(--muted)}.back{display:inline-block;text-decoration:none;margin-bottom:18px}.detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.detail-head h1{margin:7px 0 3px}.detail-head p{margin:0;color:var(--muted)}.detail{display:grid;grid-template-columns:2fr 1fr;grid-gap:18px;gap:18px}.section{padding:19px;margin-bottom:18px}.section p.description{font-size:15px;line-height:1.7}.section dl{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.section dl div{padding:12px 0;border-bottom:1px solid var(--line)}dt{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700}dd{margin:3px 0}.version{border-left:2px solid #dce3ec;padding:8px 12px;margin-top:8px}.version span,.version strong{display:block}.version span{font-size:11px;color:var(--muted)}.alert{background:#fff7e5;border:1px solid #f1d494;color:#8c5709;padding:13px 16px;border-radius:7px;margin-bottom:17px}.steps{padding-left:22px}.steps li{padding:10px;border-bottom:1px solid var(--line)}.impact{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:18px}.impact div{background:#fff;padding:18px;text-align:center}.impact small,.impact strong{display:block}.impact small{color:var(--muted);font-size:9px}.impact strong{font-size:20px;margin-top:4px}@media(max-width:900px){.metrics{grid-template-columns:1fr 1fr}.detail,.grid{grid-template-columns:1fr}}@media(max-width:700px){.app>aside{display:none}.workspace{margin:0}main{padding:20px}.impact,.metrics{grid-template-columns:1fr}.search{width:65%}.title{align-items:flex-start;gap:12px}.table-wrap{overflow:auto}}.logout{display:grid;place-items:center;border:0;background:transparent;color:var(--muted);padding:7px;border-radius:5px;cursor:pointer}.logout:hover{background:#eef2f6;color:var(--text)}.auth-page{min-height:100vh;max-width:none;margin:0;padding:clamp(28px,7vw,90px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,470px);grid-gap:clamp(45px,9vw,130px);gap:clamp(45px,9vw,130px);align-items:center;background:radial-gradient(circle at 15% 10%,#244269 0,transparent 35%),linear-gradient(135deg,#101827 0 52%,#f4f6f9 52%)}.auth-intro{max-width:620px;color:#cdd7e6}.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:70px}.auth-brand i{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;background:var(--blue);color:#fff}.auth-brand small,.auth-brand strong{display:block}.auth-brand strong{font-size:17px;color:#fff}.auth-brand small{font-size:11px;color:#8594aa}.auth-intro .eyebrow{color:#76a8ff;letter-spacing:.15em}.auth-intro h1{font-size:clamp(38px,4vw,62px);line-height:1.04;letter-spacing:-.04em;color:#fff;margin:14px 0 22px}.auth-intro>p:not(.eyebrow){font-size:16px;line-height:1.75;max-width:560px}.auth-intro ul{padding:0;margin:35px 0 0;list-style:none;display:grid;grid-gap:13px;gap:13px}.auth-intro li{display:flex;align-items:center;gap:10px}.auth-intro li svg{color:#6ea0f9}.auth-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(28px,4vw,44px);box-shadow:0 24px 70px #0b12202a}.auth-lock{width:44px;height:44px;display:grid;place-items:center;background:#e8f1ff;color:#245bc7;border-radius:10px}.auth-card h2{font-size:25px;margin:19px 0 6px}.auth-card>p{color:var(--muted);margin:0 0 23px}.auth-form{display:grid;grid-gap:15px;gap:15px}.auth-form label{font-size:12px;font-weight:700;color:#3b4658}.auth-form input{display:block;width:100%;margin-top:7px;border:1px solid #d6dde7;border-radius:7px;padding:11px 12px;font:inherit}.auth-form input:focus{outline:2px solid #bfdbfe;border-color:var(--blue)}.auth-form button{border:0;border-radius:7px;padding:11px;background:var(--blue);color:#fff;font-weight:750;cursor:pointer}.auth-form small{color:var(--muted)}.auth-alert{padding:11px 13px;border-radius:7px;margin-bottom:18px;font-size:12px}.auth-alert.error{background:#fff0f0;color:#a72828;border:1px solid #f5c9c9}.auth-alert.success{background:#edf9f1;color:#176b37;border:1px solid #c8ead3}.register-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:19px}.register-panel summary{color:#245bc7;font-weight:700;cursor:pointer}.register-panel[open] summary{margin-bottom:18px}@media(max-width:850px){.auth-page{grid-template-columns:1fr;background:linear-gradient(180deg,#101827 0 38%,#f4f6f9 38%);padding:30px 20px}.auth-intro{padding:10px}.auth-brand{margin-bottom:45px}.auth-intro h1{font-size:38px}.auth-intro ul{display:none}.auth-card{width:100%;max-width:520px;justify-self:center}}.password-input{display:block;position:relative}.password-input input{padding-right:44px}.password-input button{position:absolute;right:5px;top:12px;width:34px;height:34px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);padding:0}.password-input button:hover{background:#eef2f6;color:var(--text)}.forgot-link{justify-self:end;margin-top:-8px;color:#245bc7;font-size:12px;text-decoration:none;font-weight:650}.auth-simple{min-height:100vh;max-width:none;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 15% 10%,#244269 0,transparent 35%),#101827}.auth-simple .auth-card{width:min(100%,470px)}.auth-back{display:block;margin-top:20px;text-align:center;color:#245bc7;text-decoration:none;font-weight:650;font-size:12px}.language-switcher{display:flex;padding:2px;border:1px solid var(--line);border-radius:7px;background:#f5f7fa}.language-switcher button{border:0;border-radius:5px;background:transparent;color:var(--muted);padding:5px 8px;font-size:10px;font-weight:800;cursor:pointer}.language-switcher button.active{background:#fff;color:var(--blue);box-shadow:0 1px 3px #1520331f}.auth-language{display:flex;justify-content:flex-end;margin:-8px 0 8px}.tree-root{position:relative}.tree-root-label{display:flex;align-items:center;gap:9px;width:max-content;margin:0 auto 22px;padding:10px 18px;border-radius:8px;background:#15243a;color:#fff;font-weight:800}.tree-root-label span{padding:3px 6px;border-radius:4px;background:#2c66de;font-size:9px;letter-spacing:.08em}.module-tree{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:start}.tree-module{min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}.tree-module-head{display:flex;justify-content:space-between;gap:10px;padding:13px 15px;background:#edf4ff;border-bottom:1px solid #d6e3f7;color:inherit;text-decoration:none}.tree-module-head:hover{background:#e3eeff}.tree-module-head span{color:#245bc7;font-weight:800}.tree-children{padding:7px}.tree-node{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px;border-radius:6px;color:inherit;text-decoration:none}.tree-node:hover{background:#f5f8fc}.tree-node div{min-width:0}.tree-node small,.tree-node strong{display:block}.tree-node strong{color:#245bc7;font-size:11px}.tree-node small{margin-top:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node>span{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.tree-node em{font-size:9px;color:var(--muted);font-style:normal}.tree-more{display:block;text-align:center;padding:9px;border-radius:6px;color:#245bc7;font-size:11px;font-weight:750;text-decoration:none}.tree-more:hover{background:#edf4ff}.generator-form{display:flex;align-items:flex-end;gap:12px}.generator-form label{flex:1 1}.generator-form select{display:block;width:100%;margin-top:7px;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff}.generated-cases{display:grid;grid-gap:14px;gap:14px}.generated-case{padding:18px}.generated-case-head{display:flex;align-items:flex-start;gap:12px}.generated-case-head>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e8f1ff;color:#245bc7;font-weight:800}.generated-case-head>div{flex:1 1}.generated-case h3{margin:0 0 3px}.generated-case pre{white-space:pre-wrap;margin:16px 0;padding:14px;border-radius:7px;background:#111827;color:#dbeafe;font:12px/1.7 ui-monospace,monospace}.generated-case .expected{padding:12px;border-left:3px solid #2c66de;background:#f7faff}.generated-case .expected p{margin:5px 0 0}.generated-case footer{display:flex;align-items:center;gap:8px;margin-top:14px}.generated-case footer span{padding:4px 7px;border-radius:4px;background:#eef2f6;font-size:10px;font-weight:750}.generated-case footer button{margin-left:auto;border:1px solid var(--line);border-radius:6px;padding:7px 10px}@media(max-width:1100px){.module-tree{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.module-tree{grid-template-columns:1fr}.generator-form{align-items:stretch;flex-direction:column}.generator-form .button{width:100%}}.operational-recap{margin:20px 0;padding:20px;border:1px solid #b9ddc7;border-radius:10px;background:#f4fbf6}.operational-recap-heading span{display:block;color:#287348;font-size:9px;font-weight:800;letter-spacing:.12em}.operational-recap-heading h3{margin:4px 0 0;font-size:17px;text-transform:none;color:var(--text)}.operational-recap>p{max-width:920px;margin:14px 0;line-height:1.7;color:#354a3e}.operational-checks{padding:13px 15px;border-radius:8px;background:#fff;border:1px solid #d6eadc;color:#354a3e;font-size:12px}.operational-checks strong{color:#245f3c}.operational-checks ul{margin:8px 0 0;padding-left:18px}.operational-checks li+li{margin-top:6px}.answer-recap{margin:20px 0;padding:20px;border:1px solid #cbdcf8;border-radius:10px;background:#f8fbff}.recap-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.recap-heading span:first-child{display:block;color:#53709d;font-size:9px;font-weight:800;letter-spacing:.12em}.recap-heading h3{margin:3px 0 0;font-size:17px;text-transform:none;color:var(--text)}.recap-summary{max-width:920px;margin:14px 0 18px;line-height:1.65;color:#42516a}.dependency-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.dependency-group{min-width:0;padding:14px;border:1px solid #dce6f4;border-radius:8px;background:#fff}.dependency-group.api-group{grid-column:1/-1}.dependency-group-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;color:#44546d;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.dependency-group-title b{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:12px;background:#e8f1ff;color:#245bc7;font-size:10px}.chip-list{display:flex;flex-wrap:wrap;gap:7px}.evidence-chip{display:inline-flex;align-items:center;max-width:100%;padding:6px 9px;border:1px solid #dbe3ee;border-radius:6px;background:#f8fafc;color:#42516a;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.requirement-chip{border-color:#cbdcf8;background:#edf4ff;color:#2058b5;text-decoration:none;font-weight:750}.api-chip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#f5f7fa;color:#26364d}.empty-evidence{color:var(--muted);font-size:11px}.interpretation-note{display:grid;grid-template-columns:120px 1fr;grid-gap:12px;gap:12px;margin-top:14px;padding:11px 13px;border-radius:7px;background:#edf3fb;color:#52627a;font-size:11px;line-height:1.55}.interpretation-note strong{color:#31435d}.dependency-note{line-height:1.6;margin-bottom:10px}.dependency-warning{margin-top:16px;padding:10px;border-radius:6px;background:#fff7e5;color:#81520b;font-size:11px;line-height:1.55}.section h3{font-size:11px;text-transform:uppercase;color:var(--muted);margin:16px 0 7px}@media(max-width:800px){.dependency-groups{grid-template-columns:1fr}.dependency-group.api-group{grid-column:auto}.interpretation-note{grid-template-columns:1fr}.recap-heading{align-items:center}}.picker-control,.requirement-picker{position:relative}.picker-control{margin-top:7px}.picker-control>input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit}.picker-control>input:focus{outline:2px solid #bfdbfe;border-color:var(--blue)}.picker-menu{position:absolute;z-index:40;top:calc(100% + 5px);left:0;right:0;max-height:320px;overflow:auto;border:1px solid #cbd5e1;border-radius:8px;background:#fff;box-shadow:0 15px 38px #15203326}.picker-menu button{width:100%;display:grid;grid-template-columns:minmax(125px,auto) 1fr;grid-gap:3px 12px;gap:3px 12px;padding:10px 12px;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;cursor:pointer}.picker-menu button:hover,.picker-menu button[aria-selected=true]{background:#edf4ff}.picker-menu button strong{color:#245bc7;font-size:11px}.picker-menu button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-menu button small{grid-column:2;color:var(--muted)}.picker-menu p{padding:14px;margin:0;color:var(--muted)}.generator-panel{overflow:visible;position:relative;z-index:5}.generator-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:112px}.generator-submit:disabled{cursor:wait;opacity:.7}.generator-submit i{width:13px;height:13px;border:2px solid #ffffff66;border-top-color:#fff;border-radius:50%;animation:generator-spin .7s linear infinite}@keyframes generator-spin{to{transform:rotate(1turn)}}.panel:has(.requirement-picker){overflow:visible;position:relative;z-index:5}.picker-summary{position:-webkit-sticky;position:sticky;top:0;z-index:2;padding:8px 12px;border-bottom:1px solid #dbe3ee;background:#f8fafc;color:var(--muted);font-size:10px;font-weight:750}.author-form{display:grid;grid-gap:18px;gap:18px;padding:22px}.author-form label{display:grid;grid-gap:7px;gap:7px;font-size:11px;font-weight:750;color:#34445c}.author-form input,.author-form select,.author-form textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px 12px;background:#fff;color:var(--text);font:inherit}.author-form textarea{resize:vertical;line-height:1.55}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.form-actions{display:flex;justify-content:flex-end;gap:10px}.button.secondary{background:#fff;color:#245bc7;border:1px solid #b9cef2}.prd-sections{display:grid;grid-gap:14px;gap:14px}.prd-sections fieldset{display:grid;grid-gap:13px;gap:13px;margin:0;padding:18px;border:1px solid #dce3ed;border-radius:9px}.prd-sections legend{padding:0 8px;color:#245bc7;font-weight:800}.paste-zone{min-height:100px;display:grid;place-items:center;grid-gap:5px;gap:5px;padding:15px;border:2px dashed #b8c7dc;border-radius:9px;background:#f8fbff;color:#61718a;text-align:center}.paste-zone:focus{outline:2px solid #bfdbfe;border-color:#2c66de}.paste-zone small{display:block;color:#245bc7}@media(max-width:700px){.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .button{width:100%}}