:root{--ink: #17202b;--muted: #627084;--line: #dbe1e8;--bg: #f6f8fa;--card: #fff;--accent: #1f6feb;--ok: #1a7f4b;--bad: #c0392b;--busy: #9a6700;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--card);border-bottom:1px solid var(--line)}.brand{font-weight:700;font-size:18px;color:var(--ink);text-decoration:none}nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap}main{max-width:1120px;margin:0 auto;padding:24px}h1{font-size:24px;margin:0 0 12px}h2{font-size:17px;margin:28px 0 10px}a{color:var(--accent)}.muted{color:var(--muted);font-size:14px}.error{color:var(--bad)}.note{color:var(--busy);font-size:14px}.title{display:flex;align-items:center;gap:14px;justify-content:space-between;flex-wrap:wrap}button,.button{font:inherit;border:1px solid var(--line);background:var(--card);padding:8px 16px;border-radius:6px;cursor:pointer;text-decoration:none;display:inline-block;color:var(--ink)}.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button:disabled{opacity:.45;cursor:not-allowed}.link{border:0;background:none;color:var(--accent);padding:0}.welcome{text-align:center;padding:72px 16px}.welcome p{max-width:520px;margin:12px auto 24px}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:600}tr.row{cursor:pointer}tr.row:hover{background:#f0f4f9}table.compact{width:auto;min-width:360px}.badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}.badge.done{background:#dcf5e6;color:var(--ok)}.badge.failed{background:#fbe1dd;color:var(--bad)}.badge.busy{background:#fff3cd;color:var(--busy)}.columns{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}aside{position:sticky;top:16px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px}aside h2{margin-top:0}details{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:4px 16px;margin-bottom:12px}summary{cursor:pointer;font-weight:600;padding:10px 0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 16px;padding:4px 0 14px}.field{display:flex;flex-direction:column;gap:4px;font-size:13px}.field em{color:var(--muted);font-style:normal}.field.wide{margin-bottom:14px;max-width:420px}.field.check{flex-direction:row;align-items:center;gap:8px}input[type=number],input[type=text],select{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:6px;width:100%;background:#fff}input:invalid{border-color:var(--bad)}.shell{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 130px 60px;gap:8px;align-items:center;margin:6px 0;font-size:13px}.shell.head,.b{color:var(--muted)}.estimate .figure{font-size:28px;font-weight:700}.estimate .figure span{font-size:13px;font-weight:400;color:var(--muted)}.viewer{height:460px;border-radius:8px;overflow:hidden;background:#10141a}.viewer canvas{width:100%;height:100%;display:block}.pad{padding:16px}.toggles{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:10px 0;font-size:14px}.toggles label{display:flex;align-items:center;gap:6px}.toggles i{width:12px;height:12px;border-radius:3px;display:inline-block}.figures{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}figure{margin:0;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px}figcaption{font-size:13px;margin-bottom:8px}.bars{display:flex;align-items:flex-end;gap:2px;height:90px}.bars i{flex:1;background:var(--accent);min-height:1px;border-radius:2px 2px 0 0}.axis{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:4px}@media(max-width:860px){.columns{grid-template-columns:1fr}aside{position:static}.shell{grid-template-columns:repeat(2,1fr)}}
