:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;min-width:320px;min-height:100vh}:root{--bg-header: white;--bg-main: white;--bg-light: #c8c8ec;--bg-off: #f0f0f0;--bg-inputs: white;--text-main: #503f54;--text-light: #213547;--main-color: #05058b;--main-dark: #050447;--secondary: #503f54;--borders: #ccc;--danger: #8e0303;--separator: radial-gradient(ellipse at center, #05058b, transparent 80%);--nav-underline: radial-gradient(ellipse at center, #05058b, white 70%);--nav-underline-hover-active: radial-gradient(ellipse at center, #050447, white 70%);--card-shadow-color: #5c5c5c;--card-text-color: #503f54;--card-bg: white;--card-separator-line-color: var(--main-color);--shadow-color: #979797;--alert-success-bg: #d4edda;--alert-success-border: #c3e6cb;--alert-success-text: #155724;--alert-success-icon: #28a745;--alert-danger-bg: #f8d7da;--alert-danger-border: #f5c6cb;--alert-danger-text: #721c24;--alert-danger-icon: #dc3545;--alert-warning-bg: #fff3cd;--alert-warning-border: #ffeaa7;--alert-warning-text: #856404;--alert-warning-icon: #ffc107}.theme-light{--bg-header: white;--bg-main: white;--bg-light: #c8c8ec;--bg-off: #f0f0f0;--bg-inputs: white;--text-main: #503f54;--text-light: #213547;--main-color: #05058b;--main-dark: #050447;--secondary: #503f54;--borders: #ccc;--danger: #8e0303;--separator: radial-gradient(ellipse at center, #05058b, transparent 80%);--nav-underline: radial-gradient(ellipse at center, #05058b, white 70%);--nav-underline-hover-active: radial-gradient(ellipse at center, #050447, white 70%);--card-shadow-color: #5c5c5c;--card-text-color: #503f54;--card-bg: white;--card-separator-line-color: var(--main-color);--shadow-color: #979797;--alert-success-bg: #d4edda;--alert-success-border: #c3e6cb;--alert-success-text: #155724;--alert-success-icon: #28a745;--alert-danger-bg: #f8d7da;--alert-danger-border: #f5c6cb;--alert-danger-text: #721c24;--alert-danger-icon: #dc3545;--alert-warning-bg: #fff3cd;--alert-warning-border: #ffeaa7;--alert-warning-text: #856404;--alert-warning-icon: #ffc107}.theme-dark{--bg-header: #1a1a1a;--bg-main: #242424;--bg-light: #2d2d2d;--bg-off: #1a1a1a;--bg-inputs: #2d2d2d;--text-main: rgba(255, 255, 255, .87);--text-light: rgba(255, 255, 255, .87);--main-color: #4a9eff;--main-dark: #357abd;--secondary: rgba(255, 255, 255, .87);--borders: #404040;--danger: #ff6b6b;--separator: radial-gradient(ellipse at center, #4a9eff, transparent 80%);--nav-underline: radial-gradient(ellipse at center, #4a9eff, #242424 70%);--nav-underline-hover-active: radial-gradient(ellipse at center, #357abd, #242424 70%);--card-shadow-color: #000000;--card-text-color: rgba(255, 255, 255, .87);--card-bg: #2d2d2d;--card-separator-line-color: var(--main-color);--shadow-color: #000000;--alert-success-bg: #1e4d2b;--alert-success-border: #2d5a3d;--alert-success-text: #a8d5ba;--alert-success-icon: #4caf50;--alert-danger-bg: #4a1e1e;--alert-danger-border: #5a2d2d;--alert-danger-text: #f5a5a5;--alert-danger-icon: #f44336;--alert-warning-bg: #4a3d1e;--alert-warning-border: #5a4d2d;--alert-warning-text: #f5d5a5;--alert-warning-icon: #ffc107}body{background-color:var(--bg-main);color:var(--text-main);transition:background-color .3s ease,color .3s ease}main{margin-top:100px;margin-bottom:5rem}a{color:var(--text-light);text-decoration:none}a:hover{text-decoration:underline}select{padding:8px 12px;border:1px solid var(--borders);border-radius:50px;font-size:14px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}hr{border:1px solid var(--borders);width:100%}.hidden{display:none}.bg-lighter{background-color:var(--bg-lighter)}.bg-inner{background-color:var(--bg-inner)}.bg-header{background-color:var(--bg-header)}.border-light{border-color:var(--border-light)}#root{width:calc(100% - 4rem);max-width:1024px;margin:0 auto}h1{margin:0}input{border:1px solid;border-radius:5px;line-height:2}.d-flex{display:flex}.flex-column{flex-direction:column}.flex-grow{flex:1}.flex-shrink{flex-shrink:0}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.d-grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-20{grid-template-columns:repeat(28,1fr)}.grid-cols-21{grid-template-columns:repeat(29,1fr)}.grid-cols-22{grid-template-columns:repeat(30,1fr)}.grid-cols-23{grid-template-columns:repeat(31,1fr)}.grid-rows-1{grid-template-rows:repeat(1,1fr)}.grid-rows-2{grid-template-rows:repeat(2,1fr)}.grid-rows-3{grid-template-rows:repeat(3,1fr)}.grid-rows-4{grid-template-rows:repeat(4,1fr)}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.row-span-1{grid-row:span 1 / span 1}.row-span-2{grid-row:span 2 / span 2}.row-span-3{grid-row:span 3 / span 3}.row-span-4{grid-row:span 4 / span 4}.align-items-start{align-items:flex-start}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-start{justify-content:start}.justify-content-end{justify-content:end}.justify-content-center{justify-content:center}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.5rem}.p-6{padding:2rem}.p-7{padding:2.5rem}.p-8{padding:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.btn{padding:10px;border-radius:50px;text-align:center}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-small{padding:2px 4px}.btn-danger{background-color:var(--danger);color:#fff}.btn-primary{background-color:var(--main-color);color:#fff;border-color:var(--main-dark)}.btn-primary:hover{background-color:var(--main-dark)}#header{position:fixed;top:0;left:0;padding:10px 20px;display:flex;justify-content:space-between;width:calc(100% - 40px);max-height:75px}#header .header-logo{height:2rem}#header nav{display:flex;align-items:center;gap:10px}#login,#register{display:flex;flex-direction:column;gap:15px;padding:30px;border-radius:8px}#login form,#register form{display:flex;flex-direction:column;align-items:center;gap:15px}#login .input-group,#register .input-group{display:flex;flex-direction:column}.html5-qrcode-scanner{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500;display:flex;align-items:center;gap:8px;animation:slideInDown .3s ease-out;box-shadow:0 2px 8px var(--shadow-color, rgba(0, 0, 0, .1))}.alert-success{background-color:var(--alert-success-bg, #d4edda);border:1px solid var(--alert-success-border, #c3e6cb);color:var(--alert-success-text, #155724)}.alert-success:before{content:"✓";font-weight:700;font-size:16px;color:var(--alert-success-icon, #28a745)}.alert-danger{background-color:var(--alert-danger-bg, #f8d7da);border:1px solid var(--alert-danger-border, #f5c6cb);color:var(--alert-danger-text, #721c24)}.alert-danger:before{content:"⚠";font-weight:700;font-size:16px;color:var(--alert-danger-icon, #dc3545)}.alert-warning{background-color:var(--alert-warning-bg, #fff3cd);border:1px solid var(--alert-warning-border, #ffeaa7);color:var(--alert-warning-text, #856404)}.alert-warning:before{content:"⚠";font-weight:700;font-size:16px;color:var(--alert-warning-icon, #ffc107)}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.alert.fade-out{animation:fadeOut .3s ease-in forwards}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.scan-notification{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 30px;border-radius:12px;box-shadow:0 8px 32px #0000004d;animation:scanNotificationIn .3s ease-out;min-width:200px;text-align:center}.scan-icon{font-size:48px;font-weight:700;margin-bottom:8px;line-height:1}.scan-text{font-size:18px;font-weight:600;line-height:1.2}.scan-success{background-color:var(--alert-success-bg, #d4edda);border:2px solid var(--alert-success-border, #c3e6cb);color:var(--alert-success-text, #155724)}.scan-success .scan-icon{color:var(--alert-success-icon, #28a745)}.scan-error{background-color:var(--alert-danger-bg, #f8d7da);border:2px solid var(--alert-danger-border, #f5c6cb);color:var(--alert-danger-text, #721c24)}.scan-error .scan-icon{color:var(--alert-danger-icon, #dc3545)}.scan-warning{background-color:var(--alert-warning-bg, #fff3cd);border:2px solid var(--alert-warning-border, #ffeaa7);color:var(--alert-warning-text, #856404)}.scan-warning .scan-icon{color:var(--alert-warning-icon, #ffc107)}@keyframes scanNotificationIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.scan-notification.fade-out{animation:scanNotificationOut .3s ease-in forwards}@keyframes scanNotificationOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}@media (max-width: 768px){.alert{padding:10px 12px;font-size:14px;margin-bottom:12px}.alert:before{font-size:14px}.scan-notification{padding:16px 24px;min-width:160px}.scan-icon{font-size:40px}.scan-text{font-size:16px}}.scanner-container{position:relative}.scanner-processing-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;border-radius:8px}.processing-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:8px}.processing-text{color:#fff;font-size:14px;font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
