:root{
  --bg:#f5f4ef;
  --paper:#fffdf8;
  --paper2:#fdfaf1;
  --ink:#141414;
  --muted:#6d6a61;
  --line:#e5dfd0;
  --line2:#d8cdb8;
  --accent:#0b7a5a;
  --accent2:#e34234;
  --gold:#d9a441;
  --blue:#173b75;
  --success:#0b7a5a;
  --danger:#b42318;
  --shadow:0 18px 60px rgba(25,20,8,.10);
  --shadow-soft:0 8px 28px rgba(25,20,8,.07);
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at 5% -10%,#f6d9c8 0,#f5f4ef 26%,#f5f4ef 100%);}
body{overflow-x:hidden}
button,input,select,textarea{font:inherit}
button,a.button{border:0;border-radius:999px;background:var(--ink);color:#fff;padding:12px 17px;font-weight:850;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
button:hover,a.button:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(20,20,20,.13)}
button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 14px;color:var(--ink);outline:none;min-height:48px}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(11,122,90,.10)}
textarea{min-height:220px;resize:vertical}
a{color:inherit}
.hidden{display:none!important}
.surface{background:rgba(255,253,248,.88);border:1px solid rgba(229,223,208,.9);box-shadow:var(--shadow-soft);backdrop-filter:blur(10px);border-radius:28px}
.eyebrow{margin:0 0 10px;color:var(--accent);font-size:.76rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.muted{color:var(--muted)}
.hint{margin:10px 0 0;color:var(--muted);font-size:.9rem;line-height:1.4}
.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}
.ghost:hover{background:#fbf7ed}.ghost.red{color:var(--danger);border-color:#efc4bd;background:#fff7f5}.small-btn{min-height:38px;padding:9px 12px;font-size:.88rem}.tiny-btn{min-height:32px;padding:6px 10px;font-size:.78rem;border-radius:12px}.link-btn{background:transparent;color:var(--muted);padding:0;min-height:0;border:0;border-radius:0}.link-btn:hover{box-shadow:none;text-decoration:underline;transform:none}.toast{position:fixed;z-index:1000;left:50%;bottom:22px;transform:translateX(-50%);max-width:min(560px,calc(100% - 28px));background:var(--ink);color:#fff;border-radius:18px;padding:13px 16px;font-weight:850;text-align:center;box-shadow:var(--shadow)}

.brand-mark{width:74px;height:74px;border-radius:24px;background:linear-gradient(145deg,var(--accent),var(--blue));color:#fff;display:grid;place-items:center;font-size:1.65rem;font-weight:1000;letter-spacing:-.08em;box-shadow:0 18px 38px rgba(11,122,90,.24)}
.brand-mark.small{width:44px;height:44px;border-radius:15px;font-size:1rem;flex:0 0 auto}

/* Landing */
.landing-wrap{width:min(1180px,calc(100% - 32px));margin:0 auto;min-height:100dvh;display:grid;grid-template-columns:1.08fr .92fr;gap:22px;align-items:center;padding:28px 0}
.landing-hero{position:relative;overflow:hidden;padding:44px;min-height:560px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#fffdf8 0,#fff9ec 58%,#f6eee0 100%)}
.landing-hero:after{content:"";position:absolute;right:-120px;bottom:-120px;width:360px;height:360px;border-radius:50%;border:42px solid rgba(227,66,52,.13)}
.landing-hero h1{margin:0;font-size:clamp(3.2rem,7vw,6.3rem);line-height:.88;letter-spacing:-.075em;max-width:820px}
.hero-copy{position:relative;z-index:1;margin:20px 0 0;max-width:560px;font-size:1.1rem;line-height:1.55;color:#4d493f}
.hero-stats{position:relative;z-index:1;margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.hero-stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.hero-stat span{display:block;color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.hero-stat b{display:block;margin-top:3px;font-size:1.45rem;letter-spacing:-.04em}.join-card{padding:30px}.join-head h2{margin:0;font-size:2.1rem;letter-spacing:-.05em}.join-head p:last-child{margin:8px 0 0;line-height:1.45}.last-player{margin:18px 0 0;padding:12px;background:#edf8f3;border:1px solid #c9ebdc;border-radius:18px;display:flex;gap:10px;justify-content:space-between;align-items:center}.player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.player-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px;text-align:left;color:var(--ink);display:flex;align-items:center;gap:12px;min-height:72px}.player-card:hover{background:#fbf7ed}.avatar{width:40px;height:40px;border-radius:15px;background:linear-gradient(145deg,#111,#3b3424);color:#fff;display:grid;place-items:center;font-weight:1000;flex:0 0 auto;text-transform:uppercase}.player-card b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-card small{color:var(--muted)}.create-player{border-top:1px solid var(--line);padding-top:20px}.create-player label{display:block;margin-bottom:8px;font-weight:900}.create-line{display:flex;gap:10px;align-items:center}.create-line input{min-width:0}.skeleton:empty:before{content:"Загружаю участников…";color:var(--muted);font-weight:800}.empty-list{padding:24px;border:1px dashed var(--line2);border-radius:22px;color:var(--muted);text-align:center;background:#fffdfa}

/* App */
.app-top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px max(16px,calc((100vw - 1220px)/2));background:rgba(245,244,239,.82);backdrop-filter:blur(14px);border-bottom:1px solid rgba(229,223,208,.75)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}.brand b{display:block;font-size:1rem;letter-spacing:-.03em}.brand small{display:block;color:var(--muted);font-size:.78rem;white-space:nowrap}.top-actions{display:flex;gap:8px;align-items:center}.app-shell{width:min(1220px,calc(100% - 32px));margin:20px auto 48px}.player-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;padding:26px;margin-bottom:14px;background:linear-gradient(145deg,#fffdf8,#fff7e8)}.player-hero h1{margin:0;font-size:clamp(2rem,5vw,4.6rem);line-height:.94;letter-spacing:-.075em}.player-hero p{margin:10px 0 0;color:var(--muted);line-height:1.45}.hero-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:.82rem;font-weight:900;color:#4d493f}.badge.green{background:#edf8f3;color:#086b50;border-color:#c9ebdc}.badge.red{background:#fff3ef;color:#b42318;border-color:#efc4bd}.badge.gold{background:#fff8df;color:#8a6200;border-color:#efd487}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px}.stat-card span{display:block;color:var(--muted);font-size:.76rem;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.stat-card b{display:block;margin-top:3px;font-size:1.65rem;letter-spacing:-.05em}.app-nav{display:flex;gap:8px;overflow:auto;margin:12px 0 16px;padding-bottom:3px}.app-nav button{background:#fff;color:var(--ink);border:1px solid var(--line);white-space:nowrap}.app-nav button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.toolbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px;align-items:center}.segments{display:flex;gap:8px;overflow:auto;min-width:0}.segments button{background:#fff;color:#34302a;border:1px solid var(--line);white-space:nowrap}.segments button.active{background:var(--accent);border-color:var(--accent);color:#fff}.search-box{max-width:300px;min-width:200px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.side-stack{display:grid;gap:14px;position:sticky;top:86px}.panel{padding:18px}.panel h3{margin:0 0 12px;font-size:1.05rem;letter-spacing:-.03em}.section-title{display:flex;align-items:center;gap:10px;margin:20px 0 10px;font-size:.98rem;font-weight:1000;color:#34302a}.section-title:after{content:"";height:1px;background:var(--line);flex:1}.section-title small{font-size:.78rem;color:var(--muted);font-weight:850}.match-list{display:grid;gap:10px}.match-card{position:relative;background:rgba(255,253,248,.96);border:1px solid var(--line);border-radius:24px;padding:16px;box-shadow:0 7px 25px rgba(25,20,8,.045);overflow:hidden}.match-card.just-picked{border-color:#b7e4d3;background:linear-gradient(145deg,#fffdf8,#f2fbf6)}.match-card.locked{opacity:.88}.match-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.match-meta{display:flex;gap:6px;flex-wrap:wrap}.match-number{font-weight:1000;color:#746b5c}.fill-count{font-weight:950;color:#34302a}.team-stack{display:grid;gap:7px;margin:10px 0 12px}.team-row{display:flex;align-items:center;gap:10px;min-width:0}.flag{width:40px;height:40px;border:1px solid var(--line);border-radius:15px;background:#fff;display:grid;place-items:center;font-size:1.35rem;flex:0 0 auto}.team-name{font-size:1.15rem;font-weight:1000;letter-spacing:-.025em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.versus{margin-left:50px;color:var(--muted);font-size:.76rem;font-weight:1000;letter-spacing:.1em;text-transform:uppercase}.choice-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.choice-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-btn{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:16px;min-width:0;padding:11px 10px;min-height:50px}.choice-btn:hover{background:#fbf7ed}.choice-btn.selected{background:var(--ink);border-color:var(--ink);color:#fff}.choice-btn .odd{font-size:.78rem;font-weight:1000;color:var(--accent)}.choice-btn.selected .odd{color:#fff}.pick-state{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#edf8f3;border:1px solid #c9ebdc;border-radius:18px;padding:12px}.pick-state strong{display:block}.pick-state small{display:block;margin-top:2px;color:#0b6a50;font-weight:800}.pick-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.line-missing{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff9ec;border:1px solid #efd487;border-radius:18px;padding:12px;color:#795b08;font-weight:850}.line-missing small{display:block;color:#8d6d18;font-weight:700;margin-top:2px}.predictions{margin-top:12px}.predictions summary{cursor:pointer;color:var(--muted);font-weight:900;outline:none}.pred-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.pred-grid.two{grid-template-columns:repeat(2,1fr)}.pred-col{border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px;min-height:54px}.pred-col b{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--muted);margin-bottom:6px}.mini-avatars{display:flex;flex-wrap:wrap;gap:5px}.mini-avatar{width:26px;height:26px;border-radius:10px;background:#28251f;color:#fff;display:grid;place-items:center;font-size:.72rem;font-weight:1000}.mini-avatar.empty{background:#f1eadc;color:#8f8677}.leader-list{display:grid;gap:6px}.leader-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-radius:16px;border:1px solid transparent}.leader-row.me{background:#edf8f3;border-color:#c9ebdc}.rank{width:30px;height:30px;border-radius:12px;background:#efe7d8;display:grid;place-items:center;font-weight:1000}.leader-name{font-weight:1000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leader-meta{font-size:.78rem;color:var(--muted);margin-top:1px}.leader-points{text-align:right;font-weight:1000;font-size:1.02rem}.progress-row{margin-bottom:12px}.progress-head{display:flex;justify-content:space-between;gap:8px;font-size:.86rem;font-weight:900}.progress-bar{margin-top:6px;height:9px;border-radius:99px;background:#eee5d6;overflow:hidden}.progress-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),#32b784)}.group-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.group-card{padding:16px;display:grid;gap:13px}.group-card h3{margin:0;font-size:1.25rem;letter-spacing:-.04em}.group-teams{display:grid;gap:7px}.group-team{display:flex;align-items:center;gap:8px;min-width:0}.group-team .flag{width:32px;height:32px;border-radius:12px;font-size:1.1rem}.group-team b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-matches{display:grid;gap:7px}.group-match{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:15px;background:#fff}.group-match small{color:var(--muted);font-weight:850}.matrix{display:grid;gap:10px}.matrix-row{background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px;display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(0,2fr);gap:12px}.matrix-match{font-weight:1000}.matrix-picks{display:flex;flex-wrap:wrap;gap:6px}.pick-chip{border:1px solid var(--line);background:#fffdfa;border-radius:999px;padding:6px 9px;font-size:.82rem;font-weight:850}.pick-chip.empty{color:var(--muted);background:#f7f1e5}.loading{padding:24px;color:var(--muted);font-weight:850}.empty-state{padding:34px;border:1px dashed var(--line2);border-radius:24px;background:#fffdfa;text-align:center;color:var(--muted);font-weight:850}.empty-state b{display:block;color:var(--ink);font-size:1.2rem;margin-bottom:5px}.mobile-only{display:none}

/* Admin */
.admin-shell{width:min(1280px,calc(100% - 32px));margin:22px auto 60px}.login-box{padding:28px;max-width:640px;margin:60px auto}.login-box h1{margin:0 0 18px;font-size:2rem;letter-spacing:-.05em}.admin-dashboard{display:grid;gap:16px}.admin-hero{padding:24px;display:flex;justify-content:space-between;gap:16px;align-items:flex-end}.admin-hero h1{margin:0;font-size:2.4rem;letter-spacing:-.06em}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-card{padding:18px}.admin-card h2{margin:0 0 10px;font-size:1.25rem;letter-spacing:-.04em}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.admin-actions button{border-radius:15px}.admin-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:22px;background:#fff}.admin-table{width:100%;border-collapse:separate;border-spacing:0;min-width:880px}.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-size:.88rem}.admin-table th{position:sticky;top:0;background:#fff8ed;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:#776d5b}.admin-table tr:last-child td{border-bottom:0}.mini-input{min-height:34px;padding:7px 8px;border-radius:10px;max-width:92px}.status-dot{display:inline-flex;gap:6px;align-items:center;font-weight:900}.status-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:#c03}.status-dot.ok:before{background:var(--success)}.status-dot.warn:before{background:var(--gold)}.log-list{display:grid;gap:8px;max-height:340px;overflow:auto}.log-item{border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px}.log-item b{display:block}.log-item small{display:block;color:var(--muted);margin-top:3px}.admin-filter{display:flex;gap:10px;margin-bottom:12px}.admin-filter input{max-width:360px}.csv-help{font-size:.86rem;color:var(--muted);line-height:1.45}.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f2eadc;border:1px solid var(--line);border-radius:8px;padding:2px 5px;color:#413b32}

@media (max-width:1040px){
  .landing-wrap{grid-template-columns:1fr;padding:18px 0}.landing-hero{min-height:auto}.content-grid{grid-template-columns:1fr}.side-stack{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.group-board{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .landing-wrap,.app-shell,.admin-shell{width:calc(100% - 20px)}.landing-hero,.join-card,.player-hero{border-radius:22px;padding:22px}.landing-hero h1{font-size:3.35rem}.hero-stats,.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.player-grid{grid-template-columns:1fr}.create-line{flex-direction:column}.create-line button{width:100%}.app-top{padding:10px}.brand small{display:none}.top-actions{gap:6px}.small-btn{font-size:.78rem;padding:8px 10px}.player-hero{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.search-box{max-width:none;width:100%}.content-grid{display:block}.side-stack{grid-template-columns:1fr;margin-top:16px}.match-card{border-radius:20px;padding:13px}.match-top{flex-direction:column}.team-name{font-size:1rem}.flag{width:36px;height:36px;border-radius:13px}.versus{margin-left:46px}.choice-row,.choice-row.two{grid-template-columns:1fr}.pick-state{align-items:flex-start;flex-direction:column}.pick-actions{width:100%;justify-content:flex-start}.pred-grid,.pred-grid.two{grid-template-columns:1fr}.group-board{grid-template-columns:1fr}.matrix-row{grid-template-columns:1fr}.hero-stats .hero-stat:nth-child(3),.stats-row .stat-card:nth-child(4){grid-column:1/-1}.mobile-only{display:inline}.admin-hero{align-items:flex-start;flex-direction:column}.admin-filter{flex-direction:column}.admin-filter input{max-width:none}
}
@media (max-width:420px){
  .hero-stats,.stats-row{grid-template-columns:1fr}.landing-hero h1{font-size:2.8rem}.player-hero h1{font-size:2.2rem}.app-nav button,.segments button{padding:10px 12px;font-size:.86rem}.badge{font-size:.76rem}.stat-card b{font-size:1.35rem}
}
