:root{--bg:#f3f6f9;--panel:#fff;--text:#17212b;--muted:#667585;--line:#d9e1e8;--primary:#155e75;--primary2:#0e7490;--danger:#b42318;--success:#16794b;--warning:#fff7d6;--shadow:0 8px 25px rgba(15,42,60,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}.topbar{height:68px;background:#0b3345;color:#fff;display:flex;align-items:center;padding:0 24px;gap:26px;position:sticky;top:0;z-index:10;box-shadow:0 2px 10px #0002}.brand{color:#fff;text-decoration:none;display:flex;align-items:center;gap:10px;font-weight:750}.brand-mark{display:inline-grid;place-items:center;background:#fff;color:#0b556f;border-radius:8px;padding:5px 8px;font-weight:900;letter-spacing:.5px}.brand-mark.large{font-size:24px;padding:12px 16px;margin:auto;width:max-content}.topbar nav{display:flex;gap:4px;flex:1;overflow:auto}.topbar nav a{color:#dbeef5;text-decoration:none;padding:9px 10px;border-radius:6px;white-space:nowrap}.topbar nav a:hover,.topbar nav a.active{background:#ffffff18;color:#fff}.userbox{display:flex;align-items:center;gap:10px}.userbox span{display:flex;flex-direction:column;line-height:1.2}.userbox small{color:#bad3dc}.userbox>a,.link-button{color:#dbeef5;background:none;border:0;padding:5px;cursor:pointer;text-decoration:none;font:inherit}.container{max-width:1500px;margin:25px auto;padding:0 24px;min-height:calc(100vh - 145px)}footer{text-align:center;color:var(--muted);padding:20px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.page-head h1{margin:2px 0 0;font-size:28px}.page-head p{margin:3px 0;color:var(--muted)}.back{color:var(--primary);text-decoration:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px;box-shadow:var(--shadow)}.panel h2{margin-top:0;font-size:19px}.panel.narrow{max-width:620px;margin:50px auto}.warning{background:var(--warning)}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 18px;min-width:160px;box-shadow:var(--shadow)}.stat strong{display:block;font-size:25px;color:var(--primary)}.stat span{font-size:13px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #b8c6cf;background:#fff;color:#23313c;border-radius:7px;padding:8px 13px;text-decoration:none;cursor:pointer;font:inherit;white-space:nowrap}.button:hover{background:#edf3f6}.button.primary{background:var(--primary);border-color:var(--primary);color:#fff}.button.primary:hover{background:var(--primary2)}.button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.button.success{background:var(--success);border-color:var(--success);color:#fff}.button.small{padding:5px 8px;font-size:13px}.button.ghost{border-color:transparent}.actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.span-2{grid-column:span 2}label{display:grid;gap:5px;font-weight:650;font-size:13px;color:#354552}input,select,textarea{width:100%;border:1px solid #b9c7d1;border-radius:7px;padding:9px 10px;background:#fff;color:#18242d;font:inherit}textarea{min-height:80px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #0e749025;border-color:#0e7490}.file-label{border:2px dashed #aac0cc;padding:15px;border-radius:9px;background:#f7fbfc}.muted,small{color:var(--muted)}td small{display:block;margin-top:2px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:10px 9px;border-bottom:1px solid #e1e7eb;vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#60717d;background:#f8fafb}tr:hover td{background:#f9fbfc}tr.disabled{opacity:.55}.badge{display:inline-block;background:#e7eef2;color:#314754;padding:3px 7px;border-radius:99px;font-size:12px;font-weight:700}.status-draft,.status-returned{background:#eef2ff;color:#3730a3}.status-submitted,.status-under_review,.status-approved{background:#fff4cc;color:#755b00}.status-published{background:#dff5e8;color:#13653d}.status-archived{background:#e8ecef;color:#47545d}.status-active{background:#dff5e8;color:#13653d}.current-version td{background:#f0faf5}.alert{padding:12px 15px;border-radius:8px;margin-bottom:16px;border:1px solid}.alert-success{background:#e5f7ec;border-color:#98d6b2;color:#125f38}.alert-danger{background:#fff0ef;border-color:#f2aaa4;color:#8f2018}.empty{text-align:center;color:var(--muted);padding:28px}.filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter-bar input{min-width:260px;flex:2}.filter-bar select{min-width:180px;flex:1}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.project-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;text-decoration:none;color:inherit;box-shadow:var(--shadow)}.project-card:hover{border-color:#7da5b5;transform:translateY(-1px)}.project-card h2{font-size:18px;margin:14px 0 5px}.project-card p{color:var(--muted)}dl{display:grid;grid-template-columns:150px 1fr;gap:8px 15px}dt{font-weight:700;color:#526370}dd{margin:0}.permission-list{font-size:13px}.timeline{position:relative}.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:8px;padding:0 0 18px}.timeline-item .dot{width:10px;height:10px;border-radius:50%;background:var(--primary);margin-top:6px}.timeline-item p{margin:3px 0}.workflow-actions{display:grid;gap:14px}.workflow-actions form{border-bottom:1px solid var(--line);padding-bottom:14px}.workflow-actions form:last-child{border:0}.login-card{max-width:430px;margin:70px auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px;box-shadow:var(--shadow)}.login-heading{text-align:center;margin-bottom:22px}.login-heading h1{margin:14px 0 0}.login-heading p{color:var(--muted);margin:4px}.restore-form{min-width:300px;padding-top:10px}pre{white-space:pre-wrap;word-break:break-word;background:#f3f6f8;padding:12px;border-radius:7px;max-height:350px;overflow:auto}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}details>summary{cursor:pointer;color:var(--primary);margin-bottom:10px}.inline{display:flex;gap:5px}.inline input{min-width:150px}@media(max-width:1000px){.topbar{height:auto;min-height:68px;flex-wrap:wrap;padding:12px}.topbar nav{order:3;width:100%}.userbox{margin-left:auto}.grid.two,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}@media(max-width:650px){.container{padding:0 12px}.page-head{align-items:flex-start;flex-direction:column}.userbox span{display:none}.topbar{gap:8px}.panel{padding:14px}.filter-bar>*{width:100%;min-width:0!important}.stats{display:grid;grid-template-columns:1fr 1fr}.stat{min-width:0}dl{grid-template-columns:1fr}dt{margin-top:6px}}
.file-viewer{width:100%;height:75vh;border:1px solid var(--line);border-radius:8px;background:#fff}.image-viewer{display:block;max-width:100%;max-height:75vh;margin:auto}.viewer-panel{min-height:60vh}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.signature-valid{color:var(--success);font-weight:700}.signature-invalid{color:var(--danger);font-weight:700}.mobile-only{display:none}@media(max-width:650px){.mobile-only{display:block}.login-card{margin:25px auto;padding:20px}.topbar .brand span:last-child{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.upload-chooser{border:2px dashed #aac0cc;border-radius:10px;padding:16px;background:#f7fbfc;display:grid;gap:12px}.upload-chooser legend{font-weight:750;color:#354552;padding:0 7px}.upload-mode-options{display:flex;gap:10px;flex-wrap:wrap}.upload-mode-option{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:7px;background:#fff;border:1px solid #c8d5dc;border-radius:8px;padding:9px 12px;cursor:pointer}.upload-mode-option input{width:auto}.upload-panel{background:#fff;border:1px solid #d8e2e7;border-radius:8px;padding:12px}.upload-panel[hidden]{display:none}.upload-selection{margin:0;color:var(--primary);font-weight:700}@media(max-width:650px){.upload-mode-options{display:grid}.upload-mode-option{width:100%}}
.badge.sent{background:#dff5e8;color:#13653d}.badge.failed{background:#fff0ef;color:#8f2018}.badge.logged{background:#e8eefc;color:#304a8a}.badge.skipped{background:#e8ecef;color:#47545d}.email-mode-real{border-left:5px solid var(--success)}.email-mode-test{border-left:5px solid #b88900}.email-mode-off{border-left:5px solid #6b7280}
.code-mode{border:1px solid var(--line);border-radius:9px;padding:14px}.code-mode legend{font-weight:750;color:#354552}.permission-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:1px solid var(--line);border-radius:8px;padding:10px}.permission-box label{display:flex;align-items:center;gap:7px;font-weight:500}.permission-box input{width:auto}@media(max-width:650px){.permission-box{grid-template-columns:1fr}}
.upload-help{margin:0;color:#526370}.upload-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.upload-source-grid .upload-panel{min-width:0}.upload-source-grid input[type="file"]{padding:8px;background:#f9fbfc}.upload-source-grid code{overflow-wrap:anywhere}@media(max-width:1000px){.upload-source-grid{grid-template-columns:1fr}}
.checkbox-line{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.checkbox-line input{width:auto}.compact-list{margin-top:16px}.text-danger{color:var(--danger)}
.notice{padding:12px 14px;border:1px solid #b9d7e2;border-radius:8px;background:#f1f9fc;color:#294653;margin-bottom:14px}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.checkbox-grid label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:7px;font-weight:500}.checkbox-grid input{width:auto}fieldset{border:1px solid var(--line);border-radius:8px;padding:12px}fieldset legend{padding:0 6px;font-weight:750;color:#354552}@media(max-width:650px){.checkbox-grid{grid-template-columns:1fr}}

/* CDE 1.3.3.1: trình bày metadata và tránh thanh cuộn ngang lộ trên menu */
.metadata-list{display:grid;grid-template-columns:minmax(150px,210px) minmax(0,1fr);gap:8px 14px;margin:12px 0 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fafb}
.metadata-list dt{margin:0;font-weight:700;color:#526370}
.metadata-list dd{margin:0;overflow-wrap:anywhere}
.metadata-list.compact{font-size:13px;padding:10px;grid-template-columns:minmax(130px,180px) minmax(0,1fr)}
.topbar nav{min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}
.topbar nav::-webkit-scrollbar{display:none}
.topbar nav a{flex:0 0 auto}
@media(min-width:1201px){.topbar nav{overflow:visible}}
@media(max-width:650px){.metadata-list,.metadata-list.compact{grid-template-columns:1fr}.metadata-list dt,.metadata-list.compact dt{margin-top:5px}}
