/* Дополнения к базовому стилю ОСК для серверной версии */
#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--navy-deep);color:#fff;border-radius:8px;padding:12px 18px;box-shadow:0 4px 20px #b7c5d1;z-index:60;font-size:14px;max-width:calc(100% - 32px);transition:.2s}
#toast.shown{opacity:1;transform:translate(-50%,0)}#toast.bad{background:var(--red)}#toast.good{background:var(--green)}
dialog.wide{max-width:980px}
.conn{display:inline-block;width:9px;height:9px;border-radius:50%;background:#aab8c5;flex:none}.conn.ok{background:#2c9a6f}.conn.bad{background:var(--red);animation:blink 1s infinite}
@keyframes blink{50%{opacity:.3}}
.timer-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #c5dddb;background:#e7f1f0;border-radius:8px;padding:4px 12px;line-height:1.15;min-width:84px}
.timer-chip .tl{font-size:10px;color:var(--teal);white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.timer-chip .tv{font-size:20px;color:var(--navy);font-variant-numeric:tabular-nums}
.timer-chip.ending{background:#fff4f4;border-color:#e8c9cd}.timer-chip.ending .tv{color:var(--red)}
.phase-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--navy-deep);color:#fff;border-radius:12px;padding:16px 20px;margin-bottom:20px}
.phase-banner .eyebrow{color:#a5cadf;margin-bottom:4px}.phase-banner h2{margin:0;font-size:20px}.phase-banner p{margin:4px 0 0;color:#cfdde9;font-size:13px}
.wait-card{text-align:center;padding:34px 24px}.wait-card .big{font-size:40px;line-height:1;margin-bottom:10px}
/* Платные сведения */
.fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.fact{border:1px solid var(--line);border-radius:10px;padding:16px;background:#fafcfd;position:relative}
.fact.locked{background:repeating-linear-gradient(135deg,#f7f9fb,#f7f9fb 10px,#f1f5f8 10px,#f1f5f8 20px)}
.fact.granted{background:#fff;border-color:#a9c7d9}.fact.pending{border-color:#ead8b5;background:var(--amber-bg)}.fact.declined{border-color:#e8c9cd}
.fact h3{font-size:14px;margin:0 0 8px;display:flex;gap:8px;align-items:center}.fact h3 .lock{font-size:15px}
.fact p{font-size:14px}.fact .price{font-size:12px;color:var(--muted);margin-bottom:10px}
.pay-row{display:flex;gap:6px;flex-wrap:wrap}.pay-row .btn{font-size:12px;min-height:34px;padding:6px 10px}
.fact .meta{font-size:11px;color:var(--muted);margin-top:10px}
.info-policy{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.info-policy b{color:var(--navy)}
/* Вводные ведущего */
.inject{border:1px solid #ead8b5;border-left:4px solid var(--amber);background:var(--amber-bg);border-radius:9px;padding:14px 16px;margin-bottom:14px}
.inject h3{margin:0 0 6px;font-size:15px;color:#6f4b12}.inject p{font-size:14px;margin:0 0 6px}.inject .eff{font-size:12px;color:#765219}
/* Рейтинг */
.rank-row{display:grid;grid-template-columns:54px minmax(0,1.6fr) minmax(0,1fr) 120px;gap:14px;align-items:center;padding:14px 4px;border-bottom:1px solid var(--line)}
.rank-row:last-child{border-bottom:0}.rank-place{font-size:26px;font-weight:800;color:var(--navy);text-align:center}
.rank-row.top1 .rank-place{color:#b8860b}.rank-row.mine{background:#f2f7fb;border-radius:8px}
.rank-name{font-weight:700;color:var(--navy);font-size:16px}.rank-members{font-size:12px;color:var(--muted);margin-top:2px}
.rank-bar{height:10px;border-radius:5px;background:#e7edf3;overflow:hidden}.rank-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#2d8f93)}
.rank-sub{font-size:11px;color:var(--muted);margin-top:5px;display:flex;gap:10px;flex-wrap:wrap}
.rank-score{text-align:right}.rank-score b{font-size:24px;color:var(--navy);display:block;line-height:1.1}.rank-score span{font-size:11px;color:var(--muted)}
.stage-dots{display:flex;gap:4px;margin-top:6px}.stage-dots i{width:16px;height:6px;border-radius:3px;background:#dbe3eb}.stage-dots i.done{background:var(--teal)}.stage-dots i.cur{background:#f0b34a}
/* Состав команды */
.member-list{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.member{background:var(--soft);color:var(--navy);border-radius:20px;padding:5px 11px;font-size:13px}.member.me{background:var(--navy);color:#fff}
.team-tile{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fff;cursor:pointer;text-align:left;width:100%}
.team-tile:hover{border-color:#749ab8}.team-tile.active{border:2px solid var(--blue);padding:13px;background:#f2f7fb}
.team-tile b{display:block;color:var(--navy);font-size:15px}.team-tile small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.team-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:10px 0 18px}
.inline-edit{display:flex;gap:8px}.inline-edit input{flex:1}
/* Пульт ведущего */
.control-bar{position:sticky;top:86px;z-index:4;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:20px;box-shadow:0 6px 22px rgba(17,40,63,.06);display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.control-bar .now{flex:1;min-width:220px}.control-bar .now small{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1.3px}.control-bar .now strong{font-size:18px;color:var(--navy)}
.progress-pills{display:flex;gap:5px;flex-wrap:wrap}.progress-pills span{font-size:11px;padding:4px 8px;border-radius:5px;background:#eef3f7;color:var(--muted)}.progress-pills span.ok{background:var(--green-bg);color:var(--green)}
.req-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.req-item:last-child{border-bottom:0}.req-item b{color:var(--navy)}.req-item .small{display:block}
.req-actions{display:flex;gap:6px;flex-wrap:wrap}.req-actions .btn{font-size:12px;min-height:34px;padding:6px 10px}
.badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--red);color:#fff;font-size:11px;font-weight:700}
.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 20px}
.tabs button{border:0;background:none;padding:11px 14px;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;font-size:14px;display:flex;gap:7px;align-items:center}
.tabs button.active{color:var(--navy);border-color:var(--teal)}.tabs button:hover{color:var(--navy)}
.team-status{font-size:12px}.team-status.wait{color:var(--amber)}.team-status.ok{color:var(--green)}
.mini-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.mini-form .span-2{grid-column:1/-1}.mini-form label{font-size:13px;font-weight:600}.mini-form label input,.mini-form label select,.mini-form label textarea{margin-top:5px;font-weight:400}
.pin{font:700 15px/1 Arial,sans-serif;letter-spacing:2px;background:#eaf1f7;border:1px solid #ceddea;border-radius:6px;padding:6px 9px;color:var(--navy)}
/* Админка */
.admin-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;max-width:1440px;margin:0 auto;padding:25px}
.admin-nav{position:sticky;top:100px;align-self:start}
.ed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.ed-grid .span-2{grid-column:1/-1}
.ed-grid label,.ed-row label{display:block;font-size:12px;font-weight:600;color:var(--navy)}.ed-grid label>input,.ed-grid label>textarea,.ed-grid label>select{margin-top:4px;font-weight:400;font-size:14px}
.ed-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 10px;align-items:end}
.ed-row input{padding:8px 9px;font-size:13px}
.opt-editor{border:1px solid var(--line);border-radius:9px;padding:14px;margin:10px 0;background:#fbfcfd}.opt-editor.s3{border-left:3px solid var(--teal)}.opt-editor.s0{border-left:3px solid var(--red)}
.opt-editor h4{margin:0 0 9px;font-size:13px;color:var(--navy)}
.q-editor{border:1px solid #c9d7e3;border-radius:12px;padding:18px;margin:16px 0;background:#fff}
.q-editor>summary{font-size:15px}
.sel-row{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:16px}.sel-row label{font-size:12px;font-weight:600;color:var(--navy)}.sel-row select{margin-top:4px;min-width:160px}
.err-list{white-space:pre-wrap;font-size:13px;color:var(--red);background:#fff4f4;border:1px solid #e8c9cd;border-radius:8px;padding:12px}
.dirty-bar{position:sticky;bottom:12px;z-index:6;display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--navy-deep);color:#fff;border-radius:10px;padding:12px 16px;margin-top:20px;box-shadow:0 8px 30px rgba(10,26,40,.25)}
.dirty-bar[hidden]{display:none}
.price-row{display:grid;grid-template-columns:1.6fr repeat(3,90px);gap:8px;align-items:center;margin-bottom:8px}.price-row input{padding:7px 8px;font-size:13px}
.fact-ed{border-top:1px solid var(--line);padding:12px 0}
/* Рейтинг на экран */
.screen{max-width:1200px;margin:0 auto;padding:28px 25px}
.screen h1{font-size:36px}.screen .rank-name{font-size:20px}.screen .rank-score b{font-size:32px}
.lobby-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:960px){.admin-layout{grid-template-columns:1fr}.admin-nav{position:static;display:flex;gap:6px;overflow-x:auto}.admin-nav .nav-title{display:none}.admin-nav .nav-button{width:auto;white-space:nowrap}.lobby-grid{grid-template-columns:1fr 1fr}.control-bar{top:0;position:static}}
@media(max-width:700px){.fact-grid,.team-tiles,.ed-grid,.mini-form,.lobby-grid{grid-template-columns:1fr}.rank-row{grid-template-columns:40px 1fr 80px}.rank-row .rank-progress{display:none}.ed-row{grid-template-columns:repeat(2,1fr)}.price-row{grid-template-columns:1fr 1fr 1fr 1fr}.price-row span:first-child{grid-column:1/-1}}
@media(max-width:700px){.welcome .welcome-line.grid-3{grid-template-columns:repeat(3,1fr)}.welcome h1{font-size:28px}.welcome .welcome-line strong{font-size:22px}}
