:root{font-family:Noto Sans TC,Microsoft JhengHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18202d;background:#f6f7f9;font-size:15px;line-height:1.45;letter-spacing:0}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(260px,340px) 1fr auto;align-items:center;gap:18px;min-height:72px;padding:10px 24px;border-bottom:1px solid #dde3eb;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand img{width:190px;height:auto;object-fit:contain}.brand strong{white-space:nowrap;color:#1d355f}.main-nav,.tabs,.segmented,.toolbar,.session{display:flex;align-items:center;gap:8px}.main-nav button,.tabs button,.segmented button,.secondary,.icon-button,.primary,.warning-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid #ccd5df;border-radius:6px;padding:0 12px;background:#fff;color:#263444;white-space:nowrap}.main-nav button.active,.tabs button.active,.segmented button.active{border-color:#28518f;background:#e8f0fb;color:#173d77}.primary{border-color:#216149;background:#216149;color:#fff}.warning-button{border-color:#a45f10;background:#a45f10;color:#fff}.danger-button{border-color:#b42318;background:#b42318;color:#fff}button:disabled{cursor:not-allowed;opacity:.55}.secondary:hover,.icon-button:hover,.main-nav button:hover,.tabs button:hover{border-color:#8ea0b4}.icon-button{width:38px;padding:0}.line-binding-panel{padding:14px 24px 0}.line-binding-panel>div{display:grid;gap:12px;max-width:1480px;margin:0 auto;border:1px solid #d9e2ec;border-radius:8px;padding:16px;background:#fff}.line-binding-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.bind-code-box{display:grid;gap:4px;width:fit-content;min-width:180px;border:1px solid #c9d7e6;border-radius:8px;padding:12px 16px;background:#f3f7fb}.bind-code-box span{color:#526377;font-size:13px}.bind-code-box strong{font-size:28px;letter-spacing:.08em}.line-binding-steps{margin:0;padding-left:22px;color:#344256}.line-binding-steps li+li{margin-top:6px}.line-add-link{width:fit-content;text-decoration:none}main{padding:22px}.work-area{max-width:1480px;margin:0 auto}.schedule-area{max-width:none}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-head.compact{margin-bottom:0}h1,h2{margin:0;color:#162132}h1{font-size:26px;font-weight:750}h2{margin-bottom:10px;font-size:18px}.auth-page,.full-state{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f6f7f9}.public-operation-page{min-height:100vh;background:#f6f7f9}.public-operation-header{display:flex;align-items:center;gap:12px;min-height:72px;padding:10px 24px;border-bottom:1px solid #dde3eb;background:#fff}.public-operation-header img{width:190px;height:auto}.public-operation-header strong{color:#1d355f}.auth-panel{width:min(460px,100%);border:1px solid #dbe2ea;border-radius:8px;padding:28px;background:#fff;box-shadow:0 18px 40px #24304714}.auth-panel img,.full-state img{width:min(300px,100%);height:auto}.auth-panel h1{margin:20px 0}.full-state{gap:20px;color:#53606f}.form-grid,.settings-grid,.accept-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.form-actions.vertical{align-items:stretch;flex-direction:column}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-panel{display:grid;gap:14px}.report-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end}.report-actions{align-self:end}.report-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dce3ea;border-radius:8px;padding:12px 14px;background:#f8fafc}.report-summary strong{color:#1f375c;font-size:18px}.report-summary span{color:#5d6978}.accept-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.field{display:grid;gap:5px;min-width:0}.field span,.check-row{font-size:13px;font-weight:650;color:#53606f}input,select,textarea{width:100%;min-height:38px;border:1px solid #cbd5df;border-radius:6px;padding:8px 10px;background:#fff;color:#18202d}textarea{min-height:86px;resize:vertical}.span-2{grid-column:span 2}.panel{border:1px solid #dce3ea;border-radius:8px;padding:16px;background:#fff}.editable-list{display:grid;gap:10px}.editable-item{display:grid;gap:12px;border:1px solid #e2e8f0;border-radius:8px;padding:12px;background:#fbfcfe}.editable-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.editable-summary>div{display:grid;gap:3px;min-width:0}.editable-summary strong{color:#172033}.editable-summary span{color:#5d6978;font-size:13px}.list-actions{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.log-message{max-width:980px;white-space:pre-line;word-break:break-word}.editable-form{border-top:1px solid #e6edf3;padding-top:12px}.readonly-field{min-width:0;display:grid;gap:5px;border:1px solid #dbe5ef;border-radius:8px;padding:10px 12px;background:#f8fafc}.readonly-field span{color:#64748b;font-size:12px}.readonly-field strong{overflow-wrap:anywhere}.split{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:16px;align-items:start}.wide-left{grid-template-columns:minmax(420px,560px) minmax(0,1fr)}.public-publisher{max-width:720px}.publisher-auth-layout{max-width:640px}.overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat-tile{display:grid;gap:4px;min-height:86px;border:1px solid #dce3ea;border-radius:8px;padding:14px;background:#fff}.stat-tile span{color:#5d6978;font-size:13px;font-weight:700}.stat-tile strong{color:#1f375c;font-size:30px;line-height:1}.overview-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:16px;align-items:start}.overview-side{display:grid;gap:16px}.public-task-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.mini-list{display:grid;gap:8px}.mini-list div{display:grid;gap:2px;border-bottom:1px solid #edf1f5;padding:8px 0}.mini-list div:last-child{border-bottom:0}.mini-list strong{color:#172033}.mini-list span{color:#5d6978;font-size:13px}.task-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:10px;border:1px solid #d8e0e8;border-radius:6px}.choice-grid.compact{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));border:0;padding:0}.assignment-list{display:grid;gap:10px}.assignment-row{display:grid;grid-template-columns:minmax(130px,180px) minmax(0,1fr);align-items:start;gap:12px;border:1px solid #d8e0e8;border-radius:6px;padding:10px;background:#f8fafc}.assignment-row strong{color:#172033}.empty-inline{margin:0;color:#6b7280}.route-points-field{gap:8px}.route-point-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:8px;align-items:end}.route-point-row .field{min-width:0}.route-add-button{width:fit-content}.bound-driver-box{display:grid;gap:3px;border:1px solid #c9d7e6;border-radius:6px;padding:10px;background:#f3f7fb}.bound-driver-box span{color:#5d6978;font-size:13px}.check-row{display:inline-flex;align-items:center;gap:8px}.check-row input{width:16px;min-height:16px}.notice,.error{border-radius:6px;padding:10px 12px}.notice{border:1px solid #b9dbc8;background:#edf8f1;color:#225139}.error{border:1px solid #edb6b6;background:#fff1f1;color:#913434}.table-wrap{overflow:auto;border:1px solid #dce3ea;border-radius:8px;background:#fff}table{width:100%;min-width:760px;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #e7ecf1;text-align:left;vertical-align:top;font-size:14px;white-space:pre-line}th{position:sticky;top:0;z-index:1;background:#f1f4f7;color:#4b596b;font-size:13px}.task-list{display:grid;gap:10px}.task-list.compact{gap:8px}.task-card{display:grid;gap:8px;border:1px solid #dce3ea;border-radius:8px;padding:12px;background:#fff}.task-card>div:first-child{display:flex;justify-content:space-between;gap:10px}.task-card strong{color:#172033}.task-card span,.task-card small{color:#5d6978}.task-card p{margin:0}.task-note{color:#455468;white-space:pre-line}.task-detail{display:grid;gap:12px}.task-detail p{margin:0;color:#53606f}.task-detail dl{display:grid;gap:8px;margin:0}.task-detail dl div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:10px;border-bottom:1px solid #edf1f5;padding-bottom:8px}.task-detail dt{color:#667085;font-weight:700}.task-detail dd{margin:0}.status{border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;white-space:nowrap}.status.pending{background:#fff5db;color:#8a5c00}.status.accepted{background:#e6f6ed;color:#216149}.status.cancelled{background:#f3f4f6;color:#667085}.inline-warning,.schedule-block em{color:#9a4f05;font-style:normal;font-size:12px}.calendar-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.calendar-actions a,.calendar-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border:1px solid #c8d4e0;border-radius:6px;padding:0 10px;background:#f8fafc;color:#263444;font-size:13px;font-weight:700;line-height:1;text-decoration:none;white-space:nowrap}.calendar-actions a:hover,.calendar-actions button:hover{border-color:#8ea0b4}.calendar-actions.compact{gap:4px;margin-top:2px}.calendar-actions.compact a,.calendar-actions.compact button{width:26px;min-height:24px;padding:0;font-size:11px}.grid-scroll{overflow:auto;border:1px solid #dce3ea;border-radius:8px;background:#fff;max-height:calc(100vh - 150px)}.week-grid,.day-grid{position:relative;display:grid;min-width:1180px;grid-template-columns:80px repeat(7,minmax(160px,1fr))}.grid-head,.time-cell,.grid-cell{border-right:1px solid #e1e7ee;border-bottom:1px solid #e7ecf1}.grid-head{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:center;background:#f1f4f7;color:#39495d;font-weight:750}.time-head,.time-cell{position:sticky;left:0;z-index:5}.time-cell{display:flex;align-items:center;justify-content:center;background:#fafbfc;color:#667085;font-size:12px}.grid-cell{background:#fff}.schedule-block{z-index:3;display:grid;align-content:start;gap:3px;margin:3px;border:1px solid #97b5d8;border-left:4px solid #28518f;border-radius:6px;padding:7px;overflow:hidden;background:#eaf2fb;color:#17304f;box-shadow:0 4px 14px #24304714}.schedule-block.has-warning{border-color:#e3bf84;border-left-color:#a45f10;background:#fff6e6}.schedule-block strong,.schedule-block span,.schedule-block small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-block strong{font-size:13px}.schedule-block span,.schedule-block small{font-size:12px}.empty{padding:18px;border:1px dashed #cbd5df;border-radius:8px;color:#667085;background:#fff}@media(max-width:980px){.topbar{grid-template-columns:1fr;position:static}.main-nav,.toolbar,.session{flex-wrap:wrap}.split,.wide-left,.task-columns,.overview-layout,.settings-grid,.report-filters,.form-grid,.accept-grid{grid-template-columns:1fr}.report-summary{align-items:flex-start;flex-direction:column}.assignment-row{grid-template-columns:1fr}.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 1}main{padding:14px}.line-binding-panel{padding:12px 14px 0}.bind-code-box,.line-add-link{width:100%}.section-head,.public-operation-header{align-items:flex-start;flex-direction:column}.task-detail dl div{grid-template-columns:1fr;gap:2px}}:root{--ac-bg: #f6f8fb;--ac-surface: rgba(255, 255, 255, .9);--ac-soft: #f1f6f7;--ac-line: #dbe5e7;--ac-line-strong: #b9cdd0;--ac-ink: #16202e;--ac-muted: #60717d;--ac-accent: #0f766e;--ac-accent-strong: #0a5c56;--ac-shadow: 0 18px 45px rgba(14, 33, 45, .08)}body{background:linear-gradient(90deg,rgba(15,118,110,.07) 1px,transparent 1px),linear-gradient(180deg,rgba(47,111,237,.055) 1px,transparent 1px),linear-gradient(180deg,#ffffff 0%,var(--ac-bg) 38%,#edf4f3 100%);background-size:28px 28px,28px 28px,auto;color:var(--ac-ink)}.topbar,.line-binding-panel>div,.panel,.empty,.schedule-card,.task-card,.route-point-row,.report-summary,.calendar-panel{border-color:var(--ac-line);border-radius:8px;background:var(--ac-surface);box-shadow:var(--ac-shadow)}.panel,.line-binding-panel>div{position:relative;overflow:hidden}.panel:before,.line-binding-panel>div:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(15,118,110,.48),transparent)}.brand strong,.section-head h1,.section-head h2{color:var(--ac-ink)}.brand-mark,.metric-icon,.bind-code-box{border:1px solid rgba(15,118,110,.22);background:#e4f7f3;color:var(--ac-accent)}.main-nav button.active,.tabs button.active,.segmented button.active{border-color:#0f766e42;background:#e4f7f3;color:var(--ac-accent-strong)}.primary{border-color:var(--ac-accent);background:linear-gradient(180deg,#14877d,var(--ac-accent-strong));box-shadow:0 12px 22px #0f766e29}.secondary,.icon-button,.main-nav button,.tabs button,.segmented button{border-color:var(--ac-line-strong);border-radius:8px}.secondary:hover,.icon-button:hover,.main-nav button:hover,.tabs button:hover{border-color:var(--ac-accent);background:#e4f7f3;color:var(--ac-accent-strong)}input,select,textarea{border-color:var(--ac-line-strong);border-radius:8px;background:#ffffffeb}input:focus,select:focus,textarea:focus{border-color:var(--ac-accent);box-shadow:0 0 0 3px #0f766e24;outline:none}.status{border-radius:999px}:root{--ac-bg: #f5f8fb;--ac-surface: rgba(255, 255, 255, .93);--ac-soft: #f0f6f8;--ac-line: #cfdae5;--ac-line-strong: #9fb4c7;--ac-ink: #111c2d;--ac-muted: #607083;--ac-accent: #00a6b2;--ac-accent-strong: #007d8c;--ac-blue: #2f6fed;--ac-amber: #d99012;--ac-shadow: 0 18px 46px rgba(7, 18, 33, .12);font-variant-numeric:tabular-nums}body{background:linear-gradient(90deg,rgba(0,166,178,.07) 1px,transparent 1px),linear-gradient(180deg,rgba(47,111,237,.055) 1px,transparent 1px),linear-gradient(180deg,#fbfdff,#eef4f8);background-size:28px 28px,28px 28px,auto}.topbar{background:linear-gradient(135deg,rgba(0,166,178,.18),transparent 34%),linear-gradient(180deg,#081523,#0b2436);color:#eef9fb;border-color:#9fb4c757;box-shadow:0 18px 50px #0612212e}.topbar .brand strong,.topbar .session,.topbar button,.topbar .secondary{color:#eef9fb}.topbar .secondary,.topbar .icon-button,.topbar .main-nav button{border-color:#9fb4c757;background:#ffffff0f}.panel,.line-binding-panel>div,.empty,.schedule-card,.task-card,.route-point-row,.report-summary,.calendar-panel{background:linear-gradient(180deg,#fffffff5,#f7fbfceb);border-color:#9fb4c780}.panel:before,.line-binding-panel>div:before{height:2px;background:linear-gradient(90deg,var(--ac-accent),var(--ac-blue),var(--ac-amber))}.primary{background:linear-gradient(180deg,#00b8c2,var(--ac-accent-strong));box-shadow:0 12px 24px #00a6b233}.secondary:hover,.icon-button:hover,.main-nav button:hover,.tabs button:hover{background:#e8fbfd;color:#006f7b}table th,.data-table th{background:#edf5f8;color:#24364b;font-size:12px;text-transform:uppercase}:root{color-scheme:dark;--lh-bg: #050914;--lh-bg-2: #071322;--lh-panel: rgba(8, 17, 31, .78);--lh-panel-strong: rgba(10, 24, 42, .92);--lh-card: rgba(12, 27, 47, .82);--lh-text: #edf7ff;--lh-muted: #91a7bd;--lh-line: rgba(111, 229, 255, .2);--lh-line-strong: rgba(111, 229, 255, .38);--lh-accent: #19e6d2;--lh-blue: #4f8cff;--lh-amber: #f3b44b;--lh-danger: #ff6b6b;--lh-shadow: 0 24px 70px rgba(0, 0, 0, .38), inset 0 1px 0 rgba(255, 255, 255, .04);--ac-bg: var(--lh-bg);--ac-panel: var(--lh-panel);--ac-ink: var(--lh-text);--ac-muted: var(--lh-muted);--ac-line: var(--lh-line);--ac-accent: var(--lh-accent);--ac-blue: var(--lh-blue);--ac-amber: var(--lh-amber)}html,body,#root{background:var(--lh-bg)!important;color:var(--lh-text)!important}body{position:relative;background:radial-gradient(circle at 12% -10%,rgba(25,230,210,.22),transparent 32%),radial-gradient(circle at 88% 0%,rgba(79,140,255,.22),transparent 30%),linear-gradient(90deg,rgba(111,229,255,.07) 1px,transparent 1px),linear-gradient(180deg,rgba(111,229,255,.055) 1px,transparent 1px),linear-gradient(180deg,var(--lh-bg) 0%,var(--lh-bg-2) 100%)!important;background-size:auto,auto,36px 36px,36px 36px,auto!important;background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 38%,rgba(25,230,210,.08) 46%,transparent 54%),radial-gradient(circle at 50% 15%,rgba(255,255,255,.08),transparent 34%);-webkit-mask-image:linear-gradient(180deg,#000000e0,#00000038);mask-image:linear-gradient(180deg,#000000e0,#00000038)}.app-shell,.main,.line-binding-panel{position:relative;z-index:1}:is(.topbar,.panel,.line-binding-panel>div,.empty,.schedule-card,.task-card,.route-point-row,.report-summary,.calendar-panel,.stat-card,.stat-tile,.form-card,.modal,.table-wrap,.login-card){background:linear-gradient(180deg,#0f1f34e6,#07101ec7)!important;border-color:var(--lh-line)!important;color:var(--lh-text)!important;box-shadow:var(--lh-shadow)!important;-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%)}:is(.panel,.line-binding-panel>div,.schedule-card,.task-card,.calendar-panel,.stat-card,.stat-tile,.form-card,.modal,.table-wrap):before{background:linear-gradient(90deg,var(--lh-accent),var(--lh-blue),var(--lh-amber))!important;box-shadow:0 0 24px #19e6d247}:is(h1,h2,h3,.brand strong,strong,label){color:var(--lh-text)!important}:is(p,small,.muted,.helper,.meta){color:var(--lh-muted)!important}.stat-tile span{color:var(--lh-muted)!important}.stat-tile strong{color:var(--lh-text)!important}:is(input,select,textarea){background:#040c18c7!important;border-color:var(--lh-line)!important;color:var(--lh-text)!important;box-shadow:inset 0 1px #ffffff0a}:is(input,select,textarea):focus{border-color:var(--lh-accent)!important;box-shadow:0 0 0 3px #19e6d224!important;outline:none}::placeholder{color:#91a7bdc2}select option{background:#08111f;color:var(--lh-text)}:is(.primary,button[type=submit]){border-color:#19e6d280!important;background:linear-gradient(180deg,#1ef4df,#0d8ea0)!important;color:#031018!important;box-shadow:0 16px 34px #19e6d238!important}:is(.secondary,.icon-button,.main-nav button:not(.active),.tabs button:not(.active),.segmented button:not(.active),.ghost-button){background:#0a182aa3!important;border-color:var(--lh-line)!important;color:var(--lh-text)!important}:is(.secondary,.icon-button,.main-nav button:not(.active),.tabs button:not(.active),.segmented button:not(.active),.ghost-button):hover{background:#19e6d21f!important;border-color:var(--lh-line-strong)!important;color:#fff!important}:is(.badge,.chip,.status,.user-chip){background:#19e6d21f!important;border-color:#19e6d247!important;color:#bffdf5!important}:is(table th,.data-table th){background:#19e6d21a!important;color:#c8f8ff!important;border-color:var(--lh-line)!important}:is(table td,table tr){border-color:var(--lh-line)!important}@media(max-width:760px){:is(.topbar,.line-binding-head,.main-nav,.session,.toolbar,.form-row,.field-row,.button-row){grid-template-columns:1fr!important;flex-direction:column;align-items:stretch!important;height:auto!important;min-height:0!important}:is(.main,.line-binding-panel){width:100%!important;padding-left:14px!important;padding-right:14px!important}:is(.overview-grid,.publisher-grid,.admin-grid,.report-grid,.task-grid,.route-grid,.vehicle-assignment-row,.reminder-time-grid){grid-template-columns:1fr!important}}
