:root{--bg: rgba(18, 22, 28, .82);--bg-solid: #151a21;--line: rgba(255, 255, 255, .1);--text: #e9edf2;--muted: #9aa6b4;--accent: #e0703a;--ok: #57c27a;--warn: #e8b64c;--err: #e5604d;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;color:var(--text)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:#0d1015}.app{position:relative;width:100%;height:100%}.viewport{position:absolute;inset:0}.viewport canvas{display:block}.panel,.topbar,.toolbar{background:var(--bg);backdrop-filter:blur(8px);border:1px solid var(--line)}button{font:inherit;color:var(--text);background:#ffffff0f;border:1px solid var(--line);border-radius:6px;padding:5px 9px;cursor:pointer}button:hover{background:#ffffff21}button.on{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.4;cursor:default}button.small{padding:3px 7px;font-size:12px}.topbar{position:absolute;top:8px;left:8px;right:8px;display:grid;grid-template-columns:auto auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:16px;row-gap:6px;padding:7px 10px;border-radius:var(--radius)}.brand{display:flex;flex-direction:column;line-height:1.1}.logo{font-weight:800;letter-spacing:.12em;color:var(--accent)}.project{color:var(--muted);font-size:12px}.clock .time{font-weight:700;font-variant-numeric:tabular-nums;font-size:15px}.clock .weather{color:var(--muted);font-size:12px}.timectl,.views{display:flex;gap:4px;flex-wrap:wrap}.timectl{justify-self:end}.views{grid-column:1 / -1;justify-content:flex-end}.steps{position:absolute;top:98px;left:8px;width:270px;max-height:calc(100% - 190px);overflow:auto;border-radius:var(--radius);padding:10px 12px}.panel h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.steps ol{list-style:none;margin:0 0 10px;padding:0}.steps li{display:grid;grid-template-columns:14px 1fr;grid-template-rows:auto auto;column-gap:8px;padding:5px 4px;border-radius:6px;cursor:pointer}.steps li:hover,.steps li.sel{background:#ffffff0f}.steps .dot{width:10px;height:10px;border-radius:50%;margin-top:3px;border:2px solid var(--muted);grid-row:span 2}.steps li.erledigt .dot{background:var(--ok);border-color:var(--ok)}.steps li.teilweise .dot{border-color:var(--warn);background:linear-gradient(90deg,var(--warn) 50%,transparent 50%)}.steps .detail{color:var(--muted);font-size:11px}.steps em{color:var(--muted);font-style:normal;font-size:11px}.tutor{border-top:1px solid var(--line);padding-top:8px}.tutor-head{font-weight:700;margin-bottom:4px;color:var(--accent)}.tutor p{margin:4px 0;line-height:1.4}.tutor .rule{color:#c9d3de}.tutor .mistakes{color:var(--warn)}.toolpanel{position:absolute;top:98px;right:8px;width:262px;border-radius:var(--radius);padding:10px 12px;max-height:calc(100% - 190px);overflow:auto}.section .hint{color:var(--muted);margin:0 0 8px;line-height:1.4}.controls{display:flex;flex-direction:column;gap:6px}.controls select,textarea{width:100%;background:#0f1318;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:5px;font:inherit}.num{display:grid;grid-template-columns:90px 1fr 60px;align-items:center;gap:6px}.num input{background:#0f1318;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 6px;font:inherit;width:100%}.num .unit{color:var(--muted);font-size:12px}.check{display:flex;gap:6px;align-items:center}.pieces{display:flex;flex-wrap:wrap;gap:4px}.muted{color:var(--muted)}.ok{color:var(--ok)}.err{color:var(--err)}.warnline{color:var(--warn)}.big{font-size:15px;font-weight:700}.readout{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums;line-height:1.5}.readout-title{font-weight:700;margin-bottom:2px}.toolbar{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:3px;padding:5px;border-radius:var(--radius);max-width:calc(100% - 16px);overflow-x:auto}.toolbar button{display:flex;flex-direction:column;align-items:center;min-width:62px;padding:4px 4px 3px;position:relative}.toolbar .icon{font-size:17px;line-height:1.2}.toolbar .lbl{font-size:10px;white-space:nowrap}.toolbar .key{position:absolute;top:1px;right:4px;font-size:9px;color:var(--muted)}.toasts{position:absolute;bottom:86px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:4px;width:min(560px,calc(100% - 640px));min-width:320px;pointer-events:none}.toast{background:var(--bg);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:6px 10px;animation:fade 6s forwards}.toast.err{border-left-color:var(--err)}.toast .warn{color:var(--warn);margin-top:2px}@keyframes fade{0%,80%{opacity:1}to{opacity:0}}.consequences{position:absolute;top:98px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;width:440px}.cons{background:#28120eeb;border:1px solid #a2412b;border-radius:8px;padding:8px 10px;display:grid;grid-template-columns:1fr auto}.cons.delivery,.cons.info{background:#10201aeb;border-color:#2f7a51}.cons-title{font-weight:700}.cons-time{color:var(--muted);font-size:11px}.cons-actions{grid-row:span 2;display:flex;gap:4px;align-items:center}.modal-bg{position:absolute;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:var(--bg-solid);border:1px solid var(--line);border-radius:12px;width:min(560px,calc(100% - 32px));max-height:calc(100% - 64px);display:flex;flex-direction:column}.modal.wide{width:min(900px,calc(100% - 32px))}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:16px}.modal-body{padding:12px 16px 16px;overflow:auto;line-height:1.45}.modal-body h3{margin:14px 0 6px;font-size:14px}.why li{margin-bottom:4px}.finding{border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:8px;padding:8px 10px;margin-bottom:8px}.finding.gefahr{border-left-color:#ff3b30;background:#ff3b3012}.finding.schwer{border-left-color:var(--err)}.finding.mittel{border-left-color:var(--warn)}.finding.gering{border-left-color:#c2c26a}.finding-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.finding .sev{font-size:11px;text-transform:uppercase;color:var(--muted)}.finding .loc{margin-left:auto;color:var(--muted);font-size:12px}.finding .rule{color:#b8c4d2;font-size:12px;margin-top:2px}.finding ul{margin:4px 0;padding-left:18px}.finding .fix{font-size:12px}.sim{margin-left:8px;color:var(--ok)}.sim.no{color:var(--warn)}.table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.table th,.table td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line)}.table tr.bad td{color:var(--err)}.row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}svg.plan{width:100%;background:#f4f1ea;border-radius:8px}svg.plan .stone{fill:#fbfaf6;stroke:#555;stroke-width:.4}svg.plan .fdn{fill:#c9c7c1;stroke:#555;stroke-width:.5}svg.plan .dim{stroke:#b3261e;stroke-width:.6}svg.plan .t{font-size:9px;fill:#222}svg.plan .t.small{font-size:7px}.crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:22px;color:#fff;text-shadow:0 0 3px #000;pointer-events:none}@media (max-width: 900px){.steps,.toolpanel{width:calc(50% - 12px);max-height:34%}.toolpanel,.steps{top:auto;bottom:80px}.toasts{width:calc(100% - 16px);min-width:0}.consequences{width:calc(100% - 16px)}}
