@keyframes attentionPulse{0%,100%{opacity:.72;box-shadow:0 0 0 0 #f5c45100}50%{opacity:1;box-shadow:0 0 0 4px #f5c45122}}
.aiNotice{padding:12px 14px;border:1px solid #f5c451;background:#fff8df;color:#7a5100;border-radius:10px;margin-bottom:15px;font-weight:700;font-size:13px;animation:attentionPulse 2.4s ease-in-out infinite}
.toolGrid{display:grid;grid-template-columns:1fr;gap:10px}.suggestBtn{display:none}
.aiBtn{width:100%;border:1px solid #9ab5ef;background:#eff4ff;color:#174aaf;border-radius:9px;padding:11px 14px;font-weight:700;margin:10px 0}
.aiBtn:disabled{opacity:.6;cursor:wait}
.aiResults,.nameSuggestion{border:1px solid #d9e3f8;background:#f8faff;border-radius:11px;padding:12px;margin:0 0 14px}
.aiSummary,.nameSuggestion{display:grid;gap:5px;color:#253858}
.aiSummary span,.duplicateRow small,.nameSuggestion small{font-size:11px;color:#667085}
.nameSuggestion strong{font-size:16px;color:#174aaf}.nameSuggestion .useName{justify-self:start;margin-top:5px}
.duplicateRow{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:9px 0;border-top:1px solid #e1e8f5}
.duplicateRow b,.duplicateRow small{display:block}.duplicateRow strong{font-size:12px;color:#1d4ed8}
.risk{font-size:9px;font-weight:800;border-radius:12px;padding:4px 6px;background:#fff3d6;color:#8a5700}.risk.HIGH{background:#fee4e2;color:#b42318}.risk.LOW{background:#e8f7ee;color:#18703a}
.emptyAi{font-size:12px;color:#667085;padding:8px 0}.form .resultCode input{background:#f2f4f7;color:#475467;font-weight:700}
.completeFields{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:14px;border-top:1px solid #edf0f5}.completeFields label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#526079}.completeFields input,.completeFields textarea{border:1px solid #dce2ec;border-radius:9px;padding:11px 12px;outline:0;background:#fff}.completeFields textarea{min-height:64px;resize:vertical}
@media(max-width:800px){.toolGrid,.completeFields{grid-template-columns:1fr}}
.userRow{display:grid;grid-template-columns:minmax(190px,1fr) 145px auto minmax(180px,240px) 80px;gap:10px}.userRow select,.userRow>[data-password]{border:1px solid #dce2ec;border-radius:9px;padding:9px 10px;min-width:0}.userRow>[data-save]{padding:9px 12px}@media(max-width:1000px){.userRow{grid-template-columns:1fr 1fr}.userRow>div{grid-column:1/-1}}
.userList{display:grid;gap:14px}.userEditCard{background:#fff;border:1px solid #e5eaf2;border-radius:14px;padding:16px}.userEditGrid{display:grid;grid-template-columns:1.2fr 1fr 1.4fr 1fr 1.2fr auto;gap:10px;align-items:end}.userEditGrid label{display:grid;gap:5px;font-size:11px;font-weight:700;color:#526079}.userEditGrid input,.userEditGrid select{border:1px solid #dce2ec;border-radius:9px;padding:10px;min-width:0;background:#fff}.userEditGrid .activeField{display:flex;align-items:center;gap:7px;padding:10px 0}.userActions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:12px}.saveStatus{font-size:12px;color:#526079}@media(max-width:1100px){.userEditGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.userEditGrid{grid-template-columns:1fr}}
.userSearch{width:min(680px,100%);display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dce2ec;border-radius:12px;padding:4px 6px 4px 14px;margin-bottom:18px;box-shadow:0 4px 14px #20376b08}.userSearch:focus-within{border-color:#7da2ef;box-shadow:0 0 0 3px #e8efff}.userSearch>span{font-size:22px;color:#748099}.userSearch input{flex:1;min-width:0;border:0;outline:0;padding:10px 4px;background:transparent;color:#172033}.userSearch .iconBtn{visibility:hidden;flex:0 0 auto}.userEmpty{height:220px}
.passwordModal{width:min(500px,96vw)}.modalHint{color:#667085;font-size:13px;line-height:1.5;margin:-8px 0 18px}.passwordField{display:flex;gap:8px}.passwordField input{flex:1;min-width:0}.passwordField button{flex:0 0 auto}
.requestViewTabs{display:flex;gap:6px;margin:0 0 18px;padding:5px;width:max-content;max-width:100%;background:#e9eef7;border-radius:12px}.requestViewTabs button{border:0;background:transparent;color:#667085;border-radius:9px;padding:10px 16px;font-weight:700}.requestViewTabs button.active{background:#fff;color:#1d4ed8;box-shadow:0 3px 10px #20376b16}
.requestTableTools{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px}.requestTableTools label{display:grid;gap:6px;color:#526079;font-size:12px;font-weight:700}.requestTableTools select{min-width:240px;border:1px solid #dce2ec;border-radius:10px;padding:10px 12px;background:#fff}.requestTableTools span{color:#667085;font-size:12px}.requestTableWrap{overflow:auto;background:#fff;border:1px solid #e5eaf2;border-radius:14px}.requestTable{width:100%;min-width:960px;border-collapse:collapse}.requestTable th{position:sticky;top:0;background:#f4f7fb;color:#526079;text-align:left;font-size:11px;padding:12px;border-bottom:1px solid #dfe5ef}.requestTable td{padding:13px 12px;border-bottom:1px solid #edf0f5;color:#344054;font-size:12px;vertical-align:top}.requestTable tbody tr:hover{background:#f8faff}.requestTable td b,.requestTable td small{display:block}.requestTable td small{color:#98a2b3;margin-top:4px}.requestCode{color:#1d4ed8!important;font-weight:800}.issuedDate{font-weight:700;color:#176b39!important}.tableEmpty{text-align:center!important;padding:34px!important;color:#98a2b3!important}
@media(max-width:700px){.requestViewTabs{width:100%}.requestViewTabs button{flex:1;padding:10px 8px}.requestTableTools{align-items:stretch;flex-direction:column}.requestTableTools select{width:100%;min-width:0}}

.itemVisibleFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin-top:10px;padding:10px 12px;border:1px solid #e3e9f4;border-radius:10px;background:#f8faff;color:#526079;font-size:12px;line-height:1.45}
.itemVisibleFields span{min-width:0;overflow-wrap:anywhere}.itemVisibleFields b{color:#253858}
@media(max-width:700px){.itemVisibleFields{grid-template-columns:1fr}}

/* Bố cục thẻ kết quả: không để nội dung dài đè hoặc tràn sang cột khác. */
.itemCard{grid-template-columns:minmax(150px,220px) minmax(0,1fr) 50px;align-items:start;overflow:hidden}
.itemMain{min-width:0}.itemMain h4{overflow-wrap:anywhere}
.codeBlock{min-width:0;padding-top:2px}.codeLabel{display:block;margin-bottom:5px;color:#667085;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.code{font-size:16px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}
.meta{min-width:0}.meta span{max-width:100%;overflow-wrap:anywhere}
.itemVisibleFields{width:100%;max-width:100%;box-sizing:border-box}
.match{min-width:0}
@media(max-width:800px){.itemCard{grid-template-columns:minmax(100px,32%) minmax(0,1fr);align-items:start}.itemCard .match{display:none}}
@media(max-width:560px){.itemCard{grid-template-columns:1fr}.codeBlock{padding-bottom:10px;border-bottom:1px solid #edf0f5}}

.adminContent{max-width:1440px;margin:auto}.adminImportSection{margin-bottom:38px}.adminImportSection h2,.adminUsersSection h2{margin:0 0 5px}.importAdminGrid{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(520px,1.6fr);gap:16px}.adminCard{background:#fff;border:1px solid #e3e9f2;border-radius:16px;padding:20px;box-shadow:0 5px 18px #20376b08}.adminCard h3{margin:0 0 5px}.adminCard>p,.cardTitleRow p{margin:0 0 18px;color:#7b879b;font-size:13px}.manualImportDrop{min-height:130px;border:2px dashed #b8c7e5;border-radius:13px;background:#f8faff;display:grid;place-items:center;align-content:center;gap:7px;padding:18px;margin-bottom:14px;text-align:center;color:#294d9b;font-weight:800}.manualImportDrop:hover{border-color:#668ce1;background:#f1f5ff}.manualImportDrop input{max-width:100%;color:#526079;font-weight:500}.manualImportDrop small{color:#7d8798;font-weight:500}.adminCard>#runManualImport{width:100%}.adminCard>#manualImportMsg{margin-top:13px}.adminCard>#manualImportMsg>div{margin:0}.cardTitleRow,.importStatusTop,.configActions{display:flex;align-items:center;justify-content:space-between;gap:14px}.jobStatus{display:inline-flex;align-items:center;gap:8px;border-radius:20px;padding:8px 11px;font-weight:800;font-size:12px}.jobStatus i{width:9px;height:9px;border-radius:50%;background:currentColor}.jobStatus.active{background:#eaf9ef;color:#16723a}.jobStatus.stopped{background:#f1f3f6;color:#667085}.jobStatus.running{background:#fff4dc;color:#9b5b00}.jobStatus.running i{animation:jobPulse 1s ease-in-out infinite}.importStatusTop{padding:13px;border-radius:12px;background:#f7f9fc;color:#667085;font-size:12px}.importMetrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:11px 0 17px}.importMetrics div{padding:11px;border:1px solid #e6eaf1;border-radius:10px;min-width:0}.importMetrics small,.importMetrics b{display:block}.importMetrics small{color:#8a95a7;font-size:10px;margin-bottom:5px}.importMetrics b{font-size:12px;overflow-wrap:anywhere}.lastStatus.SUCCESS{color:#16723a}.lastStatus.FAILED{color:#b42318}.lastStatus.RUNNING{color:#9b5b00}.importError{background:#fff0f0;color:#8f251b;border-radius:10px;padding:11px;margin:-6px 0 16px;font-size:12px;overflow-wrap:anywhere}.importConfigForm{display:grid;grid-template-columns:1fr 180px;gap:13px}.importConfigForm label{display:grid;gap:6px;color:#526079;font-size:11px;font-weight:700}.importConfigForm input{border:1px solid #dce2ec;border-radius:9px;padding:11px;background:#fff;min-width:0}.importConfigForm .toggleField{display:flex;align-items:center;gap:10px;border:1px solid #dce2ec;border-radius:10px;padding:9px 11px}.toggleField input{width:20px;height:20px;accent-color:#2563eb}.toggleField span,.toggleField small{display:block}.toggleField small,.pathField small{color:#8a95a7;font-weight:500;margin-top:3px}.pathField,.configActions{grid-column:1/-1}.configActions{justify-content:flex-end}.configActions span{font-size:12px;color:#526079}.adminUsersSection{border-top:1px solid #dfe5ef;padding-top:30px}@keyframes jobPulse{50%{opacity:.25;transform:scale(.75)}}
@media(max-width:950px){.importAdminGrid{grid-template-columns:1fr}.importConfigForm{grid-template-columns:1fr 180px}}
@media(max-width:620px){.importConfigForm,.importMetrics{grid-template-columns:1fr}.importConfigForm .pathField,.importConfigForm .configActions{grid-column:auto}.importStatusTop,.cardTitleRow,.configActions{align-items:stretch;flex-direction:column}.configActions button{width:100%}}
