.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--admin-bg, #ffffff);padding:var(--space-3, 24px);position:relative;overflow-x:hidden;overflow-y:auto}.login-container{background:var(--admin-bg, #ffffff);border-radius:12px;border:1px solid var(--admin-border, #eaecf0);padding:var(--space-4, 32px);width:100%;max-width:420px;position:relative;z-index:1;animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.login-container{animation:none}}.login-header{text-align:center;margin-bottom:var(--space-3, 24px);display:flex;flex-direction:column;align-items:center;gap:var(--space-1, 8px)}.login-header .logo{margin-bottom:var(--space-1, 8px);width:120px;height:auto}.login-header h1{font-size:var(--font-size-2xl, 32px);color:var(--admin-primary, #1e4fd7);margin:0;font-weight:600}.login-header p{font-size:var(--font-size-sm, 14px);color:var(--admin-text-muted, #666);margin:0}.login-form{display:flex;flex-direction:column;gap:var(--space-2, 16px)}.login-form .form-field{margin-bottom:0}.login-password-toggle{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--font-size-sm, 14px);font-weight:600;color:var(--admin-text, #344054)}.login-password-toggle input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--admin-primary, #1e4fd7)}.error-message{background-color:var(--color-error-bg, #FFEBEE);color:var(--color-error-text, #D32F2F);padding:var(--space-2, 16px);border-radius:4px;font-size:var(--font-size-sm, 14px);border-left:4px solid var(--color-error-border, #D32F2F)}.login-footer{margin-top:var(--space-3, 24px);padding-top:var(--space-2, 16px);border-top:1px solid var(--admin-border, #E0E0E0);text-align:center;font-size:var(--font-size-sm, 14px);color:var(--admin-text-subtle, #999)}.login-footer p{margin:0}@media (max-width: 480px){.login-container{padding:var(--space-3, 24px)}.login-header h1{font-size:var(--font-size-xl, 24px)}}@media (max-width: 480px),(max-height: 700px){.login-header{margin-bottom:var(--space-3, 24px);gap:var(--space-1, 8px)}.login-header .logo{width:min(140px,70vw);height:auto;margin-bottom:var(--space-1, 8px)}.login-form{gap:var(--space-2, 16px)}.login-footer{margin-top:var(--space-3, 24px);padding-top:var(--space-2, 16px)}}.dashboard-layout{display:flex;height:100vh;overflow:hidden;background:#f3f4f6}.skip-link{position:absolute;top:-40px;left:16px;background:#fff;color:#101828;padding:8px 12px;border-radius:6px;border:1px solid #d0d5dd;z-index:1100;transition:top .15s ease}.skip-link:focus{top:16px;outline:2px solid #1e4fd7;outline-offset:2px}.mobile-header,.mobile-menu-overlay{display:none}.sidebar{width:296px;min-width:296px;background-color:#fff;color:#1f2937;display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid #e5e7eb;transition:transform .26s ease-in-out;position:relative}.sidebar:before,.sidebar-header:before{content:none!important}.sidebar-header{padding:1.1rem 1rem .85rem;border-bottom:1px solid #e5e7eb;display:grid;gap:.8rem;position:relative}.sidebar-brand-button{border:0;background:none;padding:0}.sidebar-brand{display:flex;align-items:center;gap:.75rem;text-align:left;cursor:pointer;width:100%}.dashboard-logo{width:62px;height:auto;flex-shrink:0}.sidebar-brand-text{display:grid}.sidebar-brand-title{font-size:1.02rem;line-height:1.1;font-weight:700;color:#111827}.sidebar-brand-subtitle{font-size:.85rem;color:#667085}.sidebar-user-card{display:flex;align-items:center;gap:.65rem;padding:.75rem .8rem;border:1px solid #e4e7ec;border-radius:10px;background:#fafafa;min-height:72px}.sidebar-user-avatar{width:34px;height:34px;border-radius:8px;background:#b42318;color:#fff;font-size:.78rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;text-transform:uppercase}.sidebar-user-meta{display:grid;gap:.25rem;min-width:0;flex:1}.user-name{font-size:1.02rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role-pill{width:fit-content;padding:.2rem .5rem;border-radius:999px;background:#fef3f2;color:#b42318;border:1px solid #fecdca;font-size:.72rem;font-weight:600}.sidebar-scope{font-size:.78rem;color:#667085;padding-top:.15rem}.sidebar-nav{flex:1;padding:.6rem 0;overflow-y:auto}.nav-section-label{padding:.5rem 1rem .35rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:#98a2b3}.nav-link{display:flex;align-items:center;gap:.7rem;margin:0 .55rem .2rem;padding:.62rem .72rem;color:#344054;text-decoration:none;border-radius:8px;border-left:3px solid transparent;transition:background-color .18s ease,color .18s ease}.nav-link:hover{background-color:#f6f7f9;color:#101828}.nav-link:focus-visible{outline:2px solid #1e4fd7;outline-offset:1px}.nav-link.active{background-color:#fff1f1;color:#b42318;border-left-color:#dc2626;font-weight:600}.nav-icon{width:16px;height:16px;color:#667085;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.nav-link.active .nav-icon{color:#b42318}.sidebar-footer{padding:.9rem;border-top:1px solid #e5e7eb}.logout-button{width:100%;display:flex;align-items:center;gap:.7rem;padding:.6rem .72rem;background-color:transparent;color:#344054;border:1px solid #d0d5dd;border-radius:8px;transition:background-color .18s ease;cursor:pointer;font-family:inherit;font-size:.95rem}.logout-button:hover{background-color:#f7f7f8}.logout-button:focus-visible{outline:2px solid #1e4fd7;outline-offset:2px}.main-content{flex:1;overflow-y:auto;background:#f3f4f6}@media (max-width: 767px){.dashboard-layout{flex-direction:column}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .8rem;background-color:#111827;color:#fff;height:56px;flex-shrink:0;z-index:1001}.hamburger-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:none;color:#fff;cursor:pointer;padding:0;border-radius:6px}.hamburger-button:hover{background-color:#ffffff1a}.hamburger-button:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.hamburger-icon{font-size:1.4rem;line-height:1}.mobile-logo{width:78px;height:auto}.mobile-user-info{max-width:120px}.mobile-user-name{display:block;font-size:.8rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-menu-overlay{display:block;position:fixed;top:56px;left:0;right:0;bottom:0;background-color:#00000073;z-index:999}.sidebar{position:fixed;top:56px;left:0;bottom:0;width:296px;max-width:90vw;transform:translate(-100%);z-index:1000}.sidebar--open{transform:translate(0)}.main-content{flex:1;overflow-y:auto}}@media (prefers-reduced-motion: reduce){.sidebar,.nav-link,.logout-button,.skip-link{transition:none}}.sync-error-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.1rem;border-radius:10px;background:var(--color-warning-bg, #fff4e5);border:1px solid var(--color-warning-border, #f6c343);color:var(--color-warning-text, #7a4a00)}.sync-error-content{display:flex;flex-direction:column;gap:.3rem}.sync-error-title{font-weight:700}.sync-error-message{font-size:.95rem}.sync-error-meta{font-size:.8rem;color:var(--color-warning-text, #8a5a00)}.admin-status-badge{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid transparent;white-space:nowrap}.admin-status-badge--caps{text-transform:uppercase;letter-spacing:.02em}.admin-status-badge--no-caps{text-transform:none;letter-spacing:normal}.admin-status-badge--green{background:var(--color-success-bg, #eafaf0);color:var(--color-success-text, #0f7a3a);border-color:var(--color-success-border, #bde9cc)}.admin-status-badge--amber{background:var(--color-warning-bg, #fff6e5);color:var(--color-warning-text, #9a5a00);border-color:var(--color-warning-border, #f6c343)}.admin-status-badge--red{background:var(--color-error-bg, #ffe9e9);color:var(--color-error-text, #b42318);border-color:var(--color-error-border, #fecdca)}.admin-status-badge--blue{background:var(--admin-primary-soft, #e8efff);color:var(--admin-primary, #1e4fd7);border-color:#b6c8ff}.admin-status-badge--gray{background:var(--admin-surface-alt, #f1f3f5);color:var(--admin-text-muted, #475467);border-color:var(--admin-border, #d0d5dd)}.page{padding:clamp(16px,3vw,32px);max-width:1400px;margin:0 auto;display:grid;gap:var(--space-3, 24px)}.page--overview,.page--device-detail{max-width:min(1760px,calc(100vw - 56px));padding:clamp(14px,1.8vw,24px);gap:16px}.page--device-detail .page-content{padding:clamp(14px,2vw,24px)}.page-header{display:flex;flex-direction:column;gap:.5rem}.page-header h1{font-size:clamp(24px,2.2vw,32px);color:var(--admin-primary, #1e4fd7);margin:0}.page-header p{color:var(--admin-text-muted, #616e7c);font-size:1rem;margin:0}.page-content{background:#fff;border-radius:10px;padding:clamp(16px,2.5vw,32px);border:1px solid var(--admin-border, #eaecf0);display:grid;gap:var(--space-3, 24px);box-shadow:0 2px 8px #1018280a}.page--overview .page-content{background:transparent;border:none;box-shadow:none;border-radius:0;padding:0;gap:16px}.error-banner{background:var(--color-warning-bg, #fff4e5);color:var(--color-warning-text, #7a4a00);border:1px solid var(--color-warning-border, #f6c343);padding:.75rem 1rem;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.no-data,.no-results,.empty-state,.no-devices,.no-alerts,.no-configs,.no-logs{text-align:center;padding:3rem 1.5rem;color:var(--admin-text-subtle, #98a2b3);background:var(--admin-surface-alt, #fbfbfb);border:1px dashed var(--admin-border, #e4e7ec);border-radius:10px}.filter-group{display:flex;flex-direction:column;gap:.5rem;min-width:180px}.filter-group label{font-size:.85rem;font-weight:600;color:var(--admin-text-muted, #475467)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.85rem;font-weight:600;color:var(--admin-text-muted, #475467)}.form-helper,.help-text{font-size:.8rem;color:var(--admin-text-muted, #667085)}.page-content input:not(.form-field__input),.page-content select,.page-content textarea,.modal-body input:not(.form-field__input),.modal-body select,.modal-body textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:8px;font-size:.95rem;background:#fff;color:var(--admin-text, #1f2933);transition:border-color .15s ease}.page-content input:not(.form-field__input):focus-visible,.page-content select:focus-visible,.page-content textarea:focus-visible,.modal-body input:not(.form-field__input):focus-visible,.modal-body select:focus-visible,.modal-body textarea:focus-visible{outline:none;border-color:var(--color-accent, #e85d2a)}.page-content input:not(.form-field__input):disabled,.page-content select:disabled,.page-content textarea:disabled,.modal-body input:not(.form-field__input):disabled,.modal-body select:disabled,.modal-body textarea:disabled{background:var(--admin-surface-alt, #f2f4f7);color:var(--admin-text-subtle, #98a2b3)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1000}.modal-content{background:var(--admin-bg, #ffffff);border-radius:12px;width:min(90vw,560px);max-height:90vh;overflow-y:auto;border:1px solid var(--admin-border, #eaecf0)}.modal-content.large{width:min(92vw,760px)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--admin-border, #eaecf0)}.modal-header h2{margin:0;font-size:1.25rem;color:var(--admin-text, #1f2933)}.modal-close{background:none;border:none;font-size:1.75rem;color:var(--admin-text-subtle, #98a2b3);cursor:pointer;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.modal-close:focus-visible{outline:2px solid var(--color-accent, #e85d2a);outline-offset:2px}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid var(--admin-border, #eaecf0)}@media (max-width: 768px){.page--overview{max-width:100%;padding:var(--space-sm)}.page,.page-content{padding:var(--space-sm)}.modal-content{width:100%}}.page--devices{max-width:none;margin:0;width:100%;padding:clamp(14px,1.8vw,24px) clamp(16px,2.2vw,30px);gap:16px}.error-banner{background-color:var(--color-warning-bg, #fee);color:var(--color-warning-text, #c33);padding:1rem;border-radius:4px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.schedule-refresh-banner{border-radius:8px;padding:.9rem 1.1rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;border:1px solid transparent}.schedule-refresh-banner.success{background:var(--color-success-bg, #f0fdf4);color:var(--color-success-text, #14532d);border-color:var(--color-success-border, #bbf7d0)}.schedule-refresh-banner.error{background:var(--color-error-bg, #fff5f5);color:var(--color-error-text, #b42318);border-color:var(--color-error-border, #fecdca)}.schedule-refresh-title{font-weight:700;margin-bottom:.35rem}.schedule-refresh-details{font-size:.9rem;color:inherit}.schedule-refresh-meta{font-size:.85rem;color:inherit;text-align:right;display:grid;gap:.25rem}.devices-toolbar{display:flex;justify-content:flex-end;align-items:flex-start;margin-bottom:.75rem}.devices-quick-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.quick-filter-chip{border:1px solid var(--admin-border, #d0d5dd);background:#fff;color:#344054;border-radius:999px;padding:.35rem .65rem;font-size:.78rem;font-weight:600;cursor:pointer}.quick-filter-chip.active{border-color:#1e4fd7;color:#1e4fd7;background:#eef4ff}.devices-toolbar-note{margin:0 0 1rem;color:var(--admin-text-muted, #667085);font-size:.82rem;line-height:1.35}.devices-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.devices-filter-panel{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:.75rem;padding:.9rem;margin-bottom:1rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:10px;background:var(--admin-bg, #ffffff)}.filter-group{display:flex;flex-direction:column;gap:.45rem}.filter-group label{font-size:.86rem;font-weight:600;color:var(--admin-text-muted, #475467)}.filter-group select{width:100%;padding:.5rem .65rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:8px;background:var(--admin-bg, #ffffff);font-size:.9rem}.devices-list{display:grid;gap:.35rem;overflow-x:auto}.devices-header-row,.devices-row{display:grid;grid-template-columns:minmax(185px,1.35fr) minmax(132px,1fr) minmax(140px,1fr) minmax(135px,1fr) minmax(92px,.65fr) minmax(95px,.7fr) minmax(165px,1.1fr) minmax(165px,1.1fr) minmax(145px,.95fr);gap:.7rem;align-items:center;min-width:1240px;padding:.84rem .9rem}.devices-header-row{border-radius:9px;background:#f4f6f9;color:var(--admin-text-muted, #475467);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:700}.devices-row{border:1px solid var(--admin-border, #e1e5ea);border-radius:9px;background:var(--admin-bg, #ffffff);min-height:72px}.devices-row>div{min-width:0}.devices-row.offline{border-left:3px solid var(--color-error-text, #b42318)}.devices-row.maintenance{border-left:3px solid var(--color-warning-text, #9a5a00)}.devices-row.online{border-left:3px solid var(--color-success-text, #0f7a3a)}.devices-label-cell{display:grid;gap:.18rem}.devices-label-text{font-weight:700;color:var(--admin-text, #1f2937);line-height:1.2}.devices-label-subtext{color:var(--color-success-text, #0f7a3a);font-size:.78rem;font-weight:600}.devices-code-badge{display:inline-flex;align-items:center;justify-content:flex-start;padding:.2rem .5rem;border-radius:6px;background:#f2f4f7;color:#344054;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.devices-actions{display:flex;gap:.45rem;justify-content:flex-end;align-items:flex-start;flex-wrap:wrap}.devices-station-cell,.devices-screen-type-cell,.devices-heartbeat-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.devices-screen-size-cell{white-space:nowrap}.devices-heartbeat-age{color:var(--admin-text-muted, #667085);font-size:.74rem;white-space:nowrap}.devices-header-row>div:nth-child(9),.devices-row>div:nth-child(9){justify-self:end;text-align:right}.devices-action-link{border:none;background:transparent;padding:0;cursor:pointer;color:#344054;font-size:.88rem;font-weight:600}.devices-action-link:hover{color:#101828;text-decoration:underline}.devices-action-link:disabled{opacity:.55;cursor:not-allowed;text-decoration:none}.devices-action-primary{border:1px solid #1e4fd7;background:#1e4fd7;color:#fff;border-radius:8px;padding:.24rem .5rem;font-size:.8rem;font-weight:600;cursor:pointer}.devices-action-primary:disabled{opacity:.6;cursor:not-allowed}.devices-row-menu{position:relative}.devices-row-menu>summary{list-style:none;border:1px solid var(--admin-border, #d0d5dd);border-radius:8px;padding:.24rem .5rem;font-size:.8rem;font-weight:600;color:#344054;cursor:pointer;background:#fff}.devices-row-menu>summary::-webkit-details-marker{display:none}.devices-row-menu[open]>summary{border-color:#98a2b3}.devices-row-menu-items{position:absolute;right:0;top:calc(100% + 4px);min-width:170px;background:#fff;border:1px solid var(--admin-border, #d0d5dd);border-radius:8px;box-shadow:0 8px 24px #1018281f;padding:.35rem;display:grid;gap:.2rem;z-index:5}.devices-row-menu-items .devices-action-link{text-align:left;border-radius:6px;padding:.4rem .45rem}.devices-row-menu-items .devices-action-link:hover{background:#f5f7fa;text-decoration:none}.no-devices{text-align:center;padding:3rem;color:var(--admin-text-subtle, #999)}@media (max-width: 1200px){.devices-filter-panel{grid-template-columns:repeat(2,minmax(170px,1fr))}}@media (max-width: 900px){.devices-toolbar{flex-direction:column;align-items:stretch}.devices-quick-filters{gap:.35rem}.quick-filter-chip{flex:1 1 calc(50% - .35rem);text-align:center}.devices-toolbar-note{font-size:.78rem}.devices-toolbar-actions{justify-content:stretch}.devices-toolbar-actions>*{flex:1 1 160px}.devices-filter-panel{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--admin-bg, #ffffff);border-radius:8px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--admin-border, #e0e0e0)}.modal-header h2{font-size:1.3rem;color:var(--admin-text, #333)}.modal-close{background:none;border:none;font-size:2rem;color:var(--admin-text-subtle, #999);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--admin-text, #333)}.modal-body{padding:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.9rem;font-weight:500;color:var(--admin-text-muted, #666);margin-bottom:.5rem}.form-group input,.form-group select{width:100%;padding:.5rem;border:1px solid var(--admin-border, #ddd);border-radius:4px;font-size:.9rem}.form-group input:disabled{background-color:var(--admin-surface-alt, #f5f5f5);color:var(--admin-text-subtle, #999)}.form-helper{font-size:.8rem;color:var(--admin-text-muted, #666);margin-top:.25rem;margin-bottom:0}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1.5rem;border-top:1px solid var(--admin-border, #e0e0e0)}.page--alerts{max-width:none;margin:0;width:100%;padding:clamp(14px,1.8vw,24px) clamp(16px,2.2vw,30px);gap:16px}.page--alerts .page-header h1{color:var(--admin-text, #101828)}.page--alerts .page-content{padding:0;gap:0;overflow:hidden}.alerts-page-header{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:1rem}.alerts-page-header__copy{display:grid;gap:.5rem;min-width:0}.alerts-page-header__actions{display:flex;align-items:center;justify-content:flex-end}.alerts-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}.alerts-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.alerts-table{display:grid;gap:0;overflow-x:auto}.alerts-header-row,.alerts-row{display:grid;grid-template-columns:minmax(165px,1fr) minmax(270px,2fr) minmax(270px,2fr) minmax(110px,.85fr) minmax(110px,.85fr) minmax(160px,1fr) minmax(160px,1fr) minmax(170px,1.05fr);gap:.75rem;align-items:center;min-width:1280px;padding:.84rem .9rem}.alerts-header-row{background:#f4f6f9;color:var(--admin-text-muted, #475467);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:700;border-bottom:1px solid var(--admin-border, #eaecf0)}.alerts-row{background:var(--admin-bg, #ffffff);min-height:74px;border-bottom:1px solid var(--admin-border, #eaecf0)}.alerts-row:last-child{border-bottom:none}.alerts-row>div{min-width:0}.alerts-header-row>div:last-child,.alerts-row>div:last-child{justify-self:end;text-align:right}.alerts-station-cell{display:grid;gap:.2rem}.alerts-station-name{font-weight:700;color:var(--admin-text, #1f2937);line-height:1.2;white-space:normal}.alerts-station-subtext{color:var(--admin-text-muted, #667085);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alerts-message-cell{display:block;padding:.15rem 0}.alerts-message-text{color:var(--admin-text, #344054);font-size:.9rem;line-height:1.35;overflow-wrap:anywhere}.alerts-time-cell{display:grid;gap:.15rem;color:var(--admin-text, #1f2937);font-variant-numeric:tabular-nums}.alerts-time-date,.alerts-time-time{line-height:1.2}.alerts-time-muted{color:var(--admin-text-muted, #98a2b3);line-height:1.2}.alerts-actions{display:flex;flex-direction:column;gap:.5rem;justify-content:flex-end;align-items:flex-end}.alerts-action-link{border:none;background:transparent;padding:0;cursor:pointer;color:#344054;font-size:.88rem;font-weight:600}.alerts-action-link:hover{color:#101828;text-decoration:underline}.alerts-action-link:disabled{opacity:.55;cursor:not-allowed}.alerts-action-danger{border:1px solid var(--color-error-text, #b42318);background:var(--color-error-text, #b42318);color:#fff;border-radius:8px;padding:.4rem .85rem;font-size:.86rem;font-weight:700;cursor:pointer;white-space:nowrap}.alerts-action-danger:hover{background:#a11b12}.alerts-action-danger:disabled{opacity:.6;cursor:not-allowed}.alerts-row-menu{position:relative}.alerts-row-menu summary{list-style:none;border:1px solid var(--admin-border, #d0d5dd);background:#fff;border-radius:9px;padding:.35rem .65rem;font-size:.86rem;font-weight:700;color:#344054;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.alerts-row-menu summary::-webkit-details-marker{display:none}.alerts-row-menu[open] summary{background:#f8fafc}.alerts-row-menu-items{position:absolute;right:0;top:calc(100% + .25rem);min-width:210px;background:#fff;border:1px solid var(--admin-border, #d0d5dd);border-radius:12px;box-shadow:0 18px 34px #1018281f;padding:.55rem;display:grid;gap:.35rem;z-index:10}.alerts-row-menu-items .alerts-action-link{width:100%;text-align:left;padding:.4rem .5rem;border-radius:10px;text-decoration:none}.alerts-row-menu-items .alerts-action-link:hover{background:#f2f4f7;text-decoration:none}.alerts-meta-note{padding:.15rem .5rem;color:var(--admin-text-muted, #667085);font-size:.78rem;line-height:1.25}@media (max-width: 1000px){.alerts-toolbar{align-items:flex-start}}@media (max-width: 720px){.alerts-page-header{flex-direction:column;align-items:stretch}.alerts-page-header__actions{justify-content:flex-start}}.alert-meta{text-align:right}.modal-content.large{max-width:640px}.alert-modal-section{display:grid;gap:.9rem;padding-bottom:.75rem;border-bottom:1px solid var(--admin-border, #eaecf0)}.alert-modal-section:last-child{border-bottom:none;padding-bottom:0}.alert-modal-section-header{font-weight:800;color:var(--admin-text, #1f2937);font-size:.98rem}.alert-modal-section-body{display:grid;gap:.9rem}.alert-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:1rem}.alert-modal-section select{width:100%;padding:.6rem .75rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:10px;font-size:.95rem;background:#fff;color:var(--admin-text, #1f2937);transition:border-color .15s ease,box-shadow .15s ease}.alert-modal-section select:focus-visible{outline:none;border-color:var(--color-accent, #e85d2a);box-shadow:0 0 0 4px #e85d2a29}.alert-modal-required{color:var(--color-error-text, #b42318)}.alert-modal-helper{margin-top:.35rem;font-size:.82rem;color:var(--admin-text-muted, #667085);line-height:1.35}.alert-modal-message-field{display:grid;gap:.5rem}.alert-modal-message-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.alert-modal-counter{color:var(--admin-text-muted, #667085);font-size:.78rem;font-variant-numeric:tabular-nums;white-space:nowrap}.alert-modal-message-field textarea{width:100%;border:1px solid var(--admin-border, #d0d5dd);border-radius:10px;padding:.75rem .85rem;font-size:.95rem;line-height:1.45;resize:vertical;min-height:104px}.alert-modal-message-field textarea:focus-visible{outline:none;border-color:var(--color-accent, #e85d2a);box-shadow:0 0 0 4px #e85d2a29}.alert-modal-preview{display:flex;gap:.8rem;align-items:flex-start;padding:.85rem 1rem;border-radius:12px;border:1px solid #b6c8ff;background:#eff4ff}.alert-modal-preview-badge{padding-top:.1rem}.alert-modal-preview-content{display:grid;gap:.35rem;min-width:0}.alert-modal-preview-line{color:var(--admin-text, #1f2937);font-size:.92rem;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.alert-modal-preview-line--muted{color:var(--admin-text-muted, #475467);font-weight:500}.alert-modal-endtime{display:grid;gap:.65rem}.alert-modal-checkbox{display:inline-flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:700;color:var(--admin-text, #1f2937);-webkit-user-select:none;user-select:none}.alert-modal-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--admin-primary, #1e4fd7)}.alert-modal-checkbox--wide{border:1px solid var(--admin-border, #d0d5dd);border-radius:12px;padding:.75rem .85rem;gap:.75rem;background:#fff}.alert-modal-checkbox-text{display:grid;gap:.2rem}.form-group textarea{width:100%;padding:.5rem;border:1px solid var(--admin-border, #ddd);border-radius:4px;font-size:.9rem;font-family:inherit;resize:vertical}.error-message{background-color:var(--color-warning-bg, #fee);color:var(--color-warning-text, #c33);padding:.75rem;border-radius:4px;font-size:.9rem;border:1px solid var(--color-warning-border, #fcc);margin-bottom:1rem}.page--announcements{max-width:none;margin:0;width:100%;padding:clamp(14px,1.8vw,24px) clamp(16px,2.2vw,30px);gap:16px}.page--announcements .page-header h1{color:var(--admin-text, #101828)}.announcements-view-toggle-bar{display:flex;justify-content:center}.announcements-view-toggle{display:flex;align-items:center;gap:4px;padding:4px;border-radius:10px;background:var(--admin-surface-alt, #f2f4f7);border:1px solid var(--admin-border, #eaecf0)}.announcements-view-toggle button{border:none;background:transparent;padding:.5rem .85rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:700;color:var(--admin-text-muted, #475467);transition:background .15s ease,box-shadow .15s ease,color .15s ease}.announcements-view-toggle button.active{background:#fff;color:var(--admin-text, #101828);box-shadow:0 1px 2px #10182814}.announcements-page-header{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:1rem}.announcements-page-header__copy{display:grid;gap:.5rem;min-width:0}.announcements-page-header__actions{display:flex;align-items:center;justify-content:flex-end}.announcements-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.announcements-kpi-card{position:relative;background:#fff;border:1px solid var(--admin-border, #eaecf0);border-radius:12px;padding:1rem 1.1rem;box-shadow:0 2px 8px #1018280a;min-height:78px;display:grid;gap:.25rem}.announcements-kpi-card__label{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--admin-text-muted, #667085)}.announcements-kpi-card__value{font-size:1.65rem;font-weight:900;color:var(--admin-text, #101828);line-height:1.1}.announcements-kpi-card__icon{position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}.announcements-kpi-card__icon--amber{background:#f59e0b2e;color:#b45309}.announcements-kpi-card__icon--green{background:#22c55e29;color:#15803d}.announcements-kpi-card__icon--red{background:#ef444426;color:#b91c1c}.announcements-kpi-card__icon--blue{background:#3b82f629;color:#1d4ed8}.announcements-tabs{display:flex;align-items:flex-end;gap:2rem;padding-bottom:.75rem;border-bottom:1px solid var(--admin-border, #eaecf0)}.announcements-tab{border:none;background:transparent;padding:.5rem 0;cursor:pointer;font-size:.95rem;font-weight:700;color:var(--admin-text-muted, #667085);position:relative;display:inline-flex;align-items:center;gap:.5rem}.announcements-tab.active{color:var(--color-accent, #e85d2a)}.announcements-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-.78rem;height:2px;background:var(--color-accent, #e85d2a)}.announcements-tab-badge{display:inline-flex;align-items:center;justify-content:center;height:20px;min-width:24px;padding:0 .55rem;border-radius:999px;background:#e85d2a1f;color:var(--color-accent, #e85d2a);border:1px solid rgba(232,93,42,.3);font-size:.75rem;font-weight:800}.announcements-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}.announcements-search{display:flex;align-items:center;gap:.6rem;border:1px solid var(--admin-border, #d0d5dd);background:#fff;border-radius:10px;padding:.55rem .75rem;min-width:min(420px,100%);max-width:520px}.announcements-search input{border:none;outline:none;width:100%;font-size:.9rem;color:var(--admin-text, #101828)}.announcements-search svg{color:var(--admin-text-subtle, #98a2b3);flex:0 0 auto}.announcements-toolbar__filters{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.announcements-toolbar__filters svg{color:var(--admin-text-subtle, #98a2b3);flex:0 0 auto}.announcements-toolbar__filters select{padding:.55rem .75rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:10px;background:#fff;font-size:.9rem;color:var(--admin-text, #101828)}.announcements-page-content--operations{padding:0;gap:0;overflow:hidden}.announcements-ops-table{display:grid;gap:0;overflow-x:auto}.announcements-ops-header-row,.announcements-ops-row{display:grid;grid-template-columns:minmax(46px,.25fr) minmax(170px,1.1fr) minmax(110px,.7fr) minmax(190px,1fr) minmax(150px,.95fr) minmax(150px,.95fr) minmax(130px,.85fr) minmax(110px,.6fr);gap:.75rem;align-items:center;min-width:1100px;padding:.84rem .9rem}.announcements-ops-table--with-id .announcements-ops-header-row,.announcements-ops-table--with-id .announcements-ops-row{grid-template-columns:minmax(46px,.25fr) minmax(170px,1.1fr) minmax(110px,.7fr) minmax(190px,1fr) minmax(150px,.95fr) minmax(150px,.95fr) minmax(130px,.85fr) minmax(150px,.95fr) minmax(110px,.6fr);min-width:1220px}.announcements-ops-header-row{background:#f4f6f9;color:var(--admin-text-muted, #475467);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:800;border-bottom:1px solid var(--admin-border, #eaecf0)}.announcements-ops-row{background:#fff;min-height:72px;border-bottom:1px solid var(--admin-border, #eaecf0)}.announcements-ops-row.selected{background:#e85d2a0f}.announcements-ops-row:last-child{border-bottom:none}.announcements-ops-row>div{min-width:0}.announcements-ops-header-row>div:last-child,.announcements-ops-row>div:last-child{justify-self:end;text-align:right}.announcements-ops-type{font-size:.78rem;font-weight:800;letter-spacing:.06em;color:var(--admin-text-muted, #475467)}.announcements-ops-train{font-weight:800;color:var(--admin-text, #101828)}.announcements-ops-station{color:var(--admin-text, #344054);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcements-ops-time{color:var(--admin-text, #344054);font-variant-numeric:tabular-nums}.announcements-ops-id{color:var(--admin-text-muted, #667085);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcements-ops-actions{display:flex;justify-content:flex-end}.announcements-ops-select{display:flex;align-items:center;justify-content:center}.announcements-ops-select input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent, #e85d2a)}.announcements-action-link{border:none;background:transparent;padding:0;cursor:pointer;color:#344054;font-size:.88rem;font-weight:700}.announcements-action-link:hover{color:#101828;text-decoration:underline}.announcement-status{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;border:1px solid transparent;white-space:nowrap}.announcement-status svg{flex:0 0 auto}.announcement-status--queued{background:var(--admin-primary-soft, #e8efff);color:var(--admin-primary, #1e4fd7);border-color:#b6c8ff}.announcement-status--claimed{background:#f3e8ff;color:#7e22ce;border-color:#d8b4fe}.announcement-status--played{background:var(--color-success-bg, #eafaf0);color:var(--color-success-text, #0f7a3a);border-color:var(--color-success-border, #bde9cc)}.announcement-status--failed{background:var(--color-error-bg, #ffe9e9);color:var(--color-error-text, #b42318);border-color:var(--color-error-border, #fecdca)}.announcements-templates{padding:1.5rem;display:grid;gap:1rem}.announcements-templates-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.announcements-templates-title{font-size:1rem;font-weight:800;color:var(--admin-text, #101828)}.announcements-templates-meta{font-size:.85rem;color:var(--admin-text-muted, #667085)}.announcements-templates-table{display:grid;gap:0;overflow-x:auto;border:1px solid var(--admin-border, #eaecf0);border-radius:10px}.announcements-templates-header-row,.announcements-templates-row{display:grid;grid-template-columns:minmax(190px,.95fr) minmax(110px,.5fr) minmax(120px,.55fr) minmax(520px,2fr);gap:.75rem;align-items:center;min-width:980px;padding:.84rem .9rem}.announcements-templates-header-row{background:#f4f6f9;color:var(--admin-text-muted, #475467);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:800;border-bottom:1px solid var(--admin-border, #eaecf0)}.announcements-templates-row{background:#fff;border-bottom:1px solid var(--admin-border, #eaecf0)}.announcements-templates-row:last-child{border-bottom:none}.announcements-templates-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--admin-text, #344054);font-size:.9rem}.announcements-modal .modal-footer{justify-content:center}.announcement-form--ops{display:grid;gap:1.25rem}.announcement-form-section{display:grid;gap:.85rem}.announcement-form-section__header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.announcement-form-section__title{font-size:.92rem;font-weight:800;color:var(--admin-text, #101828)}.announcement-checkbox{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;color:var(--admin-text-muted, #475467)}.announcement-checkbox input[type=checkbox]{width:16px;height:16px}.announcement-preview-card{border:1px solid var(--admin-border, #eaecf0);border-radius:10px;background:var(--admin-surface-alt, #f8fafc);padding:1rem;display:grid;gap:.75rem}.announcement-preview-card__title{font-size:.88rem;font-weight:800;color:var(--admin-text, #101828)}.announcement-preview-card__label{font-size:.72rem;font-weight:800;letter-spacing:.06em;color:var(--admin-text-muted, #667085)}.announcement-preview-card__text{font-size:.92rem;line-height:1.35;color:var(--admin-text, #344054);overflow-wrap:anywhere}.announcement-preview-card__text.muted{color:var(--admin-text-muted, #667085)}.announcement-preview-card__divider{height:1px;background:var(--admin-border, #eaecf0)}.announcement-message-edit{display:grid;gap:1rem}.announcement-form--ops .form-row.three-column{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 880px){.announcements-page-header{flex-direction:column;align-items:flex-start}.announcement-form--ops .form-row.three-column{grid-template-columns:1fr}}.announcements-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.announcements-controls .filter-group{min-width:160px}.announcements-table-container{overflow-x:auto;border:1px solid var(--admin-border, #eaecf0);border-radius:10px}.announcements-table{width:100%;border-collapse:collapse;min-width:1080px}.announcements-table th,.announcements-table td{border-bottom:1px solid var(--admin-border, #eaecf0);padding:.75rem;vertical-align:top;text-align:left}.announcements-table th{background:var(--admin-surface-alt, #f8fafc);color:var(--admin-text-muted, #475467);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.announcements-table tbody tr:last-child td{border-bottom:none}.empty-cell{text-align:center;color:var(--admin-text-subtle, #98a2b3);padding:2rem}.message-preview{color:var(--admin-text, #1f2933);max-width:480px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-preview.sw{color:var(--admin-text-muted, #667085)}.row-actions{display:flex;gap:.5rem;flex-wrap:wrap}.announcement-form{display:grid;gap:1rem}.announcement-form .form-row.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.announcement-form .checkbox-group{justify-content:flex-end}.announcement-form .checkbox-group input[type=checkbox]{width:auto;margin-top:.35rem}@media (max-width: 880px){.announcement-form .form-row.two-column{grid-template-columns:1fr}}.announcements-templates-manager{display:grid;gap:1.25rem}.announcements-templates-manager__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.announcements-templates-manager__title{font-size:1.05rem;font-weight:900;color:var(--admin-text, #101828)}.announcements-templates-manager__subtitle{margin-top:.25rem;font-size:.9rem;color:var(--admin-text-muted, #667085)}.announcements-templates-manager__grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:1.25rem;align-items:start}.announcements-templates-list{display:grid;gap:1rem}.announcements-template-card{border:1px solid var(--admin-border, #eaecf0);border-radius:12px;background:#fff;padding:1.15rem 1.2rem;box-shadow:0 2px 8px #1018280a;cursor:pointer;text-align:left;display:grid;gap:.9rem}.announcements-template-card.selected{border-color:var(--color-accent, #e85d2a);box-shadow:0 0 0 3px #e85d2a2e}.announcements-template-card:focus-visible{outline:2px solid var(--color-accent, #e85d2a);outline-offset:2px}.announcements-template-card__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.announcements-template-card__heading{min-width:0}.announcements-template-card__title-row{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.announcements-template-card__title{font-size:1rem;font-weight:900;color:var(--admin-text, #101828);line-height:1.2}.announcements-template-card__subtitle{margin-top:.25rem;font-size:.88rem;color:var(--admin-text-muted, #667085)}.announcements-template-card__actions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.announcements-template-card__badge{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;font-size:.7rem;font-weight:900;letter-spacing:.06em;background:#1018280f;color:var(--admin-text-muted, #475467);border:1px solid rgba(16,24,40,.12)}.announcements-template-card__badge--green{background:#22c55e26;color:#15803d;border-color:#22c55e59}.announcements-template-card__badge--orange{background:#f9731626;color:#c2410c;border-color:#f9731659}.announcements-template-card__badge--blue{background:#3b82f626;color:#1d4ed8;border-color:#3b82f659}.announcements-template-card__badge--purple{background:#a855f726;color:#7e22ce;border-color:#a855f759}.announcements-template-card__badge--red{background:#ef444426;color:#b91c1c;border-color:#ef444459}.announcements-template-card__icon-button{border:1px solid transparent;background:transparent;border-radius:10px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--admin-text-muted, #667085)}.announcements-template-card__icon-button:hover{background:#1018280a;color:var(--admin-text, #101828)}.announcements-template-card__icon-button.danger:hover{background:#ef44441a;color:#b91c1c}.announcements-template-card__content{display:grid;gap:.85rem}.announcements-template-card__field{display:grid;gap:.35rem}.announcements-template-card__label{font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--admin-text-muted, #667085)}.announcements-template-card__value{border:1px solid var(--admin-border, #eaecf0);background:var(--admin-surface-alt, #f8fafc);border-radius:10px;padding:.75rem .85rem;color:var(--admin-text, #344054);font-size:.92rem;line-height:1.35;overflow-wrap:anywhere}.announcements-template-card__variables-empty{font-size:.85rem;color:var(--admin-text-subtle, #98a2b3)}.announcements-template-card__variables-box{display:grid;gap:.55rem}.announcements-template-card__variables-label{font-size:.82rem;font-weight:800;color:var(--admin-text-muted, #667085)}.announcements-template-card__meta{display:grid;gap:.25rem;padding-top:.85rem;border-top:1px solid var(--admin-border, #eaecf0);font-size:.82rem;color:var(--admin-text-muted, #667085)}.announcements-template-chips{display:flex;flex-wrap:wrap;gap:.5rem}.announcements-template-chip{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:8px;border:1px solid rgba(232,93,42,.45);background:#fff;color:var(--color-accent, #e85d2a);font-size:.78rem;font-weight:800;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.announcements-template-chip--detected{gap:.45rem;background:#e85d2a14}.announcements-template-chip--common{border-color:var(--admin-border, #eaecf0);background:#fff;color:var(--admin-text-muted, #475467)}.announcements-template-chip__tags{display:inline-flex;align-items:center;gap:.25rem}.announcements-template-chip__tag{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.62rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;padding:.05rem .35rem;border-radius:999px;border:1px solid rgba(232,93,42,.35);background:#e85d2a24;color:var(--color-accent, #e85d2a)}.announcements-template-chip--internal{border-color:#3b82f673;background:#fff;color:#1d4ed8}.announcements-templates-preview__card{border:1px solid var(--admin-border, #eaecf0);border-radius:12px;background:#fff;padding:1.15rem 1.2rem;box-shadow:0 2px 8px #1018280a;display:grid;gap:1rem}.announcements-templates-preview__title{font-size:1rem;font-weight:900;color:var(--admin-text, #101828)}.announcements-templates-preview__subtitle{margin-top:-.65rem;font-size:.88rem;color:var(--admin-text-muted, #667085)}.announcements-templates-preview__messages{border:1px solid var(--admin-border, #eaecf0);border-radius:12px;background:var(--admin-surface-alt, #f8fafc);padding:1rem;display:grid;gap:.75rem}.announcements-templates-preview__section{display:grid;gap:.35rem}.announcements-templates-preview__label{font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--admin-text-muted, #667085)}.announcements-templates-preview__text{font-size:.92rem;line-height:1.35;color:var(--admin-text, #344054);overflow-wrap:anywhere}.announcements-templates-preview__text.muted{color:var(--admin-text-muted, #667085)}.announcements-templates-preview__divider{height:1px;background:var(--admin-border, #eaecf0)}.announcements-templates-preview__note{display:flex;gap:.6rem;align-items:flex-start;padding:.85rem .9rem;border-radius:12px;border:1px solid rgba(59,130,246,.45);background:#3b82f61f;color:#1d4ed8;font-size:.86rem;line-height:1.35}.announcements-templates-preview__note svg{flex:0 0 auto;margin-top:1px}.announcements-templates-preview__variables{display:grid;gap:.55rem}.announcements-templates-preview__variables-title{font-size:.85rem;font-weight:900;color:var(--admin-text, #101828)}.announcements-templates-preview__internal{display:grid;gap:.55rem;padding-top:.25rem}.announcements-template-modal .modal-footer{justify-content:center}.announcements-template-modal__cancel.btn--ghost{border:none;background:transparent;padding:.25rem .5rem;min-height:auto;color:var(--admin-text-muted, #475467);font-weight:700}.announcements-template-modal__cancel.btn--ghost:hover:not(:disabled){background:transparent;color:var(--admin-text, #101828)}.announcements-template-modal__body{display:grid;gap:1.25rem}.announcements-template-modal__error{border:1px solid var(--color-error-border, #fecdca);background:var(--color-error-bg, #ffe9e9);color:var(--color-error-text, #b42318);border-radius:12px;padding:.9rem 1rem;font-weight:700}.announcements-template-modal__section{display:grid;gap:.85rem}.announcements-template-modal__section-title{font-size:.92rem;font-weight:900;color:var(--admin-text, #101828);padding-bottom:.65rem;border-bottom:1px solid var(--admin-border, #eaecf0)}.announcements-template-modal__required{color:var(--color-error-text, #b42318)}.announcements-template-modal .form-row.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.announcements-template-modal__language-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.announcements-template-modal__language-title{font-size:.9rem;font-weight:900;color:var(--admin-text, #101828);padding-bottom:.5rem;border-bottom:1px solid var(--admin-border, #eaecf0);margin-bottom:.15rem}.announcements-template-modal__preview{border:1px solid var(--admin-border, #eaecf0);border-radius:12px;background:var(--admin-surface-alt, #f8fafc);padding:.85rem .9rem;display:grid;gap:.45rem}.announcements-template-modal__preview-label{font-size:.75rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--admin-text-muted, #667085)}.announcements-template-modal__preview-text{font-size:.9rem;color:var(--admin-text, #344054);overflow-wrap:anywhere;line-height:1.35}.announcements-template-modal__info{display:flex;gap:.6rem;align-items:flex-start;padding:.85rem .9rem;border-radius:12px;border:1px solid rgba(59,130,246,.45);background:#3b82f61f;color:#1d4ed8;font-size:.86rem;line-height:1.35}.announcements-template-modal__variables-block{display:grid;gap:.6rem}.announcements-template-modal__variables-panel{border:1px solid var(--admin-border, #eaecf0);background:var(--admin-surface-alt, #f8fafc);border-radius:12px;padding:.85rem .9rem}.announcements-template-modal__variables-title{font-size:.85rem;font-weight:900;color:var(--admin-text, #101828)}.announcements-template-modal__variables-empty{font-size:.9rem;color:var(--admin-text-subtle, #98a2b3);background:var(--admin-surface-alt, #f8fafc);border:1px solid var(--admin-border, #eaecf0);border-radius:12px;padding:.85rem .9rem}@media (max-width: 980px){.announcements-templates-manager__grid,.announcements-template-modal__language-grid{grid-template-columns:1fr}}@media (max-width: 680px){.announcements-template-modal .form-row.two-column{grid-template-columns:1fr}}.config-controls{margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}.search-box{flex:1;min-width:280px;max-width:520px}.search-box input{width:100%;padding:.75rem .9rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:10px;font-size:.95rem;background:#fff}.config-metrics{display:flex;gap:.75rem}.config-metric{min-width:110px;border:1px solid var(--admin-border, #d0d5dd);border-radius:10px;padding:.5rem .75rem;background:#fff;display:grid;gap:.15rem}.config-metric-label{color:var(--admin-text-muted, #667085);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.config-metric-value{color:var(--admin-text, #1f2933);font-size:1.15rem;font-weight:700}.config-sections{display:grid;gap:1rem}.config-section{border:1px solid var(--admin-border, #e4e7ec);border-radius:12px;padding:1rem;background:var(--admin-surface-alt, #fbfcfe)}.config-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}.config-section-header h2{margin:0;font-size:1.05rem;color:var(--admin-text, #1f2933)}.config-section-header span{font-size:.8rem;font-weight:600;color:var(--admin-text-muted, #667085)}.config-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1rem}.config-card{background:#fff;border:1px solid var(--admin-border, #e1e5ea);border-radius:10px;padding:1rem;box-shadow:0 1px 2px #1018280f}.config-card:hover{border-color:#c8d1e1;box-shadow:0 4px 14px #0f172a14}.config-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;gap:.75rem}.config-title{display:grid;gap:.25rem}.config-label{font-size:1rem;font-weight:700;color:var(--admin-text, #1f2933)}.config-key{font-size:.8rem;color:var(--admin-text-subtle, #98a2b3);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;letter-spacing:.03em;text-transform:lowercase}.config-description{color:var(--admin-text-muted, #475467);font-size:.88rem;margin-bottom:1rem;line-height:1.45}.config-details{display:flex;flex-direction:column;gap:.5rem;padding-top:1rem;border-top:1px solid var(--admin-border, #f0f0f0)}.config-detail-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem}.detail-label{color:var(--admin-text-muted, #667085);font-weight:500}.detail-value{color:var(--admin-text, #1f2933);font-weight:600;text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.detail-pill{background:var(--admin-primary-soft, #e8efff);color:var(--admin-primary, #1e4fd7);border:1px solid #cddaff;border-radius:999px;padding:.15rem .5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.no-configs{text-align:center;padding:3rem;color:var(--admin-text-subtle, #999)}.help-text{display:block;margin-top:.25rem;font-size:.8rem;color:var(--admin-text-subtle, #999);font-style:italic}@media (max-width: 768px){.search-box{max-width:100%}.config-list{grid-template-columns:1fr}.config-metrics{width:100%}.config-metric{flex:1}}.page--translations{max-width:none;margin:0;width:100%;padding:clamp(14px,1.8vw,24px) clamp(16px,2.2vw,30px);gap:16px}.page--translations .page-header h1{color:var(--admin-text, #101828)}.page--translations .page-content{padding:0;gap:16px;background:transparent;border:none;box-shadow:none}.translations-page-header{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:1rem}.translations-page-header__copy{display:grid;gap:.5rem;min-width:0}.translations-page-header__actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end;align-items:center}.translations-header-action--outlined.btn--ghost{border-color:var(--color-accent, #e85d2a);color:var(--color-accent, #e85d2a);border-width:1px}.translations-header-action--outlined.btn--ghost:hover:not(:disabled){background:#e85d2a14}.translations-header-action--rollback.btn--ghost{border:none;background:transparent;padding:.25rem .5rem;min-height:36px;color:var(--admin-text-muted, #475467);font-weight:700}.translations-header-action--rollback.btn--ghost:hover:not(:disabled){background:transparent;color:var(--admin-text, #101828)}.translations-tips{display:flex;align-items:flex-start;gap:.75rem;padding:.95rem 1rem;border-radius:10px;border:1px solid rgba(30,79,215,.25);background:#1e4fd714;color:#1e4fd7}.translations-tips__icon{margin-top:2px;flex:0 0 auto}.translations-tips__copy{font-size:.92rem;line-height:1.4;color:#1e4fd7}.translations-tips__title{font-weight:800}.translations-card{background:#fff;border-radius:10px;border:1px solid var(--admin-border, #eaecf0);box-shadow:0 2px 8px #1018280a;overflow:hidden}.translations-table{display:grid;gap:0;overflow-x:auto}.translations-header-row,.translations-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(260px,2fr) minmax(260px,2fr) minmax(140px,1fr) minmax(160px,1fr) minmax(150px,.9fr);gap:.75rem;align-items:center;min-width:1220px;padding:.82rem .95rem}.translations-header-row{background:#f4f6f9;color:var(--admin-text-muted, #475467);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:800;border-bottom:1px solid var(--admin-border, #eaecf0)}.translations-header-row__actions{justify-self:end;text-align:right}.translations-row{background:#fff;min-height:64px;border-bottom:1px solid var(--admin-border, #eaecf0)}.translations-row:last-child{border-bottom:none}.translation-key-pill{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:8px;border:1px solid rgba(232,93,42,.45);background:#e85d2a14;color:var(--color-accent, #e85d2a);font-size:.78rem;font-weight:800;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;overflow-wrap:anywhere}.translations-value{min-width:0;color:var(--admin-text, #344054);font-size:.92rem;line-height:1.35;overflow-wrap:anywhere}.translations-meta{min-width:0;color:var(--admin-text-muted, #667085);font-size:.9rem;font-variant-numeric:tabular-nums}.translations-actions{display:flex;gap:1rem;justify-content:flex-end;align-items:center}.translations-action-link{border:none;background:transparent;padding:0;cursor:pointer;color:#344054;font-size:.88rem;font-weight:700;display:inline-flex;align-items:center;gap:.35rem}.translations-action-link:hover{color:#101828;text-decoration:underline}.translations-action-link:disabled{opacity:.55;cursor:not-allowed}.translations-history-header{padding:1rem 1rem .5rem}.translations-history-title{font-weight:900;color:var(--admin-text, #101828);font-size:1.05rem}.translations-history-loading,.translations-history-empty{padding:1.5rem 1rem;color:var(--admin-text-muted, #667085)}.translations-history-list{display:grid;gap:0}.translations-history-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1rem;border-top:1px solid var(--admin-border, #eaecf0)}.translations-history-copy{min-width:0;display:grid;gap:.25rem}.translations-history-version{font-weight:900;color:var(--admin-text, #101828)}.translations-history-meta{color:var(--admin-text-muted, #667085);font-size:.88rem}.translations-history-link{border:none;background:transparent;padding:0;cursor:pointer;color:#344054;font-size:.9rem;font-weight:700;white-space:nowrap}.translations-history-link:hover{color:#101828;text-decoration:underline}.translations-history-link:disabled{opacity:.55;cursor:not-allowed}.translations-modal__body{display:grid;gap:1.25rem}.translations-modal__section{display:grid;gap:.85rem}.translations-modal__section-title{font-size:.92rem;font-weight:900;color:var(--admin-text, #101828);padding-bottom:.65rem;border-bottom:1px solid var(--admin-border, #eaecf0)}.translations-modal__required{color:var(--color-error-text, #b42318)}.translations-modal__error{border:1px solid var(--color-error-border, #fecdca);background:var(--color-error-bg, #ffe9e9);color:var(--color-error-text, #b42318);border-radius:12px;padding:.9rem 1rem;font-weight:800}.translations-modal .form-group,.translations-import-modal .form-group,.translations-rollback-modal .form-group{margin-bottom:0}.translations-modal .form-group label,.translations-import-modal .form-group label,.translations-rollback-modal .form-group label{display:block;margin:0;font-size:.85rem;font-weight:600;color:var(--admin-text-muted, #475467)}.translations-modal input,.translations-modal select,.translations-modal textarea,.translations-import-modal input:not([type=file]),.translations-import-modal select,.translations-import-modal textarea,.translations-rollback-modal select{width:100%;padding:.6rem .75rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:8px;font-size:.95rem;background:#fff;color:var(--admin-text, #1f2933);font-family:inherit;transition:border-color .15s ease}.translations-import-modal input[type=file]{width:100%;padding:.6rem .75rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:8px;font-size:.95rem;background:#fff;color:var(--admin-text, #1f2933);font-family:inherit}.translations-modal .modal-footer,.translations-import-modal .modal-footer,.translations-rollback-modal .modal-footer,.translations-diff-modal .modal-footer{gap:.75rem;border-top:1px solid var(--admin-border, #eaecf0)}.translations-modal textarea,.translations-import-modal textarea{resize:vertical}.translations-modal input:focus-visible,.translations-modal select:focus-visible,.translations-modal textarea:focus-visible,.translations-import-modal input:not([type=file]):focus-visible,.translations-import-modal select:focus-visible,.translations-import-modal textarea:focus-visible,.translations-rollback-modal select:focus-visible{outline:none;border-color:var(--color-accent, #e85d2a)}.translations-modal input:disabled,.translations-modal select:disabled,.translations-modal textarea:disabled,.translations-import-modal input:not([type=file]):disabled,.translations-import-modal select:disabled,.translations-import-modal textarea:disabled,.translations-rollback-modal select:disabled{background:var(--admin-surface-alt, #f2f4f7);color:var(--admin-text-subtle, #98a2b3)}.translations-modal .form-row.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.translations-modal__helper-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.translations-modal__count{font-size:.82rem;color:var(--admin-text-muted, #667085);font-variant-numeric:tabular-nums}.translations-modal__preview{margin-top:.25rem;display:grid;gap:.75rem}.translations-modal__preview-title{font-weight:900;color:var(--admin-text, #101828);font-size:.92rem}.translations-modal__preview-stack{border:1px solid var(--admin-border, #eaecf0);background:var(--admin-surface-alt, #f8fafc);border-radius:12px;display:grid;overflow:hidden}.translations-modal__preview-item{padding:.85rem 1rem;display:grid;gap:.6rem}.translations-modal__preview-divider{height:1px;background:var(--admin-border, #eaecf0)}.translations-modal__preview-meta{display:flex;align-items:center;gap:.6rem;color:var(--admin-text-muted, #667085);font-size:.82rem;font-weight:700}.translations-modal__preview-key{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.translations-modal__preview-text{color:var(--admin-text, #101828);font-size:.95rem;line-height:1.35;overflow-wrap:anywhere}.translations-lang-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:.15rem .4rem;font-size:.7rem;font-weight:900;letter-spacing:.04em}.translations-lang-chip--en{background:#1e4fd71f;color:#1e4fd7}.translations-lang-chip--sw{background:#12b76a24;color:#067647}.translations-modal__footer{justify-content:center}.translations-modal__cancel.btn--ghost{border:none;background:transparent;padding:.25rem .5rem;min-height:auto;color:var(--admin-text-muted, #475467);font-weight:700}.translations-modal__cancel.btn--ghost:hover:not(:disabled){background:transparent;color:var(--admin-text, #101828)}.translations-import-modal .modal-footer,.translations-rollback-modal .modal-footer,.translations-diff-modal .modal-footer{justify-content:center}.translations-diff-meta{color:var(--admin-text-muted, #667085);font-size:.9rem;margin-bottom:1rem}.translations-diff-meta__version{font-weight:900;color:var(--admin-text, #101828)}.translations-diff-loading,.translations-diff-empty{padding:1.25rem 0;color:var(--admin-text-muted, #667085)}.translations-diff-table{display:grid;gap:0;overflow-x:auto;border:1px solid var(--admin-border, #eaecf0);border-radius:12px}.translations-diff-header,.translations-diff-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(110px,.6fr) minmax(260px,1.4fr) minmax(260px,1.4fr);gap:.75rem;align-items:start;min-width:980px;padding:.85rem .95rem}.translations-diff-header{background:#f4f6f9;color:var(--admin-text-muted, #475467);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:800;border-bottom:1px solid var(--admin-border, #eaecf0)}.translations-diff-row{border-bottom:1px solid var(--admin-border, #eaecf0);background:#fff}.translations-diff-row:last-child{border-bottom:none}.translations-diff-key{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.9rem;color:var(--admin-text, #101828);overflow-wrap:anywhere}.translations-diff-type{font-weight:900;color:var(--admin-text, #101828)}.translations-diff-values{display:grid;gap:.35rem;min-width:0}.translations-diff-value{color:var(--admin-text, #344054);font-size:.9rem;line-height:1.3;overflow-wrap:anywhere}.translations-diff-value.muted{color:var(--admin-text-muted, #667085)}@media (max-width: 720px){.translations-page-header{flex-direction:column}.translations-page-header__actions{justify-content:flex-start}}.filters-section{background:var(--admin-surface, #f4f6f8);border-radius:8px;padding:var(--space-3, 24px);margin-bottom:var(--space-3, 24px);border:1px solid var(--admin-border, #eaecf0)}.filters-section h3{font-size:var(--font-size-lg, 20px);color:var(--admin-text, #333);margin-bottom:var(--space-2, 16px)}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-2, 16px);margin-bottom:var(--space-2, 16px)}.filter-actions{display:flex;gap:var(--space-1, 8px);justify-content:flex-end;flex-wrap:wrap}.btn-apply{padding:.5rem 1rem;background-color:var(--admin-primary, #667eea);color:#fff;border:none;border-radius:4px;font-size:.9rem;font-weight:500;transition:background-color .2s;cursor:pointer}.btn-apply:hover{background-color:var(--admin-primary-dark, #5568d3)}.btn-clear{padding:.5rem 1rem;background-color:var(--admin-surface, #e0e0e0);color:var(--admin-text, #333);border:none;border-radius:4px;font-size:.9rem;font-weight:500;transition:background-color .2s;cursor:pointer}.btn-clear:hover{background-color:var(--admin-border, #d0d0d0)}.logs-summary{background:var(--admin-surface, #f4f6f8);border-radius:8px;padding:var(--space-2, 16px);margin-bottom:var(--space-3, 24px);border:1px solid var(--admin-border, #eaecf0)}.summary-item{display:flex;gap:var(--space-1, 8px);font-size:var(--font-size-sm, 14px)}.summary-label{color:var(--admin-text-muted, #666);font-weight:500;text-align:left}.summary-value{color:var(--admin-text, #333);font-weight:600;text-align:right}.logs-list{display:flex;flex-direction:column;gap:var(--space-2, 16px)}.log-card{background:var(--admin-bg, #ffffff);border-radius:8px;padding:var(--space-3, 24px);border-left:4px solid var(--admin-border, #e0e0e0);transition:all .2s ease-in-out}.log-card:nth-child(2n){background-color:var(--admin-surface-alt, #F9F9F9)}.log-card:hover{background-color:var(--admin-primary-soft, rgba(232, 93, 42, .05));transform:translateY(-1px)}.log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2, 16px);padding-bottom:var(--space-2, 16px);border-bottom:1px solid var(--admin-border, #f0f0f0);position:sticky;top:0;background:inherit;z-index:1}.log-timestamp{font-size:var(--font-size-sm, 14px);color:var(--admin-text-muted, #666);font-family:Courier New,monospace;text-align:left}.action-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.action-badge.create{background-color:var(--color-success-bg, #e8f5e9);color:var(--color-success-text, #2e7d32)}.action-badge.update{background-color:var(--admin-primary-soft, #e3f2fd);color:var(--admin-primary, #1976d2)}.action-badge.delete{background-color:var(--color-error-bg, #ffebee);color:var(--color-error-text, #c62828)}.action-badge.auth{background-color:var(--color-warning-bg, #fff3e0);color:var(--color-warning-text, #e65100)}.action-badge.default{background-color:var(--admin-surface, #f5f5f5);color:var(--admin-text-muted, #666)}.log-content{display:flex;flex-direction:column;gap:var(--space-1, 8px)}.log-row{display:flex;gap:var(--space-1, 8px);font-size:var(--font-size-sm, 14px);flex-wrap:wrap}.log-label{color:var(--admin-text-subtle, #999);font-weight:500;min-width:100px;text-align:left}.log-value{color:var(--admin-text, #333);font-weight:600;text-align:left}.log-details-section{margin-top:var(--space-1, 8px)}.btn-toggle-details{padding:.4rem .8rem;background-color:var(--admin-surface, #f5f5f5);color:var(--admin-text-muted, #666);border:1px solid var(--admin-border, #e0e0e0);border-radius:4px;font-size:var(--font-size-sm, 14px);cursor:pointer;transition:all .2s ease-in-out}.btn-toggle-details:hover{background-color:var(--admin-border, #e0e0e0)}.log-details{margin-top:var(--space-1, 8px);padding:var(--space-2, 16px);background-color:var(--admin-surface-alt, #f9f9f9);border:1px solid var(--admin-border, #e0e0e0);border-radius:4px;font-size:var(--font-size-sm, 14px);font-family:Courier New,monospace;overflow-x:auto;max-height:300px;overflow-y:auto}.no-logs{text-align:center;padding:3rem;color:var(--admin-text-subtle, #999);background:var(--admin-bg, #ffffff);border-radius:8px}@media (max-width: 768px){.filters-grid{grid-template-columns:1fr}.filter-actions{justify-content:flex-start}}.overview-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.9rem}.overview-kpi-card{background:#fff;border:1px solid var(--admin-border, #e4e7ec);border-radius:12px;padding:1rem;display:grid;gap:.35rem;border-top:3px solid transparent;min-height:124px}.overview-kpi-card--green{border-top-color:#16a34a}.overview-kpi-card--red{border-top-color:#dc2626}.overview-kpi-card--blue{border-top-color:#2563eb}.overview-kpi-card--orange{border-top-color:#ea580c}.overview-kpi-label{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--admin-text-muted, #667085);font-weight:600}.overview-kpi-value{font-size:2.1rem;line-height:1.05;font-weight:700;color:var(--admin-text, #111827)}.overview-kpi-subtext{font-size:.8rem;color:var(--admin-text-muted, #667085)}.overview-tech-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}.overview-tech-card{border:1px solid var(--admin-border, #e4e7ec);border-radius:12px;padding:.95rem 1rem;background:#f9fafb;display:grid;gap:.35rem;min-height:108px}.overview-tech-label{font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--admin-text-muted, #667085);font-weight:600}.overview-tech-value{font-size:1.8rem;line-height:1.1;font-weight:700;color:var(--admin-text, #111827)}.overview-tech-subtext{color:var(--admin-text-muted, #667085);font-size:.78rem}.overview-station-summary,.overview-queue-trend{border:1px solid var(--admin-border, #e4e7ec);border-radius:12px;background:#fff;padding:1rem;display:grid;gap:.75rem}.overview-panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.overview-panel-title-row h2{margin:0;font-size:1.3rem;color:var(--admin-text, #111827)}.overview-last-sync{font-size:.82rem;color:var(--admin-text-muted, #667085)}.overview-station-table{display:grid;gap:.35rem}.overview-station-table-header,.overview-station-table-row{display:grid;grid-template-columns:minmax(210px,1.55fr) minmax(170px,1fr) minmax(125px,.65fr) minmax(180px,1.2fr) minmax(90px,.7fr) minmax(100px,.65fr);gap:.85rem;align-items:center;padding:.72rem .85rem}.overview-station-table-header{border-radius:9px;background:#f4f6f9;color:var(--admin-text-muted, #475467);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:700}.overview-station-table-row{border:1px solid var(--admin-border, #e5e7eb);border-radius:9px;background:#fff;text-align:left;min-height:74px}.overview-station-table-row>div{min-width:0}.overview-status-cell{display:flex;align-items:center;min-height:36px}button.overview-station-table-row{cursor:pointer;transition:background-color .16s ease,transform .16s ease}button.overview-station-table-row:hover{background:#fbfdff;transform:translateY(-1px)}.overview-station-name{font-weight:700;color:var(--admin-text, #111827)}.overview-station-code{margin-top:.15rem;font-size:.76rem;color:var(--admin-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.04em}.overview-devices-ratio{color:var(--admin-text, #1f2937)}.overview-devices-ratio strong{font-size:1rem}.overview-muted-text{color:var(--admin-text-subtle, #98a2b3);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-queue-chart-wrapper{border:1px solid var(--admin-border, #e5e7eb);border-radius:10px;padding:.75rem .9rem;background:#fcfcfd}.overview-queue-chart{width:100%;height:180px;display:block}.overview-queue-grid-line{fill:none;stroke:#e5e7eb;stroke-width:1}.overview-queue-line{fill:none;stroke:#ea580c;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.overview-queue-axis{margin-top:.45rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:.25rem;font-size:.72rem;color:var(--admin-text-muted, #6b7280)}@media (max-width: 1200px){.overview-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-station-table{overflow-x:auto}.overview-station-table-header,.overview-station-table-row{min-width:980px}}@media (max-width: 900px){.overview-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-tech-grid{grid-template-columns:1fr}.overview-panel-title-row{flex-direction:column;align-items:flex-start}.overview-kpi-value{font-size:1.7rem}.overview-tech-value{font-size:1.5rem}}@media (max-width: 620px){.overview-kpi-grid{grid-template-columns:1fr}}.page--stations{max-width:none;margin:0;width:100%;padding:clamp(14px,1.8vw,24px) clamp(16px,2.2vw,30px);gap:16px}.stations-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.stations-toolbar-note{margin:0;color:var(--admin-text-muted, #667085);font-size:.85rem}.stations-toolbar-refresh{border:1px solid var(--admin-border, #d0d5dd);background:#fff;border-radius:8px;padding:.45rem .75rem;font-size:.85rem;font-weight:600;color:#344054;cursor:pointer}.stations-toolbar-refresh:hover{background:#f8fafc}.stations-list{display:grid;gap:.4rem;overflow-x:auto}.stations-header,.stations-row{display:grid;grid-template-columns:minmax(180px,1.45fr) minmax(90px,.75fr) minmax(170px,1.4fr) minmax(180px,1.35fr) minmax(120px,1fr) minmax(145px,1fr) minmax(110px,.8fr);gap:.8rem;align-items:center;padding:.8rem 1rem;width:100%}.stations-header{border-radius:9px;background:#f4f6f9;color:var(--admin-text-muted, #475467);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:700}.stations-row{background:var(--admin-bg, #ffffff);border:1px solid var(--admin-border, #e1e5ea);border-radius:9px;text-align:left;min-height:74px}.stations-row>div{display:flex;align-items:center;min-width:0}.stations-devices-cell{display:grid;align-content:center;gap:.15rem}.stations-name-cell{display:grid;gap:.2rem;align-items:start}.stations-name{font-weight:700;color:var(--admin-text, #1f2a44);font-size:1.05rem;line-height:1.2}.stations-subtext{color:var(--admin-text-muted, #667085);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stations-code-badge{display:inline-flex;align-items:center;justify-content:flex-start;padding:.2rem .5rem;border-radius:6px;background:#f2f4f7;color:#344054;font-size:.82rem;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stations-metric-value{color:var(--admin-text, #1f2937);font-weight:700;font-size:1rem;line-height:1.1}.stations-muted{color:var(--admin-text-subtle, #98a2b3)}.stations-code-cell,.stations-audio-cell,.stations-hours-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stations-actions{display:flex;align-items:center;gap:.6rem;justify-content:flex-start;flex-wrap:wrap}.stations-status-cell{justify-content:flex-end}.stations-header>div:nth-child(6),.stations-header>div:nth-child(7),.stations-row>div:nth-child(6),.stations-row>div:nth-child(7){justify-content:flex-end}.stations-header>div:nth-child(2),.stations-header>div:nth-child(5),.stations-row>div:nth-child(2),.stations-row>div:nth-child(5){justify-content:flex-start}.stations-action-link{border:none;background:transparent;padding:0;cursor:pointer;color:#344054;font-size:.88rem;font-weight:600}.stations-action-link:hover{color:#101828;text-decoration:underline}.stations-action-link:focus-visible{outline:2px solid var(--admin-primary, #1e4fd7);outline-offset:2px;border-radius:2px}.empty-state{padding:2.5rem 1.5rem;text-align:center;color:var(--admin-text-subtle, #8a94a6);border:1px dashed var(--admin-border, #d0d5dd);border-radius:10px;background:var(--admin-surface-alt, #fbfcfe)}@media (max-width: 1300px){.stations-list{overflow-x:auto}}@media (max-width: 900px){.stations-toolbar{flex-direction:column;align-items:stretch}.stations-toolbar-refresh{width:100%}}.page--station-detail{max-width:none;margin:0;width:100%;padding:clamp(14px,1.8vw,24px) clamp(16px,2.2vw,30px)}.station-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.station-header-meta{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.station-time{font-size:.95rem;color:var(--admin-text-muted, #475467)}.station-section{display:grid;gap:.75rem}.station-section h2{margin:0;font-size:1.1rem;color:var(--admin-text, #1f2a44)}.station-trains-table,.station-screens-table{display:grid;gap:.4rem;overflow-x:auto}.station-trains-header,.station-trains-row{display:grid;grid-template-columns:minmax(100px,.65fr) minmax(170px,1.2fr) minmax(170px,1.2fr) minmax(120px,.8fr) minmax(120px,.8fr) minmax(140px,.9fr);gap:.6rem;align-items:center;padding:.75rem 1rem;border-radius:10px;min-width:960px}.station-screens-header,.station-screens-row{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(170px,1fr) minmax(140px,.85fr) minmax(190px,1.1fr) minmax(120px,.7fr);gap:.6rem;align-items:center;padding:.75rem 1rem;border-radius:10px;min-width:940px}.station-trains-header,.station-screens-header{background:var(--admin-primary-soft, #e8edf8);color:var(--admin-primary, #1e4fd7);font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.08em}.station-trains-row,.station-screens-row{background:var(--admin-bg, #ffffff);border:1px solid var(--admin-border, #e1e5ea)}.station-trains-row>div,.station-screens-row>div{min-width:0}.station-screens-row>div:last-child,.station-screens-header>div:last-child{display:flex;justify-content:flex-end}.link-button{background:none;border:none;color:var(--admin-primary, #1e4fd7);font-weight:600;cursor:pointer;padding:0;text-align:left}.link-button:hover{text-decoration:underline}.empty-state{padding:2rem 1.5rem;text-align:center;color:var(--admin-text-subtle, #8a94a6);border:1px dashed var(--admin-border, #d0d5dd);border-radius:10px;background:var(--admin-surface-alt, #fbfcfe)}.device-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.device-section{display:grid;gap:.75rem}.device-section-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.device-section h2{margin:0;font-size:1.1rem;color:var(--admin-text, #1f2a44)}.dirty-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .55rem;background:#fff4ed;border:1px solid #fdba74;color:#9a3412;font-size:.74rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.device-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.device-status-card{background:var(--admin-surface, #f4f6f8);border:1px solid var(--admin-border, #e1e5ea);border-radius:12px;padding:1rem;display:grid;gap:.4rem}.device-status-card .label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--admin-text-muted, #5b6472)}.device-status-card .value{font-size:1rem;font-weight:600;color:var(--admin-text, #1f2a44)}.device-status-card .subvalue{font-size:.8rem;color:var(--admin-text-muted, #667085)}.device-preview-frame{--preview-aspect-ratio: 16 / 9;--preview-max-height: 78vh;border-radius:14px;overflow:hidden;border:1px solid var(--admin-border, #e1e5ea);background:var(--admin-bg, #ffffff);width:100%;max-width:calc(var(--preview-max-height) * var(--preview-aspect-ratio));aspect-ratio:var(--preview-aspect-ratio);min-height:380px;max-height:var(--preview-max-height);display:flex;justify-content:center;align-items:center}.device-preview-stage{transform-origin:top left}.device-preview-stage iframe{width:100%;height:100%;border:none}.device-controls{display:flex;flex-wrap:wrap;gap:.75rem}.device-controls-note{margin-top:.5rem;font-size:.85rem;color:var(--color-warning-text, #9a5a00)}.device-config-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}.device-config-field{display:grid;gap:.35rem}.device-config-field label{font-size:.85rem;color:var(--admin-text-muted, #5b6472)}.device-config-field select{padding:.5rem .6rem;border-radius:8px;border:1px solid var(--admin-border, #e1e5ea);background:var(--admin-bg, #ffffff);font-size:.95rem}.device-config-actions{display:flex;justify-content:space-between;align-items:center;gap:.8rem;border-top:1px solid var(--admin-border, #e1e5ea);padding-top:.8rem}.device-config-actions-note{color:var(--admin-text-muted, #667085);font-size:.82rem}.device-controls-group{display:grid;gap:.55rem}.device-controls-group h3{margin:0;font-size:.9rem;font-weight:700;color:var(--admin-text, #1f2a44)}.device-controls-group.danger{border-top:1px solid var(--admin-border, #e1e5ea);padding-top:.7rem}.action-error-banner{padding:.75rem 1rem;border-radius:10px;background:var(--color-warning-bg, #fff4e5);border:1px solid var(--color-warning-border, #f6c343);color:var(--color-warning-text, #7a4a00);margin-bottom:1rem}.empty-state{padding:2rem;text-align:center;color:var(--admin-text-subtle, #8a94a6)}@media (max-width: 900px){.device-config-actions{flex-direction:column;align-items:stretch}}.page--roles{max-width:none;margin:0;width:100%;padding:clamp(14px,1.8vw,24px) clamp(16px,2.2vw,30px);gap:16px}.page--roles .page-header h1{color:var(--admin-text, #101828)}.roles-page-content.page-content{padding:0;gap:16px;background:transparent;border:none;box-shadow:none}.roles-page-header{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:1rem}.roles-page-header__copy{display:grid;gap:.5rem;min-width:0}.roles-page-header__actions{display:flex;align-items:center;justify-content:flex-end}.roles-note{font-size:.9rem;color:var(--admin-text-muted, #667085)}.roles-modal .form-field{margin-bottom:0}.roles-modal-section-title{margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--admin-border, #eaecf0);font-size:.95rem;font-weight:800;color:var(--admin-text, #101828)}.roles-required{color:var(--color-accent, #e85d2a);margin-left:.25rem}.roles-role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.roles-role-card{border-radius:10px;border:1px solid var(--admin-border, #eaecf0);padding:1rem 1.25rem;display:grid;gap:.35rem}.roles-role-card__title{font-size:1.05rem;font-weight:900;color:var(--admin-text, #101828)}.roles-role-card__subtitle{font-size:.9rem;color:var(--admin-text-muted, #475467)}.roles-role-card--purple{background:#9b51e014;border-color:#9b51e04d}.roles-role-card--purple .roles-role-card__title{color:#6d28d9}.roles-role-card--blue{background:#1e4fd714;border-color:#1e4fd738}.roles-role-card--blue .roles-role-card__title{color:#1e4fd7}.roles-role-card--green{background:#12b76a1a;border-color:#12b76a40}.roles-role-card--green .roles-role-card__title{color:#067647}.roles-role-card--gray{background:#f8fafc}.roles-table.table-container{border-radius:10px;border:1px solid var(--admin-border, #eaecf0);background:#fff;box-shadow:0 2px 8px #1018280a}.roles-table .table__header{background:#f4f6f9;color:var(--admin-text-muted, #475467)}.roles-table .table__header-cell{padding:.82rem .95rem;text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:800;color:var(--admin-text-muted, #475467)}.roles-table .table__row:nth-child(2n){background:#fff}.roles-table .table__row:hover{background:#10182805}.roles-table .table__cell{padding:.9rem .95rem;font-size:.92rem;color:var(--admin-text, #344054)}.roles-table .table__header-cell:last-child,.roles-table .table__cell:last-child{text-align:right}.roles-user{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-weight:700;color:var(--admin-text, #101828)}.roles-user-tag{background:#1e4fd71f;color:#1e4fd7;border-radius:999px;font-size:.7rem;padding:.15rem .5rem;font-weight:800}.roles-role-pill{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;border:1px solid transparent;font-size:.7rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.roles-role-pill--purple{background:#9b51e01f;border-color:#9b51e040;color:#6d28d9}.roles-role-pill--blue{background:#1e4fd71f;border-color:#1e4fd740;color:#1e4fd7}.roles-role-pill--green{background:#12b76a24;border-color:#12b76a42;color:#067647}.roles-role-pill--gray{background:#f2f4f7;border-color:var(--admin-border, #e4e7ec);color:var(--admin-text-muted, #475467)}.roles-scope-all{color:var(--admin-text-muted, #667085);font-weight:600}.roles-scope-station{color:var(--admin-text, #101828);font-weight:600}.roles-status-pill{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:900;border:1px solid transparent}.roles-status-pill--active{background:#12b76a24;border-color:#12b76a40;color:#067647}.roles-status-pill--inactive{background:#f2f4f7;border-color:var(--admin-border, #e4e7ec);color:var(--admin-text-muted, #475467)}.roles-actions{display:flex;flex-direction:row;gap:.85rem;justify-content:flex-end;align-items:center;flex-wrap:nowrap}.roles-action-link{border:none;background:transparent;padding:0;cursor:pointer;color:#344054;font-size:.88rem;font-weight:700;white-space:nowrap;line-height:1.1;flex-shrink:0}.roles-action-link:hover{color:#101828;text-decoration:underline}.roles-role-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.75rem}.roles-role-chip{border:1px solid var(--admin-border, #e4e7ec);background:#fff;border-radius:8px;padding:.55rem .6rem;font-size:.7rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;color:var(--admin-text-muted, #475467);transition:border-color .15s ease,background .15s ease,color .15s ease}.roles-role-chip--purple{color:#6d28d9}.roles-role-chip--blue{color:#1e4fd7}.roles-role-chip--green{color:#067647}.roles-role-chip--gray{color:var(--admin-text-muted, #475467)}.roles-role-chip--purple:hover:not(:disabled){border-color:#6d28d973}.roles-role-chip--blue:hover:not(:disabled){border-color:#1e4fd759}.roles-role-chip--green:hover:not(:disabled){border-color:#12b76a59}.roles-role-chip--gray:hover:not(:disabled){border-color:#47546759;color:var(--admin-text, #101828)}.roles-role-chip--purple.is-active{border-color:#6d28d973;background:#9b51e01f}.roles-role-chip--blue.is-active{border-color:#1e4fd759;background:#1e4fd71f}.roles-role-chip--green.is-active{border-color:#12b76a59;background:#12b76a24}.roles-role-chip--gray.is-active{border-color:var(--admin-border, #e4e7ec);background:#f2f4f7;color:var(--admin-text, #101828)}.roles-role-chip:disabled{opacity:.6;cursor:not-allowed}.roles-station-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:.5rem}.roles-station-search{flex:1 1 240px;width:100%;padding:.6rem .75rem;border:1px solid var(--admin-border, #d0d5dd);border-radius:8px;font-size:.95rem;background:#fff;color:var(--admin-text, #1f2933);transition:border-color .15s ease}.roles-station-search:focus-visible{outline:none;border-color:var(--color-accent, #e85d2a)}.roles-station-search:disabled{background:var(--admin-surface-alt, #f2f4f7);color:var(--admin-text-subtle, #98a2b3)}.roles-station-clear.btn--ghost{border:none;background:transparent;padding:.25rem .5rem;min-height:auto;color:var(--admin-text-muted, #475467);font-weight:700}.roles-station-clear.btn--ghost:hover:not(:disabled){background:transparent;color:var(--admin-text, #101828)}.station-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin-top:.65rem}.station-option{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:.75rem .85rem;min-height:72px;background:var(--admin-surface-alt, #f8fafc);border:1px solid var(--admin-border, #e4e7ec);border-radius:10px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.station-option input[type=checkbox],.station-option input[type=radio]{position:absolute;top:.6rem;right:.6rem;width:16px;height:16px;margin:0;accent-color:var(--admin-primary, #1e4fd7)}.station-option span{font-size:.9rem;font-weight:700;color:var(--admin-text-muted, #344054)}.station-option:hover:not(.is-selected){border-color:#e85d2a59}.station-option.is-selected{border-color:var(--color-accent, #e85d2a);background:#e85d2a0f}.roles-status-options{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:.25rem}.roles-status-option{display:inline-flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:700;color:var(--admin-text, #344054)}.roles-status-option input[type=radio]{width:16px;height:16px;margin:0;accent-color:var(--admin-primary, #1e4fd7)}.roles-modal__cancel.btn--ghost{border:none;background:transparent;padding:.25rem .5rem;min-height:auto;color:var(--admin-text-muted, #475467);font-weight:700}.roles-modal__cancel.btn--ghost:hover:not(:disabled){background:transparent;color:var(--admin-text, #101828)}.action-error-banner{background:var(--color-warning-bg, #fff4e5);color:var(--color-warning-text, #7a4a00);border:1px solid var(--color-warning-border, #f6c343);padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.action-success-banner{background:#12b76a1f;color:#067647;border:1px solid rgba(18,183,106,.25);padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.roles-reset-toolbar{display:flex;justify-content:flex-end;margin:.75rem 0 1rem}.roles-password-visibility{display:flex;justify-content:flex-end;margin:.25rem 0 .75rem}.roles-password-toggle{display:inline-flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:700;color:var(--admin-text, #344054)}.roles-password-toggle input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--admin-primary, #1e4fd7)}@media (max-width: 720px){.roles-page-header{flex-direction:column}.roles-page-header__actions{justify-content:flex-start}}.system-logs-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.system-logs-actions{display:flex;align-items:center;gap:.5rem}.system-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.metric-card{border:1px solid var(--admin-border, #eaecf0);border-radius:10px;padding:.9rem 1rem;background:var(--admin-surface-alt, #f8fafc)}.metric-card h3{margin:0;font-size:.85rem;color:var(--admin-text-muted, #667085);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.metric-card p{margin:.5rem 0 0;font-size:1.4rem;font-weight:700;color:var(--admin-text, #1f2937)}.queue-depth-section,.system-events-section{display:grid;gap:.75rem}.queue-depth-section h2,.system-events-section h2{margin:0;font-size:1rem;color:var(--admin-text, #1f2937)}.system-log-table{width:100%;border-collapse:collapse;border:1px solid var(--admin-border, #eaecf0);border-radius:10px;overflow:hidden}.system-log-table th,.system-log-table td{padding:.7rem .75rem;border-bottom:1px solid var(--admin-border, #eaecf0);text-align:left;vertical-align:top}.system-log-table th{background:var(--admin-surface-alt, #f8fafc);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:var(--admin-text-muted, #667085)}.system-log-table tr:last-child td{border-bottom:none}.event-tone{display:inline-block;padding:.25rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.02em}.event-tone--neutral{background:#e2e8f0;color:#1f2937}.event-tone--success{background:#dcfce7;color:#166534}.event-tone--warning{background:#fef3c7;color:#92400e}.event-tone--danger{background:#fee2e2;color:#991b1b}@media (max-width: 900px){.system-logs-header{flex-direction:column}.system-log-table{display:block;overflow-x:auto;white-space:nowrap}}body{background-color:var(--admin-bg, #ffffff);color:var(--admin-text, #1f2933);--admin-primary: #1e4fd7;--admin-primary-soft: #e8efff;--admin-primary-dark: #183fa8;--admin-accent: #e85d2a;--admin-bg: #ffffff;--admin-surface: #f4f6f8;--admin-surface-alt: #f8fafc;--admin-border: #eaecf0;--admin-text: #1f2933;--admin-text-muted: #667085;--admin-text-subtle: #98a2b3;--admin-table-header-bg: #f4f6f8;--admin-table-header-text: #475467;--admin-table-row-hover: rgba(30, 79, 215, .05);--admin-card-shadow: 0 8px 20px rgba(15, 23, 42, .06);--color-primary: var(--admin-primary);--color-primary-light: #3d6ee3;--color-primary-dark: #163a93;--color-accent: var(--admin-accent);--color-background: var(--admin-bg);--color-background-secondary: var(--admin-surface)}.table__header{background-color:var(--admin-table-header-bg);color:var(--admin-table-header-text)}.table__header-cell--sortable:hover{background-color:var(--admin-primary-soft)}.table__row:hover{background-color:var(--admin-table-row-hover)}.table-container{border-color:var(--admin-border)}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.2rem;color:var(--admin-text-muted, #666)}:root{--color-background: #FFFFFF;--color-white: #FFFFFF;--color-divider: #1E40AF;--brand-primary: var(--color-divider);--color-on-time: #16A34A;--color-delayed: #EA580C;--color-cancelled: #DC2626;--color-idle-text: #6B7280;--color-text-secondary: #374151;--color-gray-50: var(--color-background-tertiary);--color-gray-200: var(--color-border-primary);--color-gray-500: var(--color-text-secondary);--color-gray-900: var(--color-text-primary);--color-primary: #6B1F1F;--color-primary-light: #8B3535;--color-primary-dark: #4B1515;--color-primary-hover: #5A1919;--color-primary-active: #4B1515;--color-accent: #E85D2A;--color-accent-light: #FF7744;--color-accent-dark: #D14D1A;--color-accent-hover: #D14D1A;--color-accent-active: #B83D0A;--color-highlight: #FFD700;--color-highlight-light: #FFE44D;--color-highlight-dark: #E6C200;--color-highlight-hover: #E6C200;--color-highlight-active: #CCB000;--color-black: #000000;--color-text-primary: #000000;--color-text-secondary: #666666;--color-text-tertiary: #757575;--color-text-disabled: #CCCCCC;--color-text-inverse: #FFFFFF;--color-background-primary: #FFFFFF;--color-background-secondary: #F9F9F9;--color-background-tertiary: #F5F5F5;--color-background-disabled: #E0E0E0;--color-background-overlay: rgba(0, 0, 0, .5);--color-border-primary: #E0E0E0;--color-border-secondary: #CCCCCC;--color-border-focus: var(--color-accent);--color-border-error: #D32F2F;--color-status-boarding: #FFD700;--color-status-boarding-bg: #FFF9E6;--color-status-boarding-text: #6B5A00;--color-status-delayed: #E85D2A;--color-status-delayed-bg: #FFF3E0;--color-status-delayed-text: #BF360C;--color-status-ontime: #4CAF50;--color-status-ontime-bg: #E8F5E9;--color-status-ontime-text: #1B5E20;--color-status-departed: #9E9E9E;--color-status-departed-bg: #F5F5F5;--color-status-departed-text: #424242;--color-status-cancelled: #D32F2F;--color-status-cancelled-bg: #FFEBEE;--color-status-cancelled-text: #B71C1C;--status-on-time: var(--color-status-ontime);--status-boarding: var(--color-status-boarding);--status-final-call: var(--color-status-delayed);--status-delayed: var(--color-status-delayed);--status-cancelled: var(--color-status-cancelled);--color-success: #4CAF50;--color-success-light: #81C784;--color-success-dark: #388E3C;--color-success-bg: #E8F5E9;--color-success-text: #1B5E20;--color-success-border: #4CAF50;--color-error: #D32F2F;--color-error-light: #E57373;--color-error-dark: #C62828;--color-error-bg: #FFEBEE;--color-error-text: #B71C1C;--color-error-border: #D32F2F;--color-warning: #E85D2A;--color-warning-light: #FF7744;--color-warning-dark: #D14D1A;--color-warning-bg: #FFF3E0;--color-warning-text: #BF360C;--color-warning-border: #E85D2A;--color-info: #2196F3;--color-info-light: #64B5F6;--color-info-dark: #1976D2;--color-info-bg: #E3F2FD;--color-info-text: #0D47A1;--color-info-border: #2196F3;--color-primary-10: rgba(107, 31, 31, .1);--color-primary-20: rgba(107, 31, 31, .2);--color-primary-30: rgba(107, 31, 31, .3);--color-primary-50: rgba(107, 31, 31, .5);--color-primary-70: rgba(107, 31, 31, .7);--color-primary-90: rgba(107, 31, 31, .9);--color-accent-10: rgba(232, 93, 42, .1);--color-accent-20: rgba(232, 93, 42, .2);--color-accent-30: rgba(232, 93, 42, .3);--color-accent-50: rgba(232, 93, 42, .5);--color-accent-70: rgba(232, 93, 42, .7);--color-accent-90: rgba(232, 93, 42, .9);--color-highlight-10: rgba(255, 215, 0, .1);--color-highlight-20: rgba(255, 215, 0, .2);--color-highlight-30: rgba(255, 215, 0, .3);--color-highlight-50: rgba(255, 215, 0, .5);--color-highlight-70: rgba(255, 215, 0, .7);--color-highlight-90: rgba(255, 215, 0, .9);--color-black-10: rgba(0, 0, 0, .1);--color-black-20: rgba(0, 0, 0, .2);--color-black-30: rgba(0, 0, 0, .3);--color-black-50: rgba(0, 0, 0, .5);--color-black-70: rgba(0, 0, 0, .7);--color-black-90: rgba(0, 0, 0, .9);--color-white-10: rgba(255, 255, 255, .1);--color-white-20: rgba(255, 255, 255, .2);--color-white-30: rgba(255, 255, 255, .3);--color-white-50: rgba(255, 255, 255, .5);--color-white-70: rgba(255, 255, 255, .7);--color-white-90: rgba(255, 255, 255, .9);--color-hover-primary: var(--color-primary-hover);--color-hover-accent: var(--color-accent-hover);--color-hover-highlight: var(--color-highlight-hover);--color-hover-overlay: rgba(0, 0, 0, .05);--color-active-primary: var(--color-primary-active);--color-active-accent: var(--color-accent-active);--color-active-highlight: var(--color-highlight-active);--color-active-overlay: rgba(0, 0, 0, .1);--color-focus-ring: var(--color-accent);--color-focus-ring-offset: var(--color-white);--color-disabled-bg: #E0E0E0;--color-disabled-text: #CCCCCC;--color-disabled-border: #CCCCCC;--color-disabled-opacity: .5;--color-shadow-sm: rgba(0, 0, 0, .1);--color-shadow-md: rgba(0, 0, 0, .15);--color-shadow-lg: rgba(0, 0, 0, .2);--color-shadow-xl: rgba(0, 0, 0, .25);--color-link: var(--color-accent);--color-link-hover: var(--color-accent-dark);--color-link-visited: #9C27B0;--color-selection-bg: var(--color-accent-20);--color-selection-text: var(--color-text-primary);--color-scrollbar-track: #F5F5F5;--color-scrollbar-thumb: #CCCCCC;--color-scrollbar-thumb-hover: #999999}:root{--font-size-station-name: 72px;--font-size-board-title: 44px;--font-size-swahili-subtitle: 32px;--font-size-clock: 52px;--font-size-primary-time: 64px;--font-size-destination: 52px;--font-size-train-number: 36px;--font-size-status-badge: 28px;--font-size-secondary-text: 20px;--font-size-state-banner: 120px;--font-size-state-destination: 72px;--font-size-state-departure-time: 64px;--font-size-state-train-number: 48px;--font-size-footer: 20px;--font-size-idle-message: 72px;--text-primary: var(--font-size-station-name);--text-badge: var(--font-size-board-title);--text-labels: var(--font-size-status-badge);--text-body: var(--font-size-secondary-text);--text-display: var(--font-size-state-banner);--text-secondary: var(--font-size-state-destination);--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-regular: var(--font-weight-regular);--font-medium: var(--font-weight-medium);--font-semibold: var(--font-weight-semibold);--font-bold: var(--font-weight-bold);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro", "Segoe UI", sans-serif;--line-height-tight: 1.2;--line-height-normal: 1.5}@media (max-width: 1440px){:root{--font-size-station-name: 44px;--font-size-board-title: 28px;--font-size-swahili-subtitle: 20px;--font-size-clock: 32px;--font-size-primary-time: 36px;--font-size-destination: 28px;--font-size-train-number: 22px;--font-size-status-badge: 18px;--font-size-secondary-text: 16px;--font-size-state-banner: 60px;--font-size-state-destination: 48px;--font-size-state-departure-time: 40px;--font-size-state-train-number: 28px;--font-size-footer: 16px;--font-size-idle-message: 36px}}@media (min-width: 1441px) and (max-width: 1919px){:root{--font-size-station-name: 56px;--font-size-board-title: 34px;--font-size-swahili-subtitle: 26px;--font-size-clock: 42px;--font-size-primary-time: 48px;--font-size-destination: 38px;--font-size-train-number: 28px;--font-size-status-badge: 22px;--font-size-secondary-text: 18px;--font-size-state-banner: 90px;--font-size-state-destination: 60px;--font-size-state-departure-time: 52px;--font-size-state-train-number: 36px;--font-size-footer: 18px;--font-size-idle-message: 54px}}@media (min-width: 1921px) and (max-width: 2559px){:root{--font-size-station-name: 84px;--font-size-board-title: 52px;--font-size-swahili-subtitle: 38px;--font-size-clock: 62px;--font-size-primary-time: 72px;--font-size-destination: 58px;--font-size-train-number: 40px;--font-size-status-badge: 32px;--font-size-secondary-text: 22px;--font-size-state-banner: 140px;--font-size-state-destination: 88px;--font-size-state-departure-time: 72px;--font-size-state-train-number: 52px;--font-size-footer: 22px;--font-size-idle-message: 88px}}@media (min-width: 2560px){:root{--font-size-station-name: 115px;--font-size-board-title: 72px;--font-size-swahili-subtitle: 51px;--font-size-clock: 83px;--font-size-primary-time: 110px;--font-size-destination: 85px;--font-size-train-number: 60px;--font-size-status-badge: 48px;--font-size-secondary-text: 32px;--font-size-state-banner: 200px;--font-size-state-destination: 120px;--font-size-state-departure-time: 110px;--font-size-state-train-number: 80px;--font-size-footer: 30px;--font-size-idle-message: 120px}}:root[data-screen-size=laptop]{--font-size-station-name: 44px;--font-size-board-title: 28px;--font-size-swahili-subtitle: 20px;--font-size-clock: 32px;--font-size-primary-time: 36px;--font-size-destination: 28px;--font-size-train-number: 22px;--font-size-status-badge: 18px;--font-size-secondary-text: 16px;--font-size-state-banner: 60px;--font-size-state-destination: 48px;--font-size-state-departure-time: 40px;--font-size-state-train-number: 28px;--font-size-footer: 16px;--font-size-idle-message: 36px}:root[data-screen-size="32"]{--font-size-station-name: 56px;--font-size-board-title: 34px;--font-size-swahili-subtitle: 26px;--font-size-clock: 42px;--font-size-primary-time: 48px;--font-size-destination: 38px;--font-size-train-number: 28px;--font-size-status-badge: 22px;--font-size-secondary-text: 18px;--font-size-state-banner: 90px;--font-size-state-destination: 60px;--font-size-state-departure-time: 52px;--font-size-state-train-number: 36px;--font-size-footer: 18px;--font-size-idle-message: 54px}:root[data-screen-size="43"]{--font-size-station-name: 72px;--font-size-board-title: 44px;--font-size-swahili-subtitle: 32px;--font-size-clock: 52px;--font-size-primary-time: 64px;--font-size-destination: 52px;--font-size-train-number: 36px;--font-size-status-badge: 28px;--font-size-secondary-text: 20px;--font-size-state-banner: 120px;--font-size-state-destination: 72px;--font-size-state-departure-time: 64px;--font-size-state-train-number: 48px;--font-size-footer: 20px;--font-size-idle-message: 72px}:root[data-screen-size="55"]{--font-size-station-name: 84px;--font-size-board-title: 52px;--font-size-swahili-subtitle: 38px;--font-size-clock: 62px;--font-size-primary-time: 72px;--font-size-destination: 58px;--font-size-train-number: 40px;--font-size-status-badge: 32px;--font-size-secondary-text: 22px;--font-size-state-banner: 140px;--font-size-state-destination: 88px;--font-size-state-departure-time: 72px;--font-size-state-train-number: 52px;--font-size-footer: 22px;--font-size-idle-message: 88px}:root[data-screen-size="4k"],:root[data-screen-size="65"],:root[data-screen-size="75"]{--font-size-station-name: 115px;--font-size-board-title: 72px;--font-size-swahili-subtitle: 51px;--font-size-clock: 83px;--font-size-primary-time: 110px;--font-size-destination: 85px;--font-size-train-number: 60px;--font-size-status-badge: 48px;--font-size-secondary-text: 32px;--font-size-state-banner: 200px;--font-size-state-destination: 120px;--font-size-state-departure-time: 110px;--font-size-state-train-number: 80px;--font-size-footer: 30px;--font-size-idle-message: 120px}:root{--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 20px;--font-size-xl: var(--text-body);--font-size-2xl: var(--text-labels);--font-size-3xl: var(--text-badge);--font-weight-normal: var(--font-regular);--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: var(--font-bold);--line-height-relaxed: 1.75;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em}.font-sans{font-family:var(--font-family)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.leading-tight{line-height:var(--line-height-tight)}.leading-normal{line-height:var(--line-height-normal)}.leading-relaxed{line-height:var(--line-height-relaxed)}.tracking-tight{letter-spacing:var(--letter-spacing-tight)}.tracking-normal{letter-spacing:var(--letter-spacing-normal)}.tracking-wide{letter-spacing:var(--letter-spacing-wide)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.display-train-number{font-family:var(--font-family);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.display-body{font-family:var(--font-family);font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal)}.display-heading{font-family:var(--font-family);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.admin-heading{font-family:var(--font-family);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.admin-body{font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal)}.admin-label{font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal)}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-family);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin:0}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5,h6{font-size:var(--font-size-base)}p{margin:0;line-height:var(--line-height-normal)}a{font-family:inherit;text-decoration:underline;color:inherit}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}code,pre,kbd,samp{font-family:Monaco,Courier New,monospace;font-size:.9em}@media (prefers-reduced-motion: reduce){a{transition:none}}:root{--spacing-micro: 8px;--spacing-small: 16px;--spacing-medium: 24px;--spacing-large: 32px;--spacing-section: 48px;--spacing-2xs: calc(var(--spacing-micro) / 4);--spacing-xs: calc(var(--spacing-micro) / 2);--space-xs: var(--spacing-micro);--space-sm: var(--spacing-small);--space-md: var(--spacing-medium);--space-lg: var(--spacing-large);--space-xl: var(--spacing-section);--space-xxl: calc(var(--spacing-section) * 4 / 3);--space-xxxl: calc(var(--spacing-section) * 2);--space-1: var(--spacing-micro);--space-2: var(--spacing-small);--space-3: var(--spacing-medium);--space-4: var(--spacing-large);--space-5: calc(var(--spacing-large) + var(--spacing-micro));--space-6: var(--spacing-section);--space-10px: calc(var(--spacing-micro) * 1.5);--space-12: calc(var(--spacing-section) * 2.5)}@media (max-width: 1440px){:root{--spacing-micro: 6px;--spacing-small: 12px;--spacing-medium: 18px;--spacing-large: 24px;--spacing-section: 36px}}@media (min-width: 1441px) and (max-width: 1919px){:root{--spacing-micro: 7px;--spacing-small: 14px;--spacing-medium: 21px;--spacing-large: 28px;--spacing-section: 42px}}@media (min-width: 1921px) and (max-width: 2559px){:root{--spacing-micro: 10px;--spacing-small: 20px;--spacing-medium: 30px;--spacing-large: 40px;--spacing-section: 60px}}@media (min-width: 2560px){:root{--spacing-micro: 13px;--spacing-small: 26px;--spacing-medium: 38px;--spacing-large: 51px;--spacing-section: 77px}}:root[data-screen-size=laptop]{--spacing-micro: 6px;--spacing-small: 12px;--spacing-medium: 18px;--spacing-large: 24px;--spacing-section: 36px}:root[data-screen-size="32"]{--spacing-micro: 7px;--spacing-small: 14px;--spacing-medium: 21px;--spacing-large: 28px;--spacing-section: 42px}:root[data-screen-size="43"]{--spacing-micro: 8px;--spacing-small: 16px;--spacing-medium: 24px;--spacing-large: 32px;--spacing-section: 48px}:root[data-screen-size="55"]{--spacing-micro: 10px;--spacing-small: 20px;--spacing-medium: 30px;--spacing-large: 40px;--spacing-section: 60px}:root[data-screen-size="4k"],:root[data-screen-size="65"],:root[data-screen-size="75"]{--spacing-micro: 13px;--spacing-small: 26px;--spacing-medium: 38px;--spacing-large: 51px;--spacing-section: 77px}:root{--canvas-width: 1920px;--canvas-height: 1080px;--safe-margin-horizontal: 2.5vw;--safe-margin-vertical: 2.5vh;--margin-horizontal: max(var(--safe-margin-horizontal), 80px);--margin-top: max(var(--safe-margin-vertical), 60px);--margin-bottom: max(var(--safe-margin-vertical), 60px);--row-spacing: 28px;--header-spacing: 40px;--section-spacing: 48px;--row-height: 120px;--card-width: 520px;--divider-width: 1px;--max-rows: 5;--max-cards: 5}@media (max-width: 1440px){:root{--margin-horizontal: max(var(--safe-margin-horizontal), 40px);--margin-top: max(var(--safe-margin-vertical), 40px);--margin-bottom: max(var(--safe-margin-vertical), 40px);--row-spacing: 16px;--header-spacing: 20px;--section-spacing: 32px;--row-height: 80px;--card-width: 320px;--max-rows: 5;--max-cards: 3}}@media (min-width: 1441px) and (max-width: 1919px){:root{--margin-horizontal: max(var(--safe-margin-horizontal), 60px);--margin-top: max(var(--safe-margin-vertical), 50px);--margin-bottom: max(var(--safe-margin-vertical), 50px);--row-spacing: 22px;--header-spacing: 32px;--section-spacing: 42px;--row-height: 100px;--card-width: 420px;--max-rows: 5}}@media (min-width: 1921px) and (max-width: 2559px){:root{--margin-horizontal: max(var(--safe-margin-horizontal), 120px);--margin-top: max(var(--safe-margin-vertical), 80px);--margin-bottom: max(var(--safe-margin-vertical), 80px);--row-spacing: 36px;--header-spacing: 52px;--section-spacing: 60px;--row-height: 140px;--card-width: 650px;--max-rows: 5}}@media (min-width: 2560px){:root{--margin-horizontal: max(var(--safe-margin-horizontal), 180px);--margin-top: max(var(--safe-margin-vertical), 100px);--margin-bottom: max(var(--safe-margin-vertical), 100px);--row-spacing: 50px;--header-spacing: 72px;--section-spacing: 80px;--row-height: 192px;--card-width: 900px;--max-rows: 6;--max-cards: 6}}:root[data-screen-size=laptop]{--margin-horizontal: max(var(--safe-margin-horizontal), 40px);--margin-top: max(var(--safe-margin-vertical), 40px);--margin-bottom: max(var(--safe-margin-vertical), 40px);--row-spacing: 16px;--header-spacing: 20px;--section-spacing: 32px;--row-height: 80px;--card-width: 320px;--max-rows: 5;--max-cards: 3}:root[data-screen-size="32"]{--margin-horizontal: max(var(--safe-margin-horizontal), 60px);--margin-top: max(var(--safe-margin-vertical), 50px);--margin-bottom: max(var(--safe-margin-vertical), 50px);--row-spacing: 22px;--header-spacing: 32px;--section-spacing: 42px;--row-height: 100px;--card-width: 420px;--max-rows: 5}:root[data-screen-size="43"]{--margin-horizontal: max(var(--safe-margin-horizontal), 80px);--margin-top: max(var(--safe-margin-vertical), 60px);--margin-bottom: max(var(--safe-margin-vertical), 60px);--row-spacing: 28px;--header-spacing: 40px;--section-spacing: 48px;--row-height: 120px;--card-width: 520px;--max-rows: 5}:root[data-screen-size="55"]{--margin-horizontal: max(var(--safe-margin-horizontal), 120px);--margin-top: max(var(--safe-margin-vertical), 80px);--margin-bottom: max(var(--safe-margin-vertical), 80px);--row-spacing: 36px;--header-spacing: 52px;--section-spacing: 60px;--row-height: 140px;--card-width: 650px;--max-rows: 5}:root[data-screen-size="4k"],:root[data-screen-size="65"],:root[data-screen-size="75"]{--margin-horizontal: max(var(--safe-margin-horizontal), 180px);--margin-top: max(var(--safe-margin-vertical), 100px);--margin-bottom: max(var(--safe-margin-vertical), 100px);--row-spacing: 50px;--header-spacing: 72px;--section-spacing: 80px;--row-height: 192px;--card-width: 900px;--max-rows: 6;--max-cards: 6}.departures-board,.arrivals-board,.boarding-gate-screen,.boarding-platform-screen,.waiting-lounge-screen,.intermediate-station-screen,.combined-screen,.idle-screen,.emergency-screen,.maintenance-screen{width:100%;height:100%;box-sizing:border-box}:root{--color-shadow-sm: rgba(0, 0, 0, 0);--color-shadow-md: rgba(0, 0, 0, 0);--color-shadow-lg: rgba(0, 0, 0, 0);--color-shadow-xl: rgba(0, 0, 0, 0);--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--shadow-xl: none;--shadow-card: none;--shadow-card-hover: none;--shadow-button: none;--shadow-button-hover: none;--shadow-button-active: none;--shadow-modal: none;--shadow-modal-backdrop: 0 0 0 9999px rgba(0, 0, 0, .5);--shadow-dropdown: none;--shadow-input-focus: none;--shadow-table-row-hover: none;--shadow-nav: none;--shadow-inset: none;--shadow-input-inset: none;--shadow-focus: none;--shadow-success: none;--shadow-error: none;--shadow-warning: none;--shadow-layered: none;--shadow-layered-elevated: none;--shadow-layered-floating: none}.shadow-none,.shadow-sm,.shadow-md,.shadow-lg,.shadow-xl,.shadow-card,.shadow-card-hover,.shadow-button,.shadow-modal,.shadow-dropdown,.shadow-inset,.shadow-input-inset,.shadow-focus,.shadow-success,.shadow-error,.shadow-warning,.shadow-layered,.shadow-layered-elevated,.shadow-layered-floating{box-shadow:none}.shadow-transition{transition:none}.shadow-card-interactive,.shadow-button-interactive{box-shadow:none}.shadow-button-interactive:active:not(:disabled){box-shadow:none}@media (prefers-reduced-motion: reduce){.shadow-transition,.shadow-card-interactive,.shadow-button-interactive{transition:none}}@media (prefers-contrast: high){.shadow-sm,.shadow-md,.shadow-lg,.shadow-xl,.shadow-card,.shadow-button{box-shadow:none;border:1px solid currentColor}}:root{--breakpoint-xs: 320px;--breakpoint-sm: 768px;--breakpoint-md: 1024px;--breakpoint-lg: 1440px;--breakpoint-xl: 1920px;--breakpoint-2xl: 2560px}@media (min-width: 320px){.hide-xs{display:none!important}}@media (min-width: 768px){.hide-sm{display:none!important}}@media (min-width: 1024px){.hide-md{display:none!important}}@media (min-width: 1440px){.hide-lg{display:none!important}}@media (min-width: 1920px){.hide-xl{display:none!important}}.show-xs{display:none!important}@media (min-width: 320px){.show-xs{display:block!important}}.show-sm{display:none!important}@media (min-width: 768px){.show-sm{display:block!important}}.show-md{display:none!important}@media (min-width: 1024px){.show-md{display:block!important}}.show-lg{display:none!important}@media (min-width: 1440px){.show-lg{display:block!important}}.show-xl{display:none!important}@media (min-width: 1920px){.show-xl{display:block!important}}@media (max-width: 767px){.mobile-only{display:block!important}.desktop-only{display:none!important}}@media (min-width: 768px){.mobile-only{display:none!important}.desktop-only{display:block!important}}@media (max-width: 767px){.text-center-mobile{text-align:center!important}.text-left-mobile{text-align:left!important}.text-right-mobile{text-align:right!important}}@media (max-width: 767px){.flex-col-mobile{flex-direction:column!important}}@media (min-width: 768px){.flex-row-desktop{flex-direction:row!important}}@media (max-width: 767px){.full-width-mobile{width:100%!important}}@media (max-width: 767px){.p-mobile-2{padding:var(--space-2)!important}.px-mobile-2{padding-left:var(--space-2)!important;padding-right:var(--space-2)!important}.py-mobile-2{padding-top:var(--space-2)!important;padding-bottom:var(--space-2)!important}}@media (max-width: 767px){.m-mobile-2{margin:var(--space-2)!important}.mx-mobile-2{margin-left:var(--space-2)!important;margin-right:var(--space-2)!important}.my-mobile-2{margin-top:var(--space-2)!important;margin-bottom:var(--space-2)!important}}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:var(--space-2);padding-right:var(--space-2)}@media (min-width: 768px){.container{max-width:720px;padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1024px){.container{max-width:960px}}@media (min-width: 1440px){.container{max-width:1200px}}@media (min-width: 1920px){.container{max-width:1600px}}.container-fluid{width:100%;padding-left:var(--space-2);padding-right:var(--space-2)}@media (min-width: 768px){.container-fluid{padding-left:var(--space-3);padding-right:var(--space-3)}}:root{--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--border-thin: 1px;--border-medium: 2px;--border-thick: 4px;--card-border-width: var(--border-thin);--card-border-radius: var(--radius-sm);--card-padding: var(--spacing-medium);--card-gap: var(--spacing-medium);--card-background: #F9FAFB;--header-border-width: var(--border-thin);--header-padding: var(--spacing-medium);--passenger-font-family: var(--font-family);--passenger-font-size-heading: var(--font-size-station-name);--passenger-font-size-display: var(--font-size-train-number);--passenger-font-size-body: var(--font-size-secondary-text);--passenger-font-size-caption: var(--font-size-status-badge);--passenger-font-weight-display: var(--font-weight-bold);--passenger-font-weight-heading: var(--font-weight-bold);--passenger-font-weight-body: var(--font-weight-bold);--passenger-font-weight-caption: var(--font-weight-regular);--passenger-line-height-display: var(--line-height-tight);--passenger-line-height-heading: var(--line-height-tight);--passenger-line-height-body: var(--line-height-tight);--passenger-line-height-caption: var(--line-height-normal);--passenger-letter-spacing-display: .02em;--passenger-letter-spacing-heading: .01em;--passenger-letter-spacing-body: 0;--passenger-letter-spacing-caption: .05em;--passenger-spacing-xs: var(--spacing-micro);--passenger-spacing-sm: var(--spacing-small);--passenger-spacing-md: var(--spacing-medium);--passenger-spacing-lg: var(--spacing-large);--passenger-spacing-xl: var(--spacing-section);--passenger-spacing-2xl: calc(var(--spacing-section) * 1.5);--passenger-spacing-3xl: calc(var(--spacing-section) * 2);--passenger-spacing-row: var(--row-spacing);--passenger-spacing-row-compact: calc(var(--row-spacing) * .75);--passenger-spacing-column-gap: var(--spacing-medium);--passenger-spacing-column-gap-small: var(--spacing-small);--passenger-spacing-screen-padding: max(var(--margin-horizontal), var(--margin-top));--passenger-row-height: var(--row-height);--passenger-row-height-compact: calc(var(--row-height) * .85);--passenger-header-height: auto;--passenger-header-height-mobile: auto;--passenger-border-radius-sm: var(--radius-sm);--passenger-border-radius-lg: var(--radius-lg);--passenger-border-width-thin: var(--border-thin);--passenger-border-width-medium: var(--border-medium);--passenger-border-width-thick: var(--border-thick);--passenger-color-bg-primary: var(--color-background);--passenger-color-bg-header: var(--color-background);--passenger-color-bg-card: var(--color-background-secondary);--passenger-color-text-primary: var(--color-text-primary);--passenger-color-text-secondary: var(--color-text-secondary);--passenger-color-text-inverse: var(--color-text-inverse);--passenger-color-border-light: var(--color-border-primary);--passenger-color-status-boarding: var(--color-status-boarding);--passenger-color-status-delayed: var(--color-status-delayed);--passenger-color-status-delayed-bg: var(--color-status-delayed-bg);--passenger-transition-fade: .2s ease-in-out;--passenger-z-header: 10}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:none;border-radius:4px;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:600;line-height:1.5;cursor:pointer;transition:all .2s ease-in-out;min-height:44px;text-decoration:none;-webkit-user-select:none;user-select:none;white-space:nowrap;contain:layout style}.btn--primary{background-color:var(--color-accent);color:#fff}.btn--primary:hover:not(:disabled){background-color:#d14d1a;transform:translateY(-1px)}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--primary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn--secondary{background-color:var(--color-primary);color:#fff}.btn--secondary:hover:not(:disabled){background-color:#551818;transform:translateY(-1px)}.btn--secondary:active:not(:disabled){transform:translateY(0)}.btn--secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn--danger{background-color:#d32f2f;color:#fff}.btn--danger:hover:not(:disabled){background-color:#b71c1c;transform:translateY(-1px)}.btn--danger:active:not(:disabled){transform:translateY(0)}.btn--danger:focus-visible{outline:2px solid #D32F2F;outline-offset:2px}.btn--ghost{background-color:transparent;color:var(--color-text);border:2px solid #E0E0E0}.btn--ghost:hover:not(:disabled){background-color:#0000000d;border-color:var(--color-accent);color:var(--color-accent)}.btn--ghost:active:not(:disabled){background-color:#0000001a}.btn--ghost:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn--small{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);min-height:36px}.btn--medium{padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);min-height:44px}.btn--large{padding:var(--space-3) var(--space-4);font-size:var(--font-size-lg);min-height:52px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn--loading{position:relative;color:transparent;pointer-events:none}.btn--loading:after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .8s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.btn__text{display:inline-block}.btn--icon-only{padding:var(--space-2);min-width:44px}.btn--icon-only .btn__text{display:none}.btn--full-width{width:100%}@media (prefers-reduced-motion: reduce){.btn{transition:none}.btn:hover:not(:disabled){transform:none}.btn--loading:after{animation:none;border-top-color:transparent}}.form-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3);contain:layout style}.form-field__label{font-size:var(--font-size-base);font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:4px}.form-field__required{color:var(--color-accent);margin-left:4px}.form-field__input,.form-field__select,.form-field__textarea{padding:var(--space-2);border:2px solid #E0E0E0;border-radius:4px;font-size:var(--font-size-base);font-family:var(--font-family);transition:border-color .2s ease-in-out;min-height:44px;background-color:#fff;color:var(--color-text)}.form-field__textarea{min-height:120px;resize:vertical}.form-field__input:focus,.form-field__select:focus,.form-field__textarea:focus{outline:none;border-color:var(--color-accent)}.form-field__input--error,.form-field__select--error,.form-field__textarea--error{border-color:#d32f2f}.form-field__input--error:focus,.form-field__select--error:focus,.form-field__textarea--error:focus{border-color:#d32f2f}.form-field__input:disabled,.form-field__select:disabled,.form-field__textarea:disabled{background-color:#f5f5f5;color:#9e9e9e;cursor:not-allowed;opacity:.6}.form-field__helper{color:#666;font-size:var(--font-size-sm);margin:0}.form-field__error{color:#d32f2f;font-size:var(--font-size-sm);margin:0;display:flex;align-items:center;gap:4px}.form-field__select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23000000' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-2) center;padding-right:calc(var(--space-2) + 24px)}.form-field__checkbox-wrapper,.form-field__radio-wrapper{display:flex;align-items:center;gap:var(--space-2);min-height:44px;cursor:pointer}.form-field__checkbox,.form-field__radio{width:20px;height:20px;cursor:pointer;accent-color:var(--color-accent)}.form-field__checkbox:focus,.form-field__radio:focus{outline:2px solid var(--color-accent);outline-offset:2px}.form-field__checkbox:disabled,.form-field__radio:disabled{cursor:not-allowed;opacity:.5}.form-field__checkbox-label,.form-field__radio-label{font-size:var(--font-size-base);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none}.form-fieldset{border:1px solid #E0E0E0;border-radius:4px;padding:var(--space-3);margin-bottom:var(--space-3)}.form-fieldset__legend{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);padding:0 var(--space-1)}.form-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4);justify-content:flex-end}.form-row{display:flex;gap:var(--space-3);margin-bottom:var(--space-3)}.form-row .form-field{flex:1;margin-bottom:0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-bottom:var(--space-3)}.form-grid--3-col{grid-template-columns:repeat(3,1fr)}.form-grid--4-col{grid-template-columns:repeat(4,1fr)}@media (max-width: 767px){.form-row{flex-direction:column;gap:0}.form-row .form-field{margin-bottom:var(--space-3)}.form-grid,.form-grid--3-col,.form-grid--4-col{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}.form-field__input,.form-field__select,.form-field__textarea{min-height:48px;font-size:16px}.form-field__checkbox-wrapper,.form-field__radio-wrapper{min-height:48px}.form-field__checkbox,.form-field__radio{width:24px;height:24px}.form-fieldset{padding:var(--space-2)}.form-field__label{font-size:var(--font-size-sm)}.form-fieldset__legend{font-size:var(--font-size-base)}}@media (min-width: 768px) and (max-width: 1023px){.form-grid{grid-template-columns:1fr}.form-grid--3-col,.form-grid--4-col{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion: reduce){.form-field__input,.form-field__select,.form-field__textarea{transition:none}}.table-container{overflow-x:auto;border-radius:8px;border:1px solid #E0E0E0;background-color:var(--color-background, #FFFFFF);contain:layout style paint}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-base, 16px);font-family:var(--font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.table__header{background-color:var(--color-primary, #6B1F1F);color:#fff;position:sticky;top:0;z-index:10}.table__header-cell{padding:var(--space-2, 16px) var(--space-3, 24px);text-align:left;font-weight:600;-webkit-user-select:none;user-select:none;white-space:nowrap}.table__header-cell--sortable{cursor:pointer;transition:background-color .15s ease-in-out}.table__header-cell--sortable:hover{background-color:#0000001a}.table__header-cell--sortable:focus{outline:2px solid var(--color-accent, #E85D2A);outline-offset:-2px}.table__header-cell--right{text-align:right}.table__header-cell--center{text-align:center}.table__sort-icon{display:inline-block;margin-left:var(--space-1, 8px);font-size:14px;opacity:.8}.table__body{background-color:var(--color-background, #FFFFFF)}.table__row{border-bottom:1px solid #E0E0E0;transition:background-color .15s ease-in-out}.table__row:nth-child(2n){background-color:#f9f9f9}.table__row:hover{background-color:#e85d2a0d}.table__cell{padding:var(--space-2, 16px) var(--space-3, 24px);vertical-align:middle}.table__cell--left{text-align:left}.table__cell--right{text-align:right}.table__cell--center{text-align:center}.table__loading{text-align:center;padding:var(--space-5, 40px);color:#666}.table__empty{text-align:center;padding:var(--space-5, 40px);color:#666;font-style:italic}@media (max-width: 768px){.table__header-cell,.table__cell{padding:var(--space-2, 16px)}.table{font-size:var(--font-size-sm, 14px)}}.table-container:focus-within{outline:2px solid var(--color-accent, #E85D2A);outline-offset:2px}@media (prefers-reduced-motion: reduce){.table__header-cell--sortable,.table__row{transition:none}}.alert{display:flex;align-items:flex-start;gap:var(--space-2, 16px);padding:var(--space-3, 24px);border-radius:8px;border-left:4px solid;margin-bottom:var(--space-3, 24px);font-family:var(--font-family, "Inter", sans-serif);font-size:var(--font-size-base, 16px);line-height:var(--line-height-normal, 1.5);contain:layout style}.alert__icon{font-size:20px;font-weight:700;flex-shrink:0;line-height:1;margin-top:2px}.alert__content{flex:1;min-width:0}.alert__title{font-weight:600;margin-bottom:var(--space-1, 8px);font-size:var(--font-size-base, 16px)}.alert__message{font-size:var(--font-size-sm, 14px);margin:0}.alert__close{background:none;border:none;font-size:20px;cursor:pointer;padding:0;color:inherit;opacity:.7;transition:opacity .15s ease-in-out;flex-shrink:0;line-height:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.alert__close:hover{opacity:1}.alert__close:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:2px}.alert--success{background-color:#e8f5e9;border-color:#4caf50;color:#1b5e20}.alert--success .alert__icon{color:#4caf50}.alert--error{background-color:#ffebee;border-color:#d32f2f;color:#b71c1c}.alert--error .alert__icon{color:#d32f2f}.alert--warning{background-color:#fff3e0;border-color:var(--color-accent, #E85D2A);color:#e65100}.alert--warning .alert__icon{color:var(--color-accent, #E85D2A)}.alert--info{background-color:#e3f2fd;border-color:#2196f3;color:#0d47a1}.alert--info .alert__icon{color:#2196f3}@media (max-width: 768px){.alert{padding:var(--space-2, 16px);gap:var(--space-2, 16px)}.alert__icon{font-size:18px}.alert__close{font-size:18px;width:20px;height:20px}}@media (prefers-reduced-motion: reduce){.alert__close{transition:none}}.spinner{display:inline-block;border-radius:50%;border-style:solid;contain:layout style paint}.spinner--small{width:16px;height:16px;border-width:2px}.spinner--medium{width:32px;height:32px;border-width:3px}.spinner--large{width:48px;height:48px;border-width:4px}.spinner--primary{border-color:#6b1f1f33;border-top-color:var(--color-primary, #6B1F1F)}.spinner--accent{border-color:#e85d2a33;border-top-color:var(--color-accent, #E85D2A)}.spinner--white{border-color:#ffffff4d;border-top-color:#fff}@media (prefers-reduced-motion: reduce){.spinner{border-top-color:transparent;opacity:.6}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-3, 24px);overflow-y:auto;animation:modal-fade-in .2s ease-in-out}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:8px;border:1px solid var(--admin-border, #eaecf0);max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;position:relative;animation:modal-scale-in .25s ease-in-out;contain:layout style}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content--small{max-width:400px}.modal-content--medium{max-width:600px}.modal-content--large{max-width:800px}.modal-content--full{max-width:95vw;max-height:95vh}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3, 24px);border-bottom:1px solid #E0E0E0;flex-shrink:0}.modal-header h2,.modal-header h3{margin:0;font-size:var(--font-size-xl, 24px);font-weight:600;color:var(--color-text, #000000)}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;padding:var(--space-1, 8px);color:#666;line-height:1;border-radius:4px;transition:color .2s ease-in-out,background-color .2s ease-in-out;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.modal-close:hover{color:#333;background-color:#0000000d}.modal-close:focus-visible{outline:2px solid var(--color-accent, #E85D2A);outline-offset:2px}.modal-body{padding:var(--space-4, 32px) var(--space-3, 24px);overflow-y:auto;flex:1}.modal-body p{margin:0 0 var(--space-2, 16px) 0;line-height:1.5}.modal-body p:last-child{margin-bottom:0}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2, 16px);padding:var(--space-3, 24px);border-top:1px solid #E0E0E0;flex-shrink:0}.modal-footer button{min-width:100px}.modal-overlay--closing{animation:modal-fade-out .2s ease-in-out forwards}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.modal-content--closing{animation:modal-scale-out .25s ease-in-out forwards}@keyframes modal-scale-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(-20px)}}@media (max-width: 768px){.modal-overlay{padding:var(--space-2, 16px)}.modal-content{max-width:100%;max-height:95vh}.modal-content--small,.modal-content--medium,.modal-content--large{max-width:100%}.modal-header{padding:var(--space-2, 16px)}.modal-header h2,.modal-header h3{font-size:var(--font-size-lg, 20px)}.modal-body{padding:var(--space-3, 24px) var(--space-2, 16px)}.modal-footer{padding:var(--space-2, 16px);flex-direction:column}.modal-footer button{width:100%}}body.modal-open{overflow:hidden}@media (prefers-reduced-motion: reduce){.modal-overlay,.modal-content,.modal-overlay--closing,.modal-content--closing{animation:none}.modal-close{transition:none}}.time,.departure-time,.arrival-time,.current-time,.boarding-time,.train-time{font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}.passenger-display *,.screen-container *{box-shadow:none!important;text-shadow:none!important}.passenger-display,.screen-container{overflow:hidden}.screen-container{width:var(--viewport-width);height:var(--viewport-height);max-width:var(--viewport-width);max-height:var(--viewport-height);overflow:hidden;position:relative}.station-name,.destination,.origin,.train-destination{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;hyphens:none;line-height:var(--line-height-tight);text-align:left;white-space:normal}@media (max-width: 1440px){.station-name,.destination,.origin,.train-destination{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}:root[data-screen-size=laptop] .station-name,:root[data-screen-size=laptop] .destination,:root[data-screen-size=laptop] .origin,:root[data-screen-size=laptop] .train-destination{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.status-badge{color:var(--color-white);text-transform:uppercase;font-weight:var(--font-bold);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm)}.status-on-time{background-color:var(--status-on-time)}.status-boarding{background-color:var(--status-boarding)}.status-final-call{background-color:var(--status-final-call)}.status-delayed{background-color:var(--status-delayed)}.status-cancelled{background-color:var(--status-cancelled)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}.pulse-animation{animation:pulse 2s ease-in-out infinite;will-change:transform,opacity}.status-boarding.pulse-animation,.status-final-call.pulse-animation{animation:pulse 2s ease-in-out infinite}.time,.station-name,.status-text,.train-time,.current-time{font-weight:var(--font-bold)}.label,.body-text,.secondary-info{font-weight:var(--font-regular)}.flex-container{display:flex}.grid-container{display:grid}.status-indicator{display:flex;align-items:center;gap:var(--space-sm)}.status-indicator:before{content:"";display:inline-block;width:12px;height:12px;border-radius:50%;background-color:currentColor}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-micro) var(--spacing-small);font-family:var(--font-family);font-size:var(--font-size-status-badge);font-weight:500;line-height:1.2;text-align:center;border-radius:4px}.status-badge__bilingual,.status-badge__text{white-space:nowrap}.status-badge--on-time{background-color:#e8f5e9;color:var(--color-on-time)}.status-badge--delayed{background-color:#fff3e0;color:var(--color-delayed)}.status-badge--cancelled{background-color:#ffebee;color:var(--color-cancelled)}.status-badge--boarding{background-color:#e8f5e9;color:var(--color-on-time)}.status-badge--final-call{background-color:#fff3e0;color:var(--color-delayed)}.status-badge--scheduled,.status-badge--arrived{background-color:#f5f5f5;color:var(--color-idle-text)}.passenger-train-row{display:flex;align-items:center;justify-content:space-between;min-height:var(--passenger-row-height);padding:0 var(--spacing-medium);background-color:var(--passenger-color-bg-card);border-radius:var(--passenger-border-radius-lg);border:var(--passenger-border-width-thin) solid var(--passenger-color-border-light);font-family:var(--passenger-font-family)}.passenger-train-row__main{display:flex;align-items:center;gap:var(--passenger-spacing-column-gap);flex:1}.passenger-train-row__details{display:flex;align-items:center;gap:var(--passenger-spacing-column-gap);flex-shrink:0}.passenger-train-row__train-number{display:flex;flex-direction:column;min-width:200px}.passenger-train-row__train-number .passenger-train-row__value{font-size:var(--font-size-train-number);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:.01em;color:var(--passenger-color-text-primary)}.passenger-train-row__destination,.passenger-train-row__origin{display:flex;flex-direction:column;gap:var(--passenger-spacing-xs);flex:1}.passenger-train-row__destination .passenger-train-row__value,.passenger-train-row__origin .passenger-train-row__value{font-size:var(--font-size-destination);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:0;color:var(--passenger-color-text-primary)}.passenger-train-row__time{display:flex;flex-direction:column;gap:var(--passenger-spacing-xs);min-width:150px;text-align:right}.passenger-train-row__time .passenger-train-row__value{font-size:var(--font-size-primary-time);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--passenger-color-text-primary);font-variant-numeric:tabular-nums}.passenger-train-row__label{font-size:var(--font-size-secondary-text);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--passenger-color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.passenger-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.passenger-train-row__delay{display:inline-block;margin-top:var(--passenger-spacing-xs);padding:var(--passenger-spacing-xs) var(--passenger-spacing-sm);font-size:var(--font-size-secondary-text);font-weight:600;color:var(--passenger-color-status-delayed);background-color:var(--passenger-color-status-delayed-bg);border-radius:var(--passenger-border-radius-sm)}.passenger-train-row__delay-info{display:flex;align-items:center}.passenger-train-row__status{display:flex;align-items:center;margin-left:var(--passenger-spacing-lg)}.passenger-train-row--intermediate .passenger-train-row__details{gap:var(--passenger-spacing-column-gap-small)}.passenger-train-row--intermediate .passenger-train-row__time{min-width:120px}.passenger-train-row--intermediate .passenger-train-row__time--arrival .passenger-train-row__value{font-size:var(--font-size-primary-time);font-weight:var(--font-weight-bold)}.passenger-train-row--intermediate .passenger-train-row__time--departure .passenger-train-row__value{font-size:calc(var(--font-size-primary-time) * .9);font-weight:var(--font-weight-regular);color:var(--passenger-color-text-secondary)}.passenger-train-row--cancelled{opacity:.7}.passenger-train-row--cancelled .passenger-train-row__train-number .passenger-train-row__value,.passenger-train-row--cancelled .passenger-train-row__destination .passenger-train-row__value,.passenger-train-row--cancelled .passenger-train-row__origin .passenger-train-row__value{text-decoration:line-through;color:var(--passenger-color-text-secondary)}@media (prefers-contrast: high){.passenger-train-row{border-width:var(--passenger-border-width-medium)}.passenger-train-row__train-number .passenger-train-row__value{font-weight:800}}.passenger-screen-layout{display:flex;flex-direction:column;min-height:100vh;background-color:var(--passenger-color-bg-primary);font-family:var(--passenger-font-family);color:var(--passenger-color-text-primary)}.passenger-screen-header{display:flex;align-items:center;justify-content:space-between;height:var(--passenger-header-height);padding:0 var(--passenger-spacing-screen-padding);background-color:var(--passenger-color-bg-header);color:var(--passenger-color-text-inverse);z-index:var(--passenger-z-header)}.passenger-screen-header__brand{display:flex;align-items:center;gap:var(--passenger-spacing-md)}.passenger-screen-header__logo{display:flex;align-items:center}.passenger-screen-header__logo-text{font-size:var(--font-size-station-name);font-weight:700;letter-spacing:-.02em}.passenger-screen-header__info{display:flex;flex-direction:column;align-items:center;gap:var(--passenger-spacing-xs);flex:1}.passenger-screen-header__station{font-size:var(--font-size-station-name);font-weight:700;margin:0;text-align:center}.passenger-screen-header__type{font-size:var(--font-size-secondary-text);font-weight:400;opacity:.9;text-transform:uppercase;letter-spacing:.1em}.passenger-screen-header__time{display:flex;align-items:center}.passenger-screen-header__time-value{font-size:var(--font-size-board-title);font-weight:600;font-variant-numeric:tabular-nums}.passenger-screen-content{flex:1;padding:var(--passenger-spacing-screen-padding);overflow:hidden}.passenger-screen-content--centered{display:flex;align-items:center;justify-content:center}.passenger-train-list{display:flex;flex-direction:column;gap:var(--passenger-spacing-row);max-width:1600px;margin:0 auto}.passenger-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--passenger-spacing-xl);padding:var(--passenger-spacing-3xl);text-align:center}.passenger-empty-state__icon{font-size:120px;opacity:.3}.passenger-empty-state__message{display:flex;flex-direction:column;gap:var(--passenger-spacing-md)}.passenger-empty-state__text-en{font-size:var(--font-size-idle-message);font-weight:var(--font-weight-bold);color:var(--passenger-color-text-primary);margin:0}.passenger-empty-state__text-sw{font-size:var(--font-size-board-title);font-weight:var(--font-weight-regular);color:var(--passenger-color-text-secondary);margin:0}.passenger-boarding-display{display:flex;flex-direction:column;align-items:center;gap:var(--passenger-spacing-2xl);width:100%;max-width:1400px}.passenger-boarding-display__banner{display:flex;justify-content:center;width:100%}.passenger-boarding-display__train{width:100%}.passenger-screen-footer{display:flex;align-items:center;justify-content:center;padding:var(--passenger-spacing-lg) var(--passenger-spacing-screen-padding);background-color:var(--passenger-color-bg-card);border-top:var(--passenger-border-width-thin) solid var(--passenger-color-border-light)}.passenger-screen-footer__text{font-size:var(--font-size-footer);color:var(--passenger-color-text-secondary);margin:0;text-align:center}.passenger-screen-layout--boarding-gate .passenger-screen-content{background:var(--passenger-color-bg-primary)}.passenger-screen-layout--arrival-hall .passenger-screen-header{background-color:var(--passenger-color-status-boarding)}@keyframes fade-in-content{0%{opacity:0}to{opacity:1}}.passenger-train-list{animation:fade-in-content var(--passenger-transition-fade)}@media (prefers-contrast: high){.passenger-screen-header{border-bottom:var(--passenger-border-width-thick) solid var(--passenger-color-text-inverse)}.passenger-screen-footer{border-top-width:var(--passenger-border-width-thick)}}@media (prefers-reduced-motion: reduce){.passenger-train-list{animation:none}.passenger-boarding-display__banner .status-badge,.passenger-boarding-display__train .passenger-train-row{transition:none}}@media (min-width: 1920px){.passenger-train-list{max-width:1800px}.passenger-boarding-display{max-width:1600px}}@media (max-width: 1919px) and (min-width: 1366px){.passenger-train-list{max-width:1400px}}@media (max-width: 1365px){.passenger-screen-header{height:100px;padding:0 var(--passenger-spacing-lg)}.passenger-screen-content{padding:var(--passenger-spacing-lg)}.passenger-train-list{max-width:1200px;gap:var(--passenger-spacing-row-compact)}}@media (max-width: 768px){.passenger-screen-header{height:var(--passenger-header-height-mobile);padding:0 var(--passenger-spacing-md);flex-wrap:wrap}.passenger-screen-header__brand{width:100%;justify-content:center}.passenger-screen-header__info{width:50%}.passenger-screen-header__time{width:50%;justify-content:flex-end}.passenger-screen-content{padding:var(--passenger-spacing-md)}.passenger-train-list{gap:var(--passenger-spacing-sm)}.passenger-empty-state{padding:var(--passenger-spacing-xl)}}@media print{.passenger-screen-layout{min-height:auto}.passenger-screen-header{background-color:transparent;color:var(--passenger-color-text-primary);border-bottom:2px solid var(--passenger-color-text-primary)}.passenger-screen-content{padding:var(--space-md)}.passenger-train-list{gap:var(--space-10px)}}.flex{display:flex}.inline-flex{display:inline-flex}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.grid{display:grid}.inline-grid{display:inline-grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-6{grid-column:span 6 / span 6}.col-span-12{grid-column:span 12 / span 12}.col-span-full{grid-column:1 / -1}.row-span-1{grid-row:span 1 / span 1}.row-span-2{grid-row:span 2 / span 2}.row-span-3{grid-row:span 3 / span 3}.row-span-full{grid-row:1 / -1}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.m-0{margin:0}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-auto{margin:auto}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:var(--space-1);margin-right:var(--space-1)}.mx-2{margin-left:var(--space-2);margin-right:var(--space-2)}.mx-3{margin-left:var(--space-3);margin-right:var(--space-3)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.mx-5{margin-left:var(--space-5);margin-right:var(--space-5)}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:var(--space-1);margin-bottom:var(--space-1)}.my-2{margin-top:var(--space-2);margin-bottom:var(--space-2)}.my-3{margin-top:var(--space-3);margin-bottom:var(--space-3)}.my-4{margin-top:var(--space-4);margin-bottom:var(--space-4)}.my-5{margin-top:var(--space-5);margin-bottom:var(--space-5)}.my-auto{margin-top:auto;margin-bottom:auto}.mt-0{margin-top:0}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-auto{margin-top:auto}.mr-0{margin-right:0}.mr-1{margin-right:var(--space-1)}.mr-2{margin-right:var(--space-2)}.mr-3{margin-right:var(--space-3)}.mr-4{margin-right:var(--space-4)}.mr-5{margin-right:var(--space-5)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-auto{margin-bottom:auto}.ml-0{margin-left:0}.ml-1{margin-left:var(--space-1)}.ml-2{margin-left:var(--space-2)}.ml-3{margin-left:var(--space-3)}.ml-4{margin-left:var(--space-4)}.ml-5{margin-left:var(--space-5)}.ml-auto{margin-left:auto}.p-0{padding:0}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.pt-0{padding-top:0}.pt-1{padding-top:var(--space-1)}.pt-2{padding-top:var(--space-2)}.pt-3{padding-top:var(--space-3)}.pt-4{padding-top:var(--space-4)}.pt-5{padding-top:var(--space-5)}.pr-0{padding-right:0}.pr-1{padding-right:var(--space-1)}.pr-2{padding-right:var(--space-2)}.pr-3{padding-right:var(--space-3)}.pr-4{padding-right:var(--space-4)}.pr-5{padding-right:var(--space-5)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--space-1)}.pb-2{padding-bottom:var(--space-2)}.pb-3{padding-bottom:var(--space-3)}.pb-4{padding-bottom:var(--space-4)}.pb-5{padding-bottom:var(--space-5)}.pl-0{padding-left:0}.pl-1{padding-left:var(--space-1)}.pl-2{padding-left:var(--space-2)}.pl-3{padding-left:var(--space-3)}.pl-4{padding-left:var(--space-4)}.pl-5{padding-left:var(--space-5)}.gap-0{gap:0}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-x-0{column-gap:0}.gap-x-1{column-gap:var(--space-1)}.gap-x-2{column-gap:var(--space-2)}.gap-x-3{column-gap:var(--space-3)}.gap-x-4{column-gap:var(--space-4)}.gap-x-5{column-gap:var(--space-5)}.gap-y-0{row-gap:0}.gap-y-1{row-gap:var(--space-1)}.gap-y-2{row-gap:var(--space-2)}.gap-y-3{row-gap:var(--space-3)}.gap-y-4{row-gap:var(--space-4)}.gap-y-5{row-gap:var(--space-5)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only-focusable:focus,.sr-only-focusable:active{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}.skip-link{position:absolute;top:-40px;left:0;background-color:var(--color-accent, #E85D2A);color:#fff;padding:var(--space-2, 16px) var(--space-3, 24px);text-decoration:none;font-weight:600;border-radius:0 0 4px;z-index:9999;transition:top .2s ease-in-out}.skip-link:focus{top:0;outline:2px solid var(--color-primary, #6B1F1F);outline-offset:2px}.focus-visible:focus-visible{outline:2px solid var(--color-accent, #E85D2A);outline-offset:2px;border-radius:4px}.focus-visible:focus:not(:focus-visible){outline:none}.focus-ring:focus{outline:2px solid var(--color-accent, #E85D2A);outline-offset:2px}.focus-ring-primary:focus{outline:2px solid var(--color-primary, #6B1F1F);outline-offset:2px}.focus-ring-inset:focus{outline:2px solid var(--color-accent, #E85D2A);outline-offset:-2px}.not-focusable{pointer-events:none;-webkit-user-select:none;user-select:none}.keyboard-focus:focus:not(:focus-visible){outline:none}.keyboard-focus:focus-visible{outline:2px solid var(--color-accent, #E85D2A);outline-offset:2px}@media (prefers-contrast: high){.focus-ring:focus,.focus-visible:focus-visible,.keyboard-focus:focus-visible{outline:3px solid currentColor;outline-offset:3px}}@media (prefers-reduced-motion: reduce){.skip-link{transition:none}}.visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.visually-hidden:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto;white-space:normal}.no-outline:focus{outline:none}.a11y-hide{display:none;visibility:hidden}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.no-animation{animation:none!important;transition:none!important}.gpu-accelerated{will-change:transform;transform:translateZ(0)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.status-indicator{contain:layout style paint}.status-animation{will-change:transform,opacity}.animation-complete{will-change:auto}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:var(--font-size-base, 16px);line-height:var(--line-height-normal, 1.5);color:var(--color-text, #000000);background-color:var(--color-background, #FFFFFF);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--color-accent, #E85D2A);outline-offset:2px}:focus:not(:focus-visible){outline:none}
