:root{--color-bg:#09090b;--color-surface:#121214;--color-surface-hover:#18181b;--color-card:#141416;--color-card-border:#232326;--color-border:#27272a;--color-border-subtle:#1e1e22;--color-text-primary:#fafafa;--color-text-secondary:#a1a1aa;--color-text-muted:#71717a;--color-primary:#fff;--color-primary-text:#09090b;--color-primary-hover:#f4f4f5;--color-success:#22c55e;--color-success-bg:#22c55e14;--color-success-border:#22c55e40;--color-error:#ef4444;--color-error-bg:#ef444414;--color-error-border:#ef444440;--color-neutral:#a1a1aa;--color-neutral-bg:#a1a1aa14;--font-heading:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--safe-area-right:env(safe-area-inset-right,0px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom);padding-left:var(--safe-area-left);padding-right:var(--safe-area-right);-webkit-tap-highlight-color:transparent;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--color-text-primary);font-weight:600}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#3f3f46}.btn-primary{background:var(--color-primary);color:var(--color-primary-text);border:1px solid var(--color-primary);border-radius:var(--radius-sm);font-family:var(--font-heading);letter-spacing:-.01em;cursor:pointer;min-height:38px;box-shadow:none;justify-content:center;align-items:center;padding:8px 16px;font-size:13px;font-weight:500;transition:opacity .15s,transform .1s;display:inline-flex}.btn-primary:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.35;cursor:not-allowed}.btn-secondary{color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-heading);cursor:pointer;background:0 0;justify-content:center;align-items:center;min-height:38px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:#3f3f46}.btn-secondary:disabled{opacity:.35;cursor:not-allowed}.btn-danger{color:#f87171;border-radius:var(--radius-sm);font-family:var(--font-heading);cursor:pointer;background:0 0;border:1px solid #ef444466;justify-content:center;align-items:center;min-height:38px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .15s;display:inline-flex}.btn-danger:hover{background:#ef44441a}.status-pill{border-radius:var(--radius-sm);font-size:11px;font-weight:500;font-family:var(--font-body);letter-spacing:.02em;border:1px solid #0000;justify-content:center;align-items:center;padding:2px 8px;display:inline-flex}.status-pill.success{background:var(--color-success-bg);color:#4ade80;border-color:var(--color-success-border)}.status-pill.warning{color:#fbbf24;background:#f59e0b14;border-color:#f59e0b40}.status-pill.error{background:var(--color-error-bg);color:#f87171;border-color:var(--color-error-border)}.status-pill.info,.status-pill.primary{background:var(--color-neutral-bg);color:var(--color-text-secondary);border-color:var(--color-border)}.card-dark{background:var(--color-card);border:1px solid var(--color-card-border);border-radius:var(--radius-md);padding:var(--space-6);transition:border-color .15s}.card-dark:hover{border-color:#333338}.form-group{margin-bottom:var(--space-4);flex-direction:column;gap:6px;display:flex}.form-label{color:var(--color-text-secondary);letter-spacing:.01em;font-size:12px;font-weight:500}.form-input,.form-select,.form-textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-body);outline:none;min-height:38px;padding:9px 12px;font-size:13px;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#71717a}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:var(--space-4);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:600px;max-height:90vh;animation:.15s ease-out modalEnter;overflow-y:auto;box-shadow:0 20px 40px #0009}@keyframes modalEnter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes scanSweep{0%{opacity:.5;top:8%}50%{opacity:.9;top:90%}to{opacity:.5;top:8%}}.scanner-laser{z-index:10;background:#fff;height:2px;animation:2s ease-in-out infinite scanSweep;position:absolute;left:8%;right:8%;box-shadow:0 0 8px #fff6}@keyframes flashGreen{0%{box-shadow:inset 0 0 40px #22c55e4d}to{box-shadow:inset 0 0 #0000}}@keyframes flashRed{0%{box-shadow:inset 0 0 40px #ef44444d}to{box-shadow:inset 0 0 #0000}}.scan-flash-success{animation:.4s ease-out flashGreen}.scan-flash-error{animation:.4s ease-out flashRed}.page-container{max-width:1280px;margin:0 auto;padding:24px 20px}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.breakdown-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:24px;display:grid}.form-grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.table-responsive-container{-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-card);overflow-x:auto}.table-responsive-container table{border-collapse:collapse;width:100%;min-width:520px}.category-item-row{grid-template-columns:2fr 1.5fr 1fr auto;align-items:center;gap:8px;display:grid}.dashboard-top-bar{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;display:flex}.dashboard-actions{flex-wrap:wrap;gap:8px;display:flex}@media (width<=1024px){.page-container{padding:18px 16px}.card-dark{padding:16px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:12px}.breakdown-grid{grid-template-columns:1fr;gap:16px}}@media (width<=768px){.page-container{padding:14px 12px}.btn-primary,.btn-secondary,.btn-danger{touch-action:manipulation;min-height:44px;padding:10px 14px;font-size:13px}.form-input,.form-select,.form-textarea{min-height:44px;font-size:14px}.dashboard-top-bar{flex-direction:column;align-items:stretch;gap:12px;padding:14px}.dashboard-actions{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;width:100%;display:grid}.dashboard-actions button{width:100%}.modal-overlay{align-items:flex-end;padding:0}.modal-content{max-height:92vh;padding:20px 16px;padding-bottom:calc(20px + env(safe-area-inset-bottom,12px));border-bottom:none;border-radius:16px 16px 0 0}.form-grid-2,.form-grid-3{grid-template-columns:1fr;gap:8px}.category-item-row{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);grid-template-columns:1fr 1fr;gap:8px;padding:10px}.category-item-row .cat-delete-btn{text-align:right;grid-column:span 2}}@media (width<=480px){body{font-size:13px}.page-container{padding:10px 8px}.card-dark{border-radius:var(--radius-sm);padding:14px 12px}.kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.kpi-grid .card-dark{padding:12px 10px}.kpi-grid .kpi-value{font-size:22px!important}h1{font-size:18px}h2{font-size:17px}h3{font-size:14px}}.organizer-layout{width:100%;min-height:calc(100vh - 65px);display:flex}.organizer-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;gap:20px;width:250px;min-width:250px;padding:18px 14px;display:flex}.sidebar-group{flex-direction:column;gap:3px;display:flex}.sidebar-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:2px;padding:6px 10px;font-size:10px;font-weight:600}.sidebar-tab-btn{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;min-height:38px;padding:9px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.sidebar-tab-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.sidebar-tab-btn.active{background:var(--color-surface-hover);color:var(--color-text-primary);border-color:var(--color-border);font-weight:600}.organizer-main{flex:1;max-width:1200px;padding:24px;overflow-y:auto}.tiktok-top-bar,.tiktok-bottom-nav{display:none}@media (width<=900px){.organizer-layout{flex-direction:column;width:100%;min-width:0}.organizer-sidebar{display:none!important}.tiktok-top-bar{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border);z-index:60;box-sizing:border-box;background:#09090bf5;flex-direction:column;width:100%;display:flex;position:sticky;top:50px}.tiktok-top-tabs{white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:center;gap:16px;padding:8px 14px;display:flex;overflow:auto hidden}.tiktok-top-tabs::-webkit-scrollbar{display:none}.tiktok-tab-item{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 2px;font-family:inherit;font-size:13px;font-weight:600;transition:color .15s,transform .1s;position:relative}.tiktok-tab-item:active{transform:scale(.96)}.tiktok-tab-item.active{color:#fff;font-weight:700}.tiktok-tab-item.active:after{content:"";background:#fff;border-radius:2px;height:2.5px;position:absolute;bottom:-6px;left:10%;right:10%}.tiktok-bottom-nav{-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--color-border);z-index:100;height:56px;padding:0 4px;padding-bottom:env(safe-area-inset-bottom,4px);box-sizing:border-box;background:#09090bf7;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tiktok-nav-item{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-width:0;padding:6px 2px;font-family:inherit;font-size:11px;font-weight:500;transition:color .15s;display:flex}.tiktok-nav-item.active{color:#fff;font-weight:700}.tiktok-nav-label{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;max-width:100%;font-size:10px;overflow:hidden}.tiktok-create-btn{color:#000;cursor:pointer;background:#fff;border:none;border-radius:7px;justify-content:center;align-items:center;width:38px;height:28px;font-size:18px;font-weight:800;line-height:1;transition:transform .15s,box-shadow .15s;display:flex;position:relative;box-shadow:-3px 0 #00f2eacc,3px 0 #ff004fcc}.tiktok-create-btn:active{transform:scale(.92)}.organizer-main{box-sizing:border-box;width:100%;min-width:0;overflow-x:hidden;padding:14px 10px 84px!important}}@media (width<=320px){body{font-size:12px;overflow-x:hidden}.page-container{padding:4px 2px}.tiktok-top-tabs{gap:12px;padding:6px 8px}.tiktok-tab-item{padding:2px 0;font-size:11px}.tiktok-bottom-nav{height:48px;padding:0 2px}.tiktok-nav-label{font-size:8px}.tiktok-create-btn{width:30px;height:24px;font-size:15px}.btn-primary,.btn-secondary,.btn-danger{min-height:28px;padding:5px 6px;font-size:10px}.form-input,.form-select,.form-textarea{min-height:30px;padding:5px 6px;font-size:11px}.card-dark{padding:8px 6px}.kpi-grid{grid-template-columns:1fr;gap:6px}.organizer-main{padding:8px 4px 74px!important}h1{font-size:15px}h2{font-size:14px}h3{font-size:12px}}.portier-app-shell{max-width:1180px;min-height:calc(100vh - 70px);margin:0 auto;padding:10px 14px 80px;position:relative}.validator-workstation-layout{flex-direction:column;gap:16px;display:flex}@media (width>=768px){.validator-workstation-layout{grid-template-columns:1fr 380px;align-items:start;gap:20px;display:grid}}@media (width>=1024px){.validator-workstation-layout{grid-template-columns:1fr 440px;gap:24px}}.validator-right-panel{flex-direction:column;gap:12px;display:flex;position:sticky;top:70px}.ticket-visual-validation-card{background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;align-items:center;padding:16px;transition:all .2s;display:flex;box-shadow:0 4px 16px #0006}.ticket-visual-validation-card.accepted{border-color:#22c55e;box-shadow:0 0 20px #22c55e40}.ticket-visual-validation-card.refused{border-color:#ef4444;box-shadow:0 0 20px #ef444440}.ticket-visual-image-container{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#000;width:100%;max-width:320px;margin:10px 0;position:relative;overflow:hidden;box-shadow:0 6px 18px #0009}.ticket-visual-image{object-fit:contain;width:100%;height:auto;max-height:440px;display:block}.portier-top-bar{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;display:flex}.portier-tabs-content{animation:.18s ease-out fadeInPortier}@keyframes fadeInPortier{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.portier-bottom-bar{-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--color-border);z-index:100;height:60px;padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0px);background:#0e0e11f5;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=581px){.portier-bottom-bar{border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);border-radius:14px 14px 0 0;max-width:580px;left:50%;transform:translate(-50%)}}.portier-nav-btn{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 4px;font-family:inherit;font-size:11px;font-weight:500;transition:all .15s;display:flex;position:relative}.portier-nav-btn:active{transform:scale(.94)}.portier-nav-btn.active{color:#fff;font-weight:600}.portier-nav-btn.active .portier-nav-indicator{background:#fff;border-radius:2px;width:28px;height:2.5px;position:absolute;top:0}.portier-nav-badge{background:var(--color-primary);color:var(--color-primary-text);border-radius:999px;min-width:14px;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.2;position:absolute;top:4px;right:calc(50% - 18px)}.portier-camera-viewport{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:#000;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:300px;display:flex;position:relative;overflow:hidden}.portier-kpi-pill{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}@media (width<=320px){body{font-size:12px}.page-container{padding:6px 4px!important}.portier-app-shell{padding:6px 4px 64px!important}.portier-top-bar{gap:4px;padding:6px 8px}.portier-camera-viewport{min-height:220px}.portier-kpi-pill{gap:4px;padding:6px 8px;font-size:11px}.portier-bottom-bar{height:52px;padding:0 4px}.portier-nav-btn{gap:2px;padding:4px 1px;font-size:9px}.portier-nav-btn svg{width:17px;height:17px}.card-dark{padding:10px 8px!important}.form-input{padding:8px 10px!important;font-size:12px!important}}@media (width<=250px){body{font-size:11px}header>div{gap:6px!important;padding:6px 4px!important}header img{height:22px!important}.page-container,.portier-app-shell{padding:4px 2px 56px!important}.portier-top-bar{flex-wrap:wrap;gap:4px;padding:6px 4px}.portier-top-bar>div:first-child{width:100%}.portier-camera-viewport{min-height:170px}.portier-camera-viewport button{padding:6px 10px!important;font-size:10px!important}.portier-bottom-bar{height:48px;padding:0 1px}.portier-nav-btn{gap:1px;padding:3px 0;font-size:8px}.portier-nav-btn span:not(.portier-nav-badge){letter-spacing:-.03em;font-size:8px}.portier-nav-btn svg{width:15px;height:15px}.portier-nav-badge{min-width:10px;padding:0 3px;font-size:7px;top:2px;right:calc(50% - 13px)}.portier-nav-btn.active .portier-nav-indicator{width:16px;height:2px}.portier-kpi-pill{padding:4px;font-size:10px}.btn-primary,.btn-secondary,.btn-danger{min-height:28px!important;padding:6px!important;font-size:10.5px!important}.card-dark{margin-bottom:6px!important;padding:8px 6px!important}h1{font-size:15px!important}h2{font-size:14px!important}h3{font-size:12px!important}}@media (width<=210px){*{word-break:break-word;overflow-wrap:anywhere}.portier-bottom-bar{height:44px;padding:0}.portier-nav-btn{padding:2px 0}.portier-nav-btn svg{width:14px;height:14px}.portier-nav-btn span:not(.portier-nav-badge){font-size:7px;transform:scale(.95)}.portier-camera-viewport{min-height:150px}.portier-top-bar{padding:4px 3px}.card-dark{padding:6px 4px!important}}.mobile-only{display:none!important}.desktop-only{display:block}table.desktop-only{display:table}.organizer-mobile-top-bar,.organizer-bottom-nav{display:none}@media (width<=900px){.mobile-only{display:block!important}.desktop-only,table.desktop-only{display:none!important}.organizer-layout{flex-direction:column;width:100%;min-width:0}.organizer-sidebar{display:none!important}.organizer-mobile-top-bar{background:var(--color-card);border-bottom:1px solid var(--color-border);z-index:60;box-sizing:border-box;flex-direction:column;gap:8px;width:100%;padding:10px 12px;display:flex;position:sticky;top:50px}.organizer-bottom-nav{-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--color-border);z-index:100;height:56px;padding:0 4px;padding-bottom:env(safe-area-inset-bottom,2px);box-sizing:border-box;background:#0e0e11f7;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.organizer-nav-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-width:0;padding:5px 2px;font-family:inherit;font-size:11px;font-weight:500;transition:all .15s;display:flex;position:relative}.organizer-nav-btn:active{transform:scale(.93)}.organizer-nav-btn.active{color:#fff;font-weight:600}.organizer-nav-indicator{background:#fff;border-radius:2px;width:24px;height:2.5px;position:absolute;top:0}.organizer-nav-badge{background:var(--color-primary);color:var(--color-primary-text);border-radius:999px;min-width:14px;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.2;position:absolute;top:3px;right:calc(50% - 16px)}.organizer-main{box-sizing:border-box;width:100%;min-width:0;overflow-x:hidden;padding:12px 10px 78px!important}}@media (width<=320px){.organizer-mobile-top-bar{gap:6px;padding:6px 8px}.organizer-bottom-nav{height:48px;padding:0 2px}.organizer-nav-btn{gap:1px;padding:3px 0;font-size:9px}.organizer-nav-btn svg{width:16px;height:16px}.organizer-nav-label{font-size:8px}.organizer-nav-indicator{width:16px;height:2px}.organizer-nav-badge{min-width:10px;padding:0 3px;font-size:7px;top:1px;right:calc(50% - 12px)}}@media (width<=250px){.organizer-main{padding:8px 4px 64px!important}.organizer-mobile-top-bar{gap:4px;padding:4px}.organizer-bottom-nav{height:44px;padding:0}.organizer-nav-btn{padding:2px 0;font-size:8px}.organizer-nav-btn svg{width:14px;height:14px}.organizer-nav-label{letter-spacing:-.03em;font-size:7.5px}}@media (width<=210px){.organizer-bottom-nav{height:42px}.organizer-nav-btn svg{width:13px;height:13px}.organizer-nav-label{font-size:7px;transform:scale(.95)}}
