html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{min-width:320px;min-height:100vh;margin:0}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.auth-container{background-color:#1a1a1a;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{background-color:#242424;border:1px solid #333;border-radius:12px;width:100%;max-width:400px;padding:2.5rem;box-shadow:0 4px 6px #0000004d}.auth-card h2{color:#fff;text-align:center;margin:0 0 1.5rem;font-size:2rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#aaa;margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.form-group input{color:#fff;box-sizing:border-box;background-color:#1a1a1a;border:1px solid #444;border-radius:6px;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.form-group input:focus{border-color:#646cff;outline:none}.form-group input:disabled{opacity:.6;cursor:not-allowed}.error-message{color:#ff6b6b;background-color:#ff6b6b1a;border:1px solid #ff6b6b;border-radius:6px;margin-bottom:1rem;padding:.75rem;font-size:.9rem}.auth-button{color:#fff;cursor:pointer;background-color:#646cff;border:none;border-radius:6px;width:100%;margin-bottom:1rem;padding:.75rem;font-size:1rem;font-weight:600;transition:background-color .2s}.auth-button:hover:not(:disabled){background-color:#535bf2}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;color:#aaa;margin:0;font-size:.9rem}.link-button{color:#646cff;cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.link-button:hover{color:#535bf2}.game-scheduler-overlay{z-index:1000;padding:env(safe-area-inset-top)env(safe-area-inset-right)env(safe-area-inset-bottom)env(safe-area-inset-left);box-sizing:border-box;background:#000000b3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (min-width:600px){.game-scheduler-overlay{align-items:center;padding:1rem}}.game-scheduler-modal{box-sizing:border-box;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#1e1e1e;border-radius:16px 16px 0 0;width:100%;max-width:900px;max-height:min(92vh,900px);padding:1.25rem;overflow-y:auto;box-shadow:0 10px 40px #00000080}@media (min-width:600px){.game-scheduler-modal{border-radius:12px}}.game-scheduler-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.game-scheduler-header h2{color:#fff;margin:0;font-size:clamp(1.15rem,4vw,1.5rem)}.close-button{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:.35rem;font-size:1.5rem;transition:all .2s;display:flex}.close-button:hover{color:#fff;background:#333}.game-scheduler-content{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (min-width:840px){.game-scheduler-content{grid-template-columns:1fr 1fr;gap:1.5rem 2rem}.game-scheduler-modal{padding:2rem}}.calendar-section,.slots-section{flex-direction:column;gap:1rem;min-width:0;display:flex}.calendar-section h3,.slots-section h3{color:#fff;margin:0 0 .25rem;font-size:1.05rem}.scheduler-calendar-wrap{margin-bottom:.25rem}.scheduler-month-nav{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.scheduler-month-btn{color:#fff;cursor:pointer;background:#2a2a2a;border:1px solid #444;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:1.35rem;line-height:1;display:flex}.scheduler-month-btn:hover{border-color:#646cff}.scheduler-month-label{color:#fff;text-align:center;flex:1;font-size:clamp(.95rem,3vw,1.1rem)}.scheduler-weekday-row{grid-template-columns:repeat(7,1fr);gap:.35rem;margin-bottom:.35rem;display:grid}.scheduler-weekday-cell{text-align:center;color:#888;text-transform:uppercase;letter-spacing:.02em;font-size:.75rem}.scheduler-day-grid{grid-template-columns:repeat(7,1fr);gap:.35rem;display:grid}.scheduler-day-cell{aspect-ratio:1;min-height:40px;max-height:52px}.scheduler-day-btn{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:8px;justify-content:center;align-items:center;width:100%;height:100%;min-height:40px;padding:0;font-size:.95rem;transition:border-color .15s,background .15s;display:flex}.scheduler-day-btn:hover{border-color:#646cff}.scheduler-day-btn.today{border-color:#646cff99}.scheduler-day-btn.selected{background:#646cff40;border-color:#646cff;font-weight:600}.scheduler-day-empty{width:100%;height:100%;display:block}.scheduler-datetime-row{flex-direction:column;gap:1rem;margin-top:.5rem;display:flex}@media (min-width:480px){.scheduler-datetime-row{flex-direction:row;align-items:flex-end}.scheduler-datetime-row .scheduler-field{flex:1;min-width:0}}.scheduler-field{flex-direction:column;gap:.35rem;width:100%;min-width:0;display:flex}.scheduler-field label{color:#aaa;font-size:.9rem}.scheduler-input,.scheduler-textarea,.scheduler-select{color:#fff;box-sizing:border-box;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#2a2a2a;border:1px solid #444;border-radius:8px;width:100%;min-height:44px;padding:.65rem .75rem;font-family:inherit;font-size:1rem}.scheduler-input-time{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;min-height:48px}.scheduler-textarea{resize:vertical;min-height:5rem}.scheduler-field-hint{color:#888;font-size:.8rem;line-height:1.35}.scheduler-checkbox-row{padding:.25rem 0}.scheduler-checkbox-label{cursor:pointer;color:#ddd;align-items:flex-start;gap:.65rem;font-size:.95rem;line-height:1.4;display:flex}.scheduler-checkbox-label input{cursor:pointer;accent-color:#646cff;width:1.25rem;min-width:1.25rem;height:1.25rem;margin-top:.15rem}.game-info-inputs{flex-direction:column;gap:1rem;display:flex}.best-slots-list{flex-direction:column;gap:.75rem;max-height:min(50vh,400px);padding-right:.25rem;display:flex;overflow-y:auto}.best-slot-item{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;background:#2a2a2a;border:2px solid #444;border-radius:8px;padding:1rem;transition:all .2s}.best-slot-item:hover{background:#2f2f2f;border-color:#646cff}.best-slot-item.selected{background:#2f2f3f;border-color:#646cff}.best-slot-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.best-slot-time{color:#fff;font-size:.9rem;font-weight:500;line-height:1.35}.best-slot-count{color:#646cff;flex-shrink:0;font-size:.85rem}.best-slot-players{flex-wrap:wrap;gap:.5rem;display:flex}.player-badge-small{color:#fff;border-radius:4px;padding:.25rem .5rem;font-size:.85rem;font-weight:500}.game-scheduler-actions{border-top:1px solid #333;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.cancel-button,.schedule-button{cursor:pointer;border:none;border-radius:8px;min-width:120px;min-height:44px;padding:.7rem 1.25rem;font-size:1rem;transition:all .2s}.cancel-button{color:#aaa;background:0 0;border:1px solid #555}.cancel-button:hover{color:#fff;background:#333}.schedule-button{color:#fff;background:#646cff}.schedule-button:hover:not(:disabled){background:#535bf2}.schedule-button:disabled{color:#666;cursor:not-allowed;background:#444}.no-slots-message{color:#aaa;text-align:center;padding:1.5rem .5rem;font-size:.95rem;font-style:italic}.game-details-overlay{z-index:1000;box-sizing:border-box;background:#000000b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.game-details-modal{box-sizing:border-box;background:#1f1f1f;border-radius:18px;flex-direction:column;width:min(760px,100%);max-width:760px;max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 20px 48px #00000073}.game-details-header{flex:none;padding:20px 24px 8px;position:relative}.game-details-header h2{color:#fff;box-sizing:border-box;width:100%;max-width:560px;margin:0 auto;font-size:1.5rem;line-height:1.2}.game-details-header .close-button{color:#aaa;cursor:pointer;background:0 0;border:none;font-size:1.8rem;line-height:1;position:absolute;top:14px;right:14px}.game-details-header .close-button:hover{color:#fff}.game-details-content{box-sizing:border-box;flex:auto;min-height:0;padding:12px 24px 24px;overflow-y:auto}.game-title-section,.game-description-section,.game-key-events-section,.game-campaign-section,.game-info-section,.game-participants{box-sizing:border-box;width:100%;max-width:560px;margin-left:auto;margin-right:auto}.game-title-section{margin-bottom:16px}.game-description-section,.game-key-events-section,.game-campaign-section{overflow-wrap:anywhere;word-break:break-word;margin-bottom:16px}.game-info-section{flex-direction:column;gap:.9rem;margin-bottom:20px;display:flex}.game-info-item{flex-direction:column;gap:.25rem;display:flex}.game-info-label{color:#aaa;text-transform:uppercase;letter-spacing:.5px;font-size:.85rem}.game-info-value{color:#fff;font-size:1rem}.game-participants{flex-direction:column;gap:.75rem;margin-bottom:20px;display:flex}.participants-list{flex-wrap:wrap;gap:.5rem;display:flex}.participant-badge{color:#fff;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.9rem;font-weight:500;display:flex}.participant-badge.creator:after{content:"👑";font-size:.85rem}.no-participants{color:#aaa;font-size:.9rem;font-style:italic}.game-details-actions{z-index:1;background:#1f1f1f;border-top:1px solid #ffffff0f;flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px 24px 24px;display:grid;position:relative}.game-action-button,.close-button-game{cursor:pointer;box-sizing:border-box;border-radius:8px;justify-content:center;width:100%;min-width:0;padding:.85rem 1rem;font-size:1rem;font-weight:600;transition:all .2s}.game-action-button{border:none}.join-button{color:#fff;background:#646cff}.join-button:hover{background:#535bf2}.leave-button{color:#fff;background:#ff6b6b}.leave-button:hover{background:#ff5252}.delete-button{color:#fff;background:#ff6b6b}.delete-button:hover{background:#ff5252}.close-button-game{color:#aaa;background:0 0;border:1px solid #555}.close-button-game:hover{color:#fff;background:#333}.game-action-button:disabled{color:#666;cursor:not-allowed;background:#444}.modal-overlay{z-index:1100;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#1e1e1e;border-radius:12px;flex-direction:column;gap:1rem;padding:2rem;display:flex;box-shadow:0 10px 40px #00000080}.modal-content h3{color:#fff;margin-top:0}.modal-content p{color:#ccc}@media (max-height:820px){.game-details-modal{border-radius:14px;max-height:calc(100vh - 16px)}}@media (max-width:700px){.game-details-overlay{padding:8px}.game-details-modal{border-radius:14px;width:100%;max-height:calc(100vh - 16px)}.game-details-header{padding:16px 16px 8px}.game-details-header h2,.game-title-section,.game-description-section,.game-key-events-section,.game-campaign-section,.game-info-section,.game-participants{max-width:100%}.game-details-content{padding:12px 16px 16px}.game-details-actions{grid-template-columns:1fr;padding:12px 16px 16px}}.language-switcher{background-color:#2a2a2a;border-radius:6px;gap:.25rem;padding:.25rem;display:flex}.lang-button{color:#aaa;cursor:pointer;background-color:#0000;border:none;border-radius:4px;padding:.4rem .8rem;font-size:.85rem;font-weight:600;transition:all .2s}.lang-button:hover{color:#fff;background-color:#333}.lang-button.active{color:#fff;background-color:#646cff}.tab-navigation{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-overflow-scrolling:touch;scrollbar-width:thin;background:#1e1e1ecc;border:1px solid #ffffff1a;border-radius:12px;flex-wrap:nowrap;gap:.5rem;margin-bottom:1rem;padding:.5rem;display:flex;overflow-x:auto}.tab-button{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1 0 auto;justify-content:center;align-items:center;gap:.5rem;min-width:3rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:all .3s;display:flex;position:relative;overflow:hidden}.tab-button:before{content:"";opacity:0;background:linear-gradient(135deg,#646cff1a,#646cff0d);transition:opacity .3s;position:absolute;inset:0}.tab-button:hover{color:#fff;background:#646cff1a}.tab-button:hover:before{opacity:1}.tab-button.active{color:#fff;background:linear-gradient(135deg,#646cff,#5a5fd7);box-shadow:0 4px 12px #646cff4d}.tab-button.active:before{opacity:0}.tab-icon{font-size:1.2rem;transition:transform .3s;display:inline-block}.tab-button:hover .tab-icon{transform:scale(1.1)}.tab-button.active .tab-icon{animation:.5s bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.tab-label{font-weight:500}@media (max-width:768px){.tab-button{padding:.5rem 1rem;font-size:.9rem}.tab-label{display:none}.tab-icon{font-size:1.5rem}}.player-tooltip{z-index:10000;pointer-events:none;background:#2a2a2a;border:1px solid #444;border-radius:8px;min-width:150px;max-width:250px;padding:0;position:fixed;box-shadow:0 4px 12px #00000080}.player-tooltip-header{color:#fff;background:#333;border-bottom:1px solid #444;border-radius:8px 8px 0 0;padding:8px 12px;font-size:.85rem;font-weight:600}.player-tooltip-list{max-height:300px;padding:8px;overflow-y:auto}.player-tooltip-item{border-radius:4px;align-items:center;gap:8px;padding:6px 8px;transition:background-color .2s;display:flex}.player-tooltip-item:hover{background:#333}.player-tooltip-color{border-radius:50%;flex-shrink:0;width:12px;height:12px}.player-tooltip-name{color:#ddd;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.player-tooltip-list::-webkit-scrollbar{width:6px}.player-tooltip-list::-webkit-scrollbar-track{background:#1a1a1a;border-radius:3px}.player-tooltip-list::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.player-tooltip-list::-webkit-scrollbar-thumb:hover{background:#666}.calendar-timeline{background-color:#1a1a1a;border-radius:8px;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.calendar-timeline-header{background-color:#242424;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:1rem;display:flex}.nav-button,.today-button{color:#fff;cursor:pointer;background-color:#2a2a2a;border:1px solid #444;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.nav-button:hover,.today-button:hover{background-color:#333;border-color:#646cff}.today-button{background-color:#646cff;border-color:#646cff}.today-button:hover{background-color:#535bf2}.calendar-timeline-container{flex:1;min-height:0;display:flex;overflow:auto}.timeline-hours-column{background-color:#1e1e1e;border-right:1px solid #333;flex-shrink:0;width:80px}.hours-header{color:#aaa;border-bottom:1px solid #333;justify-content:center;align-items:center;height:60px;font-weight:600;display:flex}.hours-list{flex-direction:column;display:flex}.hour-cell{color:#888;border-bottom:1px solid #2a2a2a;justify-content:center;align-items:center;height:40px;font-size:.75rem;display:flex}.timeline-dates-container{flex-direction:column;flex:1;min-width:0;display:flex;overflow-x:auto}.dates-header{z-index:10;background-color:#1e1e1e;border-bottom:1px solid #333;height:60px;display:flex;position:sticky;top:0}.date-header-cell{cursor:pointer;border-right:1px solid #333;flex-direction:column;flex:0 0 160px;justify-content:center;align-items:center;min-width:160px;transition:background-color .2s;display:flex}.date-header-cell:hover{background-color:#2a2a2a}.date-header-day{color:#fff;font-size:1.2rem;font-weight:600}.date-header-weekday{color:#aaa;text-transform:capitalize;font-size:.7rem}.timeline-grid{flex:1;min-width:min-content;display:flex}.date-column{border-right:1px solid #333;flex-direction:column;flex:0 0 160px;min-width:160px;display:flex;position:relative}.time-cell{cursor:pointer;border-bottom:1px solid #2a2a2a;height:40px;transition:background-color .1s,border-color .1s;position:relative;overflow:auto visible}.time-cell:hover{background-color:#646cff1a;border-left:2px solid #646cff}.time-cell-selected{border-left:3px solid #646cff;background-color:#646cff33!important}.time-cell-dragging{border-left:3px solid #646cff;border-right:3px solid #646cff;background-color:#646cff66!important}.availability-indicator{color:#fff;z-index:2;background-color:#00000080;border-radius:3px;padding:2px 4px;font-size:.7rem;font-weight:600;position:absolute;top:2px;right:4px}.player-availability-marker{z-index:1}.timeline-event{cursor:pointer;z-index:5;box-sizing:border-box;background-color:#646cff;border-radius:4px;min-width:50px;padding:4px 8px;transition:transform .2s,box-shadow .2s;position:absolute;overflow:hidden;box-shadow:0 2px 4px #0003}.timeline-event:hover{transform:translateY(-1px);box-shadow:0 4px 8px #0000004d}.event-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.event-description{color:#fffc;-webkit-line-clamp:3;word-wrap:break-word;-webkit-box-orient:vertical;max-height:3.9em;margin-top:2px;font-size:.75rem;line-height:1.3;display:-webkit-box;overflow:hidden}.calendar-timeline-container::-webkit-scrollbar{width:8px;height:8px}.timeline-dates-container::-webkit-scrollbar{width:8px;height:8px}.calendar-timeline-container::-webkit-scrollbar-track{background:#1a1a1a}.timeline-dates-container::-webkit-scrollbar-track{background:#1a1a1a}.calendar-timeline-container::-webkit-scrollbar-thumb{background:#444;border-radius:4px}.timeline-dates-container::-webkit-scrollbar-thumb{background:#444;border-radius:4px}.calendar-timeline-container::-webkit-scrollbar-thumb:hover{background:#555}.timeline-dates-container::-webkit-scrollbar-thumb:hover{background:#555}.best-time-slots{background-color:#242424;border:1px solid #333;border-radius:8px;margin-top:1rem;padding:1.5rem}.best-time-slots h2{color:#fff;margin:0 0 1rem;font-size:1.5rem}.no-slots{color:#888;text-align:center;padding:1rem;font-style:italic}.slots-list{flex-direction:column;gap:.75rem;display:flex}.slot-item{background-color:#1a1a1a;border:1px solid #333;border-radius:6px;padding:1rem;transition:border-color .2s,transform .2s}.slot-item:hover{border-color:#646cff;transform:translate(4px)}.slot-header{align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.slot-rank{color:#646cff;min-width:40px;font-size:1.5rem;font-weight:700}.slot-info{flex:1}.slot-datetime{color:#fff;text-transform:capitalize;margin-bottom:.25rem;font-size:1.1rem;font-weight:600}.slot-duration{color:#646cff;margin-left:.5rem;font-weight:700}.slot-players-count{color:#aaa;font-size:.9rem}.slot-players{flex-wrap:wrap;gap:.5rem;display:flex}.player-badge{color:#fff;border-radius:4px;padding:.4rem .8rem;font-size:.85rem;font-weight:500;box-shadow:0 2px 4px #0003}.upcoming-games-tab{padding:0 .5rem calc(6rem + env(safe-area-inset-bottom,0px));box-sizing:border-box;width:100%;max-width:52rem;margin:0 auto}@media (min-width:640px){.upcoming-games-tab{padding-left:.75rem;padding-right:.75rem}}.upcoming-games-empty{color:#888;text-align:center;padding:2.5rem 1rem;font-size:1.05rem;line-height:1.5}.upcoming-games-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.upcoming-game-card{text-align:left;color:#eee;cursor:pointer;-webkit-tap-highlight-color:transparent;background:linear-gradient(145deg,#26262efa 0%,#1c1c22fc 100%);border:none;border-radius:16px;flex-direction:row;align-items:stretch;gap:0;width:100%;min-height:5.5rem;padding:0;transition:transform .15s,box-shadow .2s,border-color .2s;display:flex;overflow:hidden;box-shadow:0 2px 8px #00000059,0 0 0 1px #ffffff0f}.upcoming-game-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px #0006,0 0 0 1px #646cff40}.upcoming-game-card:focus-visible{outline-offset:2px;outline:2px solid #646cff}.upcoming-game-card-datebox{background:linear-gradient(#646cff38 0%,#5056b41f 100%);border-right:1px solid #ffffff14;flex-direction:column;flex:none;justify-content:center;align-items:center;width:4.5rem;min-width:4.5rem;padding:1rem .5rem;display:flex}.upcoming-game-card-day{color:#fff;letter-spacing:-.02em;font-size:1.75rem;font-weight:700;line-height:1.1}.upcoming-game-card-month{text-transform:lowercase;color:#c8cafff2;margin-top:.2rem;font-size:.75rem;font-weight:600}.upcoming-game-card-body{text-align:left;flex-direction:column;flex:auto;justify-content:center;align-items:flex-start;gap:.35rem;min-width:0;padding:1rem .85rem 1rem 0;display:flex}@media (min-width:480px){.upcoming-game-card-body{gap:.4rem;padding:1.15rem 1rem 1.15rem .25rem}.upcoming-game-card-datebox{width:5rem;min-width:5rem;padding:1.15rem .65rem}.upcoming-game-card-day{font-size:2rem}}.upcoming-game-card-title{color:#fff;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;font-size:1.1rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}@media (min-width:480px){.upcoming-game-card-title{font-size:1.2rem}}.upcoming-game-card-when{color:#b8b8c8;width:100%;font-size:.88rem;line-height:1.45}.upcoming-game-card-campaign{color:#9aa6ff;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.82rem;line-height:1.35;overflow:hidden}.upcoming-game-card-participants{color:#9090a0;margin-top:.15rem;font-size:.88rem}.upcoming-game-card-participants strong{color:#c8c8d8;font-weight:600}.upcoming-game-card-arrow{color:#ffffff40;flex:none;align-self:center;padding:0 .65rem 0 .15rem;font-size:1.5rem;font-weight:300;line-height:1}.upcoming-game-card:hover .upcoming-game-card-arrow{color:#646cffb3}.upcoming-game-card-tags{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.upcoming-game-card-tag{background:#ffffff14;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;line-height:1.2;display:inline-flex}.time-marking-overlay{z-index:1200;padding:env(safe-area-inset-top)env(safe-area-inset-right)env(safe-area-inset-bottom)env(safe-area-inset-left);background:#000000a6;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (min-width:600px){.time-marking-overlay{align-items:center;padding:1rem}}.time-marking-modal{box-sizing:border-box;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#1e1e24;border:1px solid #ffffff1a;border-radius:16px 16px 0 0;width:100%;max-width:32rem;max-height:min(92vh,720px);padding:1rem 1.1rem 1.25rem;overflow:auto}@media (min-width:600px){.time-marking-modal{border-radius:16px}}.time-marking-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.time-marking-header h2{color:#fff;margin:0;font-size:1.15rem}.time-marking-close{color:#aaa;cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;padding:.25rem .5rem;font-size:1.75rem;line-height:1}.time-marking-hint{color:#888;margin:0 0 1rem;font-size:.85rem}.time-marking-subtitle{color:#ccc;margin:0 0 .75rem;font-size:1rem}.time-marking-clear-fieldset{border:1px solid #ffffff1f;border-radius:10px;margin:0 0 1rem;padding:.65rem .75rem .75rem}.time-marking-clear-legend{color:#bbb;padding:0 .35rem;font-size:.85rem}.time-marking-clear-option{color:#ccc;cursor:pointer;align-items:flex-start;gap:.5rem;margin-top:.45rem;font-size:.82rem;display:flex}.time-marking-clear-option input{margin-top:.2rem}.time-marking-moscow-note{color:#7a7a8c;margin:-.25rem 0 .75rem;font-size:.8rem}.time-marking-day-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin-bottom:1rem;display:grid}@media (min-width:380px){.time-marking-day-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}}.time-marking-day-chip{cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;box-sizing:border-box;background:#282830e6;border:1px solid #ffffff26;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-height:3.1rem;padding:.35rem .2rem;font-size:.72rem;display:flex;position:relative}.time-marking-day-chip:hover{border-color:#646cff73}.time-marking-day-chip.selected{background:#646cff33;border-color:#646cff}.time-marking-day-chip input{clip:rect(0,0,0,0);white-space:nowrap;accent-color:#646cff;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.time-marking-day-chip-inner{pointer-events:none;flex-direction:column;align-items:center;gap:.1rem;line-height:1.15;display:flex}.time-marking-day-num{color:#fff;font-size:1rem;font-weight:600}.time-marking-day-meta{color:#9a9aa8;text-transform:capitalize;text-overflow:ellipsis;max-width:100%;font-size:.65rem;overflow:hidden}.time-marking-bulk{margin-bottom:.75rem}.time-marking-day-rows{flex-direction:column;gap:1rem;margin-bottom:1rem;display:flex}.time-marking-day-row{background:#1e1e2499;border:1px solid #ffffff14;border-radius:10px;padding:.75rem}.time-marking-day-row-title{color:#fff;margin-bottom:.5rem;font-weight:600}.time-marking-whole-toggle{color:#ccc;cursor:pointer;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.9rem;display:flex}.time-marking-inputs{flex-wrap:wrap;gap:.75rem;display:flex}.time-marking-inputs label{color:#999;flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.time-marking-inputs input[type=time]{color:#fff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#1a1a1a;border:1px solid #444;border-radius:6px;min-height:44px;padding:.45rem .5rem;font-size:1rem}.time-marking-duration-label{flex:1;min-width:min(100%,7.5rem)}.time-marking-duration-select{color:#fff;box-sizing:border-box;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;cursor:pointer;background:#1a1a1a;border:1px solid #444;border-radius:6px;width:100%;max-width:8rem;min-height:44px;padding:.45rem .6rem;font-family:inherit;font-size:1rem}.time-marking-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.time-marking-btn{cursor:pointer;border:none;border-radius:8px;min-height:44px;padding:.55rem 1rem;font-size:.95rem;font-weight:600}.time-marking-btn.primary{color:#fff;background:linear-gradient(135deg,#646cff,#5a5fd7)}.time-marking-btn.primary:disabled{opacity:.5;cursor:not-allowed}.time-marking-btn.secondary{color:#ccc;background:0 0;border:1px solid #555}.time-marking-error{color:#ffb4b4;background:#ff505026;border-radius:8px;margin-top:.75rem;padding:.6rem .75rem;font-size:.9rem}.profile-tab{width:100%;max-width:980px;margin:0 auto;padding:1rem}.profile-loading{text-align:center;color:#aaa;padding:3rem;font-size:1.1rem}.profile-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1e1e99;border:1px solid #ffffff1a;border-radius:16px;padding:2rem}.profile-header{border-bottom:1px solid #ffffff1a;align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.profile-avatar{color:#fff;border:3px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;font-size:2.5rem;font-weight:700;display:flex;box-shadow:0 4px 12px #0000004d}.profile-title{color:#fff;margin:0;font-size:1.8rem;font-weight:600}.profile-subtitle{color:#b0b0b0;margin:.4rem 0 0}.profile-sections{flex-direction:column;gap:1.5rem;display:flex}.profile-section{background:#14141466;border:1px solid #ffffff0d;border-radius:12px;padding:1.5rem;transition:all .3s}.profile-section:hover{border-color:#646cff4d;box-shadow:0 4px 12px #646cff1a}.section-title{color:#fff;align-items:center;gap:.75rem;margin:0 0 1.5rem;font-size:1.2rem;font-weight:600;display:flex}.profile-fields{flex-direction:column;gap:1.25rem;display:flex}.field-label{color:#aaa;text-transform:uppercase;letter-spacing:.5px;font-size:.9rem;font-weight:500}.field-input{color:#fff;background:#28282899;border:1px solid #ffffff1a;border-radius:8px;padding:.75rem 1rem;font-size:1rem;transition:all .3s}.field-input:focus{background:#282828cc;border-color:#646cff;outline:none;box-shadow:0 0 0 3px #646cff1a}.field-textarea{resize:vertical;min-height:90px;font-family:inherit}.color-picker-wrapper{align-items:center;gap:1rem;display:flex}.field-color-input{cursor:pointer;border:2px solid #fff3;border-radius:8px;width:60px;height:60px}.color-preview{color:#fff;text-align:center;background:#28282899;border:1px solid #ffffff1a;border-radius:8px;flex:1;padding:.75rem 1rem;font-family:monospace}.profile-meta-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.profile-meta-card{color:#fff;background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;flex-direction:column;gap:.4rem;padding:1rem;display:flex}.profile-meta-card small{color:#a8a8a8}@media (max-width:768px){.profile-container{padding:1.5rem}.profile-header{text-align:center;flex-direction:column}.profile-avatar{width:60px;height:60px;font-size:2rem}}.checkbox-tags{flex-wrap:wrap;gap:10px;display:flex}.checkbox-tag{cursor:pointer;background:#ffffff08;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:inline-flex}.checkbox-tag input{margin:0}.timezone-selector{width:100%;position:relative}.timezone-display{cursor:pointer;background-color:#1a1a1a;border:1px solid #333;border-radius:6px;align-items:center;gap:.75rem;padding:.75rem;transition:all .2s;display:flex}.timezone-display:hover{background-color:#242424;border-color:#646cff}.timezone-icon{font-size:1.5rem}.timezone-info{flex:1}.timezone-label{color:#888;margin-bottom:.25rem;font-size:.75rem}.timezone-value{color:#fff;font-size:.9rem;font-weight:500}.timezone-arrow{color:#888;font-size:.75rem}.timezone-dropdown{z-index:1000;background-color:#1a1a1a;border:1px solid #646cff;border-radius:8px;flex-direction:column;max-height:500px;display:flex;position:absolute;top:calc(100% + .5rem);left:0;right:0;box-shadow:0 4px 12px #0000004d}.timezone-dropdown-header{border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:1rem;display:flex}.timezone-dropdown-header h3{color:#fff;margin:0;font-size:1rem}.timezone-close{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:1.5rem;transition:all .2s;display:flex}.timezone-close:hover{color:#fff;background-color:#333}.timezone-search{border-bottom:1px solid #333;padding:1rem}.timezone-search-input{color:#fff;background-color:#242424;border:1px solid #333;border-radius:4px;width:100%;padding:.5rem;font-size:.9rem}.timezone-search-input:focus{border-color:#646cff;outline:none}.timezone-detect-btn{color:#fff;cursor:pointer;background-color:#646cff;border:none;border-radius:4px;width:calc(100% - 2rem);margin:.5rem 1rem;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.timezone-detect-btn:hover{background-color:#535bf2}.timezone-list{flex:1;padding:.5rem;overflow-y:auto}.timezone-section-title{color:#888;text-transform:uppercase;letter-spacing:.05em;padding:.75rem .5rem .5rem;font-size:.75rem;font-weight:600}.timezone-item{cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;padding:.75rem;transition:all .2s;display:flex}.timezone-item:hover{background-color:#242424}.timezone-item.selected{background-color:#646cff33;border:1px solid #646cff}.timezone-item-label{color:#fff;font-size:.9rem}.timezone-check{color:#646cff;font-size:1.2rem;font-weight:700}.timezone-no-results{text-align:center;color:#888;padding:2rem;font-style:italic}.timezone-list::-webkit-scrollbar{width:8px}.timezone-list::-webkit-scrollbar-track{background:#1a1a1a}.timezone-list::-webkit-scrollbar-thumb{background:#333;border-radius:4px}.timezone-list::-webkit-scrollbar-thumb:hover{background:#444}.telegram-notifications-settings{flex-direction:column;gap:1.5rem;display:flex}.telegram-settings-loading,.telegram-settings-error{text-align:center;color:#aaa;padding:1rem}.telegram-settings-error{color:#ff6b6b;background:#ff00001a;border:1px solid #ff00004d;border-radius:8px}.telegram-subscription-status{background:#28282899;border:1px solid #ffffff1a;border-radius:8px;padding:1.25rem}.status-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.status-label{color:#aaa;font-size:.9rem;font-weight:500}.status-value{border-radius:4px;padding:.25rem .75rem;font-weight:600}.status-value.subscribed{color:#4ade80;background:#4ade801a}.status-value.not-subscribed{color:#f87171;background:#f871711a}.link-section{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.btn-get-token,.btn-unlink{color:#fff;cursor:pointer;background:#646cff;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;transition:all .3s}.btn-get-token:hover,.btn-unlink:hover{background:#535bf2;transform:translateY(-1px);box-shadow:0 4px 12px #646cff4d}.btn-unlink{background:#f87171}.btn-unlink:hover{background:#ef4444}.token-display{background:#14141499;border:1px solid #646cff4d;border-radius:8px;padding:1rem}.token-display p{color:#aaa;margin:0 0 .75rem;font-size:.9rem}.token-code{color:#646cff;word-break:break-all;background:#0000004d;border-radius:6px;margin-bottom:.75rem;padding:.75rem;font-family:monospace;display:block}.btn-copy-token{color:#646cff;cursor:pointer;background:#646cff33;border:1px solid #646cff4d;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;transition:all .3s}.btn-copy-token:hover{background:#646cff4d}.notification-settings-grid{flex-direction:column;gap:1.5rem;display:flex}.setting-group{background:#28282866;border:1px solid #ffffff0d;border-radius:8px;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.setting-label{color:#fff;align-items:center;gap:.5rem;font-size:.95rem;font-weight:500;display:flex}.radio-group{flex-direction:column;gap:.5rem;margin-left:1.5rem;display:flex}.radio-group label{color:#ccc;cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.radio-group input[type=radio]{cursor:pointer}.reminders-group{gap:1rem}.reminders-list{flex-direction:column;gap:.75rem;margin-left:1.5rem;display:flex}.reminder-item{background:#14141499;border:1px solid #ffffff0d;border-radius:6px;align-items:center;gap:.75rem;padding:.75rem;display:flex}.reminder-input-group{flex:1;align-items:center;gap:.5rem;display:flex}.reminder-input{color:#fff;background:#0000004d;border:1px solid #ffffff1a;border-radius:6px;flex:1;min-width:80px;padding:.5rem .75rem;font-size:.9rem}.reminder-input:focus{border-color:#646cff;outline:none}.reminder-unit-select{color:#fff;cursor:pointer;background:#0000004d;border:1px solid #ffffff1a;border-radius:6px;min-width:100px;padding:.5rem .75rem;font-size:.9rem}.reminder-unit-select:focus{border-color:#646cff;outline:none}.reminder-toggle{color:#ccc;cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.btn-remove-reminder{color:#f87171;cursor:pointer;background:#f8717133;border:1px solid #f871714d;border-radius:4px;padding:.25rem .5rem;font-size:.9rem;transition:all .3s}.btn-remove-reminder:hover{background:#f871714d}.btn-add-reminder{color:#646cff;cursor:pointer;background:#646cff33;border:1px solid #646cff4d;border-radius:6px;margin-left:1.5rem;padding:.5rem 1rem;font-size:.9rem;transition:all .3s}.btn-add-reminder:hover{background:#646cff4d}.datetime-input{color:#fff;background:#0000004d;border:1px solid #ffffff1a;border-radius:6px;margin-top:.5rem;padding:.5rem .75rem;font-size:.9rem}.datetime-input:focus{border-color:#646cff;outline:none}.settings-actions{border-top:1px solid #ffffff1a;justify-content:flex-end;padding-top:1rem;display:flex}.btn-save{color:#fff;cursor:pointer;background:#646cff;border:none;border-radius:8px;padding:.75rem 2rem;font-size:1rem;font-weight:500;transition:all .3s}.btn-save:hover:not(:disabled){background:#535bf2;transform:translateY(-1px);box-shadow:0 4px 12px #646cff4d}.btn-save:disabled{opacity:.6;cursor:not-allowed}.cron-selector{background:#14141499;border:1px solid #ffffff0d;border-radius:6px;flex-direction:column;gap:.75rem;margin-top:.75rem;padding:.75rem;display:flex}.cron-row{align-items:center;gap:.75rem;display:flex}.cron-label{color:#ccc;min-width:120px;font-size:.9rem}.cron-select,.cron-input{color:#fff;background:#0000004d;border:1px solid #ffffff1a;border-radius:6px;padding:.5rem .75rem;font-size:.9rem}.cron-select:focus,.cron-input:focus{border-color:#646cff;outline:none}.cron-input{width:80px}.time-inputs{align-items:center;gap:.5rem;display:flex}.time-input{width:60px}.time-separator{color:#ccc;font-size:.9rem}@media (max-width:768px){.reminder-item{flex-direction:column;align-items:stretch}.btn-remove-reminder{align-self:flex-end}.cron-row{flex-direction:column;align-items:stretch}.cron-label{min-width:auto}}.campaign-list{max-width:1200px;margin:0 auto;padding:1rem}.campaign-list-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.campaign-list-header h2{color:#fff;margin:0;font-size:1.8rem}.create-campaign-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#646cff,#5a5fd7);border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s;box-shadow:0 4px 12px #646cff4d}.create-campaign-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #646cff66}.campaign-loading,.campaign-error{text-align:center;color:#aaa;padding:3rem;font-size:1.1rem}.campaign-error{color:#ff6b6b}.no-campaigns{text-align:center;background:#1e1e1e99;border:1px solid #ffffff1a;border-radius:16px;padding:4rem 2rem}.no-campaigns p{color:#aaa;margin-bottom:1.5rem;font-size:1.2rem}.create-first-campaign-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#646cff,#5a5fd7);border:none;border-radius:8px;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .3s}.create-first-campaign-btn:hover{transform:scale(1.05)}.campaigns-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;display:grid}.campaign-card{cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1e1e99;border:1px solid #ffffff1a;border-radius:16px;padding:1.5rem;transition:all .3s}.campaign-card:hover{border-color:#646cff80;transform:translateY(-4px);box-shadow:0 8px 24px #646cff33}.campaign-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.campaign-card-header h3{color:#fff;flex:1;margin:0;font-size:1.3rem}.campaign-status{color:#aaa;white-space:nowrap;font-size:.9rem}.campaign-description{color:#ccc;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0 0 1rem;font-size:.95rem;line-height:1.5;display:-webkit-box;overflow:hidden}.campaign-stats{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.stat{justify-content:space-between;font-size:.9rem;display:flex}.stat-label{color:#aaa}.stat-value{color:#fff;font-weight:600}.progress-bar{background:#ffffff1a;border-radius:4px;height:8px;margin-bottom:1rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#646cff,#5a5fd7);height:100%;transition:width .3s}.campaign-creator{color:#888;border-top:1px solid #ffffff1a;margin-top:.5rem;padding-top:.5rem;font-size:.85rem}@media (max-width:768px){.campaigns-grid{grid-template-columns:1fr}.campaign-list-header{flex-direction:column;align-items:stretch;gap:1rem}.create-campaign-btn{width:100%}}.campaign-details{max-width:1000px;margin:0 auto;padding:1rem}.back-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;margin-bottom:1.5rem;padding:.5rem 1rem;font-size:.95rem;transition:all .3s}.back-btn:hover{background:#ffffff26;transform:translate(-4px)}.loading,.error{text-align:center;color:#aaa;padding:3rem;font-size:1.1rem}.error{color:#ff6b6b}.campaign-header{background:#1e1e1e99;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:2rem;padding:2rem}.campaign-title-section{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.campaign-title-section h1{color:#fff;flex:1;margin:0;font-size:2rem}.campaign-status-badge{border-top:1px solid #ffffff1a;margin-top:1.5rem;padding:1.5rem 1rem .5rem}.meta-item{gap:.5rem;display:flex}.meta-label{color:#888}.meta-value{color:#fff;font-weight:600}.milestones-section,.players-section,.history-section{background:#1e1e1e99;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:2rem;padding:2rem}.milestones-section h2,.players-section h2,.history-section h2{color:#fff;margin:0 0 1.5rem;font-size:1.5rem}.milestone-details{flex-direction:column;gap:1rem;display:flex}.milestone-details p{color:#ccc;margin:0}.progress-bar-large{background:#ffffff1a;border-radius:12px;height:24px;overflow:hidden}.progress-bar-large .progress-fill{background:linear-gradient(90deg,#646cff,#5a5fd7);height:100%;transition:width .5s}.progress-percentage{text-align:center;color:#fff;font-size:1.2rem;font-weight:600}.players-list{grid-template-columns:repeat(auto-fill,minmax(500px,1fr));gap:1rem;display:grid}.player-card{background:#28282899;border:1px solid #ffffff1a;border-radius:12px;padding:1rem}.player-name{color:#fff;margin-bottom:.5rem;font-weight:600}.character-info{color:#ccc;margin-bottom:.5rem}.player-joined{color:#888;margin-bottom:.5rem;font-size:.85rem}.character-notes{color:#aaa;border-top:1px solid #ffffff1a;margin-top:.5rem;padding-top:.5rem;font-size:.9rem;font-style:italic}.no-games{text-align:center;color:#888;padding:2rem}.games-timeline{flex-direction:column;gap:1.5rem;display:flex}.game-entry{background:#28282899;border-left:4px solid;border-radius:12px;padding:1.5rem;transition:all .3s}.game-entry.held{border-left-color:#4ade80}.game-entry.upcoming{opacity:.7;border-left-color:#646cff}.game-entry:hover{background:#282828cc;transform:translate(4px)}.game-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.session-number{color:#fff;font-size:.95rem;font-weight:600}.game-date{color:#888;font-size:.9rem}.game-title{color:#fff;margin:0 0 1rem;font-size:1.2rem}.key-events{color:#ccc;line-height:1.6}.key-events ul{margin:.5rem 0;padding-left:1.5rem}.key-events li{margin:.25rem 0}.upcoming-note{color:#888;margin:0;font-style:italic}@media (max-width:768px){.campaign-title-section{flex-direction:column}.campaign-meta{flex-direction:column;gap:.5rem}.players-list{grid-template-columns:1fr}.game-entry{padding:1rem}}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#1a1a1a;border:1px solid #ffffff1a;border-radius:16px;width:90%;max-width:500px;max-height:90vh;padding:2rem;overflow-y:auto;box-shadow:0 20px 60px #00000080}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h2{color:#fff;margin:0;font-size:1.5rem}.modal-close{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:2rem;transition:all .2s;display:flex}.modal-close:hover{color:#fff;background:#ffffff1a}.campaign-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:#ccc;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;display:flex}.label-hint{color:#888;font-size:.85rem;font-weight:400}.form-group input,.form-group textarea{color:#fff;background:#28282899;border:1px solid #ffffff1a;border-radius:8px;padding:.75rem;font-family:inherit;font-size:1rem;transition:all .3s}.form-group input:focus,.form-group textarea:focus{background:#282828cc;border-color:#646cff;outline:none;box-shadow:0 0 0 3px #646cff1a}.form-group input.error,.form-group textarea.error{border-color:#ff6b6b}.form-group textarea{resize:vertical;min-height:80px}.field-hint{color:#888;font-size:.85rem}.error-message{color:#ff6b6b;font-size:.85rem}.submit-error{color:#ff6b6b;background:#ff6b6b1a;border:1px solid #ff6b6b4d;border-radius:8px;padding:.75rem;font-size:.9rem}.modal-actions{gap:1rem;margin-top:.5rem;display:flex}.btn-secondary,.btn-primary{cursor:pointer;border:none;border-radius:8px;flex:1;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s}.btn-secondary{color:#fff;background:#ffffff1a}.btn-secondary:hover:not(:disabled){background:#ffffff26}.btn-primary{color:#fff;background:linear-gradient(135deg,#646cff,#5a5fd7);box-shadow:0 4px 12px #646cff4d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #646cff66}.btn-secondary:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed}@media (max-width:768px){.modal-content{width:95%;padding:1.5rem}.modal-actions{flex-direction:column}}.campaign-tab{width:100%;height:100%;overflow-y:auto}.admin-panel{color:#fff;padding:2rem}.admin-header{margin-bottom:2rem}.admin-header h2{color:#fff;margin:0;font-size:2rem}.admin-loading{text-align:center;color:#aaa;padding:3rem}.admin-error{color:#ff6b6b;background-color:#ff6b6b1a;border:1px solid #ff6b6b;border-radius:6px;margin-bottom:1.5rem;padding:.75rem;font-size:.9rem}.admin-user-list{background-color:#242424;border:1px solid #333;border-radius:12px;padding:1.5rem;overflow-x:auto}.admin-search{margin-bottom:1.5rem}.admin-search input,.admin-input,.admin-select{color:#fff;box-sizing:border-box;background-color:#1a1a1a;border:1px solid #444;border-radius:6px;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid #333;padding:1rem}.admin-table th{color:#aaa;text-transform:uppercase;font-size:.9rem;font-weight:600}.admin-table td{color:#fff}.admin-table tr:hover{background-color:#646cff0d}.admin-actions{flex-wrap:wrap;gap:.5rem;display:flex}.admin-button{cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.admin-button-primary{color:#fff;background-color:#646cff}.admin-button-secondary{color:#fff;background-color:#3b3f56}.admin-button-danger{color:#fff;background-color:#ff6b6b}.admin-button:disabled{opacity:.5;cursor:not-allowed}.admin-badge{border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.admin-badge-admin{color:#646cff;background-color:#646cff33}.admin-badge-telegram{color:#66d2ff;background-color:#08c3}.admin-tag-editor{flex-direction:column;gap:.5rem;min-width:230px;display:flex}.admin-input-small{max-width:90px}.admin-modal-overlay{z-index:1000;background-color:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background-color:#242424;border:1px solid #333;border-radius:12px;width:90%;max-width:500px;padding:2rem;box-shadow:0 4px 6px #0000004d}.admin-modal h3{color:#fff;margin:0 0 1.5rem}.admin-modal-message{color:#aaa;margin-bottom:1.5rem;line-height:1.6}.admin-modal-actions{justify-content:flex-end;gap:1rem;display:flex}.admin-modal-actions button{cursor:pointer;border:none;border-radius:6px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600}.admin-password-display{text-align:center;color:#646cff;word-break:break-all;background-color:#1a1a1a;border:1px solid #444;border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;padding:1rem;font-family:monospace;font-size:1.2rem;display:flex}.admin-copy-button{color:#646cff;cursor:pointer;background-color:#0000;border:1px solid #646cff;border-radius:6px;padding:.5rem 1rem;font-size:.85rem}.admin-success-message{color:#4caf50;background-color:#4caf501a;border:1px solid #4caf50;border-radius:6px;margin:1rem 0;padding:.75rem}#root{width:100%;min-height:100vh;margin:0;padding:0}.app-container{box-sizing:border-box;background-color:#1a1a1a;flex-direction:column;width:100%;min-height:100vh;padding:1rem;display:flex}.player-profile{background-color:#242424;border:1px solid #333;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.player-profile h2{color:#fff;margin:0 0 1rem;font-size:1.5rem}.profile-info{flex-direction:column;gap:1rem;display:flex}.profile-field{flex-direction:column;gap:.5rem;display:flex}.profile-field label{color:#aaa;font-size:.9rem;font-weight:500}.profile-input{color:#fff;background-color:#1a1a1a;border:1px solid #444;border-radius:6px;padding:.5rem;font-family:inherit;font-size:1rem}.profile-input:focus{border-color:#646cff;outline:none}.profile-color-input{cursor:pointer;background-color:#1a1a1a;border:1px solid #444;border-radius:6px;width:100%;height:40px}.app-header{text-align:center;margin-bottom:1rem;padding-bottom:.5rem}.app-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;width:100%;display:flex}.app-header-titles{text-align:center;flex:1;min-width:min(100%,12rem)}@media (min-width:640px){.app-header-titles{text-align:left}}.app-header-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem .75rem;width:100%;display:flex}@media (min-width:640px){.app-header-actions{justify-content:flex-end;width:auto}}.app-header-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:6px;min-height:44px;padding:.5rem .85rem;font-size:.9rem;font-weight:600}.app-header-btn-primary{color:#fff;background:linear-gradient(135deg,#646cff,#5a5fd7);border:none;box-shadow:0 2px 8px #646cff4d}.app-header-btn-ghost{color:#fff;background:0 0;border:1px solid #555}.app-header-user{color:#aaa;font-size:.9rem}.app-error-banner{color:#fff;background-color:#ff6b6b;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem;font-size:.9rem;display:flex}.app-error-dismiss{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff;border-radius:4px;min-width:36px;min-height:36px;padding:.25rem .5rem}.app-home-bottom-actions{z-index:900;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom,0px));box-sizing:border-box;background:linear-gradient(#1a1a1ae0,#1a1a1afa);border-top:1px solid #ffffff14;justify-content:center;gap:.5rem;max-width:100vw;display:flex;position:fixed;bottom:0;left:0;right:0}.app-home-bottom-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:10px;flex:1;max-width:12rem;min-height:48px;padding:.65rem .75rem;font-size:.9rem;font-weight:600}.app-home-bottom-btn.primary{color:#fff;background:linear-gradient(135deg,#646cff,#5a5fd7)}.app-home-bottom-btn.secondary{color:#eee;background:#3c3c46f2;border:1px solid #ffffff1f}.app-header h1{color:#fff;text-shadow:2px 2px 4px #0000004d;margin:0 0 .25rem;font-size:1.8rem}.app-subtitle{color:#aaa;margin:0;font-size:.9rem}.app-content{flex-direction:column;flex:1;gap:1rem;min-height:0;display:flex}.calendar-tab{flex-direction:column;flex:1;min-height:0;display:flex}.calendar-content{border-radius:8px;flex:1;overflow:hidden;box-shadow:0 4px 6px #0000004d}.best-slots-section{margin-top:1rem}
