:root{--primary-dark:#5a6fd8;--accent:#f093fb;--gray-400:#9ca3af;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--radius-sm:0.375rem;--radius:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--text-2xl:1.5rem;--text-3xl:1.875rem}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;line-height:1.15}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f9fafb;background:var(--gray-50);color:#111827;color:var(--gray-900);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:1rem;font-size:var(--text-base);line-height:1.6;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;margin:0}ol,p,ul{margin:0}ol,ul{list-style:none}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}img{height:auto;max-width:100%}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:focus{outline:2px solid #667eea;outline:2px solid var(--primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#f3f4f6;background:var(--gray-100);border-radius:3px}::-webkit-scrollbar-thumb{background:#d1d5db;background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--gray-400)}::selection{background:#667eea33;color:#111827;color:var(--gray-900)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.app{display:flex;flex-direction:column;min-height:100vh}.top-nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff;background:#fffffff2;border-bottom:1px solid var(--gray-200);box-shadow:var(--shadow);justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);position:-webkit-sticky;position:sticky;top:0;z-index:50}.nav-left .logo,.top-nav{align-items:center;display:flex}.nav-left .logo{gap:var(--spacing-sm)}.logo-icon{border-radius:50%;box-shadow:0 2px 4px #667eea33;height:2.5rem;object-fit:cover;width:2.5rem}.logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;background-clip:text;font-size:var(--text-xl);font-weight:700}.nav-right{display:flex;gap:var(--spacing-sm)}.nav-btn{align-items:center;background:var(--gray-100);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--gray-600);cursor:pointer;display:flex;height:2.5rem;justify-content:center;transition:all .2s ease;width:2.5rem}.nav-btn:hover{background:var(--gray-200);box-shadow:var(--shadow-md);color:var(--gray-700);transform:translateY(-1px)}.board-tabs{-ms-overflow-style:none;background:#fff;border-bottom:1px solid var(--gray-200);box-shadow:var(--shadow-sm);display:flex;gap:var(--spacing-sm);overflow-x:auto;padding:0 var(--spacing-lg);scrollbar-width:none}.board-tabs::-webkit-scrollbar{display:none}.tab-btn{background:none;border:none;border-radius:var(--radius) var(--radius) 0 0;color:var(--gray-500);cursor:pointer;flex-shrink:0;font-size:var(--text-sm);font-weight:500;min-width:-webkit-fit-content;min-width:fit-content;padding:var(--spacing-sm) var(--spacing-lg);position:relative;transition:all .2s ease;white-space:nowrap}.tab-btn:hover{background:var(--gray-50);color:var(--primary)}.tab-btn.active{background:#667eea0d;color:var(--primary);font-weight:600}.tab-btn.active:after{background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:2px 2px 0 0;bottom:0;content:"";height:3px;left:0;position:absolute;right:0}.main-content{flex:1 1;margin:0 auto;max-width:42rem;min-height:calc(100vh - 200px);padding:var(--spacing-lg);width:100%}.content-header{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:space-between;margin-bottom:var(--spacing-lg)}.page-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;background-clip:text;color:var(--gray-900);font-size:var(--text-2xl);font-weight:700;margin:0}.floating-button-group{bottom:2rem;display:flex;flex-direction:column;gap:var(--spacing-sm);position:fixed;right:2rem;z-index:40}.floating-btn{align-items:center;background:linear-gradient(135deg,var(--primary),var(--secondary));border:none;border-radius:50%;box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;display:flex;height:3.5rem;justify-content:center;transition:all .3s ease;width:3.5rem}.floating-btn:hover{box-shadow:var(--shadow-xl);transform:translateY(-2px) scale(1.05)}.floating-btn-secondary{background:linear-gradient(135deg,var(--gray-600),var(--gray-700))}.floating-btn-secondary:hover{background:linear-gradient(135deg,var(--gray-700),var(--gray-800))}.floating-btn:not(.floating-button-group .floating-btn){bottom:2rem;position:fixed;right:2rem;z-index:40}.btn{align-items:center;border:none;border-radius:var(--radius-lg);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:500;gap:var(--spacing-sm);justify-content:center;min-height:40px;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all .2s ease;white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:var(--shadow)}.btn-primary:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--gray-100);border:1px solid var(--gray-300);color:var(--gray-700)}.btn-secondary:hover{background:var(--gray-200);border-color:var(--gray-400)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn:disabled{cursor:not-allowed;opacity:.5}.card{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:var(--spacing-lg);transition:all .2s ease}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-header{border-bottom:1px solid var(--gray-200);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md)}.card-title{color:var(--gray-900);font-size:var(--text-lg);font-weight:600;margin:0}.card-content{color:var(--gray-700);line-height:1.6}.card-footer{border-top:1px solid var(--gray-200);display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-md);padding-top:var(--spacing-md)}.grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.ranking-board{max-width:100%}.ranking-header{background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:#fff;margin-bottom:2rem;padding:1.5rem;text-align:center}.ranking-header h2{font-size:var(--text-2xl);font-weight:700;margin:0 0 .5rem}.ranking-description{font-size:var(--text-sm);margin:0;opacity:.9}.ranking-content{grid-gap:2rem;display:grid;gap:2rem;margin-bottom:2rem}.ranking-section{border:1px solid var(--gray-100);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:1.5rem}.section-header{border-bottom:2px solid var(--gray-100)}.section-header h3{color:var(--gray-900);font-size:var(--text-lg);font-weight:600}.section-subtitle{align-items:center;color:var(--gray-600);display:flex;font-size:var(--text-sm);gap:.5rem}.ranking-list{gap:1rem}.ranking-item{align-items:center;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);display:flex;justify-content:space-between;padding:1rem;transition:all .2s ease}.ranking-item:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.ranking-left{align-items:center;display:flex;gap:1rem}.ranking-position{align-items:center;background:var(--gray-100);border-radius:50%;display:flex;font-size:var(--text-sm);font-weight:600;height:2.5rem;justify-content:center;width:2.5rem}.rank-number{color:var(--gray-600);font-weight:600}.ranking-info h4{color:var(--gray-900);margin:0 0 .25rem}.ranking-info p{color:var(--gray-600);font-size:var(--text-sm);margin:0}.ranking-right{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem}.visit-count{align-items:center;color:var(--primary);display:flex;font-weight:600;gap:.5rem}.count-number{font-size:var(--text-lg);font-weight:700}.count-label{color:var(--gray-600);font-size:var(--text-sm)}.visit-info small{color:var(--gray-500);font-size:var(--text-xs)}.rank-first{background:linear-gradient(135deg,#ffd7000d,#ffd7001a);border-left:4px solid gold}.rank-second{background:linear-gradient(135deg,#c0c0c00d,#c0c0c01a);border-left:4px solid silver}.rank-third{background:linear-gradient(135deg,#cd7f320d,#cd7f321a);border-left:4px solid #cd7f32}.rank-other{border-left:4px solid var(--gray-300)}.competitions-list{grid-gap:1.5rem;display:grid;gap:1.5rem}.competition-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem;transition:all .2s ease}.competition-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.competition-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.competition-info h4{font-weight:600}.participant-count{align-items:center;display:flex;gap:.25rem}.max-participants{color:var(--gray-500)}.competition-rankings{border-top:1px solid var(--gray-200);margin-top:1rem;padding-top:1rem}.competition-rankings h5{color:var(--gray-800);font-size:var(--text-base);font-weight:600;margin:0 0 1rem}.score{align-items:center;color:var(--primary);display:flex;font-weight:600;gap:.25rem}.team-name{color:var(--gray-500);font-style:italic}.empty-state{color:var(--gray-600);padding:3rem 2rem}.empty-icon{margin-bottom:1rem;opacity:.5}.empty-state p{font-size:var(--text-lg);font-weight:500;margin:0 0 .5rem}.empty-state small{color:var(--gray-500)}.loading-placeholder{display:flex;flex-direction:column;gap:1rem}.loading-skeleton{animation:loading 1.5s infinite;background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-100) 50%,var(--gray-200) 75%);background-size:200% 100%;border-radius:var(--radius-lg);height:4rem}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.ranking-footer{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-top:2rem;padding:1.5rem}.ranking-info h4{color:var(--gray-800);font-size:var(--text-base);font-weight:600;margin:0 0 1rem}.ranking-info ul{color:var(--gray-700);font-size:var(--text-sm);line-height:1.6;margin:0;padding-left:1.5rem}.ranking-info li{margin-bottom:.5rem}.ranking-note{background:var(--gray-50);border-left:4px solid var(--primary);border-radius:var(--radius);margin-top:1rem;padding:1rem}.ranking-note p{color:var(--gray-600);margin:0}.btn-sm,.ranking-note p{font-size:var(--text-sm)}.btn-sm{min-height:auto;padding:.5rem 1rem}.btn-outline{background:#0000;border:1px solid var(--gray-300);color:var(--gray-700)}.btn-outline:hover{background:var(--gray-50);border-color:var(--gray-400)}.competition-info{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:1rem;padding:1rem}.competition-info h4{color:var(--gray-900);font-size:var(--text-lg);margin:0 0 .5rem}.competition-description{color:var(--gray-700);font-size:var(--text-sm);margin:0 0 1rem}.competition-meta{color:var(--gray-600);display:flex;font-size:var(--text-sm);gap:1rem}.participants-section{margin-top:1.5rem}.section-header h4{color:var(--gray-800);font-size:var(--text-base);margin:0}.participants-list{display:flex;flex-direction:column;gap:.75rem}.participant-item{align-items:center;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);display:flex;justify-content:space-between;padding:1rem;transition:all .2s ease}.participant-item:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.participant-left{align-items:center;display:flex;gap:1rem}.participant-rank{align-items:center;background:var(--gray-100);border-radius:50%;display:flex;font-size:var(--text-sm);font-weight:600;height:2rem;justify-content:center;width:2rem}.participant-info h5{color:var(--gray-900);font-size:var(--text-base);font-weight:600;margin:0 0 .25rem}.student-id,.team-name{color:var(--gray-500);display:block;font-size:var(--text-xs);margin:.125rem 0}.participant-right{align-items:center;display:flex;gap:1rem}.score-display{align-items:center;color:var(--primary);display:flex;font-weight:600;gap:.5rem}.score-value{font-size:var(--text-lg);font-weight:700}.ranking-header h5{color:var(--gray-800);font-size:var(--text-base);margin:0}.form-section{border-bottom:1px solid var(--gray-200);margin-bottom:2rem;padding-bottom:1.5rem}.form-section:last-child{border-bottom:none;margin-bottom:0}.form-section h4{color:var(--gray-800);font-size:var(--text-base);font-weight:600;margin:0 0 1rem}.form-group label{display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:.5rem}.form-input{border:1px solid var(--gray-300);border-radius:var(--radius);font-size:var(--text-sm)}.error-message{color:var(--danger);display:block;font-size:var(--text-xs);margin-top:.25rem}.modal-container.large{max-width:600px}.modal-title{align-items:center;display:flex;font-size:var(--text-lg);font-weight:600;gap:.5rem}@media (max-width:768px){.top-nav{padding:var(--spacing-sm) var(--spacing-md)}.logo-icon{font-size:var(--text-base);height:2rem;width:2rem}.logo-text{font-size:var(--text-lg)}.nav-btn{height:2.25rem;width:2.25rem}.board-tabs{gap:var(--spacing-xs)}.board-tabs,.tab-btn{padding:var(--spacing-sm) var(--spacing-md)}.tab-btn{font-size:var(--text-xs)}.main-content{padding:var(--spacing-md);padding-bottom:6rem}.page-title{font-size:var(--text-xl)}.floating-button-group{bottom:1.5rem;right:1.5rem}.floating-btn{height:3rem;width:3rem}.floating-btn:not(.floating-button-group .floating-btn){bottom:1.5rem;height:3rem;right:1.5rem;width:3rem}.ranking-header{margin-bottom:1.5rem;padding:1rem}.ranking-header h2{font-size:var(--text-xl)}.ranking-section{padding:1rem}.ranking-item{align-items:flex-start;flex-direction:column;gap:1rem}.ranking-right{align-items:flex-start;width:100%}.competition-header{align-items:flex-start;flex-direction:column;gap:1rem}.competition-meta{flex-direction:column;gap:.5rem}}.competition-actions{align-items:flex-end;display:flex;flex-direction:column;gap:1rem;min-width:200px}.best-record-info{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:.5rem;min-width:150px;padding:.75rem;text-align:right}.record-label{color:var(--gray-600);font-size:.75rem;font-weight:500;margin-bottom:.25rem}.record-value{color:var(--primary-600);font-size:1.125rem;font-weight:700;margin-bottom:.25rem}.record-holder{color:var(--gray-700);font-size:.875rem;font-weight:500}.action-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}@media (max-width:768px){.competition-actions{align-items:stretch;min-width:auto;width:100%}.best-record-info{min-width:auto;text-align:center}.action-buttons{flex-wrap:wrap;justify-content:center}}:root{--primary:#667eea;--secondary:#764ba2;--danger:#ef4444;--danger-600:#dc2626;--warning:#f59e0b;--success:#10b981;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--radius:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--accent:#764ba2}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;display:flex;inset:0;justify-content:center;opacity:1;padding:1rem;padding:var(--spacing-md);position:fixed;transition:all .3s ease;z-index:1000}.modal-overlay.show{opacity:1}.modal{background:#fff;border-radius:.75rem;border-radius:var(--radius-xl);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);max-height:90vh;max-width:28rem;overflow-y:auto;transform:scale(.9) translateY(-20px);transition:all .3s ease;width:100%}.modal-overlay.show .modal{transform:scale(1) translateY(0)}.modal-container{background:#fff;border-radius:.75rem;border-radius:var(--radius-xl);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);max-height:90vh;max-width:28rem;overflow-y:auto;transform:scale(.9) translateY(-20px);transition:all .3s ease;width:100%}.modal-container.large{max-height:90vh;max-width:900px;overflow-y:auto;width:90vw}.modal-overlay.show .modal-container{transform:scale(1) translateY(0)}.modal-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--gray-200);padding:1.5rem 1.5rem 1rem;padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md)}.modal-title{color:#111827;color:var(--gray-900);font-size:1.25rem;font-size:var(--text-xl);font-weight:700;margin:0}.modal-close{align-items:center;background:#f3f4f6;background:var(--gray-100);border:none;border-radius:.375rem;border-radius:var(--radius);color:#6b7280;color:var(--gray-500);cursor:pointer;display:flex;height:2rem;justify-content:center;transition:all .2s ease;width:2rem}.modal-close:hover{background:#e5e7eb;background:var(--gray-200);color:#374151;color:var(--gray-700)}.modal-body,.modal-content{padding:1.5rem;padding:var(--spacing-lg)}.modal-body{max-height:calc(90vh - 200px);overflow-y:auto}.modal-actions{gap:.5rem;gap:var(--spacing-sm);justify-content:flex-end;margin-top:1.5rem;margin-top:var(--spacing-lg)}.modal-footer{background:linear-gradient(180deg,#f9fafb,#fff);background:linear-gradient(to bottom,var(--gray-50),#fff);border-radius:0 0 .75rem .75rem;border-radius:0 0 var(--radius-xl) var(--radius-xl);border-top:1px solid var(--gray-200);padding:1.5rem}.button-group{justify-content:flex-end;margin-top:1rem}.button-group,.form{display:flex;gap:1rem}.form{gap:var(--spacing-md)}.form,.form-group{flex-direction:column}.form-group{display:flex;gap:.5rem}.form-group label{color:#374151;color:var(--gray-700);font-size:.95rem;font-weight:600}.form-label{color:var(--gray-700);font-size:.875rem;font-size:var(--text-sm)}.form-input{background:#fff;border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:.75rem;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #667eea1a;transform:translateY(-1px)}.form-input:disabled{background:#f9fafb;background:var(--gray-50);color:var(--gray-500)}.form-input.error{border-color:#ef4444;border-color:var(--danger);box-shadow:0 0 0 3px #ef44441a}.form-error{color:#ef4444;color:var(--danger);font-size:.75rem;font-size:var(--text-xs);margin-top:.25rem;margin-top:var(--spacing-xs)}.btn-primary{align-items:center!important;background:linear-gradient(135deg,#667eea,#764ba2)!important;border:none!important;border-radius:.5rem!important;box-shadow:0 4px 12px #667eea40!important;box-sizing:border-box!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-size:1rem!important;font-weight:500!important;gap:.5rem!important;justify-content:center!important;min-height:44px!important;min-width:100px!important;padding:.75rem 1.5rem!important;text-decoration:none!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;white-space:nowrap!important}.btn-primary:hover:not(:disabled){box-shadow:0 8px 24px #667eea59!important;transform:translateY(-2px)!important}.btn-primary:active{box-shadow:0 4px 12px #667eea40!important;transform:translateY(0)!important}.btn-primary:disabled{box-shadow:0 2px 4px #0000001a!important;cursor:not-allowed!important;opacity:.6!important;transform:none!important}.btn-secondary{align-items:center!important;background:#fff!important;border:2px solid #e5e7eb!important;border:2px solid var(--gray-200)!important;border-radius:.5rem!important;box-shadow:0 2px 8px #0000000d!important;box-sizing:border-box!important;color:#374151!important;color:var(--gray-700)!important;cursor:pointer!important;display:inline-flex!important;font-size:1rem!important;font-weight:500!important;gap:.5rem!important;justify-content:center!important;min-height:44px!important;min-width:100px!important;padding:.75rem 1.5rem!important;text-decoration:none!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;white-space:nowrap!important}.btn-secondary:hover:not(:disabled){background:#f9fafb!important;background:var(--gray-50)!important;border-color:#d1d5db!important;border-color:var(--gray-300)!important;box-shadow:0 4px 12px #0000001a!important;transform:translateY(-1px)!important}.btn-secondary:active{background:#f3f4f6!important;background:var(--gray-100)!important;transform:translateY(0)!important}.btn-secondary:disabled{box-shadow:none!important;cursor:not-allowed!important;opacity:.6!important;transform:none!important}.btn-danger-outline{align-items:center!important;background:#fff!important;border:2px solid #ef4444!important;border:2px solid var(--danger)!important;border-radius:.5rem!important;box-shadow:0 2px 8px #ef44441a!important;box-sizing:border-box!important;color:#ef4444!important;color:var(--danger)!important;cursor:pointer!important;display:inline-flex!important;font-size:1rem!important;font-weight:500!important;gap:.5rem!important;justify-content:center!important;min-height:44px!important;min-width:100px!important;padding:.75rem 1.5rem!important;text-decoration:none!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;white-space:nowrap!important}.btn-danger-outline:hover:not(:disabled){background:#ef4444!important;background:var(--danger)!important;box-shadow:0 4px 12px #ef444440!important;color:#fff!important;transform:translateY(-1px)!important}.btn-danger-outline:active{transform:translateY(0)!important}.btn-danger-outline:disabled{box-shadow:none!important;cursor:not-allowed!important;opacity:.6!important;transform:none!important}.btn.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)!important}.btn.btn-danger,.btn.btn-primary{border:none!important;color:#fff!important}.btn.btn-danger{background:#ef4444!important;background:var(--danger)!important}.first-login-notice,.first-login-notice p{margin-bottom:1rem;margin-bottom:var(--spacing-md)}.first-login-notice p{background-color:#fffbeb;border:1px solid #f59e0b;border:1px solid var(--warning);border-radius:.375rem;border-radius:var(--radius);color:#f59e0b;color:var(--warning);font-size:.875rem;font-size:var(--text-sm);padding:.5rem;padding:var(--spacing-sm)}.avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:600;justify-content:center}.avatar-lg{font-size:1rem;font-size:var(--text-base);height:3rem;width:3rem}.profile-section{align-items:center;display:flex;gap:1rem;gap:var(--spacing-md);margin-bottom:1rem;margin-bottom:var(--spacing-md)}.profile-info h4{color:#111827;color:var(--gray-900);font-size:1.125rem;font-size:var(--text-lg);font-weight:600;margin:0}.profile-info p{color:#6b7280;color:var(--gray-500);font-size:.875rem;font-size:var(--text-sm);margin:0}.divider{background:#e5e7eb;background:var(--gray-200);height:1px;margin:1rem 0;margin:var(--spacing-md) 0}.settings-actions{display:flex;flex-direction:column;gap:.5rem;gap:var(--spacing-sm)}@media (max-width:768px){.modal-container.large{margin:1rem;max-height:calc(100vh - 2rem);width:95vw}.button-group{flex-direction:column;gap:.75rem}.btn-danger-outline,.btn-primary,.btn-secondary{font-size:1rem!important;padding:.875rem 1rem!important;width:100%!important}}@media (max-width:640px){.modal,.modal-container{margin:1rem;margin:var(--spacing-md);max-width:calc(100vw - 2rem)}.modal-header{padding:1rem 1rem .5rem;padding:var(--spacing-md) var(--spacing-md) var(--spacing-sm)}.modal-body,.modal-content{padding:1rem;padding:var(--spacing-md)}.button-group,.modal-actions{flex-direction:column}.btn-danger-outline,.btn-primary,.btn-secondary{width:100%!important}}@keyframes progress-bar-stripes{0%{background-position:0 0}to{background-position:20px 0}}.spinner{animation:spin 1s linear infinite}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}.popup-overlay{align-items:center;animation:popupFadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:9999}@keyframes popupFadeIn{0%{opacity:0}to{opacity:1}}.popup-container{animation:popupSlideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:450px;padding:2rem;position:relative;width:100%}@keyframes popupSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.popup-close-button{align-items:center;background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;display:flex;justify-content:center;padding:.25rem;position:absolute;right:1rem;top:1rem;transition:all .2s ease}.popup-close-button:hover{background-color:#f3f4f6;color:#6b7280}.popup-icon{animation:popupIconBounce .5s ease-out;display:flex;justify-content:center;margin-bottom:1.5rem}@keyframes popupIconBounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.popup-title{color:#111827;font-size:1.25rem;font-weight:700;margin:0 0 1rem;text-align:center}.popup-message{color:#6b7280;font-size:.95rem;line-height:1.6;margin:0 0 2rem;text-align:center;white-space:pre-line}.popup-actions{display:flex;gap:.75rem;justify-content:center}.popup-button{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;min-width:100px;padding:.75rem 1.5rem;transition:all .2s ease}.popup-button-primary{background-color:#3b82f6;color:#fff}.popup-button-primary:hover{background-color:#2563eb;box-shadow:0 4px 6px -1px #3b82f64d;transform:translateY(-1px)}.popup-button-danger{background-color:#dc2626;color:#fff}.popup-button-danger:hover{background-color:#b91c1c;box-shadow:0 4px 6px -1px #dc26264d;transform:translateY(-1px)}.popup-button-secondary{background-color:#f3f4f6;color:#6b7280}.popup-button-secondary:hover{background-color:#e5e7eb;color:#374151}.popup-button:active{transform:translateY(0)}@media (max-width:640px){.popup-container{margin:1rem;padding:1.5rem}.popup-title{font-size:1.1rem}.popup-message{font-size:.9rem;margin-bottom:1.5rem}.popup-actions{flex-direction:column}.popup-button{min-width:0;min-width:auto;width:100%}}.user-detail-modal-overlay{background-color:#00000040;z-index:1002}.user-detail-modal{max-width:700px;width:90%}.user-profile-section{align-items:center;background-color:#f9fafb;border-radius:12px;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1.5rem}.user-avatar{align-items:center;background-color:var(--primary-light);border-radius:50%;color:var(--primary-color);display:flex;flex-shrink:0;font-size:1.5rem;font-weight:700;height:60px;justify-content:center;width:60px}.user-profile-info{flex:1 1}.user-profile-name{color:var(--gray-900);font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.user-profile-email{color:var(--gray-600);font-size:.875rem;margin-bottom:.5rem}.user-role-badge{border-radius:12px;display:inline-block;font-size:.8rem;font-weight:600;padding:.375rem .75rem}.info-section{background-color:#fff;border:1px solid var(--gray-200);border-radius:8px;margin-bottom:1.5rem;padding:1rem}.info-section-title{color:var(--gray-900);font-size:.95rem;font-weight:600;margin-bottom:1rem}.info-row{display:flex;justify-content:space-between;margin-bottom:.75rem}.info-row:last-child{margin-bottom:0}.info-label{color:var(--gray-600);font-size:.875rem}.info-value{color:var(--gray-900);font-size:.875rem;font-weight:500}.prize-section{gap:1rem;justify-content:space-between}.prize-info,.prize-section{align-items:center;display:flex}.prize-info{gap:.5rem}.prize-details h5{color:var(--gray-900);font-size:.95rem;font-weight:600;margin:0}.prize-timestamp{color:var(--gray-500);font-size:.75rem}.prize-checkbox-label{align-items:center;cursor:pointer;display:flex;gap:.5rem}.prize-checkbox-label.disabled{cursor:not-allowed;opacity:.6}.prize-checkbox{accent-color:var(--primary-color);cursor:pointer;height:20px;width:20px}.prize-checkbox:disabled{cursor:not-allowed}.prize-status{font-size:.875rem;font-weight:600}.prize-status.received{color:#059669}.prize-status.not-received{color:#dc2626}.action-buttons-container{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);margin-bottom:1.5rem}.action-btn{background-color:#f9fafb;border:2px solid #0000;border-radius:12px;flex-direction:column;font-family:inherit;font-size:inherit;gap:.75rem;padding:1.25rem 1rem;transition:all .3s ease}.action-btn:hover:not(:disabled){box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.action-btn:active:not(:disabled){transform:translateY(0)}.action-btn:disabled{opacity:.6}.action-btn-icon{align-items:center;border-radius:10px;display:flex;height:48px;justify-content:center;transition:all .3s ease;width:48px}.action-btn-content{text-align:center}.action-btn-title{font-size:.9rem;font-weight:600;line-height:1.2}.action-btn-subtitle{font-size:.75rem;font-weight:500;line-height:1.2}.action-btn.qr-btn .action-btn-icon{background-color:#ede9fe;color:#8b5cf6}.action-btn.qr-btn{border-color:#e9d5ff;color:#8b5cf6}.action-btn.qr-btn:hover:not(:disabled){background-color:#f5f3ff;border-color:#ddd6fe}.action-btn.qr-change-btn .action-btn-icon{background-color:#cffafe;color:#06b6d4}.action-btn.qr-change-btn{border-color:#a5f3fc;color:#06b6d4}.action-btn.qr-change-btn:hover:not(:disabled){background-color:#ecfdf5;border-color:#83e8c9}.action-btn.reset-btn .action-btn-icon{background-color:#fef3c7;color:#f59e0b}.action-btn.reset-btn{border-color:#fde68a;color:#f59e0b}.action-btn.reset-btn:hover:not(:disabled){background-color:#fffbeb;border-color:#fed7aa}.action-btn.delete-btn .action-btn-icon{background-color:#fee2e2;color:#dc2626}.action-btn.delete-btn{border-color:#fecaca;color:#dc2626}.action-btn.delete-btn:hover:not(:disabled){background-color:#fef2f2;border-color:#fca5a5}@media (max-width:600px){.action-buttons-container{gap:.75rem;grid-template-columns:repeat(2,1fr)}.action-btn{padding:1rem .75rem}.action-btn-icon{height:40px;width:40px}.action-btn-icon svg{height:20px;width:20px}.action-btn-title{font-size:.8rem}.action-btn-subtitle{font-size:.65rem}}.logs-section-title{align-items:center;color:var(--gray-900);display:flex;font-size:.95rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.logs-container{background-color:#f9fafb;border:1px solid var(--gray-200);border-radius:8px;max-height:300px;overflow-y:auto}.logs-empty,.logs-loading{color:var(--gray-500);font-size:.875rem;padding:2rem;text-align:center}.log-item{background-color:#fff;padding:1rem}.log-item:not(:last-child){border-bottom:1px solid var(--gray-200)}.log-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.log-operation{color:var(--gray-900);font-size:.875rem;font-weight:600}.log-timestamp{color:var(--gray-500);font-size:.75rem}.log-message{border-left:2px solid var(--gray-300);color:var(--gray-600);font-size:.8rem;padding-left:.5rem}.qr-modal-overlay{background-color:#00000040;z-index:1003}.qr-modal{max-width:400px;width:90%}.qr-content{text-align:center}.qr-content,.qr-loading{padding:2rem}.qr-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top:4px solid var(--primary-color);height:40px;margin:1rem auto;width:40px}.qr-loading-text{color:var(--gray-600);margin-top:1rem}.qr-error{color:#dc2626;font-weight:500}.qr-image-container{background-color:#f9fafb;border-radius:12px;display:inline-block;margin-bottom:1.5rem;padding:1rem}.qr-image{border-radius:8px;height:220px;width:220px}.qr-info-box{background-color:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px;margin-top:1rem;padding:1rem}.qr-info-text{color:var(--gray-700);font-size:.875rem;line-height:1.5;margin:0 0 .75rem}.qr-info-highlight{color:var(--primary-color)}.qr-info-id{color:var(--gray-600);font-family:monospace;font-size:.8rem;margin:0;word-break:break-all}.stamp-list{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding:.5rem 0}.stamp-item{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;transition:all .2s ease}.stamp-item:hover{background-color:#f3f4f6;border-color:#d1d5db}.stamp-item-content{align-items:center;display:flex;gap:1rem;justify-content:space-between}.stamp-item-info{flex:1 1;min-width:0}.stamp-item-name{color:#1f2937;font-size:.9rem;font-weight:600;margin-bottom:.25rem}.stamp-item-time{color:#6b7280;font-size:.75rem}.stamp-item-actions{align-items:center;display:flex;flex-shrink:0;gap:.5rem}.stamp-like-badge{background-color:#fce7f3;border-radius:6px;padding:.25rem .5rem}.stamp-delete-btn,.stamp-like-badge{align-items:center;display:flex;justify-content:center}.stamp-delete-btn{background-color:#fff;border:1px solid #dc2626;border-radius:6px;color:#dc2626;cursor:pointer;padding:.5rem;transition:all .2s ease}.stamp-delete-btn:hover:not(:disabled){background-color:#dc2626;color:#fff}.stamp-delete-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:600px){.stamp-item{padding:.6rem}.stamp-item-name{font-size:.85rem}.stamp-item-time{font-size:.7rem}.stamp-delete-btn{padding:.4rem}}.lottery-list{display:flex;flex-direction:column;gap:.75rem}.lottery-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;transition:all .2s ease}.lottery-item:hover{border-color:#8b5cf6;box-shadow:0 2px 8px #8b5cf61a}.lottery-item.participated{background:#f0fdf4;border-color:#86efac}.lottery-item.not-eligible{background:#f9fafb;border-color:#e5e7eb;opacity:.7}.lottery-item-content{align-items:center;display:flex;gap:1rem;justify-content:space-between}.lottery-item-info{flex:1 1;min-width:0}.lottery-item-name{color:#1f2937;font-size:.95rem;font-weight:600;margin-bottom:.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lottery-item-details{color:#6b7280;display:flex;font-size:.875rem;gap:1rem}.lottery-item-actions,.lottery-participants,.lottery-requirement{align-items:center;display:flex}.lottery-item-actions{flex-shrink:0}.lottery-status{align-items:center;border-radius:6px;display:flex;font-size:.875rem;font-weight:500;gap:.375rem;padding:.5rem .875rem}.lottery-status.participated{background:#dcfce7;color:#166534}.lottery-status.not-eligible{background:#fee2e2;color:#991b1b}.lottery-participate-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease;white-space:nowrap}.lottery-participate-btn:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 4px 12px #8b5cf64d;transform:translateY(-1px)}.lottery-participate-btn:active:not(:disabled){transform:translateY(0)}.lottery-participate-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:640px){.lottery-item-content{align-items:flex-start;flex-direction:column}.lottery-item-details{flex-direction:column;gap:.25rem}.lottery-item-actions{width:100%}.lottery-participate-btn,.lottery-status{justify-content:center;width:100%}}.user-tickets-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto;padding-right:.25rem}.user-tickets-list::-webkit-scrollbar{width:6px}.user-tickets-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.user-tickets-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.user-tickets-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.user-ticket-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;transition:all .2s ease}.user-ticket-item:hover{border-color:#d1d5db;box-shadow:0 2px 6px #00000014}.user-ticket-header{align-items:center;cursor:pointer;display:flex;gap:.75rem;justify-content:space-between;padding:.875rem 1rem .875rem .75rem;transition:all .2s ease}.user-ticket-header:hover{background-color:#00000005!important}.user-ticket-header:active{transform:scale(.99)}.user-ticket-main{display:flex;flex:1 1;flex-direction:column;gap:.375rem;min-width:0}.user-ticket-name{color:#1f2937;font-size:.9375rem;font-weight:600;line-height:1.4}.user-ticket-badge{border-radius:3px;font-size:.6875rem;font-weight:700;letter-spacing:.02em;padding:.125rem .4rem}.user-ticket-badge.reservation{background:#dbeafe;color:#1e40af}.user-ticket-date{color:#6b7280;font-size:.8125rem;font-weight:500}.user-ticket-toggle{align-items:center;color:#9ca3af;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:color .2s ease;width:20px}.user-ticket-header:hover .user-ticket-toggle{color:#6b7280}.user-ticket-details{background:#f9fafb;border-top:1px solid #e5e7eb;padding:.75rem 1rem 1rem}.user-ticket-detail-row{align-items:flex-start;display:flex;font-size:.875rem;gap:1rem;justify-content:space-between;padding:.625rem 0}.user-ticket-detail-row:not(:last-child){border-bottom:1px solid #e5e7eb}.user-ticket-detail-row:first-child{padding-top:0}.user-ticket-detail-row:last-child{padding-bottom:0}.user-ticket-detail-row .detail-label{color:#6b7280;flex-shrink:0;font-weight:500;min-width:70px}.user-ticket-detail-row .detail-value{color:#1f2937;font-weight:600;text-align:right;word-break:break-word}@media (max-width:640px){.user-tickets-list{max-height:300px}.user-ticket-header{padding:.75rem .875rem .75rem .625rem}.user-ticket-name{font-size:.875rem}.user-ticket-date{font-size:.75rem}.user-ticket-details{padding:.875rem}.user-ticket-detail-row{flex-direction:column;gap:.25rem;padding:.5rem 0}.user-ticket-detail-row .detail-label{min-width:auto}.user-ticket-detail-row .detail-value{text-align:left}}.action-btn.impersonate-btn .action-btn-icon{background-color:#dbeafe;color:#1e40af}.action-btn.impersonate-btn{border-color:#bfdbfe;color:#1e40af}.action-btn.impersonate-btn:hover:not(:disabled){background-color:#eff6ff;border-color:#93c5fd}.assign-qr-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1004}.assign-qr-modal{background-color:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:900px;overflow-y:auto;position:relative;width:90%;z-index:1005}.assign-qr-header{align-items:center;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:1.5rem}.assign-qr-title{color:var(--gray-900);font-size:1.25rem;font-weight:700;margin:0}.assign-qr-subtitle{color:var(--gray-500);font-size:.875rem;margin:.25rem 0 0}.assign-qr-close{align-items:center;background:none;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s ease}.assign-qr-close:hover{background-color:var(--gray-100)}.assign-qr-content{padding:1.5rem}.assign-qr-user-info{background-color:#eff6ff;border:1px solid #dbeafe;border-radius:12px;margin-bottom:1.5rem;padding:1rem 1.25rem}.assign-qr-user-info p{color:#1e40af;font-size:.9rem;font-weight:500;margin:0}.assign-qr-user-info span{opacity:.8}.assign-qr-user-info strong{font-weight:700}.assign-qr-error{background-color:#fee2e2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;font-size:.9rem;font-weight:500;margin-bottom:1.5rem;padding:1rem}.assign-qr-list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.assign-qr-list-header h4{color:var(--gray-800);font-size:1rem;font-weight:600;margin:0}.assign-qr-badge{background-color:var(--blue-50);border-radius:12px;color:var(--primary);font-size:.75rem;font-weight:600;padding:.25rem .75rem}.assign-qr-loading{padding:3rem 1rem;text-align:center}.assign-qr-spinner{animation:spin .8s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top:4px solid var(--primary);height:48px;margin:0 auto 1rem;width:48px}.assign-qr-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-bottom:1.5rem;max-height:400px;overflow-y:auto;padding:.5rem}.assign-qr-card{background-color:#fff;border:2px solid var(--gray-200);border-radius:12px;cursor:pointer;padding:1.25rem;position:relative;text-align:center;transform:scale(1);transition:all .2s ease}.assign-qr-card.selected{background-color:#eff6ff;border-color:var(--primary);transform:scale(1.02)}.assign-qr-card.used{background-color:var(--gray-50);border-color:var(--gray-300);cursor:not-allowed;opacity:.7}.assign-qr-card:not(.used):not(.selected):hover{border-color:var(--gray-300);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.assign-qr-used-badge{background-color:#ef4444;border-radius:4px;color:#fff;font-size:.65rem;font-weight:600;padding:.25rem .5rem;position:absolute;right:.5rem;top:.5rem}.assign-qr-image{aspect-ratio:1;background-color:#fff;border:1px solid var(--gray-100);border-radius:8px;margin-bottom:.75rem;padding:.5rem;width:100%}.assign-qr-image img{height:100%;object-fit:contain;width:100%}.assign-qr-name{color:var(--gray-900);font-size:.9rem;font-weight:600;margin:0 0 .5rem}.assign-qr-string{background-color:var(--gray-50);border-radius:4px;color:var(--gray-500);font-family:monospace;font-size:.7rem;margin:0 0 .5rem;padding:.25rem .5rem;word-break:break-all}.assign-qr-date{color:var(--gray-400);font-size:.7rem;margin:0 0 .5rem}.assign-qr-assigned{background-color:#fee2e2;border-radius:4px;color:#ef4444;font-size:.7rem;font-weight:600;margin:0 0 .75rem;padding:.25rem .5rem}.assign-qr-unassign-btn{align-items:center;background-color:#fee2e2;border:none;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;gap:.25rem;justify-content:center;padding:.5rem;transition:all .2s ease;width:100%}.assign-qr-unassign-btn:hover{background-color:#fecaca}.assign-qr-empty{background-color:var(--gray-50);border:2px dashed var(--gray-300);border-radius:12px;margin-bottom:1.5rem;padding:3rem 2rem;text-align:center}.assign-qr-empty p{color:var(--gray-500);font-size:.95rem;margin:0}.assign-qr-buttons{border-top:1px solid var(--gray-200);display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem}.assign-qr-btn-cancel{background-color:#fff;border:1px solid var(--gray-300);border-radius:10px;color:var(--gray-700);cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.assign-qr-btn-cancel:hover:not(:disabled){background-color:var(--gray-50);border-color:var(--gray-400)}.assign-qr-btn-cancel:disabled{cursor:not-allowed;opacity:.6}.assign-qr-btn-submit{align-items:center;background-color:var(--primary);border:none;border-radius:10px;box-shadow:0 2px 8px #3b82f64d;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;padding:.75rem 1.75rem;transition:all .2s ease}.assign-qr-btn-submit:hover:not(:disabled){background-color:#fff;border:1px solid var(--primary);box-shadow:0 4px 12px #3b82f666;color:var(--primary);transform:translateY(-1px)}.assign-qr-btn-submit:disabled{background-color:#d1d5db;cursor:not-allowed}.assign-qr-btn-spinner{animation:spin .6s linear infinite;border:2px solid #fff;border-radius:50%;border-top-color:#0000;height:16px;width:16px}.ticket-form-container{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.ticket-form-title{color:#111827;font-size:1rem;font-weight:600;margin:0 0 1rem}.ticket-time-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.ticket-form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.ticket-add-button{align-items:center;background-color:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;margin-bottom:1.5rem;padding:.75rem 1rem;transition:all .2s ease}.ticket-add-button:hover{background-color:#5568d3;transform:translateY(-1px)}.ticket-add-button:active{transform:translateY(0)}.ticket-list-section{margin-top:2rem}.ticket-list-title{color:#111827;font-size:1rem;font-weight:600;margin:0 0 1rem}.ticket-list-empty{background-color:#f9fafb;border-radius:8px;color:#6b7280;font-size:.95rem;padding:2rem;text-align:center}.ticket-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.ticket-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 2px #0000000d;padding:1rem;transition:all .2s ease}.ticket-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.ticket-card-content{margin-bottom:1rem}.ticket-card-title{color:#111827;font-size:1rem;font-weight:600;margin:0 0 .5rem}.ticket-card-info{color:#6b7280;font-size:.875rem;margin:.25rem 0}.ticket-card-label{font-weight:500}.ticket-card-actions{border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;padding-top:.75rem}.ticket-btn-issue{align-items:center;background-color:#dbeafe;border:1px solid #7dd3fc;border-radius:6px;color:#0369a1;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.5rem .75rem;transition:all .2s ease}.ticket-btn-issue:hover{background-color:#bfdbfe;border-color:#38bdf8}.ticket-btn-issue:active{transform:scale(.98)}.ticket-btn-manage{align-items:center;background-color:#e0e7ff;border:1px solid #c7d2fe;border-radius:6px;color:#4f46e5;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.5rem .75rem;transition:all .2s ease}.ticket-btn-manage:hover{background-color:#c7d2fe;border-color:#a5b4fc}.ticket-btn-manage:active{transform:scale(.98)}.ticket-btn-edit{align-items:center;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.5rem .75rem;transition:all .2s ease}.ticket-btn-edit:hover{background-color:#e5e7eb;border-color:#9ca3af}.ticket-btn-edit:active{transform:scale(.98)}.ticket-btn-delete{align-items:center;background-color:#fef2f2;border:1px solid #fca5a5;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.5rem .75rem;transition:all .2s ease}.ticket-btn-delete:hover{background-color:#fee2e2;border-color:#f87171}.ticket-btn-delete:active{transform:scale(.98)}.ticket-issue-method{display:flex;gap:2rem;margin-top:.5rem;padding:.75rem 0}.radio-label{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:.95rem;gap:.5rem;-webkit-user-select:none;user-select:none}.radio-label span{line-height:1.4}.radio-label input[type=radio]{accent-color:#667eea;cursor:pointer;flex-shrink:0;height:18px;margin:0;width:18px}.checkbox-label{color:#374151;cursor:pointer;font-size:.95rem;gap:1.5rem;margin-top:1rem;padding:1.5rem 0 0;-webkit-user-select:none;user-select:none}.checkbox-label span{line-height:1.4}.checkbox-label input[type=checkbox]{accent-color:#667eea;cursor:pointer;flex-shrink:0;height:18px;width:18px}.qr-scanner-overlay{background-color:#00000080;bottom:0;right:0;z-index:1001}.qr-scanner-modal{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px #00000026;max-width:500px;width:90%}.qr-scanner-header{padding:1.5rem}.qr-scanner-title{color:#111827;font-size:1.125rem;font-weight:600}.qr-scanner-body{gap:1rem;padding:1.5rem}#qr-reader-issue,.qr-scanner-container{border-radius:8px}#qr-reader-issue{width:100%}.qr-scanner-error-message{background-color:#fee2e2;border:1px solid #fca5a5;border-radius:6px;color:#dc2626;font-size:.875rem;padding:.75rem 1rem}.qr-scanner-status{background-color:#f9fafb;border-radius:6px}.qr-scanner-status-text{font-size:.875rem}.qr-scanner-status-success{color:#059669;font-size:.95rem;font-weight:600}.qr-scanner-footer{background-color:#f9fafb;padding:1.5rem}.qr-scanner-buttons{gap:1rem}.qr-scanner-btn{border-radius:6px;font-weight:500;padding:.75rem 1rem}.qr-scanner-btn-secondary{background-color:#f3f4f6;border:1px solid #d1d5db;color:#374151}.qr-scanner-btn-secondary:hover{background-color:#e5e7eb}.issued-list-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1002}.issued-list-modal{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:700px;overflow:hidden;width:90%}.issued-list-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.issued-list-title{color:#111827;font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.issued-list-subtitle{color:#6b7280;font-size:.875rem;margin:0}.issued-list-close{background:none;border:none;color:#6b7280;cursor:pointer;transition:color .2s ease}.issued-list-close:hover{color:#111827}.issued-list-body{flex:1 1;overflow-y:auto;padding:1.5rem}.issued-list-count{background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;color:#166534;font-size:.95rem;margin-bottom:1rem;padding:.75rem 1rem}.issued-list-empty{background-color:#f9fafb;border-radius:8px;color:#6b7280;font-size:.95rem;padding:2rem;text-align:center}.issued-table-container{overflow-x:auto}.issued-table{border-collapse:collapse;width:100%}.issued-table thead{background-color:#f9fafb}.issued-table th{color:#374151;font-weight:600;text-align:left}.issued-table td,.issued-table th{border-bottom:1px solid #e5e7eb;font-size:.875rem;padding:.75rem}.issued-table td{color:#6b7280}.issued-table tbody tr:hover{background-color:#f9fafb}.issued-table-number{color:#111827;font-weight:600}.issued-table-id{color:#111827;font-weight:500}.issued-table-time{white-space:nowrap}.issued-table-actions{text-align:center}.issued-delete-btn{align-items:center;background-color:#fef2f2;border:1px solid #fca5a5;border-radius:6px;color:#dc2626;cursor:pointer;display:inline-flex;justify-content:center;padding:.5rem;transition:all .2s ease}.issued-delete-btn:hover{background-color:#fee2e2;border-color:#f87171}.issued-delete-btn:active{transform:scale(.95)}.issued-list-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;padding:1.5rem}.form-group{margin-bottom:1rem}.form-label{color:#374151;display:block;font-size:.95rem;font-weight:500;margin-bottom:.5rem}.form-input{background-color:#fff;border-radius:6px;color:#111827;transition:border-color .2s ease}.form-input:focus{box-shadow:0 0 0 3px #667eea1a}.form-input::placeholder{color:#9ca3af}.btn-secondary{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;padding:.75rem 1rem;transition:all .2s ease}.btn-secondary:hover{background-color:#e5e7eb}.btn-secondary:active{transform:scale(.98)}@media (max-width:768px){.ticket-grid,.ticket-time-grid{grid-template-columns:1fr}.ticket-form-actions{flex-direction:column}.ticket-form-actions button{width:100%}.ticket-card-actions{flex-direction:column}.ticket-card-actions button{width:100%}.issued-list-modal,.qr-scanner-modal{width:95%}.ticket-issue-method{gap:1.5rem}}@media (max-width:640px){.ticket-form-container{padding:1rem}.ticket-card{padding:.875rem}.ticket-btn-delete,.ticket-btn-edit,.ticket-btn-issue,.ticket-btn-manage{font-size:.75rem;padding:.5rem}.ticket-btn-delete svg,.ticket-btn-edit svg,.ticket-btn-issue svg,.ticket-btn-manage svg{margin-right:.25rem}.issued-list-modal,.qr-scanner-modal{max-height:95vh;width:98%}.issued-table td,.issued-table th{font-size:.75rem;padding:.5rem}.ticket-issue-method{gap:1rem}}.lottery-section{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.lottery-start-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem 1rem;transition:all .3s ease;width:100%}.lottery-start-btn:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.lottery-start-btn:active{transform:translateY(0)}.lottery-container{width:100%}.lottery-input-group{flex-wrap:wrap;margin-bottom:1.5rem}.lottery-input{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#111827;min-width:120px;transition:border-color .2s ease}.lottery-input::placeholder,.lottery-input:disabled{color:#9ca3af}.lottery-draw-btn{background-color:#10b981;border-radius:6px;padding:.75rem 1.25rem}.lottery-draw-btn:hover:not(:disabled){background-color:#059669;transform:translateY(-1px)}.lottery-draw-btn:disabled{background-color:#d1d5db}.lottery-cancel-btn{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.25rem;transition:all .2s ease;white-space:nowrap}.lottery-cancel-btn:hover:not(:disabled){background-color:#e5e7eb;border-color:#9ca3af}.lottery-cancel-btn:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed}.lottery-display{align-items:center;background-color:#fff;border:2px solid #e5e7eb;border-radius:8px;display:flex;justify-content:center;min-height:300px;padding:1.5rem;width:100%}.lottery-animation{text-align:center;width:100%}.lottery-spinner{align-items:center;display:flex;justify-content:center;margin-bottom:1.5rem}.lottery-number-display{-webkit-text-fill-color:#0000;animation:slotMachine .1s linear infinite,glow 1.5s ease-in-out infinite;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 4px 8px rgba(102,126,234,.3));font-size:5rem;font-weight:900;min-width:150px;text-align:center}@keyframes slotMachine{0%{opacity:0;transform:translateY(-40px)}50%{opacity:1}to{opacity:0;transform:translateY(40px)}}@keyframes glow{0%,to{filter:drop-shadow(0 4px 8px rgba(102,126,234,.3))}50%{filter:drop-shadow(0 8px 16px rgba(102,126,234,.6))}}.lottery-status{animation:pulse 1.5s ease-in-out infinite;color:#6b7280;font-size:1rem;margin:0}.lottery-results{width:100%}.lottery-results-title{color:#111827;font-size:1.25rem}.lottery-winners{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.5rem}.lottery-winner-card{animation:popIn .6s cubic-bezier(.34,1.56,.64,1);background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 8px 24px #667eea66;flex-shrink:0;overflow:hidden;padding:.75rem 1rem;position:relative;text-align:center}.lottery-winner-card:before{animation:shine 3s ease-in-out infinite;background:radial-gradient(circle,#ffffff4d 0,#fff0 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}@keyframes shine{0%,to{transform:translate(0)}50%{transform:translate(50px,50px)}}.lottery-winner-rank{display:none}.lottery-winner-number{color:#fff;font-size:2.5rem;font-weight:800;letter-spacing:.1em;line-height:1;margin:0;position:relative;text-shadow:0 4px 12px #0000004d;z-index:1}.lottery-reset-btn{background-color:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.875rem 1rem;transition:all .2s ease;width:100%}.lottery-reset-btn:hover{background-color:#5568d3;transform:translateY(-1px)}.lottery-reset-btn:active{transform:translateY(0)}@media (max-width:768px){.lottery-input-group{flex-direction:column}.lottery-cancel-btn,.lottery-draw-btn,.lottery-input{width:100%}.lottery-number-display{font-size:3rem}.lottery-winners{gap:.5rem}.lottery-winner-card{padding:.6rem .8rem}.lottery-winner-number{font-size:1.75rem}}@media (max-width:640px){.lottery-section{padding:.75rem}.lottery-display{min-height:250px;padding:1rem}.lottery-number-display{font-size:2.5rem}.lottery-results-title{font-size:1.1rem}.lottery-winners{gap:.4rem}.lottery-winner-card{padding:.5rem .7rem}.lottery-winner-number{font-size:1.5rem}}.ticket-btn-verify{align-items:center;background-color:#d1fae5;border:1px solid #6ee7b7;border-radius:6px;color:#059669;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.5rem .75rem;transition:all .2s ease}.ticket-btn-verify:hover{background-color:#a7f3d0;border-color:#34d399}.ticket-btn-verify:active{transform:scale(.98)}@media (max-width:640px){.ticket-btn-verify{font-size:.75rem;padding:.5rem}.ticket-btn-verify svg{margin-right:.25rem}}.issued-table th:nth-child(4),.issued-table-entry{text-align:center}.entry-status-entered{background-color:#d1fae5;color:#059669}.entry-status-entered,.entry-status-not-entered{border-radius:6px;display:inline-block;font-size:.875rem;font-weight:600;padding:.35rem .75rem;white-space:nowrap}.entry-status-not-entered{background-color:#fee2e2;color:#dc2626}.lottery-modal-overlay{align-items:center;animation:fadeIn .2s ease;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1003}.lottery-modal-container{animation:slideUp .3s ease;background-color:#fff;border-radius:12px;box-shadow:0 20px 25px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lottery-modal-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.lottery-modal-title{color:#111827;font-size:1.25rem;font-weight:700;margin:0 0 .25rem}.lottery-modal-subtitle{color:#6b7280;font-size:.875rem;margin:0}.lottery-modal-close{background:none;border:none;color:#6b7280;cursor:pointer;padding:.25rem;transition:color .2s ease}.lottery-modal-close:hover{color:#111827}.lottery-modal-body{flex:1 1;overflow-y:auto;padding:1.5rem}.lottery-info-box{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #86efac;border-radius:8px;margin-bottom:1.5rem;padding:1rem;text-align:center}.lottery-info-text{color:#166534;font-size:1rem;margin:0}.lottery-empty{color:#9ca3af;font-size:1rem;padding:3rem 1rem;text-align:center}.lottery-input-section{margin-bottom:2rem}.lottery-label{color:#374151;display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem}.lottery-input-group{display:flex;gap:.75rem}.lottery-input{border:1.5px solid #d1d5db;border-radius:8px;flex:1 1;font-size:.95rem;padding:.75rem;transition:all .2s ease}.lottery-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.lottery-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.lottery-draw-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s ease;white-space:nowrap}.lottery-draw-btn:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.lottery-draw-btn:disabled{cursor:not-allowed;opacity:.6}.lottery-animation-box{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:12px;margin-bottom:2rem;padding:3rem 2rem;text-align:center}.lottery-spinner-display{margin-bottom:1.5rem}.lottery-spinning-name{-webkit-text-fill-color:#0000;animation:spinAnimation .1s linear infinite;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:900}@keyframes spinAnimation{0%{opacity:0;transform:translateY(-20px)}50%{opacity:1}to{opacity:0;transform:translateY(20px)}}.lottery-status-text{animation:pulse 1.5s ease-in-out infinite;color:#92400e;font-size:1rem;font-weight:600;margin:0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.lottery-results-box{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #0ea5e9;border-radius:12px;margin-bottom:2rem;padding:2rem}.lottery-results-title{color:#0c4a6e;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;text-align:center}.lottery-winners-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-bottom:1.5rem}.lottery-winner-item{animation:popIn .5s cubic-bezier(.34,1.56,.64,1);background:#fff;border:2px solid #0ea5e9;border-radius:10px;box-shadow:0 4px 12px #0ea5e933;padding:1rem;text-align:center}@keyframes popIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.lottery-winner-badge{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:inline-block;display:flex;font-size:.875rem;font-weight:700;height:32px;justify-content:center;margin:0 auto .75rem;width:32px}.lottery-winner-name{color:#0c4a6e;font-size:1rem;font-weight:600;word-break:break-word}.lottery-results-actions{display:flex;gap:.75rem;justify-content:center}.lottery-reset-button{background:#fff;border:2px solid #0ea5e9;border-radius:8px;color:#0c4a6e;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.lottery-reset-button:hover{background:#f0f9ff;transform:translateY(-1px)}.lottery-confirm-button{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;box-shadow:0 4px 12px #10b9814d;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.lottery-confirm-button:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 16px #10b98166;transform:translateY(-2px)}.lottery-participants-section{margin-top:2rem}.lottery-section-title{color:#374151;font-size:1rem;font-weight:600;margin:0 0 1rem}.lottery-participants-list{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;max-height:200px;overflow-y:auto;padding:1rem}.lottery-participant-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;gap:.75rem;padding:.5rem 0}.lottery-participant-item:last-child{border-bottom:none}.lottery-participant-number{align-items:center;background:#e5e7eb;border-radius:50%;color:#6b7280;display:inline-block;display:flex;flex-shrink:0;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.lottery-participant-name{color:#374151;font-size:.9rem}.lottery-modal-footer{background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;padding:1.5rem}.lottery-close-button{background:#fff;border:1.5px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.lottery-close-button:hover{background:#f3f4f6;border-color:#9ca3af}.ticket-btn-lottery{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:6px;color:#92400e;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.5rem .75rem;transition:all .2s ease}.ticket-btn-lottery:hover{background:linear-gradient(135deg,#fde68a,#fcd34d);border-color:#d97706;transform:translateY(-1px)}.ticket-btn-lottery:active{transform:scale(.98)}@media (max-width:640px){.lottery-modal-container{width:95%}.lottery-input-group{flex-direction:column}.lottery-draw-btn{justify-content:center;width:100%}.lottery-spinning-name{font-size:2rem}.lottery-winners-grid{grid-template-columns:1fr}.lottery-results-actions{flex-direction:column;width:100%}.lottery-confirm-button,.lottery-reset-button{width:100%}.ticket-btn-lottery{font-size:.75rem;padding:.5rem}}.temp-qr-form-title{color:var(--gray-800);font-size:1.1rem;font-weight:600;margin-bottom:1rem}.temp-qr-form-label{color:var(--gray-700);display:block;font-size:1rem;font-weight:500;margin-bottom:.5rem}.temp-qr-quantity-container{align-items:center;display:flex;gap:.5rem}.temp-qr-quantity-btn{background-color:#fff;border:1px solid var(--gray-300);border-radius:6px;color:#374151;cursor:pointer;font-size:1.4rem;font-weight:700;height:50px;padding:0;transition:all .2s ease;width:50px}.temp-qr-quantity-btn:hover:not(:disabled){background-color:#f3f4f6;border-color:#d1d5db}.temp-qr-quantity-btn:disabled{background-color:#e5e7eb;color:#9ca3af;cursor:not-allowed}.temp-qr-quantity-input{border:1px solid var(--gray-300);border-radius:8px;box-sizing:border-box;flex:1 1;font-size:1.1rem;font-weight:600;padding:.75rem;text-align:center}.temp-qr-quantity-input:disabled{cursor:not-allowed;opacity:.6}.temp-qr-help-text{color:var(--gray-500);font-size:.9rem;margin-top:.5rem}.temp-qr-error{background-color:#fee2e2;border-radius:8px;color:#dc2626;font-size:.95rem;margin-bottom:1rem;padding:1rem}.temp-qr-generate-btn{align-items:center;background-color:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:1rem;transition:background-color .2s ease!important;width:100%}.temp-qr-generate-btn:hover:not(:disabled){background-color:var(--primary-hover)!important;color:#fff!important}.temp-qr-generate-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.temp-qr-generate-btn:active:not(:disabled){transform:scale(.98)}.temp-qr-spinner{animation:spin .6s linear infinite;border:2px solid #fff;border-radius:50%;border-top-color:#0000;height:18px;width:18px}.temp-qr-small-spinner{animation:spin .6s linear infinite;border:1.5px solid;border-radius:50%;border-top:1.5px solid #0000;height:12px;width:12px}.temp-qr-divider{background-color:var(--gray-200);height:1px;margin:2rem 0}.temp-qr-list-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.temp-qr-list-title{color:var(--gray-800);font-size:1.1rem;font-weight:600;margin:0}.temp-qr-header-actions{display:flex;flex-wrap:wrap;gap:.75rem}.temp-qr-download-all-btn{align-items:center;background-color:#dbeafe;border:1px solid #bfdbfe;border-radius:6px;color:#0369a1;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.4rem;padding:.6rem 1.2rem;transition:all .2s ease}.temp-qr-download-all-btn:hover{background-color:#bfdbfe;color:#0284c7}.temp-qr-delete-all-btn{background-color:#fee2e2;border:1px solid #fca5a5;border-radius:6px;color:#dc2626;cursor:pointer;font-size:.95rem;font-weight:500;padding:.6rem 1.2rem;transition:all .2s ease}.temp-qr-delete-all-btn:hover{background-color:#fecaca}.temp-qr-loading{padding:2rem;text-align:center}.temp-qr-loading-spinner{animation:spin .6s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top:4px solid var(--primary);height:50px;margin:0 auto 1rem;width:50px}.temp-qr-loading-text{color:var(--gray-600);font-size:1rem}.temp-qr-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.temp-qr-card{background-color:#fff;border:1px solid var(--gray-200);border-radius:10px;display:flex;flex-direction:column;padding:1.25rem;position:relative;text-align:center;transition:all .2s ease}.temp-qr-card.used{background-color:#f0f9ff;border:2px solid #dbeafe}.temp-qr-card:hover{border-color:var(--gray-300);box-shadow:0 4px 12px #0000001a}.temp-qr-card.used:hover{border-color:#dbeafe}.temp-qr-image{border-radius:8px;height:auto;margin-bottom:1rem;width:100%}.temp-qr-name{color:var(--gray-800);font-size:1rem;font-weight:700;margin:0 0 .5rem}.temp-qr-string{background-color:var(--gray-50);border-radius:4px;color:var(--gray-500);flex:1 1;font-family:monospace;padding:.5rem;word-break:break-all}.temp-qr-date,.temp-qr-string{font-size:.8rem;margin:0 0 .75rem}.temp-qr-date{color:var(--gray-400)}.temp-qr-assigned-info{background-color:#dbeafe;border-radius:6px;margin-bottom:.75rem;padding:.75rem;text-align:left}.temp-qr-assigned-user{color:#0c4a6e;font-size:.85rem;font-weight:600;margin:.25rem 0}.temp-qr-assigned-email{color:#0c4a6e;font-size:.8rem;margin:.25rem 0}.temp-qr-card-actions{display:flex;gap:.5rem;margin-top:.75rem}.temp-qr-card-download-btn{align-items:center;background-color:#dbeafe;border:none;border-radius:6px;color:#0369a1;cursor:pointer;display:flex;flex:1 1;font-size:.85rem;font-weight:600;gap:.4rem;justify-content:center;padding:.75rem;transition:all .2s ease;white-space:nowrap}.temp-qr-card-download-btn:hover{background-color:#bfdbfe;color:#0284c7}.temp-qr-card-download-btn:disabled{cursor:not-allowed;opacity:.6}.temp-qr-card-delete-btn{align-items:center;background-color:#fee2e2;border:none;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;flex:1 1;font-size:.85rem;font-weight:600;gap:.4rem;justify-content:center;padding:.75rem;transition:all .2s ease;white-space:nowrap}.temp-qr-card-delete-btn:hover{background-color:#fecaca;color:#dc2626!important}.temp-qr-empty{background-color:var(--gray-50);border-radius:10px;color:var(--gray-500);font-size:1rem;padding:2.5rem;text-align:center}.schedule-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .2s ease;z-index:1001}.schedule-modal-overlay.show{opacity:1}.schedule-modal{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;max-height:90vh;max-width:95%;width:auto}.schedule-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.5rem}.schedule-modal-title{color:#111827;font-size:1.125rem;font-weight:600;margin:0}.schedule-modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:.25rem;transition:color .2s ease}.schedule-modal-close:hover{color:#111827}.schedule-modal-content{flex:1 1;overflow-x:auto;padding:1.5rem}.schedule-loading{color:#6b7280;padding:3rem;text-align:center}.schedule-loading-icon{font-size:2rem;margin-bottom:1rem}.schedule-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.schedule-add-column-btn{align-items:center;background-color:var(--primary);border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.5rem 1rem;transition:background-color .2s ease}.schedule-add-column-btn:hover{background-color:var(--primary-dark)}.schedule-add-column-input-group{align-items:center;display:flex;gap:.5rem}.schedule-add-column-input{border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;outline:none;padding:.5rem}.schedule-add-column-input:focus{border-color:var(--primary)}.schedule-btn-save{background-color:var(--primary);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem .75rem;transition:background-color .2s ease}.schedule-btn-save:hover{background-color:var(--primary-dark)}.schedule-btn-cancel{background-color:#6b7280;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem .75rem;transition:background-color .2s ease}.schedule-btn-cancel:hover{background-color:#4b5563}.schedule-table-wrapper{border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto}.schedule-table{background-color:#fff;border-collapse:initial;border-spacing:0;min-width:600px;width:100%}@media (max-width:768px){.schedule-table{min-width:100%}}.schedule-table thead th{background-color:#f9fafb;border-bottom:2px solid #e5e7eb;color:#374151;font-size:.875rem;font-weight:600;min-width:200px;padding:.75rem;position:relative;text-align:center}@media (max-width:768px){.schedule-table thead th{font-size:.75rem;max-width:120px;min-width:120px;padding:.5rem .25rem}}.schedule-table thead th:first-child{border-right:1px solid #e5e7eb;left:0;min-width:100px;position:-webkit-sticky;position:sticky;z-index:10}@media (max-width:768px){.schedule-table thead th:first-child{font-size:.7rem;max-width:50px;min-width:50px;padding:.5rem .25rem}}.schedule-table tbody td{border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;height:50px;padding:0;position:relative;text-align:center;transition:background-color .2s ease;vertical-align:top}@media (max-width:768px){.schedule-table tbody td{font-size:.7rem;max-width:120px;min-width:120px}}.schedule-table tbody td:first-child{background-color:#f9fafb;border-right:1px solid #e5e7eb;color:#374151;font-size:.875rem;font-weight:600;left:0;padding:.75rem;position:-webkit-sticky;position:sticky;vertical-align:middle;z-index:5}@media (max-width:768px){.schedule-table tbody td:first-child{font-size:.7rem;max-width:50px;min-width:50px;padding:.5rem .25rem}}.schedule-cell-container{overflow:visible;padding:0!important;position:relative}.schedule-subcols-wrapper{display:flex;min-height:50px;position:relative}.schedule-subcol{align-items:center;border-right:1px solid #e5e7eb;display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:100px;padding:.75rem;position:relative}.schedule-subcol:last-child{border-right:none}@media (max-width:768px){.schedule-subcol{min-width:60px;padding:.5rem .25rem}}.schedule-add-subcol-btn{align-items:center;background-color:#f0f9ff;border:1px solid var(--primary);border-radius:4px;bottom:2px;color:var(--primary);cursor:pointer;display:flex;left:2px;opacity:0;padding:.25rem;position:absolute;transition:opacity .2s ease;z-index:2}.schedule-cell-container:hover .schedule-add-subcol-btn{opacity:.7}.schedule-add-subcol-btn:hover{background-color:var(--primary);color:#fff;opacity:1!important}.schedule-time-cell-lunch{background-color:#d1fae5!important;color:#059669!important;font-weight:600!important;padding:.75rem!important}.schedule-cell-empty{color:#d1d5db;font-size:.875rem}.schedule-cell-content{color:#374151;font-size:.875rem;font-weight:500;line-height:1.5;padding:.5rem;white-space:pre-wrap;word-break:break-word}@media (max-width:768px){.schedule-cell-content{font-size:.7rem;line-height:1.3;padding:.25rem}}.schedule-cell-filled{background-color:#f0f9ff!important}.schedule-cell-clickable{cursor:pointer}.schedule-cell-clickable:hover{background-color:#f9fafb!important}.schedule-delete-btn{align-items:center;background-color:#fef2f2;border:1px solid #fca5a5;border-radius:4px;color:#dc2626;cursor:pointer;display:flex;opacity:.7;padding:.25rem;position:absolute;right:.25rem;top:.25rem;transition:opacity .2s ease;z-index:3}.schedule-delete-btn:hover{opacity:1}.schedule-merge-btn{background-color:#eff6ff;border:1px solid var(--primary);border-radius:4px;bottom:.25rem;color:var(--primary);cursor:pointer;font-size:.7rem;font-weight:500;opacity:0;padding:.25rem .5rem;position:absolute;right:.25rem;transition:opacity .2s ease;z-index:3}.schedule-subcol:hover .schedule-merge-btn{opacity:1}.schedule-edit-textarea{border:1px solid #d1d5db;border-radius:4px;font-family:inherit;font-size:.875rem;outline:none;padding:.5rem;resize:vertical;width:100%}.schedule-edit-textarea:focus{border-color:var(--primary)}.schedule-edit-actions{display:flex;gap:.5rem;justify-content:center;margin-top:.5rem}.schedule-btn-primary{align-items:center;background-color:var(--primary);border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;gap:.25rem;padding:.375rem .75rem;transition:background-color .2s ease}.schedule-btn-primary:hover{background-color:var(--primary-dark)}.schedule-btn-secondary{background-color:#6b7280;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.75rem;font-weight:500;padding:.375rem .75rem;transition:background-color .2s ease}.schedule-btn-secondary:hover{background-color:#4b5563}.schedule-column-header{align-items:center;display:flex;gap:.5rem;justify-content:center}.schedule-column-edit-input{border:1px solid #d1d5db;border-radius:4px;flex:1 1;font-size:.875rem;outline:none;padding:.25rem .5rem}.schedule-column-edit-input:focus{border-color:var(--primary)}.schedule-column-btn{align-items:center;background-color:initial;border:1px solid #d1d5db;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;padding:.25rem;transition:all .2s ease}.schedule-column-btn:hover{background-color:#f3f4f6}.schedule-column-btn-edit:hover{border-color:var(--primary);color:var(--primary)}.schedule-column-btn-delete:hover{border-color:#dc2626;color:#dc2626}.schedule-column-btn-confirm{background-color:var(--primary);border:none;color:#fff}.schedule-column-btn-confirm:hover{background-color:var(--primary-dark)}.schedule-column-btn-cancel{background-color:#ef4444;border:none;color:#fff}.schedule-column-btn-cancel:hover{background-color:#dc2626}.schedule-guide{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;margin-top:1.5rem;padding:1rem}.schedule-guide-title{color:#0369a1;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.schedule-guide-list{color:#0c4a6e;font-size:.8rem;line-height:1.8;margin:0;padding-left:1.5rem}.schedule-lunch-icon{align-items:center;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;justify-content:center}@media (max-width:768px){.schedule-lunch-icon{font-size:.7rem;gap:.25rem}}.schedule-merge-popup-content{text-align:left}.schedule-merge-popup-text{color:#374151;margin-bottom:1rem}.schedule-merge-textarea{border:1px solid #d1d5db;border-radius:4px;font-family:inherit;font-size:.9rem;outline:none;padding:.75rem;resize:vertical;width:100%}.schedule-merge-textarea:focus{border-color:var(--primary)}.ticket-box-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.ticket-box-modal{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:90%}.ticket-box-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.ticket-box-title-wrapper{align-items:center;display:flex;gap:.75rem}.ticket-box-title{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.ticket-box-close{background:none;border:none;color:#6b7280;cursor:pointer;transition:color .2s ease}.ticket-box-close:hover{color:#111827}.ticket-box-body{flex:1 1;overflow-y:auto;padding:1.5rem}.ticket-box-error,.ticket-box-loading{align-items:center;color:#6b7280;display:flex;font-size:.95rem;justify-content:center;min-height:200px}.ticket-box-error{background-color:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#dc2626;padding:1rem}.ticket-box-empty{align-items:center;color:#6b7280;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:300px}.ticket-box-empty p{font-size:1rem;margin:0}.ticket-list{display:flex;flex-direction:column;gap:1rem}.ticket-item{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;transition:all .2s ease}.ticket-item:hover{border-color:#d1d5db;box-shadow:0 4px 12px #0000001a}.ticket-item-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:1rem;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.ticket-item-header:hover{background-color:#f3f4f6}.ticket-item-main{flex:1 1}.ticket-item-name{color:#111827;font-size:1rem;font-weight:600;margin:0 0 .25rem}.ticket-item-date{color:#6b7280;font-size:.875rem;margin:0}.ticket-item-icon{color:#9ca3af;font-size:.75rem;transition:transform .2s ease}.ticket-item-details{background-color:#fff;border-top:1px solid #e5e7eb;padding:1rem}.ticket-detail-row{display:flex;font-size:.875rem;gap:1rem;margin-bottom:.75rem}.ticket-detail-row:last-child{margin-bottom:0}.ticket-detail-label{color:#374151;font-weight:600;min-width:70px}.ticket-detail-value{color:#6b7280;flex:1 1;word-break:break-all}.ticket-detail-value.qr-data{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;font-family:Courier New,monospace;font-size:.8rem;padding:.5rem}.ticket-box-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;padding:1.5rem}.btn-primary{border-radius:6px;font-size:.95rem;padding:.75rem 1rem;transition:all .2s ease}.btn-primary:hover{background-color:#5568d3}.btn-primary:active{transform:scale(.98)}@media (max-width:768px){.ticket-box-modal{max-height:95vh;width:95%}.ticket-box-body,.ticket-box-footer,.ticket-box-header{padding:1rem}}@media (max-width:640px){.ticket-box-modal{width:98%}.ticket-box-title-wrapper{gap:.5rem}.ticket-box-title{font-size:1.1rem}.ticket-item-details,.ticket-item-header{padding:.75rem}.ticket-detail-row{flex-direction:column;gap:.25rem}.ticket-detail-label{min-width:0;min-width:auto}.ticket-detail-value{padding-left:0}}.toast-container{display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:400px;pointer-events:none;position:fixed;right:var(--spacing-md);top:var(--spacing-md);z-index:9999}.toast{background:#fff;border-left:4px solid var(--primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:300px;opacity:0;pointer-events:auto;transform:translateX(100%);transition:all .3s ease}.toast.show{opacity:1;transform:translateX(0)}.toast-content{align-items:center;display:flex;gap:var(--spacing-sm);padding:var(--spacing-md)}.toast-icon{flex-shrink:0;font-size:var(--text-xl)}.toast-message{word-wrap:break-word;color:var(--gray-700);font-size:var(--text-sm);line-height:1.4}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--primary)}@media (max-width:640px){.toast-container{left:auto;right:var(--spacing-sm);top:var(--spacing-sm)}.toast,.toast-container{max-width:calc(100vw - 2rem)}.toast{min-width:280px}.toast-content{padding:var(--spacing-sm) var(--spacing-md)}.toast-message{font-size:var(--text-xs)}}.floating-button-container{align-items:flex-end;bottom:2rem;display:flex;flex-direction:column;gap:.75rem;position:fixed;right:2rem;z-index:999}.floating-button{align-items:center;background:var(--primary);border:none;border-radius:56px;box-shadow:0 4px 16px #00000026;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;min-height:56px;padding:.75rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.floating-button:hover{background:var(--primary-dark);box-shadow:0 8px 24px #0003;transform:translateY(-2px)}.floating-button:active{box-shadow:0 4px 16px #00000026;transform:translateY(0)}.floating-button.single{background:var(--primary)}.floating-button.single:hover{background:var(--primary-dark)}.floating-button.main{background:var(--primary);overflow:hidden;position:relative}.floating-button.main.active{background:var(--danger);transform:rotate(45deg)}.floating-button.main.active:hover{background:var(--danger-dark)}.floating-sub-buttons{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;width:100%}.floating-sub-button{align-items:center;animation:slideInUp .3s cubic-bezier(.4,0,.2,1) forwards;animation-delay:0ms;animation-delay:var(--delay,0ms);background:#fff;border:1px solid var(--gray-200);border-radius:48px;box-shadow:0 2px 12px #0000001a;color:var(--gray-700);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;min-height:48px;opacity:0;padding:.5rem 1.25rem;transform:translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}@keyframes slideInUp{to{opacity:1;transform:translateY(0)}}.floating-sub-button:hover{background:var(--gray-50);border-color:var(--primary-light);box-shadow:0 4px 16px #00000026;transform:translateY(-1px)}.floating-sub-button:active{transform:translateY(0)}.floating-btn-icon{flex-shrink:0;font-size:1.2rem;transition:transform .3s ease}.floating-btn-icon.rotate{transform:rotate(45deg)}.floating-btn-text{font-weight:500;white-space:nowrap}.floating-btn-write{background:var(--primary);color:#fff}.floating-btn-write:hover{background:var(--primary-dark)}.floating-sub-button.floating-btn-write{background:#667eea1a;border-color:#667eea4d;color:var(--primary)}.floating-sub-button.floating-btn-write:hover{background:#667eea26;border-color:var(--primary)}.floating-btn-qr{background:var(--success);color:#fff}.floating-btn-qr:hover{background:var(--success-dark)}.floating-sub-button.floating-btn-qr{background:#10b9811a;border-color:#10b9814d;color:var(--success)}.floating-sub-button.floating-btn-qr:hover{background:#10b98126;border-color:var(--success)}.floating-btn-qr-gen{background:var(--warning);color:#fff}.floating-btn-qr-gen:hover{background:var(--warning-dark)}.floating-sub-button.floating-btn-qr-gen{background:#f59e0b1a;border-color:#f59e0b4d;color:var(--warning)}.floating-sub-button.floating-btn-qr-gen:hover{background:#f59e0b26;border-color:var(--warning)}.floating-btn-upload{background:var(--info);color:#fff}.floating-btn-upload:hover{background:var(--info-dark)}.floating-sub-button.floating-btn-upload{background:#3b82f61a;border-color:#3b82f64d;color:var(--info)}.floating-sub-button.floating-btn-upload:hover{background:#3b82f626;border-color:var(--info)}.floating-btn-download{background:var(--gray-600);color:#fff}.floating-btn-download:hover{background:var(--gray-700)}.floating-sub-button.floating-btn-download{background:var(--gray-50);border-color:var(--gray-200);color:var(--gray-700)}.floating-sub-button.floating-btn-download:hover{background:var(--gray-100);border-color:var(--gray-300)}.floating-button-container.expanded{animation:none}@media (max-width:768px){.floating-button-container{bottom:1rem;right:1rem}.floating-button{font-size:.9rem;padding:.75rem 1rem}.floating-sub-button{font-size:.85rem;min-height:44px;padding:.5rem 1rem}.floating-btn-text{display:none}.floating-button,.floating-sub-button{border-radius:50%;height:56px;justify-content:center;padding:0;width:56px}.floating-sub-button{height:48px;width:48px}}@media (prefers-color-scheme:dark){.floating-sub-button{background:var(--gray-800);border-color:var(--gray-600);color:var(--gray-200)}.floating-sub-button:hover{background:var(--gray-700);border-color:var(--gray-500)}}.floating-button:focus,.floating-sub-button:focus{outline:2px solid var(--primary-light);outline-offset:2px}.floating-button-container{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.event-info{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.event-title{color:var(--primary);font-size:.9rem;font-weight:600}.event-description{color:var(--gray-500);font-size:.8rem}.board-info{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-top:1.5rem;padding:1rem}.board-info h4{color:var(--gray-800);font-size:1rem;margin:0 0 1rem}.board-info ul{color:var(--gray-600);font-size:.9rem;margin:0;padding-left:1.5rem}.board-info li{line-height:1.4;margin-bottom:.5rem}.board-info li:last-child{margin-bottom:0}.step-indicator{background:linear-gradient(135deg,#f9fafb,#fff);border-bottom:1px solid #f3f4f6;border-radius:.5rem;justify-content:center;margin:0 -1.5rem 2.5rem;padding:1.5rem 0}.step,.step-indicator{align-items:center;display:flex}.step{color:#6b7280;flex-direction:column;font-size:.9rem;font-weight:500;gap:.75rem;transition:all .3s ease}.step.active{color:#667eea;font-weight:600}.step span{align-items:center;background-color:#e5e7eb;border-radius:50%;box-shadow:0 2px 8px #0000001a;color:#6b7280;display:flex;font-size:1.1rem;font-weight:700;height:40px;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);width:40px}.step.active span{background:linear-gradient(135deg,#667eea,#764ba2)!important;box-shadow:0 4px 16px #667eea4d;color:#fff!important;transform:scale(1.1)}.step-divider{background:linear-gradient(90deg,#e5e7eb,#d1d5db,#e5e7eb);border-radius:2px;height:3px;margin:0 2rem;overflow:hidden;position:relative;width:80px}.step-divider:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#667eea4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes shimmer{0%{left:-100%}to{left:100%}}.step-content{min-height:400px}.template-options{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1rem}.template-option{cursor:pointer;position:relative}.template-option input[type=radio]{height:0;opacity:0;position:absolute;width:0}.template-card{background:#fff;border:2px solid #e5e7eb;border-radius:1rem;overflow:hidden;padding:2rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.template-card:before{background:linear-gradient(90deg,#0000,#667eea0d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.template-option input[type=radio]:checked+.template-card{background:linear-gradient(135deg,#667eea0d,#764ba20d);border-color:#667eea;box-shadow:0 8px 24px #667eea26;transform:translateY(-2px)}.template-option input[type=radio]:checked+.template-card:before{left:100%}.template-card:hover{border-color:#667eea;box-shadow:0 12px 32px #0000001a;transform:translateY(-3px)}.template-card h4{color:#111827;font-size:1.1rem;margin:0 0 .5rem}.template-card p{color:#4b5563;font-size:.9rem;margin:0 0 .5rem}.template-card small{color:#6b7280;font-size:.8rem}.template-preview{text-align:center}.template-preview h3{color:#374151;margin-bottom:2rem}.board-preview-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:2rem}.board-preview{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;text-align:left}.board-preview h4{color:#374151;font-size:1rem;margin:0 0 .5rem}.board-preview p{color:#4b5563;font-size:.9rem;line-height:1.4;margin:0}.custom-boards{max-height:500px;overflow-y:auto;padding-right:.5rem}.section-header{border-bottom:1px solid #e5e7eb;margin-bottom:1.5rem;padding-bottom:1rem}.section-header h3{color:#374151;margin:0}.board-config{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;margin-bottom:1.5rem;padding:1.5rem}.board-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.board-header h4{color:#374151;margin:0}.board-basic-info{margin-bottom:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.floating-buttons-section,.permissions-section{margin-top:1.5rem}.floating-buttons-section h5,.permissions-section h5{color:#374151;font-size:1rem;margin:0 0 1rem}.floating-buttons-grid,.permissions-grid{grid-gap:.5rem;align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:grid;gap:.5rem;grid-template-columns:100px repeat(3,1fr);padding:1rem}.button-header,.permission-header{border-bottom:1px solid #e5e7eb;color:#374151;font-size:.9rem;font-weight:600;padding:.5rem 0;text-align:center}.role-name{color:#4b5563;font-size:.9rem;font-weight:500;padding:.5rem 0}.checkbox-label{align-items:center;display:flex;justify-content:center;margin:0;padding:.5rem 0}.checkbox-label input[type=checkbox]{margin:0;transform:scale(1.1)}@media (max-width:768px){.form-row,.template-options{grid-template-columns:1fr}.floating-buttons-grid,.permissions-grid{font-size:.8rem;gap:.25rem;grid-template-columns:80px repeat(3,1fr)}.board-preview-list{grid-template-columns:1fr}.custom-boards{max-height:400px}.step-indicator{margin:0 -1rem 2rem;padding:1rem 0}.step span{font-size:1rem!important;height:36px!important;width:36px!important}.step-divider{margin:0 1rem;width:40px}}.write-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.write-modal{animation:modalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;box-sizing:border-box;display:flex;flex-direction:column;max-height:90vh;max-width:90%;overflow:hidden;width:480px}.write-modal-header{flex-shrink:0;padding:2rem 2rem 1rem}.write-modal-body{flex:1 1;overflow-y:auto;padding:0 2rem}.write-modal-footer{flex-shrink:0;padding:1rem 2rem 2rem}.write-modal h2{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0;text-align:center}.write-modal label{color:#374151;display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem;margin-top:1.2rem}.write-modal .title-input{border:2px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:1rem;font-weight:500;margin-top:0;padding:.875rem;transition:all .2s ease;width:100%}.write-modal .title-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.write-modal .title-input::placeholder{color:#9ca3af}.write-modal textarea{border:2px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:.95rem;margin-top:0;padding:.875rem;resize:vertical;transition:all .2s ease;width:100%}.write-modal textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.write-modal input[type=file]{background-color:#f9fafb;border:2px dashed #d1d5db;border-radius:10px;cursor:pointer;font-size:.9rem;padding:.75rem;transition:all .2s ease;width:100%}.write-modal input[type=file]:hover:not(:disabled){background-color:#f3f4ff;border-color:#667eea}.write-modal input[type=file]:disabled{cursor:not-allowed;opacity:.5}.image-preview-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr);margin-top:1rem}.image-preview-item{border:2px solid #e5e7eb;border-radius:12px;overflow:hidden;padding-top:100%;position:relative;transition:all .2s ease;width:100%}.image-preview-item:hover{border-color:#667eea;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.preview-image-thumb{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.remove-image-btn{align-items:center;background:#ef4444f2;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:28px;justify-content:center;position:absolute;right:.5rem;top:.5rem;transition:all .2s ease;width:28px;z-index:10}.remove-image-btn:hover{background:#dc2626;transform:scale(1.1)}.main-image-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;bottom:.5rem;color:#fff;font-size:.75rem;font-weight:600;left:.5rem;padding:.25rem .625rem;position:absolute;z-index:10}.tag-buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.tag-btn{background-color:#f3f4f6;border:none;border-radius:24px;box-shadow:0 1px 3px #0000001a;color:#6b7280;cursor:pointer;font-size:.9375rem;font-weight:500;min-width:80px;outline:none;padding:.625rem 1.25rem;transition:all .2s ease}.tag-btn:hover{background-color:#e5e7eb;box-shadow:0 2px 8px #0000001f;transform:translateY(-1px)}.tag-btn.selected{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff;font-weight:600;transform:translateY(-1px)}.tag-btn.selected:hover{box-shadow:0 4px 12px #667eea66}.tag-btn:active{transform:translateY(0)}.modal-buttons{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem}.write-modal button.cancel,.write-modal button.submit{border:none;border-radius:10px;cursor:pointer;font-size:.95rem;font-weight:600;outline:none;padding:.75rem 1.5rem;transition:all .2s ease}.write-modal button.cancel{background:#f3f4f6;color:#6b7280}.write-modal button.cancel:hover{background:#e5e7eb;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.write-modal button.submit{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.write-modal button.submit:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.write-modal button.cancel:active,.write-modal button.submit:active{transform:translateY(0)}.write-modal button:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.write-modal button:disabled:hover{box-shadow:none}.upload-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffffff2;border-radius:16px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.upload-progress-container{max-width:300px;padding:2rem;text-align:center}.upload-spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#667eea;height:60px;margin:0 auto 1.5rem;width:60px}@keyframes spin{to{transform:rotate(1turn)}}.upload-message{color:#374151;font-size:1rem;font-weight:600;margin-bottom:1rem}.progress-bar{background:#e5e7eb;border-radius:4px;height:8px;margin:1rem 0 .5rem;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;height:100%;transition:width .3s ease}.progress-text{color:#667eea;font-size:1.125rem;font-weight:700;margin:.5rem 0 0}@media (max-width:640px){.write-modal{width:95%}.write-modal-header{padding:1.5rem 1.5rem 1rem}.write-modal-body{padding:0 1.5rem}.write-modal-footer{padding:1rem 1.5rem 1.5rem}.write-modal h2{font-size:1.25rem}.image-preview-grid{gap:.5rem;grid-template-columns:repeat(2,1fr)}.tag-buttons{gap:.5rem}.tag-btn{font-size:.875rem;min-width:70px;padding:.5rem 1rem}}.insta-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;display:flex;height:100%;justify-content:center;left:0;padding:1rem;position:fixed;top:0;width:100%;z-index:3000}.insta-modal-content{animation:modalFadeIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0006;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:100%}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{align-items:center;background:#fff;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.25rem}.modal-header-info h3{color:#1f2937;font-size:1.25rem;font-weight:700;margin:0}.modal-header-info p{color:#6b7280;font-size:.875rem;margin:.25rem 0 0}.close-button{align-items:center;background:#f3f4f6;border:none;border-radius:50%;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.close-button:hover{background:#e5e7eb;transform:scale(1.1)}.modal-content-scroll{flex:1 1;overflow-y:auto}.image-slider-container{background:#000;padding-top:100%;position:relative;width:100%}.slider-image{height:100%;left:0;object-fit:contain;position:absolute;top:0;width:100%}.slider-button{align-items:center;background:#ffffffe6;border:none;border-radius:50%;box-shadow:0 2px 8px #0003;cursor:pointer;display:flex;height:40px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .2s;width:40px;z-index:10}.slider-button:hover{background:#fff;transform:translateY(-50%) scale(1.1)}.slider-button.prev{left:.75rem}.slider-button.next{right:.75rem}.image-indicators{background:#00000080;border-radius:20px;bottom:1rem;display:flex;gap:.5rem;left:50%;padding:.5rem .75rem;position:absolute;transform:translateX(-50%)}.indicator-dot{background:#ffffff80;border-radius:4px;cursor:pointer;height:8px;transition:all .3s ease}.indicator-dot.active{background:#fff;width:24px}.indicator-dot:not(.active){width:8px}.post-interactions{padding:1rem 1.25rem}.interactions-top{gap:.75rem;margin-bottom:.75rem}.interactions-top,.like-button{align-items:center;display:flex}.like-button{background:none;border:none;border-radius:8px;cursor:pointer;gap:.5rem;padding:.5rem;transition:all .2s}.like-button:hover{background:#f3f4f6}.like-count{color:#374151;font-size:.95rem;font-weight:600}.image-counter{color:#6b7280;font-size:.875rem;font-weight:500}.tag-container{display:flex;gap:.5rem;margin-left:auto}.tag-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;color:#fff;font-size:.875rem;font-weight:600;padding:.375rem .875rem}.post-content{background:#f9fafb;border-radius:12px;color:#374151;font-size:.95rem;line-height:1.6;padding:1rem;white-space:pre-wrap}.modal-actions{background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:.75rem;padding:1rem 1.25rem}.action-button{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:.95rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:all .2s}.action-button.edit{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.action-button.edit:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.action-button.delete{background:#ef4444;box-shadow:0 4px 12px #ef44444d;color:#fff}.action-button.delete:hover:not(:disabled){box-shadow:0 6px 16px #ef444466;transform:translateY(-2px)}.action-button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:640px){.insta-modal-overlay{padding:.5rem}.modal-header{padding:.75rem 1rem}.modal-header-info h3{font-size:1.125rem}.modal-actions,.post-interactions{padding:.75rem 1rem}.slider-button{height:32px;width:32px}.slider-button.prev{left:.5rem}.slider-button.next{right:.5rem}}.tag-settings-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.tag-settings-modal{animation:modalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:90%;width:520px}.tag-settings-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem 2rem}.tag-settings-header h2{color:#1f2937;font-size:1.25rem;font-weight:700;margin:0}.close-btn{align-items:center;background:#0000;border:none;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:.25rem;transition:color .2s ease}.close-btn:hover:not(:disabled){color:#1f2937}.close-btn:disabled{cursor:not-allowed;opacity:.5}.tag-settings-body{flex:1 1;overflow-y:auto;padding:1.5rem 2rem}.info-box{background:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.info-box p{color:#1e40af;font-size:.9375rem;line-height:1.5;margin:0}.add-tag-section{margin-bottom:1.5rem}.add-tag-section label{color:#374151;display:block;font-size:.9375rem;font-weight:600;margin-bottom:.5rem}.add-tag-input-group{display:flex;gap:.5rem}.add-tag-input-group input{border:2px solid #e5e7eb;border-radius:8px;flex:1 1;font-size:.9375rem;padding:.75rem;transition:all .2s ease}.add-tag-input-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.add-tag-input-group input:disabled{background-color:#f3f4f6;cursor:not-allowed}.add-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9375rem;font-weight:600;gap:.375rem;padding:.75rem 1.25rem;transition:all .2s ease;white-space:nowrap}.add-btn:hover:not(:disabled){box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.add-btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.tags-list-section{margin-bottom:1rem}.tags-list-section label{color:#374151;display:block;font-size:.9375rem;font-weight:600;margin-bottom:.75rem}.empty-tags{background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;color:#9ca3af;padding:2rem;text-align:center}.tags-list{display:flex;flex-direction:column;gap:.5rem}.tag-item{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;padding:.875rem 1rem;transition:all .2s ease}.tag-item:hover{background:#f3f4f6;border-color:#d1d5db}.tag-name{color:#667eea}.edit-input,.tag-name{font-size:.9375rem;font-weight:600}.edit-input{border:2px solid #667eea;border-radius:6px;flex:1 1;margin-right:.5rem;padding:.5rem}.edit-input:focus{box-shadow:0 0 0 3px #667eea1a;outline:none}.tag-actions{display:flex;gap:.5rem}.action-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s ease}.action-btn.edit{background:#dbeafe;color:#2563eb}.action-btn.edit:hover:not(:disabled){background:#bfdbfe}.action-btn.delete{background:#fee2e2;color:#dc2626}.action-btn.delete:hover:not(:disabled){background:#fecaca}.action-btn.save{background:#dcfce7;color:#16a34a}.action-btn.save:hover{background:#bbf7d0}.action-btn.cancel{background:#f3f4f6;color:#6b7280}.action-btn.cancel:hover{background:#e5e7eb}.action-btn:disabled{cursor:not-allowed;opacity:.5}.tag-settings-footer{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 2rem 1.5rem}.cancel-btn,.save-btn{border:none;border-radius:8px;cursor:pointer;font-size:.9375rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.cancel-btn{background:#f3f4f6;color:#6b7280}.cancel-btn:hover:not(:disabled){background:#e5e7eb}.save-btn{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.save-btn:hover:not(:disabled){box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.cancel-btn:disabled,.save-btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}@media (max-width:640px){.tag-settings-modal{width:95%}.tag-settings-body,.tag-settings-footer,.tag-settings-header{padding-left:1.5rem;padding-right:1.5rem}.add-tag-input-group{flex-direction:column}.add-btn{justify-content:center;width:100%}}.qr-scanner-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.qr-scanner-modal{animation:modalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;box-sizing:border-box;display:flex;flex-direction:column;max-height:90vh;max-width:90%;overflow:hidden;width:480px}.qr-scanner-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:center;padding:2rem;position:relative}.qr-scanner-title{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0;text-align:center}.qr-scanner-body{display:flex;flex:1 1;flex-direction:column;gap:1.5rem;min-height:0;overflow-y:auto;padding:2rem}.qr-scanner-error-message{background-color:#fee;border:1px solid #fcc;border-radius:10px;color:#c00;font-size:.95rem;font-weight:500;padding:1rem;text-align:center}.qr-scanner-container #qr-shaded-region{display:none!important}.qr-scanner-container video{height:100%!important;object-fit:cover!important;width:100%!important}.qr-scanner-container{background-color:#000;border:3px solid #667eea;border-radius:12px;box-shadow:0 4px 12px #667eea33;flex-shrink:0;height:300px;margin:0 auto;max-width:300px;overflow:hidden;position:relative;width:100%}.qr-scanner-status{align-items:center;background:#f9fafb;border-radius:10px;color:#333;display:flex;flex-shrink:0;font-size:.95rem;justify-content:center;min-height:60px;padding:1rem;text-align:center}.qr-scanner-status-text{color:#6b7280;font-weight:500}.qr-scanner-status-success{animation:successPulse .3s ease-out;color:#28a745;font-size:1rem;font-weight:700;word-break:break-all}@keyframes successPulse{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.qr-scanner-status-error{color:#c00;font-weight:600}.qr-scanner-footer{border-top:1px solid #e5e7eb;flex-shrink:0;padding:1rem 2rem 2rem}.qr-scanner-buttons{display:flex;gap:.75rem;justify-content:flex-end}.qr-scanner-btn{border:none;border-radius:10px;cursor:pointer;font-size:.95rem;font-weight:600;outline:none;padding:.75rem 1.5rem;transition:all .2s ease}.qr-scanner-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.qr-scanner-btn-primary:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.qr-scanner-btn-secondary{background:#f3f4f6;color:#6b7280}.qr-scanner-btn-secondary:hover{background:#e5e7eb;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.qr-scanner-btn:active{transform:translateY(0)}.qr-scanner-btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.qr-scanner-btn:disabled:hover{box-shadow:none}@media (max-width:640px){.qr-scanner-modal{width:95%}.qr-scanner-header{padding:1.5rem}.qr-scanner-title{font-size:1.25rem}.qr-scanner-body{gap:1rem;padding:1.5rem}.qr-scanner-container{height:250px;max-width:250px}.qr-scanner-footer{padding:1rem 1.5rem 1.5rem}.qr-scanner-buttons{flex-direction:column}.qr-scanner-btn{width:100%}}.vote-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:2000}.vote-modal-overlay.fullscreen{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:initial;height:100%;padding:0;position:relative;z-index:auto}.vote-modal-container{animation:modalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;position:relative;width:100%;z-index:1}.vote-modal-container.fullscreen{animation:none;background:#f9fafb;border-radius:0;box-shadow:none;height:100%;max-height:100%;max-width:100%}.vote-modal-container.fullscreen .vote-modal-header{display:none}.vote-modal-container.fullscreen .vote-modal-body{padding:1.5rem 2rem}.vote-modal-container.fullscreen .vote-modal-footer{display:none}.vote-modal-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;gap:12px;justify-content:space-between;padding:2rem 2rem 1rem}.vote-modal-header h2{color:#1f2937;flex:1 1;font-size:1.5rem;font-weight:700;margin:0}.back-btn,.close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:24px;justify-content:center;padding:4px 8px;transition:all .2s ease}.back-btn:hover,.close-btn:hover{background:#f3f4f6;color:#374151}.vote-view-header-content{flex:1 1}.vote-header-info-row,.vote-header-title-row{align-items:center;display:flex;gap:12px}.vote-header-info-row{margin-top:8px}.total-votes{color:#6b7280;font-size:.875rem;font-weight:500;margin:0}.vote-time-badge{background:#fef3c7;color:#d97706}.vote-expired-badge,.vote-time-badge{border-radius:10px;font-size:.75rem;font-weight:700;padding:3px 10px}.vote-expired-badge{background:#fee2e2;color:#dc2626}.edit-vote-btn{align-items:center;background:#f3f4f6;border:none;border-radius:6px;color:#667eea;cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .2s ease}.edit-vote-btn:hover{background:#e5e7eb;color:#5568d3}.edit-vote-btn-inline{align-items:center;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;color:#667eea;cursor:pointer;display:flex;font-size:.8125rem;font-weight:600;gap:4px;padding:4px 10px;transition:all .2s ease}.edit-vote-btn-inline:hover{background:#e0e7ff;border-color:#a5b4fc}.vote-modal-body{background:#0000;flex:1 1;overflow-y:auto;padding:0 2rem}.vote-modal-body label{color:#374151;display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem;margin-top:1.2rem}.empty-votes{color:#9ca3af;padding:80px 20px;text-align:center}.empty-votes p:first-child{color:#6b7280;font-size:1.125rem;font-weight:600;margin-bottom:8px}.empty-votes p:last-child{font-size:.95rem}.votes-list{display:flex;flex-direction:column;gap:12px;padding:1.5rem 0}.vote-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 1px 3px #0000000d;cursor:pointer;overflow:hidden;transition:all .2s ease}.vote-card:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-1px)}.vote-card-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:16px}.vote-card-title{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:10px}.vote-card-title h3{color:#1f2937;flex:1 1;font-size:1rem;font-weight:600;line-height:1.5;margin:0;word-break:break-word}.vote-card-actions{display:flex;flex-shrink:0;gap:8px;margin-left:12px}.edit-vote-list-btn{align-items:center;background:#0000;border:1px solid #c7d2fe;border-radius:6px;color:#667eea;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;gap:4px;padding:4px 8px;transition:all .2s ease}.edit-vote-list-btn:hover{background:#eef2ff;border-color:#667eea}.delete-vote-btn{background:#0000;border:1px solid #fca5a5;border-radius:6px;color:#dc2626;cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 12px;transition:all .2s ease}.delete-vote-btn:hover{background:#fef2f2;border-color:#dc2626}.vote-card-info{align-items:center;color:#6b7280;display:flex;flex-wrap:wrap;font-size:.8125rem;font-weight:500;gap:8px}.voted-badge{align-items:center;background:#dbeafe;color:#2563eb;display:inline-flex;gap:3px}.expired-badge,.voted-badge{border-radius:10px;font-size:.6875rem;font-weight:700;padding:3px 8px}.expired-badge{background:#fee2e2;color:#dc2626}.vote-preview{background:#fff;padding:16px}.vote-preview-item{margin-bottom:12px}.vote-preview-item:last-child{margin-bottom:0}.vote-preview-label{align-items:center;display:flex;font-size:.8125rem;justify-content:space-between;margin-bottom:6px}.vote-preview-label span:first-child{color:#374151;flex:1 1;font-weight:500;margin-right:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vote-preview-label span:last-child{color:#667eea;flex-shrink:0;font-weight:700}.vote-preview-bar{background:#f3f4f6;border-radius:3px;height:6px;overflow:hidden}.vote-preview-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;height:100%;transition:width .3s ease}.more-options{border-top:1px solid #f3f4f6;color:#9ca3af;font-size:.75rem;font-weight:500;margin-top:8px;padding-top:8px;text-align:center}.vote-title-input{border:2px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:1rem;font-weight:500;margin-top:0;padding:.875rem;transition:all .2s ease;width:100%}.vote-title-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.vote-title-input::placeholder{color:#9ca3af}.vote-options-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.vote-option-item{align-items:center;display:flex;gap:8px}.vote-option-input{border:2px solid #e5e7eb;border-radius:10px;box-sizing:border-box;flex:1 1;font-family:inherit;font-size:.95rem;padding:.875rem;transition:all .2s ease}.vote-option-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.vote-option-input::placeholder{color:#9ca3af}.remove-option-btn{align-items:center;background:#f3f4f6;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:10px;transition:all .2s ease}.remove-option-btn:hover{background:#e5e7eb;color:#374151}.add-option-btn{align-items:center;background:#f8f9fa;border:2px dashed #d1d5db;border-radius:10px;color:#6b7280;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:6px;justify-content:center;margin-bottom:20px;padding:.875rem;transition:all .2s ease;width:100%}.add-option-btn:hover{background:#e9ecef;border-color:#9ca3af}.vote-settings-new{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1.5rem}.section-title{color:#1f2937;display:block;font-size:1rem;font-weight:700;margin-bottom:1rem}.vote-settings-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr);margin-bottom:1rem}.vote-setting-card{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;gap:.75rem;padding:1rem;position:relative;transition:all .2s ease;-webkit-user-select:none;user-select:none}.vote-setting-card:hover{background:#f3f4f6;border-color:#d1d5db;transform:translateY(-1px)}.vote-setting-card.active{background:linear-gradient(135deg,#f3f4ff,#e7f3ff);border-color:#667eea;box-shadow:0 2px 8px #667eea26}.vote-setting-card.active.qr-scan{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b;box-shadow:0 2px 8px #f59e0b26}.vote-setting-card.active.qr-scan .setting-icon{color:#f59e0b}.setting-icon{align-items:center;background:#fff;border-radius:8px;color:#9ca3af;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:all .2s ease;width:36px}.vote-setting-card.active .setting-icon{background:#fff;color:#667eea}.setting-content{flex:1 1;min-width:0}.setting-label{color:#374151;font-size:.875rem;font-weight:600;line-height:1.3;margin-bottom:2px}.setting-desc{color:#6b7280;font-size:.75rem;line-height:1.2}.setting-checkbox{accent-color:#667eea;cursor:pointer;flex-shrink:0;height:20px;width:20px}.vote-enddate-input-new{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:10px;display:flex;gap:.75rem;margin-bottom:1rem;padding:.875rem 1rem;transition:all .2s ease}.vote-enddate-input-new:focus-within{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.vote-enddate-input-new svg{color:#667eea;flex-shrink:0}.vote-enddate-input-new input[type=datetime-local]{background:#0000;border:none;color:#374151;cursor:pointer;flex:1 1;font-family:inherit;font-size:.875rem;outline:none}.vote-selection-count-new{margin-bottom:1rem}.vote-selection-count-new label{color:#374151;display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.vote-number-input-new{background:#fff;border:2px solid #e5e7eb;border-radius:10px;font-family:inherit;font-size:.875rem;padding:.875rem 1rem;transition:all .2s ease;width:100%}.vote-number-input-new:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.vote-number-input-new::placeholder{color:#9ca3af}.vote-target-section{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1.5rem}.vote-target-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}.vote-target-card{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;display:flex;gap:.625rem;padding:.875rem 1rem;transition:all .2s ease;-webkit-user-select:none;user-select:none}.vote-target-card:hover{background:#f9fafb;border-color:#9ca3af}.vote-target-card.selected{background:linear-gradient(135deg,#f3f4ff,#e7f3ff);border-color:#667eea;box-shadow:0 2px 8px #667eea26}.vote-target-card input[type=checkbox]{accent-color:#667eea;cursor:pointer;flex-shrink:0;height:18px;margin:0;width:18px}.vote-target-card span{color:#374151;font-size:.875rem;font-weight:600;transition:color .2s ease}.vote-target-card.selected span{color:#667eea}.vote-options-view{display:flex;flex-direction:column;gap:12px;padding:1.5rem 0}.vote-option-view{background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;overflow:hidden;padding:18px;position:relative;transition:all .2s ease}.vote-option-view:hover:not(.expired):not(.no-revote){background:#f8f9fa;border-color:#667eea;transform:translateY(-1px)}.vote-option-view.selected:not(.voted){background:linear-gradient(135deg,#f3f4ff,#e7f3ff);border-color:#667eea;box-shadow:0 0 0 3px #667eea26;transform:translateY(-1px)}.vote-option-view.voted.selected{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b26;transform:translateY(-1px)}.vote-option-view.voted.my-vote:not(.selected){background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#10b981}.vote-option-view.expired{cursor:not-allowed;opacity:.7}.vote-option-view.no-revote{cursor:not-allowed}.vote-option-content{align-items:center;display:flex;justify-content:space-between;position:relative;z-index:1}.vote-option-text{align-items:center;color:#1f2937;display:flex;font-size:.9375rem;font-weight:600;gap:8px}.user-voted-icon{color:#3b82f6;flex-shrink:0}.vote-stats{align-items:center;display:flex;gap:6px}.vote-percentage{color:#667eea;font-size:1.125rem;font-weight:700}.vote-count{color:#6b7280;font-size:.8125rem;font-weight:500}.vote-progress-bar{background:#f3f4f6;bottom:0;height:4px;left:0;position:absolute;right:0}.vote-progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);height:100%;transition:width .3s ease}.vote-instruction{background:#f9fafb;border-radius:8px;color:#6b7280;font-size:.875rem;font-weight:500;margin-bottom:12px;margin-top:12px;padding:12px;text-align:center}.vote-instruction.revote-hint{background:linear-gradient(135deg,#faf5ff,#f3e8ff);color:#764ba2;font-weight:600;margin-bottom:16px}.vote-instruction.no-revote-msg{background:#fef2f2;color:#dc2626;font-weight:600}.vote-instruction.expired-msg{background:#fef3c7;color:#d97706;font-weight:600}.vote-modal-footer{background:#fff;border-top:1px solid #e5e7eb;display:flex;flex-shrink:0;gap:10px;justify-content:flex-end;padding:1rem 2rem 2rem}.vote-modal-footer button{border:none;border-radius:10px;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.btn-cancel{background:#f3f4f6;color:#6b7280}.btn-cancel:hover{background:#e5e7eb;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.btn-revote,.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.btn-revote:hover,.btn-submit:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.btn-cancel:active,.btn-revote:active,.btn-submit:active{transform:translateY(0)}.vote-modal-footer button:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.6;transform:none!important}.vote-input-hint{color:#6b7280;font-size:.8125rem;line-height:1.4;margin-bottom:0;margin-top:6px}.vote-modal-container.fullscreen .vote-modal-body{padding:0 .5rem}.vote-modal-container.fullscreen .votes-list{padding:.25rem 0}.vote-modal-container.fullscreen .vote-card{max-width:100%;width:100%}@media (max-width:640px){.vote-modal-container{border-radius:12px;max-width:100%;width:98%}.vote-modal-container.fullscreen{border-radius:0;max-width:100%}.vote-modal-header{padding:1.5rem 1.5rem 1rem}.vote-modal-body{padding:0 .5rem}.vote-modal-footer{padding:1rem 1.5rem 1.5rem}.vote-modal-header h2{font-size:1.25rem}.vote-card-title{flex-direction:column;gap:8px}.vote-card-actions{align-self:flex-start;margin-left:0}.votes-list{padding:.25rem 0}.vote-options-view{padding:1rem 0}.vote-settings-grid,.vote-target-grid{gap:.625rem;grid-template-columns:1fr}.vote-setting-card{padding:.875rem}.setting-icon{height:32px;width:32px}.setting-label{font-size:.8125rem}.setting-desc{font-size:.6875rem}.vote-card{width:100%}}.end-vote-btn-inline{align-items:center;background-color:#dc2626;border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.4rem .75rem;transition:all .2s}.end-vote-btn-inline:hover{background-color:#b91c1c;transform:translateY(-1px)}.end-vote-btn-inline:active{transform:translateY(0)}.end-vote-btn-inline svg{flex-shrink:0}.vote-option-view.creator-view{cursor:default}.vote-option-view.creator-view:hover{background-color:#fff;border-color:var(--border-color)}.vote-instruction.creator-notice{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:.5rem;color:#3b82f6;padding:.75rem}.stampboard-container{align-items:center;animation:fadeIn .3s ease-in-out;color:#333;display:flex;flex-direction:column;margin:0 auto;max-width:1200px;padding:1.5rem}.stampboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem;width:100%}.stampboard-title{color:#4b4b4b;font-size:1.4rem;font-weight:700}.layout-toggle{display:flex;gap:.4rem}.layout-toggle button{align-items:center;background:#fff;border:1.5px solid #d1d5db;border-radius:8px;color:#555;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s ease}.layout-toggle button:hover{background:#f3f4ff;border-color:#b4bfff}.layout-toggle button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;color:#fff}.lottery-banners{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;width:100%}.lottery-banner{align-items:center;animation:slideInDown .4s ease-out;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:12px;box-shadow:0 4px 12px #f59e0b33;display:flex;gap:1rem;padding:1.25rem 3rem 1.25rem 1.25rem;position:relative;width:100%}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.lottery-banner-icon{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:50%;box-shadow:0 4px 8px #f59e0b4d;color:#fff;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.lottery-banner-content{flex:1 1;min-width:0}.lottery-banner-title{color:#78350f;font-size:1rem;font-weight:700;margin:0 0 .25rem;word-break:keep-all}.lottery-banner-subtitle{color:#92400e;font-size:.875rem;margin:0;word-break:keep-all}.lottery-banner-actions{display:flex;flex-shrink:0;gap:.5rem}.lottery-banner-btn{border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;padding:.6rem 1.2rem;transition:all .2s ease;white-space:nowrap}.lottery-banner-btn.primary{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px #10b9814d;color:#fff}.lottery-banner-btn.primary:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px #10b98166;transform:translateY(-1px)}.lottery-banner-btn.secondary{background:#fff;border:1.5px solid #f59e0b;color:#78350f}.lottery-banner-btn.secondary:hover{background:#fffbeb;border-color:#d97706}.lottery-banner-close{align-items:center;background:#fffc;border:none;border-radius:50%;color:#92400e;cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:.75rem;top:.75rem;transition:all .2s ease;width:24px}.lottery-banner-close:hover{background:#fff;color:#78350f;transform:scale(1.1)}.section-divider{border-radius:8px;font-size:.9rem;font-weight:600;margin:1.5rem 0 1rem;padding:.5rem .8rem;width:100%}.section-divider.checked-section{background:linear-gradient(135deg,#e5d4ff,#f4e7ff);color:#5b21b6}.section-divider.unchecked-section{background:#f3f4f6;color:#6b7280}.stampboard-grid{grid-gap:1rem;display:grid;gap:1rem;margin-bottom:.5rem;transition:all .3s ease;width:100%}.layout-1x1{grid-template-columns:1fr}.layout-2x2{grid-template-columns:repeat(2,1fr);max-width:900px}.layout-3x3{grid-template-columns:repeat(3,1fr);max-width:1100px}.stamp-slot{align-items:center;background:#f4f4f4;border-radius:14px;box-shadow:0 1px 4px #0000001a;color:#6b7280;display:flex;flex-direction:column;font-weight:600;justify-content:center;overflow:hidden;position:relative;text-align:center;transition:all .25s ease}.layout-1x1 .stamp-slot{flex-direction:row;justify-content:space-between;min-height:4rem;padding:1rem 1.2rem}.layout-2x2 .stamp-slot,.layout-3x3 .stamp-slot{flex-direction:row;justify-content:space-between;min-height:3.5rem;padding:1rem 1.2rem}.booth-name{font-size:.95rem;overflow-wrap:break-word;word-break:keep-all}.layout-1x1 .booth-name{font-size:1rem}.layout-2x2 .booth-name,.layout-3x3 .booth-name{font-size:.95rem}.stamp-slot.checked{background:linear-gradient(135deg,#e5d4ff,#f4e7ff);box-shadow:0 4px 10px #667eea33;color:#5b21b6;transform:scale(1.02)}.stamp-slot.unchecked{background:#f9fafb;border:1.5px dashed #d1d5db;color:#9ca3af}.like-btn{background:none;border:none;cursor:pointer;font-size:1.4rem;transition:transform .2s ease}.like-btn:hover:not(:disabled){transform:scale(1.2)}.like-btn:disabled{cursor:not-allowed;opacity:.3}.stampboard-footer{color:#4b5563;font-size:1rem;font-weight:500;margin-top:1.5rem;text-align:center}@media (max-width:1023px){.layout-3x3{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.stampboard-container{padding:1rem}.stampboard-title{font-size:1.2rem}.layout-toggle button{padding:.45rem}.layout-toggle button:nth-child(3){display:none}.layout-2x2,.layout-3x3{grid-template-columns:repeat(2,1fr)}.layout-1x1 .stamp-slot,.layout-2x2 .stamp-slot,.layout-3x3 .stamp-slot{font-size:.9rem;min-height:3.5rem}.section-divider{font-size:.85rem;padding:.4rem .6rem}.lottery-banner{flex-wrap:wrap;padding:1rem 2.5rem 1rem 1rem}.lottery-banner-icon{height:40px;width:40px}.lottery-banner-title{font-size:.9rem}.lottery-banner-subtitle{font-size:.8rem}.lottery-banner-actions{justify-content:flex-end;margin-top:.75rem;width:100%}.lottery-banner-btn{font-size:.85rem;padding:.5rem 1rem}}.stampboard-empty,.stampboard-loading{color:#6b7280;font-size:1rem;padding:2rem;text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.competitive-ranking-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;gap:1rem;padding:1.25rem}.competitive-ranking-card .card-header{align-items:flex-start;display:flex;gap:.75rem;justify-content:space-between}.competitive-ranking-card .card-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#1f2937;flex:1 1;font-size:1.25rem;font-weight:700;margin:0}.competitive-ranking-card .card-actions{display:flex;flex-shrink:0;gap:.5rem}.competitive-ranking-card .btn-icon{align-items:center;background:#f9fafb;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:background-color .2s}.competitive-ranking-card .btn-icon:hover{background-color:#f3f4f6}.competitive-ranking-card .btn-icon.btn-danger:hover{background-color:#fee2e2;color:#ef4444}.competitive-ranking-card .card-description{background:linear-gradient(135deg,#f9fafb,#f3f4f6);border:2px solid #e5e7eb;border-radius:12px;color:#4b5563;font-size:.95rem;line-height:1.7;margin:0;overflow:hidden;padding:1rem 1.25rem;position:relative;word-break:break-word}.competitive-ranking-card .card-description:before{background:linear-gradient(180deg,#667eea,#764ba2);bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.competitive-ranking-card .card-description:empty:after{color:#9ca3af;content:"설명 없음";font-style:italic}.competitive-ranking-card .quick-add-form{background:linear-gradient(135deg,#ebf8ff,#e0f2fe);border:2px solid #90cdf4;border-radius:12px;box-shadow:0 2px 8px #4299e11a;margin-bottom:.5rem;padding:1.25rem}.competitive-ranking-card .quick-add-form input{border:2px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-size:.95rem;margin-bottom:.75rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.competitive-ranking-card .quick-add-form input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.competitive-ranking-card .quick-add-actions{display:flex;gap:.75rem}.competitive-ranking-card .quick-add-actions button{border:none;border-radius:10px;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;padding:.75rem 1rem;transition:all .2s}.competitive-ranking-card .btn-cancel-quick{background-color:#f3f4f6;color:#6b7280}.competitive-ranking-card .btn-cancel-quick:hover{background-color:#e5e7eb;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.competitive-ranking-card .btn-submit-quick{background:linear-gradient(135deg,#4299e1,#3182ce);box-shadow:0 4px 12px #4299e14d;color:#fff}.competitive-ranking-card .btn-submit-quick:hover{box-shadow:0 6px 16px #4299e166;transform:translateY(-2px)}.competitive-ranking-card .card-ranking-list{display:flex;flex-direction:column;gap:.625rem;min-height:140px}.competitive-ranking-card .empty-entries{align-items:center;background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;color:#9ca3af;display:flex;flex-direction:column;justify-content:center;padding:2rem 1rem;text-align:center}.competitive-ranking-card .empty-entries p{font-size:.95rem;margin:.25rem 0}.competitive-ranking-card .empty-entries .hint{color:#667eea;font-size:.875rem;font-weight:600;margin-top:.75rem}.competitive-ranking-card .entry-item{align-items:center!important;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:.875rem;padding:.75rem .875rem}.competitive-ranking-card .rank-icon-wrapper{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-shrink:0;height:36px;justify-content:center;min-width:36px;width:36px}.competitive-ranking-card .entry-rank{color:#667eea;font-size:.9rem;font-weight:700;min-width:36px}.competitive-ranking-card .entry-student{color:#374151;flex:1 1;flex-shrink:1;font-size:.9rem;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competitive-ranking-card .entry-score{background:#ebf8ff;border-radius:6px;color:#667eea;flex-shrink:0;font-size:.95rem;font-weight:700;padding:.25rem .625rem;white-space:nowrap}.competitive-ranking-card .card-footer{border-top:2px solid #f3f4f6;display:flex;gap:.75rem;padding-top:1rem}.competitive-ranking-card .btn-view-detail{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#667eea;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:.625rem 1rem;transition:background-color .2s}.competitive-ranking-card .btn-view-detail:hover{background-color:#f9fafb}.competitive-ranking-card .btn-add-entry{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 4px #667eea33;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.375rem;padding:.625rem 1rem;white-space:nowrap}.competitive-ranking-card .card-meta{color:#9ca3af;font-size:.85rem;padding-top:.5rem}.ranking-card-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.ranking-card-modal-content{animation:rankingCardModalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}@keyframes rankingCardModalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ranking-card-edit-modal{max-width:600px}.ranking-card-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:2rem 2rem 1rem}.ranking-card-modal-header h2{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.ranking-card-modal-header .btn-icon{align-items:center;background:none;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s}.ranking-card-modal-header .btn-icon:hover{background-color:#f3f4f6;color:#1f2937}.ranking-card-modal-body{padding:2rem}.ranking-card-edit-section{margin-bottom:2rem}.ranking-card-edit-section label{color:#374151;display:block;font-size:.95rem;font-weight:600;margin-bottom:.75rem}.ranking-card-edit-section textarea{border:2px solid #e5e7eb;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:.95rem;min-height:100px;padding:.875rem;resize:vertical;transition:all .2s ease;width:100%}.ranking-card-edit-section textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.ranking-card-entries-section{margin-top:2rem}.ranking-card-entries-section h3{color:#374151;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.ranking-card-empty-text{color:#9ca3af;font-size:.95rem;padding:2rem;text-align:center}.ranking-card-entries-list{display:flex;flex-direction:column;gap:.625rem}.ranking-card-entry-row{align-items:center;background-color:#f9fafb;border-radius:10px;display:flex;gap:.875rem;padding:.875rem 1rem;transition:all .2s}.ranking-card-entry-row:hover{background-color:#f3f4f6;transform:translateX(4px)}.ranking-card-entry-rank-badge{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;display:inline-flex;font-size:.875rem;font-weight:700;justify-content:center;min-width:50px;padding:.375rem .75rem}.ranking-card-entry-name{color:#374151;flex:1 1;font-size:.95rem;font-weight:500}.ranking-card-entry-score-value{color:#667eea;font-size:1rem;font-weight:600}.ranking-card-btn-delete-entry{align-items:center;background:none;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s}.ranking-card-btn-delete-entry:hover{background-color:#fee2e2;color:#ef4444}.ranking-card-modal-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1.5rem 2rem}.ranking-card-btn-primary,.ranking-card-btn-secondary{border:none;border-radius:10px;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.ranking-card-btn-secondary{background:#f3f4f6;color:#6b7280}.ranking-card-btn-secondary:hover:not(:disabled){background:#e5e7eb;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.ranking-card-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.ranking-card-btn-primary:hover:not(:disabled){box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.ranking-card-btn-primary:disabled,.ranking-card-btn-secondary:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.ranking-card-modal-content h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0 0 1rem;padding:2rem 2rem 0}.ranking-card-modal-content p{color:#4b5563;font-size:.95rem;line-height:1.6;margin:.5rem 0;padding:0 2rem}.ranking-card-warning-text{color:#ef4444;font-size:.9rem;font-weight:600}.ranking-card-modal-actions{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding:1.5rem 2rem}.ranking-card-btn-cancel,.ranking-card-btn-confirm{border:none;border-radius:10px;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.ranking-card-btn-cancel{background-color:#f3f4f6;color:#6b7280}.ranking-card-btn-cancel:hover{background-color:#e5e7eb;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.ranking-card-btn-confirm{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.ranking-card-btn-confirm:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.ranking-card-btn-confirm.ranking-card-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 12px #ef44444d}.ranking-card-btn-confirm.ranking-card-btn-danger:hover{box-shadow:0 6px 16px #ef444466}@media (max-width:768px){.competitive-ranking-card{padding:1rem}.competitive-ranking-card .card-title{font-size:1.1rem}.competitive-ranking-card .card-description{font-size:.875rem;line-height:1.6;padding:.875rem 1rem}.competitive-ranking-card .quick-add-form{padding:1rem}.competitive-ranking-card .quick-add-form input{font-size:.875rem;margin-bottom:.625rem;padding:.625rem .875rem}.competitive-ranking-card .quick-add-actions button{font-size:.875rem;padding:.625rem .875rem}.competitive-ranking-card .card-ranking-list{gap:.5rem;min-height:120px}.competitive-ranking-card .empty-entries{padding:1.5rem .875rem}.competitive-ranking-card .empty-entries p{font-size:.875rem}.competitive-ranking-card .entry-item{gap:.75rem;padding:.625rem .75rem}.competitive-ranking-card .rank-icon-wrapper{height:32px;min-width:32px;width:32px}.competitive-ranking-card .entry-student{font-size:.85rem}.competitive-ranking-card .entry-score{font-size:.875rem;padding:.2rem .5rem}.competitive-ranking-card .card-footer{gap:.625rem;padding-top:.875rem}.competitive-ranking-card .btn-add-entry{font-size:.85rem;padding:.5rem .875rem}}@media (max-width:480px){.competitive-ranking-card{padding:.875rem}.competitive-ranking-card .card-title{font-size:1rem}.competitive-ranking-card .card-description{font-size:.8rem;padding:.75rem .875rem}.competitive-ranking-card .quick-add-form{padding:.875rem}.competitive-ranking-card .quick-add-form input{font-size:.8rem;margin-bottom:.5rem;padding:.5rem .75rem}.competitive-ranking-card .quick-add-actions{gap:.5rem}.competitive-ranking-card .quick-add-actions button{font-size:.8rem;padding:.5rem .75rem}.competitive-ranking-card .card-ranking-list{gap:.375rem;min-height:100px}.competitive-ranking-card .empty-entries{padding:1.25rem .75rem}.competitive-ranking-card .empty-entries p{font-size:.8rem}.competitive-ranking-card .entry-item{gap:.5rem;padding:.5rem .625rem}.competitive-ranking-card .rank-icon-wrapper{height:28px;min-width:28px;width:28px}.competitive-ranking-card .entry-student{font-size:.8rem}.competitive-ranking-card .entry-score{font-size:.8rem;padding:.2rem .4rem}.competitive-ranking-card .card-footer{flex-direction:column;gap:.5rem}.competitive-ranking-card .btn-add-entry,.competitive-ranking-card .btn-view-detail{font-size:.8rem;justify-content:center;padding:.5rem;width:100%}.ranking-card-modal-content{margin:.5rem}.ranking-card-modal-header{padding:1.5rem 1.5rem 1rem}.ranking-card-modal-header h2{font-size:1.25rem}.ranking-card-modal-body{padding:1.5rem}.ranking-card-modal-footer{padding:1rem 1.5rem 1.5rem}.ranking-card-entry-row{padding:.75rem .875rem}.ranking-card-entry-rank-badge{font-size:.8rem;min-width:45px}}.modal-overlay .create-ranking-modal{animation:none!important;max-height:90vh;max-width:600px;overflow-y:auto;transform:none!important;width:90%}.create-ranking-modal .modal-body{padding:1.5rem}.create-ranking-modal .ranking-form-group{margin-bottom:1.5rem}.create-ranking-modal .ranking-form-input{border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;font-size:.95rem;padding:.75rem;transition:border-color .2s;width:100%}.create-ranking-modal .ranking-form-input:focus{border-color:#667eea;outline:none}.create-ranking-modal .ranking-form-input:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed}.create-ranking-modal .ranking-form-hint{color:#6b7280;font-size:.85rem;margin-bottom:0;margin-top:.5rem}.create-ranking-modal textarea{border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:.95rem;min-height:120px;padding:.75rem;resize:vertical;transition:border-color .2s;width:100%}.create-ranking-modal textarea:focus{border-color:#667eea;outline:none}.create-ranking-modal textarea:disabled{background-color:#f3f4f6;cursor:not-allowed;opacity:.6}.create-ranking-modal .modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.create-ranking-modal .ranking-btn-secondary{background-color:#e5e7eb;border:none;border-radius:8px;color:#374151;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s}.create-ranking-modal .ranking-btn-secondary:hover:not(:disabled){background-color:#d1d5db}.create-ranking-modal .ranking-btn-primary{background-color:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s}.create-ranking-modal .ranking-btn-primary:hover:not(:disabled){background-color:#5568d3}.create-ranking-modal .ranking-btn-primary:disabled,.create-ranking-modal .ranking-btn-secondary:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.modal-overlay .create-ranking-modal{margin:1rem;max-width:95%;width:95%}}.ranking-board{margin:0 auto;max-width:1200px;padding:1.5rem}.board-title{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#667eea,#764ba2) border-box;background-clip:padding-box,border-box;background-origin:padding-box,border-box;border-bottom:3px solid #0000;color:#1f2937;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;padding-bottom:.75rem}.statistics-rankings{margin-top:0}.ranking-section{background:#fff;border:2px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;margin-bottom:1rem;padding:1.25rem}.ranking-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;justify-content:space-between;margin-bottom:1rem;padding:.875rem 1rem}.ranking-header,.ranking-title{align-items:center;display:flex}.ranking-title{gap:.625rem}.ranking-title h3{color:#fff;font-size:1.05rem;font-weight:700;margin:0;text-shadow:0 1px 2px #0000001a}.ranking-title svg{color:#fff;flex-shrink:0;height:20px;width:20px}.btn-view-all{align-items:center;background:#fff;border:none;border-radius:6px;color:#667eea;cursor:pointer;display:flex;flex-shrink:0;font-size:.85rem;font-weight:600;gap:.375rem;padding:.5rem .875rem;transition:background-color .2s;white-space:nowrap}.btn-view-all:hover{background:#f9fafb}.btn-view-all svg{transition:transform .3s}.btn-view-all svg.rotate-up{transform:rotate(90deg)}.ranking-list{display:flex;flex-direction:column;gap:.5rem}.empty-ranking{background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;color:#9ca3af;font-size:.9rem;padding:2rem 1rem;text-align:center}.ranking-item{align-items:center!important;background:#f9fafb;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:.5rem;padding:.75rem .875rem}.rank-badge,.ranking-item{border:1px solid #e5e7eb;border-radius:8px}.rank-badge{align-items:center;background:#fff;display:flex;height:36px;justify-content:center;min-width:36px;width:36px}.rank-badge,.rank-icon{flex-shrink:0}.rank-icon.gold{color:gold}.rank-icon.silver{color:silver}.rank-icon.bronze{color:#cd7f32}.rank-number{color:#667eea;font-size:1rem;font-weight:700}.ranking-info{align-items:center!important;display:flex!important;flex-direction:row!important;gap:.5rem;justify-content:space-between!important}.ranking-info,.ranking-name{flex:1 1;flex-shrink:1;min-width:0}.ranking-name{color:#374151;font-weight:600;overflow:hidden;text-overflow:ellipsis}.ranking-count,.ranking-name{font-size:.95rem;white-space:nowrap}.ranking-count{background:#ebf8ff;border-radius:6px;color:#667eea;flex-shrink:0;font-weight:700;padding:.25rem .625rem}.competitive-rankings{margin-bottom:2.5rem}.ranking-detail-button-wrapper{border-top:1px solid #e5e7eb;margin-top:.75rem;padding-top:.75rem}.btn-detail-view{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 4px #667eea33;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.625rem 1rem;transition:all .2s;width:100%}.btn-detail-view:hover{box-shadow:0 4px 8px #667eea4d;transform:translateY(-1px)}.ranking-detail-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:2000}.ranking-detail-modal-content{animation:modalSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:85vh;max-width:600px;width:100%}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ranking-detail-modal-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:space-between;padding:1.5rem 1.5rem 1rem}.ranking-detail-modal-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#1f2937;font-size:1.25rem;font-weight:700;margin:0}.btn-close-detail{align-items:center;background:#f3f4f6;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;font-size:1.5rem;height:32px;justify-content:center;transition:all .2s;width:32px}.btn-close-detail:hover{background:#e5e7eb;color:#1f2937}.ranking-detail-modal-body{flex:1 1;overflow-y:auto;padding:1.25rem}.ranking-detail-list{display:flex;flex-direction:column;gap:.5rem}.ranking-detail-item{align-items:center!important;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:.875rem;padding:.75rem .875rem;transition:all .2s}.ranking-detail-item:hover{background:#f3f4f6;transform:translateX(4px)}.empty-competitive{background:#f9fafb;border:2px dashed #d1d5db;border-radius:12px;color:#6b7280;padding:3rem 2rem;text-align:center}.empty-competitive p{font-size:.95rem;line-height:1.5;margin:.5rem 0}.empty-competitive p:first-child{color:#374151;font-size:1.05rem;font-weight:600}.empty-competitive p:last-child{color:#667eea;font-weight:600}.competitive-ranking-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}@media (max-width:1024px){.competitive-ranking-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width:768px){.ranking-board{padding:1rem}.board-title{font-size:1.35rem;margin-bottom:1.25rem;padding-bottom:.625rem}.statistics-rankings{margin-bottom:2rem}.ranking-section{border-radius:10px;margin-bottom:.875rem;padding:1rem}.ranking-header{flex-wrap:nowrap;margin-bottom:.875rem;padding:.75rem .875rem}.ranking-title{flex:1 1;min-width:0}.ranking-title h3{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-title svg{height:18px;width:18px}.btn-view-all{font-size:.8rem;padding:.375rem .75rem}.ranking-list{gap:.375rem}.ranking-item{gap:.375rem;padding:.625rem .75rem}.rank-badge{height:32px;min-width:32px;width:32px}.rank-icon.bronze,.rank-icon.gold,.rank-icon.silver{height:20px;width:20px}.rank-number{font-size:.9rem}.ranking-count,.ranking-name{font-size:.875rem}.ranking-count{padding:.25rem .5rem}.competitive-ranking-grid{gap:1rem;grid-template-columns:1fr}.competitive-rankings{margin-top:2rem}}@media (max-width:480px){.ranking-board{padding:.75rem}.board-title{font-size:1.2rem;margin-bottom:1rem;padding-bottom:.5rem}.statistics-rankings{margin-bottom:1.5rem}.ranking-section{margin-bottom:.75rem;padding:.875rem}.ranking-header{gap:.5rem;margin-bottom:.75rem;padding:.625rem .75rem}.ranking-title{gap:.5rem}.ranking-title h3{font-size:.875rem}.ranking-title svg{height:16px;width:16px}.btn-view-all{font-size:.75rem;gap:.25rem;padding:.375rem .625rem}.btn-view-all svg{height:14px;width:14px}.ranking-item{gap:.375rem;padding:.5rem .625rem}.rank-badge{border-radius:6px;height:28px;min-width:28px;width:28px}.rank-icon.bronze,.rank-icon.gold,.rank-icon.silver{height:18px;width:18px}.rank-number{font-size:.85rem}.ranking-info{gap:.375rem}.ranking-count,.ranking-name{font-size:.8rem}.ranking-count{padding:.25rem .5rem}.empty-competitive{padding:2rem 1rem}.empty-competitive p{font-size:.875rem}.empty-competitive p:first-child{font-size:.95rem}.competitive-rankings{margin-top:1.5rem}}.reservation-detail-modal{max-height:90vh;max-width:800px;overflow-y:auto}.reservation-detail-modal .modal-header{align-items:flex-start;background:#fff;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.reservation-detail-modal .modal-header h2{color:var(--gray-800);flex:1 1;font-size:1.5rem;margin:0 0 .5rem}.author-info{color:var(--gray-600);font-size:.9rem;margin:0}.reservation-detail-modal .modal-body{padding:1.5rem}.notice-banner{align-items:center;border-radius:8px;display:flex;font-size:.9rem;gap:.75rem;margin-bottom:1.5rem;padding:1rem}.notice-banner.warning{background-color:var(--warning-100);border:1px solid var(--warning-300);color:var(--warning-800)}.notice-banner svg{flex-shrink:0}.time-slots-list{display:flex;flex-direction:column;gap:1rem}.time-slot-detail{background-color:#fff;border:2px solid var(--gray-200);border-radius:12px;padding:1.5rem;transition:all .2s ease}.time-slot-detail:hover{border-color:var(--primary-300);box-shadow:0 4px 12px #667eea1a}.time-slot-detail.past{background-color:var(--gray-50);opacity:.6}.slot-header{border-bottom:1px solid var(--gray-200);justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem}.slot-header,.slot-info{align-items:center;display:flex}.slot-info{gap:.75rem}.slot-info h4{color:var(--gray-800);font-size:1.1rem;margin:0}.slot-time{align-items:center;color:var(--primary-600);display:flex;font-size:1rem;font-weight:600;gap:.5rem}.slot-time svg{color:var(--primary-500)}.status-badge{font-weight:600;white-space:nowrap}.status-badge.open{background-color:var(--success-100);color:var(--success-700)}.status-badge.waiting{background-color:var(--warning-100);color:var(--warning-700)}.status-badge.reserved{background-color:var(--primary-100);color:var(--primary-700)}.status-badge.full{background-color:var(--danger-100);color:var(--danger-700)}.status-badge.past{background-color:var(--gray-200);color:var(--gray-700)}.slot-details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.detail-item{align-items:center;color:var(--gray-700);display:flex;font-size:.95rem;gap:.5rem}.detail-item svg{color:var(--gray-500);flex-shrink:0}.detail-item.countdown{color:var(--warning-700);font-weight:500}.detail-item.countdown svg{color:var(--warning-600)}.detail-item.open{color:var(--success-700);font-weight:600}.detail-item.open svg{color:var(--success-600)}.btn-reserve{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:1rem;transition:all .2s ease;width:100%}.btn-reserve:hover:not(:disabled){background:linear-gradient(135deg,#5568d3,#6a3d91);box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.btn-reserve:active:not(:disabled){transform:translateY(0)}.btn-reserve:disabled{cursor:not-allowed;opacity:.6;transform:none}.reserved-notice{align-items:center;background-color:var(--success-50);border:1px solid var(--success-200);border-radius:8px;color:var(--success-700);display:flex;font-weight:600;gap:.5rem;justify-content:center;margin-top:.5rem;padding:1rem}.reserved-notice svg{color:var(--success-600)}.reservation-detail-modal .modal-footer{background:#fff;border-top:1px solid var(--gray-200);bottom:0;display:flex;justify-content:flex-end;padding:1rem 1.5rem;position:-webkit-sticky;position:sticky;z-index:10}.btn-close{background-color:var(--gray-200);border:none;border-radius:8px;color:var(--gray-700);cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s}.btn-close:hover{background-color:var(--gray-300)}@media (max-width:768px){.modal-overlay{align-items:center;display:flex;justify-content:center;padding:1rem}.reservation-detail-modal{border-radius:16px;display:flex;flex-direction:column;height:auto;margin:0;max-height:calc(100vh - 2rem);max-width:100%;width:100%}.reservation-detail-modal .modal-header{align-items:center;border-radius:16px 16px 0 0;flex-direction:row;gap:.75rem;padding:1rem 1.25rem}.reservation-detail-modal .modal-header h2{font-size:1.125rem;font-weight:700;line-height:1.3;margin:0}.close-btn{flex-shrink:0;padding:.25rem}.close-btn svg{height:22px;width:22px}.reservation-detail-modal .modal-body{flex:1 1;overflow-y:auto;padding:1rem}.notice-banner{border-radius:8px;font-size:.813rem;gap:.625rem;margin-bottom:1rem;padding:.75rem}.notice-banner svg{height:16px;width:16px}.time-slots-list{gap:.875rem}.time-slot-detail{border-radius:10px;border-width:1px;padding:1rem}.time-slot-detail:hover{border-color:var(--gray-200);box-shadow:none}.slot-header{align-items:flex-start;flex-direction:column;gap:.625rem;margin-bottom:.75rem;padding-bottom:.75rem}.slot-info{gap:.625rem;justify-content:space-between;width:100%}.slot-info h4{font-size:.938rem;font-weight:700}.status-badge{border-radius:5px;font-size:.75rem;padding:.313rem .625rem}.slot-time{font-size:.875rem;font-weight:600;gap:.5rem;justify-content:flex-start;width:100%}.slot-time svg{height:15px;width:15px}.slot-details{gap:.5rem;margin-bottom:.625rem}.detail-item{font-size:.813rem;gap:.5rem}.detail-item svg{height:15px;width:15px}.btn-reserve{font-size:.938rem;font-weight:700}.btn-reserve,.reserved-notice{border-radius:8px;margin-top:.375rem;padding:.813rem}.reserved-notice{font-size:.813rem;gap:.5rem}.reserved-notice svg{height:16px;width:16px}.reservation-detail-modal .modal-footer{border-radius:0 0 16px 16px;flex-shrink:0;padding:1rem}.btn-close{border-radius:8px;font-size:.938rem;font-weight:600;padding:.875rem;width:100%}}@media (max-width:375px){.modal-overlay{padding:.875rem}.reservation-detail-modal{border-radius:14px;max-height:calc(100vh - 1.75rem)}.reservation-detail-modal .modal-header{border-radius:14px 14px 0 0;padding:.875rem 1rem}.reservation-detail-modal .modal-header h2{font-size:1.063rem}.reservation-detail-modal .modal-body{padding:.875rem}.slot-info h4{font-size:.875rem}.status-badge{font-size:.688rem;padding:.25rem .5rem}.slot-time{font-size:.813rem}.slot-time svg{height:14px;width:14px}.detail-item{font-size:.75rem}.detail-item svg{height:14px;width:14px}.btn-reserve{font-size:.875rem;padding:.75rem}.reserved-notice{font-size:.75rem;padding:.75rem}.notice-banner{font-size:.75rem;padding:.625rem}.notice-banner svg{height:15px;width:15px}.reservation-detail-modal .modal-footer{border-radius:0 0 14px 14px;padding:.875rem}.btn-close{font-size:.875rem;padding:.813rem}}.reservation-board{padding:1.5rem}.reservation-board.empty,.reservation-board.loading{align-items:center;display:flex;justify-content:center;min-height:400px}.empty-state{color:var(--gray-500);text-align:center}.empty-state svg{color:var(--gray-400);margin-bottom:1rem}.empty-state h3{color:var(--gray-700);font-size:1.25rem;margin:.5rem 0}.empty-state p{color:var(--gray-500);margin:0}.reservations-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.reservation-card{background:#fff;border:1px solid var(--gray-200);border-radius:12px;cursor:pointer;padding:1.5rem;transition:all .2s ease}.reservation-card:hover{border-color:var(--primary-500);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.reservation-card.completed{cursor:default;opacity:.7}.reservation-card.completed:hover{border-color:var(--gray-200);box-shadow:none;transform:none}.card-content{display:flex;flex-direction:column;gap:1rem}.reservation-title{color:var(--gray-800);font-size:1.25rem;font-weight:600;margin:0}.reservation-author{color:var(--gray-600);font-size:.9rem;margin:0}.reservation-info{display:flex;flex-direction:column;gap:.5rem}.info-item{align-items:center;color:var(--gray-700);display:flex;font-size:.9rem;gap:.5rem}.info-item svg{color:var(--primary-500)}.countdown-section{align-items:center;background-color:var(--gray-50);border-radius:8px;display:flex;gap:.75rem;margin-top:.5rem;padding:1rem}.countdown-section>svg{color:var(--primary-500);flex-shrink:0}.countdown-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.countdown-label{color:var(--gray-600);font-size:.85rem}.countdown-timer{font-feature-settings:"tnum";color:var(--primary-600);font-size:1.25rem;font-variant-numeric:tabular-nums;font-weight:600}.countdown-timer.open{color:var(--success-600)}.countdown-section>svg:last-child{color:var(--gray-400);flex-shrink:0}.reservation-status{display:flex;gap:.5rem}.status-badge{border-radius:6px;font-size:.85rem;font-weight:500;padding:.4rem .8rem}.status-badge.completed{background-color:var(--gray-200);color:var(--gray-700)}@media (max-width:768px){.reservation-board{padding:1rem}.reservations-grid{gap:1rem;grid-template-columns:1fr}.reservation-card{padding:1.25rem}.countdown-timer,.reservation-title{font-size:1.1rem}}.reservation-modal{max-height:90vh;max-width:700px;overflow-y:auto}.reservation-modal .modal-body{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-input{border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;font-size:.95rem;padding:.75rem;transition:border-color .2s;width:100%}.form-input:focus{border-color:#667eea;outline:none}.form-input:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed}.form-hint{color:#6b7280;font-size:.85rem;margin-bottom:0;margin-top:.5rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.time-slots-container{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.time-slot-card{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:1.25rem;transition:border-color .2s}.time-slot-card:hover{border-color:#c7d2fe}.time-slot-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.time-slot-header h4{color:#667eea;font-size:1rem;margin:0}.btn-remove{align-items:center;background-color:initial;border:none;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;padding:.5rem;transition:background-color .2s}.btn-remove:hover{background-color:#fee2e2}.time-slot-fields{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.field-group{display:flex;flex-direction:column}.field-group.full-width{grid-column:1/-1}.field-hint{color:#6b7280;font-size:.8rem;margin-top:.3rem}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.btn-secondary{background-color:#e5e7eb;border:none;border-radius:8px;color:#374151;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s}.btn-secondary:hover:not(:disabled){background-color:#d1d5db}.btn-primary{background-color:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:#5568d3}.btn-primary:disabled,.btn-secondary:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.reservation-modal{margin:1rem;max-width:95%}.time-slot-fields{grid-template-columns:1fr}.section-header{align-items:flex-start;flex-direction:column;gap:.75rem}.btn-add-time{justify-content:center;width:100%}}