.admin-overlay{position:fixed;inset:0;z-index:150;background:rgba(13,28,42,.58);padding:14px;backdrop-filter:blur(5px)}.admin-overlay.hidden{display:none}.admin-panel{width:min(1240px,100%);height:min(94vh,900px);margin:auto;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 34px 100px rgba(15,40,64,.34)}.admin-header{height:98px;padding:20px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.admin-header small{font-size:10px;color:var(--blue);font-weight:900;letter-spacing:.13em}.admin-header h2{margin:3px 0;color:#1f3447}.admin-user{display:grid;grid-template-columns:auto auto 42px;column-gap:9px;align-items:center;text-align:right}.admin-user small{grid-column:1/2;color:#7d8f9d}.admin-user button{grid-column:3;grid-row:1/3;border:0;width:42px;height:42px;border-radius:50%;background:#f0f4f7;font-size:22px}.admin-body{height:calc(100% - 98px);display:grid;grid-template-columns:220px 1fr}.admin-nav{background:#f5f8fa;border-right:1px solid var(--line);padding:14px 10px;overflow:auto}.admin-nav button{width:100%;border:0;background:transparent;border-radius:9px;text-align:left;padding:10px 11px;margin:2px 0;font-weight:700;color:#526675}.admin-nav button.active,.admin-nav button:hover{background:#fff;color:#214d78;box-shadow:0 2px 8px rgba(40,75,105,.06)}.admin-content{padding:24px 26px;overflow:auto}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-toolbar h3{margin:0;color:#253d52;font-size:22px}.admin-toolbar p{margin:3px 0 0;color:#758998;font-size:11px}.admin-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff}.stat b{display:block;color:#285f91;font-size:27px}.stat span{font-size:11px;color:#758a99}.manage-list{display:grid;gap:9px}.manage-item{border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#fff;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}.manage-item h4{margin:0 0 4px;font-size:14px}.manage-item p{margin:0;color:#7c8f9e;font-size:11px}.manage-actions{display:flex;gap:6px;flex-wrap:wrap}.manage-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 8px;font-size:10px;font-weight:800;color:#526b80}.manage-actions button.primary{border-color:var(--blue);background:var(--blue);color:#fff}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filter-row input,.filter-row select{border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.media-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.media-preview{height:120px;background:#eef4f8;display:grid;place-items:center;overflow:hidden}.media-preview img,.media-preview video{width:100%;height:100%;object-fit:cover}.media-doc{font-weight:900;color:#2f6fb8}.media-meta{padding:9px}.media-meta b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-meta span{font-size:9px;color:#81929f}.media-meta button{margin-top:7px;border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 7px;font-size:9px}.field-builder{display:grid;gap:8px}.field-row{display:grid;grid-template-columns:1.2fr .7fr 1.2fr auto;gap:7px}.scope-grid{display:grid;grid-template-columns:1fr repeat(3,80px);gap:6px;align-items:center}.scope-grid>div{display:contents}.scope-grid label{font-size:11px}.scope-grid input[type=checkbox]{justify-self:center}.editor-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}.editor-toolbar button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 8px;font-size:10px}.poster-preview{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:15px;background:#f8fbff}.poster-preview img{width:240px;height:240px}.poster-preview h3{color:var(--navy)}
@media(max-width:900px){.admin-body{grid-template-columns:180px 1fr}.stat-grid{grid-template-columns:1fr 1fr}.media-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.admin-overlay{padding:0}.admin-panel{width:100%;height:100vh;border-radius:0}.admin-header{height:82px;padding:15px}.admin-user{grid-template-columns:auto 38px}.admin-user small{display:none}.admin-user button{grid-column:2}.admin-body{display:block;height:calc(100% - 82px)}.admin-nav{height:auto;white-space:nowrap;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:7px}.admin-nav button{display:inline-block;width:auto;margin:0 2px}.admin-content{height:calc(100% - 54px);padding:15px}.admin-toolbar{align-items:flex-start;flex-direction:column}.stat-grid{grid-template-columns:1fr 1fr}.media-grid{grid-template-columns:1fr 1fr}.manage-item{grid-template-columns:1fr}.field-row{grid-template-columns:1fr 1fr}.field-row input:nth-child(3){grid-column:1/-1}.poster-preview{grid-template-columns:1fr}.poster-preview img{width:220px;height:220px}}
@media print{
  body>*:not(.modal){display:none!important}
  .modal{position:static!important;display:block!important;padding:0!important}
  .modal-backdrop,.modal-close{display:none!important}
  .modal-card{width:100%!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;padding:0!important}
  .poster-preview{min-height:95vh;border:0!important;display:flex!important;flex-direction:column!important;justify-content:center!important;text-align:center!important;background:#fff!important}
  .poster-preview img{width:300px!important;height:300px!important}
  .poster-preview button{display:none!important}
}

/* ==============================
   V2.0.2 - Admin UI polish
   ============================== */
.admin-overlay{padding:12px;background:rgba(17,34,49,.52)}
.admin-panel{border-radius:20px;border:1px solid rgba(213,228,241,.75);box-shadow:0 32px 90px rgba(15,40,64,.29)}
.admin-header{height:92px;padding:18px 25px;background:linear-gradient(180deg,#fff,#fbfdff)}
.admin-header h2{font-size:23px;letter-spacing:-.02em}
.admin-user{column-gap:10px}
.admin-user b{font-size:13px}
.admin-user button{width:40px;height:40px;background:#f2f6f9;color:#31495d;transition:.16s}
.admin-user button:hover{background:#e9f2fa;color:#1f5d94}
.admin-body{height:calc(100% - 92px);grid-template-columns:214px 1fr}
.admin-nav{background:#f4f8fb;padding:16px 10px}
.admin-nav button{padding:10px 12px;margin:2px 0;border:1px solid transparent;font-size:13px}
.admin-nav button.active{background:#fff;border-color:#e5eef5;color:#214d78;box-shadow:0 5px 16px rgba(40,75,105,.07)}
.admin-content{padding:26px 28px;background:#fff}
.admin-toolbar{margin-bottom:20px}
.admin-toolbar h3{font-size:24px;letter-spacing:-.025em;color:#203a50}
.admin-toolbar p{font-size:11px;max-width:720px}
.filter-row{padding:10px;border:1px solid #e5edf4;border-radius:12px;background:#f8fbfe;margin-bottom:16px}
.filter-row input,.filter-row select{min-height:38px;border-color:#d5e2ee}
.manage-list{gap:10px}
.manage-item{border-color:#dfe9f1;padding:14px 15px;box-shadow:0 2px 8px rgba(29,67,101,.025)}
.manage-item:hover{border-color:#c8dced;background:#fcfeff}
.manage-actions button{min-height:31px}
.stat{border-color:#dfe9f1;background:linear-gradient(180deg,#fff,#fbfdff)}
.stat b{font-size:28px}
.media-card{border-color:#dfe9f1;box-shadow:0 3px 12px rgba(35,73,107,.035)}
.table-wrap{box-shadow:0 2px 8px rgba(35,73,107,.025)}

/* User / permission editor */
.user-editor{padding-bottom:4px}
.editor-heading{padding-right:42px;margin-bottom:18px}
.editor-heading h2{margin:7px 0 4px;color:#203b53;font-size:27px;letter-spacing:-.03em}
.editor-heading p{margin:0;max-width:760px}
.editor-section{border:1px solid #dfe9f2;border-radius:16px;background:#fff;padding:18px;margin-top:4px;box-shadow:0 4px 14px rgba(36,76,112,.035)}
.editor-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:15px;padding-bottom:12px;border-bottom:1px solid #edf2f6}
.editor-section-title h3{margin:0;color:#29475f;font-size:16px}
.editor-section-title p{margin:3px 0 0;color:#7b8e9e;font-size:11px}
.switch-row{display:flex;align-items:center;gap:8px;white-space:nowrap;padding:8px 10px;border:1px solid #dce8f1;border-radius:10px;background:#f8fbfe;color:#405b71;font-size:11px;font-weight:800}
.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.permission-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:54px;padding:10px 12px;border:1px solid #e2ebf2;border-radius:12px;background:#fbfdff;cursor:pointer;transition:.16s}
.permission-toggle:hover{border-color:#bfd7ec;background:#f5faff}
.permission-toggle>span{display:grid;min-width:0}
.permission-toggle b{font-size:12px;color:#314b61}
.permission-toggle small{font-size:9px;color:#97a6b2;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.permission-toggle input{flex:0 0 auto}
.scope-table{border:1px solid #dfe9f2;border-radius:13px;overflow:hidden}
.scope-head,.scope-row{display:grid;grid-template-columns:minmax(210px,1fr) 88px 88px 100px;align-items:center;min-height:45px}
.scope-head{background:#f3f8fc;color:#4a6276;font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.scope-head b{padding:0 13px;text-align:center}.scope-head b:first-child{text-align:left}
.scope-row{border-top:1px solid #edf2f6;background:#fff}
.scope-row:hover{background:#fbfdff}
.scope-row label{padding:10px 13px;font-size:12px;font-weight:700;color:#3d566b}
.scope-row input{justify-self:center}
.sticky-save{position:sticky;bottom:-28px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:15px;margin:4px -28px -28px;padding:13px 28px;border-top:1px solid #dfe8f0;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 -8px 22px rgba(29,66,99,.06)}
.sticky-save>div{display:flex;gap:8px}
.sticky-save .primary{min-width:145px}

@media(max-width:900px){
  .admin-body{grid-template-columns:176px 1fr}
  .permission-grid{grid-template-columns:1fr}
  .scope-head,.scope-row{grid-template-columns:minmax(180px,1fr) 76px 76px 88px}
}
@media(max-width:760px){
  .admin-header{height:76px;padding:13px 14px}.admin-header h2{font-size:19px}.admin-header small{font-size:8px}
  .admin-body{height:calc(100% - 76px)}.admin-nav{padding:7px;background:#f6f9fb}.admin-content{padding:15px}
  .admin-toolbar h3{font-size:21px}.filter-row{padding:8px}.filter-row>*{flex:1 1 145px;min-width:0}
  .editor-heading{padding-right:35px}.editor-heading h2{font-size:23px}.editor-section{padding:14px;border-radius:13px}
  .editor-section-title{flex-direction:column;gap:9px}.switch-row{width:100%;justify-content:space-between}
  .scope-table{overflow:auto}.scope-head,.scope-row{min-width:570px;grid-template-columns:minmax(220px,1fr) 92px 92px 108px}
  .sticky-save{bottom:-15px;margin:4px -15px -15px;padding:11px 15px}.sticky-save>.hint{display:none}.sticky-save>div{width:100%}.sticky-save button{flex:1}
}


/* V2.1.4.4 – QR Print Size Pro */
.qr-modal{gap:14px}
.qr-pro-toolbar{display:grid;gap:12px}.qr-pro-toolbar-main{grid-template-columns:1.05fr .75fr .75fr 1.45fr}.qr-pro-toolbar .field span{display:block;font-size:12px;font-weight:800;color:#55728d;margin-bottom:6px}
.qr-custom-size{display:grid;grid-template-columns:1fr 140px auto 140px;gap:10px;align-items:end;padding:12px 14px;border:1px solid #dbe8f4;border-radius:14px;background:#f8fbff}.qr-custom-size.hidden{display:none}.qr-custom-size>div b{display:block;color:#294d70;font-size:12px}.qr-custom-size>div span{display:block;color:#8294a2;font-size:10px;margin-top:2px}.qr-custom-size>span{align-self:center;color:#7a8d9d;font-weight:900}.qr-custom-size label{font-size:10px;font-weight:800;color:#657b8e}.qr-custom-size input{width:100%;margin-top:5px;border:1px solid #cfdeeb;border-radius:9px;padding:8px 9px;background:#fff}
.qr-print-note{padding:9px 12px;border:1px solid #dbe8f4;border-radius:11px;background:#f8fbff;color:#6b8296;font-size:10px;line-height:1.45}
.qr-theme-section{display:grid;gap:8px}.qr-theme-title{display:flex;align-items:end;justify-content:space-between;gap:10px}.qr-theme-title b{color:#294963;font-size:12px}.qr-theme-title span{font-size:10px;color:#8294a2}.qr-theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.qr-theme-card{display:flex;align-items:center;gap:8px;border:1px solid #dce7f0;background:#fff;border-radius:11px;padding:8px;text-align:left;cursor:pointer}.qr-theme-card:hover{border-color:#bad3eb;background:#fbfdff}.qr-theme-card.active{border-color:#4a90e2;box-shadow:0 0 0 2px rgba(74,144,226,.10);background:#f7fbff}.qr-theme-card span{min-width:0}.qr-theme-card b{display:block;font-size:11px;color:#2d465d}.qr-theme-card small{display:block;margin-top:2px;font-size:9px;color:#8294a2}.qr-theme-swatch{width:30px;height:30px;flex:0 0 30px;border-radius:8px;border:1px solid rgba(0,0,0,.06);box-shadow:inset 0 0 0 3px rgba(255,255,255,.55)}.qr-theme-swatch.corporate{background:linear-gradient(135deg,#397fd0,#78cfe1)}.qr-theme-swatch.hovtec{background:linear-gradient(135deg,#c51f1a,#ff8b73)}.qr-theme-swatch.ocean{background:linear-gradient(135deg,#1877b8,#46cfca)}.qr-theme-swatch.emerald{background:linear-gradient(135deg,#168463,#70d8b2)}.qr-theme-swatch.audit{background:linear-gradient(135deg,#24394d,#64819a)}.qr-theme-swatch.minimal{background:linear-gradient(135deg,#ffffff,#d7e0e7)}.qr-theme-swatch.gold{background:linear-gradient(135deg,#9e7421,#f0d887)}.qr-theme-swatch.violet{background:linear-gradient(135deg,#6f46a8,#c3a4ed)}
.qr-poster-preview-card{--qr-outer-1:#ecf5ff;--qr-outer-2:#fbfdff;--qr-outer-3:#eefbff;--qr-border:#cfe0f4;--qr-inner:#d7e6f4;--qr-accent:linear-gradient(90deg,#397fd0,#63aaf2 55%,#78cfe1);--qr-title:#1f4670;--qr-meta-bg:#e8f3ff;--qr-meta-border:#cfe3f6;--qr-meta-text:#2d628f;--qr-box-border:#c9def1;--qr-box-inset:#f6fbff;position:relative;width:min(100%,var(--qr-preview-max,820px));margin:0 auto;border:2px solid var(--qr-border);border-radius:22px;padding:9px;background:linear-gradient(135deg,var(--qr-outer-1) 0%,var(--qr-outer-2) 36%,var(--qr-outer-3) 100%);box-shadow:0 16px 38px rgba(45,95,145,.08);overflow:hidden;min-height:300px}
.qr-size-chip{position:absolute;right:12px;bottom:10px;z-index:3;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid var(--qr-border);color:#60798f;font-size:9px;font-weight:800;backdrop-filter:blur(5px)}
.qr-poster-shell{position:relative;width:100%;height:100%;border:1.5px solid var(--qr-inner);border-radius:18px;background:#fff;padding:12px 14px;box-shadow:inset 0 0 0 2px #f6fbff,0 10px 30px rgba(54,96,146,.06);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start}.qr-poster-accent{position:absolute;left:0;top:0;right:0;height:11px;background:var(--qr-accent)}
.qr-poster-top{display:flex;justify-content:center;align-items:center;gap:10px;margin:6px 0 10px}.qr-poster-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;text-align:center}.qr-poster-brand>div{display:block;width:100%;text-align:center}.qr-poster-brand img{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:10px;padding:2px;border:1px solid var(--qr-inner)}.qr-poster-brand b{display:block;color:#1f3447;font-size:14px;line-height:1.25;text-align:center;text-wrap:balance}
.qr-poster-grid{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:12px;align-items:start;margin-top:2px}.qr-poster-grid.landscape{grid-template-columns:1.18fr 236px}.qr-poster-grid.compact{grid-template-columns:minmax(0,1fr) 228px;gap:10px}.qr-poster-copy{padding-top:2px}.qr-poster-copy h2{margin:0 0 7px;color:var(--qr-title);font-size:24px;line-height:1.12}.qr-poster-copy.compact h2{font-size:22px}.qr-poster-copy .lead{margin:0;color:#5f7a92;line-height:1.45;font-size:13px}.qr-poster-meta{display:inline-block;margin-top:10px;padding:7px 12px;border-radius:999px;background:var(--qr-meta-bg);border:1px solid var(--qr-meta-border);color:var(--qr-meta-text);font-size:12px;font-weight:700}
.qr-poster-code{text-align:center;align-self:start}.qr-box{display:inline-flex;align-items:center;justify-content:center;width:210px;height:210px;background:#fff;border:1.5px solid var(--qr-box-border);border-radius:20px;box-shadow:0 10px 24px rgba(46,94,138,.08),inset 0 0 0 4px var(--qr-box-inset)}.qr-box.compact{width:196px;height:196px}.qr-box img{width:176px;height:176px}.qr-box.compact img{width:164px;height:164px}.qr-poster-code p{margin:6px 0 0;font-size:10px;color:#6a8093}.qr-poster-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.qr-shape-tall .qr-poster-top{margin-bottom:6px}.qr-shape-tall .qr-poster-grid{grid-template-columns:1.15fr 150px;gap:8px}.qr-shape-tall .qr-poster-copy h2{font-size:20px;line-height:1.08;margin-bottom:5px}.qr-shape-tall .qr-poster-copy .lead{font-size:11px;line-height:1.34}.qr-shape-tall .qr-box,.qr-shape-tall .qr-box.compact{width:144px;height:144px;border-radius:18px}.qr-shape-tall .qr-box img,.qr-shape-tall .qr-box.compact img{width:122px;height:122px}.qr-shape-tall .qr-poster-code p{font-size:9px;margin-top:4px}
.qr-density-tiny .qr-poster-shell{padding:10px}.qr-density-tiny .qr-poster-brand img{width:38px;height:38px}.qr-density-tiny .qr-poster-brand b{font-size:10.5px;line-height:1.22}.qr-density-tiny .qr-poster-grid{grid-template-columns:1fr;gap:6px}.qr-density-tiny .qr-poster-copy h2{font-size:17px;margin-bottom:4px}.qr-density-tiny .qr-poster-copy .lead{font-size:10px;line-height:1.35}.qr-density-tiny .qr-poster-meta{font-size:9px;margin-top:5px;padding:4px 7px}.qr-density-tiny .qr-box,.qr-density-tiny .qr-box.compact{width:142px;height:142px}.qr-density-tiny .qr-box img,.qr-density-tiny .qr-box.compact img{width:120px;height:120px}.qr-density-tiny .qr-poster-code p{font-size:8px;margin-top:3px}.qr-density-tiny.qr-shape-tall .qr-poster-grid{grid-template-columns:1fr 128px;gap:5px}.qr-density-tiny.qr-shape-tall .qr-box,.qr-density-tiny.qr-shape-tall .qr-box.compact{width:122px;height:122px}.qr-density-tiny.qr-shape-tall .qr-box img,.qr-density-tiny.qr-shape-tall .qr-box.compact img{width:102px;height:102px}
.qr-density-small .qr-poster-brand img{width:42px;height:42px}.qr-density-small .qr-poster-brand b{font-size:11.5px;line-height:1.23}.qr-density-small .qr-poster-grid{grid-template-columns:minmax(0,1fr) 190px;gap:8px}.qr-density-small .qr-poster-copy h2{font-size:19px}.qr-density-small .qr-poster-copy .lead{font-size:11px}.qr-density-small .qr-box,.qr-density-small .qr-box.compact{width:164px;height:164px}.qr-density-small .qr-box img,.qr-density-small .qr-box.compact img{width:138px;height:138px}.qr-density-small.qr-shape-tall .qr-poster-grid{grid-template-columns:1.1fr 146px;gap:6px}.qr-density-small.qr-shape-tall .qr-box,.qr-density-small.qr-shape-tall .qr-box.compact{width:138px;height:138px}.qr-density-small.qr-shape-tall .qr-box img,.qr-density-small.qr-shape-tall .qr-box.compact img{width:116px;height:116px}
.qr-theme-hovtec{--qr-outer-1:#fff1f0;--qr-outer-2:#fff;--qr-outer-3:#fff7f6;--qr-border:#f0c9c6;--qr-inner:#edd8d6;--qr-accent:linear-gradient(90deg,#c51f1a,#e64a42 55%,#ff8b73);--qr-title:#8f211d;--qr-meta-bg:#fff0ef;--qr-meta-border:#f3cbc8;--qr-meta-text:#a32823;--qr-box-border:#edcfcd;--qr-box-inset:#fff8f7}.qr-theme-ocean{--qr-outer-1:#e8f7ff;--qr-outer-2:#fff;--qr-outer-3:#ecfbff;--qr-border:#b9e1f0;--qr-inner:#cbe8f2;--qr-accent:linear-gradient(90deg,#1877b8,#32a4d2 50%,#46cfca);--qr-title:#12628e;--qr-meta-bg:#e6f9fb;--qr-meta-border:#bce7e9;--qr-meta-text:#14778a;--qr-box-border:#bfe2eb;--qr-box-inset:#f4fdff}.qr-theme-emerald{--qr-outer-1:#ecfaf5;--qr-outer-2:#fff;--qr-outer-3:#f0fff9;--qr-border:#c0e6d7;--qr-inner:#cee9df;--qr-accent:linear-gradient(90deg,#168463,#2fac83 55%,#70d8b2);--qr-title:#17654f;--qr-meta-bg:#eaf9f3;--qr-meta-border:#c7e8da;--qr-meta-text:#23745c;--qr-box-border:#cae7dc;--qr-box-inset:#f6fdfa}.qr-theme-audit{--qr-outer-1:#edf2f7;--qr-outer-2:#fff;--qr-outer-3:#f4f7fa;--qr-border:#bdcbd7;--qr-inner:#d0dae3;--qr-accent:linear-gradient(90deg,#24394d,#36566f 55%,#64819a);--qr-title:#22394d;--qr-meta-bg:#eef2f6;--qr-meta-border:#cfd9e1;--qr-meta-text:#3d5366;--qr-box-border:#cbd7e1;--qr-box-inset:#f7f9fb}.qr-theme-minimal{--qr-outer-1:#fff;--qr-outer-2:#fff;--qr-outer-3:#fff;--qr-border:#cfd8df;--qr-inner:#d8e0e6;--qr-accent:linear-gradient(90deg,#73899a,#9aadb9);--qr-title:#263d4e;--qr-meta-bg:#f7f9fa;--qr-meta-border:#dce3e8;--qr-meta-text:#506573;--qr-box-border:#d4dde3;--qr-box-inset:#fff;box-shadow:none}.qr-theme-gold{--qr-outer-1:#fff9e8;--qr-outer-2:#fff;--qr-outer-3:#fff5d8;--qr-border:#e9d79a;--qr-inner:#eadfb9;--qr-accent:linear-gradient(90deg,#9e7421,#d5ae4f 55%,#f0d887);--qr-title:#765515;--qr-meta-bg:#fff8df;--qr-meta-border:#eadba4;--qr-meta-text:#806019;--qr-box-border:#eadfae;--qr-box-inset:#fffdf5}.qr-theme-violet{--qr-outer-1:#f6efff;--qr-outer-2:#fff;--qr-outer-3:#f9f4ff;--qr-border:#d9c7f1;--qr-inner:#e1d6ef;--qr-accent:linear-gradient(90deg,#6f46a8,#9067c6 55%,#c3a4ed);--qr-title:#5e388d;--qr-meta-bg:#f5effd;--qr-meta-border:#ded0ef;--qr-meta-text:#70479b;--qr-box-border:#ded2ed;--qr-box-inset:#fbf8ff}.qr-theme-minimal .qr-poster-shell,.qr-theme-minimal .qr-box{box-shadow:none}
@media(max-width:980px){.qr-pro-toolbar-main{grid-template-columns:1fr 1fr}.qr-theme-grid{grid-template-columns:1fr 1fr}.qr-custom-size{grid-template-columns:1fr 110px auto 110px}.qr-poster-grid,.qr-poster-grid.landscape,.qr-poster-grid.compact,.qr-shape-tall .qr-poster-grid,.qr-density-tiny.qr-shape-tall .qr-poster-grid,.qr-density-small.qr-shape-tall .qr-poster-grid{grid-template-columns:1fr}.qr-poster-actions{justify-content:stretch}.qr-poster-actions button{flex:1 1 100%}}
@media(max-width:600px){.qr-pro-toolbar-main{grid-template-columns:1fr}.qr-theme-grid{grid-template-columns:1fr}.qr-custom-size{grid-template-columns:1fr 1fr}.qr-custom-size>div{grid-column:1/-1}.qr-custom-size>span{display:none}.qr-theme-title{align-items:flex-start;flex-direction:column;gap:2px}.qr-poster-preview-card{min-height:280px}.qr-size-chip{position:static;display:inline-flex;margin:8px 0 0}}

/* V2.0.4 – archive/delete forms */
.manage-item.is-archived{background:#f8fafc;border-style:dashed;opacity:.82}.manage-item.is-archived h4{color:#687d8e}
.manage-actions button.danger{border-color:#f0c8c8;color:#b42318;background:#fff7f7}.manage-actions button.danger:hover{background:#fff0f0;border-color:#e8aaaa}

/* V2.1.0 - Training admin */
.training-builder{display:grid;gap:10px}.builder-card{border:1px solid #dce7f0;border-radius:14px;padding:13px;background:#fbfdff}.builder-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.builder-card-head b{color:#35536e}.danger.compact{padding:4px 9px;font-size:13px}.training-stat{grid-template-columns:repeat(4,1fr)}
.training-editor .editor-section{margin-bottom:14px}
@media(max-width:760px){.training-stat{grid-template-columns:1fr 1fr}.builder-card .grid2{grid-template-columns:1fr}}


/* V2.1.1 - Training direct upload */
.training-upload-tip{margin:0 0 12px;padding:11px 13px;border:1px solid #d8e8f6;border-radius:12px;background:#f4f9ff;color:#55728d;font-size:11px;line-height:1.55}
.training-material-builder .builder-card-head>div{display:grid;gap:2px}.training-material-builder .builder-card-head small{font-size:10px;color:#8294a2;font-weight:500}
.training-file-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.training-upload-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #4a90e2;background:#4a90e2;color:#fff;border-radius:10px;padding:9px 13px;font-size:11px;font-weight:850;cursor:pointer}.training-upload-button:hover{background:#397fcf}.training-file-hint{font-size:10px;color:#8295a5}
.training-selected-file{margin-bottom:11px}.training-file-empty{border:1px dashed #cfdeea;border-radius:11px;padding:11px 12px;color:#8194a3;font-size:11px;background:#fff}.training-file-card{display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center;border:1px solid #dbe8f2;border-radius:12px;padding:9px;background:#fff}.training-file-card img,.training-file-icon{width:54px;height:54px;border-radius:9px;object-fit:cover;background:#eaf4ff;display:grid;place-items:center;color:#2f6fb8;font-weight:900;font-size:10px}.training-file-card b{display:block;color:#314f69;font-size:12px;word-break:break-word}.training-file-card span{display:block;color:#8295a5;font-size:9px;margin:2px 0}.training-file-card a{font-size:10px;color:#2f6fb8;font-weight:700}
.training-library-chooser{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;padding-top:10px;border-top:1px solid #e8eff5}.training-required-check{display:flex;align-items:center;gap:8px;align-self:end;min-height:42px;font-size:11px;font-weight:700;color:#526b80}.training-file-status{min-height:16px;margin-top:7px;font-size:10px}.training-file-status.uploading{color:#5d7d9b}.training-file-status.success{color:#23724c}.training-file-status.error{color:#b42318}
@media(max-width:760px){.training-library-chooser{grid-template-columns:1fr}.training-file-tools{align-items:stretch}.training-upload-button{width:100%}.training-file-hint{width:100%}}


/* ==============================
   V2.1.2 - Content direct upload
   ============================== */
.content-editor-v212 .editor-heading{margin-bottom:14px}.field-label{display:block;font-weight:700;margin-bottom:6px}.content-upload-actions{display:flex;gap:8px;flex-wrap:wrap}.upload-label{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.content-media-chooser{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(280px,1.25fr) auto;gap:9px;align-items:end}.content-upload-status{min-height:18px;margin-top:7px;font-size:11px;color:#6d8293}.content-upload-status.uploading{color:#2f6fb8}.content-upload-status.success{color:#1f7a50}.content-upload-status.error{color:#b42318}.content-cover-preview{margin-top:10px}.content-cover-chip{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #dbe8f3;border-radius:13px;background:#f8fbfe}.content-cover-chip img{width:94px;height:58px;object-fit:cover;border-radius:9px;background:#edf3f8}.content-cover-chip b{display:block;font-size:12px;color:#263f56}.content-cover-chip span{display:block;margin-top:3px;font-size:10px;color:#7a8f9f}.content-cover-empty{padding:12px;border:1px dashed #ccdeed;border-radius:11px;background:#fbfdff;color:#8193a1;font-size:11px}.content-selected-files{display:grid;gap:8px;margin:9px 0 12px}.content-file-chip{display:grid;grid-template-columns:54px 1fr 34px;gap:10px;align-items:center;border:1px solid #dce7f0;border-radius:12px;padding:8px 9px;background:#fff}.content-file-chip b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content-file-chip small{display:block;margin-top:2px;font-size:9px;color:#8495a2}.content-file-chip>button{width:30px;height:30px;border:1px solid #f1c9c9;background:#fff5f5;color:#b42318;border-radius:8px;font-weight:900}.content-file-kind{display:grid;place-items:center;height:32px;border-radius:8px;background:#edf5ff;color:#2f6fb8;font-size:9px;font-weight:900}.content-file-kind.video{background:#f4efff;color:#7251b5}.content-file-kind.document{background:#fff2ed;color:#b64f32}
@media(max-width:760px){.content-media-chooser{grid-template-columns:1fr}.content-media-chooser>button{width:100%}.content-upload-actions>*{flex:1}.content-file-chip{grid-template-columns:48px minmax(0,1fr) 34px}}

/* ==============================
   V2.1.4.6 - QR Layout Studio
   ============================== */
.qr-poster-preview-card{min-height:300px}
.qr-poster-shell{padding:12px 14px 14px}
.qr-poster-top{margin:6px 0 var(--qr-gap,10px)}
.qr-poster-brand img{width:var(--qr-brand,44px);height:var(--qr-brand,44px)}
.qr-poster-brand b{font-size:clamp(11px,calc(var(--qr-brand,44px) * .3),15px);line-height:1.15}
.qr-poster-copy h2{font-size:var(--qr-title,22px);line-height:1.1;margin:0 0 6px}
.qr-poster-copy .lead,.qr-poster-focus-note .lead{font-size:var(--qr-lead,12px);line-height:1.42;margin:0;color:#5f7a92}
.qr-poster-meta{margin-top:9px;font-size:var(--qr-meta,11px);padding:6px 11px}
.qr-box{width:var(--qr-box,180px);height:var(--qr-box,180px);border-radius:18px}
.qr-box img{width:var(--qr-qr,154px);height:var(--qr-qr,154px)}
.qr-poster-code p{margin:6px 0 0;font-size:10px;line-height:1.25}
.qr-poster-grid,.qr-poster-stack,.qr-poster-focus{display:grid;gap:var(--qr-gap,10px);align-items:start}
.qr-layout-side .qr-poster-grid{grid-template-columns:minmax(0,1fr) var(--qr-side-col,180px)}
.qr-layout-stacked .qr-poster-stack{grid-template-columns:1fr}
.qr-layout-stacked .qr-poster-code{justify-self:center;text-align:center}
.qr-layout-stacked .qr-poster-copy{text-align:left}
.qr-layout-focus .qr-poster-focus{grid-template-columns:1fr;justify-items:center;text-align:center}
.qr-layout-focus .qr-poster-copy.focus-head,.qr-layout-focus .qr-poster-focus-note{max-width:88%;text-align:center}
.qr-layout-focus .qr-box{width:calc(var(--qr-box,180px) * 1.04);height:calc(var(--qr-box,180px) * 1.04)}
.qr-layout-focus .qr-box img{width:calc(var(--qr-qr,154px) * 1.03);height:calc(var(--qr-qr,154px) * 1.03)}
.qr-layout-focus .qr-poster-code{justify-self:center}
.qr-layout-focus .qr-poster-meta{margin-top:10px}
.qr-layout-focus .qr-poster-copy h2{margin-bottom:2px}
.qr-shape-tall.qr-layout-side .qr-poster-grid{grid-template-columns:minmax(0,1fr) var(--qr-side-col,150px)}
.qr-shape-tall.qr-layout-side .qr-poster-copy h2{font-size:calc(var(--qr-title,22px) - 1px)}
.qr-density-tiny .qr-poster-shell{padding:10px 10px 12px}
.qr-density-tiny .qr-poster-top{margin-bottom:6px}
.qr-density-tiny .qr-size-chip{font-size:8px;padding:4px 7px}
.qr-density-tiny .qr-poster-code p{font-size:8px;margin-top:4px}
.qr-density-small .qr-poster-code p{font-size:9px}
.qr-density-tiny.qr-layout-stacked .qr-poster-copy,.qr-density-small.qr-layout-stacked .qr-poster-copy{text-align:center}
.qr-density-tiny.qr-layout-focus .qr-poster-focus-note,.qr-density-small.qr-layout-focus .qr-poster-focus-note{max-width:94%}
.qr-density-tiny.qr-layout-side .qr-poster-grid{grid-template-columns:minmax(0,1fr) var(--qr-side-col,128px)}
.qr-density-small.qr-layout-side .qr-poster-grid{grid-template-columns:minmax(0,1fr) var(--qr-side-col,150px)}
@media(max-width:980px){
  .qr-layout-side .qr-poster-grid,.qr-layout-stacked .qr-poster-stack,.qr-layout-focus .qr-poster-focus{grid-template-columns:1fr}
  .qr-layout-side .qr-poster-code,.qr-layout-stacked .qr-poster-code,.qr-layout-focus .qr-poster-code{justify-self:center}
  .qr-layout-side .qr-poster-copy,.qr-layout-stacked .qr-poster-copy,.qr-layout-focus .qr-poster-copy{text-align:left}
  .qr-layout-focus .qr-poster-copy.focus-head,.qr-layout-focus .qr-poster-focus-note{max-width:100%;text-align:center}
}
@media(max-width:600px){
  .qr-poster-preview-card{min-height:280px}
  .qr-size-chip{position:static;display:inline-flex;margin:8px 0 0}
}

/* V2.1.4.7 - QR print match polish */
.qr-layout-stacked .qr-poster-stack{align-content:start;justify-items:center}
.qr-layout-stacked .qr-poster-copy{width:100%}
.qr-layout-stacked .qr-poster-copy h2{margin-bottom:4px;text-wrap:balance}
.qr-layout-stacked .qr-poster-copy .lead{text-wrap:pretty}
.qr-layout-stacked .qr-poster-meta{margin-top:8px}
.qr-density-small.qr-layout-stacked .qr-box{width:184px;height:184px}
.qr-density-small.qr-layout-stacked .qr-box img{width:156px;height:156px}
.qr-density-tiny.qr-layout-stacked .qr-box{width:156px;height:156px}
.qr-density-tiny.qr-layout-stacked .qr-box img{width:130px;height:130px}
.qr-density-small.qr-layout-stacked .qr-poster-code p,.qr-density-tiny.qr-layout-stacked .qr-poster-code p{margin-top:4px}

/* ==============================
   V2.1.4.10 - QR Single Print Cleanup
   ============================== */
.qr-layout-compact .qr-poster-shell{padding:10px 11px 12px}.qr-layout-compact .qr-poster-top{margin:4px 0 5px}.qr-layout-compact .qr-poster-brand{gap:7px}.qr-layout-compact .qr-poster-brand b{font-size:11px}.qr-layout-compact .qr-poster-compact{display:grid;grid-template-columns:1fr;gap:var(--qr-gap,5px);justify-items:center;text-align:center}.qr-layout-compact .qr-poster-copy.compact-head{width:100%;text-align:center}.qr-layout-compact .qr-poster-copy.compact-head h2{font-size:var(--qr-title,16px);line-height:1.06;margin:0}.qr-layout-compact .qr-poster-code{justify-self:center}.qr-layout-compact .qr-poster-compact-note{max-width:94%;display:grid;justify-items:center;gap:4px}.qr-layout-compact .qr-poster-compact-note .lead{font-size:var(--qr-lead,9px);line-height:1.28;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.qr-layout-compact .qr-poster-meta{margin-top:0}.qr-layout-compact .qr-box{width:var(--qr-box,154px);height:var(--qr-box,154px)}.qr-layout-compact .qr-box img{width:var(--qr-qr,132px);height:var(--qr-qr,132px)}
.qr-layout-stacked .qr-poster-stack{justify-items:center;text-align:center}.qr-layout-stacked .qr-poster-copy{display:grid;justify-items:center;text-align:center}.qr-layout-stacked .qr-poster-copy h2,.qr-layout-stacked .qr-poster-copy .lead{text-align:center}.qr-layout-stacked .qr-poster-meta{justify-self:center}


/* V2.1.5 - latest news settings */
.latest-settings-preview{padding:12px 14px;border:1px solid #dbe8f4;border-radius:12px;background:#f7fbff}.latest-settings-preview b{display:block;color:#345a7b;font-size:12px}.latest-settings-preview p{margin:4px 0 0;color:#6f8597;font-size:11px;line-height:1.55}

/* V2.1.6 content workflow clarity */
.content-visibility-note{margin:4px 0 0!important;color:#a05a16!important;font-size:10px!important;font-weight:700}.manage-actions [data-content-act="publish_now"]{background:#2f7ac2;color:#fff;border-color:#2f7ac2}


/* V2.1.7 - Featured content manager */
.featured-manager-preview{display:grid;grid-template-columns:210px 1fr;gap:16px;align-items:center;border:1px solid #d8e6f3;border-radius:16px;padding:12px;background:#f8fbff}.featured-manager-preview img{width:210px;height:125px;object-fit:cover;border-radius:12px;background:#eef4f8}.featured-manager-preview small{color:#4a86d4;font-weight:800;letter-spacing:.06em}.featured-manager-preview h3{margin:5px 0 6px;color:#1f456b;font-size:18px}.featured-manager-preview p{margin:0;color:#617b91;line-height:1.5}.featured-manager-preview time{display:block;margin-top:7px;font-size:10px;color:#8a9aa8}.featured-manager-empty,.featured-manager-help{border:1px dashed #cbddec;border-radius:14px;padding:14px;background:#fbfdff;color:#647d92}.featured-manager-empty b,.featured-manager-help b{color:#284b6b}.featured-manager-empty p,.featured-manager-help p{margin:4px 0 0;line-height:1.55}.modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.featured-manager-preview{grid-template-columns:1fr}.featured-manager-preview img{width:100%;height:180px}.modal-actions button{flex:1 1 100%}}

/* V2.2.0 – Homepage Manager */
.site-manager-grid{display:grid;gap:18px}.site-layout-panel{background:linear-gradient(180deg,#fbfdff,#f5f9fd)}
.site-global-toggles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.site-section-list{display:grid;gap:8px}.site-section-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid #dbe7f2;border-radius:14px;background:#fff}.site-section-order{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#eef6ff;color:#3778c6;font-weight:900;font-size:12px}.site-section-row b{display:block;color:#243b52}.site-section-row small{display:block;color:#7890a3;margin-top:2px}.site-visible-toggle{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #dbe7f2;border-radius:999px;background:#f9fcff;font-size:11px;font-weight:800;color:#526d84}.site-visible-toggle input{accent-color:#4a90e2}.site-order-actions{display:flex;gap:5px}.site-order-actions button{width:34px;height:34px;padding:0;border:1px solid #d6e4f0;border-radius:9px;background:#fff;color:#3d6f9f;font-weight:900}.site-order-actions button:disabled{opacity:.35;cursor:not-allowed}.site-facts-editor{display:grid;gap:9px}.site-fact-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:5px}.site-fact-head span{font-size:11px;color:#7a90a4}.site-fact-row{display:grid;grid-template-columns:150px 1fr;gap:10px}.site-sticky-save{margin-top:18px}
@media(max-width:760px){.site-global-toggles{grid-template-columns:1fr}.site-section-row{grid-template-columns:38px minmax(0,1fr) auto}.site-order-actions{grid-column:2/4;justify-content:flex-end}.site-fact-row{grid-template-columns:1fr}.site-fact-head{align-items:flex-start;flex-direction:column}}

/* V2.3.7 – Hero Content Manager */
.site-hero-panel{background:linear-gradient(180deg,#fbfdff,#f6faff)}
.site-hero-editor{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px;align-items:start}
.site-hero-media-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.site-hero-preview{border:1px solid #d7e5f1;border-radius:16px;background:#fff;padding:10px;position:sticky;top:12px}
.site-hero-preview>span{display:block;margin:2px 2px 8px;font-size:10px;font-weight:900;letter-spacing:.08em;color:#62809a;text-transform:uppercase}
.site-hero-preview img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px;background:#edf4f8}
@media(max-width:900px){.site-hero-editor{grid-template-columns:1fr}.site-hero-preview{position:static}.site-hero-preview img{aspect-ratio:16/9}}
@media(max-width:620px){.site-hero-media-tools{grid-template-columns:1fr}.site-hero-media-tools .upload-label{width:100%}}

/* V2.3.8 – Training material order */
#trainingMaterials{counter-reset:trainingMaterial}.training-material-builder{counter-increment:trainingMaterial}.training-material-builder .builder-card-head b:after{content:" " counter(trainingMaterial);color:#4a86d4}.training-builder-order-actions{display:flex;align-items:center;gap:5px}.training-builder-order-actions .compact{min-width:30px;padding:4px 8px}.training-upload-tip:after{content:" Người học sẽ xem từng tài liệu theo thứ tự này trước khi phần kiểm tra được mở."}
