.dialog-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-lg) var(--space-md);background:var(--color-scrim)}.dialog{display:flex;flex-direction:column;width:100%;max-width:420px;max-height:100%;padding:var(--space-lg) var(--space-md) var(--space-sm);border-radius:28px;background:var(--color-surface);box-shadow:0 8px 24px #00000047}.dialog__title{margin:0 0 var(--space-md);padding:0 var(--space-sm);font-size:var(--text-bigger);font-weight:600}.dialog__body{padding:0 var(--space-sm);white-space:pre-line}.dialog__body--scroll{overflow-y:auto;min-height:0;padding-inline:0}.dialog__actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-sm);padding-top:var(--space-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--touch-target);padding:0 var(--space-md);border:none;border-radius:var(--radius-lg);background:var(--color-primary);color:#fff;font-size:var(--text-normal);font-weight:500;cursor:pointer;transition:background-color .12s ease,opacity .12s ease;-webkit-tap-highlight-color:transparent}.btn:hover:not(:disabled){background:var(--color-primary-dark)}.btn:disabled{opacity:.38;cursor:default}.btn--outlined{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.btn--outlined:hover:not(:disabled){background:#1976d214}.btn--text{background:transparent;color:var(--color-primary);padding:0 var(--space-sm)}.btn--text:hover:not(:disabled){background:#1976d214}.btn--small{min-height:40px;padding:0 var(--space-sm);font-size:var(--text-small)}.btn--full{width:100%}.terms__body{padding:0 var(--space-md);white-space:pre-line;line-height:1.9}.dialog-list__item{display:block;width:100%;min-height:var(--touch-target);padding:var(--space-sm) var(--space-md);border:none;background:transparent;text-align:start;font-size:var(--text-normal);cursor:pointer}.dialog-list__item:hover{background:var(--color-surface-variant)}.dialog-list__check{display:flex;align-items:center;gap:var(--space-sm);min-height:var(--touch-target);padding:0 var(--space-md);cursor:pointer}.dialog-list__check input{width:20px;height:20px;accent-color:var(--color-primary)}.dialog-list__note{padding:var(--space-sm) var(--space-md) 0;font-size:var(--text-small);color:var(--color-text-secondary)}.dialog-input__label{padding-bottom:var(--space-md)}.dialog-input__field{width:100%;min-height:var(--touch-target);padding:0 var(--space-sm);border:1px solid var(--color-divider);border-radius:var(--radius-sm);background:var(--color-surface)}.dialog-input__field:focus{border-color:var(--color-primary);outline:none}.dialog-input__error{padding-top:var(--space-xs);font-size:var(--text-small);color:var(--color-side-mafia)}.toast{position:fixed;z-index:200;inset-inline:0;bottom:calc(64px + env(safe-area-inset-bottom));margin-inline:auto;width:fit-content;max-width:min(90vw,480px);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);background:#000000d9;color:#fff;font-size:var(--text-small);text-align:center;pointer-events:none;animation:toast-in .14s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.shell{display:flex;flex-direction:column;height:100%;padding-inline:env(safe-area-inset-left) env(safe-area-inset-right)}.shell__header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:var(--space-sm);min-height:var(--header-height);padding:env(safe-area-inset-top) var(--space-md) 0;background:var(--color-primary);color:#fff}.shell__back{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-inline-start:calc(-1 * var(--space-sm));border:none;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.shell__back svg{transform:scaleX(-1)}.shell__back:hover{background:#ffffff1f}.shell__title{flex:1;font-size:var(--text-bigger);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell__end{display:flex;align-items:center;gap:var(--space-sm)}.shell__content{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.player-row{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs);border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent}.player-row:hover{background:var(--color-surface-variant)}.player-row__check{flex:1;display:flex;align-items:center;gap:var(--space-sm);min-height:var(--touch-target);margin-inline-end:var(--space-xs);cursor:pointer;user-select:none}.player-row__check input{width:20px;height:20px;accent-color:var(--color-primary);flex:none}.player-row__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-row__phone{margin-inline-end:var(--space-xs);color:var(--color-text-secondary);font-size:12px}.player-row__icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;padding:8px;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer}.player-row__icon:hover{background:var(--color-divider)}.field{position:relative;display:block;padding-top:var(--space-sm)}.field__input{width:100%;min-height:var(--touch-target);padding:0 var(--space-sm);border:1px solid var(--color-divider);border-radius:var(--radius-sm);background:transparent}.field__input:focus{border-color:var(--color-primary);border-width:2px;outline:none}.field__label{position:absolute;inset-inline-start:var(--space-sm);top:calc(var(--space-sm) + 12px);padding:0 var(--space-xs);background:var(--color-surface);color:var(--color-text-secondary);pointer-events:none;transition:top .12s ease,font-size .12s ease,color .12s ease}.field__input:focus+.field__label,.field__input:not(:placeholder-shown)+.field__label{top:0;font-size:var(--text-small)}.field__input:focus+.field__label{color:var(--color-primary)}.field--error .field__input{border-color:var(--color-side-mafia)}.field--error .field__label{color:var(--color-side-mafia)}.field__error{padding:var(--space-xs) var(--space-sm) 0;font-size:var(--text-small);color:var(--color-side-mafia)}.player-form{display:flex;flex-direction:column;gap:var(--space-sm)}.players{display:flex;flex-direction:column;height:100%;min-height:0;padding:var(--space-md)}.players__count{margin-bottom:var(--space-sm);text-align:center;font-size:var(--text-bigger);color:var(--color-text-primary)}.players__empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--text-bigger);font-style:italic;color:var(--color-text-primary)}.players__list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.players__actions{display:flex;gap:var(--space-sm);margin-top:var(--space-xs)}.players__actions>.btn{flex:1 1 0;min-width:0}.players__actions--secondary{margin-top:var(--space-sm)}.choice{display:flex;align-items:center;gap:var(--space-sm);min-height:var(--touch-target);cursor:pointer}.choice__input{width:20px;height:20px;margin:0;accent-color:var(--color-primary);flex:none}.choice__input:disabled+.choice__label{color:var(--color-text-secondary)}.choice__label{font-size:var(--text-normal)}.scenarios{display:flex;flex-direction:column;height:100%;min-height:0;padding:var(--space-md)}.scenarios__count{margin-bottom:var(--space-sm);text-align:center;font-size:var(--text-bigger);color:var(--color-text-primary)}.scenarios__list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.scenarios__header{display:flex;align-items:center;gap:var(--space-sm);padding-top:var(--space-sm);padding-bottom:var(--space-xs)}.scenarios__header-title{flex:1;min-width:0;font-size:var(--text-bigger);font-weight:700;color:var(--color-text-primary)}.scenarios__delete{flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer}.scenarios__delete:hover,.scenarios__delete:focus-visible{background:var(--color-divider)}.scenarios__option{padding:var(--space-xs) var(--space-sm)}.scenarios__continue{margin-top:var(--space-sm)}.role-group{padding-top:var(--space-md);padding-bottom:var(--space-sm)}.role-group__title{margin:0 0 var(--space-sm);font-size:var(--text-bigger);font-weight:700}.role-group__divider{height:2px;margin-bottom:var(--space-sm)}.role-group__empty{margin:0;color:var(--color-text-secondary);opacity:.6}.role-row{display:flex;align-items:center;padding-top:var(--space-xs);padding-bottom:var(--space-xs)}.role-row__name{flex:1;min-width:0;padding-inline:8px;font-size:16px;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-row__arrow{flex:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:none;color:var(--color-text-secondary);cursor:pointer}.role-row__arrow:hover,.role-row__arrow:focus-visible{background:var(--color-divider)}.roles{display:flex;flex-direction:column;height:100%;min-height:0;padding:var(--space-md)}.roles__list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.roles__actions{display:flex;gap:var(--space-sm)}.roles__actions>.btn{flex:1 1 0;min-width:0}.roles__actions--secondary{margin-top:var(--space-sm)}.roles__actions--primary{margin-top:var(--space-xs)}.result{padding:var(--space-md)}.result__code{margin:0 0 var(--space-md);font-size:var(--text-bigger);font-weight:600;text-align:center}.result__groups{margin-bottom:var(--space-lg)}.result-group{padding-top:var(--space-md);padding-bottom:var(--space-sm)}.result-group__title{margin:0 0 var(--space-sm);font-size:var(--text-bigger);font-weight:700}.result-group__divider{height:2px;margin-bottom:var(--space-sm)}.result-group__empty{margin:0;color:var(--color-text-secondary);opacity:.6}.result-group__rows{list-style:none;margin:0;padding:0}.result-row{display:flex;align-items:center;gap:var(--space-sm);padding-top:var(--space-xs);padding-bottom:var(--space-xs)}.result-row__role{font-size:16px;color:var(--color-text-primary);font-weight:500}.result-row__arrow{color:var(--color-text-secondary);font-size:14px}.result-row__player{font-size:16px;color:var(--color-text-primary)}.result__actions{display:flex;flex-direction:column;gap:var(--space-sm)}.tv{--tv-row-h: var(--row-height);display:flex;align-items:flex-start;border:1px solid var(--color-divider);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.tv__fixed{flex:0 0 auto}.tv__scroll{flex:1 1 auto;min-width:0}.tv__scroll-header,.tv__scroll-body{overflow-x:auto;scrollbar-width:none}.tv__scroll-header::-webkit-scrollbar,.tv__scroll-body::-webkit-scrollbar{display:none}.tv__row{display:flex;align-items:stretch;min-height:var(--tv-row-h)}.tv__row--header{min-height:var(--tv-row-h);background:var(--manage-header-bg)}.tv__row--mafia{background:var(--row-bg-mafia)}.tv__row--city{background:var(--row-bg-city)}.tv__row--independent{background:var(--row-bg-independent)}.tv__cell{display:flex;align-items:center;justify-content:center;padding:var(--space-xs);font-size:var(--text-small);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-inline-start:1px solid var(--color-divider);color:var(--color-text-primary)}.tv__row--header .tv__cell{font-weight:700;font-size:var(--text-normal);border-inline-start-color:transparent}.tv__cell--lives{flex:0 0 var(--col-lives-width);width:var(--col-lives-width);border-inline-start:none}.tv__cell--role{flex:0 0 var(--col-role-width);width:var(--col-role-width)}.tv__cell--name{flex:0 0 var(--col-name-width);width:var(--col-name-width)}.tv__cell--extra{flex:0 0 var(--cell-width);width:var(--cell-width)}.tv__cell--dead{text-decoration:line-through;opacity:.7}.tv__life{background:none;border:none;cursor:pointer;font-size:18px;line-height:1}.tv__head{gap:var(--space-xs)}.tv__head--pending{color:var(--color-primary)}.tv__head-label{flex:1;min-width:0;background:none;border:none;cursor:pointer;font:inherit;font-weight:700;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tv__head-delete{flex:0 0 auto;background:none;border:none;cursor:pointer;color:var(--color-side-mafia);font-size:var(--text-small);padding:0 2px}.tv__cell--confirmed{background:transparent}.tv__cell--active{background:var(--cell-bg-active);color:#000}.tv__cell--inactive{background:var(--cell-bg-inactive);color:var(--cell-text-inactive)}.tv__cell--clickable{cursor:pointer}.manage{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-lg)}.manage__switch{display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.manage__switch-label{font-size:var(--text-normal);color:var(--color-text-primary)}.manage__toggle{position:relative;display:inline-block;width:50px;height:26px;cursor:pointer}.manage__toggle input{opacity:0;width:0;height:0}.manage__toggle-track{position:absolute;inset:0;background:var(--color-divider);border-radius:13px;transition:background .2s}.manage__toggle input:checked+.manage__toggle-track{background:var(--color-primary)}.manage__toggle-track:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s}.manage__toggle input:checked+.manage__toggle-track:before{transform:translate(24px)}.manage__awake{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg)}.manage__timer{width:180px;height:180px;border-radius:50%;border:3px solid var(--color-primary);background:none;color:var(--color-primary);font-size:30px;font-weight:500;cursor:pointer;transition:transform .1s}.manage__timer:active{transform:scale(.98)}.manage__tools{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-sm)}.manage__asleep{display:flex;flex-direction:column;gap:var(--space-md)}.manage__add{display:flex;gap:var(--space-sm)}:root{--color-primary: #1976d2;--color-primary-dark: #1565c0;--color-accent: #ff4081;--color-side-mafia: #cc0000;--color-side-city: #009900;--color-side-independent: #ff8800;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--text-normal: 16px;--text-bigger: 18px;--text-small: 13px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--touch-target: 48px;--header-height: 56px;--row-height: 52px;--cell-width: 90px;--col-lives-width: 50px;--col-role-width: 80px;--col-name-width: 90px;--color-background: #ffffff;--color-surface: #ffffff;--color-surface-variant: #f5f5f5;--color-text-primary: #212121;--color-text-secondary: #757575;--color-divider: #e0e0e0;--color-scrim: rgba(0, 0, 0, .45);--row-bg-mafia: #ffcdd2;--row-bg-city: #bbdefb;--row-bg-independent: #ffe0b2;--cell-bg-mafia: #ffe3e5;--cell-bg-city: #d2e6fa;--cell-bg-independent: #fff3e0;--cell-bg-unconfirmed: #eceff1;--cell-bg-active: #8bbbe9;--cell-bg-inactive: #000000;--cell-text-inactive: #000000;--manage-header-bg: #e0e0e0;--table-header-bg: #37474f;--table-border: #b0bec5;--table-border-outer: #546e7a;--table-text: #212121;--table-row-mafia: #ffcdd2;--table-row-city: #bbdefb;--table-row-independent: #ffe0b2}:root[data-theme=dark]{--color-background: #121212;--color-surface: #1e1e1e;--color-surface-variant: #2a2a2a;--color-text-primary: #ececec;--color-text-secondary: #a0a0a0;--color-divider: #3a3a3a;--color-scrim: rgba(0, 0, 0, .65);--row-bg-mafia: #4a1010;--row-bg-city: #0d2a3a;--row-bg-independent: #3a2800;--cell-bg-mafia: #5c1a1a;--cell-bg-city: #0d2d4a;--cell-bg-independent: #3a2800;--cell-bg-unconfirmed: #263238;--cell-bg-active: #1e4a6b;--cell-bg-inactive: #111111;--cell-text-inactive: #111111;--manage-header-bg: #2c2c2c}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-background);color:var(--color-text-primary);font-family:Vazirmatn,IRANSans,Segoe UI,Tahoma,system-ui,sans-serif;font-size:var(--text-normal);line-height:1.6;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}body{overflow-x:hidden}h1,h2,h3,p{margin:0}button,input,textarea,select{font:inherit;color:inherit}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.screen-placeholder{padding:var(--space-md);color:var(--color-text-secondary)}
