:root{--navy:#102a43;--blue:#1769aa;--bg:#f5f7fa;--line:#d9e2ec;--text:#243b53;--muted:#627d98;--green:#16794d;--red:#b42318;--amber:#9a6700;--white:#fff}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Noto Sans KR","Malgun Gothic",sans-serif;font-size:14px}.topbar{background:var(--navy);color:#fff;padding:20px 28px;display:flex;justify-content:space-between;gap:24px;align-items:center}.topbar h1{margin:0 0 5px;font-size:22px}.topbar p{margin:0;color:#cbd5e1}.rule-status{display:flex;gap:9px;align-items:center}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 24px;background:#fff;border-bottom:1px solid var(--line)}.toolbar label{display:flex;gap:6px;align-items:center}.toolbar input{border:1px solid var(--line);border-radius:6px;padding:7px}.divider{width:1px;height:28px;background:var(--line);margin:0 5px}.btn{border:1px solid #a9bfd3;background:#eaf2f8;color:#17324d;border-radius:7px;padding:9px 13px;font-weight:700;cursor:pointer}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.light{background:#fff}.btn.small{padding:5px 8px;font-size:12px}.tabs{display:flex;overflow:auto;background:#fff;border-bottom:1px solid var(--line);padding:0 24px}.tab{padding:12px 16px;border:0;background:transparent;color:var(--muted);font-weight:700;cursor:pointer;border-bottom:3px solid transparent}.tab.active{color:var(--blue);border-color:var(--blue)}main{padding:20px 24px 40px;max-width:1600px;margin:auto}.hero{background:#fff;border:1px solid var(--line);border-radius:12px;padding:34px;box-shadow:0 2px 10px rgba(16,42,67,.05)}.hero h2{margin-top:0}.hidden{display:none!important}.tab-panel{display:none}.tab-panel.active{display:block}.grid{display:grid;gap:14px}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi,.panel-card{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 5px rgba(16,42,67,.04)}.kpi{padding:16px}.kpi .k{font-size:12px;color:var(--muted);font-weight:700}.kpi .v{font-size:22px;font-weight:800;margin:5px 0}.kpi .s{font-size:12px;color:var(--muted)}.panel-card{padding:18px;margin:14px 0}.panel-card h2,.panel-card h3{margin:0 0 12px}.notice{padding:12px 14px;border-radius:8px;margin:12px 0;border:1px solid}.notice.info{background:#eef6ff;border-color:#b8d8f5}.notice.warning{background:#fff8e6;border-color:#f0cf7a}.notice.danger{background:#fff0ef;border-color:#f1b3ad}.notice.good{background:#effaf4;border-color:#a9dfc5}.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.badge.good{background:#dff4e8;color:#11643e}.badge.warning{background:#fff0c2;color:#805b00}.badge.danger{background:#fde2df;color:#98251b}.badge.info{background:#dceefe;color:#125b91}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;min-width:850px;background:#fff}th,td{padding:9px 10px;border-bottom:1px solid #edf1f5;text-align:right;white-space:nowrap}th{background:#eef3f8;color:#334e68;position:sticky;top:0;z-index:1;font-size:12px}td.left,th.left{text-align:left}tr:hover td{background:#fafcff}.muted{color:var(--muted)}.danger-text{color:var(--red);font-weight:700}.good-text{color:var(--green);font-weight:700}.warning-text{color:var(--amber);font-weight:700}.timeline{display:flex;flex-direction:column;gap:8px}.timeline-item{display:grid;grid-template-columns:100px 12px 1fr;gap:10px;align-items:start}.timeline-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--blue)}.timeline-date{font-variant-numeric:tabular-nums;color:var(--muted)}.timeline-title{font-weight:700}.timeline-note{font-size:12px;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;color:var(--muted);font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:6px;padding:8px;background:#fff}.rule-table input{width:86px;padding:5px;border:1px solid var(--line);border-radius:5px}.rule-table input[type=checkbox]{width:auto}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.toast{position:fixed;right:22px;bottom:22px;background:#102a43;color:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.2);z-index:50;max-width:480px}dialog{border:0;border-radius:10px;max-width:900px;width:min(900px,92vw);box-shadow:0 20px 70px rgba(0,0,0,.25)}.dialog-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}.dialog-head button{border:0;background:none;font-size:24px;cursor:pointer}.source-list li{margin:8px 0}.source-list a{color:var(--blue)}@media(max-width:900px){.cols-4,.cols-3,.settings-grid{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start;flex-direction:column}}@media(max-width:600px){main{padding:14px}.cols-4,.cols-3,.settings-grid{grid-template-columns:1fr}.toolbar{padding:10px 14px}.tabs{padding:0 8px}}
select{border:1px solid var(--line);border-radius:6px;padding:8px;background:#fff}.toast.danger{background:var(--red)}details summary{cursor:pointer;font-weight:700;margin-top:10px}.rule-table{min-width:2200px}.rule-table td,.rule-table th{text-align:center}.rule-table td:first-child{font-weight:700}.hero .notice{max-width:1100px}
