:root{--color-primary:#e30613;--color-primary-dark:#b80510;--color-secondary:#ffd100;--color-bg:#0a0a0f;--color-surface:#14141f;--color-surface-hover:#1e1e2e;--color-text:#f5f5f5;--color-text-secondary:#a0a0b0;--color-active:#00e676;--color-inactive:#666680;--color-border:#ffffff14;--color-glow:#e3061326;--radius-card:12px;--radius-button:8px;--transition:all .2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}body,#root{min-height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff26}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.station-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);transition:var(--transition);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.station-card:hover{background:var(--color-surface-hover);border-color:var(--color-primary);box-shadow:0 0 16px var(--color-glow), 0 4px 12px #0000004d;transform:translateY(-2px)}.station-card__toggle-icon{z-index:1;cursor:pointer;width:26px;height:26px;transition:var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:8px;right:8px}.station-card__toggle-icon svg{width:16px;height:16px}.station-card__toggle-icon--close{color:#ef4444}.station-card__toggle-icon--close:hover{background:#ef444426;transform:scale(1.15)}.station-card__toggle-icon--check{color:#22c55e}.station-card__toggle-icon--check:hover{background:#22c55e26;transform:scale(1.15)}.station-card__toggle-icon:focus-visible{outline-offset:2px;outline:2px solid}.station-card__body{color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:8px;padding:16px 40px 16px 16px;display:flex}.station-card__body:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.station-card__header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.station-card__name{color:var(--color-text);margin:0;font-size:.95rem;font-weight:600}.station-card__id{color:var(--color-text-secondary);font-family:monospace;font-size:.75rem;font-weight:500}.station-card__meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.station-card__status{align-items:center;gap:6px;font-size:.75rem;font-weight:500;display:inline-flex}.station-card__status--published{color:var(--color-active)}.station-card__status--draft{color:var(--color-inactive)}.station-card__status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.station-card__time{color:var(--color-text-secondary);font-size:.7rem}.station-list{padding:24px}.station-list__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}@media (width<=640px){.station-list{padding:16px}.station-list__grid{grid-template-columns:1fr;gap:12px}}.service-icon{border-radius:var(--radius-button);background:var(--color-surface);border:1px solid var(--color-border);width:72px;height:72px;transition:var(--transition);cursor:default;justify-content:center;align-items:center;padding:14px;display:flex}.service-icon:hover{background:var(--color-surface-hover);border-color:var(--color-secondary);transform:translateY(-2px);box-shadow:0 4px 12px #ffd1001a}.service-icon__svg{width:100%;height:100%;color:var(--color-secondary)}.loading-spinner{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.loading-spinner__circle{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.loading-spinner__text{color:var(--color-text-secondary);margin:0;font-size:.85rem}@keyframes spin{to{transform:rotate(360deg)}}.error-message{border-radius:var(--radius-button);background:#e3061314;border:1px solid #e3061333;align-items:center;gap:8px;padding:16px 20px;display:flex}.error-message__text{color:var(--color-primary);margin:0;font-size:.85rem}.service-list{padding:4px 0}.service-list__grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.service-list__empty-msg{color:var(--color-text-secondary);text-align:center;padding:12px 0;font-size:.85rem}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;animation:.2s ease-out modal-fade-in;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);width:90%;max-width:440px;max-height:85vh;box-shadow:0 0 40px var(--color-glow), 0 8px 32px #00000080;outline:none;flex-direction:column;animation:.25s ease-out modal-scale-in;display:flex;position:relative}.modal__header{border-bottom:1px solid var(--color-border);background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);border-radius:var(--radius-card) var(--radius-card) 0 0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal__title{color:#fff;margin:0;font-size:1rem;font-weight:600}.modal__close{color:#fff;cursor:pointer;width:32px;height:32px;transition:var(--transition);background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;display:flex}.modal__close:hover{background:#ffffff4d}.modal__close:focus-visible{outline-offset:2px;outline:2px solid #fff}.modal__body{padding:20px;overflow-y:auto}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.stations-page{background:var(--color-bg);min-height:100vh;color:var(--color-text);flex-direction:column;display:flex}.stations-page--centered{justify-content:center;align-items:center}.stations-page__header{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.stations-page__title{color:#fff;letter-spacing:.02em;margin:0;font-size:1.1rem;font-weight:700}.stations-page__saving{color:#fffc;font-size:.75rem;animation:1.5s ease-in-out infinite pulse}.stations-page__content{flex:1;overflow-y:auto}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.section-text{color:var(--color-text);line-height:1.7}.section-text__placeholder{color:var(--color-text-secondary);text-align:center;padding:24px 0;font-style:italic}.section-page{background:var(--color-bg);min-height:100vh;color:var(--color-text)}.section-page__header{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);border-bottom:1px solid var(--color-border);z-index:100;align-items:center;gap:12px;padding:16px 24px;display:flex;position:sticky;top:0}.section-page__back{color:#fff;cursor:pointer;width:36px;height:36px;transition:var(--transition);background:#ffffff26;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.section-page__back svg{width:20px;height:20px}.section-page__back:hover{background:#ffffff4d}.section-page__back:focus-visible{outline-offset:2px;outline:2px solid #fff}.section-page__title{color:#fff;letter-spacing:.02em;margin:0;font-size:1.05rem;font-weight:700}.section-page__content{max-width:800px;margin:0 auto;padding:32px 24px 80px}.section-page__intro{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-secondary);border-radius:var(--radius-card);margin-bottom:24px;padding:16px 20px;line-height:1.6}.section-page__intro code{background:#ffffff14;border-radius:4px;padding:2px 6px;font-size:.85em}.section-page__block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:32px;padding:20px 24px}.section-page__block h2{color:var(--color-secondary);border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:10px;font-size:1rem;font-weight:600}.section-page__block h2 code{color:var(--color-text);font-weight:500}.section-page__block p{margin:0 0 12px;line-height:1.7}.section-page__block ul{margin:0 0 12px;padding-left:20px;line-height:1.7}.section-page__block li{margin-bottom:8px}.section-page__block code{background:#ffffff14;border-radius:4px;padding:2px 6px;font-size:.85em}.section-page__code-example{border:1px solid var(--color-border);background:#0d0d14;border-radius:8px;margin:12px 0;overflow:hidden}.section-page__code-example p{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);margin:0;padding:8px 12px;font-size:.75rem}.section-page__code-example pre{margin:0;padding:12px 16px;font-size:.8rem;line-height:1.6;overflow-x:auto}.section-page__code-example pre code{color:var(--color-text);background:0 0;border-radius:0;padding:0}.section-page__code-example--bad{border-color:#ef44444d}.section-page__code-example--bad p{color:#ef4444}.section-page__code-example--good{border-color:#22c55e4d}.section-page__code-example--good p{color:#22c55e}.section-page__table{border-collapse:collapse;width:100%;margin:12px 0;font-size:.85rem}.section-page__table th,.section-page__table td{text-align:left;border-bottom:1px solid var(--color-border);padding:10px 14px}.section-page__table th{color:var(--color-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.section-page__table td code{background:#ffffff14;border-radius:4px;padding:2px 6px;font-size:.85em}.section-page__checklist{padding-left:0;list-style:none}.section-page__checklist li{padding-left:28px;position:relative}.section-page__checklist li:before{content:"✓";color:var(--color-active);font-weight:700;position:absolute;left:4px}@media (width<=640px){.section-page__content{padding:20px 16px 60px}.section-page__block{padding:16px}.section-page__title{font-size:.9rem}}.stations-page__header--backend,.section-page__header--backend{background:linear-gradient(135deg,#1a6b3c 0%,#0d4f28 100%)}.backend-page__back-btn{color:#fff;cursor:pointer;width:36px;height:36px;transition:var(--transition);background:#ffffff26;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.backend-page__back-btn svg{width:20px;height:20px}.backend-page__back-btn:hover{background:#ffffff4d}.backend-page__back-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.stations-page__header-left{align-items:center;gap:12px;display:flex}.backend-page__badge{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:#ffffff1f;border-radius:20px;align-items:center;gap:6px;padding:4px 12px 4px 6px;font-size:.75rem;font-weight:600;display:flex}.backend-page__badge-icon{width:22px;height:22px}.backend-toggle-btn{z-index:200;cursor:pointer;letter-spacing:.02em;border:none;border-radius:24px;align-items:center;gap:8px;padding:8px 16px 8px 10px;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .25s;display:flex;position:fixed;top:12px;right:24px;box-shadow:0 2px 12px #0000004d}.backend-toggle-btn--to-backend{color:#fff;background:linear-gradient(135deg,#1a6b3c 0%,#0d4f28 100%)}.backend-toggle-btn--to-backend:hover{background:linear-gradient(135deg,#22875a 0%,#156b3c 100%);transform:translateY(-1px);box-shadow:0 4px 20px #1a6b3c66}.backend-toggle-btn--to-frontend{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff}.backend-toggle-btn--to-frontend:hover{background:linear-gradient(135deg, #f5222d 0%, var(--color-primary) 100%);box-shadow:0 4px 20px var(--color-glow);transform:translateY(-1px)}.backend-toggle-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.backend-toggle-btn__icon{flex-shrink:0;width:20px;height:20px}.section-page__context-badge{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:#ffffff1f;border-radius:12px;flex-shrink:0;margin-left:auto;padding:3px 10px;font-size:.7rem;font-weight:600}.section-page__subheading{border-left:3px solid var(--color-border);margin:16px 0 8px;padding-left:12px;font-size:.9rem;font-weight:600}.section-page__subheading--warning{color:#f59e0b;border-left-color:#f59e0b}.section-page__subheading--success{color:#22c55e;border-left-color:#22c55e}.section-page__callout{border-radius:var(--radius-card);border:1px solid;margin:16px 0;padding:16px 20px}.section-page__callout--warning{background:#f59e0b14;border-color:#f59e0b4d}.section-page__callout--warning strong{color:#f59e0b}.section-page__callout ul{margin-top:8px;padding-left:20px}.section-page__callout li{margin-bottom:6px;line-height:1.6}.backend-landing{max-width:900px;margin:0 auto;padding:32px 24px 80px}.backend-landing__subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:24px;font-size:1.05rem}.backend-landing__links{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:32px;display:flex}.backend-landing__link-btn{transition:var(--transition);color:#fff;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-flex}.backend-landing__link-btn svg{flex-shrink:0;width:18px;height:18px}.backend-landing__link-btn--github{background:#24292e}.backend-landing__link-btn--github:hover{background:#3d4349;box-shadow:0 2px 10px #0000004d}.backend-landing__link-btn--swagger{color:#1a1a2e;background:#85ea2d}.backend-landing__link-btn--swagger:hover{background:#9cf74a;box-shadow:0 2px 10px #85ea2d4d}.backend-landing__link-btn--openapi{background:#6366f1}.backend-landing__link-btn--openapi:hover{background:#818cf8;box-shadow:0 2px 10px #6366f14d}.backend-landing__cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:32px;display:grid}.backend-landing__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);transition:var(--transition);flex-direction:column;align-items:center;gap:8px;padding:24px 16px;display:flex}.backend-landing__card:hover{background:var(--color-surface-hover);border-color:#ffffff1f}.backend-landing__card-icon{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;padding:8px;display:flex}.backend-landing__card-icon svg{width:100%;height:100%}.backend-landing__card-icon--api{color:#818cf8;background:#6366f126}.backend-landing__card-icon--tests{color:#22c55e;background:#22c55e26}.backend-landing__card-icon--coverage{color:#f59e0b;background:#f59e0b26}.backend-landing__card-icon--arch{color:#a78bfa;background:#8b5cf626}.backend-landing__card-value{color:var(--color-text);font-size:1.5rem;font-weight:800;line-height:1}.backend-landing__card-label{color:var(--color-text-secondary);text-align:center;font-size:.75rem}.backend-landing__tech{margin-bottom:32px}.backend-landing__tech-title{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;text-align:center;margin-bottom:12px;font-size:.85rem;font-weight:600}.backend-landing__badges{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.backend-landing__badge{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);white-space:nowrap;border-radius:20px;padding:5px 14px;font-size:.75rem;font-weight:500}.backend-landing__intro{background:var(--color-surface);border-radius:0 var(--radius-card) var(--radius-card) 0;color:var(--color-text);border-left:3px solid #1a6b3c;margin:0 0 32px;padding:20px 24px;font-size:.9rem;line-height:1.7}.backend-landing__section-title{color:var(--color-secondary);border-bottom:1px solid var(--color-border);margin-bottom:16px;padding-bottom:8px;font-size:1rem;font-weight:700}.backend-landing__architecture{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:32px;padding:24px}.backend-landing__flow{flex-direction:column;align-items:center;gap:4px;display:flex}.backend-landing__flow-step{text-align:center;background:#1a6b3c1f;border:1px solid #1a6b3c4d;border-radius:8px;width:100%;max-width:380px;padding:12px 20px}.backend-landing__flow-step--external{background:#6366f11a;border-color:#6366f14d}.backend-landing__flow-label{color:var(--color-text);font-size:.88rem;font-weight:700;display:block}.backend-landing__flow-desc{color:var(--color-text-secondary);margin-top:2px;font-size:.72rem;display:block}.backend-landing__flow-arrow{color:var(--color-text-secondary);font-size:1.2rem;line-height:1}.backend-landing__packages{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:32px;padding:24px}.backend-landing__tree{border:1px solid var(--color-border);background:#0d0d14;border-radius:8px;padding:16px 20px;font-size:.8rem;line-height:1.6;overflow-x:auto}.backend-landing__tree code{color:var(--color-text)}.http-method{letter-spacing:.03em;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:700}.http-method--post{color:#22c55e;background:#22c55e26}.http-method--get{color:#818cf8;background:#6366f126}.http-method--patch{color:#f59e0b;background:#f59e0b26}.state-allowed{color:#22c55e;font-weight:500}.state-denied{color:#ef4444;font-weight:500}.state-same{color:var(--color-text-secondary);font-style:italic}.backend-coverage-bars{flex-direction:column;gap:10px;margin:12px 0 20px;display:flex}.backend-coverage-bar{align-items:center;gap:12px;display:flex}.backend-coverage-bar__label{width:100px;color:var(--color-text-secondary);text-align:right;flex-shrink:0;font-size:.8rem}.backend-coverage-bar__track{background:#ffffff0f;border-radius:5px;flex:1;height:10px;overflow:hidden}.backend-coverage-bar__fill{background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:5px;height:100%;transition:width .8s}.backend-coverage-bar__value{color:#22c55e;flex-shrink:0;width:52px;font-size:.8rem;font-weight:700}.backend-pyramid{flex-direction:column;align-items:center;gap:4px;margin:16px 0;display:flex}.backend-pyramid__level{text-align:center;border-radius:6px;justify-content:center;align-items:center;gap:12px;padding:10px 16px;font-size:.8rem;display:flex}.backend-pyramid__level--integration{background:#f59e0b1a;border:1px solid #f59e0b4d;width:50%;min-width:240px}.backend-pyramid__level--service{background:#6366f11a;border:1px solid #6366f14d;width:70%;min-width:300px}.backend-pyramid__level--domain{background:#22c55e1a;border:1px solid #22c55e4d;width:90%;min-width:360px}.backend-pyramid__count{color:var(--color-text);font-size:1.2rem;font-weight:800}.backend-pyramid__desc{color:var(--color-text-secondary);font-size:.75rem}.backend-annexes{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.backend-annex-card{background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text);transition:var(--transition);align-items:center;gap:14px;padding:16px;text-decoration:none;display:flex}.backend-annex-card:hover{background:#1a6b3c14;border-color:#1a6b3c80;transform:translateY(-2px);box-shadow:0 4px 16px #0003}.backend-annex-card__icon{color:#22c55e;flex-shrink:0;width:36px;height:36px}.backend-annex-card__icon svg{width:100%;height:100%}.backend-annex-card__text{flex-direction:column;gap:2px;display:flex}.backend-annex-card__text strong{color:var(--color-text);font-size:.85rem}.backend-annex-card__text span{color:var(--color-text-secondary);font-size:.72rem;line-height:1.4}.backend-page__placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:40px 24px;display:flex}.backend-page__placeholder-icon{width:100px;height:100px;color:var(--color-text-secondary);opacity:.4;margin-bottom:24px}.backend-page__placeholder-icon svg{width:100%;height:100%}.backend-page__placeholder-title{color:var(--color-text);margin-bottom:12px;font-size:1.3rem;font-weight:700}.backend-page__placeholder-text{max-width:480px;color:var(--color-text-secondary);font-size:.9rem;line-height:1.7}.section-page__pending-content{color:var(--color-text-secondary);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-card);margin:8px 0;padding:20px 0;font-style:italic}@media (width<=640px){.backend-toggle-btn{padding:6px 12px 6px 8px;font-size:.7rem;top:10px;right:12px}.backend-toggle-btn__icon{width:16px;height:16px}.backend-landing{padding:20px 16px 60px}.backend-landing__cards{grid-template-columns:repeat(2,1fr)}.backend-landing__link-btn{padding:8px 14px;font-size:.75rem}.backend-landing__flow-step{max-width:100%}.backend-pyramid__level--integration{width:70%;min-width:auto}.backend-pyramid__level--service{width:85%;min-width:auto}.backend-pyramid__level--domain{width:100%;min-width:auto}.backend-annexes{grid-template-columns:1fr}.backend-coverage-bar__label{width:80px;font-size:.72rem}.backend-page__placeholder{min-height:40vh;padding:24px 16px}.backend-page__placeholder-title{font-size:1.1rem}}.floating-menu{z-index:900;position:fixed;bottom:24px;right:24px}.floating-menu__overlay{z-index:-1;position:fixed;inset:0}.floating-menu__items{width:0;height:0;position:absolute;bottom:0;right:0}.floating-menu__item{color:#fff;cursor:pointer;background:#e8560a;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s,box-shadow .2s;display:flex;position:absolute;bottom:8px;right:8px;box-shadow:0 2px 8px #0000004d}.floating-menu__item:hover{background:#ff6d1a;box-shadow:0 4px 16px #e8560a66}.floating-menu__item:focus-visible{outline-offset:2px;outline:2px solid #fff}.floating-menu__item svg{width:22px;height:22px}.floating-menu__fab{z-index:1;color:#fff;cursor:pointer;background:#e8560a;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:transform .3s,background .3s,box-shadow .3s;display:flex;position:relative;box-shadow:0 4px 16px #e8560a59}.floating-menu__fab:hover{background:#ff6d1a;transform:scale(1.05);box-shadow:0 6px 24px #e8560a80}.floating-menu__fab--open{background:var(--color-primary);box-shadow:0 4px 16px var(--color-glow);transform:rotate(0)}.floating-menu__fab--open:hover{background:var(--color-primary-dark)}.floating-menu__fab-icon{width:24px;height:24px;transition:transform .3s}.floating-menu__fab--open .floating-menu__fab-icon{transform:rotate(90deg)}.floating-menu__fab:focus-visible{outline-offset:3px;outline:2px solid #fff}@media (width<=640px){.floating-menu{bottom:16px;right:16px}.floating-menu__fab{width:48px;height:48px}.floating-menu__item{width:42px;height:42px}}
