:root{--color-primary:#3b82f6;--color-primary-dark:#2563eb;--color-primary-light:#60a5fa;--color-purple-start:#667eea;--color-purple-end:#764ba2;--color-green-start:#10b981;--color-green-end:#059669;--color-orange-start:#f97316;--color-orange-end:#ea580c;--color-amber-start:#f59e0b;--color-amber-end:#d97706;--color-success:#10b981;--color-success-dark:#059669;--color-success-light:#d4edda;--color-error:#ef4444;--color-error-dark:#dc2626;--color-error-light:#f8d7da;--color-warning:#f59e0b;--color-warning-dark:#d97706;--color-warning-light:#fff3cd;--color-info:#3b82f6;--color-info-dark:#2563eb;--color-info-light:#d1ecf1;--color-alive:#10b981;--color-alive-bg:#dcfce7;--color-dead:#ef4444;--color-dead-bg:#fee2e2;--color-eliminated:#f59e0b;--color-eliminated-bg:#fef3c7;--color-white:#fff;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#64748b;--color-text-inverse:#fff;--color-bg-primary:#fff;--color-bg-secondary:#f8fafc;--color-bg-tertiary:#f1f5f9;--color-border-light:#e2e8f0;--color-border-medium:#cbd5e1;--color-border-dark:#94a3b8;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--border-width-thin:1px;--border-width-medium:2px;--border-width-thick:4px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,.25);--shadow-purple:0 4px 12px rgba(102,126,234,.3);--shadow-green:0 4px 12px rgba(16,185,129,.3);--shadow-orange:0 4px 12px rgba(249,115,22,.3);--shadow-amber:0 4px 12px rgba(245,158,11,.3);--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--transition-slower:500ms ease;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:900;--z-modal:1000;--z-notification:1100;--z-tooltip:1200;--z-max:9999;--dark-bg-primary:#1a1a2e;--dark-bg-secondary:#16213e;--dark-bg-tertiary:#0f3460;--dark-bg-card:#1e2a3a;--dark-text-primary:#f1f1f1;--dark-text-secondary:#b8b8b8;--dark-border:#2a3f5f;--dark-accent:#00adb5;--dark-accent-hover:#00949a}body{background:linear-gradient(135deg,var(--dark-bg-primary) 0,var(--dark-bg-secondary) 100%);color:var(--dark-text-primary);min-height:100vh}@media (prefers-color-scheme:dark){:root{--color-bg-primary:#1f2937;--color-bg-secondary:#111827;--color-bg-tertiary:#0f172a;--color-text-primary:#f9fafb;--color-text-secondary:#e5e7eb;--color-text-tertiary:#d1d5db;--color-border-light:#374151;--color-border-medium:#4b5563;--color-border-dark:#6b7280}}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.hidden{display:none}.flex{display:flex}.inline-flex{display:inline-flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.self-start{align-self:flex-start}.self-center{align-self:center}.self-end{align-self:flex-end}.self-stretch{align-self:stretch}.flex-1{flex:1 1}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-auto{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.gap-2xl{gap:var(--space-2xl)}.p-0{padding:0}.p-xs{padding:var(--space-xs)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.p-2xl{padding:var(--space-2xl)}.px-xs{padding-left:var(--space-xs);padding-right:var(--space-xs)}.px-sm{padding-left:var(--space-sm);padding-right:var(--space-sm)}.px-md{padding-left:var(--space-md);padding-right:var(--space-md)}.px-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.px-xl{padding-left:var(--space-xl);padding-right:var(--space-xl)}.py-xs{padding-top:var(--space-xs);padding-bottom:var(--space-xs)}.py-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.py-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.py-xl{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.pt-sm{padding-top:var(--space-sm)}.pb-sm{padding-bottom:var(--space-sm)}.pl-sm{padding-left:var(--space-sm)}.pr-sm{padding-right:var(--space-sm)}.pt-md{padding-top:var(--space-md)}.pb-md{padding-bottom:var(--space-md)}.pl-md{padding-left:var(--space-md)}.pr-md{padding-right:var(--space-md)}.pt-lg{padding-top:var(--space-lg)}.pb-lg{padding-bottom:var(--space-lg)}.pl-lg{padding-left:var(--space-lg)}.pr-lg{padding-right:var(--space-lg)}.m-0{margin:0}.m-auto{margin:auto}.m-xs{margin:var(--space-xs)}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.m-xl{margin:var(--space-xl)}.mx-auto{margin-left:auto;margin-right:auto}.my-sm{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.my-md{margin-top:var(--space-md);margin-bottom:var(--space-md)}.my-lg{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.mt-sm{margin-top:var(--space-sm)}.mb-sm{margin-bottom:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mb-md{margin-bottom:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-lg{margin-bottom:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-xl{margin-bottom:var(--space-xl)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.leading-tight{line-height:var(--leading-tight)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-white{color:var(--color-white)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.bg-white{background-color:var(--color-white)}.bg-primary{background-color:var(--color-bg-primary)}.bg-secondary{background-color:var(--color-bg-secondary)}.bg-tertiary{background-color:var(--color-bg-tertiary)}.bg-gradient-purple{background:linear-gradient(135deg,var(--color-purple-start) 0,var(--color-purple-end) 100%)}.bg-gradient-green{background:linear-gradient(135deg,var(--color-green-start) 0,var(--color-green-end) 100%)}.bg-gradient-orange{background:linear-gradient(135deg,var(--color-orange-start) 0,var(--color-orange-end) 100%)}.bg-gradient-amber{background:linear-gradient(135deg,var(--color-amber-start) 0,var(--color-amber-end) 100%)}.border{border:var(--border-width-thin) solid var(--color-border-light)}.border-2{border:var(--border-width-medium) solid var(--color-border-light)}.border-4{border:var(--border-width-thick) solid var(--color-border-light)}.border-none{border:none}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:none}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}.shadow-purple{box-shadow:var(--shadow-purple)}.shadow-green{box-shadow:var(--shadow-green)}.shadow-orange{box-shadow:var(--shadow-orange)}.shadow-amber{box-shadow:var(--shadow-amber)}.w-full{width:100%}.w-auto{width:auto}.h-full{height:100%}.h-auto{height:auto}.min-h-screen{min-height:100vh}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:-webkit-sticky;position:sticky}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.cursor-default{cursor:default}.transition{transition:all var(--transition-base)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.hover-lift:hover{transform:translateY(-2px)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.05)}.hover-shadow:hover{box-shadow:var(--shadow-lg)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}@media (max-width:768px){.md\:hidden{display:none}.md\:flex-col{flex-direction:column}.md\:text-sm{font-size:var(--text-sm)}.md\:p-md{padding:var(--space-md)}}@media (max-width:480px){.sm\:hidden{display:none}.sm\:flex-col{flex-direction:column}.sm\:text-xs{font-size:var(--text-xs)}.sm\:p-sm{padding:var(--space-sm)}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-medium);cursor:pointer;border:none;transition:all var(--transition-base);text-decoration:none;line-height:1;gap:var(--space-sm)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm)}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--text-lg)}.btn-primary{background:rgba(59,130,246,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-white);border:1px solid rgba(96,165,250,.3)}.btn-primary:hover:not(:disabled){background:rgba(37,99,235,.9);transform:translateY(-1px);box-shadow:0 4px 16px rgba(59,130,246,.4)}.btn-secondary{background:hsla(220,9%,46%,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-white);border:1px solid rgba(156,163,175,.3)}.btn-secondary:hover:not(:disabled){background:rgba(75,85,99,.9);box-shadow:0 4px 16px hsla(220,9%,46%,.4)}.btn-success{background:var(--color-success);color:var(--color-white)}.btn-success:hover:not(:disabled){background:var(--color-success-dark)}.btn-danger{background:var(--color-error);color:var(--color-white)}.btn-danger:hover:not(:disabled){background:var(--color-error-dark)}.btn-warning{background:var(--color-warning);color:var(--color-white)}.btn-warning:hover:not(:disabled){background:var(--color-warning-dark)}.btn-gradient-purple{background:linear-gradient(135deg,var(--color-purple-start) 0,var(--color-purple-end) 100%);color:var(--color-white);border:none}.btn-gradient-green{background:linear-gradient(135deg,var(--color-green-start) 0,var(--color-green-end) 100%);color:var(--color-white);border:none}.btn-gradient-orange{background:linear-gradient(135deg,var(--color-orange-start) 0,var(--color-orange-end) 100%);color:var(--color-white);border:none}.btn-white{background:var(--color-white);color:var(--color-gray-900);border:var(--border-width-medium) solid var(--color-white);font-weight:var(--font-semibold)}.btn-white:hover:not(:disabled){background:var(--color-gray-50);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.card{background:rgba(30,42,58,.8);padding:var(--space-xl);box-shadow:0 8px 24px rgba(0,0,0,.4);border:1px solid rgba(42,63,95,.5)}.card-compact{padding:var(--space-lg)}.card-gradient{padding:var(--space-xl);box-shadow:0 4px 12px rgba(0,0,0,.08);border:var(--border-width-medium) solid;color:var(--color-white)}.card-gradient h3{color:var(--color-white);display:flex;align-items:center;gap:var(--space-sm);margin:0 0 var(--space-lg) 0;font-size:var(--text-xl);font-weight:var(--font-semibold)}.card-hover{transition:all var(--transition-base)}.card-hover:hover{box-shadow:0 12px 32px rgba(0,0,0,.5);transform:translateY(-2px);border-color:rgba(96,165,250,.5)}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);line-height:1;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.badge-alive{background:rgba(16,185,129,.2);color:#6ee7b7;border:1px solid rgba(16,185,129,.3)}.badge-dead{background:rgba(239,68,68,.2);color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.badge-eliminated{background:rgba(251,191,36,.2);color:#fcd34d;border:1px solid rgba(251,191,36,.3)}.badge-success{background:rgba(16,185,129,.2);color:#6ee7b7;border:1px solid rgba(16,185,129,.3)}.badge-error{background:rgba(239,68,68,.2);color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.badge-warning{background:rgba(251,191,36,.2);color:#fcd34d;border:1px solid rgba(251,191,36,.3)}.badge-info{background:rgba(14,165,233,.2);color:#7dd3fc;border:1px solid rgba(14,165,233,.3)}.alert{padding:var(--space-md);border-radius:var(--radius-lg);border-left:var(--border-width-thick) solid;margin-bottom:var(--space-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.alert-success{background:rgba(16,185,129,.2);border-color:#10b981;color:#6ee7b7}.alert-error{background:rgba(239,68,68,.2);border-color:#ef4444;color:#fca5a5}.alert-warning{background:rgba(251,191,36,.2);border-color:#fbbf24;color:#fcd34d}.alert-info{background:rgba(14,165,233,.2);border-color:#0ea5e9;color:#7dd3fc}.input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid rgba(42,63,95,.5);font-family:var(--font-sans);transition:all var(--transition-fast);line-height:var(--leading-normal);background:rgba(30,42,58,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f1f1f1}.input::placeholder{color:#6b7280}.input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.3)}.input:disabled{background-color:rgba(30,42,58,.4);color:#6b7280;cursor:not-allowed}.input-error{border-color:#ef4444}.input-error:focus{box-shadow:0 0 0 3px rgba(239,68,68,.3)}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;font-weight:var(--font-medium);margin-bottom:var(--space-xs);color:#f1f1f1;font-size:var(--text-sm)}.form-help{color:#9ca3af}.form-error,.form-help{display:block;font-size:var(--text-xs);margin-top:var(--space-xs)}.form-error{color:#fca5a5}.avatar{width:48px;height:48px;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;border:var(--border-width-medium) solid var(--color-border-light)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:32px;height:32px}.avatar-lg{width:64px;height:64px}.avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-purple-start) 0,var(--color-purple-end) 100%);color:var(--color-white);font-weight:var(--font-bold);font-size:var(--text-lg)}.spinner{display:inline-block;width:20px;height:20px;border-radius:var(--radius-full);border:3px solid rgba(96,165,250,.2);border-top-color:#60a5fa;animation:spin .8s linear infinite}.spinner-lg{width:40px;height:40px;border-width:4px}.spinner-primary{border:3px solid rgba(96,165,250,.2);border-top-color:#60a5fa}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--space-md)}.modal{background:rgba(30,42,58,.95);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(42,63,95,.5);border-radius:var(--radius-xl);box-shadow:0 20px 60px rgba(0,0,0,.6);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;animation:modalSlideIn .2s ease-out;z-index:var(--z-modal)}@keyframes modalSlideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid rgba(42,63,95,.5)}.modal-title{margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:#f1f1f1}.modal-close{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;color:#9ca3af;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{background-color:rgba(30,42,58,.8);color:#f1f1f1}.modal-body,.modal-footer{padding:var(--space-lg)}.modal-footer{display:flex;gap:var(--space-sm);justify-content:flex-end;border-top:1px solid rgba(42,63,95,.5)}.divider{height:var(--border-width-thin);margin:var(--space-lg) 0}.divider,.divider-vertical{background-color:rgba(42,63,95,.5)}.divider-vertical{width:var(--border-width-thin);height:auto;margin:0 var(--space-lg)}.section-header{margin-bottom:var(--space-lg);gap:var(--space-md)}.section-title{margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:#f1f1f1}.empty-state{padding:var(--space-3xl) var(--space-xl)}.empty-state-icon{font-size:4rem;margin-bottom:var(--space-md);opacity:.6}.empty-state-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-sm);color:#f1f1f1}.empty-state-description{color:#9ca3af;margin-bottom:var(--space-xl);line-height:var(--leading-relaxed)}.install-prompt{position:fixed;top:0;left:0;right:0;background:rgba(30,42,58,.98);color:#f1f1f1;padding:1.25rem;box-shadow:0 8px 32px rgba(0,0,0,.6);z-index:10000;animation:slideDown .3s ease-out;border-bottom:3px solid rgba(96,165,250,.7);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.install-prompt--ios{background:rgba(30,42,58,.98);border-bottom:3px solid rgba(239,68,68,.7)}.install-prompt--android{background:rgba(30,42,58,.98);border-bottom:3px solid rgba(96,165,250,.7)}.install-prompt__header{display:flex;align-items:flex-start;gap:.875rem;margin-bottom:1rem}.install-prompt__icon{font-size:1.75rem;flex-shrink:0;margin-top:.125rem}.install-prompt__title{flex:1 1}.install-prompt__title h3{margin:0 0 .375rem;font-size:1.25rem;font-weight:600;line-height:1.2;color:#fff}.install-prompt__title p{margin:0;font-size:.9rem;opacity:.95;line-height:1.4;color:#d1d5db}.install-prompt__close{background:rgba(59,130,246,.15);border:1px solid rgba(96,165,250,.3);color:#f1f1f1;font-size:1.5rem;cursor:pointer;padding:0;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;flex-shrink:0}.install-prompt__close:hover{background-color:rgba(96,165,250,.3);border-color:rgba(96,165,250,.5);transform:scale(1.05)}.install-prompt__instructions{background:rgba(15,52,96,.5);border-radius:10px;padding:1.125rem;margin-bottom:1rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(96,165,250,.4)}.install-prompt__step{display:flex;align-items:center;gap:.875rem;padding:.625rem 0;font-size:.95rem;color:#fff;font-weight:500}.install-prompt__step:not(:last-child){border-bottom:1px solid rgba(96,165,250,.25);margin-bottom:.625rem;padding-bottom:1rem}.install-prompt__step-number{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff;width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0;box-shadow:0 3px 12px rgba(96,165,250,.5)}.install-prompt__plus-icon,.install-prompt__safari-icon{background:rgba(96,165,250,.3);padding:.375rem .625rem;border-radius:6px;font-size:1.25rem;margin-left:auto;flex-shrink:0;border:1px solid rgba(96,165,250,.5)}.install-prompt__actions{display:flex;gap:.875rem;justify-content:flex-end}.install-prompt__button{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;min-width:6rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.install-prompt__button--primary{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff;border:1px solid rgba(96,165,250,.6);box-shadow:0 4px 16px rgba(96,165,250,.4)}.install-prompt__button--primary:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);transform:translateY(-2px);box-shadow:0 6px 20px rgba(96,165,250,.6)}.install-prompt__button--secondary{background:rgba(30,42,58,.9);color:#f1f1f1;border:1px solid rgba(96,165,250,.4)}.install-prompt__button--secondary:hover{background:rgba(42,63,95,.8);border-color:rgba(96,165,250,.6);transform:translateY(-1px)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--color-bg-secondary);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,h1,h2,h3,h4,h5,h6{color:var(--color-text-primary)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{margin-bottom:var(--space-md);line-height:var(--leading-relaxed)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}ol,ul{padding-left:var(--space-xl);margin-bottom:var(--space-md)}img{max-width:100%;height:auto;display:block}button{font-family:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:var(--color-primary-light);color:var(--color-white)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--color-gray-400);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fadeIn{animation:fadeIn .3s ease}.animate-slideInUp{animation:slideInUp .3s ease}.animate-slideInDown{animation:slideInDown .3s ease}.animate-shake{animation:shake .4s ease}.animate-pulse{animation:pulse 1.5s infinite}.animate-spin{animation:spin 1s linear infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{body{background:#fff;color:#000}.no-print{display:none!important}}.container{background:transparent;padding:var(--space-xl);max-width:1200px;margin:0 auto}.card{background:linear-gradient(145deg,var(--dark-bg-card) 0,var(--dark-bg-tertiary) 100%);border:1px solid var(--dark-border);border-radius:var(--radius-xl);padding:var(--space-2xl);box-shadow:0 8px 32px rgba(0,0,0,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--dark-text-primary)}.card h1,.card h2,.card h3,.card h4,.card h5,.card h6{color:var(--dark-text-primary);text-shadow:0 2px 4px rgba(0,0,0,.3)}.card p{color:var(--dark-text-secondary)}.section{margin-bottom:var(--space-2xl);padding:var(--space-xl);background:rgba(15,52,96,.3);border-radius:var(--radius-lg);border:1px solid var(--dark-border)}.section h2{margin-bottom:var(--space-md);color:var(--dark-accent)}.divider{display:flex;align-items:center;text-align:center;margin:var(--space-2xl) 0;color:var(--dark-text-secondary)}.divider:after,.divider:before{content:"";flex:1 1;border-bottom:1px solid var(--dark-border)}.divider span{padding:0 var(--space-md);font-weight:var(--font-medium)}.form{display:flex;flex-direction:column;gap:var(--space-md)}.input{padding:var(--space-md);border:1px solid var(--dark-border);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--dark-bg-secondary);color:var(--dark-text-primary);transition:all var(--transition-base)}.input:focus{outline:none;border-color:var(--dark-accent);box-shadow:0 0 0 3px rgba(0,173,181,.1)}.input::placeholder{color:var(--dark-text-secondary);opacity:.6}.button{padding:var(--space-md) var(--space-xl);border:1px solid var(--dark-border);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-medium);transition:all var(--transition-base);background:var(--dark-bg-tertiary);color:var(--dark-text-primary)}.button:hover:not(:disabled){background:var(--dark-bg-secondary);border-color:var(--dark-accent);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,173,181,.2)}.button:active:not(:disabled){transform:translateY(0)}.button-primary{background:linear-gradient(135deg,var(--dark-accent) 0,var(--dark-accent-hover) 100%);border-color:var(--dark-accent);color:var(--color-white);font-weight:var(--font-semibold);box-shadow:0 4px 12px rgba(0,173,181,.3)}.button-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--dark-accent-hover) 0,var(--dark-accent) 100%);box-shadow:0 6px 20px rgba(0,173,181,.4)}.button-secondary{background:rgba(15,52,96,.5);border-color:var(--dark-border)}.response{margin-top:var(--space-lg);padding:var(--space-md);border-radius:var(--radius-md);background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#fca5a5;font-weight:var(--font-medium);animation:slideInUp .3s ease}.loading{text-align:center;padding:var(--space-2xl);color:var(--dark-text-secondary);font-size:var(--text-lg)}.gamemaster-dashboard{background:linear-gradient(135deg,var(--dark-bg-primary) 0,var(--dark-bg-secondary) 100%);padding:var(--space-xl);color:var(--dark-text-primary)}.gamemaster-controls{grid-gap:var(--space-xl);gap:var(--space-xl);margin-top:var(--space-xl)}.control-section{background:linear-gradient(145deg,var(--dark-bg-card) 0,var(--dark-bg-tertiary) 100%);border:1px solid var(--dark-border);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:0 8px 32px rgba(0,0,0,.4)}.control-section h3{color:var(--dark-accent);margin-bottom:var(--space-lg);font-size:var(--text-2xl);text-shadow:0 2px 4px rgba(0,0,0,.3)}.voting-card{margin:0 auto}.card-gradient,.voting-card{background:linear-gradient(145deg,var(--dark-bg-card) 0,var(--dark-bg-tertiary) 100%);border:1px solid var(--dark-border);border-radius:var(--radius-xl);padding:var(--space-2xl);box-shadow:0 8px 32px rgba(0,0,0,.4)}.card-gradient{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bg-gradient-purple{border-color:rgba(102,126,234,.3)}.bg-gradient-purple,.shadow-purple{box-shadow:0 8px 32px rgba(102,126,234,.2)}@keyframes glow{0%,to{box-shadow:0 0 20px rgba(0,173,181,.3)}50%{box-shadow:0 0 30px rgba(0,173,181,.6)}}.glow-accent{animation:glow 2s ease-in-out infinite}.hover-lift{transition:transform var(--transition-base)}.hover-lift:hover{transform:translateY(-4px)}@media (max-width:768px){.container{padding:var(--space-md)}.card,.card-gradient,.voting-card{padding:var(--space-lg)}.control-section{padding:var(--space-md)}}.gamemaster-dashboard{min-height:100vh;background:linear-gradient(135deg,#0a0e27,#1a1a2e 50%,#16213e);padding:2rem}.gamemaster-dashboard .container{max-width:1400px;margin:0 auto}.gamemaster-controls{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem;align-items:start}.control-section{background:rgba(30,42,58,.8);border-radius:12px;padding:2rem;box-shadow:0 8px 24px rgba(0,0,0,.4);border:1px solid rgba(42,63,95,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.control-section h3{color:#f1f1f1;margin:0 0 1.5rem;font-size:1.25rem;font-weight:600;border-bottom:2px solid rgba(42,63,95,.5);padding-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.control-section:has(.push-notification-setup),.control-section:has(h3:contains("Configuration des notifications")){background:linear-gradient(135deg,#f59e0b,#d97706);border:2px solid #f59e0b;box-shadow:0 4px 12px rgba(245,158,11,.3)}.control-section:has(.push-notification-setup) h3,.control-section:has(h3:contains("Configuration des notifications")) h3{color:#fff;border-bottom-color:hsla(0,0%,100%,.3)}@media (max-width:1200px){.gamemaster-controls{grid-template-columns:1fr;gap:1.5rem}}@media (max-width:768px){.gamemaster-dashboard{padding:1rem}.control-section{padding:1.5rem}}.gamemaster-dashboard .header{background:rgba(30,42,58,.8);border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 8px 24px rgba(0,0,0,.4);border:1px solid rgba(42,63,95,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gamemaster-dashboard .header h1{color:#f1f1f1;margin:0 0 1.5rem;font-size:2.25rem;font-weight:700;text-align:center}.gamemaster-dashboard .room-info{display:flex;justify-content:center;align-items:center;gap:2rem;flex-wrap:wrap;margin-bottom:1.5rem}.gamemaster-dashboard .room-info h2{color:#60a5fa;margin:0;font-size:1.5rem;font-weight:600;display:flex;align-items:center;gap:.75rem}.gamemaster-dashboard .qr-code-button{background:#3b82f6;color:#fff;border:none;padding:.5rem .75rem;border-radius:8px;font-size:1.25rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(59,130,246,.2)}.gamemaster-dashboard .qr-code-button:hover{background:#2563eb;transform:scale(1.05);box-shadow:0 4px 8px rgba(59,130,246,.3)}.gamemaster-dashboard .qr-code-button:active{transform:scale(.95)}.gamemaster-dashboard .room-info p{margin:0;display:flex;align-items:center;gap:.5rem}.gamemaster-dashboard .status{background:#10b981;color:#fff;padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.875rem;text-transform:capitalize}.gamemaster-dashboard .status.waiting{background:#f59e0b}.gamemaster-dashboard .status.in_progress{background:#ef4444}.gamemaster-dashboard .navigation-links{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.gamemaster-dashboard .navigation-links .button{padding:.75rem 1.5rem;background:#3b82f6;color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:all .2s ease;border:none;cursor:pointer}.gamemaster-dashboard .navigation-links .button:hover{background:#2563eb;transform:translateY(-1px)}.notification{padding:1rem 1.5rem;border-radius:8px;margin:1rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem}.notification.error{background:rgba(220,38,38,.2);border:1px solid hsla(0,91%,71%,.5);color:#fca5a5}.notification.success{background:rgba(16,185,129,.2);border:1px solid rgba(52,211,153,.5);color:#6ee7b7}@media (max-width:768px){.gamemaster-dashboard .header{padding:1.5rem}.gamemaster-dashboard .header h1{font-size:1.875rem}.gamemaster-dashboard .room-info{flex-direction:column;gap:1rem}}.test-controls{background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid #5a67d8;box-shadow:0 4px 12px rgba(102,126,234,.3)}.test-controls h3{color:#fff;display:flex;align-items:center;gap:.5rem}.test-controls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1.5rem;gap:1.5rem;margin-top:1rem}.test-control-item{display:flex;flex-direction:column;gap:.75rem}.test-control-item .button{width:100%;font-size:1rem;padding:.875rem 1.5rem;background:#fff;color:#667eea;border:2px solid #fff;font-weight:600;transition:all .2s ease}.test-control-item .button:hover:not(:disabled){background:#f7fafc;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.test-control-item .button:active:not(:disabled){transform:translateY(0)}.test-control-item .button:disabled{opacity:.6;cursor:not-allowed;background:#e2e8f0;color:#a0aec0}.test-control-description{color:hsla(0,0%,100%,.9);font-size:.875rem;margin:0;line-height:1.4;text-align:center}.test-controls .info-message{background:hsla(0,0%,100%,.2);padding:.75rem 1rem;font-size:.875rem}.test-controls .info-message,.test-controls .success-message{color:#fff;border-radius:8px;margin-top:1rem;text-align:center}.test-controls .success-message{background:rgba(72,187,120,.9);padding:.875rem 1.25rem;font-weight:600;animation:slideInUp .3s ease;box-shadow:0 4px 12px rgba(72,187,120,.4)}.test-controls .error-message{background:hsla(0,88%,68%,.9);color:#fff;padding:.875rem 1.25rem;border-radius:8px;margin-top:1rem;text-align:center;font-weight:600;animation:shake .4s ease;box-shadow:0 4px 12px hsla(0,88%,68%,.4)}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@media (max-width:768px){.test-controls-grid{grid-template-columns:1fr;gap:1rem}.test-control-item .button{font-size:.95rem;padding:.75rem 1.25rem}.test-control-description{font-size:.8rem}}.control-section:has(.player-list){background:linear-gradient(135deg,#10b981,#059669);border:2px solid #10b981;box-shadow:0 4px 12px rgba(16,185,129,.3)}.control-section:has(.player-list) h3{color:#fff;border-bottom-color:hsla(0,0%,100%,.3)}.add-player-form{margin-bottom:2rem}.add-player-form .form-group{display:flex;gap:1rem}.add-player-form .input{flex:1 1;padding:.75rem;border:1px solid rgba(96,165,250,.3);border-radius:6px;font-size:1rem;background:rgba(30,42,58,.6);color:#f1f1f1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.add-player-form .input::placeholder{color:#9ca3af}.add-player-form .input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 2px rgba(96,165,250,.2);background:rgba(30,42,58,.8)}.add-player-form .button-primary{background:#fff;color:#10b981;padding:.75rem 1.5rem;border:2px solid #fff;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.add-player-form .button-primary:hover:not(:disabled){background:#f7fafc;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.add-player-form .button-primary:disabled{background:#e2e8f0;color:#a0aec0;cursor:not-allowed;opacity:.6}.player-list{display:flex;flex-direction:column;gap:1rem}.player-card{background:rgba(30,42,58,.6);border:1px solid rgba(42,63,95,.5);padding:1.5rem;align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.player-card:hover{box-shadow:0 4px 6px rgba(0,0,0,.3);border-color:rgba(96,165,250,.5);background:rgba(30,42,58,.8)}.player-avatar{gap:.5rem}.avatar-image{width:50px;height:50px;border:2px solid #e2e8f0}.avatar-placeholder{width:50px;height:50px;font-weight:700}.avatar-upload{position:relative}.file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.avatar-upload-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s ease}.avatar-upload-button:hover:not(:disabled){background:#2563eb}.avatar-upload-button:disabled{background:#9ca3af;cursor:not-allowed}.player-info h4{margin:0 0 .5rem;color:#f1f1f1;font-size:1.125rem;font-weight:600}.player-details{display:flex;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}.player-details *{color:inherit}.status-badge.alive{background:#dcfce7;color:#166534}.status-badge.dead{background:#fee2e2;color:#991b1b}.status-badge.eliminated{background:#fef3c7;color:#92400e}.role-badge{background:#ede9fe;color:#6b21a8;padding:.25rem .75rem;border-radius:12px;font-size:.75rem}.joined-time{color:#9ca3af;font-size:.875rem;margin:0}.player-actions{gap:.5rem;flex-wrap:wrap}.button{padding:.5rem 1rem;border-radius:6px;font-size:.875rem}.button-success{background:#10b981}.button-success:hover:not(:disabled){background:#059669}.empty-state{color:#9ca3af;font-style:italic;background:rgba(30,42,58,.4);border:2px dashed rgba(96,165,250,.3)}@media (max-width:768px){.add-player-form .form-group,.player-card{flex-direction:column}.player-card{align-items:flex-start;gap:1rem}.player-actions{width:100%;justify-content:flex-end}}.socket-status{margin-bottom:1.5rem;text-align:center}.connection-indicator{padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:500}.connection-indicator.connected{background:#dcfce7;color:#166534}.connection-indicator.disconnected{background:#fee2e2;color:#991b1b}.active-voting{background:#fffbeb;border:1px solid #f59e0b;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.active-voting h4{color:#92400e;margin:0 0 .5rem}.active-voting p{color:#451a03;margin:.25rem 0}.voting-status{display:flex;align-items:center;gap:.5rem;margin-top:1rem}.vote-results{background:#f0f9ff;border:1px solid #0ea5e9;margin-bottom:1.5rem}.vote-results h4{color:#0c4a6e;margin:0 0 1rem}.vote-results p{color:#0c4a6e}.results-list{gap:.5rem}.result-item{gap:1rem;padding:.75rem;border:1px solid #e0f2fe}.result-item.winner{background:#ecfdf5;border-color:#10b981}.position{font-weight:600;font-size:1.125rem}.player-name{flex:1 1;font-weight:500}.vote-count{background:#3b82f6;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.75rem}.voting-setup h4{color:#0f172a;margin:0 0 1rem}.voter-selection{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem;max-height:300px;overflow-y:auto;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;background:#fff}.voter-option{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:6px;cursor:pointer;transition:all .2s ease}.voter-option:hover{background:#f8fafc}.voter-option .player-name{color:#1f2937}.voter-option input[type=checkbox]{width:16px;height:16px;accent-color:#3b82f6}.voter-option .player-name{flex:1 1;font-weight:500}.voter-option .avatar-image.small{width:24px;height:24px}.voting-actions{justify-content:space-between;align-items:center;background:#fff;padding:1rem;border-radius:6px;border:1px solid #e2e8f0}.selection-info{color:#374151;font-size:.875rem;font-weight:500}.action-buttons{gap:.75rem}@media (max-width:768px){.voting-actions{flex-direction:column;align-items:stretch}.action-buttons{justify-content:stretch}.action-buttons .button{flex:1 1}}.control-section:has(.voting-history-empty),.control-section:has(.voting-history-list){background:linear-gradient(135deg,#f97316,#ea580c);border:2px solid #f97316;box-shadow:0 4px 12px rgba(249,115,22,.3)}.control-section:has(.voting-history-empty) h3,.control-section:has(.voting-history-list) h3{color:#fff;border-bottom-color:hsla(0,0%,100%,.3)}.control-section:has(.voting-history-empty) .section-header h3,.control-section:has(.voting-history-list) .section-header h3{color:#fff}.section-header{flex-wrap:wrap;gap:1rem}.section-header h3{margin:0;color:#1e293b;font-size:1.25rem;font-weight:600}.section-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.session-count{color:#fff;font-size:.875rem;background:hsla(0,0%,100%,.2);padding:.25rem .75rem;border-radius:12px;font-weight:500}.button-small{padding:.5rem .75rem;font-size:.875rem;min-width:auto}.error-content,.loading-content{display:flex;align-items:center;gap:.75rem;padding:2rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.error-message{color:#dc2626;margin:0}.voting-history-empty{padding:3rem 2rem}.empty-state{max-width:400px;margin:0 auto}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.9;filter:brightness(2)}.empty-state h4{color:#fff;margin:0 0 .5rem;font-size:1.125rem}.empty-state p{color:hsla(0,0%,100%,.9);margin:0 0 1.5rem;line-height:1.5}.voting-history-list{display:flex;flex-direction:column;gap:1rem}.voting-session-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;transition:all .2s ease}.voting-session-card:hover{border-color:#cbd5e1;box-shadow:0 2px 4px rgba(0,0,0,.05)}.voting-session-card.active{border-left:4px solid #ef4444}.voting-session-card.completed{border-left:4px solid #22c55e}.session-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer;transition:background-color .2s ease}.session-header:hover{background:#f8fafc}.session-info{display:flex;flex-direction:column;gap:.5rem;flex:1 1}.session-status{margin-bottom:.25rem}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;letter-spacing:.025em}.status-badge.active{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.status-badge.completed{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.session-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.875rem;color:#64748b}.session-meta span{display:flex;align-items:center;gap:.25rem}.expand-indicator{color:#94a3b8;font-size:1rem;font-weight:600;transition:transform .2s ease}.session-details{border-top:1px solid #f1f5f9;padding:1.25rem;background:#fafbfc}.session-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.025em;font-weight:600}.stat-value{font-size:.875rem;color:#1e293b;font-weight:500}.session-results{margin-bottom:1.5rem}.session-results h5{margin:0 0 1rem;color:#374151;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.results-list{gap:.75rem}.result-item{background:#fff;padding:.75rem 1rem;border:1px solid #e5e7eb}.result-item.winner{background:#fffbeb;border-color:#fbbf24}.result-player{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.player-name{color:#1f2937}.vote-count{color:#6b7280;font-size:.875rem;font-weight:500}.voters-detail{margin-top:.5rem}.voters-detail small{color:#6b7280;font-size:.75rem}.session-actions{display:flex;gap:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb}@media (max-width:768px){.section-header{flex-direction:column;align-items:stretch;gap:.75rem}.section-actions{justify-content:space-between}.session-meta{flex-direction:column;gap:.5rem}.session-stats{grid-template-columns:1fr;gap:.75rem}.result-player{flex-direction:column;align-items:flex-start;gap:.25rem}.voting-history-empty{padding:2rem 1rem}}@media (max-width:480px){.session-header{padding:.75rem 1rem}.session-details{padding:1rem}.session-actions{flex-direction:column}.button-small{width:100%}}.error-container,.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;background:#fff;border-radius:12px;margin:2rem;padding:3rem;box-shadow:0 2px 4px rgba(0,0,0,.05);border:1px solid #e2e8f0}.loading-spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.error-container p,.loading-container p{color:#374151;font-size:1rem;margin:0;text-align:center}.error-container .button{margin-top:1rem;padding:.75rem 1.5rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.error-container .button:hover{background:#2563eb}.notifications-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none}.notification-chip{pointer-events:all;background:#fff;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);overflow:hidden;animation:slideInRight .3s ease-out;max-width:100%}.notification-chip-success{border-left:4px solid #28a745}.notification-chip-error{border-left:4px solid #dc3545}.notification-chip-warning{border-left:4px solid #ffc107}.notification-chip-info{border-left:4px solid #17a2b8}.notification-chip-content{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:50px}.notification-chip-icon{font-size:20px;font-weight:700;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.notification-chip-success .notification-chip-icon{color:#28a745}.notification-chip-error .notification-chip-icon{color:#dc3545}.notification-chip-warning .notification-chip-icon{color:#ffc107}.notification-chip-info .notification-chip-icon{color:#17a2b8}.notification-chip-message{flex:1 1;font-size:14px;color:#333;line-height:1.4;word-wrap:break-word}.notification-chip-close{background:none;border:none;color:#999;font-size:18px;cursor:pointer;padding:4px 8px;margin:-4px -8px -4px 0;transition:color .2s;flex-shrink:0}.notification-chip-close:hover{color:#333}.notification-chip-progress-bar{width:100%;height:3px;background:rgba(0,0,0,.1);position:relative}.notification-chip-progress{height:100%;transition:width .05s linear}.notification-chip-success .notification-chip-progress{background:#28a745}.notification-chip-error .notification-chip-progress{background:#dc3545}.notification-chip-warning .notification-chip-progress{background:#ffc107}.notification-chip-info .notification-chip-progress{background:#17a2b8}@keyframes slideInRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@media (max-width:768px){.notifications-container{top:10px;right:10px;left:10px;max-width:none}.notification-chip-content{padding:10px 12px}.notification-chip-message{font-size:13px}}.player-card{display:flex;flex-direction:row;align-items:stretch;gap:1rem;padding:.8rem;border:1px solid #e8eaed;border-radius:8px;background:#fff;transition:all .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.04);min-height:80px}.player-card:hover{border-color:#dadce0;box-shadow:0 2px 8px rgba(0,0,0,.08);transform:translateY(-1px)}.player-avatar{flex-shrink:0;height:100%;min-height:60px}.avatar-clickable,.player-avatar{position:relative;width:60px;display:flex;align-items:center;justify-content:center}.avatar-clickable{height:60px;cursor:pointer;border-radius:50%;overflow:hidden;transition:all .2s ease}.avatar-clickable:hover{transform:scale(1.05)}.avatar-clickable:hover .avatar-upload-overlay{opacity:1}.avatar-image{width:60px;height:60px;border-radius:50%;object-fit:cover;object-position:center;border:2px solid #f1f3f4;display:block;transition:all .2s ease;box-sizing:border-box}.avatar-placeholder{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:1.2rem;transition:all .2s ease}.avatar-placeholder,.avatar-uploading{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.avatar-uploading{background:#f8f9fa;border:2px solid #e9ecef}.upload-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.avatar-upload-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:0;transition:opacity .2s ease;color:#fff;font-size:12px}.player-info{flex:1 1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.4rem}.player-name{background:rgba(239,68,68,.1);color:#dc2626;padding:.2rem .5rem;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;display:inline-block;width:-moz-fit-content;width:fit-content}.connection-status,.game-status,.player-role{display:flex;align-items:center}.status-badge{padding:.1rem .3rem;border-radius:8px;font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:.2px;display:inline-flex;align-items:center;gap:.2rem;line-height:1}.status-badge.online{background:rgba(34,197,94,.1);color:#16a34a}.status-badge.offline{background:rgba(239,68,68,.1);color:#dc2626}.status-badge.added_by_gm{background:rgba(156,163,175,.15);color:#6b7280}.status-badge.alive{background:rgba(34,197,94,.1);color:#16a34a}.status-badge.dead{background:rgba(239,68,68,.1);color:#dc2626}.status-badge.eliminated{background:rgba(168,85,247,.1);color:#8b5cf6}.role-badge{background:rgba(59,130,246,.1);color:#2563eb;padding:.1rem .3rem;border-radius:8px;font-size:.6rem;font-weight:500;line-height:1}.player-actions{flex-direction:column;gap:.4rem;flex-shrink:0;width:50px}.player-actions,.player-actions .button{display:flex;align-items:center;justify-content:center}.player-actions .button{padding:.5rem;font-size:1.1rem;border-radius:6px;font-weight:500;border:none;cursor:pointer;transition:all .2s ease;line-height:1;white-space:nowrap;width:40px;height:40px}.file-input{display:none}.button{border:none;border-radius:4px;padding:.25rem .6rem;font-size:.7rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;line-height:1;white-space:nowrap}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:#3b82f6;color:#fff}.button-primary:hover:not(:disabled){background:#2563eb}.button-danger{background:#ef4444;color:#fff}.button-danger:hover:not(:disabled){background:#dc2626}.button-success{background:#22c55e;color:#fff}.button-success:hover:not(:disabled){background:#16a34a}.button-secondary{background:#6b7280;color:#fff}.button-secondary:hover:not(:disabled){background:#4b5563}.empty-state{text-align:center;padding:2rem;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db;color:#6b7280}.empty-state p{margin:.5rem 0;color:#6b7280}@media (max-width:768px){.player-card{padding:.6rem;gap:.8rem;min-height:70px;display:flex!important;flex-direction:row!important;align-items:stretch!important}.player-avatar{width:50px;height:100%;min-height:50px;display:flex;align-items:center;justify-content:center}.avatar-clickable,.avatar-image,.avatar-placeholder,.avatar-uploading{width:50px;height:50px}.avatar-placeholder{font-size:1rem}.player-info{flex:1 1;gap:.3rem;justify-content:center}.player-name{font-size:.75rem;padding:.15rem .3rem}.role-badge,.status-badge{font-size:.6rem;padding:.1rem .25rem}.player-actions{width:45px;gap:.3rem}.player-actions .button{width:35px;height:35px;font-size:1rem}}.player-option{border:1px solid #e1e5e9;border-radius:8px;padding:1rem;background:#fff;transition:all .2s ease}.player-option:hover{border-color:#3498db;box-shadow:0 2px 8px rgba(52,152,219,.1)}.player-option-content{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.player-avatar-section{position:relative;flex-shrink:0}.player-option:hover .player-avatar{border-color:#3498db}.player-avatar-placeholder{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.8rem;transition:transform .2s ease}.player-option:hover .player-avatar-placeholder{transform:scale(1.05)}.player-avatar-placeholder.hidden{display:none}.player-option-name{margin:0 0 .5rem;color:#2c3e50;font-size:1.1rem;font-weight:600}.player-role{display:inline-block;padding:.3rem .6rem;background:rgba(52,152,219,.1);color:#3498db;border-radius:12px;font-size:.8rem;font-weight:500}.select-button{width:100%;padding:.75rem 1rem;background:#3498db;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease}.select-button:hover:not(:disabled){background:#2980b9}.select-button:disabled{background:#bdc3c7;cursor:not-allowed}@media (max-width:768px){.player-option-content{flex-direction:column;align-items:center;text-align:center}.player-avatar,.player-avatar-placeholder{width:80px;height:80px}.player-avatar-placeholder{font-size:2.2rem}}.voting-section{background:rgba(30,42,58,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem;border-radius:12px;margin-bottom:2rem;border:1px solid rgba(42,63,95,.5)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{margin:0;color:#f1f1f1}.voting-management{background:rgba(30,42,58,.8);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.4);border:1px solid rgba(42,63,95,.5);max-width:1000px;width:100%}.active-voting-session,.voting-management{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem}.active-voting-session{background:linear-gradient(135deg,rgba(239,68,68,.9),rgba(220,38,38,.9));color:#fff;border-radius:8px;margin-bottom:2rem;text-align:center;border:1px solid hsla(0,91%,71%,.3);box-shadow:0 8px 24px rgba(220,38,38,.3)}.active-voting-session h2{margin:0 0 1rem}.session-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem;margin:1rem 0;text-align:left}.session-info p{margin:.5rem 0}.waiting-message{margin-top:1rem;padding:1rem;background:hsla(0,0%,100%,.15);border-radius:6px;border:1px solid hsla(0,0%,100%,.2)}.voting-setup,.waiting-message{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.voting-setup{background:rgba(30,42,58,.6);padding:2rem;border-radius:8px;margin-bottom:2rem;border:1px solid rgba(42,63,95,.5)}.voting-setup h2{color:#f1f1f1;margin-bottom:1rem}.player-selection{margin-bottom:2rem}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.selection-header h3{margin:0;color:#f1f1f1}.voter-selection h3{margin-bottom:1rem;color:#f1f1f1}.voter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1rem}.voter-card{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:rgba(30,42,58,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(42,63,95,.5);border-radius:8px;cursor:pointer;transition:all .2s ease}.voter-card:hover{border-color:#60a5fa;box-shadow:0 4px 16px rgba(96,165,250,.3);background:rgba(30,42,58,.8)}.voter-card.selected{border-color:#10b981;background:linear-gradient(135deg,rgba(16,185,129,.9),rgba(5,150,105,.9));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;box-shadow:0 4px 16px rgba(16,185,129,.4)}.voter-card .player-info{display:flex;flex-direction:column;gap:.25rem}.voter-card .player-name{font-weight:600;font-size:1rem;color:#f1f1f1}.voter-card.selected .player-name{color:#fff}.voter-card .player-role{font-size:.9rem;opacity:.8;color:#b8b8b8}.voter-card.selected .player-role{color:hsla(0,0%,100%,.9)}.voter-card .player-status{font-size:.85rem;opacity:.8;color:#9ca3af}.voter-card.selected .player-status{color:hsla(0,0%,100%,.9)}.selection-indicator{font-size:1.2rem}.selection-hint{color:#9ca3af;font-style:italic;margin:1rem 0}.voting-instructions{margin:2rem 0}.voting-instructions h3{color:#f1f1f1;margin-bottom:1rem}.voting-instructions ul{color:#b8b8b8;line-height:1.6}.voting-instructions li{margin:.5rem 0}.vote-results{margin-top:2rem;padding:1.5rem;background:rgba(30,42,58,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;border:1px solid rgba(42,63,95,.5);border-left:4px solid #60a5fa}.vote-results h3{margin:0 0 1rem;color:#f1f1f1}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:2rem}.result-card{padding:1rem;background:rgba(30,42,58,.6);border-radius:8px;border:1px solid rgba(42,63,95,.5);border-left:4px solid #60a5fa}.result-card,.result-card.highest-votes{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.result-card.highest-votes{background:linear-gradient(135deg,rgba(251,191,36,.2),rgba(245,158,11,.2));border:1px solid rgba(251,191,36,.3);border-left:4px solid #fbbf24}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.result-card .player-name{font-weight:600;color:#f1f1f1}.result-card .vote-count{color:#ef4444;font-weight:600}.results-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.result-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:rgba(30,42,58,.6);border-radius:6px;border:1px solid rgba(42,63,95,.5);border-left:3px solid #60a5fa}.result-item,.result-item.top-result{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.result-item.top-result{background:linear-gradient(135deg,rgba(251,191,36,.2),rgba(245,158,11,.2));border:1px solid rgba(251,191,36,.3);border-left:3px solid #fbbf24}.result-info{display:flex;flex-direction:column;gap:.25rem}.result-info .player-name{font-weight:600;color:#f1f1f1}.vote-count{color:#b8b8b8;font-size:.9rem}.voters-list{font-size:.85rem;color:#9ca3af}.action-buttons{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.navigation{text-align:center;padding-top:2rem;border-top:1px solid rgba(42,63,95,.5)}.voting-card{background:rgba(30,42,58,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:2rem;box-shadow:0 8px 24px rgba(0,0,0,.4);border:1px solid rgba(42,63,95,.5);max-width:800px;width:100%}.voting-header{text-align:center;margin-bottom:2rem;border-bottom:2px solid rgba(42,63,95,.5);padding-bottom:1.5rem}.voting-header h1{color:#f1f1f1;margin-bottom:1rem}.voting-info{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.voting-info span{color:#b8b8b8;font-size:.9rem}.voting-instructions{margin-bottom:2rem;text-align:center}.voting-instructions h2{color:#f1f1f1;margin-bottom:.5rem}.voting-instructions p{color:#b8b8b8}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:2rem}.vote-player-card{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:rgba(30,42,58,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(42,63,95,.5);border-radius:8px;cursor:pointer;transition:all .3s ease}.vote-player-card:hover{border-color:#60a5fa;box-shadow:0 4px 16px rgba(96,165,250,.3);transform:translateY(-2px);background:rgba(30,42,58,.8)}.vote-player-card.selected{border-color:#10b981;background:linear-gradient(135deg,rgba(16,185,129,.9),rgba(5,150,105,.9));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;box-shadow:0 4px 16px rgba(16,185,129,.4)}.vote-player-card .player-avatar-section{position:relative;flex-shrink:0}.vote-player-card .vote-player-avatar{width:50px;height:50px;border-radius:50%;object-fit:cover;border:2px solid hsla(0,0%,100%,.8);transition:border-color .2s ease}.vote-player-card.selected .vote-player-avatar{border-color:#fff}.vote-player-card .vote-player-avatar-placeholder{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,rgba(102,126,234,.9),rgba(118,75,162,.9));color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:transform .2s ease;border:2px solid hsla(0,0%,100%,.3)}.vote-player-card:hover .vote-player-avatar-placeholder{transform:scale(1.05);border-color:hsla(0,0%,100%,.5)}.vote-player-card.selected .vote-player-avatar-placeholder{background:hsla(0,0%,100%,.2);color:#fff;border-color:hsla(0,0%,100%,.8)}.vote-player-card .vote-player-avatar-placeholder.hidden{display:none}.vote-player-card .player-info{flex:1 1;min-width:0}.vote-player-card .player-name{font-weight:600;font-size:1.1rem;margin:0;color:#f1f1f1}.vote-player-card.selected .player-name{color:#fff}.vote-player-card .player-status{font-size:.9rem;opacity:.8;color:#b8b8b8}.vote-player-card.selected .player-status{color:hsla(0,0%,100%,.9)}.vote-player-card .selection-indicator{font-size:1.5rem;flex-shrink:0}.voting-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:1rem}.vote-confirmation{text-align:center;padding:1rem;background:linear-gradient(135deg,rgba(16,185,129,.2),rgba(5,150,105,.2));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;border:1px solid rgba(16,185,129,.3);color:#10b981}.voting-waiting{text-align:center;padding:2rem}.voting-waiting h1{color:#10b981;margin-bottom:1rem}.voting-progress{margin:2rem 0}.progress-bar{width:100%;height:20px;background:rgba(30,42,58,.6);border:1px solid rgba(42,63,95,.5);border-radius:10px;overflow:hidden;margin:1rem 0}.progress-fill{height:100%;background:linear-gradient(135deg,rgba(16,185,129,.9),rgba(5,150,105,.9));border-radius:10px;transition:width .3s ease;box-shadow:0 0 10px rgba(16,185,129,.5)}.no-players{text-align:center;padding:2rem;background:rgba(30,42,58,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;border:1px solid rgba(42,63,95,.5);color:#9ca3af}.no-players h3{color:#ef4444;margin-bottom:1rem}@media (max-width:768px){.voting-card,.voting-management{padding:1.5rem;margin:1rem}.players-grid{grid-template-columns:1fr}.vote-player-card .vote-player-avatar,.vote-player-card .vote-player-avatar-placeholder{width:60px;height:60px}.vote-player-card .vote-player-avatar-placeholder{font-size:1.8rem}.voting-actions{flex-direction:column}.voter-grid{grid-template-columns:1fr}.selection-header{flex-direction:column;gap:1rem;align-items:stretch}.results-grid,.session-info{grid-template-columns:1fr}.action-buttons{flex-direction:column}}.game-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px rgba(0,0,0,.1);max-width:800px;width:100%}.game-header{text-align:center;margin-bottom:2rem;border-bottom:2px solid #f1f2f6;padding-bottom:1.5rem}.game-header h1{color:#2c3e50;margin-bottom:1rem;font-size:2.2rem}.game-info{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.game-status{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:2rem}.status-card{background:#f8f9fa;padding:1.5rem;border-radius:8px;border-left:4px solid #3498db}.status-card h3{margin:0 0 1rem;color:#2c3e50;font-size:1.1rem}.character-info{display:flex;flex-direction:column;gap:.5rem}.character-info strong{color:#2c3e50;font-size:1.2rem}.character-info small{color:#6c757d;font-size:.9rem}.game-state{display:flex;flex-direction:column;gap:.5rem}.status-badge{padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem;text-align:center;width:-moz-fit-content;width:fit-content}.status-badge.waiting{background:#fff3cd;color:#856404}.status-badge.starting{background:#d1ecf1;color:#0c5460}.status-badge.in-progress{background:#d4edda;color:#155724}.status-badge.finished{background:#f8d7da;color:#721c24}.game-content{margin-bottom:2rem}.waiting-area{text-align:center;padding:2rem;background:#f8f9fa;border-radius:8px;border:2px dashed #dee2e6}.waiting-area h2{color:#495057;margin-bottom:1rem}.waiting-area p{margin:.5rem 0;color:#6c757d}.game-active-area,.game-finished-area,.game-starting-area{text-align:center;padding:2rem;background:#f8f9fa;border-radius:8px;border:2px solid #3498db}.game-starting-area h2{color:#0c5460;margin-bottom:1rem}.game-active-area h2{color:#155724;margin-bottom:1rem}.game-finished-area h2{color:#721c24;margin-bottom:1rem}.game-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem;flex-wrap:wrap}.action-button{padding:12px 20px;background:#e9ecef;color:#6c757d;border:none;border-radius:8px;font-size:.9rem;cursor:not-allowed;display:flex;align-items:center;gap:.5rem}@media (max-width:768px){.game-card{padding:1.5rem;margin:1rem}.game-info{flex-direction:column;gap:.5rem}.game-status{grid-template-columns:1fr}.game-actions{flex-direction:column}}.gm-message-notification{position:fixed;top:2rem;right:2rem;background:#f8f9fa;color:#495057;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.08);max-width:350px;min-width:280px;z-index:1000;animation:gmMessageSlideIn .3s ease-out;border:1px solid #dee2e6;opacity:.95}@keyframes gmMessageSlideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.gm-message-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem .75rem .5rem;border-bottom:1px solid #e9ecef;background:#fff;border-radius:8px 8px 0 0}.gm-message-title{display:flex;align-items:center;gap:.4rem;font-weight:500;font-size:.85rem;color:#6c757d}.gm-icon{font-size:1rem;opacity:.7}.gm-message-close{background:transparent;border:none;color:#adb5bd;width:24px;height:24px;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:all .2s ease}.gm-message-close:hover{background:#e9ecef;color:#495057}.gm-message-content{padding:.75rem;background:#fff}.gm-message-content p{margin:0 0 .5rem;font-size:.9rem;line-height:1.5;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;color:#212529}.gm-message-time{color:#adb5bd;font-size:.75rem;font-style:italic}.gm-message-hidden{text-align:center;padding:.5rem 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gm-message-hidden p{margin:0 0 .25rem!important;font-weight:500}.gm-message-content:hover{background:#f8f9fa}.gm-message-progress-bar{height:2px;background:#e9ecef;border-radius:0 0 8px 8px;overflow:hidden}.gm-message-progress{height:100%;background:#ced4da;transition:width .1s linear;border-radius:0 0 8px 8px}.message-history-btn{background:#6c757d;color:#fff;border:none;opacity:.8}.message-history-btn:hover{opacity:1;background:#5a6268}@media (max-width:768px){.gm-message-notification{top:1rem;right:1rem;left:1rem;max-width:none;min-width:auto}}.vote-confirmation-notification{position:fixed;top:5rem;right:2rem;background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(39,174,96,.4);max-width:400px;min-width:300px;z-index:999;animation:voteConfirmationSlideIn .3s ease-out;border:2px solid hsla(0,0%,100%,.2)}@keyframes voteConfirmationSlideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.vote-confirmation-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .5rem;border-bottom:1px solid hsla(0,0%,100%,.2)}.vote-confirmation-title{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:1rem}.vote-icon{font-size:1.2rem;animation:pulse 2s infinite}.vote-confirmation-close{background:hsla(0,0%,100%,.2);border:none;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:all .2s ease}.vote-confirmation-close:hover{background:hsla(0,0%,100%,.3);transform:scale(1.1)}.vote-confirmation-content{padding:1rem}.vote-confirmation-content p{margin:0 0 .5rem;font-size:1rem;line-height:1.4;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.vote-confirmation-time{color:hsla(0,0%,100%,.8);font-size:.8rem;font-style:italic}.vote-confirmation-progress-bar{height:4px;background:hsla(0,0%,100%,.2);border-radius:0 0 10px 10px;overflow:hidden}.vote-confirmation-progress{height:100%;background:linear-gradient(90deg,#fff,hsla(0,0%,100%,.8));transition:width .1s linear;border-radius:0 0 10px 10px}@media (max-width:768px){.vote-confirmation-notification{top:6rem;right:1rem;left:1rem;max-width:none;min-width:auto}}.role-assignment{max-width:1200px;margin:0 auto;padding:2rem}.assignment-overview,.role-assignment-section{margin-bottom:2rem}.player-assignment{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem;display:flex;align-items:flex-start;gap:2rem}.role-selector{flex:1 1;display:flex;flex-direction:column;gap:.5rem}.role-select{padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:1rem;background:#fff}.role-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px rgba(52,152,219,.1)}.role-description{font-size:.85rem;color:#6c757d;font-style:italic;padding:.5rem;background:#f8f9fa;border-radius:4px}.role-summary{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.role-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem}.role-count{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8f9fa;border-radius:4px}.count{background:#3498db;color:#fff;padding:.25rem .75rem;border-radius:12px;font-weight:600;font-size:.85rem;min-width:24px;text-align:center}.role-section{margin-top:1rem}.role-reveal-button{width:100%;background:none;border:2px solid #dee2e6;border-radius:8px;padding:1rem;cursor:pointer;transition:all .3s ease;font-family:inherit;text-align:left}.role-reveal-button.large{padding:1.5rem;font-size:1.1rem;margin:1rem 0}.role-reveal-button.hidden{background:linear-gradient(135deg,#6c757d,#495057);color:#fff;border-color:#495057}.role-reveal-button.hidden:hover{background:linear-gradient(135deg,#5a6268,#3d4142);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.role-reveal-button.revealed{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-color:#28a745;box-shadow:0 2px 8px rgba(40,167,69,.2)}.role-reveal-button.revealed:hover{background:linear-gradient(135deg,#e9ecef,#dee2e6)}.role-hidden{text-align:center}.hidden-text{display:block;font-size:1rem;font-weight:500;margin-bottom:.5rem}.privacy-note{display:block;font-size:.85rem;opacity:.8;font-style:italic}.role-info{text-align:left}.role-info .role-name{display:block;font-size:1.2rem;font-weight:700;margin-bottom:.5rem;color:#2c3e50}.role-info .role-description{display:block;font-size:.9rem;line-height:1.4;color:#6c757d;margin-top:.5rem}.role-assignment-info{text-align:center;margin:1.5rem 0}.role-assignment-info>p{font-size:1.1rem;margin-bottom:1rem;color:#28a745;font-weight:500}.role-highlight{color:#dc3545;font-size:1.3rem}.role-details{text-align:left;background:#fff;padding:1.5rem;border-radius:8px;margin:1.5rem 0;border:1px solid #dee2e6}.role-details p{margin:.5rem 0;line-height:1.4}.current-phase{background:#fff;border-left:4px solid #27ae60}.current-phase,.role-reminder{padding:1.5rem;border-radius:8px;margin:1.5rem 0;text-align:left}.role-reminder{background:#fff3cd;border-left:4px solid #f39c12}.role-reminder h4{margin:0 0 .5rem;color:#856404}.role-reminder .role-reveal-button{margin-top:.5rem}