.lands-page { --bg:#000; --panel:#0d0f0c; --border:#3a4236; --text:#f7f7ef; --muted:#cdd5c3; --accent:#c4d0aa; --accent-text:#20251c; --danger:#ffaaa1; --gold:#d8bf80; }
.lands-page .skip-link { position:absolute; top:8px; left:12px; z-index:10; padding:10px 14px; background:var(--panel); border:1px solid var(--gold); transform:translateY(-150%); }
.lands-page .skip-link:focus { transform:translateY(0); }
.lands-page .site-header { background:#000; border-bottom:1px solid var(--border); padding:15px 28px; }
.lands-page .brand { gap:22px; }
.lands-page .logo { color:var(--gold); }
.lands-page .lands { max-width:1380px; padding:36px 28px 48px; }
.lands-page h1,.lands-page h2,.lands-page h3 { font-family:Georgia,"Times New Roman",serif; font-weight:400; }
.lands-page h1 { font-size:36px; line-height:1.2; margin:0 0 7px; }
.lands-page h2 { font-size:27px; line-height:1.25; margin:0 0 10px; }
.lands-page h3 { font-size:21px; margin:25px 0 12px; }
.lands-page p { color:var(--muted); }
.lands-page .eyebrow { color:var(--gold); font-size:12px; font-weight:700; text-transform:uppercase; margin:0 0 7px; }
.builder-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.intro { margin:0; }
/* Гость видит только приглашение войти: разделы игры, вкладки героя и окно героя скрыты, бестиарий открыт. */
.lands[data-guest] [data-view], .lands[data-guest] .lands-tab[data-tab], .lands[data-guest] #hero-button, .lands[data-guest] #hero-title, .lands[data-guest] .intro { display:none !important; }
.guest-gate { display:grid; gap:12px; justify-items:start; margin:12px 0 24px; padding:18px; border:1px solid var(--border); border-radius:10px; background:var(--panel); }
.lands-page .guest-gate h2 { margin:0; font-size:22px; }
.guest-gate p { margin:0; }
.guest-gate-actions { display:flex; flex-wrap:wrap; gap:10px; }
.file-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.lands-page .button { background:#191d17; border-radius:6px; justify-content:center; transition:background .15s,border-color .15s; }
.lands-page .button:hover:not(:disabled) { background:#262d22; border-color:#7d896f; }
.lands-page .button.primary:hover:not(:disabled) { background:#d4debf; border-color:#d4debf; }
.lands-page .button.primary { background:var(--accent); border-color:var(--accent); }
.lands-page .button.compact { padding:8px 12px; min-height:40px; font-size:13px; }
.lands-page .button.subtle { background:transparent; }
.lands-page :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.lands-page button:active:not(:disabled) { transform:translateY(1px); }
.storage-status { min-height:21px; font-size:12px; margin:18px 0 20px; }
.storage-status.is-error { color:var(--danger); }
.message { padding:13px 16px; background:#131a10; border:1px solid #71825e; border-radius:6px; margin:0 0 18px; color:var(--text); }
.message.error { border-color:#97635e; background:#2a1411; }
.message[hidden] { display:none; }
.step-nav { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border:1px solid var(--border); background:#070807; border-radius:7px; margin-bottom:22px; overflow:hidden; }
.step-link { position:relative; display:flex; align-items:center; gap:9px; padding:16px 12px; min-width:0; border:0; border-right:1px solid var(--border); background:transparent; color:var(--muted); font:inherit; font-size:13px; cursor:pointer; }
.step-link:last-child { border-right:0; }
.step-link:hover { background:#1a2017; color:var(--text); }
.step-link[aria-current="step"] { background:#232b1e; color:var(--text); box-shadow:inset 0 -3px var(--accent); }
.step-number { display:grid; place-items:center; flex:none; width:25px; height:25px; border:1px solid #65705a; border-radius:50%; font-size:12px; }
.step-link[aria-current="step"] .step-number { background:var(--accent); color:var(--accent-text); border-color:var(--accent); }
.step-link.has-error .step-number { border-color:var(--danger); color:var(--danger); }
.step-name { overflow-wrap:anywhere; }
.builder-layout { display:grid; grid-template-columns:minmax(0,1fr) 335px; align-items:start; gap:24px; }
.workbench { min-width:0; border:1px solid var(--border); border-radius:8px; background:var(--panel); padding:28px; }
.step-kicker { font-size:12px; color:var(--gold); margin:0 0 7px; }
.step-description { font-size:14px; margin:0 0 24px; max-width:64ch; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px 22px; }
.field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.field.wide { grid-column:1/-1; }
.field-label { font-size:14px; font-weight:600; color:var(--text); }
.lands-page :is(input[type="text"],input[type="number"],input[type="search"],select,textarea) { width:100%; min-height:44px; padding:10px 11px; border:1px solid #5a6353; border-radius:5px; background:#111410; color:var(--text); font:inherit; font-size:15px; }
.lands-page input[type="checkbox"] { width:18px; height:18px; accent-color:var(--accent); flex:none; }
.lands-page select { padding-right:26px; }
.lands-page textarea { resize:vertical; min-height:95px; }
.field-hint { font-size:12px; color:var(--muted); line-height:1.45; }
.field-error { color:var(--danger); font-size:12px; }
.lands-page [aria-invalid="true"] { border-color:var(--danger); }
.inline-detail { display:flex; align-items:center; gap:8px; margin:0; font-size:13px; }
.tag { display:inline-block; border:1px solid #68715b; color:#d2d9c4; border-radius:4px; padding:2px 6px; font-size:11px; white-space:nowrap; font-family:system-ui,sans-serif; }
.source-options { display:grid; gap:11px; padding:16px 0 0; margin:0; border:0; }
.source-options legend { padding:0; font-size:14px; font-weight:600; }
.check-label { display:flex; gap:10px; align-items:flex-start; font-size:14px; cursor:pointer; }
.check-label small { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
.source-note { font-size:12px; margin:9px 0 0; }
.budget-line { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:13px 15px; background:#0e130c; border:1px solid #57634b; border-radius:5px; margin:0 0 19px; font-size:14px; }
.budget-value { color:var(--accent); font-size:19px; font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
.budget-line.is-error { border-color:#a1746c; }
.budget-line.is-error .budget-value { color:var(--danger); }
.allocation-list { display:grid; gap:0; }
.allocation-row { display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid var(--border); padding:14px 0; }
.allocation-row:last-child { border-bottom:0; }
.allocation-name { color:var(--text); font-size:15px; }
.allocation-name small { display:block; color:var(--muted); font-size:12px; margin-top:3px; }
.allocation-name .tag { margin:0 0 0 6px; }
.counter { display:flex; align-items:center; gap:8px; flex:none; }
.counter button { width:36px; height:36px; background:#1d2519; color:var(--text); border:1px solid #687759; border-radius:5px; font-size:23px; line-height:1; cursor:pointer; }
.counter button:hover:not(:disabled) { background:#2c3a24; }
.counter button:disabled { opacity:.32; cursor:not-allowed; }
.counter output { min-width:27px; text-align:center; font-size:20px; font-variant-numeric:tabular-nums; }
.counter .rank-zero { color:var(--muted); }
.allocation-group { margin:24px 0 4px; font-size:14px; color:var(--gold); }
.fixed-talent { border-left:3px solid var(--gold); padding:8px 15px; background:#141711; margin:0 0 22px; }
.fixed-talent strong { display:block; font-size:15px; font-weight:600; }
.fixed-talent span { color:var(--muted); font-size:12px; }
.talent-controls { display:flex; gap:12px; align-items:center; margin:22px 0 6px; }
.talent-controls input { max-width:100%; }
.talent-list { max-height:520px; overflow-y:auto; scrollbar-color:#7c886e #0d100c; }
.talent-list .allocation-row { padding-right:6px; }
.empty-state { padding:22px 0; font-size:14px; }
.gear-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.item-list { padding:0; list-style:none; margin:10px 0 20px; }
.item-list li { display:flex; justify-content:space-between; gap:15px; border-bottom:1px solid var(--border); padding:9px 0; font-size:14px; }
.remove-item { border:0; color:var(--muted); background:transparent; font-size:13px; text-decoration:underline; cursor:pointer; }
.remove-item:hover { color:var(--danger); }
.money-controls { display:flex; align-items:end; gap:10px; margin:22px 0; }
.money-controls .field { max-width:200px; }
.money-balance .budget-value { font-size:15px; text-align:right; white-space:normal; }
.supply-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:13px 0; }
.supply-item { display:flex; flex-direction:column; text-align:center; padding:10px 4px; border:1px solid var(--border); border-radius:5px; }
.supply-item span { color:var(--muted); font-size:11px; }
.supply-item strong { font-size:17px; font-weight:600; }
.step-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:28px -28px -28px; border-top:1px solid var(--border); padding:18px 28px; }
.step-footer .button { min-width:110px; }
.step-count { font-size:12px; color:var(--muted); }
.sheet-summary { position:sticky; top:22px; background:#0a0c09; border:1px solid #59634e; border-top:3px solid var(--gold); border-radius:6px; padding:22px; }
.sheet-summary h2 { font-size:25px; overflow-wrap:anywhere; }
.sheet-summary .summary-kicker { color:var(--gold); font-size:11px; text-transform:uppercase; margin:0 0 8px; }
.sheet-summary .summary-origin { font-size:13px; margin:0 0 22px; }
.summary-attributes { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; margin:0 0 20px; }
.summary-attribute { text-align:center; padding:9px 2px; border-top:1px solid #6b775e; border-bottom:1px solid #6b775e; }
.summary-attribute strong { display:block; font:27px Georgia,serif; color:var(--text); }
.summary-attribute span { font-size:10px; color:var(--muted); }
.summary-meta { display:flex; justify-content:space-between; margin:12px 0; gap:10px; font-size:12px; }
.summary-meta strong { font-weight:600; text-align:right; }
.summary-section { border-top:1px solid var(--border); padding-top:15px; margin-top:18px; }
.summary-section h3 { font:600 12px system-ui,sans-serif; color:var(--gold); margin:0 0 8px; }
.summary-list { margin:0; padding:0; list-style:none; font-size:12px; color:var(--muted); }
.summary-list li { margin:5px 0; display:flex; justify-content:space-between; gap:10px; }
.summary-list li span { color:var(--text); overflow-wrap:anywhere; }
.summary-ready { margin:20px 0 0; padding-top:15px; border-top:1px solid var(--border); font-size:12px; color:var(--accent); }
.summary-ready.is-error { color:var(--muted); }
.validation-box { padding:16px; border:1px solid #9e6b62; border-radius:5px; background:#1e1310; margin:0 0 24px; }
.validation-box h3 { font:600 15px system-ui,sans-serif; margin:0 0 9px; color:var(--danger); }
.validation-box ul { margin:0; padding:0 0 0 18px; }
.validation-box button { text-align:left; padding:5px 0; background:transparent; border:0; color:#f0cdc2; text-decoration:underline; font:inherit; font-size:13px; cursor:pointer; }
.completion-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.ready-message { padding:13px 16px; border-left:3px solid var(--accent); background:#111a0c; margin:0 0 22px; font-size:14px; color:var(--text); }
.game-info { border-top:1px solid var(--border); padding-top:20px; margin-top:30px; max-width:900px; }
.game-info summary { cursor:pointer; color:var(--muted); font-size:13px; margin-bottom:16px; }
.game-info summary:hover { color:var(--text); }
.game-info p,.game-info li { font-size:13px; }
.game-info ul { margin:0 0 16px; padding-left:20px; }
.game-info li { margin:8px 0; color:var(--muted); }
.lands-page a { color:var(--accent); }
.lands-page .logo { color:var(--gold); }
.lands-page .nav-link { color:var(--muted); }
.lands-page .nav-link:hover { color:var(--text); }
.print-sheet { display:none; }
.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; }
@media (max-width:1080px) { .builder-layout { grid-template-columns:minmax(0,1fr) 290px; gap:18px; } .step-link { flex-direction:column; padding:13px 7px; gap:6px; text-align:center; font-size:12px; } .sheet-summary { padding:18px; } }
@media (max-width:800px) { .lands-page .lands { padding:25px 18px 35px; } .builder-heading { align-items:flex-start; flex-direction:column; gap:18px; } .file-actions { justify-content:flex-start; } .builder-layout { grid-template-columns:minmax(0,1fr); } .sheet-summary { position:static; } .summary-attributes { max-width:340px; } .sheet-summary .summary-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 25px; } .workbench { padding:23px; } .step-footer { margin:26px -23px -23px; padding:17px 23px; } .lands-page .site-header { padding:13px 18px; } }
@media (max-width:520px) { .lands-page .lands { padding:23px 12px 30px; } .lands-page h1 { font-size:31px; } .lands-page h2 { font-size:25px; } .lands-page .site-header { padding:12px; gap:8px; } .lands-page .brand { gap:10px; } .lands-page .site-header .logo { font-size:18px; } .lands-page .brand .nav-link { font-size:11px; } .cabinet-link { font-size:10px; } .file-actions { gap:6px; } .lands-page .button.compact { font-size:12px; padding:8px 9px; } .step-nav { grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:15px; } .step-link { flex-direction:row; font-size:11px; padding:12px 6px; gap:4px; text-align:left; border-bottom:1px solid var(--border); } .step-link:nth-child(3) { border-right:0; } .step-link:nth-last-child(-n+3) { border-bottom:0; } .step-number { width:22px; height:22px; font-size:10px; } .step-link[aria-current="step"] { box-shadow:inset 0 -2px var(--accent); } .workbench { padding:20px 16px; } .field-grid,.gear-grid { grid-template-columns:minmax(0,1fr); } .field-grid { gap:17px; } .step-footer { margin:24px -16px -20px; padding:16px; } .step-footer .button { min-width:90px; font-size:13px; padding:9px 12px; } .step-count { display:none; } .counter { gap:5px; } .counter button { width:34px; height:36px; } .allocation-name { font-size:14px; } .allocation-name .tag { display:table; margin:5px 0 0; } .summary-list li { font-size:11px; } .money-controls { align-items:stretch; flex-direction:column; } .money-controls .field { max-width:none; } .money-controls .button { align-self:flex-start; } .supply-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (prefers-reduced-motion:reduce) { .lands-page * { transition:none!important; } }
@media print { @page { margin:14mm; } .lands-page { background:white; color:#161b14; font-size:11px; } .site-header,.lands,.skip-link { display:none!important; } .print-sheet { display:block; } .print-sheet h1 { font-size:29px; } .print-sheet h2 { font-size:18px; margin:18px 0 8px; border-bottom:1px solid #a1a79b; padding-bottom:4px; break-after:avoid; } .print-sheet h3 { font-size:15px; } .print-sheet p { color:#31382d; white-space:pre-wrap; overflow-wrap:anywhere; margin:5px 0; } .print-sheet .print-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:16px 0; } .print-sheet .print-stat { padding:9px; border:1px solid #a1a79b; text-align:center; } .print-stat strong { display:block; font-size:25px; } .print-sheet ul { margin:5px 0; padding-left:18px; } .print-sheet .print-columns { columns:2; column-gap:30px; } .print-sheet li { margin:4px 0; break-inside:avoid; } .print-sheet .print-story { break-inside:avoid; } }

.account-bar { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin:-8px 0 20px; padding:12px 14px; border:1px solid var(--border); border-radius:6px; background:var(--panel); color:var(--text); font-size:14px; }
.account-bar[hidden] { display:none; }
.account-heroes { color:var(--muted); font-size:13px; }
.lands-page .account-bar select { width:auto; flex:1 1 220px; min-width:0; }
.skills-fill { margin:-6px 0 18px; }
.name-roll { margin-top:8px; }
.ready-heroes { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-8px 0 20px; color:var(--muted); font-size:15px; }
.story-fill { margin:0 0 18px; }
/* Разделы на одном экране: видна только выбранная вкладка. Без скриптов видно всё. */
main.lands[data-view="sheet"] [data-view]:not([data-view="sheet"]),
main.lands[data-view="party"] [data-view]:not([data-view="party"]),
main.lands[data-view="settings"] [data-view]:not([data-view="settings"]) { display:none !important; }
.lands-tabs { flex:1 1 100%; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
.lands-page .lands-tab { display:grid; justify-items:center; align-content:center; gap:2px; min-height:52px; padding:6px 2px; font-size:12px; line-height:1.15; text-align:center; }
.lands-tab span { font-size:20px; line-height:1; }
.lands-page .lands-tab[aria-current="page"] { background:#4a1f14; border-color:#e08a66; color:#fff; }
.lands-page button.lands-tab, #hero-button.lands-tab { font-size:12px; }
/* Телефон: одним экраном. Вкладки внизу, как в приложении; на «Игре» и «Мы» нет шапки сайта и подписи. */
@media (max-width:700px) {
  .lands-page:has(main.lands[data-view="sheet"]) .site-header, .lands-page:has(main.lands[data-view="party"]) .site-header { display:none; }
  main.lands[data-view="sheet"] .builder-heading .eyebrow, main.lands[data-view="sheet"] .builder-heading .intro,
  main.lands[data-view="party"] .builder-heading .eyebrow, main.lands[data-view="party"] .builder-heading .intro { display:none; }
  main.lands[data-view] .builder-heading { gap:6px; margin-bottom:8px; }
  main.lands[data-view] .builder-heading h1 { font-size:22px; margin:0; }
  .lands-page main.lands[data-view] { padding:10px 10px 66px; }
  /* Вкладки ниже, а подписи мельче: «Бестиарий» и «Настройки» помещаются в 64 px на экране шириной 360. */
  .lands-page .lands-tabs { gap:4px; }
  .lands-page .lands-tabs .lands-tab { min-height:44px; padding:3px 1px; font-size:10.5px; letter-spacing:0; }
  .lands-tab span { font-size:18px; }
  .lands-tabs { position:fixed; left:0; right:0; bottom:0; z-index:40; padding:6px 8px calc(6px + env(safe-area-inset-bottom)); background:#050505; border-top:1px solid var(--border); }
  /* Панель броска открывается поверх вкладок: пока бросок не закончен, вкладки не нужны. */
  .lands-page .play-roller { z-index:45; }
  main.lands[data-view] .play-sheet .play-header { margin:0 0 8px; }
  main.lands[data-view] .play-sheet .play-header .play-origin { display:none; }
}
