*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;background:#f5f7fb;color:#172033}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0c1930,#193a69)}.login-card{width:min(430px,92vw);background:#fff;padding:34px;border-radius:18px;box-shadow:0 28px 70px #0004}.logo{font-weight:900;font-size:23px}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#5e6b80;font-weight:800}.muted{color:#6c788c}.field{width:100%;padding:12px 13px;border:1px solid #d9e0ea;border-radius:9px;margin:6px 0 12px;background:#fff}.btn{border:0;border-radius:9px;padding:11px 14px;background:#17365f;color:#fff;font-weight:750;cursor:pointer}.btn.secondary{background:#fff;color:#17365f;border:1px solid #ccd6e4}.btn.danger{background:#fff;color:#a52b2b;border:1px solid #e7c8c8}.btn.small{padding:7px 9px;font-size:12px}.shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{background:#101c30;color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh}.brand-sub{font-size:12px;color:#aebbd0;margin-top:4px}.nav{margin-top:28px;display:grid;gap:6px}.nav button{border:0;background:transparent;color:#cbd5e5;text-align:left;padding:11px 12px;border-radius:8px;cursor:pointer}.nav button.active,.nav button:hover{background:#20324e;color:#fff}.main{min-width:0}.topbar{height:66px;background:#fff;border-bottom:1px solid #e4e9f0;display:flex;align-items:center;justify-content:space-between;padding:0 26px}.content{padding:26px;max-width:1400px}.title{margin:0 0 5px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.card{background:#fff;border:1px solid #e5eaf1;border-radius:14px;padding:20px;box-shadow:0 7px 25px #23344d0c;margin-bottom:16px}.kpi{font-size:31px;font-weight:850}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1.5fr 1fr 1fr;gap:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 9px;text-align:left;border-bottom:1px solid #edf0f4;font-size:13px;vertical-align:top}th{color:#5c687b;font-size:12px;text-transform:uppercase}.pill{display:inline-block;padding:4px 8px;border-radius:99px;background:#eef3f8;font-size:11px;font-weight:800}.actions{display:flex;gap:6px;flex-wrap:wrap}.qr-preview img{width:180px;border:1px solid #e4e8ee;padding:8px;border-radius:12px}.error{color:#a52b2b}.ok{color:#167347}.demo-note{background:#f0f5ff;border:1px solid #d7e3ff;padding:10px;border-radius:9px;font-size:12px}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.nav{grid-template-columns:repeat(3,1fr)}.cards{grid-template-columns:1fr 1fr}.grid2,.form-grid{grid-template-columns:1fr}}@media(max-width:540px){.cards{grid-template-columns:1fr}.content{padding:15px}.topbar{padding:0 15px}.nav{grid-template-columns:1fr 1fr}}
html.booting body{visibility:hidden}html.ready body{visibility:visible}.boot-screen{height:100vh;display:grid;place-items:center;align-content:center;gap:10px}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.app-nav{background:#101c30;color:#fff;padding:20px 16px;position:sticky;top:0;height:100vh}.app-brand{display:flex;align-items:center;gap:11px}.brand-mark{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#fff;color:#101c30;font-weight:900}.brand-name{font-weight:900}.role-card{margin:24px 0 8px;padding:13px;border:1px solid #ffffff1c;border-radius:11px;background:#ffffff0a;display:grid;gap:3px}.role-card small{font-size:10px;color:#91a4c0;letter-spacing:.1em}.role-card span{font-size:12px;color:#cbd5e5}.role-purpose{font-size:11px;color:#8ea0ba;margin:0 10px 16px}.app-nav nav{display:grid;gap:5px}.nav-link{display:flex;gap:10px;color:#cbd5e5;text-decoration:none;padding:11px 12px;border-radius:8px}.nav-link:hover,.nav-link.active{background:#20324e;color:#fff}.nav-footer{position:absolute;bottom:20px;font-size:10px;line-height:1.5;color:#71829d}.app-main{min-width:0}.app-topbar{height:64px;background:#fff;border-bottom:1px solid #e4e9f0;display:flex;align-items:center;justify-content:space-between;padding:0 25px}.prototype-label{font-size:11px;font-weight:800;letter-spacing:.08em;color:#5e6b80}.top-actions{display:flex;gap:8px;align-items:center}.role-pill,.step-badge{padding:5px 9px;border-radius:99px;background:#eef3f8;font-size:10px;font-weight:900;letter-spacing:.05em}.page-host{padding:26px;max-width:1450px;min-height:calc(100vh - 64px);transition:opacity .12s ease}.page-host.view-loading{opacity:.55}.login-main{min-height:100vh;background:#0d1b30}.login-hero{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:8vw;padding:7vw;background:radial-gradient(circle at 15% 20%,#244b7a 0,transparent 38%),linear-gradient(135deg,#0a1729,#132a48)}.hero-copy{color:#fff;max-width:650px}.hero-copy h1{font-size:clamp(48px,6vw,82px);line-height:.95;margin:16px 0}.hero-copy p{font-size:18px;line-height:1.6;color:#cad7e8}.eyebrow.light{color:#9db4d1}.hero-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.hero-points span,.capability-tags span{padding:7px 10px;border-radius:99px;background:#ffffff12;border:1px solid #ffffff1f;font-size:12px}.login-card h2{margin-bottom:5px}.role-select{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.role-select button{padding:12px;text-align:left;border:1px solid #d9e0ea;border-radius:10px;background:#fff;cursor:pointer;display:grid;gap:3px}.role-select button span{font-size:10px;color:#6c788c}.role-select button.selected{border-color:#17365f;box-shadow:0 0 0 2px #17365f18}.welcome-banner{background:linear-gradient(120deg,#112640,#1c4775);color:#fff;padding:34px;border-radius:18px;display:grid;grid-template-columns:1fr 250px;align-items:center;margin-bottom:18px;overflow:hidden}.welcome-banner h1{font-size:34px;margin:8px 0}.welcome-banner p{color:#d6e2f0;max-width:800px}.hero-btn{display:inline-block;text-decoration:none;background:#fff;color:#17365f;margin-top:10px}.qr-hero-art{text-align:center}.fake-qr{font-size:110px;line-height:1}.qr-hero-art span{display:block;font-size:10px;letter-spacing:.12em;color:#afc2d8}.steps{display:grid;gap:9px}.steps div{display:flex;align-items:center;gap:12px}.steps b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eef3f8}.capability-tags{display:flex;flex-wrap:wrap;gap:7px}.capability-tags span{background:#f1f4f8;border-color:#e0e6ee}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:10px}.section-head h3{margin:0}.form-grid.compact{grid-template-columns:1fr 2fr}.campaign-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.campaign-card{border:1px solid #e3e8ef;border-radius:13px;padding:16px;min-height:150px;display:flex;flex-direction:column;justify-content:space-between}.campaign-card.disabled{opacity:.55}.campaign-card footer{display:flex;gap:5px;align-items:baseline}.campaign-card footer b{font-size:25px}.campaign-card footer span{font-size:11px;color:#6c788c}.empty-state{padding:25px;text-align:center;color:#6c788c}.warning-box{border-left:4px solid #c48a20;background:#fffaf0}.preview-success{display:flex;gap:18px;align-items:center;margin-top:14px}.modal-backdrop{position:fixed;inset:0;background:#09111dcc;display:grid;place-items:center;z-index:1000;padding:20px}.modal{width:min(600px,96vw);background:#fff;border-radius:16px;box-shadow:0 30px 80px #0007;overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid #e5eaf1}.modal-head h3{margin:0}.modal-body{padding:20px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.icon-btn{border:0;background:transparent;font-size:24px;cursor:pointer}.status-chip{display:inline-block;padding:4px 7px;border-radius:99px;font-size:10px;font-weight:900}.status-chip.good{background:#e7f7ee;color:#167347}.status-chip.bad{background:#fdecec;color:#a52b2b}@media(max-width:950px){.app-shell{grid-template-columns:1fr}.app-nav{height:auto;position:static}.nav-footer{display:none}.app-nav nav{grid-template-columns:repeat(3,1fr)}.login-hero{grid-template-columns:1fr;padding:30px}.campaign-grid{grid-template-columns:1fr 1fr}.welcome-banner{grid-template-columns:1fr}.qr-hero-art{display:none}}@media(max-width:600px){.campaign-grid,.role-select{grid-template-columns:1fr}.app-nav nav{grid-template-columns:1fr 1fr}.app-topbar{height:auto;padding:10px;align-items:flex-start}.top-actions{flex-wrap:wrap;justify-content:flex-end}.page-host{padding:15px}}
/* v1.0 theme and evaluator-ready components */
:root{color-scheme:light;--bg:#f5f7fb;--panel:#fff;--panel2:#f1f4f8;--text:#172033;--muted:#6c788c;--border:#e5eaf1;--nav:#101c30;--accent:#2c69a8;--shadow:#23344d0c}
html[data-theme="dark"]{color-scheme:dark;--bg:#07111f;--panel:#0f1c2d;--panel2:#14243a;--text:#eaf1fb;--muted:#93a4bb;--border:#263750;--nav:#081321;--accent:#65a9ed;--shadow:#0004}
body{background:var(--bg);color:var(--text)}.card,.app-topbar,.modal,.field,.btn.secondary,.role-select button{background:var(--panel);color:var(--text);border-color:var(--border)}.muted,.prototype-label,th{color:var(--muted)}.app-nav{background:var(--nav)}.field{outline:none}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4b91d522}.card{box-shadow:0 7px 25px var(--shadow)}table td,table th{border-color:var(--border)}.role-pill,.step-badge,.pill,.capability-tags span{background:var(--panel2);color:var(--text)}html[data-theme="dark"] .warning-box{background:#2a2315}html[data-theme="dark"] .login-card{background:var(--panel);color:var(--text)}html[data-theme="dark"] .role-select button.selected{border-color:#65a9ed}html[data-theme="dark"] .steps b{background:var(--panel2)}html[data-theme="dark"] .campaign-card{border-color:var(--border)}
.dashboard-cards{grid-template-columns:repeat(4,1fr)}.metric{margin-bottom:0}.chart{height:210px;display:flex;align-items:flex-end;gap:4px;padding:18px 5px 4px;border-bottom:1px solid var(--border)}.bar-col{height:100%;flex:1;display:flex;align-items:flex-end}.bar{width:100%;min-height:4px;background:linear-gradient(180deg,#65a9ed,#315f91);border-radius:4px 4px 0 0}.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.health-grid div{padding:18px;border-radius:12px;background:var(--panel2);display:grid;gap:4px}.health-grid b{font-size:26px}.health-grid span{font-size:12px;color:var(--muted)}.activity{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.activity-dot{width:8px;height:8px;border-radius:50%;background:#65a9ed;margin-top:7px}.activity small{display:block;color:var(--muted);margin-top:3px}.filters,.inline-form{display:flex;gap:10px;align-items:center}.filters .field,.inline-form .field{margin:0 0 14px}.inline-form .btn{margin-bottom:14px;white-space:nowrap}.tag-picker{display:flex;flex-wrap:wrap;gap:8px;margin:5px 0 16px}.tag-check{padding:7px 10px;background:var(--panel2);border:1px solid var(--border);border-radius:99px;font-size:12px}.tag-line{font-size:11px;color:var(--muted);margin-top:4px}.star{border:0;background:transparent;color:#71829d;font-size:19px;cursor:pointer}.star.on{color:#d7a52b}.health{font-size:11px;font-weight:800}.health.bad{color:#d96969}.status-chip.warn{background:#fff2d8;color:#9b6810}.qr-detail{text-align:left}.qr-image-host{text-align:center}.qr-large{width:min(330px,80vw);background:#fff;padding:12px;border-radius:14px}.qr-detail code{overflow-wrap:anywhere}.modal{max-height:92vh;overflow:auto}.modal-body textarea{min-height:80px;resize:vertical}
@media(max-width:1000px){.dashboard-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.dashboard-cards,.health-grid{grid-template-columns:1fr}.filters,.inline-form{display:block}}
.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:14px;flex-wrap:wrap}.pager .pager-size{width:76px;margin:0}.demo-credential{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}


/* v1.0.2 UX hardening: session-scoped UI, fixed textareas, explicit QR tags, mobile parity */
textarea.field{resize:none;max-width:100%;width:100%;box-sizing:border-box}
.qr-tags-field{margin:4px 0 16px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel2)}
.field-label-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.field-label-row label{font-weight:800}.field-label-row p{margin:4px 0 0;font-size:12px}.qr-tags-field .tag-picker{margin-bottom:0}.tag-check{cursor:pointer;user-select:none}.tag-check input{accent-color:var(--accent)}
@media(max-width:760px){
  .app-shell{display:block}.app-nav{height:auto;position:static;padding:14px 12px}.app-brand{margin-bottom:10px}.role-card{margin:10px 0 6px}.role-purpose,.nav-footer{display:none}.app-nav nav{display:flex;gap:7px;overflow-x:auto;padding:4px 0 2px;scrollbar-width:thin}.nav-link{flex:0 0 auto;padding:9px 11px;font-size:12px}.app-topbar{position:sticky;top:0;z-index:30;min-height:54px;height:auto;padding:9px 12px;gap:8px}.prototype-label{font-size:9px;max-width:42%}.top-actions{gap:5px;justify-content:flex-end}.top-actions .btn{padding:7px 8px;font-size:10px}.role-pill{display:none}.page-host{padding:12px;min-height:auto}.login-hero{min-height:100vh;padding:22px 16px;gap:22px}.hero-copy h1{font-size:clamp(38px,13vw,58px)}.hero-copy p{font-size:15px}.login-card{width:100%;box-sizing:border-box}.role-select{grid-template-columns:1fr}.welcome-banner{padding:22px}.welcome-banner h1{font-size:27px}.cards,.dashboard-cards,.grid2,.form-grid,.campaign-grid,.health-grid{grid-template-columns:1fr!important}.section-head,.field-label-row{flex-direction:column}.section-head .btn,.field-label-row .btn{width:100%;box-sizing:border-box;text-align:center}.filters,.inline-form{display:grid;grid-template-columns:1fr}.filters .field,.inline-form .field,.inline-form .btn{width:100%;box-sizing:border-box;margin-bottom:0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-inline:-2px}table{min-width:760px}.actions{min-width:230px}.modal-backdrop{padding:8px;align-items:end}.modal{width:100%;max-height:94vh;border-radius:16px 16px 0 0}.modal-head,.modal-body{padding:14px}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.qr-large{width:min(280px,76vw)}.pager{justify-content:center}.pager>*{max-width:100%}.tag-picker{gap:6px}.tag-check{font-size:11px;padding:7px 9px}
}
@media(max-width:420px){.prototype-label{display:none}.top-actions{width:100%;justify-content:space-between}.top-actions .btn{flex:1}.hero-points{gap:6px}.hero-points span{font-size:10px}.content{padding:10px}.card{padding:14px}.page-host{padding:10px}.app-nav nav{margin-right:-12px;padding-right:12px}}


/* v1.0.3 interaction, tag association and mobile navigation hardening */
button,.btn,.nav-link,.tag-choice{-webkit-tap-highlight-color:transparent;transition:transform .08s ease,box-shadow .12s ease,opacity .12s ease}
button:active,.btn:active,.nav-link:active,.tag-choice:active{transform:translateY(1px);box-shadow:inset 0 2px 7px #0005!important}
button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}
.global-busy{position:fixed;inset:0;z-index:5000;background:#02081280;backdrop-filter:blur(2px);display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,visibility .12s ease}
.global-busy.show{opacity:1;visibility:visible;pointer-events:all}.busy-panel{min-width:180px;padding:22px;border:1px solid var(--border);border-radius:15px;background:var(--panel);box-shadow:0 24px 70px #0009;display:grid;place-items:center;gap:6px}.busy-panel span{font-size:11px;color:var(--muted)}.busy-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:busyspin .65s linear infinite}@keyframes busyspin{to{transform:rotate(360deg)}}
.mobile-menu-btn{display:none;border:1px solid var(--border);background:var(--panel);color:var(--text);width:38px;height:38px;border-radius:9px;font-size:20px;cursor:pointer}
.tag-picker-help{display:grid;gap:3px;margin-bottom:10px}.tag-picker-help span{font-size:12px;color:var(--muted)}.tag-choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.tag-choice{display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel);cursor:pointer}.tag-choice input{position:absolute;opacity:0;pointer-events:none}.tag-choice-box{width:20px;height:20px;border:1px solid var(--border);border-radius:6px;display:grid;place-items:center;color:transparent;font-weight:900}.tag-choice:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px #4b91d51f}.tag-choice input:checked+.tag-choice-box{background:var(--accent);border-color:var(--accent);color:#fff}.tag-selected-summary{margin-top:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}.selected-tag{padding:4px 8px;border-radius:99px;background:var(--accent);color:#fff}.tag-empty{padding:12px;border:1px dashed var(--border);border-radius:10px;color:var(--muted)}
@media(max-width:760px){.mobile-menu-btn{display:grid;place-items:center;flex:0 0 auto}.app-shell{display:block}.app-nav{position:fixed!important;left:0;top:0;bottom:0;width:min(310px,86vw);height:100vh!important;z-index:100;transform:translateX(-105%);transition:transform .2s ease;box-shadow:20px 0 50px #0008;padding:20px 16px!important}.app-nav.mobile-open{transform:translateX(0)}.app-nav nav{display:grid!important;overflow:visible!important}.role-purpose,.nav-footer{display:block}.app-topbar{display:flex;align-items:center}.prototype-label{margin-right:auto;max-width:none}.top-actions{width:auto!important;flex-wrap:nowrap}.top-actions #switchRole{display:none}.top-actions .btn{flex:0 0 auto!important}.tag-choice-grid{grid-template-columns:1fr}.table-wrap{max-width:calc(100vw - 24px)}.modal{overflow-x:hidden}}
@media(max-width:480px){.top-actions #theme{display:none}.prototype-label{font-size:8px}.top-actions #logout{font-size:9px;padding:7px}.mobile-menu-btn{width:36px;height:36px}.app-topbar{gap:6px}.tag-choice{min-height:44px}}

/* v1.0.4 explicit QR ↔ tag association */
.tag-association{display:grid;gap:9px}.tag-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:start}.tag-add-row .field{margin:0}.tag-association-help{font-size:11px;color:var(--muted)}.tag-assigned{display:flex;flex-wrap:wrap;gap:7px;min-height:38px;padding:9px;border:1px dashed var(--border);border-radius:10px;align-items:center}.assigned-tag{border:1px solid color-mix(in srgb,var(--accent) 65%,var(--border));background:color-mix(in srgb,var(--accent) 18%,var(--panel));color:var(--text);padding:7px 10px;border-radius:999px;cursor:pointer;font:inherit;font-size:12px}.assigned-tag span{font-weight:900;margin-left:5px}.assigned-tag:hover{box-shadow:0 0 0 2px #4b91d522}.assigned-tag:active{box-shadow:inset 0 2px 7px #0005}
@media(max-width:600px){.tag-add-row{grid-template-columns:1fr}.tag-add-row .btn{width:100%}.tag-assigned{align-items:stretch}.assigned-tag{min-height:42px}}

/* v1.0.5 — QR tag association: visible catalog + selected widgets */
.tag-dual{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px!important}.tag-widget{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:12px;min-width:0}.tag-widget-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.tag-widget-head>div{display:grid;gap:3px}.tag-widget-head span:not(.tag-count){font-size:11px;color:var(--muted)}.tag-count{display:grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:var(--panel2);border:1px solid var(--border);font-size:11px;font-weight:800}.tag-catalog-search{margin:0 0 9px!important}.tag-catalog-list,.tag-selected-list{display:grid;gap:7px;max-height:230px;overflow:auto}.tag-catalog-row,.tag-selected-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}.tag-catalog-row>div,.tag-selected-row>div{display:grid;gap:2px;min-width:0}.tag-catalog-row small,.tag-selected-row small{color:var(--muted);font-size:10px}.tag-catalog-row.inactive{opacity:.7}.tag-remove-btn{width:30px;height:30px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);font-size:18px;cursor:pointer}.tag-remove-btn:hover{background:#d95f5f22;border-color:#d95f5f66}.tag-empty{padding:12px;border:1px dashed var(--border);border-radius:9px;color:var(--muted);font-size:12px}
@media(max-width:760px){.tag-dual{grid-template-columns:1fr}.tag-catalog-list,.tag-selected-list{max-height:190px}}

/* v1.0.7 — mobile drawer/menu + responsive card tables + compact QR editor */
@media(max-width:760px){
  .app-nav nav{display:flex!important;flex-direction:column!important;gap:6px!important;overflow:visible!important;width:100%}
  .app-nav .nav-link{display:flex!important;width:100%!important;box-sizing:border-box!important;flex:0 0 auto!important;padding:11px 12px!important}
  .table-wrap{overflow:visible!important;max-width:none!important;margin:0!important}
  .table-wrap table{display:block!important;min-width:0!important;width:100%!important}
  .table-wrap thead{display:none!important}
  .table-wrap tbody{display:grid!important;gap:10px!important;width:100%!important}
  .table-wrap tr{display:block!important;width:100%!important;border:1px solid var(--border)!important;border-radius:12px!important;background:var(--panel2)!important;padding:10px!important;box-sizing:border-box!important}
  .table-wrap td{display:grid!important;grid-template-columns:minmax(92px,34%) minmax(0,1fr)!important;gap:10px!important;align-items:start!important;width:100%!important;padding:8px 4px!important;border:0!important;border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent)!important;box-sizing:border-box!important;overflow-wrap:anywhere!important}
  .table-wrap td:last-child{border-bottom:0!important}
  .table-wrap td::before{content:attr(data-label);font-size:10px;line-height:1.35;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}
  .table-wrap td[colspan]{display:block!important;text-align:center!important}
  .table-wrap td[colspan]::before{display:none!important}
  .table-wrap .actions{min-width:0!important;display:flex!important;flex-wrap:wrap!important;gap:6px!important}
  .table-wrap .actions .btn{flex:1 1 calc(50% - 6px)!important;min-width:112px!important}
  .pager{justify-content:center!important;gap:7px!important}
  .modal-body .qr-tags-field{padding:10px!important}
  .modal-body .tag-widget{padding:10px!important}
}
@media(max-width:420px){
  .table-wrap td{grid-template-columns:86px minmax(0,1fr)!important}
  .table-wrap .actions .btn{flex-basis:100%!important}
}


/* v1.0.8 — mobile card polish */
.field-stack{display:grid;gap:6px;min-width:0}.field-stack label{font-size:12px;font-weight:700;color:var(--muted)}.field-stack .field{margin:0}
@media(max-width:760px){
  .table-wrap tr{padding:12px!important;box-shadow:0 8px 22px #00000012}
  .table-wrap td{grid-template-columns:minmax(78px,30%) minmax(0,1fr)!important;padding:7px 2px!important;align-items:center!important}
  .table-wrap td>*,.table-wrap td>b{min-width:0}
  .table-wrap .status-chip,.table-wrap .health{justify-self:start!important;width:auto!important;max-width:100%!important}
  .table-wrap td[data-label="Acciones"]{display:block!important;padding-top:10px!important}
  .table-wrap td[data-label="Acciones"]::before{display:block!important;margin-bottom:8px}
  .table-wrap .actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;width:100%!important}
  .table-wrap .actions .btn{width:100%!important;min-width:0!important;min-height:38px!important}
  .tag-list-table tr{padding:12px 14px!important}
  .tag-list-table td:first-child{display:block!important;padding:2px 2px 10px!important}
  .tag-list-table td:first-child::before{display:none!important}
  .tag-list-table td:first-child b{font-size:15px!important}
  .tag-list-table td[data-label="Acción"]{display:block!important;padding-top:10px!important}
  .tag-list-table td[data-label="Acción"]::before{display:none!important}
  .tag-list-table td[data-label="Acción"] .btn{width:100%!important;min-height:38px!important}
  .qr-list-table td[data-label="Favorito"]{display:flex!important;justify-content:flex-end!important;padding:0 0 2px!important;border-bottom:0!important}
  .qr-list-table td[data-label="Favorito"]::before{display:none!important}
  .qr-list-table td[data-label="Nombre"]{padding-top:2px!important}
  .pager{flex-wrap:wrap!important;padding-top:12px!important}
}
@media(max-width:420px){
  .table-wrap td{grid-template-columns:76px minmax(0,1fr)!important}
  .table-wrap .actions{grid-template-columns:1fr 1fr!important}
}

/* v1.0.9 — real-time dashboard and readable 30-day scan chart */
.realtime-badge{display:inline-flex;align-items:center;margin-left:8px;padding:4px 8px;border-radius:999px;background:#16734722;color:#39a66b;font-size:11px;font-weight:800;white-space:nowrap}.realtime-badge.offline{background:#c48a2022;color:#c48a20}.scan-chart{height:240px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;margin-top:8px}.scan-y{display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:10px;text-align:right;padding:3px 0 24px}.scan-plot{position:relative;display:grid;grid-template-columns:repeat(30,minmax(4px,1fr));gap:3px;align-items:end;height:100%;padding-top:20px;border-bottom:1px solid var(--border);background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(50% - 1px),color-mix(in srgb,var(--border) 45%,transparent) 50%,transparent calc(50% + 1px))}.scan-bar-col{height:100%;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;position:relative}.scan-bar{min-height:0;background:linear-gradient(180deg,#65a9ed,#315f91);border-radius:4px 4px 0 0;transition:height .22s ease}.scan-value{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--muted);opacity:0}.scan-bar-col:hover .scan-value{opacity:1}.scan-bar-col small{height:22px;font-size:8px;color:var(--muted);white-space:nowrap;transform:rotate(-35deg);transform-origin:top left;margin-top:4px}.live-latest{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.live-latest h4{margin:0 0 8px}.live-latest #latestScan{display:grid;gap:3px}.live-latest small,.live-latest span{color:var(--muted);font-size:11px}.audit-subtitle{margin-top:22px;padding-top:15px;border-top:1px solid var(--border)}.live-entry{animation:liveIn .22s ease}.live-pulse{animation:livePulse .5s ease}@keyframes liveIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes livePulse{0%{filter:brightness(1)}45%{filter:brightness(1.8);transform:scale(1.025)}100%{filter:brightness(1);transform:none}}
@media(max-width:760px){.scan-chart{height:210px;grid-template-columns:28px minmax(0,1fr)}.scan-plot{gap:2px}.scan-bar-col small{display:none}.scan-y{padding-bottom:4px}.realtime-badge{display:flex;width:max-content;margin:7px 0 0}}
