:root{color-scheme:dark;--bg:#03141c;--panel:#082633;--line:#1b5062;--ink:#f4fcff;--muted:#94b4bf;--aqua:#53ead4;--lime:#c8f16d;--amber:#ffd06a;--red:#ff6c78}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 82% 0,#07576c,transparent 31%),var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif}main{max-width:1500px;margin:auto;padding:17px}nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}a,button{padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#103747;color:var(--ink);font:inherit;font-weight:850;text-decoration:none;cursor:pointer}.brand{display:flex;align-items:center;gap:8px;margin-right:auto}.brand img{width:30px}.brand i{font-style:normal;color:var(--aqua)}header{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;padding:38px;border:1px solid var(--line);border-radius:27px;background:linear-gradient(135deg,#073149,#07565e)}small{font-weight:900;letter-spacing:.12em;color:var(--aqua)}h1{font-size:clamp(2.8rem,6vw,5.5rem);line-height:.89;margin:.2em 0}header p,.panel p,footer{color:var(--muted)}.gate{min-width:240px;padding:18px;border-radius:17px;background:#ffffff15}.gate span,.gate strong,.gate small{display:block}.gate strong{font-size:1.8rem;margin:6px 0}.steps{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding:10px 0;background:#03141ce8;backdrop-filter:blur(10px)}.steps button.active{background:var(--aqua);color:#03292f}.panel{margin-top:12px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.head{display:flex;justify-content:space-between;align-items:start;gap:14px}.head h2,.panel h2{margin:.25em 0}.head>span{color:var(--muted)}.form{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.form label,.geometry-controls label,.sync-grid label,.verify-controls label{color:var(--muted);font-weight:800}.form input,.form select,.geometry-controls input,.geometry-controls select,.sync-grid input,.sync-grid select{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#041922;color:var(--ink);font:inherit}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.upload{padding:20px;border:1px dashed #3c778a;border-radius:13px;color:var(--muted);cursor:pointer}.upload b{display:block;color:var(--aqua);margin-top:8px}.upload input{display:none}.primary{background:var(--aqua);color:#03292f;border-color:transparent}button:disabled{opacity:.4}.checks,.list{display:grid;gap:7px;margin:13px 0}.checks article,.result,.certificate article{padding:12px;border-radius:11px;background:#041a23}.checks b,.checks span,.certificate b,.certificate span{display:block}.checks span,.certificate span{color:var(--muted);margin-top:4px}.pass{border-left:5px solid var(--lime)}.warn{border-left:5px solid var(--amber)}.fail{border-left:5px solid var(--red)}.geometry-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:12px}.canvas-wrap canvas{width:100%;aspect-ratio:16/9;border-radius:13px;background:linear-gradient(180deg,#94d8e8 0 48%,#18769a 49% 100%)}.geometry-controls{display:grid;gap:9px}.result{margin-top:13px}.result strong{font-size:1.4rem;color:var(--aqua)}.sync-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:8px}.verify-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:15px 0}.verify-controls input{display:block;width:100%}.verify-controls output{float:right;color:var(--aqua)}.certificate{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.approval{display:block;margin-top:15px;padding:14px;border:1px solid var(--line);border-radius:11px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}footer{display:flex;justify-content:space-between;padding:24px 4px}@media(max-width:900px){.form,.verify-controls{grid-template-columns:1fr 1fr}.geometry-grid{grid-template-columns:1fr}.sync-grid,.certificate{grid-template-columns:1fr 1fr}}@media(max-width:650px){main{padding:8px}header{grid-template-columns:1fr;padding:24px}.steps{grid-template-columns:1fr 1fr}.form,.verify-controls,.sync-grid,.certificate,.upload-grid{grid-template-columns:1fr}.head,footer{display:block}.gate{width:100%}}
