:root{color-scheme:light;--bg: #f4f7fa;--surface: #ffffff;--surface-alt: #f8fafc;--ink: #132337;--muted: #66758a;--line: #d8e1ea;--line-strong: #bac8d6;--accent: #069bc2;--accent-soft: #e7f7fb;--green: #45a954;--green-soft: #eaf7eb;--amber: #e79500;--amber-soft: #fff5de;--red: #e94b4b;--red-soft: #fff0f0;--shadow: 0 16px 44px rgba(34, 56, 78, .08);font-family:Inter,Noto Sans Thai,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #07111f;--surface: #0b1828;--surface-alt: #0e1d30;--ink: #eff6ff;--muted: #9cacc1;--line: #263a50;--line-strong: #3a5068;--accent: #19b7d8;--accent-soft: #092c3a;--green: #63c96a;--green-soft: #12331f;--amber: #ffb51f;--amber-soft: #38290e;--red: #ff6767;--red-soft: #3b1c21;--shadow: 0 20px 55px rgba(0, 0, 0, .24)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;background:var(--bg);color:var(--ink)}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:2px}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.app-shell{width:min(1500px,calc(100% - 32px));margin:0 auto;padding:18px 0 36px}.topbar{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand-lockup{display:flex;align-items:center;gap:14px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--accent);border-radius:10px;color:var(--accent);font-size:23px;font-weight:800}.brand-lockup strong{color:var(--accent);font-size:25px;letter-spacing:-.04em;margin-right:22px}.brand-lockup span:last-child{font-size:17px;font-weight:750}.theme-switch{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.theme-switch button{min-width:78px;padding:9px 15px;color:var(--ink);background:transparent;border:0;border-right:1px solid var(--line);font-size:13px;font-weight:700}.theme-switch button:last-child{border-right:0}.theme-switch button.active{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.stepper{display:grid;grid-template-columns:repeat(4,1fr);margin:14px 0 10px}.step{position:relative;display:grid;justify-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:650}.step:after{content:"";position:absolute;top:15px;left:calc(50% + 22px);width:calc(100% - 44px);height:1px;background:var(--line-strong)}.step:last-child:after{display:none}.step b{position:relative;z-index:1;width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);font-size:12px}.step.active{color:var(--accent)}.step.active b,.step.complete b{color:#fff;background:var(--accent);border-color:var(--accent);box-shadow:0 7px 20px color-mix(in srgb,var(--accent) 26%,transparent)}.step.complete:after{background:var(--accent)}.scope-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 16px;margin-bottom:10px;border:1px solid var(--line);background:var(--surface);border-radius:8px}.scope-actions{display:flex;align-items:center;gap:14px}.scope-actions strong{color:var(--accent);font-size:11px;letter-spacing:.07em}.scope-bar>span{color:var(--muted);font-size:11px}.outline-button,.text-button,.primary-button{border-radius:7px;padding:9px 13px;font-size:12px;font-weight:750}.outline-button{color:var(--accent);border:1px solid var(--accent);background:transparent}.outline-button:hover{background:var(--accent-soft)}.text-button{color:var(--accent);border:0;background:transparent}.primary-button{color:#fff;background:var(--accent);border:1px solid var(--accent)}.primary-button:hover:not(:disabled){filter:brightness(1.08)}.primary-button:disabled{opacity:.45;cursor:not-allowed}.primary-button.full{width:100%;padding-block:11px}.import-drawer{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(360px,1.7fr) auto;gap:16px;align-items:center;padding:15px;margin-bottom:10px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-soft)}.import-drawer h2{font-size:14px}.import-drawer p,.drawer-actions span{color:var(--muted);font-size:11px;margin-top:4px}.import-drawer textarea{min-height:90px;resize:vertical;padding:11px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:7px;font-size:11px;line-height:1.5}.drawer-actions{display:grid;justify-items:end;gap:8px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}.summary-grid article{display:flex;align-items:center;gap:13px;min-height:78px;padding:14px 18px;border:1px solid var(--line);background:var(--surface)}.summary-grid article:first-child{border-radius:8px 0 0 8px}.summary-grid article:last-child{border-radius:0 8px 8px 0}.summary-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#fff;font-weight:900}.summary-icon.total{background:#2196e3}.summary-icon.valid{background:var(--green)}.summary-icon.review{background:var(--amber)}.summary-icon.invalid{background:var(--red)}.summary-grid small,.summary-grid strong{display:block}.summary-grid small{color:var(--muted);font-size:12px}.summary-grid strong{margin-top:2px;font-size:24px;line-height:1}.work-grid{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(300px,.72fr);gap:10px}.panel{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.validation-panel,.assignment-panel,.route-panel{padding:14px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.panel-heading h2{font-size:15px}.panel-heading p{color:var(--muted);font-size:11px;margin-top:4px}.panel-heading>span{color:var(--muted);font-size:11px;white-space:nowrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:6px}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:10px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{color:var(--muted);background:var(--surface-alt);font-size:10px;font-weight:750;letter-spacing:.03em}td{font-size:11px}td strong,td small{display:block}td strong{font-size:11px}td small{color:var(--muted);font-size:10px;margin-top:3px}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-alt)}tbody tr.review{background:color-mix(in srgb,var(--amber-soft) 48%,transparent)}tbody tr.invalid{background:color-mix(in srgb,var(--red-soft) 50%,transparent)}input[type=checkbox]{accent-color:var(--accent)}.status{display:inline-flex;padding:4px 7px;border-radius:4px;font-size:10px;font-weight:800;white-space:nowrap}.status.valid{color:var(--green);background:var(--green-soft);border:1px solid color-mix(in srgb,var(--green) 42%,var(--line))}.status.review{color:var(--amber);background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--amber) 42%,var(--line))}.status.invalid{color:var(--red);background:var(--red-soft);border:1px solid color-mix(in srgb,var(--red) 42%,var(--line))}.empty-row td{height:194px;text-align:center;color:var(--muted)}.empty-row strong,.empty-row small{display:block}.empty-row small{margin-top:6px}.table-help{color:var(--muted);font-size:10px;margin-top:10px}.assignment-panel{display:flex;flex-direction:column}.assignment-panel label{color:var(--muted);font-size:11px;font-weight:750;margin-bottom:6px}.assignment-panel>input{width:100%;padding:10px;color:var(--ink);background:var(--surface-alt);border:1px solid var(--line-strong);border-radius:7px}.assignment-panel h3{display:flex;justify-content:space-between;margin:17px 0 8px;font-size:12px}.assignment-panel h3 span{color:var(--accent)}.selected-list{flex:1;min-height:170px;display:grid;align-content:start;gap:7px;margin-bottom:12px}.selected-list>div{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:6px;font-size:11px}.selected-list span{display:flex;align-items:center;gap:7px}.selected-list i{width:17px;height:17px;display:grid;place-items:center;color:#fff;background:var(--green);border-radius:50%;font-size:10px;font-style:normal}.remove-selected{color:var(--muted);background:transparent;border:0;font-size:17px}.empty-copy{color:var(--muted);font-size:11px;text-align:center;margin-top:46px}.helper-text{color:var(--muted);font-size:10px;line-height:1.45;margin-top:9px}.route-panel{margin-top:10px}.route-heading h2 span{color:var(--muted);font-size:11px}.route-heading>strong{max-width:360px;color:var(--red);font-size:10px;font-weight:750;text-align:right;line-height:1.5}.route-preview{position:relative;display:grid;grid-template-columns:repeat(3,minmax(170px,1fr)) minmax(200px,.72fr);gap:24px;align-items:start;min-height:140px;padding:17px 10px 2px}.route-line{position:absolute;top:32px;left:9%;width:55%;height:2px;background:var(--accent)}.route-stop{position:relative;z-index:1;display:grid;justify-items:center;gap:3px;text-align:center}.route-stop b{width:31px;height:31px;display:grid;place-items:center;margin-bottom:7px;color:var(--accent);background:var(--surface);border:2px solid var(--accent);border-radius:50%}.route-stop strong{font-size:12px}.route-stop span,.route-stop small{color:var(--muted);font-size:10px}.map-link{color:var(--accent);font-size:10px;font-weight:750}.route-stop em{margin-top:5px;padding:3px 8px;color:var(--green);background:var(--green-soft);border-radius:4px;font-size:9px;font-style:normal;font-weight:750}.route-meta{display:grid;align-content:center;gap:9px;min-height:100px;padding:13px;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:7px;font-size:11px}.route-meta span,.route-meta small{color:var(--ink)}.route-empty{grid-column:1 / -1;display:grid;place-items:center;min-height:105px;color:var(--muted);background:var(--surface-alt);border:1px dashed var(--line-strong);border-radius:6px;font-size:11px}.requirements-panel{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:10px;padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.requirements-panel h2{font-size:13px}.requirements-panel p{color:var(--muted);font-size:10px;margin-top:4px}.message-panel{margin-top:10px;padding:14px}.message-heading{margin-bottom:10px}.message-panel .panel-heading>span{color:var(--amber)}.message-preview{width:100%;min-height:300px;resize:vertical;padding:12px;color:var(--ink);background:var(--surface-alt);border:1px solid var(--line-strong);border-radius:7px;font-size:11px;line-height:1.6}.message-actions{display:flex;align-items:center;gap:12px;margin-top:10px}.message-actions span{color:var(--muted);font-size:10px}.toast{position:fixed;left:50%;bottom:24px;z-index:10;transform:translate(-50%);max-width:min(520px,calc(100vw - 30px));padding:11px 15px;color:var(--green);background:var(--green-soft);border:1px solid var(--green);border-radius:7px;box-shadow:var(--shadow);font-size:12px;font-weight:700}@media(max-width:1050px){.work-grid{grid-template-columns:1fr}.selected-list{min-height:80px}.route-preview{grid-template-columns:repeat(3,1fr)}.route-meta{grid-column:1 / -1;min-height:auto;grid-template-columns:repeat(3,1fr)}.import-drawer{grid-template-columns:1fr}.drawer-actions{display:flex;justify-content:space-between;align-items:center}}@media(max-width:720px){.app-shell{width:min(100% - 20px,1500px);padding-top:10px}.topbar{align-items:flex-start}.brand-lockup strong{display:block;margin:0;font-size:21px}.brand-lockup span:last-child{font-size:13px}.theme-switch button{min-width:58px;padding-inline:9px}.step span{font-size:9px;text-align:center}.scope-bar,.scope-actions{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:repeat(2,1fr)}.summary-grid article:first-child,.summary-grid article:last-child{border-radius:8px}.route-preview{grid-template-columns:1fr;gap:10px}.route-line{display:none}.route-stop{grid-template-columns:34px 1fr;justify-items:start;text-align:left;align-items:center;column-gap:9px}.route-stop b{grid-row:1 / span 4;margin:0}.route-meta{grid-column:auto;grid-template-columns:1fr}.route-heading,.requirements-panel{align-items:flex-start;flex-direction:column}.route-heading>strong{text-align:left}}
