@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";:root{--primary:#0ea5e9;--primary-dark:#0284c7;--primary-light:#38bdf8;--accent:#06d6a0;--accent-dark:#059669;--bg-color:#f0f4f8;--bg-elevated:#e2e8f0;--surface:#fff;--surface-hover:#f8fafc;--text-main:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--border-color:#e2e8f0;--danger:#ef4444;--danger-light:#fef2f2;--success:#10b981;--success-light:#ecfdf5;--warning:#f59e0b;--warning-light:#fffbeb;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--shadow-glow:0 0 20px #0ea5e926;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:.875rem;--radius-xl:1.25rem;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.2s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.3s cubic-bezier(.4, 0, .2, 1);--sidebar-width:260px}*,:before,:after{box-sizing:border-box}body{background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6}.app-container{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);z-index:1000;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-overlay{display:none}@media (width<=1024px){.sidebar{transform:translate(-100%);box-shadow:20px 0 50px #0003}.sidebar.open{transform:translate(0)}.main-content{margin-left:0!important}.sidebar-overlay.open{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#0006;animation:.2s fadeOverlay;display:block;position:fixed;inset:0}}.sidebar-header{border-bottom:1px solid var(--border-color);align-items:center;gap:.75rem;padding:1.5rem 1.25rem;display:flex}.sidebar-logo{background:linear-gradient(135deg, var(--primary), var(--accent));border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 4px 12px #0ea5e94d}.sidebar-title{letter-spacing:-.025em;background:linear-gradient(135deg, var(--primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:800}.sidebar-subtitle{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem;font-weight:400}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;padding:1rem .75rem;display:flex}.sidebar-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;padding:1rem .75rem .5rem;font-size:.65rem;font-weight:700}.nav-link{border-radius:var(--radius-md);color:var(--text-muted);transition:all var(--transition-base);cursor:pointer;align-items:center;gap:.75rem;padding:.65rem .85rem;font-size:.9rem;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-link:hover{background:var(--bg-elevated);color:var(--text-main)}.nav-link.active{color:var(--primary);background:linear-gradient(135deg,#0ea5e91a,#06d6a014);font-weight:600}.nav-link.active:before{content:"";background:linear-gradient(180deg, var(--primary), var(--accent));border-radius:0 2px 2px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.main-content{flex-direction:column;flex:1;min-height:100vh;margin-left:260px;display:flex}.header{background:var(--surface);border-bottom:1px solid var(--border-color);height:64px;color:var(--text-main);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;justify-content:space-between;align-items:center;padding:0 2rem;font-size:1.05rem;font-weight:600;display:flex;position:sticky;top:0}@media (width<=640px){.header{height:56px;padding:0 1rem;font-size:.95rem}}.page-container{flex:1;padding:2rem;overflow-y:auto}@media (width<=640px){.page-container{padding:1rem}}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:box-shadow var(--transition-base), transform var(--transition-base);overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card-header{border-bottom:1px solid var(--border-color);align-items:center;gap:.75rem;padding:1rem 1.5rem;font-size:.95rem;font-weight:600;display:flex}.card-body{padding:1.5rem}@media (width<=640px){.card-header{padding:.75rem 1rem}.card-body,.stat-card{padding:1rem}}.stat-card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:all var(--transition-smooth);padding:1.5rem;position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--accent));opacity:0;height:3px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-card:hover:before{opacity:1}.stat-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:1rem;display:flex}.stat-icon.blue{color:var(--primary);background:#0ea5e91a}.stat-icon.green{color:var(--success);background:#10b9811a}.stat-icon.amber{color:var(--warning);background:#f59e0b1a}.stat-icon.red{color:var(--danger);background:#ef44441a}.stat-value{letter-spacing:-.04em;color:var(--text-main);font-size:2rem;font-weight:800}.stat-label{color:var(--text-muted);font-size:.85rem;font-weight:500}@media (width<=1024px){.grid-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid-stats{grid-template-columns:1fr;gap:1rem}.stat-card{flex-direction:row;align-items:center;padding:1rem}.stat-icon{width:40px;height:40px;margin-bottom:0}.stat-value{font-size:1.2rem}}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 2px 8px #0ea5e94d}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #0ea5e966}.btn-accent{background:linear-gradient(135deg, var(--accent), var(--accent-dark));color:#fff;box-shadow:0 2px 8px #06d6a04d}.btn-accent:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #06d6a066}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.btn-outline{border:1px solid var(--border-color);color:var(--text-secondary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--primary);color:var(--primary)}.btn-ghost{color:var(--text-muted);background:0 0;border:none;padding:.5rem}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-main)}.btn-sm{padding:.4rem .8rem;font-size:.8rem}.btn-lg{padding:.8rem 1.75rem;font-size:1rem}.input{border:1.5px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--text-main);transition:all var(--transition-base);outline:none;padding:.625rem 1rem;font-family:inherit;font-size:.9rem}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0ea5e91f}.input::placeholder{color:var(--text-muted)}.input-lg{border-radius:var(--radius-lg);padding:.875rem 1.25rem;font-size:1.1rem}.input-group{position:relative}.input-group .input-icon{color:var(--text-muted);pointer-events:none;transition:color var(--transition-base);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-group .input:focus~.input-icon,.input-group .input:focus+.input-icon{color:var(--primary)}.input-group .input{padding-left:2.75rem}.input-group.has-right .input{padding-right:2.75rem}.input-group .input-icon-right{color:var(--text-muted);position:absolute;top:50%;right:14px;transform:translateY(-50%)}.table-container{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);width:100%;margin-bottom:1rem;overflow-x:auto}table{border-collapse:collapse;width:100%}@media (width<=768px){.table-container{border:none;overflow-x:visible}table,thead,tbody,th,td,tr{display:block}thead tr{position:absolute;top:-9999px;left:-9999px}tr{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1rem;padding:.5rem}td{border:none;border-bottom:1px solid #0000000d;justify-content:flex-end;align-items:center;min-height:2.5rem;display:flex;position:relative;text-align:right!important;padding-left:50%!important}td:last-child{border-bottom:none}td:before{content:attr(data-label);white-space:nowrap;text-align:left;width:45%;color:var(--text-muted);text-transform:uppercase;padding-right:10px;font-size:.75rem;font-weight:700;position:absolute;left:1rem}}.badge{letter-spacing:.02em;border-radius:100px;align-items:center;gap:.35rem;padding:.2rem .65rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-info{color:var(--primary);background:#0ea5e91a}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0006;justify-content:center;align-items:center;animation:.2s fadeOverlay;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-xl);width:90%;max-width:520px;box-shadow:var(--shadow-xl);flex-direction:column;animation:.25s cubic-bezier(.34,1.56,.64,1) scaleIn;display:flex}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;font-size:1rem;font-weight:600;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;padding:.375rem;display:flex}.modal-close:hover{background:var(--bg-elevated);color:var(--text-main)}.modal-body{padding:1.5rem}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.empty-state-icon{background:var(--bg-elevated);opacity:.5;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:1.5rem;display:flex}.empty-state h3{color:var(--text-secondary);margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.empty-state p{max-width:350px;font-size:.9rem;line-height:1.6}.scan-input-wrapper{position:relative}.scan-input-wrapper.scanning .input{border-color:var(--primary);box-shadow:var(--shadow-glow)}.scan-pulse{border-radius:var(--radius-lg);border:2px solid var(--accent);opacity:0;pointer-events:none;animation:2s ease-in-out infinite scanPulse;position:absolute;inset:0}@keyframes scanPulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:.4;transform:scale(1.02)}}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}@media (width<=480px){.grid-stats{grid-template-columns:1fr 1fr;gap:.75rem}.grid-2{grid-template-columns:1fr}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes successFlash{0%{background-color:#0000}30%{background-color:var(--success-light)}to{background-color:#0000}}.animate-fade-in{animation:.35s forwards fadeIn}.animate-slide-in{animation:.35s forwards slideInRight}.animate-spin{animation:1s linear infinite spin}.animate-success-flash{animation:.8s successFlash}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.font-mono{font-family:JetBrains Mono,Fira Code,monospace}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.floating-status-bar{z-index:1000;background:var(--surface);box-shadow:0 10px 30px #0003, 0 0 0 1px var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #ffffff1a;border-radius:100px;align-items:center;gap:1rem;padding:.5rem .5rem .5rem 1.5rem;animation:.4s cubic-bezier(.16,1,.3,1) slideUpFadeIn;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}@media (prefers-color-scheme:dark){.floating-status-bar{background:#1a2332e6}}.status-item{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.status-item span{opacity:.8}.status-btn-generate{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;cursor:pointer;border:none;border-radius:100px;align-items:center;gap:.6rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 12px #0ea5e94d}.status-btn-generate:hover{filter:brightness(1.1);transform:scale(1.05);box-shadow:0 6px 18px #0ea5e966}.status-btn-generate:active{transform:scale(.95)}@keyframes slideUpFadeIn{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width<=640px){.floating-status-bar{gap:.75rem;width:auto;max-width:90vw;padding-left:1rem;bottom:1rem}.status-item span{text-overflow:ellipsis;max-width:80px;overflow:hidden}}@media (width<=768px){.hide-mobile{display:none!important}}@media (width>=769px){.show-mobile{display:none!important}}@media (width<=480px){.hide-mobile-sm{display:none!important}}#camera-scanner-region video{object-fit:cover;border-radius:12px}#camera-scanner-region img[alt=Info\ icon]{display:none!important}#qr-shaded-region{border-color:#4ade80!important}
