:root{--bg:#f4f5f7;--surface:#fff;--border:#dcdfe4;--text:#1c2430;--text-dim:#5b6472;--accent:#0b5fff;--accent-hover:#0a51d6;--green:#148a3d;--green-bg:#e4f5ea;--red:#c22f2f;--red-bg:#fdeaea;--amber:#96660a;--amber-bg:#fdf3dd;--radius:8px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}.container{max-width:1180px;margin:0 auto;padding:24px 20px 80px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.topbar h1{font-size:20px;font-weight:700}.topbar .sub{color:var(--text-dim);font-size:13px}.env-pills{flex-wrap:wrap;gap:8px;display:flex}.pill{border:1px solid var(--border);background:var(--surface);color:var(--text-dim);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill.ok{background:var(--green-bg);color:var(--green);border-color:#0000}.pill.bad{background:var(--red-bg);color:var(--red);border-color:#0000}.pill.warn{background:var(--amber-bg);color:var(--amber);border-color:#0000}button{font:inherit;cursor:pointer;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);padding:8px 14px}button:hover{border-color:#b8bdc7}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover{background:var(--accent-hover)}button.danger{color:var(--red)}button.small{padding:4px 10px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px}th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);background:#fafbfc;font-size:11px}tr:last-child td{border-bottom:none}td.actions{text-align:right}td .code{background:#f0f2f5;border-radius:4px;padding:2px 6px;font-family:Consolas,monospace}.empty{text-align:center;color:var(--text-dim);padding:48px}.modal-backdrop{z-index:50;background:#141a2480;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:12px;width:100%;max-width:760px;padding:24px 28px 28px;box-shadow:0 20px 60px #00000040}.modal h2{margin-bottom:4px;font-size:17px}.modal .modal-sub{color:var(--text-dim);margin-bottom:18px;font-size:13px}.form-grid{grid-template-columns:1fr 1fr;gap:14px 18px;display:grid}.form-grid .full{grid-column:1/-1}label.field{display:block}label.field span.lbl{color:var(--text-dim);margin-bottom:4px;font-size:12px;font-weight:600;display:block}input[type=text],input[type=number],input[type=date],select,textarea{width:100%;font:inherit;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:#fff;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid #0b5fff40}textarea{resize:vertical;min-height:64px}.checkbox-row{align-items:center;gap:8px;font-size:13px;display:flex}fieldset.section{border:1px solid var(--border);border-radius:var(--radius);grid-column:1/-1;padding:14px 16px 16px}fieldset.section legend{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;padding:0 6px;font-size:12px;font-weight:700}.chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip{color:#2c3e8f;background:#eef2ff;border-radius:999px;align-items:center;gap:6px;padding:2px 8px 2px 10px;font-family:Consolas,monospace;font-size:12px;display:inline-flex}.chip button{color:inherit;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.search-results{border:1px solid var(--border);border-radius:var(--radius);max-height:180px;margin-top:4px;overflow-y:auto}.search-results button{text-align:left;border:none;border-bottom:1px solid var(--border);background:#fff;border-radius:0;width:100%;padding:7px 10px;font-size:13px;display:block}.search-results button:last-child{border-bottom:none}.search-results button:hover{background:#f0f4ff}.form-footer{justify-content:flex-end;align-items:center;gap:10px;margin-top:20px;display:flex}.form-error{background:var(--red-bg);color:var(--red);border-radius:var(--radius);margin-top:14px;padding:10px 14px;font-size:13px}.results-panel{margin-top:16px}.results-panel .env-block{margin-bottom:14px}.results-panel h3{align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.step-list{list-style:none}.step-list li{align-items:baseline;gap:8px;padding:3px 0;font-size:13px;display:flex}.step-list .mark{text-align:center;width:16px;font-weight:700}.step-list .ok .mark{color:var(--green)}.step-list .fail .mark{color:var(--red)}.step-list .msg{color:var(--text-dim);font-size:12px}.banner{border-radius:var(--radius);margin-bottom:16px;padding:10px 14px;font-size:13px}.banner.error{background:var(--red-bg);color:var(--red)}.banner.info{color:#1d4ed8;background:#e8effd}.banner.warn{background:var(--amber-bg);color:var(--amber)}.signin-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.signin-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;width:100%;max-width:440px;padding:36px 32px;box-shadow:0 12px 40px #00000014}.signin-card h1{margin-bottom:8px;font-size:20px}.signin-sub{color:var(--text-dim);margin-bottom:22px;font-size:13px}.signin-btn{width:100%;padding:11px}.signin-foot{color:var(--text-dim);margin-top:16px;font-size:12px}.topbar-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.user-row{align-items:center;gap:10px;font-size:12px;display:flex}.user-name{color:var(--text-dim);font-weight:600}.small-link{color:var(--accent);font-size:12px;text-decoration:none}.small-link:hover{text-decoration:underline}.guard-block,.guard-confirm{border-radius:var(--radius);margin-top:16px;padding:12px 16px;font-size:13px}.guard-block{background:var(--red-bg);color:var(--red);border:1px solid #c22f2f4d}.guard-confirm{background:var(--amber-bg);color:var(--amber);border:1px solid #96660a4d}.guard-block ul,.guard-confirm ul{margin:6px 0 0 18px}.guard-block li,.guard-confirm li{margin-bottom:3px}.guard-item{border-top:1px solid #96660a33;margin-top:10px;padding-top:10px}.guard-item:first-of-type{border-top:none}.guard-item .checkbox-row{margin-top:8px;font-weight:600}.guard-prod{margin-bottom:8px}.guard-prod code{background:#96660a26;border-radius:4px;padding:1px 6px;font-family:Consolas,monospace}.guard-item input[type=text]{max-width:320px}.input-with-btn{align-items:stretch;gap:6px;display:flex}.input-with-btn input{flex:1}.input-with-btn button{white-space:nowrap}td.dim{color:var(--text-dim);font-size:12px}.audit-detail{white-space:normal;background:#fafbfc;font-size:12px}.audit-detail pre{background:#f0f2f5;border-radius:6px;margin-top:6px;padding:10px;font-family:Consolas,monospace;font-size:11px;overflow-x:auto}.audit-detail details{margin-top:8px}.audit-detail summary{cursor:pointer;color:var(--accent)}.audit-detail p{margin-bottom:8px}
