:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f5f7;--bg-2:#fbfbfd;--surface:#ffffffb8;--surface-strong:#ffffffe0;--surface-solid:#fff;--text:#1d1d1f;--text-2:#3a3a3c;--muted:#6e6e73;--muted-2:#a1a1a6;--blue:#007aff;--blue-dark:#005ecb;--blue-soft:#007aff1c;--red:#ff3b30;--red-dark:#d70015;--red-soft:#ff3b301a;--green:#34c759;--green-soft:#34c7591f;--orange:#ff9500;--orange-soft:#ff950021;--purple:#af52de;--purple-soft:#af52de1f;--border:#3c3c4329;--border-soft:#3c3c4317;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 10px 28px #00000012;--shadow-md:0 22px 54px #0000001c;--shadow-lg:0 38px 90px #00000029;--blur:blur(26px) saturate(180%);--radius-sm:14px;--radius:20px;--radius-lg:28px;--radius-xl:38px;--container:1120px;--admin-container:1220px;--topbar-height:72px}*{box-sizing:border-box}html{scroll-behavior:smooth;width:100%}body{width:100%;min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;background:radial-gradient(circle at 14% -8%,#007aff29,#0000 34%),radial-gradient(circle at 96% 2%,#af52de21,#0000 32%),radial-gradient(circle at 50% 100%,#5ac8fa1c,#0000 38%),linear-gradient(#fbfbfd 0%,#f5f5f7 46%,#ececf1 100%);margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,ui-sans-serif,system-ui,sans-serif;overflow-x:hidden}button,input,select,textarea{font:inherit}button{-webkit-user-select:none;user-select:none}a{color:inherit;text-decoration:none}::selection{color:var(--blue-dark);background:#007aff2e}.idos-page,.restriction-page{flex-direction:column;min-height:100vh;display:flex}.idos-alert,.alert.error{background:var(--red-soft);color:#b42318;border:1px solid #ff3b302e;border-radius:18px;margin-bottom:14px;padding:14px 16px;font-weight:760}.idos-topbar,.restriction-topbar{min-height:var(--topbar-height);z-index:100;border-bottom:1px solid var(--border-soft);-webkit-backdrop-filter:var(--blur);background:#fbfbfdad;align-items:center;padding:12px clamp(14px,3vw,32px);display:flex;position:sticky;top:0}.idos-topbar{justify-content:space-between;gap:14px}.idos-brand,.restriction-brand{align-items:center;gap:13px;min-width:0;display:flex}.idos-logo{color:#fff;letter-spacing:-.06em;background:linear-gradient(145deg,#ffffff47,#0000 34%),linear-gradient(145deg,#0a84ff 0%,#007aff 48%,#003b8e 100%);border-radius:16px;flex:none;place-items:center;width:46px;height:46px;font-size:17px;font-weight:950;display:grid;box-shadow:inset 0 1px #ffffff57,0 14px 32px #007aff42}.idos-brand strong,.restriction-brand strong{color:var(--text);letter-spacing:-.035em;font-size:17px;font-weight:850;line-height:1.1;display:block}.idos-brand span,.restriction-brand span{color:var(--muted);margin-top:3px;font-size:13px;font-weight:560;display:block}.topbar-actions{align-items:center;gap:9px;display:flex}.install-app-btn,.admin-link,.theme-toggle-btn{border:1px solid var(--border-soft);min-height:40px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(18px)saturate(180%);background:#ffffffb3;border-radius:999px;padding:0 14px;font-size:14px;font-weight:760;transition:all .18s}.theme-toggle-btn{place-items:center;width:40px;padding:0;font-size:17px;display:inline-grid}.install-app-btn,.admin-link{color:var(--blue)}.admin-link{background:var(--blue-soft);border-color:#007aff29}.install-app-btn:hover,.admin-link:hover,.theme-toggle-btn:hover{box-shadow:var(--shadow-sm);background:#fff;border-color:#007aff3d;transform:translateY(-1px)}.idos-search-section,.restriction-hero{background:radial-gradient(circle at 20% 5%,#ffffff9e,#0000 25%),radial-gradient(circle at 86% 14%,#007aff42,#0000 30%),radial-gradient(circle at 72% 100%,#af52de2e,#0000 32%),linear-gradient(135deg,#fff 0%,#eef7ff 45%,#dceeff 100%);border-radius:40px;margin:18px clamp(10px,2vw,20px) 0;padding:30px 14px 28px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffc7,0 32px 90px #00397826}.idos-search-section:before,.restriction-hero:before{content:"";opacity:.36;pointer-events:none;background-image:linear-gradient(#ffffff80 1px,#0000 1px),linear-gradient(90deg,#ffffff80 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 72%);mask-image:linear-gradient(#000,#0000 72%)}.idos-search-shell,.restriction-container{width:100%;max-width:var(--container);z-index:1;margin:0 auto;position:relative}.public-tabs-wrap{width:100%;max-width:1040px;margin:0 auto 18px;padding:0}.public-tabs{-webkit-backdrop-filter:blur(22px)saturate(180%);background:#ffffff85;border:1px solid #ffffffb3;border-radius:999px;grid-template-columns:1fr 1fr;gap:6px;width:100%;padding:6px;display:grid;box-shadow:inset 0 1px #ffffffc7,0 12px 32px #00397814}.public-tabs button{color:#1d1d1fa3;cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:44px;font-weight:850;transition:all .18s}.public-tabs button:hover{color:var(--text)}.public-tabs button.active{color:var(--blue);background:#ffffffeb;box-shadow:0 8px 24px #0039781f,inset 0 1px #ffffffdb}.mobile-search-toggle{display:none}.idos-search-box,.departures-panel,.restriction-card{background:var(--surface);width:100%;max-width:1040px;-webkit-backdrop-filter:var(--blur);border:1px solid #ffffffb8;border-radius:36px;margin:0 auto;padding:clamp(22px,3.6vw,38px);box-shadow:inset 0 1px #ffffffd1,0 26px 68px #00397821}.idos-search-title{margin-bottom:22px}.idos-search-title h1,.departures-panel h1,.restriction-card h1{color:var(--text);letter-spacing:-.085em;margin:0;font-size:clamp(39px,5vw,66px);font-weight:950;line-height:.94}.idos-search-title p,.departures-panel p{color:var(--muted);margin:12px 0 0;font-size:15px;font-weight:560;line-height:1.45}.idos-form-grid{grid-template-columns:minmax(0,1.28fr) 52px minmax(0,1.28fr) minmax(0,148px) minmax(0,132px) minmax(0,166px);grid-template-areas:"from swap to date time mode";align-items:end;gap:12px;width:100%;min-width:0;display:grid}.idos-form-grid>label:first-of-type{grid-area:from}.idos-form-grid>.swap-button{grid-area:swap}.idos-form-grid>label:nth-of-type(2){grid-area:to}.idos-form-grid>label:nth-of-type(3){grid-area:date}.idos-form-grid>label:nth-of-type(4){grid-area:time}.idos-form-grid>label:nth-of-type(5){grid-area:mode}.idos-form-grid label,.departures-form label,.admin-field{flex-direction:column;gap:7px;min-width:0;max-width:100%;display:flex;overflow:hidden}.idos-form-grid label,.departures-form label{color:var(--text-2);font-size:13px;font-weight:760}.idos-form-grid label span,.departures-form label span{padding-left:2px}.idos-form-grid input,.idos-form-grid select,.departures-form select,.admin-field input,.admin-field select,.admin-field textarea,.login-card input{width:100%;min-width:0;max-width:100%;color:var(--text);box-shadow:inset 0 1px 0 #ffffffd1, var(--shadow-xs);-webkit-backdrop-filter:blur(12px);background:#ffffffd1;border:1px solid #3c3c4324;border-radius:17px;outline:none;transition:all .18s}.idos-form-grid input,.idos-form-grid select,.departures-form select,.admin-field input,.admin-field select,.login-card input{height:48px;padding:0 14px}.admin-field textarea{resize:vertical;min-height:120px;padding:12px 14px}.idos-form-grid input:hover,.idos-form-grid select:hover,.departures-form select:hover,.admin-field input:hover,.admin-field select:hover,.admin-field textarea:hover,.login-card input:hover{background:#fffffff5;border-color:#007aff47}.idos-form-grid input:focus,.idos-form-grid select:focus,.departures-form select:focus,.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus,.login-card input:focus{background:#fff;border-color:#007aff94;box-shadow:0 0 0 4px #007aff24,inset 0 1px #ffffffd1}.swap-button{background:var(--blue-soft);width:52px;height:48px;color:var(--blue);cursor:pointer;box-shadow:var(--shadow-xs);border:1px solid #007aff2e;border-radius:17px;font-size:23px;font-weight:850;transition:all .18s}.swap-button:hover{color:#fff;background:var(--blue);transform:translateY(-1px);box-shadow:0 12px 28px #007aff3d}.search-button{color:#fff;letter-spacing:-.015em;cursor:pointer;background:linear-gradient(#ffffff3d,#0000),linear-gradient(135deg,#0a84ff,#007aff);border:0;border-radius:999px;min-height:50px;margin-top:16px;padding:0 26px;font-weight:850;transition:all .18s;box-shadow:inset 0 1px #ffffff4d,0 15px 34px #007aff45}.search-button:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff4d,0 20px 44px #007aff57}.search-button:disabled{opacity:.58;cursor:wait}.search-history{-webkit-backdrop-filter:blur(22px)saturate(180%);background:#ffffff6b;border:1px solid #ffffff94;border-radius:24px;width:100%;max-width:1040px;margin:16px auto 0;padding:14px;box-shadow:inset 0 1px #ffffffad,0 14px 34px #00397814}.search-history-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.search-history-header strong{color:var(--text);font-size:14px;font-weight:820}.search-history-header button{color:var(--red);cursor:pointer;background:0 0;border:0;font-weight:780}.search-history-list{flex-wrap:wrap;gap:8px;display:flex}.history-chip{min-height:38px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-xs);background:#ffffffc2;border:1px solid #3c3c431f;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-weight:740;transition:all .18s;display:inline-flex}.history-chip:hover{color:var(--blue);box-shadow:var(--shadow-sm);background:#fff;transform:translateY(-1px)}.idos-content{width:100%;max-width:var(--container);flex:1;margin:24px auto 0;padding:0 16px}.connection-nav-buttons{gap:12px;margin-bottom:18px;display:flex}.connection-nav-buttons button{border:1px solid var(--border-soft);min-height:46px;color:var(--blue);cursor:pointer;box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(18px)saturate(180%);background:#ffffffb8;border-radius:999px;flex:1;font-weight:800;transition:all .18s}.connection-nav-buttons button:hover:not(:disabled){box-shadow:var(--shadow-sm);background:#fff;transform:translateY(-1px)}.connection-nav-buttons button:disabled{opacity:.55;cursor:wait}.empty-results{text-align:center;background:var(--surface);color:var(--muted);box-shadow:inset 0 1px 0 #ffffffc2, var(--shadow-sm);-webkit-backdrop-filter:var(--blur);border:1px solid #ffffffa8;border-radius:30px;padding:34px 22px}.empty-results.small{padding:24px 18px}.empty-results h2{color:var(--text);letter-spacing:-.055em;margin:0 0 8px;font-size:25px;font-weight:860}.empty-results p{color:var(--muted);margin:0}.results-list{flex-direction:column;gap:14px;display:flex}.connection-card{background:var(--surface);box-shadow:inset 0 1px 0 #ffffffb8, var(--shadow-sm);-webkit-backdrop-filter:blur(24px)saturate(180%);border:1px solid #ffffffad;border-radius:30px;transition:all .18s;overflow:hidden}.connection-card:hover{box-shadow:inset 0 1px 0 #ffffffb8, var(--shadow-md);transform:translateY(-1px)}.connection-main{grid-template-columns:220px minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:19px 21px;display:grid}.connection-time{white-space:nowrap;color:var(--text);letter-spacing:-.07em;align-items:center;gap:9px;font-size:clamp(24px,3vw,32px);display:flex}.connection-time strong{font-weight:950}.connection-time span{color:var(--muted-2);font-weight:700}.connection-summary{min-width:0}.connection-summary h2{color:var(--text);letter-spacing:-.045em;margin:0;font-size:18px;font-weight:860}.connection-summary p{color:var(--muted);margin:6px 0 0;font-weight:650}.connection-lines{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.line-pill{color:#fff;border-radius:999px;place-items:center;min-width:36px;height:30px;padding:0 10px;font-size:13px;font-weight:880;display:inline-grid;box-shadow:inset 0 1px #ffffff42,0 5px 14px #00000024}.detail-button{background:var(--blue-soft);min-height:42px;color:var(--blue);cursor:pointer;white-space:nowrap;border:1px solid #007aff2e;border-radius:999px;padding:0 14px;font-weight:800;transition:all .18s}.detail-button:hover{color:#fff;background:var(--blue);transform:translateY(-1px);box-shadow:0 12px 28px #007aff3b}.connection-stops-preview{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:8px;padding:0 21px 19px;font-weight:690;display:flex}.connection-stops-preview span{color:var(--muted-2)}.connection-badges{flex-wrap:wrap;gap:7px;margin-top:8px;display:flex}.quality-badge{border:1px solid #0000;border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:12px;font-weight:850;display:inline-flex}.quality-direct{background:var(--green-soft);color:#1f8f3a;border-color:#34c75938}.quality-fast{background:var(--blue-soft);color:var(--blue);border-color:#007aff2e}.quality-good{background:var(--green-soft);color:#168d35;border-color:#34c75938}.quality-tight{background:var(--orange-soft);color:#b45d00;border-color:#ff950038}.quality-normal{color:var(--text-2);background:#8e8e931f;border-color:#8e8e932e}.connection-detail{border-top:1px solid var(--border-soft);background:#f5f5f785;padding:16px}.detail-leg{box-shadow:var(--shadow-xs);background:#ffffffbd;border:1px solid #3c3c431a;border-radius:23px;padding:16px}.detail-leg+.detail-leg{margin-top:14px}.detail-leg-header{border-bottom:1px solid var(--border-soft);align-items:center;gap:13px;margin-bottom:16px;padding-bottom:14px;display:flex}.detail-leg-header strong{color:var(--text);letter-spacing:-.03em;font-size:16px;font-weight:830;display:block}.detail-leg-header p{color:var(--muted);margin:3px 0 0;font-size:14px}.transfer-time-inline{background:var(--orange-soft);color:#a85b00;border:1px solid #ff950033;border-radius:17px;justify-content:space-between;gap:12px;margin:13px 4px;padding:12px 14px;font-size:14px;font-weight:800;display:flex}.transfer-time-inline strong{font-weight:900}.timeline-row{grid-template-columns:68px 28px minmax(0,1fr);align-items:start;gap:10px;min-height:40px;display:grid}.timeline-time{color:var(--text);letter-spacing:-.02em;font-weight:860}.timeline-dot-wrap{justify-content:center;height:100%;display:flex;position:relative}.timeline-dot-wrap:after{content:"";background:linear-gradient(#007aff47,#007aff0f);border-radius:99px;width:2px;position:absolute;top:15px;bottom:-15px}.timeline-row:last-child .timeline-dot-wrap:after{display:none}.timeline-dot{z-index:1;border:4px solid var(--blue);background:#fff;border-radius:999px;width:13px;height:13px;margin-top:3px;box-shadow:0 0 0 4px #007aff24}.timeline-stop{align-items:center;gap:8px;min-width:0;padding-bottom:15px;display:flex}.timeline-stop strong{min-width:0;color:var(--text);font-weight:760}.request-stop{border:1.6px solid var(--text);width:23px;height:21px;color:var(--text);border-radius:6px;flex:none;place-items:center;font-size:11px;font-weight:900;line-height:1;display:inline-grid}.notes-list{gap:9px;margin-top:14px;display:grid}.note-box{background:var(--blue-soft);color:#074f9f;border:1px solid #007aff29;border-radius:17px;padding:13px 14px}.note-box.warning{background:var(--orange-soft);color:#9a5600;border-color:#ff950038}.note-box.restriction{background:var(--red-soft);color:#a61b13;border-color:#ff3b3033}.note-box strong{margin-bottom:4px;display:block}.note-box p{margin:0 0 5px}.note-box a{color:inherit;text-underline-offset:3px;font-weight:850;text-decoration:underline}.departures-panel p{margin-bottom:20px}.departures-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px;display:grid}.departures-list{gap:10px;margin-top:20px;display:grid}.departure-card{box-shadow:var(--shadow-xs);background:#ffffffb8;border:1px solid #3c3c431a;border-radius:21px;grid-template-columns:74px 44px minmax(0,1fr);align-items:center;gap:14px;padding:14px 16px;transition:all .18s;display:grid}.departure-card:hover{box-shadow:var(--shadow-sm);background:#fff;transform:translateY(-1px)}.departure-time{color:var(--text);letter-spacing:-.06em;font-size:30px;font-weight:950;line-height:1}.departure-info{gap:2px;min-width:0;display:grid}.departure-info strong{color:var(--text);font-size:16px;font-weight:820}.departure-info span{color:var(--muted);font-size:13px;font-weight:650}.portal-footer{width:100%;max-width:var(--container);text-align:center;color:var(--muted);margin:32px auto 0;padding:18px 16px 34px;font-size:13px}.portal-footer p{margin:4px 0}.portal-footer strong{color:var(--text)}.ios-install-modal{z-index:999;-webkit-backdrop-filter:blur(20px);background:#00000052;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.ios-install-card{width:min(480px,100%);box-shadow:var(--shadow-lg);background:#ffffffeb;border:1px solid #ffffffad;border-radius:30px;padding:26px;position:relative}.ios-install-card h2{letter-spacing:-.055em;margin:0 0 10px;font-size:28px}.ios-install-card p{color:var(--muted);line-height:1.5}.ios-install-card ol{color:var(--text-2);margin:14px 0 0;padding-left:20px}.ios-install-close{width:34px;height:34px;color:var(--text);cursor:pointer;background:#3c3c431a;border:0;border-radius:999px;font-size:24px;position:absolute;top:12px;right:12px}.restriction-container,.restriction-card{max-width:960px}.restriction-header-row{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.restriction-chip,.restriction-status{border:1px solid #0000;border-radius:999px;align-items:center;min-height:30px;padding:0 12px;font-size:13px;font-weight:850;display:inline-flex}.restriction-chip.info{background:var(--blue-soft);color:var(--blue);border-color:#007aff2e}.restriction-chip.warning{background:var(--orange-soft);color:#b45d00;border-color:#ff950038}.restriction-chip.restriction{background:var(--red-soft);color:#a61b13;border-color:#ff3b3033}.restriction-chip.closure{color:#fff;background:#1d1d1f;border-color:#1d1d1f}.restriction-status{background:var(--green-soft);color:#168d35;border-color:#34c75938}.restriction-status.ended{color:var(--muted);background:#8e8e931f;border-color:#8e8e932e}.restriction-summary{color:var(--text-2);margin:16px 0 0;font-size:18px;font-weight:620;line-height:1.5}.restriction-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.restriction-meta-grid div{background:#ffffff9e;border:1px solid #3c3c431a;border-radius:18px;padding:14px}.restriction-meta-grid span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;font-size:12px;font-weight:850;display:block}.restriction-meta-grid strong{color:var(--text);font-size:15px}.restriction-content{color:var(--text-2);margin-top:26px;font-size:16px;line-height:1.66}.restriction-content p{margin:0 0 14px}.restriction-actions{gap:12px;margin-top:28px;display:flex}.restriction-button{background:var(--blue);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-height:46px;padding:0 18px;font-weight:850;display:inline-flex;box-shadow:0 14px 32px #007aff42}.restriction-eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:12px;font-weight:850}.restriction-eyebrow.error{color:var(--red)}.admin-page{min-height:100vh;color:var(--text);background:radial-gradient(circle at 14% -8%,#007aff24,#0000 34%),radial-gradient(circle at 96% 2%,#af52de1c,#0000 32%),linear-gradient(#fbfbfd 0%,#f5f5f7 46%,#ececf1 100%);padding:28px}.admin-header{max-width:var(--admin-container);background:var(--surface);box-shadow:inset 0 1px 0 #ffffffb8, var(--shadow-md);-webkit-backdrop-filter:var(--blur);border:1px solid #ffffffad;border-radius:32px;justify-content:space-between;align-items:center;gap:18px;margin:0 auto 18px;padding:26px;display:flex}.admin-header h1{color:var(--text);letter-spacing:-.075em;margin:0;font-size:clamp(30px,4vw,44px);font-weight:950;line-height:1.03}.eyebrow{color:var(--blue);letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:850}.admin-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tabs{max-width:var(--admin-container);scrollbar-width:thin;gap:8px;margin:0 auto 18px;padding:4px;display:flex;overflow-x:auto}.tabs button{border:1px solid var(--border-soft);min-height:42px;color:var(--text-2);white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-xs);background:#ffffffb8;border-radius:999px;padding:0 15px;font-weight:780;transition:all .18s}.tabs button:hover{color:var(--blue);box-shadow:var(--shadow-sm);background:#fff;transform:translateY(-1px)}.tabs button.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 12px 28px #007aff3d}.admin-grid{max-width:var(--admin-container);grid-template-columns:minmax(340px,430px) minmax(0,1fr);align-items:start;gap:18px;margin:0 auto;display:grid}.editor-card,.table-card,.login-card{background:var(--surface);box-shadow:inset 0 1px 0 #ffffffb8, var(--shadow-sm);-webkit-backdrop-filter:var(--blur);border:1px solid #ffffffad;border-radius:32px;overflow:hidden}.editor-card{padding:20px;position:sticky;top:94px}.table-card{min-width:0}.editor-title,.table-title{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.table-title{padding:20px 20px 0}.editor-title h2,.table-title h2{color:var(--text);letter-spacing:-.055em;margin:0;font-size:22px;font-weight:850}.table-title span{background:var(--blue-soft);color:var(--blue);border:1px solid #007aff29;border-radius:999px;padding:7px 11px;font-size:13px;font-weight:800}.form-grid{gap:13px;display:grid}.admin-field label{color:var(--text-2);font-size:13px;font-weight:760}.checkbox-field{margin-top:4px}.check-row{min-height:47px;color:var(--text-2);cursor:pointer;background:#ffffffd1;border:1px solid #3c3c4324;border-radius:17px;align-items:center;gap:10px;padding:0 13px;font-weight:740;display:flex}.check-row input{width:18px;height:18px;accent-color:var(--blue)}.primary-btn,.light-btn,.danger-btn,.login-card button{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:0 15px;font-weight:830;transition:all .18s;display:inline-flex}.primary-btn,.login-card button{background:var(--blue);color:#fff;border:none;width:100%;min-height:49px;margin-top:16px;box-shadow:0 14px 32px #007aff3d}.primary-btn:hover:not(:disabled),.login-card button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 18px 40px #007aff4d}.light-btn{background:var(--blue-soft);color:var(--blue);border-color:#007aff29}.light-btn:hover{background:var(--blue);color:#fff;transform:translateY(-1px);box-shadow:0 12px 28px #007aff38}.danger-btn{background:var(--red-soft);color:var(--red);border-color:#ff3b302e}.danger-btn:hover{background:var(--red);color:#fff;transform:translateY(-1px);box-shadow:0 12px 28px #ff3b3038}.primary-btn:disabled,.light-btn:disabled,.danger-btn:disabled,.login-card button:disabled{opacity:.58;cursor:wait;box-shadow:none;transform:none}.alert{max-width:var(--admin-container);border:1px solid #0000;border-radius:18px;margin:0 auto 16px;padding:13px 15px;font-weight:760}.alert.info{background:var(--blue-soft);color:var(--blue-dark);border-color:#007aff2e}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;padding:0 0 4px;overflow-x:auto}.table-card table{border-collapse:collapse;width:100%;min-width:760px}.table-card thead{background:#f5f5f7c7}.table-card th,.table-card td{border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:middle;padding:14px 15px}.table-card th{color:var(--muted);letter-spacing:.065em;text-transform:uppercase;font-size:12px;font-weight:850}.table-card td{color:var(--text-2);font-weight:650}.table-card tbody tr{transition:background .14s}.table-card tbody tr:hover{background:#ffffff8a}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.row-actions button{min-height:38px;padding:0 11px;font-size:13px}.empty-cell{text-align:center;color:var(--muted);padding:38px 14px!important}.color-cell{align-items:center;gap:8px;display:inline-flex}.color-cell i,.color-dot{border-radius:999px;width:18px;height:18px;display:inline-block;box-shadow:inset 0 0 0 1px #0000001f,0 3px 8px #0000001f}.admin-table-link{color:var(--blue);text-underline-offset:3px;font-weight:820;text-decoration:underline}.login-card{max-width:520px;margin:8vh auto 0;padding:28px}.login-card h1{letter-spacing:-.065em;color:var(--text);margin:0 0 18px;font-size:clamp(30px,4vw,42px)}body.dark-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--bg-2:#111113;--surface:#1c1c1eb8;--surface-strong:#1c1c1ee0;--surface-solid:#1c1c1e;--text:#f5f5f7;--text-2:#d1d1d6;--muted:#98989d;--muted-2:#6e6e73;--border:#ebebf529;--border-soft:#ebebf517;background:radial-gradient(circle at 14% -8%,#0a84ff2e,#0000 34%),radial-gradient(circle at 96% 2%,#bf5af224,#0000 32%),linear-gradient(#000 0%,#111113 45%,#1c1c1e 100%)}body.dark-mode .idos-topbar,body.dark-mode .restriction-topbar{background:#141416b8}body.dark-mode .idos-search-section,body.dark-mode .restriction-hero{background:radial-gradient(circle at 20% 5%,#ffffff14,#0000 25%),radial-gradient(circle at 86% 14%,#0a84ff38,#0000 30%),radial-gradient(circle at 72% 100%,#bf5af229,#0000 32%),linear-gradient(135deg,#111113 0%,#13233a 48%,#06264f 100%)}body.dark-mode .public-tabs,body.dark-mode .idos-search-box,body.dark-mode .departures-panel,body.dark-mode .connection-card,body.dark-mode .empty-results,body.dark-mode .restriction-card,body.dark-mode .admin-header,body.dark-mode .editor-card,body.dark-mode .table-card,body.dark-mode .login-card{color:var(--text);background:#1c1c1ec2;border-color:#ebebf521}body.dark-mode .public-tabs button{color:#f5f5f79e}body.dark-mode .public-tabs button.active{color:#fff;background:#3a3a3cdb}body.dark-mode .idos-brand strong,body.dark-mode .restriction-brand strong,body.dark-mode h1,body.dark-mode h2,body.dark-mode .connection-time,body.dark-mode .timeline-time,body.dark-mode .timeline-stop strong,body.dark-mode .departure-time,body.dark-mode .departure-info strong,body.dark-mode .portal-footer strong,body.dark-mode .restriction-meta-grid strong{color:var(--text)}body.dark-mode .idos-brand span,body.dark-mode .restriction-brand span,body.dark-mode .idos-search-title p,body.dark-mode .departures-panel p,body.dark-mode .connection-summary p,body.dark-mode .connection-stops-preview,body.dark-mode .detail-leg-header p,body.dark-mode .departure-info span,body.dark-mode .portal-footer,body.dark-mode .timeline-stop,body.dark-mode .restriction-summary,body.dark-mode .restriction-content,body.dark-mode .table-card td{color:var(--muted)}body.dark-mode input,body.dark-mode select,body.dark-mode textarea,body.dark-mode .check-row,body.dark-mode .install-app-btn,body.dark-mode .admin-link,body.dark-mode .theme-toggle-btn,body.dark-mode .detail-button,body.dark-mode .history-chip{color:var(--text);background:#1c1c1ec7;border-color:#ebebf524}body.dark-mode .detail-leg,body.dark-mode .departure-card,body.dark-mode .restriction-meta-grid div{background:#2c2c2e9e;border-color:#ebebf51a}body.dark-mode .connection-detail{background:#00000038}body.dark-mode .timeline-dot{background:#1c1c1e}body.dark-mode .timeline-dot-wrap:after{background:linear-gradient(#0a84ff57,#0a84ff14)}body.dark-mode .request-stop{border-color:var(--text);color:var(--text)}body.dark-mode .table-card thead,body.dark-mode .table-card tbody tr:hover{background:#2c2c2e85}body.dark-mode .admin-field label,body.dark-mode .table-card th{color:var(--text-2)}@media (width<=1180px){.idos-form-grid{grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr);grid-template-areas:"from swap to""date time mode"}.connection-main{grid-template-columns:190px minmax(0,1fr)}.connection-lines,.detail-button{justify-self:start}.admin-grid{grid-template-columns:1fr}.editor-card{position:static}}@media (width<=760px){:root{--topbar-height:64px}.idos-topbar{min-height:var(--topbar-height);gap:10px;padding:9px 12px}.idos-logo{border-radius:14px;width:40px;height:40px;font-size:14px}.idos-brand{gap:10px}.idos-brand strong{font-size:15px}.idos-brand span{display:none}.topbar-actions{gap:7px}.install-app-btn,.admin-link{min-height:36px;padding:0 10px;font-size:12px}.theme-toggle-btn{width:36px;min-height:36px;font-size:16px}.idos-search-section,.restriction-hero{border-radius:30px;margin:10px 8px 0;padding:12px 10px 16px}.public-tabs-wrap{margin-bottom:12px}.public-tabs{gap:5px;padding:4px}.public-tabs button{min-height:40px;padding:0 8px;font-size:13px}.mobile-search-toggle{width:100%;min-height:44px;color:var(--text);z-index:2;-webkit-backdrop-filter:blur(18px);background:#ffffff6b;border:1px solid #ffffff94;border-radius:999px;justify-content:space-between;align-items:center;margin:0 auto 10px;padding:0 14px;font-weight:820;display:flex;position:relative}.idos-search-section.collapsed .idos-search-box{display:none}.idos-search-section.open .idos-search-box{display:block}.idos-search-box,.departures-panel,.restriction-card{border-radius:27px;width:100%;max-width:100%;padding:20px 16px;overflow:hidden}.idos-search-title,.departures-panel p{margin-bottom:16px}.idos-search-title h1,.departures-panel h1,.restriction-card h1{font-size:30px}.idos-search-title p,.departures-panel p{font-size:14px}.idos-form-grid{gap:10px;width:100%;min-width:0;max-width:100%;grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"from""swap""to""date""time""mode"!important}.idos-form-grid label,.idos-form-grid input,.idos-form-grid select,.swap-button,.departures-form label,.departures-form select{width:100%!important;min-width:0!important;max-width:100%!important}.idos-form-grid input,.idos-form-grid select,.departures-form select{height:48px;font-size:16px}.swap-button{height:42px}.search-button{width:100%;min-height:48px;margin-top:14px}.search-history{border-radius:23px;margin-top:14px;padding:13px}.search-history-list{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.history-chip{flex:none}.idos-content{margin-top:14px;padding:0 10px}.connection-nav-buttons{top:var(--topbar-height);z-index:20;-webkit-backdrop-filter:blur(18px)saturate(180%);background:#f5f5f7bd;margin-bottom:12px;padding:8px 0;position:sticky}body.dark-mode .connection-nav-buttons{background:#00000094}.connection-nav-buttons button{min-height:44px;font-size:13px}.connection-card{border-radius:25px}.connection-main{grid-template-columns:1fr;gap:12px;padding:16px}.connection-time{justify-content:space-between;font-size:27px}.detail-button{width:100%}.connection-stops-preview{gap:6px;padding:0 16px 14px;font-size:14px}.connection-detail{padding:12px}.detail-leg{border-radius:19px;padding:14px}.detail-leg-header{align-items:flex-start;gap:10px}.transfer-time-inline{margin:12px 2px}.timeline-row{grid-template-columns:54px 24px minmax(0,1fr);gap:8px}.timeline-time{font-size:14px}.timeline-dot{border-width:3px;width:12px;height:12px}.timeline-stop{align-items:flex-start;font-size:14px}.departures-form{grid-template-columns:1fr;gap:10px}.departures-list{gap:9px}.departure-card{border-radius:19px;grid-template-columns:62px 40px minmax(0,1fr);gap:10px;padding:13px 14px}.departure-time{font-size:24px}.portal-footer{margin-top:24px;padding:18px 12px 28px;font-size:13px}.restriction-topbar{min-height:64px;padding:10px 12px}.restriction-summary{font-size:15px}.restriction-meta-grid{grid-template-columns:1fr}.restriction-header-row{flex-direction:column;align-items:flex-start}.restriction-button{width:100%}.admin-page{padding:12px}.admin-header{border-radius:25px;padding:18px;display:block}.admin-header h1{font-size:29px}.admin-actions{grid-template-columns:1fr 1fr;margin-top:14px;display:grid}.tabs{gap:7px;margin-bottom:12px;padding:2px 0 6px}.tabs button{flex:none;min-height:40px;padding:0 13px;font-size:13px}.editor-card,.table-card,.login-card{border-radius:25px}.editor-card{padding:16px}.editor-title,.table-title{flex-direction:column;align-items:flex-start}.table-title{padding:16px 16px 0}.row-actions{flex-wrap:nowrap}.row-actions button{white-space:nowrap}.table-card table{min-width:760px}}@media (width<=430px){.idos-brand strong{text-overflow:ellipsis;max-width:130px;overflow:hidden}.install-app-btn,.admin-link{padding:0 9px;font-size:11px}.idos-search-title h1,.departures-panel h1,.restriction-card h1{font-size:27px}.connection-time{font-size:24px}.line-pill{min-width:32px;height:27px;font-size:12px}.timeline-row{grid-template-columns:48px 22px minmax(0,1fr)}.timeline-time{font-size:13px}.admin-actions{grid-template-columns:1fr}.admin-header h1{font-size:25px}.primary-btn,.light-btn,.danger-btn,.login-card button{min-height:43px;font-size:13px}}.idos-form-grid input[type=date],.idos-form-grid input[type=time],.admin-field input[type=date],.admin-field input[type=time],.admin-field input[type=datetime-local]{box-sizing:border-box;appearance:none;font-size:16px;display:block;overflow:hidden;width:100%!important;min-width:0!important;max-width:100%!important}.idos-form-grid input[type=date]::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;max-width:100%}.idos-form-grid input[type=time]::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;max-width:100%}.admin-field input[type=date]::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;max-width:100%}.admin-field input[type=time]::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;max-width:100%}.admin-field input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;max-width:100%}.idos-form-grid input[type=date]::-webkit-calendar-picker-indicator{flex-shrink:0;margin-left:4px}.idos-form-grid input[type=time]::-webkit-calendar-picker-indicator{flex-shrink:0;margin-left:4px}@supports (-webkit-touch-callout:none){.idos-search-box,.idos-form-grid,.idos-form-grid label{overflow:hidden;min-width:0!important;max-width:100%!important}.idos-form-grid input[type=date],.idos-form-grid input[type=time],.admin-field input[type=datetime-local]{line-height:normal;width:100%!important;min-width:0!important;max-width:100%!important}}.network-map-scroll{width:100%;box-shadow:inset 0 1px 0 #ffffffb8, var(--shadow-xs);-webkit-overflow-scrolling:touch;background:radial-gradient(circle at 20% 0,#007aff14,#0000 28%),linear-gradient(#ffffffb8,#f5f5f7b3);border:1px solid #3c3c431a;border-radius:28px;overflow:auto}.network-map-svg{min-width:100%;display:block}.network-route-label{letter-spacing:-.06em;font-size:28px;font-weight:950}.network-stop-outer{fill:#fff;stroke:#1d1d1f26;stroke-width:2px}.network-stop-inner{stroke:#fff;stroke-width:2px}.network-stop-label{fill:var(--text);letter-spacing:-.02em;font-size:14px;font-weight:760}.network-request-label{fill:var(--text);font-size:12px;font-weight:950}body.dark-mode .network-map-panel{background:#1c1c1ec2;border-color:#ebebf521}body.dark-mode .network-legend-item{background:#2c2c2ea3;border-color:#ebebf51a}body.dark-mode .network-map-scroll{background:radial-gradient(circle at 20% 0,#0a84ff1a,#0000 28%),linear-gradient(#2c2c2e9e,#1c1c1ea8);border-color:#ebebf51a}body.dark-mode .network-stop-outer{fill:#1c1c1e;stroke:#ebebf52e}body.dark-mode .network-stop-inner{stroke:#1c1c1e}body.dark-mode .network-stop-label,body.dark-mode .network-request-label{fill:var(--text)}@media (width<=760px){.network-map-panel{border-radius:27px;width:100%;max-width:100%;padding:20px 16px;overflow:hidden}.network-map-header{flex-direction:column}.network-map-header h1{font-size:30px}.map-refresh-button{width:100%}.network-map-scroll{border-radius:22px}.network-route-label{font-size:24px}.network-stop-label{font-size:13px}}.network-legend-item span{border-radius:999px;width:14px;height:14px;box-shadow:inset 0 1px #ffffff47,0 4px 10px #00000024}.tube-map-scroll{width:100%;box-shadow:inset 0 1px 0 #fffc, var(--shadow-sm);-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #3c3c431f;border-radius:28px;overflow:auto}.tube-map-svg{background:#fff;min-width:100%;display:block}.tube-line{paint-order:stroke}.tube-line-label{letter-spacing:-.04em;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:20px;font-weight:950}.tube-stop-tick{stroke:#fff;stroke-width:5px;stroke-linecap:round}.tube-stop-interchange-outer{fill:#fff;stroke:#2b2b2b;stroke-width:4px}.tube-stop-interchange-inner{fill:#fff;stroke:#fff;stroke-width:1px}.tube-interchange-link{stroke:#2b2b2b;stroke-width:5px;stroke-linecap:round}.tube-stop-name{fill:#174ea6;letter-spacing:-.035em;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-weight:850}.tube-stop-name.diagonal{font-size:13px}body.dark-mode .tube-map-scroll,body.dark-mode .tube-map-svg{background:#fff}body.dark-mode .tube-map-svg text{fill:#174ea6}body.dark-mode .tube-line-label{fill:inherit}@media (width<=760px){.network-map-panel{border-radius:27px;width:100%;max-width:100%;padding:20px 16px;overflow:hidden}.network-map-header{flex-direction:column}.network-map-header h1{font-size:30px}.map-refresh-button{width:100%}.tube-map-scroll{border-radius:22px}.tube-stop-name{font-size:12px}.tube-line-label{font-size:17px}}.network-map-panel{background:var(--surface);width:100%;max-width:1040px;-webkit-backdrop-filter:var(--blur);border:1px solid #ffffffb8;border-radius:36px;margin:0 auto;padding:clamp(22px,3.6vw,38px);box-shadow:inset 0 1px #ffffffd1,0 26px 68px #00397821}.network-map-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.network-map-header h1{color:var(--text);letter-spacing:-.085em;margin:0;font-size:clamp(39px,5vw,66px);font-weight:950;line-height:.94}.network-map-header p{color:var(--muted);margin:12px 0 0;font-size:15px;font-weight:560;line-height:1.45}.map-refresh-button{background:var(--blue-soft);min-height:42px;color:var(--blue);cursor:pointer;border:1px solid #007aff2e;border-radius:999px;flex:none;padding:0 16px;font-weight:820;transition:all .18s}.map-refresh-button:hover:not(:disabled){background:var(--blue);color:#fff;transform:translateY(-1px);box-shadow:0 12px 28px #007aff3b}.map-refresh-button:disabled{opacity:.58;cursor:wait}.network-map-wrap{gap:14px;display:grid}.network-map-legend{-webkit-overflow-scrolling:touch;gap:9px;padding:2px 2px 6px;display:flex;overflow-x:auto}.network-legend-item{min-height:42px;box-shadow:var(--shadow-xs);background:#ffffffa8;border:1px solid #3c3c431a;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 13px;display:inline-flex}.network-legend-item span{border-radius:999px;width:14px;height:14px}.network-legend-item strong{color:var(--text);font-weight:900}.network-legend-item small{color:var(--muted);font-weight:650}.paper-map-scroll{width:100%;box-shadow:inset 0 1px 0 #fffc, var(--shadow-sm);-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #3c3c4324;border-radius:18px;overflow:auto}.paper-map-svg{background:#fff;min-width:100%;display:block}.paper-map-title{fill:#b91c1c;letter-spacing:.04em;font-size:18px;font-weight:900}.paper-route-line{filter:none}.paper-stop{fill:#fff;stroke:#333;stroke-width:3px}.paper-stop-interchange{fill:#fff;stroke:#333;stroke-width:4px}.paper-stop-hole{fill:#fff;stroke:#fff;stroke-width:1px}.paper-stop-name{fill:#174ea6;letter-spacing:-.025em;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;font-weight:850}.paper-request{fill:#b91c1c;font-size:13px;font-weight:950}.paper-segment-number{font-size:15px;font-weight:950}.paper-route-name{letter-spacing:.02em;font-size:20px;font-weight:950}body.dark-mode .paper-map-scroll,body.dark-mode .paper-map-svg{background:#fff}body.dark-mode .paper-stop-name{fill:#174ea6}body.dark-mode .paper-map-title,body.dark-mode .paper-request{fill:#b91c1c}@media (width<=760px){.network-map-panel{border-radius:27px;width:100%;max-width:100%;padding:20px 16px;overflow:hidden}.network-map-header{flex-direction:column}.network-map-header h1{font-size:30px}.map-refresh-button{width:100%}.paper-map-scroll{border-radius:16px}.paper-stop-name{font-size:12px}.paper-route-name{font-size:17px}}@media (width<=760px){.tube-clean-scroll{border-radius:16px}.tube-clean-stop-name{font-size:12px}}.public-tabs{grid-template-columns:1fr 1fr 1fr}.tube-clean-scroll{width:100%;box-shadow:inset 0 1px 0 #fffc, var(--shadow-sm);-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #3c3c4324;border-radius:18px;overflow:auto}.tube-clean-svg{background:#fff;min-width:100%;display:block}.tube-clean-line{filter:none}.tube-clean-stop{fill:#fff;stroke:#2b2b2b;stroke-width:3px}.tube-clean-stop-interchange{fill:#fff;stroke:#2b2b2b;stroke-width:4px}.tube-clean-stop-hole{fill:#fff;stroke:#fff;stroke-width:1px}.tube-clean-stop-name{fill:#174ea6;letter-spacing:-.025em;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;font-weight:850}body.dark-mode .tube-clean-scroll,body.dark-mode .tube-clean-svg{background:#fff}body.dark-mode .tube-clean-stop-name{fill:#174ea6;stroke:#fff}@media (width<=760px){.tube-clean-stop-name{font-size:12px}}
