@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-dark:#09090b;--bg-gradient:radial-gradient(circle at 50% 0%, #18181b 0%, #09090b 100%);--surface:#18181b99;--surface-hover:#27272acc;--surface-alt:#27272a;--primary:#3b82f6;--primary-glow:#3b82f680;--success:#10b981;--success-glow:#10b98180;--danger:#ef4444;--warning:#f59e0b;--text-main:#f8fafc;--text-muted:#a1a1aa;--border:#ffffff1a;--border-focus:#3b82f680;--radius:14px;--radius-sm:10px;--radius-full:999px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{background:var(--bg-dark);background-image:var(--bg-gradient);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;min-height:100dvh;font-family:Outfit,sans-serif;line-height:1.6;overflow-x:hidden}.app-container{flex-direction:column;min-height:100dvh;display:flex}.main-content{flex:1;width:100%;max-width:800px;margin:0 auto;padding:2rem 1.5rem 3rem}@media (width<=640px){.main-content{padding:1.25rem 1rem 2rem}}.navbar{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:50;background:#09090bd9;justify-content:space-between;align-items:center;padding:.875rem 1.5rem;display:flex;position:sticky;top:0}@media (width<=640px){.navbar{padding:.75rem 1rem}}.nav-brand{letter-spacing:-.02em;align-items:center;gap:.75rem;font-size:1.15rem;font-weight:700;display:flex}.brand-logo{background:linear-gradient(135deg, var(--primary), #8b5cf6);color:#fff;border-radius:var(--radius-sm);width:34px;height:34px;box-shadow:0 4px 12px var(--primary-glow);flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;display:flex}.nav-links{gap:.375rem;display:flex}.nav-btn{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.nav-btn:hover{color:var(--text-main);background:#ffffff0f}.nav-btn.active{color:#fff;background:var(--surface-alt)}@media (width<=640px){.nav-text,.brand-text{display:none}.nav-btn{border-radius:8px;padding:.625rem}}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);opacity:.6;padding:1.5rem;font-size:.8rem}.gradient-text{background:linear-gradient(135deg,#60a5fa,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}h1,h2,h3,h4{letter-spacing:-.02em}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.card{background:var(--surface);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:transform .25s cubic-bezier(.4,0,.2,1),border-color .25s,box-shadow .25s;box-shadow:0 8px 32px #0003}@media (width<=640px){.card{border-radius:12px;padding:1.125rem}}.task-card{cursor:pointer}.task-card:hover{border-color:var(--border-focus);transform:translateY(-3px);box-shadow:0 12px 40px #3b82f61a}.task-card.full:hover{border-color:var(--success);box-shadow:0 12px 40px #10b9811a}.task-card:active{transform:translateY(-1px)}.segmented-control{border:1px solid var(--border);background-color:#ffffff08;border-radius:12px;gap:4px;width:100%;max-width:380px;margin:0 auto 2rem;padding:5px;display:flex}.segmented-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;flex:1;padding:.625rem 1rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s}.segmented-btn:hover:not(.active):not(.active-success){color:var(--text-main);background:#ffffff0d}.segmented-btn.active{color:#fff;background-color:var(--primary);box-shadow:0 4px 12px var(--primary-glow)}.segmented-btn.active-success{color:#fff;background-color:var(--success);box-shadow:0 4px 12px var(--success-glow)}.input-field{border:1px solid var(--border);border-radius:var(--radius-sm);color:#fff;-webkit-appearance:none;background:#0000004d;outline:none;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;transition:all .2s}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}.input-field::placeholder{color:#ffffff4d}label{color:var(--text-muted);margin-bottom:.375rem;font-size:.85rem;font-weight:600;display:block}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 12px var(--primary-glow)}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px var(--primary-glow);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{color:var(--text-main);border:1px solid var(--border);background:#ffffff0f}.btn-secondary:hover:not(:disabled){background:#ffffff1a}.btn-danger{color:var(--danger);background:#ef44441a;border:1px solid #ef444433}.btn-danger:hover:not(:disabled){background:#ef444433}.btn-sm{border-radius:8px;padding:.5rem .875rem;font-size:.825rem}.progress-bg{border-radius:var(--radius-full);background:#ffffff0f;width:100%;height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);height:100%;transition:width .8s cubic-bezier(.4,0,.2,1)}.progress-fill.active{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.progress-fill.full{background:linear-gradient(90deg,#10b981,#34d399)}.badge{border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;align-items:center;gap:.3rem;padding:.3rem .625rem;font-size:.775rem;font-weight:600;display:inline-flex}.badge-primary{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f640}.badge-success{color:#34d399;background:#10b98126;border:1px solid #10b98140}.participant-list{list-style:none}.participant-item{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.875rem 1rem;transition:background .15s;display:flex}.participant-item:last-child{border-bottom:none}.participant-item:hover{background:#ffffff05}.participant-number{width:28px;height:28px;color:var(--text-muted);background:#ffffff0f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.775rem;font-weight:700;display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14 50%,#ffffff0a 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{border-radius:var(--radius);border:1px solid var(--border);height:140px}.spinner{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.alert-box{border-radius:var(--radius-sm);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.85rem;font-weight:500;display:flex}.alert-danger{color:#fca5a5;background:#ef44441a;border:1px solid #ef444433}.upload-area{border-radius:var(--radius);cursor:pointer;background:#3b82f60a;border:2px dashed #3b82f64d;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:80px;padding:1.25rem 1rem;transition:all .2s;display:flex}.upload-area:hover,.upload-area:focus-within{border-color:var(--primary);background:#3b82f614}.upload-area.has-file{border-color:var(--success);background:#10b9810f}.upload-area input[type=file]{display:none}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);background:#000000d9;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeInFast;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:600px;padding:.75rem;position:relative}.modal-content img{object-fit:contain;border-radius:var(--radius-sm);width:100%;height:auto;max-height:75dvh}.modal-close{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:absolute;top:-12px;right:-12px;box-shadow:0 4px 12px #ef444466}.admin-login{text-align:center;max-width:400px;margin:15vh auto}.admin-login .icon-large{margin:0 auto 1rem;display:block}.form-group{margin-bottom:1rem}.fade-in{animation:.35s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInFast{0%{opacity:0}to{opacity:1}}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.w-full{width:100%}.flex-1{flex:1;min-width:0}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.rounded{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius)}.hidden{display:none}.grid{display:grid}.grid-cols-1{grid-template-columns:1fr}@media (width>=640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:flex-row{flex-direction:row}.sm\:w-auto{width:auto}.sm\:gap-6{gap:1.5rem}}@media (width<=640px){.sm\:hidden{display:none}.btn{min-height:44px;padding:.625rem 1rem}.btn-sm{min-height:40px;padding:.5rem .75rem;font-size:.8rem}.input-field{min-height:44px;font-size:16px}.segmented-btn{padding:.5rem .75rem;font-size:.825rem}.participant-item{gap:.625rem;padding:.75rem}.participant-number{width:24px;height:24px;font-size:.7rem}}
