
:root{--op-ink:#10223f;--op-accent:#f97316;--op-blue:#2563eb;--op-bg:#f5f7fb;--op-card:#fff;--op-line:#dbe3ef;--op-muted:#64748b;--op-good:#15803d;--op-warn:#b45309;--op-danger:#b91c1c}*{box-sizing:border-box}body{margin:0;background:var(--op-bg);color:#182338;font:14px/1.5 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.op-shell{min-height:100vh}.op-header{background:linear-gradient(115deg,#10223f,#1d3b63);color:#fff;padding:22px 5vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.op-brand{display:flex;align-items:center;gap:12px}.op-logo{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--op-accent);font-size:21px;font-weight:800}.op-header h1{margin:0;font-size:clamp(19px,3vw,29px);letter-spacing:-.02em}.op-header p{margin:3px 0 0;color:#d7e3f2}.op-nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.op-nav a{color:#dce9f7;text-decoration:none;border:1px solid rgba(255,255,255,.22);border-radius:9px;padding:7px 10px;font-size:12px}.op-nav a:hover{background:rgba(255,255,255,.12)}.op-main{width:min(1320px,90vw);margin:0 auto;padding:30px 0 90px}.op-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.op-intro h2{margin:0;color:var(--op-ink);font-size:24px}.op-intro p{margin:5px 0 0;color:var(--op-muted)}.op-actions{display:flex;flex-wrap:wrap;gap:8px}.op-button{border:1px solid var(--op-line);border-radius:9px;background:#fff;color:var(--op-ink);padding:9px 13px;font:600 13px inherit;cursor:pointer}.op-button:hover{border-color:#91b4ed;background:#eff6ff}.op-button.primary{border-color:var(--op-blue);background:var(--op-blue);color:#fff}.op-button.primary:hover{background:#1d4ed8}.op-button.danger{color:var(--op-danger)}.op-grid{display:grid;gap:18px}.op-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.op-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.op-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.op-card{background:var(--op-card);border:1px solid var(--op-line);border-radius:15px;box-shadow:0 8px 24px rgba(16,34,63,.05);padding:19px}.op-card h3{margin:0 0 14px;color:var(--op-ink);font-size:16px}.op-card h4{margin:0 0 6px;color:var(--op-ink);font-size:14px}.op-kpi{min-height:108px}.op-kpi small{display:block;color:var(--op-muted);font-weight:650;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.op-kpi strong{display:block;margin-top:7px;color:var(--op-ink);font-size:27px;letter-spacing:-.04em}.op-kpi em{display:block;margin-top:3px;color:var(--op-muted);font-style:normal;font-size:12px}.op-form{display:grid;gap:12px}.op-form.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.op-form.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.op-field{display:grid;gap:5px}.op-field.full{grid-column:1/-1}.op-field label{color:#475569;font-size:12px;font-weight:700}.op-field input,.op-field select,.op-field textarea{width:100%;border:1px solid var(--op-line);border-radius:8px;background:#fff;color:#182338;padding:9px 10px;font:inherit;outline:none}.op-field textarea{min-height:76px;resize:vertical}.op-field input:focus,.op-field select:focus,.op-field textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.18)}.op-form-actions{display:flex;flex-wrap:wrap;gap:8px;grid-column:1/-1;margin-top:4px}.op-table-wrap{overflow:auto}.op-table{width:100%;border-collapse:collapse;min-width:640px}.op-table th,.op-table td{border-bottom:1px solid #e7edf5;padding:10px 8px;text-align:left;vertical-align:top}.op-table th{color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.op-table td{color:#334155}.op-table tr:last-child td{border-bottom:0}.op-empty{padding:22px;text-align:center;color:var(--op-muted);border:1px dashed var(--op-line);border-radius:10px}.op-tag{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:750;background:#eff6ff;color:#1d4ed8}.op-tag.good{background:#ecfdf3;color:var(--op-good)}.op-tag.warn{background:#fff7ed;color:var(--op-warn)}.op-tag.danger{background:#fef2f2;color:var(--op-danger)}.op-inline{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.op-filter{max-width:260px}.op-pipeline{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;overflow:auto}.op-lane{background:#f8fafc;border:1px solid var(--op-line);border-radius:12px;padding:12px;min-height:180px}.op-lane h4{display:flex;justify-content:space-between;gap:8px;color:#475569}.op-lane h4 span{color:#94a3b8;font-size:12px}.op-item{background:#fff;border:1px solid var(--op-line);border-radius:9px;padding:10px;margin-top:8px;box-shadow:0 3px 10px rgba(16,34,63,.04)}.op-item strong{display:block;color:var(--op-ink);font-size:13px}.op-item small{display:block;color:var(--op-muted);margin-top:2px}.op-item select{width:100%;margin-top:8px;border:1px solid var(--op-line);border-radius:6px;padding:5px;background:#fff;color:#334155}.op-alert{display:none;margin:0 0 16px;border-radius:9px;padding:10px 12px;color:#7f1d1d;background:#fef2f2;border:1px solid #fecaca}.op-alert.show{display:block}.op-good-text{color:var(--op-good)}.op-danger-text{color:var(--op-danger)}.op-muted{color:var(--op-muted)}.op-footer{width:min(1320px,90vw);margin:0 auto;padding:0 0 28px;color:var(--op-muted);font-size:12px}.op-footer a{color:#1d4ed8}@media(max-width:900px){.op-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.op-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.op-pipeline{grid-template-columns:repeat(4,240px)}}@media(max-width:650px){.op-header{align-items:flex-start;flex-direction:column}.op-nav{justify-content:flex-start}.op-main{width:min(94vw,1320px);padding-top:22px}.op-intro{align-items:flex-start;flex-direction:column}.op-grid.cols-2,.op-grid.cols-3,.op-grid.cols-4,.op-form.cols-2,.op-form.cols-3{grid-template-columns:1fr}.op-card{padding:15px}}

.op-brand-link{display:inline-flex;color:inherit;text-decoration:none;border-radius:14px}.op-brand-link:focus-visible{outline:3px solid #60a5fa;outline-offset:3px}.op-brand-link:hover .op-logo{transform:translateY(-1px);box-shadow:0 10px 24px rgba(37,99,235,.25)}
