:root{--ink:#14292c;--ink-2:#22393c;--text:#2c3e41;--muted:#637275;--line:#e3e7ef;--bg:#fff;--bg-soft:#f5f7fb;--primary:#2b5a5e;--primary-ink:#fff;--primary-soft:#e6efef;--accent:#d97a3e;--warn:#e6a23c;--danger:#e2504c;--ok:#17a673;--radius:14px;--radius-sm:9px;--shadow:0 1px 2px #0b13240d, 0 8px 24px #0b13240f;--max:1160px;--font:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3,h4{color:var(--ink);letter-spacing:-.02em;margin:0 0 .5em;line-height:1.15}h1{font-size:calc(clamp(2rem,4.6vw,3.4rem))}h1,h2{font-weight:800}h2{font-size:calc(clamp(1.6rem,3vw,2.25rem))}h3{font-size:1.15rem;font-weight:700}p{margin:0 0 1em}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}img,svg{max-width:100%}.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 20px}.section{padding:calc(clamp(56px,8vw,96px)) 0}.section.soft{background:var(--bg-soft)}.section-head{max-width:680px;margin-bottom:40px}.lead{color:var(--muted);font-size:1.12rem}.eyebrow{font-family:var(--mono);letter-spacing:.04em;color:var(--primary);background:var(--primary-soft);border-radius:99px;margin-bottom:18px;padding:4px 10px;font-size:.78rem;display:inline-block}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-family:inherit;font-size:.95rem;font-weight:700;transition:transform .12s,background .15s,box-shadow .15s;display:inline-flex;text-decoration:none!important}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--primary);color:var(--primary-ink);box-shadow:0 6px 18px #2b5a5e47}.btn-primary:hover{background:#234a4d}.btn-ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn-ghost:hover{background:var(--bg-soft)}.btn-light{color:var(--ink);background:#fff}.btn-sm{border-radius:8px;padding:7px 12px;font-size:.85rem}.btn-danger{background:var(--danger);color:#fff}.btn[disabled]{opacity:.6;cursor:not-allowed}.grid{gap:20px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=960px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:24px}.card.hover{transition:border-color .15s,box-shadow .15s,transform .15s}.card.hover:hover{box-shadow:var(--shadow);border-color:#b9cfd0;transform:translateY(-2px)}.icon-box{background:var(--primary-soft);width:44px;height:44px;color:var(--primary);border-radius:11px;place-items:center;margin-bottom:16px;display:grid}.form,.form-row{gap:16px;display:grid}.form-row{grid-template-columns:1fr 1fr}@media (width<=640px){.form-row{grid-template-columns:1fr}}.field{gap:6px;display:grid}.field label{color:var(--ink);font-size:.9rem;font-weight:600}.field small{color:var(--muted);font-size:.82rem}.input,select.input,textarea.input{border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #d5dbe6;padding:11px 13px;font-size:.95rem;transition:border-color .15s,box-shadow .15s}textarea.input{resize:vertical;min-height:140px}.input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2b5a5e26}.hp{height:0;overflow:hidden;position:absolute!important;left:-9999px!important}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:.92rem}.alert-ok{color:#0d6e4b;background:#e7f7f0}.alert-err{color:#a3302d;background:#fdecec}.alert-info{background:var(--primary-soft);color:#234a4d}.badge{color:var(--ink-2);white-space:nowrap;background:#eef1f6;border-radius:99px;padding:3px 9px;font-size:.76rem;font-weight:700;display:inline-block}.badge.blue{background:var(--primary-soft);color:#234a4d}.badge.green{color:#0f7a53;background:#e2f6ee}.badge.amber{color:#9a6410;background:#fdf2e0}.badge.red{color:#b0302c;background:#fde8e8}.badge.grey{color:#536079;background:#eef1f6}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:.92rem}.table td,.table th{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:12px 14px}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--bg-soft);font-size:.78rem}.table tr:last-child td{border-bottom:0}.progress{background:#e9edf5;border-radius:99px;height:8px;overflow:hidden}.progress>span{background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:99px;height:100%;display:block}.page-hero{background:linear-gradient(180deg,var(--bg-soft),#fff);padding:calc(clamp(56px,8vw,88px)) 0 calc(clamp(32px,5vw,48px))}.page-hero .lead{max-width:680px}.stack-list{flex-wrap:wrap;gap:10px;display:flex}.stack-list span{font-family:var(--mono);border:1px solid var(--line);color:var(--ink-2);background:#fff;border-radius:99px;padding:8px 14px;font-size:.85rem}body{padding-bottom:env(safe-area-inset-bottom)}.wrap{padding:28px 0 72px}.wrap.narrow .container{max-width:820px}.page-title{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.page-title h1{margin:0;font-size:calc(clamp(1.5rem,3vw,2rem))}.page-title p{margin:6px 0 0}.back{align-items:center;gap:6px;margin-bottom:14px;font-size:.9rem;font-weight:600;display:inline-flex}.stack{gap:16px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.h-sm{margin:0 0 12px;font-size:1.05rem}.pre{white-space:pre-line;overflow-wrap:anywhere}.small{font-size:.86rem}.empty{text-align:center;color:var(--muted);padding:36px 20px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{color:var(--ink-2);white-space:nowrap;background:#eef1f6;border-radius:99px;align-items:center;gap:6px;padding:4px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.chip.ok{color:#0f7a53;background:#e2f6ee}.chip.miss{color:#8a5a0e;background:#fdf2e0}.chip.soft{background:var(--primary-soft);color:#234a4d}.chip button{cursor:pointer;color:inherit;font:inherit;opacity:.7;background:0 0;border:0;padding:0;line-height:1}.chip button:hover{opacity:1}.meta{color:var(--muted);flex-wrap:wrap;gap:6px 16px;font-size:.88rem;display:flex}.meta span{align-items:center;gap:5px;display:inline-flex}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font-size:.92rem;font-weight:700}.tabs button.on{color:var(--primary);border-bottom-color:var(--primary)}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;display:grid}.stat{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:16px 18px}.stat b{color:var(--ink);font-size:1.7rem;line-height:1.1;display:block}.stat span{color:var(--muted);font-size:.85rem}.check{align-items:flex-start;gap:10px;font-size:.9rem;display:flex}.check input{width:16px;height:16px;accent-color:var(--primary);flex:none;margin-top:4px}.notice{border-left:3px solid var(--primary);background:var(--primary-soft);color:#234a4d;border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:12px 14px;font-size:.9rem}.notice.warn{border-left-color:var(--warn);color:#7c520b;background:#fdf2e0}@media (width<=640px){.wrap{padding:20px 0 96px}.card{padding:18px}.btn{white-space:normal;text-align:center}}
