:root{--bg:#f6f7f2;--fg:#1b1f1d;--muted:#5c665f;--border:#cfd6cf;--accent:#274f3e;--warn:#9e1c1c}*{box-sizing:border-box}body{margin:0;padding:0;background:radial-gradient(circle at top right,#ebf3e7 0,var(--bg) 50%);color:var(--fg);font-family:IBM Plex Sans,Segoe UI,sans-serif}main{max-width:1800px;margin:0 auto;padding:1rem}h1,h2,h3{margin:0}.panel{border:1px solid var(--border);border-radius:12px;background:#ffffff;padding:1rem}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:white}table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.87rem}td,th{border:1px solid #e5e9e4;padding:.4rem;white-space:nowrap;text-align:left}th{position:-webkit-sticky;position:sticky;top:0;background:#f2f5f1;z-index:1}button,input{font:inherit}input[type=datetime-local],input[type=number],input[type=text],input[type=time],select{width:100%;border:1px solid #d4dbd4;border-radius:6px;padding:.25rem .35rem}button{border:1px solid var(--accent);background:var(--accent);color:white;border-radius:6px;padding:.35rem .65rem;cursor:pointer}button.secondary{border-color:#8f9d93}a.secondary,button.secondary{background:#f7faf7;color:#1e2a22}a.secondary{border:1px solid #8f9d93;border-radius:6px;padding:.35rem .65rem;text-decoration:none}.next-leg{outline:2px solid #2f5f47;outline-offset:-2px}.muted{color:var(--muted)}.warn{color:var(--warn)}