:root {
    --red:#b50f1f; --red2:#8d0b18; --cream:#fffaf1; --line:#e1e5eb;
    --text:#24344b; --muted:#5f6e80; --radius:10px; --shadow:0 2px 8px rgb(30 45 65 / 4%);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:150px; }
body { margin:0; font-family:"Segoe UI","Segoe UI Variable",Arial,sans-serif; font-size:14px; line-height:1.5; color:var(--text); background:#f6f7fa; }
button,input,select { font:inherit; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
a { color:#245789; text-decoration:none; }
a:hover { text-decoration:underline; }
:focus-visible { outline:3px solid #3182bd; outline-offset:3px; }
.icon { width:20px; height:20px; flex:none; vertical-align:middle; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link { position:fixed; top:-80px; left:16px; background:#fff; padding:12px; z-index:50; }
.skip-link:focus { top:8px; }
.app-shell { display:grid; grid-template-columns:224px minmax(0,1fr); min-height:100vh; }
.sidebar { position:sticky; top:0; height:100vh; overflow-y:auto; background:var(--red2); color:#fff; display:flex; flex-direction:column; }
.brand { flex:none; height:96px; background:#fff; display:flex; align-items:center; justify-content:center; padding:10px; }
.brand img { width:180px; max-height:76px; object-fit:contain; }
.side-nav { padding:14px 10px; display:flex; flex-direction:column; gap:4px; }
.nav-item { display:flex; gap:12px; align-items:center; padding:12px 10px; min-height:48px; color:#fff; border-left:3px solid transparent; border-radius:6px; transition:background .15s; }
.nav-item span { flex:1; min-width:0; }
.nav-item:hover,.nav-item.active { background:rgb(255 255 255 / 12%); text-decoration:none; }
.nav-item.active { border-left-color:#edcc78; font-weight:600; }
.nav-item b { flex:none; min-width:25px; padding:1px 6px; border-radius:12px; text-align:center; font-size:12px; background:rgb(255 255 255 / 17%); }
.nav-item:last-child { margin-top:12px; border-top:1px solid rgb(255 255 255 / 12%); }
.sidebar-photo { min-height:160px; flex:1; position:relative; overflow:hidden; }
.sidebar-photo img { position:absolute; width:100%; height:100%; object-fit:cover; }
.sidebar-photo:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#8d0b18,rgba(141,11,24,.12) 35%,rgba(82,11,23,.55)); }
.photo-overlay { position:absolute; inset:auto 0 24px; text-align:center; z-index:1; text-shadow:0 2px 6px #382027; }
.photo-overlay strong,.photo-overlay em { display:block; }
.photo-overlay strong { letter-spacing:3px; font-size:19px; }
.photo-overlay em { margin-top:4px; font-size:15px; }
.main-area { min-width:0; display:flex; flex-direction:column; }
.top-header { min-height:96px; flex-shrink:0; padding:18px 24px; background:var(--red); color:#fff; display:flex; align-items:center; gap:16px; position:sticky; top:0; z-index:20; isolation:isolate; overflow:hidden; }
.top-header:after { content:""; position:absolute; z-index:-1; right:-30px; top:-95px; width:380px; height:270px; border:1px solid rgb(255 255 255 / 10%); border-radius:50%; box-shadow:0 0 0 25px rgb(255 255 255 / 3%),0 0 0 50px rgb(255 255 255 / 2%); }
.party-logo { width:54px; height:60px; object-fit:contain; flex:none; }
.title-block { min-width:0; flex:1; }
.organization-short { display:none; }
.title-block h1 { margin:0 0 5px; font-size:clamp(16px,1.1vw,21px); line-height:1.45; font-weight:700; }
.title-block p { margin:0; font-size:13px; letter-spacing:.3px; }
.slogan { margin:0 0 0 auto; flex:none; white-space:nowrap; color:#ffebba; font-size:clamp(11px,.85vw,14px); line-height:1.7; text-align:right; }
.utility-bar { min-height:68px; padding:12px 24px; display:flex; align-items:center; justify-content:flex-end; gap:24px; background:#fff; border-bottom:1px solid var(--line); }
.search-box { margin-right:auto; width:min(540px,60%); display:flex; align-items:center; gap:10px; border:1px solid #cfd6df; border-radius:7px; padding:0 10px; color:var(--muted); }
.search-box:focus-within { border-color:#3182bd; box-shadow:0 0 0 2px #e2eff8; }
.search-box input { width:100%; min-width:0; border:0; background:transparent; outline:none; padding:10px 0; }
.search-box button,.icon-button { border:0; background:transparent; color:inherit; display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:36px; border-radius:6px; }
.search-box button:hover,.icon-button:hover { background:#edf1f6; }
.bell { position:relative; color:var(--text); }
.bell span { position:absolute; top:-4px; right:-3px; background:var(--red); color:white; font-size:11px; min-width:18px; border-radius:10px; text-align:center; }
.user-box { display:flex; align-items:center; gap:10px; flex:none; }
.avatar { width:38px; height:38px; border-radius:50%; background:#f0e9dd; display:grid; place-items:center; font-weight:700; color:#795b37; }
.user-box small { display:block; color:var(--muted); font-size:12px; }
.utility-date { display:flex; align-items:center; gap:8px; flex:none; padding-right:20px; border-right:1px solid var(--line); color:var(--text); }
.utility-date .icon { color:var(--muted); }
.utility-date time { font-size:13px; font-weight:600; white-space:nowrap; }
.utility-date small { display:block; font-size:11px; color:var(--muted); }
.menu-toggle { display:none; }
.content { padding:20px; flex:1; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:18px; align-items:start; }
.center-column { min-width:0; }
.metric-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:0; }
.metric { position:relative; border:1px solid; border-radius:var(--radius); padding:16px 12px 16px 62px; box-shadow:var(--shadow); }
.metric-icon { position:absolute; left:12px; top:24px; width:38px; height:38px; border-radius:10px; background:rgb(255 255 255 / 75%); display:grid; place-items:center; }
.metric strong { font-size:28px; line-height:1.2; font-weight:700; font-variant-numeric:tabular-nums; }
.metric p { margin:5px 0 0; font-size:14px; }
.metric.red { color:#a91b2b; background:#fff2f3; border-color:#f0d4d8; }
.metric.blue { color:#275e97; background:#eff5fc; border-color:#d7e3f1; }
.metric.amber { color:#91600c; background:#fff8e9; border-color:#ebdfc1; }
.metric.green { color:#286f4b; background:#eef7f1; border-color:#d3e5da; }
.two-col,.recent-row { display:grid; gap:16px; margin-top:16px; align-items:stretch; }
.two-col { grid-template-columns:minmax(0,1fr) 290px; }
.recent-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
.two-col>.panel,.recent-row>.panel { height:100%; }
.recent-row .panel-head { min-height:72px; }
.recent-row th { height:60px; }
.recent-row .compact-table .agency-col { width:130px; }
.panel,.side-panel,.page-card { min-width:0; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.panel { overflow:hidden; }
.panel-head { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; padding:15px 16px; }
.panel-head h3 { display:flex; align-items:center; gap:8px; margin:0; font-size:15px; font-weight:650; }
.panel-head h3 .icon { color:#9b2531; width:18px; height:18px; }
.panel-head a { display:inline-flex; align-items:center; gap:5px; font-size:12px; white-space:nowrap; }
.panel-head a .icon { width:14px; height:14px; }
.table-scroll { width:100%; overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:13px; table-layout:fixed; }
.full-table { min-width:630px; }
.compact-table { min-width:425px; }
th { padding:11px 12px; background:#f3f5f8; color:#556477; font-size:12px; font-weight:600; text-align:left; }
td { padding:13px 12px; border-top:1px solid #ecf0f4; vertical-align:middle; }
tbody tr:hover { background:#faf7f4; }
.number-col { width:112px; }
.date-col { width:105px; }
.status-col { width:125px; }
.agency-col { width:130px; }
.full-table th:nth-child(2) { width:auto; }
.compact-table .agency-col { width:105px; }
.compact-table .number-col { width:105px; }
.compact-table .date-col { width:98px; }
.summary { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.summary:focus { white-space:normal; overflow-wrap:anywhere; }
.document-number { display:block; font-weight:650; }
.document-subject { color:var(--text); text-decoration:underline; text-decoration-color:#c8d2de; text-underline-offset:3px; }
.document-subject:hover { color:var(--red); }
.secondary-btn { display:inline-flex; padding:9px 14px; border:1px solid #cbd5e1; border-radius:7px; background:#f6f8fb; }
.document-detail-subject { font-size:20px; line-height:1.6; overflow-wrap:anywhere; }
.document-metadata { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.document-metadata>div { padding:14px 0; border-bottom:1px solid var(--line); }
.document-metadata dt { color:var(--muted); font-size:13px; }
.document-metadata dd { margin:6px 0 0; overflow-wrap:anywhere; }
.attachment-placeholder { padding:18px; margin-top:24px; background:#f6f8fb; border-radius:8px; }
.attachment-placeholder h3 { margin:0 0 8px; font-size:16px; }
.attachment-placeholder p { margin:0; color:var(--muted); }
.status { display:inline-flex; align-items:center; border-radius:5px; padding:4px 8px; font-size:12px; font-weight:600; white-space:nowrap; }
.status.moi { color:#245b95; background:#edf4ff; }
.status.dangxuly { color:#845b13; background:#fff4d9; }
.status.sapdenhan { color:#a82530; background:#fcebed; }
.status.hoanthanh { color:#246842; background:#eaf5ee; }
.danger-text { color:#aa2633; font-weight:650; }
.table-empty { text-align:center; padding:28px; color:var(--muted); }
.notification-item { display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; padding:12px 16px; border-top:1px solid #edf0f4; position:relative; }
.notification-item.unread { background:#fffcf7; }
.notification-item.unread:before { content:""; position:absolute; left:0; top:20px; width:3px; height:22px; background:var(--red); border-radius:0 3px 3px 0; }
.notification-dot { color:#9c343c; background:#f9eeee; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; }
.notification-dot .icon { width:15px; height:15px; }
.notification-item strong { font-size:13px; font-weight:600; }
.notification-item p { margin:4px 0; font-size:13px; color:var(--muted); }
.notification-item small { font-size:12px; color:var(--muted); }
.right-column { display:flex; flex-direction:column; gap:16px; }
.create-btn,.primary-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 18px; border:1px solid var(--red); border-radius:8px; color:#fff; background:var(--red); font-weight:600; transition:background .15s; }
.create-btn:hover,.primary-btn:hover { background:var(--red2); }
button:active { transform:translateY(1px); }
.side-panel { padding:0 14px 12px; }
.side-panel .panel-head { padding:14px 0; }
.schedule-date { display:flex; align-items:center; gap:8px; background:#fbf2f1; color:#9b2631; padding:10px; border-radius:6px; margin:0 0 8px; font-size:13px; }
.schedule-date span { margin-left:auto; }
.schedule-item { display:flex; gap:14px; padding:11px 0; font-size:14px; }
.schedule-item b { color:#375479; font-size:13px; }
.schedule-item small { display:block; margin-top:3px; color:var(--muted); font-size:12px; }
.deadline { display:flex; align-items:start; gap:10px; padding:12px 0; border-top:1px solid #edf0f4; }
.deadline>.icon { margin-top:3px; color:#b1434a; }
.deadline>div { min-width:0; }
.deadline p { margin:3px 0; font-size:13px; color:var(--muted); }
.deadline strong { color:#a12e37; font-size:12px; font-weight:600; }
.stats>div:not(.panel-head) { display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-top:1px solid #edf0f4; }
.stats span { display:flex; align-items:center; gap:10px; }
.stats span .icon { color:#758295; width:17px; height:17px; }
.stats b { font-size:18px; }
.quick-links { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:16px; }
.quick-links a,.quick-links button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:14px 8px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius); color:#405571; font-size:13px; }
.quick-links a:hover,.quick-links button:hover { background:#f3f5f8; border-color:#bfcbd9; text-decoration:none; }
footer { padding:0 20px 18px; color:var(--muted); font-size:12px; }
footer span { display:block; margin-top:4px; }
.page-card { padding:22px; }
.page-title { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); padding-bottom:18px; }
.page-title h2 { margin:0; font-size:24px; }
.page-title p { margin:5px 0 0; color:var(--muted); }
.filters,.big-search { display:flex; gap:10px; margin:20px 0; }
.filters input,.big-search input { width:min(520px,100%); min-width:0; border:1px solid #cbd4df; border-radius:7px; padding:11px 12px; }
.filters button,.big-search button { flex:none; border:0; border-radius:7px; color:#fff; background:#31577e; padding:10px 18px; }
.filters button:hover,.big-search button:hover { background:#203f60; }
.empty-state { text-align:center; padding:64px 16px; color:var(--muted); }
.empty-state>.icon { width:42px; height:42px; }
.register-cards,.admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:20px; }
.register-cards>div,.admin-grid>div { padding:24px; background:#fafbfc; border:1px solid var(--line); border-radius:var(--radius); }
.register-cards strong { display:block; font-size:30px; color:var(--red); }
.register-cards span,.admin-grid span { display:block; margin-top:8px; color:var(--muted); }
.schedule-page { max-width:680px; padding-top:20px; }
dialog { max-width:min(480px,calc(100% - 32px)); border:1px solid var(--line); border-radius:12px; padding:26px; color:var(--text); box-shadow:0 20px 60px #18233433; }
dialog::backdrop { background:#18233477; }
dialog h2 { font-size:20px; margin-top:0; }
dialog p { line-height:1.7; }
dialog form { text-align:right; }
.login-body { min-height:100vh; display:grid; place-items:center; padding:20px; background:var(--red2); }
.login-card { width:min(390px,100%); background:#fff; padding:28px; border-radius:14px; box-shadow:0 20px 60px #36060c55; text-align:center; }
.login-card img { max-width:200px; width:100%; }
.login-card h2 { font-size:19px; }
.login-card form { text-align:left; }
.login-card label { display:block; margin-top:13px; font-weight:600; }
.login-card input,.login-card select { width:100%; padding:11px; border:1px solid #cbd4df; border-radius:6px; margin-top:5px; }
.login-card button { width:100%; margin-top:20px; padding:12px; background:var(--red); color:#fff; border:0; border-radius:6px; font-weight:600; }
@media (max-width:1750px) {
    .two-col { grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); }
    .notifications .notification-item { padding:10px 16px; }
    .metric { padding-left:52px; }
    .metric-icon { left:10px; width:32px; height:32px; }
}
@media (max-width:1350px) {
    .top-header { flex-wrap:wrap; gap:8px 14px; }
    .slogan { font-size:11px; }
    .dashboard-grid { grid-template-columns:minmax(0,1fr) 280px; }
    .metric-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .content { padding:16px; }
    .quick-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:1100px) {
    .slogan { flex-basis:100%; }
    .app-shell { grid-template-columns:210px minmax(0,1fr); }
    .dashboard-grid { grid-template-columns:minmax(0,1fr); }
    .right-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .create-btn { grid-column:1/-1; }
    .search-box { width:100%; }
    .user-box>div:last-child { display:none; }
}
@media (max-width:760px) {
    .two-col,.recent-row { grid-template-columns:minmax(0,1fr); }
    .app-shell { display:block; }
    .sidebar { display:none; position:static; height:auto; }
    .menu-open .sidebar { display:flex; }
    .sidebar-photo { display:none; }
    .brand { height:80px; }
    .menu-toggle { display:inline-flex; }
    .top-header { padding:12px; gap:8px; }
    .party-logo { width:32px; height:36px; }
    .organization-full { display:none; }
    .organization-short { display:inline; }
    .title-block h1 { font-size:clamp(11px,3vw,16px); white-space:nowrap; margin-bottom:3px; }
    .title-block p { font-size:clamp(8px,2.3vw,12px); letter-spacing:0; white-space:nowrap; }
    .slogan { margin:0; text-align:center; font-size:clamp(9px,2.55vw,12px); }
    .document-metadata { grid-template-columns:minmax(0,1fr); }
    .utility-bar { padding:12px; gap:12px; flex-wrap:wrap; }
    .utility-bar .search-box { flex:1; width:auto; }
    .utility-date { order:1; width:100%; padding-right:0; border-right:0; }
    .utility-date>div { display:flex; align-items:center; gap:10px; }
    .user-box { display:none; }
    .content { padding:12px; }
    .right-column,.register-cards,.admin-grid { grid-template-columns:minmax(0,1fr); }
    .page-title { flex-wrap:wrap; }
    .page-card { padding:16px; }
}
@media (max-width:430px) {
    .metric { padding:14px 10px 14px 48px; }
    .metric p { font-size:13px; }
    .quick-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .big-search,.filters { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    * { transition:none!important; }
}
.editor-form { display:grid; gap:18px; max-width:1100px; margin-top:20px; }
.editor-form label { display:grid; gap:7px; font-weight:600; }
.editor-form input:not([type=checkbox]),.editor-form select,.editor-form textarea { width:100%; min-width:0; padding:11px 12px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; color:#243449; font:inherit; }
.editor-form textarea { resize:vertical; }
.recipient-field { grid-column:1/-1; }.recipient-field>small { color:var(--muted); font-weight:400; line-height:1.4; }
.recipient-picker-open { justify-self:start; margin-top:3px; padding:8px 11px; }
.recipient-picker-dialog { width:min(680px,calc(100vw - 32px)); max-height:min(78vh,720px); padding:20px; border:0; border-radius:12px; box-shadow:0 18px 50px #14213d44; }
.recipient-picker-dialog::backdrop { background:#14213dbb; }.recipient-picker-heading { display:flex; justify-content:space-between; gap:18px; align-items:start; }.recipient-picker-heading h2 { margin:0; font-size:20px; }.recipient-picker-heading p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.recipient-picker-search { display:grid; gap:6px; margin:17px 0 10px; font-weight:600; }.recipient-picker-search input { padding:10px 11px; border:1px solid #cbd5e1; border-radius:7px; font:inherit; }
.recipient-picker-list { max-height:min(48vh,480px); overflow:auto; border:1px solid #e0e7ef; border-radius:8px; }.recipient-picker-option { display:grid; grid-template-columns:90px minmax(0,1fr) 24px; align-items:center; gap:10px; width:100%; padding:11px 13px; color:#243449; background:#fff; border:0; border-bottom:1px solid #edf0f4; text-align:left; font:inherit; cursor:pointer; }.recipient-picker-option:last-child { border-bottom:0; }.recipient-picker-option:hover,.recipient-picker-option:focus-visible { background:#f2f6fa; outline:0; }.recipient-picker-option strong { color:#31577e; }.recipient-picker-option span { overflow-wrap:anywhere; }.recipient-picker-option b { display:grid; place-items:center; width:23px; height:23px; color:#fff; background:#31577e; border-radius:50%; font-size:17px; font-weight:400; }.recipient-picker-empty { margin:12px 0 0; color:var(--muted); }
.recipient-picker-option.selected,.recipient-picker-option:disabled { color:#5e6d7f; background:#f5f8f6; cursor:default; }.recipient-picker-option.selected strong { color:#4d7660; }.recipient-picker-option.selected b { background:#4d7660; font-size:14px; font-weight:700; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.editor-form .check-label { display:inline-flex; align-items:center; gap:8px; margin:8px 18px 8px 0; }
.editor-form fieldset { border:1px solid #dbe3ed; border-radius:8px; padding:14px; }
.editor-form button { justify-self:start; }
.validation { color:#b91c1c; }
.validation:empty,.validation-summary-valid { display:none; }
.flash-message { padding:16px; margin-bottom:16px; border:1px solid #c7dfcf; border-radius:8px; background:#f0faf3; }
.actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.actions form,.logout-form { margin:0; }
.danger-btn { padding:10px 14px; border:1px solid #b91c1c; color:#b91c1c; background:white; border-radius:6px; cursor:pointer; }
.document-detail-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:24px; margin:20px 0; }
.pdf-viewer { width:100%; height:70vh; min-height:420px; border:1px solid #dbe3ed; border-radius:6px; }
.attachment-list article { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:16px 0; border-bottom:1px solid #e2e8f0; overflow-wrap:anywhere; }
.attachment-list small { width:100%; color:#64748b; }
.delete-section { margin-top:28px; color:#9f1239; }
.delete-section summary { cursor:pointer; }
.page-card table { width:100%; border-collapse:collapse; }
.page-card th,.page-card td { text-align:left; padding:12px; border-bottom:1px solid #e2e8f0; }
.page-card { overflow-x:auto; }
.logout-form button { border:0; background:transparent; color:var(--red); cursor:pointer; white-space:nowrap; }
.quick-create { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; grid-column:1/-1; }
.quick-create .create-btn { grid-column:auto; padding:12px 6px; font-size:13px; gap:5px; }
.document-entry { overflow:visible; }
.document-entry-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:24px; align-items:start; }
.document-entry .editor-form { min-width:0; max-width:none; }
.local-preview { min-width:0; margin-top:20px; padding:18px; border:1px solid var(--line); border-radius:10px; background:#f8fafc; position:sticky; top:125px; }
.preview-heading h3 { margin:0 0 6px; }
.preview-heading p,#preview-status { color:var(--muted); font-size:13px; }
.local-preview>label { display:block; margin-bottom:6px; font-weight:600; }
#preview-file { width:100%; padding:10px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; font:inherit; text-overflow:ellipsis; }
.editor-pdf-panel { margin-top:12px; }
.editor-pdf-panel[hidden] { display:none; }
.editor-pdf-panel .pdf-viewer { width:100%; height:min(68vh,850px); min-height:480px; border:1px solid #cbd5e1; border-radius:7px; background:#fff; }
.symbol-suggestion { display:block; margin-top:2px; color:#31577e; font-weight:400; }
.confirm-dialog { width:min(440px,calc(100vw - 32px)); padding:22px; border:0; border-radius:12px; box-shadow:0 18px 50px #14213d44; }
.confirm-dialog::backdrop { background:#14213dbb; }
.confirm-dialog h2 { margin:0 0 9px; font-size:20px; }.confirm-dialog p { margin:0; color:var(--muted); line-height:1.55; }
.confirm-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:20px; }.confirm-actions .secondary-btn,.confirm-actions .primary-btn { padding:10px 14px; }
@media(max-width:1250px) { .document-entry .form-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:900px) {
    .document-entry-grid { grid-template-columns:minmax(0,1fr); }
    .local-preview { position:static; grid-row:1; margin-top:10px; }
    .document-entry .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .editor-pdf-panel .pdf-viewer { min-height:400px; }
}
@media(max-width:600px) { .document-entry .form-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:900px) { .document-detail-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:760px) { .form-grid { grid-template-columns:minmax(0,1fr); } .pdf-viewer { height:60vh; min-height:320px; } }
.register-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.register-tabs a { padding:9px 12px; color:#405571; border:1px solid var(--line); border-radius:7px; font-size:14px; }
.register-tabs a:hover,.register-tabs a.active { color:#fff; background:#31577e; border-color:#31577e; text-decoration:none; }
.register-choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.register-choice-grid a { display:grid; gap:8px; min-height:154px; padding:20px; color:#405571; background:#fafbfc; border:1px solid var(--line); border-radius:var(--radius); }
.register-choice-grid a:hover { background:#f3f6f9; border-color:#9fb0c2; text-decoration:none; }
.register-choice-grid .icon { width:25px; height:25px; color:var(--red); }
.register-choice-grid strong { font-size:17px; }
.register-choice-grid span { color:var(--muted); font-size:13px; line-height:1.5; }
.document-table-wide { min-width:1050px; }
.document-group { display:inline-block; margin:0; padding:4px 7px; color:#405571; background:#edf2f7; border-radius:999px; font-size:12px; font-weight:600; white-space:nowrap; }
.kind-CongVanDen { color:#245789; background:#e8f2fb; }.kind-CongVanDi { color:#8d363d; background:#f9ebec; }.kind-VanBanNoiBo { color:#5e5678; background:#eeeefa; }
.document-reader-dialog { width:min(1400px,96vw); max-width:96vw; max-height:94vh; padding:20px; border:0; border-radius:10px; }
.document-reader-dialog::backdrop { background:#14213dbb; }
.document-reader-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.reader-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }.reader-actions .secondary-btn { padding:8px 10px; }
.document-reader-heading h2 { margin:7px 0 0; font-size:21px; overflow-wrap:anywhere; }
.reader-information { padding:14px; background:#f7f9fc; border:1px solid #e0e7ef; border-radius:8px; }
.reader-metadata { display:flex; flex-wrap:wrap; gap:0; margin:0; line-height:1.55; }
.reader-metadata span { overflow-wrap:anywhere; }.reader-metadata span+span::before { content:"; "; color:var(--muted); }.reader-metadata strong { color:#405571; }
.reader-file-list { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }.reader-file-list button { max-width:280px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:8px 10px; color:#31577e; background:#fff; border:1px solid #cbd5e1; border-radius:6px; }.reader-file-list button.active { color:#fff; background:#31577e; border-color:#31577e; }
.reader-scroll { height:min(63vh,850px); overflow:auto; padding:18px; background:#e4eaf1; border-radius:7px; }
.reader-page { display:grid; place-items:center; min-height:150px; margin:0 auto 16px; padding:12px; color:var(--muted); background:#fff; box-shadow:0 2px 8px #0002; }.reader-page canvas { display:block; max-width:100%; height:auto; }
.table-pagination { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:14px; }.table-pagination button { min-width:36px; padding:7px 10px; color:#31577e; background:#fff; border:1px solid #cbd5e1; border-radius:6px; }.table-pagination button:disabled { color:#fff; background:#31577e; border-color:#31577e; cursor:default; }
@media(max-width:800px) { .register-choice-grid { grid-template-columns:minmax(0,1fr); }.document-reader-dialog { width:100vw; max-width:100vw; max-height:100vh; min-height:100vh; border-radius:0; padding:14px; }.reader-scroll { height:57vh; padding:8px; } }
