@import url("./base.css");
@import url("./components.css");
@import url("./auth.css");
@import url("./logs.css");
@import url("./admin.css");
@import url("./rules.css");
@import url("./dashboard.css");
@import url("./manual.css");

.review-badge{display:inline-block;padding:2px 7px;border-radius:6px;background:#eef2f7;color:#344054;font-size:12px;font-weight:700;white-space:nowrap}.review-badge.attack{background:#fee4e2;color:#b42318}.review-badge.false-positive{background:#dcfae6;color:#067647}.review-badge.ignored{background:#f2f4f7;color:#475467}.review-badge.needs-review{background:#fef0c7;color:#b54708}.review-badge.approved{background:#dcfae6;color:#067647}.review-badge.rejected,.review-badge.disabled{background:#fee4e2;color:#b42318}.review-actions{min-width:230px}.review-actions form{display:flex;gap:6px;align-items:center;margin:2px 0}.review-actions input,.review-actions select{max-width:120px}.review-actions button{white-space:nowrap}.small-link{display:inline-block;margin-top:4px;font-size:12px}.exception-table td{vertical-align:top}
.exception-state{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:6px}.exception-hint{font-size:12px;color:#667085}.button.mini{padding:4px 8px;font-size:12px;line-height:1.2}
.exception-actions{min-width:150px}.exception-actions form{display:flex;gap:6px;align-items:center;margin:2px 0}

.ip-policy-panel{margin-top:18px;border-top:1px solid #e4e7ec;padding-top:18px}.ip-policy-form,.ip-policy-row-form{display:grid;grid-template-columns:minmax(96px,120px) minmax(180px,1fr) minmax(160px,1fr) auto;gap:8px;align-items:center}.ip-policy-table{margin-top:12px}.ip-policy-table td{vertical-align:middle}.ip-policy-table .pill.allow{background:#dcfae6;color:#067647}.ip-policy-table .pill.block{background:#fee4e2;color:#b42318}@media(max-width:900px){.ip-policy-form,.ip-policy-row-form{grid-template-columns:1fr}.ip-policy-table{display:block;overflow-x:auto}}

.license-panel{align-items:center;background:#25272d;border:1px solid #414650;border-left:4px solid var(--warn);display:grid;gap:14px;grid-template-columns:minmax(260px,1fr) minmax(340px,auto);margin:18px 22px 0;padding:14px 16px}.license-panel.active{border-left-color:var(--green)}.license-panel-main{align-items:center;display:flex;gap:12px;min-width:0}.license-panel-main strong{color:#fff;display:block;font-size:14px;line-height:1.35}.license-panel-main span:not(.license-state){color:#aeb6c2;display:block;font-size:12px;margin-top:3px;overflow-wrap:anywhere}.license-state{border:1px solid #886a2a;border-radius:6px;color:#ffd386;flex:0 0 auto;font-size:12px;font-weight:700;min-width:54px;padding:5px 9px;text-align:center}.license-state.active{border-color:#16865a;color:#5ee0a0}.license-state.inactive{border-color:#96633a;color:#ffbd7a}.license-metrics{display:grid;gap:8px;grid-template-columns:minmax(70px,90px) minmax(160px,1fr) minmax(70px,110px)}.license-metric{background:#1d1f24;border:1px solid #383d46;border-radius:6px;min-width:0;padding:8px 10px}.license-metric span{color:#8c96a3;display:block;font-size:11px;font-weight:700;margin-bottom:4px}.license-metric strong{color:#dce3ef;display:block;font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1120px){.license-panel{grid-template-columns:1fr}.license-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.license-panel{margin:12px;}.license-metrics{grid-template-columns:1fr}.license-panel-main{align-items:flex-start;flex-direction:column}.license-state{text-align:left}}

.license-upload-form{display:grid;grid-template-columns:minmax(180px,1.4fr) auto minmax(150px,1fr) minmax(150px,1fr) auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid #d9e2ef}
.license-upload-group{display:grid;gap:5px;min-width:0}
.license-upload-group label{font-size:11px;font-weight:700;color:#526071}
.license-upload-group input{width:100%;min-width:0;font-size:12px;border:1px solid #c9d3e1;border-radius:6px;background:#fff;color:#000;padding:7px}.license-upload-group input::file-selector-button{color:#000}.license-upload-group input::-webkit-file-upload-button{color:#000}
.license-upload-or{align-self:center;font-size:12px;color:#667085;white-space:nowrap}
.license-upload-form button{height:34px;border:0;border-radius:6px;background:#285d9f;color:#fff;padding:0 12px;font-weight:700;cursor:pointer;white-space:nowrap}
@media (max-width: 980px){.license-upload-form{grid-template-columns:1fr}.license-upload-or{display:none}.license-upload-form button{width:100%}}

.crs-manual-page { padding: 24px; }
.crs-status-panel, .crs-rule-panel { margin-top: 16px; }
.crs-status-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.crs-status-grid div, .crs-detail-grid div { border: 1px solid var(--border); border-radius: 8px; padding: 12px; background: var(--surface-soft); }
.crs-status-grid strong, .crs-detail-grid strong { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.crs-status-grid span, .crs-detail-grid span { display: block; overflow-wrap: anywhere; }
.crs-rule-search { display: grid; grid-template-columns: minmax(180px, 260px) minmax(240px, 1fr) 120px auto auto; gap: 8px; align-items: center; margin-bottom: 14px; }
.crs-rule-search input, .crs-rule-search select { width: 100%; }
.crs-rule-table-wrap { overflow-x: auto; }
.crs-rule-table { width: 100%; border-collapse: collapse; min-width: 920px; }
.crs-rule-table th, .crs-rule-table td { border-bottom: 1px solid var(--border); padding: 10px; text-align: left; vertical-align: top; }
.crs-rule-table th { font-size: 12px; color: var(--muted); background: var(--surface-soft); }
.crs-rule-title span { display: block; font-weight: 700; }
.crs-rule-title small { display: block; color: var(--muted); margin-top: 4px; }
.crs-source-file { display: inline-block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: top; }
.crs-pagination { margin-top: 16px; }
.crs-rule-dialog { width: min(860px, calc(100vw - 32px)); border: 0; border-radius: 8px; padding: 22px; color: var(--text); background: var(--surface); box-shadow: 0 18px 50px rgba(15, 23, 42, 0.28); }
.crs-rule-dialog::backdrop { background: rgba(15, 23, 42, 0.48); }
.dialog-close-form { position: absolute; top: 12px; right: 12px; }
.dialog-close-form button { width: 34px; height: 34px; padding: 0; }
.crs-dialog-head { padding-right: 44px; margin-bottom: 14px; }
.crs-dialog-head h2 { margin: 4px 0; }
.crs-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.crs-detail-grid div:nth-child(1), .crs-detail-grid div:nth-child(8), .crs-detail-grid div:nth-child(10), .crs-detail-grid div:nth-child(13) { grid-column: 1 / -1; }
@media (max-width: 760px) {
    .crs-manual-page { padding: 14px; }
    .crs-status-grid, .crs-detail-grid, .crs-rule-search { grid-template-columns: 1fr; }
    .crs-source-file { max-width: 180px; }
}
