*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}:root,[data-theme=light]{--bg:#f4f7f8;--bg-elevated:#ffffff;--bg-muted:#e8eef0;--ink:#0c1520;--ink-soft:#1a2733;--sea:#1f7d8c;--sea-soft:#2a9aad;--sea-deep:#165a66;--border:#d0dce0;--danger:#b33a3a;--success:#2f7a4f;--warning:#b5892b;--focus-ring:#1f7d8c;--sidebar:#0c1520;--sidebar-ink:#f4f7f8;--shadow:0 8px 24px rgba(12,21,32,0.08)}[data-theme=dark]{--bg:#0c1520;--bg-elevated:#1a2733;--bg-muted:#14202c;--ink:#f4f7f8;--ink-soft:#e8eef0;--sea:#2a9aad;--sea-soft:#1f7d8c;--sea-deep:#165a66;--border:#243444;--danger:#e06a6a;--success:#5cb884;--warning:#d4a84a;--focus-ring:#2a9aad;--sidebar:#070d14;--sidebar-ink:#f4f7f8;--shadow:0 10px 28px rgba(0,0,0,0.45)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;box-sizing:border-box;width:2.5rem;height:2.5rem;min-width:2.5rem;min-height:2.5rem;padding:0;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-elevated);color:var(--ink);transition:background .16s ease,border-color .16s ease,transform .12s ease}.icon-btn:hover:not(:disabled){border-color:var(--sea);color:var(--sea-deep)}.icon-btn:active:not(:disabled){transform:translateY(1px)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn--primary{background:var(--sea);border-color:var(--sea);color:#fff}.icon-btn--primary:hover:not(:disabled){background:var(--sea-deep);border-color:var(--sea-deep);color:#fff}.icon-btn--ghost{background:rgba(0,0,0,0)}.icon-btn--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.icon-btn span.label{font-size:.85rem;font-weight:600}.icon-btn:has(span.label){width:auto;padding:0 .85rem}.app-shell{display:grid;grid-template-columns:16rem 1fr;min-height:100dvh;background:var(--bg);color:var(--ink);transition:grid-template-columns .2s ease}.app-shell.is-sidebar-collapsed{grid-template-columns:4.5rem 1fr}@media(max-width:860px){.app-shell,.app-shell.is-sidebar-collapsed{grid-template-columns:1fr}}.sidebar-backdrop{display:none}@media(max-width:860px){.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:40;background:color-mix(in srgb,var(--ink) 40%,transparent);opacity:0;pointer-events:none;transition:opacity .18s ease}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto}}.sidebar{position:relative;background:var(--sidebar);color:var(--sidebar-ink);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.25rem;z-index:50;transition:padding .2s ease}@media(max-width:860px){.sidebar{position:fixed;inset:0 auto 0 0;width:min(18rem,86vw);transform:translateX(-105%);transition:transform .2s ease;box-shadow:var(--shadow)}.sidebar.is-open{transform:translateX(0)}.sidebar.is-collapsed{padding:1.25rem 1rem}.sidebar.is-collapsed .sidebar__brand-full{display:block}.sidebar.is-collapsed .sidebar__brand-mark{display:none}.sidebar.is-collapsed .sidebar__label{display:inline}.sidebar.is-collapsed .sidebar__chevron{display:block}.sidebar.is-collapsed .sidebar__group-toggle,.sidebar.is-collapsed .sidebar__link{justify-content:flex-start;padding:.65rem .75rem}.sidebar.is-collapsed .sidebar__collapse-btn,.sidebar.is-collapsed .sidebar__flyout{display:none}}.sidebar__top{display:flex;flex-direction:column;align-items:stretch;gap:.75rem}.sidebar__brand{font-size:1.35rem;font-weight:700;letter-spacing:.02em;min-height:1.75rem;display:flex;align-items:center;justify-content:flex-start}.sidebar__brand-mark{display:none;width:2rem;height:2rem;border-radius:.45rem;align-items:center;justify-content:center;font-size:1.1rem;background:color-mix(in srgb,var(--sea) 35%,transparent)}.sidebar__nav{display:flex;flex-direction:column;gap:.35rem;flex:1 1;min-height:0}.sidebar__link{position:relative;display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;border-radius:.55rem;color:inherit;opacity:.82;transition:background .16s ease,opacity .16s ease;min-height:2.5rem}.sidebar__link.is-active,.sidebar__link:hover{background:color-mix(in srgb,var(--sea) 35%,transparent);opacity:1}.sidebar__link--child{padding-left:1.15rem;font-size:.92rem;min-height:2.35rem}.sidebar__group{position:relative;display:flex;flex-direction:column;gap:.2rem}.sidebar__group-toggle{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.65rem .75rem;min-height:2.5rem;border:0;border-radius:.55rem;background:rgba(0,0,0,0);color:inherit;font:inherit;cursor:pointer;opacity:.82;transition:background .16s ease,opacity .16s ease}.sidebar__group-toggle.is-active,.sidebar__group-toggle:hover{background:color-mix(in srgb,var(--sea) 28%,transparent);opacity:1}.sidebar__group-toggle-main{display:inline-flex;align-items:center;gap:.65rem;min-width:0}.sidebar__chevron{flex-shrink:0;transition:transform .16s ease;opacity:.75}.sidebar__group.is-open .sidebar__chevron{transform:rotate(180deg)}.sidebar__group-children{display:flex;flex-direction:column;gap:.15rem;padding-left:.35rem}.sidebar__flyout{display:none}.sidebar__collapse-btn{position:relative;display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:.55rem;background:rgba(0,0,0,0);color:inherit;cursor:pointer;opacity:.75;flex-shrink:0;transition:background .16s ease,opacity .16s ease}@media(min-width:861px){.sidebar__collapse-btn{display:inline-flex}}.sidebar__collapse-btn:hover{background:color-mix(in srgb,var(--sea) 28%,transparent);opacity:1}@media(min-width:861px){.sidebar:not(.is-collapsed) .sidebar__collapse-btn[data-tooltip]:focus-visible:after,.sidebar:not(.is-collapsed) .sidebar__collapse-btn[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;left:calc(100% + .55rem);top:50%;transform:translateY(-50%);white-space:nowrap;padding:.35rem .55rem;border-radius:.4rem;background:var(--ink);color:var(--bg);font-size:.78rem;font-weight:500;line-height:1.2;z-index:70;pointer-events:none;box-shadow:var(--shadow)}}@media(min-width:861px){.sidebar.is-collapsed{padding:1.25rem .55rem;align-items:stretch}.sidebar.is-collapsed .sidebar__top{align-items:center}.sidebar.is-collapsed .sidebar__brand{justify-content:center}.sidebar.is-collapsed .sidebar__brand-full{display:none}.sidebar.is-collapsed .sidebar__brand-mark{display:inline-flex}.sidebar.is-collapsed .sidebar__chevron,.sidebar.is-collapsed .sidebar__label{display:none}.sidebar.is-collapsed .sidebar__collapse-btn,.sidebar.is-collapsed .sidebar__group-toggle,.sidebar.is-collapsed .sidebar__link{justify-content:center;padding:.65rem;gap:0}.sidebar.is-collapsed .sidebar__collapse-btn{width:100%;height:2.5rem}.sidebar.is-collapsed .sidebar__group-toggle-main{justify-content:center}.sidebar.is-collapsed .sidebar__link--child{padding-left:.65rem;justify-content:flex-start;gap:.65rem}.sidebar.is-collapsed .sidebar__link--child .sidebar__label{display:inline}.sidebar.is-collapsed .sidebar__flyout{display:flex;flex-direction:column;gap:.15rem;position:absolute;left:calc(100% + .45rem);top:0;min-width:11.5rem;padding:.45rem;border-radius:.65rem;background:var(--bg-elevated);color:var(--ink);box-shadow:var(--shadow);border:1px solid var(--border);z-index:60}.sidebar.is-collapsed .sidebar__flyout-title{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.65;padding:.35rem .55rem .2rem}.sidebar.is-collapsed [data-tooltip]:focus-visible:after,.sidebar.is-collapsed [data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;left:calc(100% + .55rem);top:50%;transform:translateY(-50%);white-space:nowrap;padding:.35rem .55rem;border-radius:.4rem;background:var(--ink);color:var(--bg);font-size:.78rem;font-weight:500;line-height:1.2;z-index:70;pointer-events:none;box-shadow:var(--shadow)}.sidebar.is-collapsed .sidebar__group.is-flyout-open .sidebar__group-toggle[data-tooltip]:after{display:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-elevated);min-height:3.5rem}@media(min-width:861px){.topbar{padding:.85rem 1.25rem}}.topbar__start{display:flex;align-items:center;gap:.5rem;min-width:0}.topbar__email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar__actions{margin-bottom:0;flex-shrink:0}@media(min-width:861px){.topbar__menu-btn{display:none}}.main-panel{display:flex;flex-direction:column;min-width:0;min-height:100dvh}.main-content{flex:1 1;padding:1rem;overflow:auto;min-width:0}@media(min-width:861px){.main-content{padding:1.25rem}}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:.75rem;box-shadow:var(--shadow);padding:1rem 1.1rem}.table{width:100%;min-width:36rem;border-collapse:collapse}.table td,.table th{text-align:left;padding:.7rem .55rem;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.15rem;padding:0 .15rem}.form-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.field{display:flex;flex-direction:column;gap:.3rem}.field label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:.5rem;background:var(--bg);color:var(--ink);padding:.55rem .7rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.stack{display:flex;flex-direction:column;gap:.75rem}.muted{color:var(--ink-soft)}.error-text{color:var(--danger)}.login-page{min-height:100dvh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at top left,color-mix(in srgb,var(--sea) 28%,transparent),transparent 42%),linear-gradient(160deg,var(--bg),color-mix(in srgb,var(--sea) 12%,var(--bg)))}.login-card{width:min(100%,24rem)}.block-list{display:flex;flex-direction:column;gap:.65rem}.block-item{display:grid;grid-template-columns:auto 1fr auto;grid-gap:.75rem;gap:.75rem;align-items:start;padding:.75rem;border:1px solid var(--border);border-radius:.65rem;background:var(--bg)}.block-item.is-dragging{opacity:.7;box-shadow:var(--shadow)}.preview{border:1px dashed var(--border);border-radius:.65rem;padding:1rem;background:var(--bg)}.preview h1,.preview h2,.preview h3{margin:0 0 .5rem}.preview p{margin:0 0 .75rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.search-field{display:flex;align-items:center;gap:.35rem;box-sizing:border-box;flex:1 1 12rem;min-width:min(100%,12rem);max-width:22rem;height:2.5rem;min-height:2.5rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg);padding:0 .35rem 0 .7rem;transition:border-color .16s ease,box-shadow .16s ease}.search-field:focus-within{border-color:var(--sea);box-shadow:0 0 0 2px color-mix(in srgb,var(--sea) 22%,transparent)}.search-field__icon{color:var(--ink-soft);flex-shrink:0}.search-field__input{flex:1 1;border:0;background:rgba(0,0,0,0);color:var(--ink);padding:0;min-width:0;height:100%;font:inherit;font-size:.9rem}.search-field__input:focus{outline:none}.search-field__input::-webkit-search-cancel-button{display:none}.search-field .icon-btn{width:2rem;height:2rem;min-width:2rem;min-height:2rem;border-color:rgba(0,0,0,0)}.locale-select{position:relative}.locale-select__trigger{display:inline-flex;align-items:center;gap:.45rem;box-sizing:border-box;height:2.5rem;min-height:2.5rem;padding:0 .65rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-elevated);color:var(--ink);cursor:pointer;font:inherit;font-size:.88rem;font-weight:600}.locale-select__trigger:hover{border-color:var(--sea)}.locale-select__flag{font-size:1.1rem;line-height:1}.locale-select__label{white-space:nowrap}.locale-select__menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:30;min-width:10rem;margin:0;padding:.35rem;list-style:none;border:1px solid var(--border);border-radius:.55rem;background:var(--bg-elevated);box-shadow:var(--shadow)}.locale-select__option{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem .65rem;border:0;border-radius:.4rem;background:rgba(0,0,0,0);color:var(--ink);cursor:pointer;font:inherit;text-align:left}.locale-select__option.is-active,.locale-select__option:hover{background:color-mix(in srgb,var(--sea) 16%,transparent)}.tab-bar{display:flex;flex-wrap:wrap;gap:.4rem}.tab-bar .icon-btn{min-height:2.35rem}.table-actions{display:flex;flex-wrap:wrap;gap:.35rem}.form-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;grid-column:1/-1}.panel-heading{margin:0 0 .35rem;grid-column:1/-1;font-size:1.05rem}.route-prices{grid-column:1/-1;display:flex;flex-direction:column;gap:.65rem;padding-top:.25rem;border-top:1px solid var(--border)}.route-prices__heading{margin:0;font-size:.92rem;font-weight:650;color:var(--ink-soft)}.route-prices__grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.list-page__header{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;margin-bottom:.25rem}.list-page__header h1{margin:0;font-size:1.35rem;line-height:1.25}@media(min-width:720px){.list-page__header{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}.list-page__header h1{font-size:1.45rem}}.list-page__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem;margin-bottom:0;width:100%}@media(min-width:720px){.list-page__toolbar{width:auto;justify-content:flex-end}}.list-page__body{display:flex;flex-direction:column;gap:.75rem;min-width:0;overflow-x:auto}.detail-page__title-row{display:flex;align-items:center;gap:.5rem}.add-fab{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--sea);border:1px solid var(--sea);color:#fff;text-decoration:none;transition:background .16s ease,transform .12s ease}.add-fab:hover{background:var(--sea-deep);border-color:var(--sea-deep);color:#fff}.add-fab:active{transform:translateY(1px)}.filter-select{display:inline-flex;flex-direction:column;justify-content:flex-end;gap:.2rem;min-width:9rem}.filter-select__label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.filter-select__control{box-sizing:border-box;height:2.5rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg);color:var(--ink);padding:0 .65rem;font:inherit;font-size:.88rem}.modal-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,var(--ink) 35%,transparent)}.modal{width:min(100%,24rem);padding:1.25rem;border-radius:.75rem;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow)}.modal__title{margin:0 0 .5rem;font-size:1.1rem}.modal__message{margin:0 0 1rem;color:var(--ink-soft);line-height:1.45}.modal__actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.detail-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.detail-field{display:flex;flex-direction:column;gap:.25rem}.detail-field__label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.detail-field__value{margin:0;font-size:.95rem}