:root{font-family:"DM Sans","Segoe UI",sans-serif;color:#17233b;background:#f6f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--navy:#101a30;--muted:#758198;--line:#e9edf3;--blue:#466be7;--green:#24966c;--yellow:#e4a927;--orange:#e87942;--shadow:0 12px 34px rgba(27,42,71,.055)}
.auth-banner{padding:9px 16px;background:#fff7e6;color:#805d18;text-align:center;border-bottom:1px solid #f1e4c5;font-size:10px}.auth-banner[hidden]{display:none}
.auth-card{max-width:480px;margin:8vh auto;padding:32px;background:#fff;border:1px solid #e9edf3;border-radius:12px;box-shadow:0 12px 34px rgba(27,42,71,.055)}.auth-card p,.auth-card li{font-size:14px;line-height:1.55}.auth-card h1{margin:18px 0 10px}.auth-card h2{margin-top:24px}.auth-card a{color:#365cdd}.auth-card .auth-brand{font-weight:800;text-decoration:none;color:#17233b}.auth-form{display:grid;gap:14px;margin:20px 0}.auth-form label{display:grid;gap:6px;font-size:13px;font-weight:600}.auth-form input,.auth-form select{width:100%;padding:10px;border:1px solid #cbd4e2;border-radius:6px}.auth-form button,.auth-secondary{display:block;padding:11px;border:1px solid #466be7;border-radius:6px;background:#466be7;color:#fff;text-align:center;font-weight:600}.auth-card .auth-secondary{background:#fff;color:#365cdd;text-decoration:none}.auth-error{color:#ad2828}.profile-row form{margin-left:auto}.profile-row form[hidden]{display:none}@media(max-width:520px){.auth-card{margin:20px 12px;padding:24px}}
*{box-sizing:border-box}
body{margin:0;min-width:320px;background:#f6f7fb}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--navy);color:#fff;padding:27px 16px 14px;display:flex;flex-direction:column;z-index:5}
.brand{height:52px;display:flex;align-items:center;gap:12px;padding:0 9px;color:white;text-decoration:none}
.brand-mark{width:37px;height:37px;border-radius:12px;background:#f1f5ff;color:#26375e;display:grid;place-items:center;font:800 21px Manrope,sans-serif;letter-spacing:-2px}
.brand-mark span{color:#607ee9}
.brand-copy{display:grid;gap:2px}.brand-copy strong{font:700 17px Manrope,sans-serif;letter-spacing:-.4px}.brand-copy small{color:#8794ad;font-size:8px;letter-spacing:1.55px;font-weight:700}
.workspace-label{margin:36px 10px 12px;color:#78849c;font-size:9px;letter-spacing:1.4px;font-weight:700}.admin-label{margin-top:30px}
.main-nav{display:grid;gap:4px}
.nav-link{height:43px;border:0;border-radius:8px;background:transparent;color:#aab4c7;text-align:left;display:flex;align-items:center;gap:12px;padding:0 11px;font-size:12px;font-weight:500;transition:.18s}
.nav-link:hover{background:#1b2944;color:#fff}.nav-link.active{background:#243553;color:#fff;font-weight:600;box-shadow:inset 2px 0 #829aff}
.nav-icon{width:17px;text-align:center;color:#8f9db8;font-size:16px}.nav-link.active .nav-icon{color:#a7b6ff}
.nav-count{margin-left:auto;background:#334566;color:#c9d4f1;border-radius:20px;min-width:21px;text-align:center;padding:3px 6px;font-size:10px}
.sidebar-bottom{margin-top:auto}.help-card{padding:15px 13px;background:#1a2945;border:1px solid #293957;border-radius:10px}.help-icon{color:#acbbff;font-size:18px}.help-card strong{display:block;font-size:11px;margin-top:8px}.help-card p{color:#9ba8be;font-size:10px;line-height:1.55;margin:6px 0 12px}.help-card button{background:none;border:0;color:#c4ceff;font-size:10px;font-weight:600;padding:0}.help-card button span{margin-left:7px}
.profile-row{display:flex;align-items:center;gap:9px;padding:17px 4px 3px;margin-top:13px;border-top:1px solid #28354c}.avatar,.top-avatar{display:grid;place-items:center;flex:none;width:31px;height:31px;border-radius:50%;background:#dfdefa;color:#625b9d;font-size:10px;font-weight:700}.profile-copy{display:grid;gap:3px;min-width:0}.profile-copy strong{font-size:10px}.profile-copy small{font-size:9px;color:#8794ad}.profile-more{margin-left:auto;color:#a8b3c5;background:none;border:0;font-size:18px;text-decoration:none;display:grid;place-items:center}.profile-more[hidden]{display:none}
.main-area{margin-left:248px;min-height:100vh}
.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;position:sticky;top:0;z-index:4}
.breadcrumb{display:flex;align-items:center;gap:10px;font-size:11px}.breadcrumb span{color:#929caf}.breadcrumb b{color:#c3cad5;font-weight:400}.breadcrumb strong{color:#28364c;font-weight:600}
.top-actions{display:flex;align-items:center;gap:17px}.terminal-select{display:flex;align-items:center;gap:6px;color:#8b96aa}.terminal-select select{background:transparent;border:0;color:#4e5a6e;font-size:10px;outline:none;cursor:pointer}.pin-icon{font-size:17px}.icon-button{width:31px;height:31px;border:0;background:transparent;color:#68758a;font-size:17px;position:relative}.notification-button i{position:absolute;width:5px;height:5px;border-radius:50%;background:#eb765a;right:5px;top:5px;border:1px solid white}.top-avatar{border:0;width:30px;height:30px;text-decoration:none}
.mobile-menu{display:none;border:0;background:none;color:#35415a;font-size:19px}
.page-content{max-width:1450px;margin:0 auto;padding:32px 42px 55px}
.eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:1.25px;color:#8b96a9;font-weight:700}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif;letter-spacing:-.55px}
h1{font-size:25px;margin:5px 0 6px;color:#17233b}h2{font-size:15px;margin-bottom:3px}h3{font-size:12px;margin-bottom:0}
.subheading{font-size:11px;color:#8490a2;margin:0}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.page-heading .heading-actions{display:flex;gap:8px}
.btn{border:1px solid #e5e9f0;background:#fff;color:#40506a;padding:9px 13px;border-radius:7px;font-size:10px;font-weight:600;display:inline-flex;align-items:center;gap:7px;transition:.16s}.btn:hover{border-color:#b9c5e1;background:#fafbff}.btn-primary{background:#466be7;color:#fff;border-color:#466be7;box-shadow:0 4px 10px #466be721}.btn-primary:hover{background:#365cdd;border-color:#365cdd;color:#fff}.btn-small{padding:7px 10px;font-size:9px}.btn-danger{color:#c45555}.btn-quiet{border-color:transparent;background:transparent}.btn-icon{font-size:14px;line-height:10px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.stat-card,.panel,.map-card{background:#fff;border:1px solid #edf0f5;border-radius:10px;box-shadow:var(--shadow)}
.stat-card{padding:16px 17px;min-height:108px;position:relative}.stat-top{display:flex;align-items:center;justify-content:space-between}.stat-label{color:#8490a3;font-size:10px}.stat-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;font-size:13px}.stat-value{font:700 24px Manrope,sans-serif;letter-spacing:-.8px;margin:10px 0 4px;color:#202d44}.stat-note{font-size:9px;color:#8d98a9}.trend{color:#2c9b73;font-weight:600}
.overview-grid{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(275px,.88fr);gap:15px;margin-bottom:16px}
.panel{padding:17px 18px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.panel-title{display:grid;gap:4px}.panel-title p{margin:0;color:#8994a6;font-size:9px}.text-link{color:#5270dc;font-size:9px;font-weight:600;border:0;background:none;padding:4px}.text-link:hover{text-decoration:underline}
.chart-panel{min-height:290px}.chart-legend{display:flex;align-items:center;gap:14px;color:#828da0;font-size:9px}.legend-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:5px}.chart-wrap{height:194px;position:relative;padding:15px 4px 21px}.chart-grid{position:absolute;inset:15px 0 23px;display:flex;flex-direction:column;justify-content:space-between}.chart-grid span{height:1px;background:#f0f2f6;width:100%}.chart-svg{position:relative;width:100%;height:100%;overflow:visible}.chart-labels{display:flex;justify-content:space-between;color:#9aa3b1;font-size:8px;margin-top:3px}
.map-card{overflow:hidden;position:relative;min-height:290px;background:#edf3f7}.map-head{position:absolute;z-index:1;top:16px;left:17px;right:17px;display:flex;justify-content:space-between;align-items:center}.map-title{font:700 12px Manrope,sans-serif}.map-tag{background:#fff;color:#58657a;padding:5px 8px;border-radius:20px;font-size:8px}.map-visual{height:100%;min-height:290px;position:absolute;inset:0;background:linear-gradient(180deg,#edf4f6 0%,#e8f0f3 100%)}.map-visual svg{width:100%;height:100%;position:absolute;inset:0}.map-caption{position:absolute;bottom:15px;left:15px;background:#fff;border-radius:8px;padding:9px 11px;box-shadow:0 4px 14px #25395712;display:grid;gap:3px}.map-caption strong{font-size:9px}.map-caption span{font-size:8px;color:#8a95a5}
.table-panel{padding:0;overflow:hidden}.table-panel .panel-head{padding:16px 18px 12px;margin:0}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{height:34px;background:#fafbfc;color:#8994a5;font-size:8px;font-weight:600;text-align:left;padding:0 12px;border-top:1px solid #f0f2f6;border-bottom:1px solid #f0f2f6}td{padding:11px 12px;border-bottom:1px solid #f0f2f6;font-size:9px;color:#536077}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdff}td:first-child,th:first-child{padding-left:18px}.route-cell{display:flex;align-items:center;gap:8px}.mode-dot{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;font-size:12px}.route-main{display:grid;gap:3px}.route-main strong{font-size:9px;color:#344159}.route-main span{font-size:8px;color:#919bad}.time-cell strong{display:block;font-size:9px;color:#405069}.time-cell span{display:block;margin-top:3px;font-size:8px;color:#8b96a8}.status-pill,.type-pill,.tag{display:inline-flex;align-items:center;gap:5px;border-radius:30px;padding:5px 8px;font-size:8px;font-weight:600}.status-pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status-on-time,.status-arrived{background:#e8f6f0;color:#23835f}.status-boarding,.status-departing,.status-arriving{background:#eaf0ff;color:#4767d8}.status-delayed{background:#fff4df;color:#bc8115}.status-canceled,.status-revoked,.status-expired{background:#fff0ee;color:#ca5c50}.status-scanned{background:#f0ecff;color:#725bc5}.status-active{background:#e9f6f0;color:#25865f}
.bottom-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:15px}.activity-list{display:grid}.activity-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #f0f2f6}.activity-item:last-child{border-bottom:0}.activity-mark{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:11px}.activity-copy{display:grid;gap:3px;min-width:0}.activity-copy strong{font-size:9px;font-weight:600;color:#45536a}.activity-copy span{font-size:8px;color:#929cad}.activity-time{margin-left:auto;white-space:nowrap;font-size:8px;color:#9ba4b2}
.mode-bus{background:#eaf0ff;color:#466be7}.mode-train{background:#e9f7f0;color:#248f68}.mode-airplane{background:#fff5da;color:#c68d18}.mode-cruise{background:#fff0e7;color:#db7845}.mode-label{font-size:8px;color:#8290a3}
.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:13px}.search-box{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e9edf3;border-radius:7px;padding:0 10px;height:33px;min-width:205px}.search-box span{color:#9aa4b4}.search-box input{border:0;outline:0;font-size:9px;width:100%;color:#344159}.filter-select{height:33px;border:1px solid #e9edf3;border-radius:7px;background:#fff;color:#5e6a80;font-size:9px;padding:0 10px}.toolbar-spacer{flex:1}
.ticket-id{font:700 9px Manrope,sans-serif;color:#45567a}.passenger-name{font-weight:600;color:#39465c}.age-tag{font-size:8px;color:#8e98a8}
.empty-state{text-align:center;padding:48px 20px;color:#8792a4}.empty-state b{font:700 13px Manrope,sans-serif;color:#45536a;display:block;margin:10px 0 5px}.empty-state p{font-size:10px;margin-bottom:14px}.empty-mark{margin:auto;width:42px;height:42px;border-radius:13px;background:#eff3ff;color:#6380e3;display:grid;place-items:center;font-size:19px}
.live-summary{display:flex;align-items:center;gap:8px}.live-indicator{width:7px;height:7px;background:#26a877;border-radius:50%;box-shadow:0 0 0 4px #e7f6f0}.live-board{display:grid;gap:12px}.live-card{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:14px;padding:15px 16px;background:#fff;border:1px solid #edf0f5;border-radius:10px;box-shadow:var(--shadow)}.live-time{font:700 17px Manrope,sans-serif;color:#26344c}.live-time small{display:block;font:400 8px "DM Sans",sans-serif;color:#8a95a6;margin-top:4px}.live-info{display:grid;gap:6px}.live-route{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;color:#35435b}.route-arrow{color:#9aa4b3}.live-meta{display:flex;align-items:center;gap:11px;color:#8691a3;font-size:8px}.live-meta span{display:flex;align-items:center;gap:4px}.live-right{display:grid;justify-items:end;gap:8px}.gate-label{color:#8994a6;font-size:8px}.gate-label strong{color:#4b5870;font-size:10px}
.schedule-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(255px,.8fr);gap:15px;align-items:start}.schedule-list{display:grid;gap:9px}.schedule-card{display:flex;align-items:center;gap:13px;padding:12px 14px;background:#fff;border:1px solid #edf0f5;border-radius:9px}.schedule-date{width:39px;height:42px;display:grid;align-content:center;justify-items:center;background:#f4f6fc;border-radius:8px;color:#6d7fdb}.schedule-date b{font:700 15px Manrope,sans-serif}.schedule-date small{font-size:7px;text-transform:uppercase;letter-spacing:.5px}.schedule-main{flex:1;display:grid;gap:4px}.schedule-main strong{font-size:10px;color:#3e4c63}.schedule-main span{font-size:8px;color:#919bad}.schedule-details{display:flex;gap:12px;align-items:center;font-size:8px;color:#8792a4}.schedule-details b{color:#58667e;font-weight:600}.schedule-actions{display:flex;gap:5px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label,.field-label{font-size:9px;font-weight:600;color:#556279}.field input,.field select,.field textarea{width:100%;border:1px solid #e3e8ef;border-radius:7px;padding:9px 10px;background:#fff;color:#3e4d65;font-size:10px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8ba1f4;box-shadow:0 0 0 3px #edf0ff}.field textarea{resize:vertical;min-height:65px}.field-hint{font-size:8px;color:#939dad}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-row{display:flex;flex-wrap:wrap;gap:12px}.check-label{display:flex;align-items:center;gap:6px;font-size:9px;color:#5f6b80}.check-label input{accent-color:#5574e9}
.discount-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.discount-card{background:#fff;border:1px solid #edf0f5;border-radius:10px;padding:15px;box-shadow:var(--shadow)}.discount-card-top{display:flex;align-items:center;justify-content:space-between}.discount-icon{width:29px;height:29px;border-radius:8px;background:#edf1ff;color:#627de5;display:grid;place-items:center}.discount-value{font:700 20px Manrope,sans-serif;margin:12px 0 3px}.discount-name{font-size:10px;font-weight:600;color:#45536b}.discount-expiry{font-size:8px;color:#929cad;margin-top:7px}.discount-active{color:#258a64;font-size:8px;font-weight:600}
.settings-layout{display:grid;grid-template-columns:175px minmax(0,1fr);gap:15px}.settings-menu{display:grid;align-content:start;gap:3px}.settings-tab{border:0;background:transparent;text-align:left;padding:10px;border-radius:7px;font-size:9px;color:#68758a}.settings-tab.active{background:#eaf0ff;color:#4767d8;font-weight:600}.settings-panel{background:#fff;border:1px solid #edf0f5;border-radius:10px;padding:19px;box-shadow:var(--shadow)}.settings-panel h2{margin-bottom:5px}.settings-panel>p{font-size:9px;color:#8c97a8;margin-bottom:17px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f0f2f6;gap:15px}.setting-row:last-child{border:0}.setting-copy strong{font-size:9px;color:#46536a;display:block}.setting-copy span{font-size:8px;color:#919bad;display:block;margin-top:4px}.toggle{appearance:none;position:relative;width:31px;height:18px;border-radius:15px;background:#d9dee7;transition:.18s;flex:none;cursor:pointer}.toggle:checked{background:#5574e9}.toggle:before{content:"";position:absolute;width:12px;height:12px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.18s;box-shadow:0 1px 3px #0002}.toggle:checked:before{transform:translateX(13px)}.permission-table td,.permission-table th{padding:10px 9px}.permission-table input{accent-color:#5574e9}
.callout{border:1px solid #e4eafb;background:#f6f8ff;border-radius:8px;padding:12px 13px;font-size:9px;color:#64718a;line-height:1.6;margin:13px 0}.callout strong{color:#435baf}.callout.warning{background:#fff9eb;border-color:#f5e9c6}.callout.warning strong{color:#a67714}
.modal-backdrop{position:fixed;inset:0;background:#111b30a8;display:grid;place-items:center;padding:20px;z-index:20;overflow:auto;backdrop-filter:blur(3px)}.modal{width:min(640px,100%);max-height:min(90vh,850px);overflow:auto;background:#fff;border-radius:13px;box-shadow:0 24px 80px #101a3040;animation:modal-in .18s ease-out}.modal.wide{width:min(800px,100%)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:19px 21px 14px;border-bottom:1px solid #edf0f5;position:sticky;top:0;background:#fff;z-index:2}.modal-head h2{font-size:15px;margin:0 0 4px}.modal-head p{font-size:9px;color:#8b96a8;margin:0}.modal-close{width:27px;height:27px;border:0;border-radius:6px;background:#f4f6f9;color:#67748a;font-size:17px}.modal-body{padding:18px 21px}.modal-foot{display:flex;justify-content:space-between;align-items:center;padding:13px 21px;border-top:1px solid #edf0f5;background:#fcfcfd}.modal-foot .foot-note{font-size:8px;color:#98a1b0}.modal-actions{display:flex;gap:7px}
@keyframes modal-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.ticket-card{--ticket-color:#466be7;max-width:650px;margin:auto;background:#fff;border:1px solid #e8ebf1;border-radius:12px;overflow:hidden;box-shadow:0 12px 28px #202e4812}.ticket-card.mode-bus{--ticket-color:#466be7}.ticket-card.mode-train{--ticket-color:#24966c}.ticket-card.mode-airplane{--ticket-color:#e4a927}.ticket-card.mode-cruise{--ticket-color:#e87942}.ticket-top{padding:16px 19px;background:var(--ticket-color);color:white;display:flex;align-items:center;justify-content:space-between}.ticket-brand{display:flex;gap:9px;align-items:center;font:700 12px Manrope,sans-serif}.ticket-brand-mark{width:25px;height:25px;border:1px solid #ffffff66;border-radius:7px;display:grid;place-items:center;font-size:10px}.ticket-type{font-size:8px;text-transform:uppercase;letter-spacing:1px;opacity:.85}.ticket-body{padding:18px 19px}.ticket-route{display:grid;grid-template-columns:1fr 70px 1fr;align-items:center;gap:8px;padding-bottom:15px;border-bottom:1px dashed #e2e7ee}.ticket-place small{display:block;color:#8b95a6;font-size:8px;margin-bottom:4px}.ticket-place strong{font:700 20px Manrope,sans-serif;color:#26344b}.ticket-place span{display:block;font-size:8px;color:#7f8a9b;margin-top:3px}.ticket-route-line{text-align:center;color:var(--ticket-color)}.ticket-route-line span{display:block;font-size:14px}.ticket-route-line small{color:#98a1ae;font-size:7px}.ticket-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:13px 10px;padding:15px 0}.ticket-field small{display:block;font-size:7px;text-transform:uppercase;letter-spacing:.5px;color:#939dad;margin-bottom:4px}.ticket-field strong{display:block;font-size:9px;color:#3d4b62}.ticket-flags{display:flex;flex-wrap:wrap;gap:6px;padding-top:12px;border-top:1px solid #edf0f5}.ticket-flag{border-radius:5px;padding:5px 7px;background:#f3f5f8;color:#5d687c;font-size:8px}.ticket-flag.vip{background:#fff5da;color:#9f7418}.ticket-flag.minor{background:#f3ecff;color:#7256b4;font-weight:800}.ticket-flag.pet{background:#fff0e7;color:#bd6841}.ticket-bottom{display:grid;grid-template-columns:1fr 98px;align-items:center;gap:15px;padding:12px 19px 15px;background:#fafbfc;border-top:1px dashed #e0e5ec}.ticket-legal{font-size:8px;color:#8490a2;line-height:1.5}.qr-wrap{display:grid;justify-items:center;gap:4px}.qr-wrap canvas{width:84px;height:84px;image-rendering:pixelated}.qr-wrap small{font-size:7px;color:#8b95a5}.child-theme{padding:5px 8px;border-radius:5px;font-size:8px;font-weight:700}
.ticket-card.child-ticket{border-color:var(--kid-border);background:var(--kid-paper)}
.child-ticket .kid-banner{display:flex;align-items:center;gap:12px;padding:12px 19px;color:var(--kid-ink);background:var(--kid-pattern);border-bottom:2px solid var(--kid-border)}
.kid-banner-icon{font-size:30px;line-height:1}.kid-banner-title{font:700 14px Manrope,sans-serif;flex:1}.kid-banner-title small{display:block;font:400 9px "DM Sans",sans-serif;margin-top:3px}.kid-banner-art{font-size:19px;white-space:nowrap;letter-spacing:2px}
.child-ticket .ticket-body{background:linear-gradient(155deg,#fff 42%,var(--kid-paper))}
.theme-dino{--kid-paper:#f2fae9;--kid-border:#afd38c;--kid-ink:#315f37;--kid-pattern:repeating-linear-gradient(130deg,#dff1ca 0 14px,#eaf7dd 14px 28px)}
.theme-space{--kid-paper:#f1eeff;--kid-border:#b3a5e5;--kid-ink:#46367d;--kid-pattern:radial-gradient(circle,#fff 2px,transparent 3px) 0 0/24px 24px,linear-gradient(115deg,#c8c0f1,#e8d9ff)}
.theme-ocean{--kid-paper:#eafaff;--kid-border:#9cd8e9;--kid-ink:#226276;--kid-pattern:repeating-radial-gradient(ellipse at 50% 120%,#c9eef8 0 9px,#e4faff 10px 19px)}
.theme-rainbow{--kid-paper:#fffaf0;--kid-border:#f3bece;--kid-ink:#87415f;--kid-pattern:linear-gradient(110deg,#ffdfdf,#fff0c8,#e3f7d8,#d9efff,#eadcff)}
.theme-princess{--kid-paper:#fff4f9;--kid-border:#eeb7d1;--kid-ink:#91385f;--kid-pattern:repeating-linear-gradient(45deg,#ffe1ee 0 12px,#fff0f7 12px 24px)}
.theme-unicorn{--kid-paper:#faf3ff;--kid-border:#d3b5ea;--kid-ink:#70418f;--kid-pattern:linear-gradient(115deg,#f3d9ff,#e3f4ff,#ffdef1)}
.theme-fairy{--kid-paper:#fbf4ff;--kid-border:#d5b6dd;--kid-ink:#784477;--kid-pattern:radial-gradient(circle,#fff 3px,transparent 4px) 0 0/27px 27px,linear-gradient(115deg,#f6dcf8,#e0f6dc)}
.theme-butterfly{--kid-paper:#f1fbff;--kid-border:#a9d8e8;--kid-ink:#346b83;--kid-pattern:repeating-linear-gradient(125deg,#d9f3fb 0 18px,#eaf7ee 18px 36px)}
.theme-ballerina{--kid-paper:#fff5f5;--kid-border:#efbdc5;--kid-ink:#964b60;--kid-pattern:repeating-linear-gradient(90deg,#ffe2e6 0 16px,#fff0f2 16px 32px)}
.ticket-flag.child-theme{background:var(--kid-bg);color:var(--kid-color);font-weight:700}
.ticket-preview h3{margin:0;color:#46536a;font-size:11px}.ticket-preview .ticket-card{width:100%;margin-top:4px}
.toast-region{position:fixed;right:20px;bottom:18px;display:grid;gap:8px;z-index:50}.toast{max-width:min(360px,calc(100vw - 40px));background:#18243b;color:white;border-radius:8px;padding:12px 14px;box-shadow:0 8px 25px #101a3040;font-size:10px;animation:modal-in .16s ease-out}.toast.error{background:#a84141}
.print-only{display:none}
@media(max-width:1100px){.sidebar{width:220px}.main-area{margin-left:220px}.topbar{padding:0 25px}.page-content{padding:27px 25px 45px}.stats-grid{gap:9px}.stat-card{padding:14px}.overview-grid{grid-template-columns:1.2fr .8fr}}
@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:transform .2s;box-shadow:5px 0 25px #101a3022}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.mobile-menu{display:block}.topbar{padding:0 18px}.page-content{padding:24px 18px 40px}.stats-grid{grid-template-columns:repeat(2,1fr)}.overview-grid,.bottom-grid,.schedule-grid{grid-template-columns:1fr}.chart-panel{min-height:260px}.map-card,.map-visual{min-height:250px}.discount-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.topbar{height:60px;padding:0 13px}.breadcrumb{gap:6px;font-size:9px}.top-actions{gap:7px}.terminal-select{max-width:120px}.terminal-select select{font-size:8px;max-width:95px}.icon-button{width:26px}.top-avatar{width:27px;height:27px}.page-content{padding:21px 12px 35px}.page-heading{align-items:flex-start;gap:12px;flex-direction:column}.page-heading .heading-actions{width:100%}.page-heading .heading-actions .btn{flex:1;justify-content:center}.stats-grid{gap:8px}.stat-card{min-height:96px;padding:12px}.stat-value{font-size:21px}.overview-grid,.bottom-grid{gap:10px}.panel{padding:14px}.table-panel{padding:0}.table-panel .panel-head{padding:14px}.toolbar{flex-wrap:wrap}.search-box{flex:1;min-width:145px}.toolbar-spacer{display:none}.live-card{grid-template-columns:55px 1fr;gap:9px;padding:12px}.live-right{grid-column:2;display:flex;justify-content:space-between;justify-items:initial}.live-meta{gap:7px;flex-wrap:wrap}.discount-cards{grid-template-columns:1fr 1fr;gap:8px}.settings-layout{grid-template-columns:1fr}.settings-menu{display:flex;overflow:auto}.settings-tab{white-space:nowrap}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.ticket-fields{grid-template-columns:repeat(2,1fr)}.ticket-route{grid-template-columns:1fr 45px 1fr}.ticket-place strong{font-size:17px}.ticket-bottom{grid-template-columns:1fr 80px;padding:10px}.qr-wrap canvas{width:72px;height:72px}.modal-backdrop{padding:8px}.modal-head,.modal-body{padding-left:15px;padding-right:15px}.modal-foot{padding:12px 15px}.profile-more{display:none}}
@media print{body{background:#fff}.app-shell,.toast-region,.modal-head,.modal-foot{display:none!important}.modal-backdrop{position:static;display:block;padding:0;background:white;overflow:visible}.modal{width:100%;max-height:none;overflow:visible;border:0;box-shadow:none}.modal-body{padding:10px}.ticket-card{max-width:100%;box-shadow:none;break-inside:avoid}.ticket-top,.kid-banner,.child-ticket .ticket-body,.ticket-flag,.status-pill{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.public-board-page .sidebar{display:none}.public-board-page .main-area{margin-left:0}.public-board-page .page-content{max-width:1150px}.public-board-page .top-avatar,.public-board-page .notification-button{display:none}
.seat-map{display:grid;gap:4px;justify-items:center;max-height:260px;overflow:auto;padding:10px;border:1px solid #e3e8ef;border-radius:10px;background:#f7f9fc}.seat-front{font-size:9px;color:#939dad;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.seat-row{display:flex;gap:4px;align-items:center}.seat-num{width:18px;font-size:8px;color:#939dad;text-align:right;margin-right:4px}.seat-aisle{width:16px}.seat{width:24px;height:24px;padding:0;border:1px solid #c9d3f5;border-radius:6px 6px 3px 3px;background:#fff;color:#556279;font-size:9px;cursor:pointer;display:inline-block}.seat:hover:not(:disabled){background:#edf0ff}.seat.selected{background:#5574e9;border-color:#5574e9;color:#fff}.seat.taken{background:#e3e8ef;border-color:#e3e8ef;color:#aab3c2;cursor:not-allowed}.seat-legend{display:flex;gap:14px;font-size:9px;color:#5f6b80;margin-top:6px}.seat-legend span{display:flex;align-items:center;gap:5px}.seat-legend .seat{width:14px;height:14px;cursor:default}
.seat.premium{background:#fff6dc;border-color:#e4a927}.seat-note{font-size:8px;color:#939dad;text-transform:uppercase;letter-spacing:.08em;margin:4px 0}.seat-note.exit{color:#c0392b;font-weight:600}.vehicle-airplane{border-radius:60px 60px 18px 18px;padding:18px 14px}.vehicle-bus,.vehicle-train{border-radius:18px 18px 8px 8px}.cabin-map{justify-items:stretch;max-height:320px}.deck{display:grid;gap:4px;border-bottom:1px dashed #d5dbe6;padding-bottom:8px}.deck-label{font-size:9px;font-weight:600;color:#556279}.deck-plan{display:grid;gap:3px}.deck-side{display:flex;gap:3px;flex-wrap:wrap}.deck-corridor{font-size:8px;color:#939dad;text-align:center;background:#eef1f6;border-radius:4px;padding:2px}.seat.cabin{width:34px;height:26px;font-size:8px;border-radius:4px}.cabin-interior{background:#f1f3f7}.cabin-oceanview{background:#e4f6ff}.cabin-balcony{background:#e6f7ec}.cabin-suite{background:#fff0e0;border-color:#e87942}.seat.cabin.selected{background:#5574e9;color:#fff}.seat.cabin.taken{background:#e3e8ef;color:#aab3c2}
.field[hidden]{display:none}

html{-webkit-text-size-adjust:100%}img,canvas,svg{max-width:100%}.table-panel,.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:850px){.modal.wide{width:100%}.seat-map{max-width:100%;overflow:auto}}
@media(max-width:560px){.field input,.field select,.field textarea{font-size:16px;padding:11px 10px}.field label,.field-label{font-size:11px}.field-hint,.modal-head p,.modal-foot .foot-note{font-size:10px}.btn{min-height:40px}.modal-close{width:36px;height:36px}.modal{max-height:calc(100dvh - 16px);border-radius:12px}.modal-foot{flex-direction:column;align-items:stretch;gap:10px}.modal-actions{justify-content:stretch}.modal-actions .btn{flex:1;justify-content:center}.inline-fields{grid-template-columns:1fr auto}.check-row{flex-direction:column;gap:10px}.check-label{font-size:12px;min-height:28px}.check-label input{width:18px;height:18px}.seat{width:30px;height:30px;font-size:11px}.seat-num{font-size:10px;width:20px}.seat-aisle{width:14px}.seat-row{gap:3px}.seat-note,.seat-legend,.deck-label,.deck-corridor{font-size:10px}.seat-legend{flex-wrap:wrap;justify-content:center}.seat-legend .seat{width:16px;height:16px}.seat.cabin{width:40px;height:32px;font-size:10px}.seat-map{max-height:55vh;padding:8px 4px}.vehicle-airplane{border-radius:40px 40px 14px 14px;padding:14px 6px}.toast-region{left:10px;right:10px}}
.credit-pill{display:inline-flex;align-items:center;padding:0 14px;min-height:36px;border-radius:999px;background:#e6f7ec;color:#1f7a4d;font-size:11px;font-weight:700}.credit-form{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:end;padding:14px 18px}.credit-buttons{display:flex;gap:8px}@media(max-width:560px){.credit-form{grid-template-columns:1fr}.credit-buttons .btn{flex:1}}
.voucher-form{grid-template-columns:1.2fr .6fr 1.4fr auto}.scan-actions{display:flex;flex-wrap:wrap;gap:8px}.scan-file{cursor:pointer;display:inline-flex;align-items:center}#scan-video{width:100%;max-height:320px;border-radius:10px;background:#111b30;object-fit:cover}#scan-box{display:grid;gap:8px}@media(max-width:850px){.voucher-form{grid-template-columns:1fr 1fr}}@media(max-width:560px){.voucher-form{grid-template-columns:1fr}.scan-actions .btn{flex:1;justify-content:center;text-align:center}}

@media screen{
.modal-backdrop{background:#f4f6fa;backdrop-filter:none;display:block;padding:0;animation:none}
.modal.page-view{width:min(900px,100%);max-height:none;min-height:100vh;min-height:100dvh;margin:0 auto;border-radius:0;box-shadow:none;overflow:visible;display:flex;flex-direction:column;animation:none}
.modal.page-view.wide{width:min(900px,100%)}
.modal.page-view .modal-head{justify-content:flex-start;align-items:center;gap:14px;padding:14px 20px;position:sticky;top:0;z-index:5}
.modal-title h2{font-size:17px;margin:0 0 3px}.modal-title p{font-size:11px;color:#8b96a8;margin:0}
.back-button{border:1px solid #dfe4ec;background:#fff;color:#33415c;border-radius:8px;padding:9px 13px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;min-height:38px}
.back-button:hover{background:#f4f6f9}
.modal.page-view .modal-body{flex:1;padding:20px}
.modal.page-view .modal-foot{position:sticky;bottom:0;z-index:5;padding:13px 20px}
}
@media screen and (max-width:560px){
.modal.page-view .modal-head{padding:10px 12px}.modal.page-view .modal-body{padding:14px 12px}.modal.page-view .modal-foot{padding:10px 12px}
.modal-title h2{font-size:15px}.back-button{min-height:40px}
}

.car-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px;-webkit-overflow-scrolling:touch}
.car-tab{flex:0 0 auto;border:1px solid #dfe4ec;background:#fff;color:#33415c;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:600;cursor:pointer;min-height:36px}
.car-tab.active{background:#24966c;border-color:#24966c;color:#fff}
.car-tab.private:not(.active){border-color:#e4a927;background:#fff8e6}
.room-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px}
.seat.room{width:auto;height:auto;min-height:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px;border-radius:10px;font-size:12px}
.seat.room small{font-size:10px;opacity:.85}
.seat.room.taken{opacity:.55}
@media(max-width:560px){.seat.room{min-height:92px;font-size:13px}.car-tab{min-height:40px}}
