:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{color:#1a1f2b;-webkit-text-size-adjust:100%;background:#f5f6fa;margin:0;font-family:system-ui,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,Roboto,sans-serif}body{overflow-x:hidden}button,input,select{font-family:inherit}:root{--navy:#17233f;--navy-light:#24365e;--blue:#3b6ef6;--blue-soft:#eaf0ff;--green:#1a9c5c;--green-soft:#e7f7ee;--amber:#b8860b;--amber-soft:#fbf3df;--red:#d64545;--red-soft:#fdeaea;--ink:#1a1f2b;--muted:#6b7180;--line:#e7e9ee;--bg:#f5f6fa;--card:#fff;--radius:14px;--radius-sm:9px;--shadow:0 1px 2px #1418280a, 0 8px 24px -12px #1418281f}.center-page{min-height:100dvh;color:var(--muted);justify-content:center;align-items:center;font-size:1.05rem;display:flex}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:10;padding:14px 20px;padding-top:max(14px, env(safe-area-inset-top));background:var(--navy);color:#fff;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar .brand{color:#fff;letter-spacing:-.01em;white-space:nowrap;font-size:1.05rem;font-weight:700;text-decoration:none}.topbar nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.topbar nav a{color:#cfdaf7;padding:6px 4px;font-size:.92rem;text-decoration:none}.topbar nav a.tab.active{color:#fff;border-bottom:2px solid #fff;font-weight:700}.topbar button{color:#eef2ff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;border-radius:8px;min-height:36px;padding:7px 12px;font-size:.88rem}.username{color:#9fb0d9;font-size:.85rem;display:none}@media (width>=480px){.username{display:inline}}.content{box-sizing:border-box;flex:1;width:100%;max-width:1280px;margin:0 auto;padding:18px 16px 48px}@media (width>=640px){.content{padding:28px 24px 56px}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:18px}@media (width>=640px){.card{padding:22px 26px}}.card h2{color:var(--navy);letter-spacing:-.01em;margin:0 0 14px;font-size:1.05rem}.card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-head h2{margin:0}.page-lede{color:var(--muted,#5b6b8c);margin:4px 0 18px;font-size:.92rem}.notice-card{justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.messenger-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=720px){.messenger-grid{grid-template-columns:1fr 1fr}}.channel-card p{color:var(--muted,#5b6b8c);margin:0 0 16px;font-size:.92rem}.channel-actions{flex-wrap:wrap;gap:8px;display:flex}.channel-stats{color:var(--muted,#5b6b8c)!important;margin:-8px 0 14px!important;font-size:.82rem!important}.modal-overlay{z-index:100;background:#0f142380;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-box{background:var(--card);border-radius:var(--radius);width:100%;max-width:720px;padding:20px 20px 24px;overflow-x:hidden;box-shadow:0 24px 64px -16px #00000059}@media (width>=640px){.modal-box{padding:26px 28px 28px}}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-head h2{color:var(--navy);margin:0;font-size:1.05rem}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;min-height:auto;padding:4px 8px;font-size:1.3rem;line-height:1}.confirm-box{max-width:420px}.confirm-message{color:var(--muted);margin:0 0 20px;font-size:.92rem;line-height:1.55}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.confirm-actions button{padding:8px 18px}.confirm-actions .btn-danger{background:var(--red);color:#fff!important;border-color:var(--red)!important}.spinner{border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;width:22px;height:22px;margin:0 auto;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-row{color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:24px 0;font-size:.9rem;display:flex}button{border-radius:var(--radius-sm);cursor:pointer;min-height:42px;font-family:inherit;font-size:.94rem}.form-grid input,.form-grid select,.auth-box input{min-height:42px}button[type=submit],.btn-primary{background:var(--blue);color:#fff;border:none;font-weight:600;transition:background .15s}button[type=submit]:hover,.btn-primary:hover{background:#2f5ee0}.watch-table button,table.watch-table button{border:1px solid var(--line);color:var(--ink);background:#fff;min-height:34px;padding:6px 12px;font-size:.85rem}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.btn-danger{color:var(--red)!important;border-color:var(--red)!important}.stat-row{grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 18px;display:grid}@media (width<=420px){.stat-row{grid-template-columns:1fr}}.stat-tile{background:var(--blue-soft);border-radius:var(--radius-sm);text-align:center;padding:14px 12px}.stat-tile .label{color:var(--muted);margin-bottom:4px;font-size:.78rem}.stat-tile .value{color:var(--navy);font-size:1.35rem;font-weight:700}.badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:600;display:inline-block}.status-pending{color:var(--amber);background:var(--amber-soft)}.status-active{color:var(--green);background:var(--green-soft)}.status-stopped{color:var(--red);background:var(--red-soft)}.status-pending,.status-active,.status-stopped{border-radius:999px;padding:3px 10px;font-size:.82rem;font-weight:600}.trip-type{vertical-align:middle;border-radius:999px;margin-right:6px;padding:2px 8px;font-size:.74rem;font-weight:700;display:inline-block}.trip-type-oneway{color:var(--muted);background:var(--bg);border:1px solid var(--line)}.trip-type-round{color:var(--blue);background:var(--blue-soft)}.date-range{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px;display:flex}.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 18px;min-width:0;display:grid}@media (width<=560px){.form-grid{grid-template-columns:minmax(0,1fr)}}.form-grid label{color:#444;flex-direction:column;gap:6px;min-width:0;font-size:.86rem;display:flex}.form-grid label.checkbox-label{flex-direction:row;align-items:center;gap:8px}.form-grid input,.form-grid select{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;min-width:0;max-width:100%;padding:8px 10px;font-size:.94rem}.form-grid input:focus,.form-grid select:focus{outline:2px solid var(--blue);outline-offset:1px}.time-range{gap:8px;display:flex}.time-range input{flex:1;min-width:0}.form-grid>button,.form-grid>.error-text{grid-column:1/-1}.error-text{color:var(--red);font-size:.9rem}.table-scroll{overflow-x:auto}.pagination{color:var(--muted);justify-content:center;align-items:center;gap:14px;margin-top:14px;font-size:.9rem;display:flex}.pagination button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;min-height:34px;padding:6px 14px}.pagination button:disabled{opacity:.4;cursor:default}.range-toggle{gap:6px;display:flex}.range-toggle button{border:1px solid var(--line);min-height:32px;color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:5px 12px;font-size:.85rem}.range-toggle button.active{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}table.watch-table{border-collapse:collapse;width:100%}table.watch-table th,table.watch-table td{text-align:left;border-bottom:1px solid var(--line);padding:10px;font-size:.9rem}table.watch-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:600}table.watch-table a{color:var(--navy);font-weight:600;text-decoration:none}.watch-table-clickable tbody tr{cursor:pointer}.watch-table-clickable tbody tr:hover{background:var(--blue-soft)}.watch-table-clickable td:first-child{color:var(--navy);font-weight:600}@media (width<=640px){table.watch-table thead{display:none}table.watch-table,table.watch-table tbody,table.watch-table tr,table.watch-table td{width:100%;display:block}table.watch-table tr{border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:10px;padding:10px 12px}table.watch-table td{border-bottom:none;justify-content:space-between;gap:10px;padding:4px 0;display:flex}table.watch-table td:before{content:attr(data-label);color:var(--muted);flex-shrink:0;font-size:.78rem}table.watch-table td:empty{display:none}}.auth-page{background:linear-gradient(160deg,#17233f,#2b3f6e 60%,#3b6ef6);justify-content:center;align-items:center;min-height:100dvh;padding:16px;display:flex}.auth-box{background:var(--card);border-radius:var(--radius);width:100%;max-width:340px;padding:32px 28px;box-shadow:0 20px 60px -20px #0006}.auth-box h1{color:var(--navy);letter-spacing:-.01em;margin:0 0 18px;font-size:1.25rem}.auth-box input{box-sizing:border-box;border:1px solid var(--line);border-radius:8px;width:100%;margin-bottom:10px;padding:10px 12px;font-size:.96rem}.auth-box input:focus{outline:2px solid var(--blue);outline-offset:1px}.auth-box button.primary{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:11px;font-size:.98rem;font-weight:600}.auth-box button.primary:hover{background:#2f5ee0}.link-btn{color:var(--blue);cursor:pointer;min-height:auto;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.token-box{background:var(--bg);border:1px solid var(--line);word-break:break-all;border-radius:8px;padding:12px 14px;font-family:ui-monospace,Consolas,monospace;font-size:.88rem}
