.ops-topbar{background:var(--navy);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.ops-topbar h1{font-size:16px;color:#fff}.ops-topbar .user{font-size:13px;color:#c7d2fe;display:flex;gap:12px;align-items:center}.ops-topbar .user button{background:transparent;border:1px solid #93c5fd;color:#c7d2fe;border-radius:8px;padding:4px 10px;font-size:12px}.ops-layout{display:flex;min-height:calc(100vh - 48px)}.ops-side{width:230px;min-width:230px;background:#16213a;padding:14px 10px}.ops-side .step{font-size:10.5px;color:#64748b;margin:10px 4px 3px}.ops-side a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:9px;color:var(--muted);text-decoration:none;font-size:13.5px;margin-bottom:2px}.ops-side a.active{background:var(--navy-light);color:#fff;font-weight:600}.ops-side a:hover:not(.active){background:var(--card2)}.ops-side .cnt{background:#450a0a;color:#fca5a5;border-radius:999px;padding:1px 8px;font-size:11px}.ops-main{flex:1;padding:20px;max-width:1040px}@media (max-width:720px){.ops-layout{flex-direction:column}.ops-side{width:auto}}.ops-main h2{font-size:17px;margin-bottom:4px}.osub{color:var(--muted);font-size:12.5px;margin-bottom:14px;line-height:1.6}.ocard{background:var(--card);border-radius:12px;padding:14px 16px;margin-bottom:12px}.orow{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.obadge{padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}.b-sug{background:#422006;color:var(--amber)}.b-done{background:#14532d;color:var(--green)}.b-warn{background:#450a0a;color:#fca5a5}.b-info{background:#1e3a8a;color:#93c5fd}.b-pend{background:#3b2f06;color:#fde047}.otable{width:100%;border-collapse:collapse;font-size:13px}.otable th{text-align:left;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid #334155;font-size:12px}.otable td{padding:9px 10px;border-bottom:1px solid #283548;vertical-align:middle}.otable tr:last-child td{border-bottom:none}.obtn{padding:7px 14px;border-radius:8px;border:none;font-size:12.5px;cursor:pointer;font-weight:600}.obtn-ok{background:#16a34a;color:#fff}.obtn-navy{background:var(--navy-light);color:#fff}.obtn-c1{background:#7c3aed;color:#fff}.obtn:disabled{opacity:.45;cursor:not-allowed}.onote{background:#451a03;border:1px dashed #f59e0b;border-radius:10px;padding:8px 12px;font-size:12px;color:#fcd34d;margin-bottom:14px}.oinput{background:var(--card2);border:1px solid #334155;color:var(--text);border-radius:7px;padding:7px 10px;font-size:13px}.confirm2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}@media (max-width:880px){.confirm2{grid-template-columns:1fr}}.tdrow{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid #283548;flex-wrap:wrap}.tdrow:last-child{border-bottom:none}.tdrow .tplate{font-weight:700;min-width:74px;font-size:13.5px}.trbadge{font-size:10px;padding:1px 6px;border-radius:10px;border:1px solid #475569;color:var(--muted)}.tdots{display:flex;gap:6px;flex-wrap:wrap}.tdot{width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;border:2px solid #475569;color:var(--muted);background:var(--bg);cursor:pointer}.tdot.done{background:var(--green);border-color:var(--green);color:#06270f;font-weight:700;cursor:default}.tdot.sel{border-color:#60a5fa;color:#bfdbfe;box-shadow:0 0 0 2px #60a5fa73}.tdot:hover:not(.done){border-color:#93c5fd}.dotlegend{font-size:11px;color:var(--muted);margin-top:10px}.lg-done{color:var(--green)}.lg-sel{color:#60a5fa}.emptypane{color:var(--muted);font-size:13px;text-align:center;padding:42px 10px;line-height:1.6}.stopinfo{background:var(--card2);border-radius:9px;padding:10px 12px;font-size:12.5px;line-height:1.85;margin:8px 0 10px}.stopinfo .k{color:var(--muted);display:inline-block;min-width:108px}.stopinfo b{color:#bfdbfe}.trayhd{font-size:12px;color:var(--muted);margin:4px 0 8px;line-height:1.5}.tray{display:flex;flex-direction:column;gap:8px}.pcard{display:flex;gap:10px;align-items:center;border:1px solid #334155;border-radius:9px;padding:8px;cursor:pointer}.pcard:hover{border-color:#93c5fd}.pcard.match{border-color:var(--green);background:#22c55e12}.pcard.sel{box-shadow:0 0 0 2px var(--navy-light)}.pcard .pthumb{width:40px;height:50px;border-radius:6px;background:var(--bg);border:1px dashed #475569;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.pcard .pmeta{flex:1;font-size:11.8px;line-height:1.5}.pcard .pmeta .pt{color:var(--muted)}.pcard input[type=checkbox]{width:18px;height:18px;flex-shrink:0}.matchbadge{font-size:10px;font-weight:700;color:var(--green);background:#14532d;border-radius:10px;padding:1px 7px}.nobadge{font-size:10px;color:var(--muted)}.ctbar{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:12.5px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}:root{--navy:#1e40af;--navy-light:#3b5bdb;--bg:#0f172a;--card:#1e293b;--card2:#243349;--border:#334155;--text:#e2e8f0;--muted:#94a3b8;--green:#22c55e;--amber:#f59e0b;--red:#ef4444;--blue:#60a5fa;--nt:#22c55e;--che:#a855f7}*{box-sizing:border-box;margin:0;padding:0;font-family:Segoe UI,Tahoma,sans-serif}body{background:var(--bg);color:var(--text);min-height:100vh}button{font-family:inherit;cursor:pointer}a{color:inherit}.topbar{background:var(--navy);padding:14px 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.topbar .logo{font-weight:700;font-size:18px;color:#fff}.topbar .logo span{opacity:.75;font-weight:400}.topbar .right{margin-left:auto;font-size:12px;color:#cbd5e1;display:flex;gap:12px;align-items:center}.topbar .right button{background:transparent;border:1px solid #93c5fd;color:#c7d2fe;border-radius:8px;padding:5px 12px;font-size:12px}.wrap{max-width:1120px;margin:0 auto;padding:18px 16px}.pagehead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:14px}.pagehead h1{font-size:20px}.pagehead .date{color:var(--muted);font-size:13px}.chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.chip{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px 14px;font-size:13px}.chip b{font-size:17px;margin-right:4px}.chip.g b{color:var(--green)}.chip.a b{color:var(--amber)}.chip.b b{color:var(--blue)}.searchbox{position:relative;margin-bottom:14px}.searchbox input{width:100%;padding:12px 14px 12px 40px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:14px}.searchbox .ic{position:absolute;left:13px;top:12px;color:var(--muted)}.results{position:absolute;top:48px;left:0;right:0;background:var(--card2);border:1px solid var(--border);border-radius:10px;z-index:20;overflow:hidden}.results .r{padding:10px 14px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--border)}.results .r:last-child{border-bottom:none}.results .r:hover{background:var(--navy)}.results .r small{color:var(--muted);display:block;margin-top:2px}.results .none{padding:10px 14px;font-size:13px;color:var(--muted)}.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:780px){.cols{grid-template-columns:1fr}}.deptcol{background:#ffffff04;border:1px solid var(--border);border-radius:14px;padding:12px}.depthead{display:flex;align-items:center;gap:9px;padding:4px 4px 12px;border-bottom:1px solid var(--border);margin-bottom:12px;border-top:3px solid var(--border);border-radius:14px 14px 0 0}.depthead.nt{border-top-color:var(--nt)}.depthead.che{border-top-color:var(--che)}.depthead .dot{width:11px;height:11px;border-radius:50%}.depthead .nm{font-size:15px;font-weight:700}.depthead .nm small{font-weight:400;color:var(--muted);font-size:11.5px;margin-left:4px}.depthead .mini{margin-left:auto;font-size:11.5px;color:var(--muted);text-align:right}.depthead .mini b{color:var(--text)}.truck{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 13px;margin-bottom:9px;cursor:pointer}.truck:hover{border-color:var(--navy-light)}.trow{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.plate{font-weight:700;font-size:15px;min-width:80px}.badge{font-size:10.5px;padding:2px 7px;border-radius:20px;border:1px solid var(--border);color:var(--muted)}.badge.bwpt{border-color:var(--green);color:var(--green)}.badge.sub{border-color:var(--amber);color:var(--amber)}.tstatus{font-size:11.5px;margin-left:auto;text-align:right}.tstatus .st{font-weight:600}.st.run{color:var(--blue)}.st.fin{color:var(--green)}.st.wait{color:var(--muted)}.tstatus .upd{color:var(--muted);font-size:10.5px;display:block;margin-top:1px}.progress-area{margin-top:9px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pcount{font-size:12px;color:var(--muted);white-space:nowrap}.pcount b{color:var(--text)}.dots{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.dot2{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10.5px;border:2px solid var(--border);color:var(--muted);background:var(--bg)}.dot2.done{background:var(--green);border-color:var(--green);color:#06270f;font-weight:700}.dot2.cur{border-color:var(--blue);color:var(--blue)}.back{background:none;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:7px 14px;font-size:13px;margin-bottom:12px}.back:hover{color:var(--text);border-color:var(--text)}.dethead{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px}.conf{font-size:12px;margin-top:8px;color:var(--muted)}.mapbox{background:var(--card2);border:1px dashed var(--border);border-radius:12px;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:13px;gap:8px;margin-bottom:12px;text-align:center;padding:10px}.donebox{background:#14241a;border:1px solid #14532d;border-radius:12px;padding:14px 16px;margin-bottom:12px;font-size:13.5px;color:#86efac}.donebox b{color:#bbf7d0}.donebox .sub2{color:#5fa777;font-size:12px;margin-top:4px}.stop{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:8px;display:flex;gap:12px;align-items:flex-start}.stop.hl{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber)}.stop .num{width:28px;height:28px;border-radius:50%;background:var(--bg);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;color:var(--muted)}.stop.done .num{background:var(--green);border-color:var(--green);color:#06270f;font-weight:700}.stop.cur .num{border-color:var(--blue);color:var(--blue)}.stop .info{flex:1}.stop .nm{font-size:14px;font-weight:600}.stop .od{font-size:12px;color:var(--muted);margin-top:2px}.stop .stt{font-size:12px;margin-top:5px}.stt.done{color:var(--green)}.stt.cur{color:var(--blue)}.stt.pend{color:var(--muted)}.masked{opacity:.55}.disclaimer{font-size:11px;color:var(--muted);margin:14px 4px;text-align:center}.center{min-height:60vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--muted)}.spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--navy-light);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:28px;width:100%;max-width:360px}.login-card h1{font-size:20px;margin-bottom:4px}.login-card .sub{color:var(--muted);font-size:13px;margin-bottom:20px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.field input{width:100%;padding:11px 12px;border-radius:9px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px}.btn-primary{width:100%;background:var(--navy-light);color:#fff;border:none;border-radius:9px;padding:12px;font-size:14px;font-weight:600;margin-top:6px}.btn-primary:disabled{opacity:.5}.err{background:#450a0a;border:1px solid #7f1d1d;color:#fca5a5;border-radius:9px;padding:9px 12px;font-size:12.5px;margin-bottom:12px}.mockhint{font-size:11px;color:var(--muted);text-align:center;margin-top:16px;line-height:1.6}.etarow{display:flex;gap:12px;align-items:center;margin:10px 0;flex-wrap:wrap}.cbadge{font-size:12px;color:var(--text)}.bigeta{font-size:15px;font-weight:700}.qlist{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:4px 0;margin:8px 0 12px}.qitem{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;font-size:13px;border-bottom:1px solid #283548}.qitem:last-child{border-bottom:none}.qitem.mine{color:#facc15;font-weight:600}.podgrid{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}.podimg{width:150px}.podimg .img{width:150px;height:190px;border:1px solid var(--border);border-radius:10px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:44px;overflow:hidden}.podimg .img img{width:100%;height:100%;object-fit:cover}.podimg .img.clickable{cursor:zoom-in}.podimg .cap{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}.lb-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617d1;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.lb{background:var(--card);border:1px solid var(--border);border-radius:14px;max-width:780px;width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}.lb-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px;font-weight:600}.lb-head button{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer}.lb-img{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:#0b1322;min-height:300px}.lb-img img{max-width:100%;max-height:74vh;object-fit:contain;cursor:zoom-in}.lb-img img.zoomed{max-width:none;max-height:none;width:auto;cursor:zoom-out}.lb-ph{color:var(--muted);font-size:64px;text-align:center;padding:48px}.lb-ph div{font-size:13px;margin-top:12px}.lb-actions{display:flex;gap:10px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--border);flex-wrap:wrap}.btn-ghost{background:var(--card2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 14px;font-size:13px;text-decoration:none;cursor:pointer;display:inline-block}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.lb-note{font-size:11px;color:var(--muted);text-align:center;padding:0 16px 12px}
