:root{--color-bg: #f5f6f8;--color-surface: #ffffff;--color-text: #1c1f24;--color-muted: #6b7280;--color-border: #d9dde3;--color-primary: #3b5bdb;--color-primary-hover: #324cc0;--color-danger: #c92a2a;--color-success-bg: #ebfbee;--color-success-text: #2b8a3e;--color-error-bg: #fff5f5;--color-error-text: #c92a2a;--color-info-bg: #e7f5ff;--color-info-text: #1864ab;--color-yandex: #fc3f1d;--radius: 10px;--header-height: 72px;--font-hand: "Zametka Parletter", "Segoe Print", "Comic Sans MS", cursive;color-scheme:light dark}@font-face{font-family:Zametka Parletter;src:url(/fonts/Zametka_Parletter.ttf) format("truetype");font-display:swap}@media(prefers-color-scheme:dark){:root{--color-bg: #15171b;--color-surface: #1f2228;--color-text: #e9ecef;--color-muted: #9aa1ab;--color-border: #343a42;--color-primary: #5c7cfa;--color-primary-hover: #748ffc;--color-danger: #ff6b6b;--color-success-bg: #1b3325;--color-success-text: #8ce99a;--color-error-bg: #3b1d1f;--color-error-text: #ffa8a8;--color-info-bg: #16304a;--color-info-text: #a5d8ff}}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-tap-highlight-color:transparent}:where(html.tg-app,html.tg-app *){touch-action:manipulation}@media(max-width:899.98px){html{scrollbar-width:none}html::-webkit-scrollbar{display:none}body:has(.site-header__tabs){padding-bottom:calc(48px + env(safe-area-inset-bottom))}body:has(.site-header--member){--header-height: env(safe-area-inset-top, 0px)}}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 16px;font-size:1.6rem}.content{max-width:880px;margin:0 auto;padding:calc(var(--header-height) + 32px) 16px 32px}.page{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:32px}.auth-card{max-width:420px;margin:0 auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:16px}.auth-card form{display:flex;flex-direction:column;gap:16px}.lead{margin:0;color:var(--color-muted)}.muted{color:var(--color-muted)}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-weight:500}.field input{font:inherit;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);color:var(--color-text)}.field input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.field input.ng-invalid.ng-touched{border-color:var(--color-danger)}.code-input{letter-spacing:.4em;font-size:1.3rem;text-align:center}.hint{color:var(--color-muted);font-size:.85rem}.field-errors{margin:0;padding:0;list-style:none;color:var(--color-danger);font-size:.85rem}.button{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-weight:500;padding:10px 16px;border-radius:8px;border:1px solid transparent;cursor:pointer;text-decoration:none}.button:hover{text-decoration:none}.button:disabled{opacity:.6;cursor:not-allowed}.button--primary{background:var(--color-primary);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.button--ghost{background:transparent;border-color:var(--color-border);color:var(--color-text)}.button--danger{background:var(--color-danger);color:#fff}.button--yandex{background:var(--color-yandex);color:#fff}.button--small{padding:6px 12px}.divider{display:flex;align-items:center;gap:12px;color:var(--color-muted)}.divider:before,.divider:after{content:"";flex:1;border-top:1px solid var(--color-border)}.auth-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.alert{padding:12px 14px;border-radius:8px;margin-bottom:8px}.alert--error{background:var(--color-error-bg);color:var(--color-error-text)}.alert--success{background:var(--color-success-bg);color:var(--color-success-text)}.alert--info{background:var(--color-info-bg);color:var(--color-info-text)}.row{display:flex;flex-wrap:wrap;gap:12px}.session-list{list-style:none;margin:24px 0;padding:0;display:flex;flex-direction:column;gap:12px}.session{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border:1px solid var(--color-border);border-radius:8px}.session--current{border-color:var(--color-primary)}.session__info{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.session__actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.badge{font-size:.8rem;padding:2px 8px;border-radius:999px;background:var(--color-info-bg);color:var(--color-info-text)}.danger-zone{border-top:1px solid var(--color-border);padding-top:16px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.danger-zone p{margin:0}@media(max-width:560px){.auth-card,.page{padding:20px}.session{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:no-preference){html:has(app-home-page){scroll-behavior:smooth}}body:has(app-home-page),body:has(.auth-card),body:has(app-level-list-page),body:has(app-level-editor-page),body:has(app-level-map-page),body:has(app-level-play-page){--shell-canvas: #f6f2ee;--shell-ink: #111111;--shell-strong-ink: #000000;--shell-line: #414040;--shell-stone: #848383;--shell-paper: #ffffff;--shell-sand: #e2dcd6;--shell-mist: #e8e5e0;--shell-magenta: #ff2e95;--shell-magenta-tint: #ffe3f0;--shell-sky: #048aff;--shell-sky-deep: #007ae4;--shell-shadow: rgba(0, 0, 0, .1) 0 16px 40px 0, rgba(0, 0, 0, .06) 0 2px 6px 0;color-scheme:light;background:var(--shell-canvas);font-family:Inter,ui-sans-serif,system-ui,sans-serif}body:has(app-home-page) .content,body:has(.auth-card) .content,body:has(app-level-list-page) .content,body:has(app-level-editor-page) .content,body:has(app-level-map-page) .content,body:has(app-level-play-page) .content{max-width:none;padding:0}:root[data-theme=dark] body:has(app-home-page),:root[data-theme=dark] body:has(.auth-card),:root[data-theme=dark] body:has(app-level-list-page),:root[data-theme=dark] body:has(app-level-editor-page),:root[data-theme=dark] body:has(app-level-map-page),:root[data-theme=dark] body:has(app-level-play-page){--shell-canvas: #14161c;--shell-ink: #e8e9ee;--shell-strong-ink: #ffffff;--shell-line: #565b67;--shell-stone: #9096a3;--shell-paper: #1d2027;--shell-sand: #2e323b;--shell-mist: #272a32;--shell-magenta: #ff5aa8;--shell-magenta-tint: #3a1b2b;--shell-sky: #48a9ff;--shell-sky-deep: #6dbcff;--shell-shadow: rgba(0, 0, 0, .45) 0 16px 40px 0, rgba(255, 255, 255, .05) 0 0 0 1px;color-scheme:dark;color:var(--shell-ink)}body:has(.auth-card),body:has(app-level-list-page),body:has(app-level-editor-page),body:has(app-level-map-page),body:has(app-level-play-page){--magenta: #ff2e95;--magenta-tint: #ffe3f0;--sky: #048aff;--sky-deep: #007ae4;--sky-tint: #e0f1ff;--mint: #089e60;--mint-tint: #e5faf1;--gold: #b8860b;--gold-tint: #fbf0cf;--ink: #000000;--soft-ink: #111111;--slate: #0f172a;--midnight: #202126;--charcoal: #414040;--stone: #848383;--driftwood: #c3c1bf;--sand: #e2dcd6;--mist: #e8e5e0;--canvas: #f6f2ee;--paper: #ffffff;--pill: 999px;--shadow-card: rgba(0, 0, 0, .22) 0 32px 80px 0, rgba(0, 0, 0, .08) 0 2px 8px 0;--shadow-soft: rgba(0, 0, 0, .1) 0 16px 40px 0, rgba(0, 0, 0, .06) 0 2px 6px 0;--font: "Inter", ui-sans-serif, system-ui, sans-serif;--color-primary: var(--sky);--color-primary-hover: var(--sky-deep);--color-danger: #d6336c;--color-muted: var(--stone);--color-text: var(--soft-ink);--color-border: var(--sand);--color-success-bg: #e5faf1;--color-success-text: #087a4b;--color-error-bg: #ffe3f0;--color-error-text: #b0125f;--color-info-bg: var(--sky-tint);--color-info-text: #0062b8;color:var(--soft-ink)}body:has(.auth-card) .content,body:has(app-level-list-page) .content,body:has(app-level-editor-page) .content,body:has(app-level-map-page) .content,body:has(app-level-play-page) .content{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100dvh;padding:120px 16px 80px;overflow-x:clip}body:has(.auth-card) .content:before,body:has(app-level-list-page) .content:before,body:has(app-level-editor-page) .content:before,body:has(app-level-map-page) .content:before,body:has(app-level-play-page) .content:before{content:"";position:absolute;z-index:-1;inset:40px -10% auto;height:640px;pointer-events:none;filter:blur(24px);background:radial-gradient(40% 55% at 50% 45%,rgba(255,46,149,.16),transparent 70%),radial-gradient(32% 50% at 32% 32%,rgba(110,190,255,.26),transparent 70%),radial-gradient(32% 50% at 68% 60%,rgba(100,220,170,.24),transparent 70%)}body:has(.auth-card) .content>app-alert,body:has(app-level-list-page) .content>app-alert,body:has(app-level-editor-page) .content>app-alert,body:has(app-level-map-page) .content>app-alert,body:has(app-level-play-page) .content>app-alert{width:100%;max-width:460px}body:has(.auth-card) .auth-card,body:has(app-level-list-page) .auth-card,body:has(app-level-editor-page) .auth-card,body:has(app-level-map-page) .auth-card,body:has(app-level-play-page) .auth-card{width:100%;max-width:460px;padding:44px 40px 36px;gap:20px;border:0;border-radius:44px;background:var(--paper);box-shadow:#00000038 0 32px 80px,#00000014 0 2px 8px}body:has(.auth-card) .auth-card form,body:has(app-level-list-page) .auth-card form,body:has(app-level-editor-page) .auth-card form,body:has(app-level-map-page) .auth-card form,body:has(app-level-play-page) .auth-card form{gap:18px}body:has(.auth-card) .auth-card h1,body:has(app-level-list-page) .auth-card h1,body:has(app-level-editor-page) .auth-card h1,body:has(app-level-map-page) .auth-card h1,body:has(app-level-play-page) .auth-card h1{margin:0 0 4px;font-family:var(--font-hand);font-weight:400;font-style:normal;font-synthesis:none;font-size:clamp(34px,7vw,46px);line-height:1.1;letter-spacing:0;text-align:center;color:var(--ink)}body:has(.auth-card) .lead,body:has(app-level-list-page) .lead,body:has(app-level-editor-page) .lead,body:has(app-level-map-page) .lead,body:has(app-level-play-page) .lead{color:var(--slate);text-align:center}body:has(.auth-card) .field,body:has(app-level-list-page) .field,body:has(app-level-editor-page) .field,body:has(app-level-map-page) .field,body:has(app-level-play-page) .field{gap:8px}body:has(.auth-card) .field>span,body:has(app-level-list-page) .field>span,body:has(app-level-editor-page) .field>span,body:has(app-level-map-page) .field>span,body:has(app-level-play-page) .field>span{font-size:14px;font-weight:500;color:var(--charcoal)}body:has(.auth-card) .field input,body:has(app-level-list-page) .field input,body:has(app-level-editor-page) .field input,body:has(app-level-map-page) .field input,body:has(app-level-play-page) .field input{padding:13px 18px;border:1px solid var(--sand);border-radius:16px;background:var(--paper);color:var(--soft-ink);transition:border-color .2s,box-shadow .2s}body:has(.auth-card) .field input:hover,body:has(app-level-list-page) .field input:hover,body:has(app-level-editor-page) .field input:hover,body:has(app-level-map-page) .field input:hover,body:has(app-level-play-page) .field input:hover{border-color:var(--charcoal)}body:has(.auth-card) .field input:focus,body:has(app-level-list-page) .field input:focus,body:has(app-level-editor-page) .field input:focus,body:has(app-level-map-page) .field input:focus,body:has(app-level-play-page) .field input:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px var(--sky-tint)}body:has(.auth-card) .field input.ng-invalid.ng-touched,body:has(app-level-list-page) .field input.ng-invalid.ng-touched,body:has(app-level-editor-page) .field input.ng-invalid.ng-touched,body:has(app-level-map-page) .field input.ng-invalid.ng-touched,body:has(app-level-play-page) .field input.ng-invalid.ng-touched{border-color:var(--color-danger)}body:has(.auth-card) .hint,body:has(app-level-list-page) .hint,body:has(app-level-editor-page) .hint,body:has(app-level-map-page) .hint,body:has(app-level-play-page) .hint{color:var(--stone)}body:has(.auth-card) .button,body:has(app-level-list-page) .button,body:has(app-level-editor-page) .button,body:has(app-level-map-page) .button,body:has(app-level-play-page) .button{padding:14px 24px;border-radius:99px;font-size:16px;font-weight:600;transition:background-color .2s,border-color .2s,color .2s,transform .2s}body:has(.auth-card) .button:focus-visible,body:has(app-level-list-page) .button:focus-visible,body:has(app-level-editor-page) .button:focus-visible,body:has(app-level-map-page) .button:focus-visible,body:has(app-level-play-page) .button:focus-visible{outline:2px solid var(--sky);outline-offset:3px}body:has(.auth-card) .button--primary:hover:not(:disabled),body:has(.auth-card) .button--yandex:hover:not(:disabled),body:has(app-level-list-page) .button--primary:hover:not(:disabled),body:has(app-level-list-page) .button--yandex:hover:not(:disabled),body:has(app-level-editor-page) .button--primary:hover:not(:disabled),body:has(app-level-editor-page) .button--yandex:hover:not(:disabled),body:has(app-level-map-page) .button--primary:hover:not(:disabled),body:has(app-level-map-page) .button--yandex:hover:not(:disabled),body:has(app-level-play-page) .button--primary:hover:not(:disabled),body:has(app-level-play-page) .button--yandex:hover:not(:disabled){transform:translateY(-1px)}body:has(.auth-card) .button--yandex:hover:not(:disabled),body:has(app-level-list-page) .button--yandex:hover:not(:disabled),body:has(app-level-editor-page) .button--yandex:hover:not(:disabled),body:has(app-level-map-page) .button--yandex:hover:not(:disabled),body:has(app-level-play-page) .button--yandex:hover:not(:disabled){background:#e8351a}body:has(.auth-card) .button--ghost,body:has(app-level-list-page) .button--ghost,body:has(app-level-editor-page) .button--ghost,body:has(app-level-map-page) .button--ghost,body:has(app-level-play-page) .button--ghost{padding:13px 24px;border-color:var(--charcoal);background:var(--paper);color:var(--soft-ink);font-weight:500}body:has(.auth-card) .button--ghost:hover:not(:disabled),body:has(app-level-list-page) .button--ghost:hover:not(:disabled),body:has(app-level-editor-page) .button--ghost:hover:not(:disabled),body:has(app-level-map-page) .button--ghost:hover:not(:disabled),body:has(app-level-play-page) .button--ghost:hover:not(:disabled){border-color:var(--soft-ink);background:var(--soft-ink);color:var(--paper)}body:has(.auth-card) .button--small,body:has(.auth-card) .button--ghost.button--small,body:has(app-level-list-page) .button--small,body:has(app-level-list-page) .button--ghost.button--small,body:has(app-level-editor-page) .button--small,body:has(app-level-editor-page) .button--ghost.button--small,body:has(app-level-map-page) .button--small,body:has(app-level-map-page) .button--ghost.button--small,body:has(app-level-play-page) .button--small,body:has(app-level-play-page) .button--ghost.button--small{padding:8px 16px;font-size:14px}body:has(.auth-card) .divider,body:has(app-level-list-page) .divider,body:has(app-level-editor-page) .divider,body:has(app-level-map-page) .divider,body:has(app-level-play-page) .divider{font-size:14px;color:var(--stone)}body:has(.auth-card) .divider:before,body:has(.auth-card) .divider:after,body:has(app-level-list-page) .divider:before,body:has(app-level-list-page) .divider:after,body:has(app-level-editor-page) .divider:before,body:has(app-level-editor-page) .divider:after,body:has(app-level-map-page) .divider:before,body:has(app-level-map-page) .divider:after,body:has(app-level-play-page) .divider:before,body:has(app-level-play-page) .divider:after{border-top-color:var(--mist)}body:has(.auth-card) .auth-links,body:has(app-level-list-page) .auth-links,body:has(app-level-editor-page) .auth-links,body:has(app-level-map-page) .auth-links,body:has(app-level-play-page) .auth-links{justify-content:center;gap:8px 24px;padding-top:4px;font-size:14px;font-weight:500}body:has(.auth-card) .auth-links a,body:has(app-level-list-page) .auth-links a,body:has(app-level-editor-page) .auth-links a,body:has(app-level-map-page) .auth-links a,body:has(app-level-play-page) .auth-links a{color:var(--sky-deep)}body:has(.auth-card) .alert,body:has(app-level-list-page) .alert,body:has(app-level-editor-page) .alert,body:has(app-level-map-page) .alert,body:has(app-level-play-page) .alert{margin:0;padding:12px 18px;border-radius:16px;font-size:14px}:root[data-theme=dark] body:has(.auth-card),:root[data-theme=dark] body:has(app-level-list-page),:root[data-theme=dark] body:has(app-level-editor-page),:root[data-theme=dark] body:has(app-level-map-page),:root[data-theme=dark] body:has(app-level-play-page){--magenta: #ff5aa8;--magenta-tint: #3a1b2b;--sky: #48a9ff;--sky-deep: #6dbcff;--sky-tint: #14293d;--mint: #2fc98a;--mint-tint: #133228;--gold: #e0b341;--gold-tint: #342c12;--ink: #ffffff;--soft-ink: #e8e9ee;--slate: #c2c7d2;--midnight: #f2f3f7;--charcoal: #b3b8c4;--stone: #9096a3;--driftwood: #565b67;--sand: #2e323b;--mist: #272a32;--canvas: #14161c;--paper: #1d2027;--shadow-card: rgba(0, 0, 0, .55) 0 32px 80px 0, rgba(255, 255, 255, .06) 0 0 0 1px;--shadow-soft: rgba(0, 0, 0, .45) 0 16px 40px 0, rgba(255, 255, 255, .05) 0 0 0 1px;--color-danger: #ff6ba6;--color-success-bg: #133228;--color-success-text: #4fd8a0;--color-error-bg: #3a1b2b;--color-error-text: #ff9ec5;--color-info-text: #8ccbff}:root[data-theme=dark] body:has(.auth-card) .content:before,:root[data-theme=dark] body:has(app-level-list-page) .content:before,:root[data-theme=dark] body:has(app-level-editor-page) .content:before,:root[data-theme=dark] body:has(app-level-map-page) .content:before,:root[data-theme=dark] body:has(app-level-play-page) .content:before{opacity:.38}:root[data-theme=dark] body:has(.auth-card) .auth-card,:root[data-theme=dark] body:has(app-level-list-page) .auth-card,:root[data-theme=dark] body:has(app-level-editor-page) .auth-card,:root[data-theme=dark] body:has(app-level-map-page) .auth-card,:root[data-theme=dark] body:has(app-level-play-page) .auth-card{box-shadow:#0000008c 0 32px 80px,#ffffff0f 0 0 0 1px}:root[data-theme=dark] body:has(.auth-card) .button--ghost:hover:not(:disabled),:root[data-theme=dark] body:has(app-level-list-page) .button--ghost:hover:not(:disabled),:root[data-theme=dark] body:has(app-level-editor-page) .button--ghost:hover:not(:disabled),:root[data-theme=dark] body:has(app-level-map-page) .button--ghost:hover:not(:disabled),:root[data-theme=dark] body:has(app-level-play-page) .button--ghost:hover:not(:disabled){color:var(--canvas)}@media(max-width:560px){body:has(.auth-card) .content{padding:96px 12px 48px}body:has(.auth-card) .auth-card{padding:32px 20px 28px;border-radius:32px}}body:has(app-level-list-page) .content,body:has(app-level-editor-page) .content{align-items:stretch;padding:calc(var(--header-height) + 32px) 16px 80px}body:has(app-level-list-page) .content>app-alert,body:has(app-level-editor-page) .content>app-alert{max-width:1120px;margin:0 auto 16px}body:has(app-level-list-page) .page,body:has(app-level-editor-page) .page{width:100%;max-width:1120px;margin:0 auto;padding:44px 40px;border:0;border-radius:44px;background:var(--paper);box-shadow:var(--shadow-card)}body:has(app-level-list-page) h1,body:has(app-level-editor-page) h1{margin:0 0 8px;font-family:var(--font-hand);font-weight:400;font-style:normal;font-synthesis:none;font-size:clamp(34px,4.6vw,50px);line-height:1.1;letter-spacing:0;color:var(--ink)}body:has(app-level-list-page) .lead,body:has(app-level-editor-page) .lead{max-width:620px;text-align:left}@media(max-width:560px){body:has(app-level-list-page) .content,body:has(app-level-editor-page) .content{padding:calc(var(--header-height) + 16px) 8px 48px}body:has(app-level-list-page) .page,body:has(app-level-editor-page) .page{padding:28px 16px;border-radius:32px}}body:has(app-level-map-page) .content,body:has(app-level-play-page) .content{align-items:stretch;padding:calc(var(--header-height) + 32px) 16px 64px}@media(max-width:560px){body:has(app-level-map-page) .content,body:has(app-level-play-page) .content{padding:calc(var(--header-height) + 16px) 12px 40px}}
