:root{--navy:#14294b;--navy-deep:#0c1a30;--navy-mid:#1d3a66;--ink:#1c2b45;--muted:#7d879a;--faint:#939dae;--line:#e2e7ef;--line-soft:#f0f2f7;--bg:#f3f5f9;--panel:#ffffff;--amber:#c07a1f;--green:#2e7d4f;--red:#b3402e;--serif:Georgia,"Palatino Linotype","Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans)}.brandbar{background:linear-gradient(90deg,#0c1523,#0c1523 34%,#0c1523eb 46%,#0c15234d,#0c152338 86%,#0c152373),url(/assets/brand-bg-BIfIzu9G.jpg) right center / auto 100% no-repeat,#0c1523;color:#fff;padding:20px 30px;display:flex;align-items:center;gap:18px}.brand-divider{width:1px;align-self:stretch;background:#ffffff38;margin:6px}.crest{flex-shrink:0;opacity:.95}.kickline{letter-spacing:.3em;font-size:10.5px;color:#9fb0c9;text-transform:uppercase;margin-bottom:3px}.brandname{font-family:var(--serif);font-size:30px;line-height:1.1;letter-spacing:.01em}.tagline{font-family:var(--serif);font-size:12.5px;color:#b9c6da;margin-top:4px}.tagline b{font-style:italic;font-weight:400}.brandright{margin-left:auto;text-align:right;font-size:11px;letter-spacing:.34em;color:#8fa2c0;text-transform:uppercase;line-height:1.9}.crest img{display:block;width:82px;height:auto}.brandname .amp{color:#9db8d9;font-style:italic}.tagline i{font-weight:400}.brandbar{gap:26px}.vghead input.cell{color:#fff;font-family:var(--serif);font-size:17px;font-weight:600;min-width:140px;max-width:240px;padding:2px 6px;border:1px solid transparent;background:transparent;border-radius:3px}.vghead input.cell:hover{border-color:#ffffff59}.vghead input.cell:focus{background:#ffffff1a;border-color:#fff9;outline:none;color:#fff}.assignchip{border:1px solid #b9c3d4;color:#40506b;background:#f5f7fb;border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:700;white-space:nowrap;flex-shrink:0}.teamgrid-wrap{padding:10px 12px}.chipbtn{border:none;background:#e6ecf5;color:var(--navy);border-radius:3px;font-size:11px;font-weight:700;cursor:pointer;padding:2px 6px;line-height:1.2}.chipbtn.pinned{background:#fff2d9}.chipbtn:hover{background:var(--navy);color:#fff}.seg .seg-ct{background:#14294b14;border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:700;margin-left:4px;color:#5a6880}.seg.on .seg-ct{background:#ffffff38;color:#fff}.doclink{color:var(--navy);font-weight:600;text-decoration:none}.doclink:hover{text-decoration:underline}.menubtn{display:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,.1)}.navtoggle{display:none}.toolbar{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line);padding:10px 30px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{border:1px solid #cfd7e3;background:#fff;color:var(--ink);padding:7px 14px;border-radius:4px;font-size:13px;font-family:var(--sans);cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--navy);background:#f8fafc}.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.primary:hover{background:var(--navy-mid)}.btn.danger{color:var(--red)}.btn.big{font-size:15px;padding:10px 18px}.savestate{margin-left:auto;color:var(--faint);font-family:var(--serif);font-style:italic;font-size:12.5px}.shell{display:flex;align-items:stretch;min-height:calc(100vh - 110px)}.sidebar{width:248px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:16px 0 40px}.side-label{margin-top:18px;padding:16px 22px 8px;font-size:11.5px;letter-spacing:.24em;color:var(--navy);font-weight:700;text-transform:uppercase;border-top:1px solid var(--line);position:relative}.side-build{margin-top:18px;padding:10px 22px 18px;font-size:10.5px;color:var(--faint);border-top:1px solid var(--line)}.side-label:after{content:"";position:absolute;left:22px;bottom:4px;width:26px;height:2px;background:var(--amber)}.side-label:first-child{margin-top:0;border-top:none}.side-item{display:block;padding:9px 22px;cursor:pointer;border-left:3px solid transparent;color:var(--ink)}.side-item:hover{background:#f8fafc}.side-item.active{border-left-color:var(--navy);background:#f5f7fb}.side-item .name{font-family:var(--serif);font-size:14.5px}.side-item.active .name{font-weight:700}.side-item small{display:block;color:var(--faint);font-size:11.5px;margin-top:1px}.main{flex:1;min-width:0;padding:28px 36px 80px;max-width:1280px}.kicker{letter-spacing:.26em;font-size:11px;color:var(--faint);text-transform:uppercase;margin-bottom:7px}.pagetitle{font-family:var(--serif);font-weight:600;font-size:33px;margin:0 0 6px;color:var(--ink)}.pagesub{color:#677185;font-size:14px;margin:0 0 20px;max-width:760px}.pagehead{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.pagehead .grow{flex:1;min-width:260px}.tiles{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0 22px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 22px;min-width:132px}.tile .v{font-family:var(--serif);font-size:27px;color:var(--navy);line-height:1.15}.tile .l{font-size:10px;letter-spacing:.18em;color:var(--faint);text-transform:uppercase;margin-top:5px}.tile.warn{border-color:#e3cba4}.tile.warn .v{color:var(--amber)}.tile.good .v{color:var(--green)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;margin-bottom:24px;overflow:hidden}.panel-h{padding:13px 18px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.panel-h h3{margin:0;font-family:var(--serif);font-size:18.5px;font-weight:600}.panel-h .sub{color:var(--faint);font-size:12.5px}.panel-h .right{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.panel-b{padding:16px 18px}.tablewrap{overflow-x:auto}table.grid{width:100%;border-collapse:collapse;font-size:13.5px}.grid th{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafbfd;white-space:nowrap}.grid td{padding:7px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.grid tr:hover td{background:#fbfcfe}.grid td.num,.grid th.num{text-align:right}.grouphead td{background:#f2f5fa;border-bottom:1px solid var(--line);padding:9px 12px}.grouphead .gname{font-family:var(--serif);font-size:15.5px;font-weight:700;color:var(--navy)}.grouphead .gmeta{color:var(--muted);font-size:12px;margin-left:10px}.proplink{color:var(--navy);font-family:var(--serif);font-weight:600;cursor:pointer;white-space:nowrap}.proplink:hover{text-decoration:underline}.svc-chip{display:inline-block;background:#eef2f8;color:#40506b;border-radius:4px;padding:2px 8px;font-size:11.5px;font-weight:600;margin:1px 3px 1px 0;white-space:nowrap}input.cell,select.cell,textarea.cell{width:100%;border:1px solid transparent;background:transparent;font:inherit;font-size:13.5px;color:inherit;padding:4px 6px;border-radius:3px;min-width:60px}input.cell:hover,select.cell:hover,textarea.cell:hover{border-color:var(--line)}input.cell:focus,select.cell:focus,textarea.cell:focus{border-color:var(--navy);background:#fff;outline:none;box-shadow:0 0 0 2px #14294b14}input.cell.w-s{min-width:56px;max-width:90px}input.cell.w-m{min-width:110px}select.cell{max-width:110px}.xbtn{border:none;background:none;color:#c3ccd9;font-size:16px;cursor:pointer;padding:2px 7px;border-radius:3px;line-height:1}.xbtn:hover{color:var(--red);background:#fbf1ef}.xbtn.confirm{color:#fff;background:var(--red);font-size:11px;padding:4px 8px}.chk{width:34px;height:34px;border:2px solid #b9c3d4;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:#fff;flex-shrink:0;font-size:20px;color:#fff;-webkit-user-select:none;user-select:none;transition:background .12s,border-color .12s}.chk:hover{border-color:var(--green)}.chk:hover{border-color:var(--navy)}.chk.on{background:var(--green);border-color:var(--green)}.chk.sm{width:22px;height:22px;font-size:14px;border-radius:6px}.pill{border:1.5px solid #ddc79f;color:var(--amber);border-radius:999px;padding:6px 14px;font-size:12.5px;cursor:pointer;background:#fff;white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0}.pill.on{background:var(--amber);color:#fff;border-color:var(--amber)}.prio{border-radius:999px;padding:3px 11px;font-size:11px;font-weight:700;cursor:pointer;border:1px solid;letter-spacing:.03em;white-space:nowrap;-webkit-user-select:none;user-select:none}.prio.high{color:#b3402e;border-color:#e3b8b0;background:#fbeeeb}.prio.normal{color:#7d879a;border-color:#e2e7ef;background:#f6f8fb}.prio.low{color:#3a5a8c;border-color:#dbe6f4;background:#eef4fb}.trow.prio-high{box-shadow:inset 3px 0 0 var(--red)}.trow{display:flex;align-items:center;gap:12px;padding:12px 4px;border-top:1px solid var(--line-soft);font-size:15.5px;min-height:48px}.trow:first-child{border-top:none}.trow .ttext{flex:1;min-width:120px;display:flex;flex-direction:column;gap:2px}.trow .tmat{font-size:12px;color:#5a6880}.trow .trent{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:#8a4b1f;background:#fbe9db;border:1px solid #edc9ad;border-radius:20px;padding:1px 8px;vertical-align:middle}.trow.done{background:#f3f9f4;border-radius:6px}.trow.done .tt-main{text-decoration:line-through;color:#9aa4b5}.matbtn{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 8px;font-size:13px;cursor:pointer;flex-shrink:0;line-height:1}.matbtn.has{border-color:#c8b48a;background:#fdf6ec}.matbtn:hover{border-color:var(--navy)}.tdetail{display:flex;gap:12px;flex-wrap:wrap;padding:8px 2px 12px 60px;border-top:1px dashed var(--line-soft)}.tdetail label{display:flex;flex-direction:column;gap:4px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.tdetail .td-mat{flex:1 1 320px}.tdetail .td-cost{flex:0 0 130px}.tdetail input{border:1px solid var(--line);border-radius:6px;padding:7px 9px;font-size:13px;font-family:var(--sans)}.tdetail .td-rent{align-self:flex-end;border:1px solid #edc9ad;background:#fff;color:#8a4b1f;border-radius:8px;padding:8px 12px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:var(--sans);white-space:nowrap;text-transform:none;letter-spacing:0}.tdetail .td-rent.on{background:#fbe9db;border-color:#d99a63}.tdetail .td-rent:hover{border-color:#d99a63}.stopprog{height:7px;background:#eef2f8;border-top:1px solid var(--line-soft)}.stopprog-fill{height:100%;background:var(--green);transition:width .25s}.stopprog-fill.full{background:var(--green)}.unitchip{background:#eef2f8;color:#40506b;border-radius:4px;padding:3px 9px;font-size:12px;font-weight:700;min-width:64px;text-align:center;flex-shrink:0}.legend{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;background:#f5f8fc;border:1px solid #e0e8f2;border-radius:8px;padding:11px 16px;margin-bottom:16px;font-size:13.5px;color:#40506b}.legend .lg{display:flex;align-items:center;gap:8px}.legend .swatch{width:22px;height:22px;border:2px solid #b9c3d4;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;background:#fff;flex-shrink:0}.legend .swatch.on{background:var(--green);border-color:var(--green);color:#fff;font-size:14px}.legend .swpill{border:1.5px solid #ddc79f;color:var(--amber);border-radius:999px;padding:2px 10px;font-size:11.5px;background:#fff}.sec-label{font-size:13px;letter-spacing:.14em;color:#4a566e;font-weight:700;text-transform:uppercase;margin:20px 0 6px;display:flex;gap:8px;align-items:center}.sec-label .cnt{background:#e3e9f2;border-radius:999px;padding:1px 9px;color:#3d4a63;letter-spacing:0;font-weight:700}.impbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:2px 0 14px}.impbar-hint{font-size:12px;color:var(--faint)}.backbtn{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);color:var(--navy);border-radius:999px;padding:8px 16px;font-size:13.5px;font-weight:600;font-family:var(--sans);cursor:pointer;margin-bottom:14px}.backbtn:hover{background:var(--navy);color:#fff;border-color:var(--navy)}.minical{margin:10px 4px 6px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:8px}.minical .mc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:12px;font-weight:700;color:var(--navy)}.minical .mc-head button{border:none;background:#eef2f8;color:var(--navy);border-radius:5px;width:22px;height:22px;cursor:pointer;font-size:14px;line-height:1}.minical .mc-head button:hover{background:var(--navy);color:#fff}.mc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.mc-dow{font-size:9px;color:var(--faint);text-align:center;padding:2px 0;font-weight:700}.mc-empty{height:22px}.mc-day{font-size:11px;text-align:center;line-height:22px;height:22px;border-radius:4px;cursor:pointer;color:var(--ink)}.mc-day:hover{background:#eef2f8}.mc-day.sel{background:#dde6f3}.mc-day.today{outline:1.5px solid var(--amber);font-weight:700;color:var(--amber)}.mc-today{margin-top:8px;width:100%;border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px;font-size:11px;color:var(--navy);cursor:pointer;font-family:var(--sans)}.mc-today:hover{background:var(--navy);color:#fff}.wknav{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:10px}.wknav-arrow{border:1px solid var(--line);background:#f4f7fb;color:var(--navy);width:40px;height:40px;border-radius:8px;cursor:pointer;font-size:16px;line-height:1;flex:none;transition:.12s}.wknav-arrow:hover{background:var(--navy);color:#fff;border-color:var(--navy)}.wknav-mid{flex:1;text-align:center}.wknav-range{font-size:17px;font-weight:800;color:var(--navy);letter-spacing:.01em}.wknav-tag{display:inline-block;margin-top:2px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:none;border:none;cursor:pointer;font-family:var(--sans)}.wknav-tag.now{color:var(--green);cursor:default}.wknav-tag:not(.now):hover{color:var(--navy);text-decoration:underline}.wknav-calbtn{flex:none;border:1px solid var(--line);background:#f4f7fb;color:var(--navy);border-radius:8px;padding:0 14px;height:40px;cursor:pointer;font-size:13px;font-weight:600;font-family:var(--sans)}.wknav-calbtn:hover,.wknav-calbtn.on{background:var(--navy);color:#fff;border-color:var(--navy)}.wkcal-wrap{max-width:280px;margin:-6px 0 16px}.wkcal-wrap .minical{margin:0}.weeknote{background:#fff7e8;border:1px solid #e7d3a6;color:#7a5c17;border-radius:8px;padding:11px 14px;margin:0 0 16px;font-size:13.5px;line-height:1.5}.repctl{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px}.repctl-l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.repctl-live{font-size:12px;color:var(--muted);font-style:italic}.markall-row{margin:-2px 0 10px;padding-bottom:12px;border-bottom:1px dashed var(--line-soft);display:flex}.btn.confirm{background:var(--red);border-color:var(--red);color:#fff}.rep-sel{border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:14px;font-family:var(--sans);background:#fff;color:var(--ink);cursor:pointer}.seg-wrap{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-left:auto}.seg{border:none;background:#fff;color:var(--muted);padding:9px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--sans);border-left:1px solid var(--line)}.seg:first-child{border-left:none}.seg.on{background:var(--navy);color:#fff}.rcards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px}.rcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px}.rcard.rent{background:#fff8f2;border-color:#edc9ad}.rc-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}.rc-ic{font-size:18px}.rc-t{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.rc-big{font-family:var(--serif);font-size:34px;font-weight:800;color:var(--navy);line-height:1}.rcard.rent .rc-big{color:#8a4b1f}.rc-unit{font-size:16px;font-weight:600;color:var(--muted)}.rc-sub{font-size:13.5px;color:var(--ink);margin-top:5px;font-weight:600}.rc-note{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5}.catrow{border-top:1px solid var(--line-soft)}.catrow:first-child{border-top:none}.cathead{display:flex;align-items:center;gap:11px;padding:12px 2px;cursor:pointer}.cathead:hover{background:#f8fafc}.cat-ic{font-size:17px;width:22px;text-align:center}.cat-name{font-family:var(--serif);font-size:15.5px;font-weight:700;color:var(--navy)}.cat-meta{margin-left:auto;font-size:12.5px;color:var(--muted)}.cat-chev{color:var(--faint);width:16px;text-align:center;font-size:12px}.catbody{padding:2px 2px 10px 33px}.jl{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px dashed var(--line-soft);font-size:13.5px}.jl-b{font-weight:700;color:var(--navy);min-width:90px}.jl-u{color:var(--muted);min-width:60px;font-size:12px}.jl-t{flex:1}.jl-t.done{text-decoration:line-through;color:#9aa4b5}.jl-r{font-size:12px}.jl-c{color:#8a4b1f;font-weight:600;font-size:12.5px}.jl-s{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:20px}.jl-s.ok{background:#e6f4ea;color:var(--green)}.jl-s.op{background:#eef2f8;color:var(--muted)}.jl-g{color:var(--faint);font-size:11.5px;min-width:0}.jl-x{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:20px;background:#ffe1e1;color:#b02323}.rcard.clk{cursor:pointer}.rcard.clk:hover{border-color:var(--navy)}.rc-chev{margin-left:auto;color:var(--faint);font-size:12px}.rc-catbtn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;background:#eef2f8;color:var(--navy);border:1px solid #d7deea;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--sans)}.rc-catbtn:hover{background:var(--navy);color:#fff;border-color:var(--navy)}.rc-catbtn .cb-car{font-size:10px;transition:transform .15s}.rc-catbtn.on{background:var(--navy);color:#fff;border-color:var(--navy)}.rc-catbtn.on .cb-car{transform:rotate(180deg)}.rvb-in{display:flex;flex-direction:column;gap:4px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a4b1f;margin-top:10px}.rvb-in input{border:1px solid #edc9ad;border-radius:6px;padding:7px 9px;font-size:13px;font-family:var(--sans);max-width:150px;text-transform:none;letter-spacing:0}.rvb{margin-top:9px;font-size:12.5px;line-height:1.5;border-radius:8px;padding:8px 10px}.rvb.under{background:#eef4ff;color:#274b7a}.rvb.over{background:#e6f4ea;color:#1f6b3a}.tenpanel .tencat{margin-bottom:12px}.tencat-h{font-family:var(--serif);font-size:14px;font-weight:700;color:var(--navy);padding:6px 0 2px;border-bottom:1px solid var(--line-soft)}.tencat-n{display:inline-block;background:#eef2f8;color:var(--muted);border-radius:20px;font-size:11px;font-weight:700;padding:1px 8px;margin-left:4px;font-family:var(--sans)}.td-ten.on{background:#e9effb;border-color:#a9c2ee;color:#274b7a}@media (max-width:940px){.rcards{grid-template-columns:1fr}.seg-wrap{margin-left:0}.jl{flex-wrap:wrap}.jl-u{min-width:0}}@media (max-width:940px){.wknav{flex-wrap:wrap}.wknav-mid{order:-1;flex-basis:100%}.wknav-calbtn{flex:1}}.weeklabel{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:2px 0 8px}.daychips{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 20px}.daychip{border:1px solid #cfd7e3;background:#fff;border-radius:14px;padding:6px 14px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;align-items:center;line-height:1.25;text-align:center}.daychip.active{background:var(--navy);border-color:var(--navy);color:#fff}.daychip .dc-name{font-weight:600}.daychip .dc-date{font-size:11px;color:var(--faint)}.daychip.active .dc-date{color:#c7d2e6}.daychip .td{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);display:block;line-height:1;margin-bottom:1px}.daychip.active .td{color:#f0c98a}.wk th.day .th-date{display:block;font-size:10.5px;font-weight:600;color:var(--faint);letter-spacing:.02em;text-transform:none;margin-top:2px}.wk th.day.istoday,.wk th.day.istoday .th-date{color:var(--amber)}.stop{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:14px;overflow:hidden}.stophead{display:flex;gap:18px;align-items:center;padding:16px 20px;cursor:pointer;-webkit-user-select:none;user-select:none}.stophead:hover{background:#fafbfd}.stop.open .stophead{border-bottom:1px solid var(--line-soft)}.stopnum{width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--serif);font-size:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.routemark{display:flex;align-items:center;gap:14px;font-size:12.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--navy)}.routemark.start{margin:2px 0 12px}.routemark.finish{margin:12px 0 2px}.routemark .rm-dot{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;background:#e3e9f2;color:var(--navy)}.routemark.finish .rm-dot{background:#e6f0e9}.routemark .rm-label{color:var(--muted)}.stophead .body{flex:1;min-width:0}.stopbody{padding:8px 20px 16px}.stopstatus{font-size:13px;margin-top:3px;color:var(--muted)}.stopstatus b{color:var(--amber)}.chev{flex-shrink:0;font-size:13px;font-weight:600;color:var(--navy);background:#fff;border:1.5px solid var(--navy);border-radius:999px;padding:7px 16px;white-space:nowrap;transition:background .15s,color .15s}.stophead:hover .chev,.stop.open .chev{background:var(--navy);color:#fff}.stopname{font-family:var(--serif);font-size:21px;font-weight:600;color:var(--navy)}.stopaddr{color:var(--muted);font-size:13.5px;margin-top:1px}.stopnote{display:inline-block;background:#fdf6ec;border:1px solid #ecd9b8;color:#8a5f17;font-size:12.5px;border-radius:4px;padding:2px 9px;margin-top:6px}.alldone{color:var(--green);font-weight:600;font-size:14.5px;padding:10px 0}.bigcard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:34px 30px;text-align:center}.bigcard .icon{font-size:44px}.bigcard h2{font-family:var(--serif);font-size:26px;margin:10px 0 6px}.bigcard p{color:var(--muted);max-width:520px;margin:6px auto;font-size:15px}.todaybanner{background:linear-gradient(115deg,var(--navy-deep),var(--navy) 70%);border-radius:8px;color:#fff;padding:22px 26px;margin-bottom:20px}.todaybanner .k{letter-spacing:.26em;font-size:10.5px;color:#9fb0c9;text-transform:uppercase}.todaybanner h1{font-family:var(--serif);font-size:30px;margin:6px 0 4px;font-weight:600}.todaybanner p{margin:2px 0 0;color:#c6d2e4;font-size:15px}table.wk{width:100%;border-collapse:collapse;background:#fff;font-size:13px}.wk .band td{background:transparent;text-align:center;padding:0 4px 8px;border:none;font-family:var(--sans)}.wk .band .bandlbl{display:block;background:#17365d;color:#fff;border-radius:7px;padding:8px 6px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.wk th.day{border:1px solid #cfd7e3;padding:7px 4px;background:#fff;font-size:13px;text-align:center}.wk td.cell-day{border:1px solid #cfd7e3;vertical-align:top;padding:8px;width:14.28%;height:150px;background:#fff}.wkchip{display:flex;align-items:center;gap:4px;background:#f2f5fa;border:1px solid #dfe6f0;border-radius:4px;padding:5px 7px;margin-bottom:6px;font-size:12.3px}.wkchip .nm{flex:1;cursor:pointer;color:var(--navy);font-weight:600}.wkchip .nm:hover{text-decoration:underline}.wkpersonal{color:var(--muted);font-style:italic;font-family:var(--serif);font-size:12.5px;margin-bottom:6px}.wkadd{border:1px dashed #c3ccd9;background:none;color:var(--faint);border-radius:4px;font-size:11.5px;cursor:pointer;padding:3px 8px}.wkadd:hover{color:var(--navy);border-color:var(--navy)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.vcard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:15px 18px 14px;display:flex;flex-direction:column}.vcard .vname input{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--navy)}.vcard .frow{display:flex;align-items:center;gap:8px;margin-top:6px}.vcard .frow .fl{width:64px;flex-shrink:0;font-size:10px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase}.vcard .usage{margin-top:auto;padding-top:10px;border-top:1px solid var(--line-soft);font-size:12px;color:var(--muted)}.vcardhead{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.vcardname{font-family:var(--serif);font-size:17.5px;font-weight:700;color:var(--navy);flex:1;line-height:1.2}.linkbtn{border:none;background:none;color:#3a5a8c;font-size:12px;cursor:pointer;padding:2px 4px;font-family:var(--sans);white-space:nowrap}.linkbtn:hover{text-decoration:underline}.vinfo{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}.vinfo .irow{display:flex;gap:10px;font-size:13.5px;align-items:baseline}.vinfo .il{width:58px;flex-shrink:0;font-size:9.5px;letter-spacing:.12em;color:var(--faint);text-transform:uppercase;padding-top:2px}.vinfo .iv{flex:1;min-width:0;word-break:break-word;color:var(--ink)}.vinfo .iv a{color:#3a5a8c;text-decoration:none}.vinfo .iv a:hover{text-decoration:underline}.vinfo.empty{color:var(--faint);font-style:italic;font-size:13px}.panel-h h3.clean{font-family:var(--sans);font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--navy);position:relative;padding-left:13px}.panel-h h3.clean:before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:4px;border-radius:2px;background:var(--amber)}.ctr-upload{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:2px 0 12px}.ctr-upload .filebtn{display:inline-flex;align-items:center;cursor:pointer}.ctr-searchrow{margin:0 0 14px}.ctr-search{width:100%;max-width:520px;border:1px solid var(--line);border-radius:6px;padding:9px 12px;font-family:var(--sans);font-size:13px;background:#fff}.ctr-target{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 4px}.ctr-target select{border:1px solid var(--line);border-radius:6px;padding:7px 9px;font-family:var(--sans);font-size:13px;background:#fff}.cfolder{margin-bottom:16px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}.cfolder-head{background:linear-gradient(115deg,var(--navy-deep),var(--navy) 80%);color:#fff;padding:11px 16px;font-family:var(--serif);font-size:16px;font-weight:600;display:flex;align-items:center;gap:10px}.cf-count{margin-left:auto;font-family:var(--sans);font-size:12px;color:#a9b8d0;font-weight:400}.cfolder-body{padding:4px 16px 8px}.cvendor{padding:9px 0;border-top:1px solid var(--line-soft)}.cvendor:first-child{border-top:none}.cvendor-name{font-weight:700;color:var(--navy);font-size:13.5px;margin-bottom:3px}.crow{display:flex;align-items:center;gap:12px;padding:4px 0 4px 16px}.crow .cfile{flex:1;min-width:0;color:var(--navy);text-decoration:none;font-size:13.5px}.crow .cfile:hover{text-decoration:underline}.crow .cfn{color:var(--faint);font-weight:400}.csvc-head{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#4a566e;font-weight:700;margin:14px 0 2px;display:flex;align-items:center;gap:8px}.csvc-head:first-child{margin-top:6px}.csvc-n{background:#e3e9f2;border-radius:999px;padding:0 8px;font-size:10.5px;color:#3d4a63;font-weight:700}.krow{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line-soft);flex-wrap:wrap}.krow.khead{border-top:none;padding-bottom:2px}.krow.khead span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.krow .klabel{flex:1;min-width:170px;font-weight:600;color:var(--ink)}.krow.khead .klabel{font-weight:700}.krow .kc-amt{flex:0 0 108px}.krow .kc-freq{flex:0 0 116px}.krow .kc-unit{flex:0 0 150px}.krow .kc-type{flex:0 0 116px}.krow .kann{flex:0 0 96px;text-align:right;font-variant-numeric:tabular-nums;color:var(--navy)}.krow .kper{color:var(--faint);font-weight:400;font-size:11px}.krow .krate{color:var(--navy);font-weight:600;font-size:12.5px}.krow .kdash{color:#c3ccd9}.kcell{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-family:var(--sans);font-size:13px;background:#fff}.ctr-bar{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:2px 0 12px}.ctr-bar .ccg,.ctr-bar .ccfile{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ctr-bar .ccfile{padding-left:20px;border-left:1px solid var(--line)}.ctr-bar select,.ctr-bar input{border:1px solid var(--line);border-radius:6px;padding:7px 9px;font-family:var(--sans);font-size:13px;background:#fff}.uc-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.uc-row input[type=file]{font-size:12.5px}.uc-hint{font-size:12px;color:var(--faint)}.uploadcard{background:#fff;border:1px solid var(--line);border-radius:9px;padding:16px 18px;margin:4px 0 20px;box-shadow:0 1px 2px #1428500a}.uploadcard .uc-title{font-family:var(--serif);font-size:16px;color:var(--navy);font-weight:600;margin-bottom:12px}.uc-grid{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}.ucf{display:flex;flex-direction:column;gap:5px;flex:1 1 190px;min-width:150px}.ucf>span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.ucf>span em{text-transform:none;letter-spacing:0;color:#b3bccb;font-style:normal;font-size:11px}.ucf select,.ucf input[type=text],.ucf input:not([type]){border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-family:var(--sans);font-size:13px;background:#fff}.ucf input[type=file]{font-size:12px}.ucf-file{flex:1 1 240px}.ucf-btn{flex:0 0 auto}.uc-status{margin-top:11px;font-size:12.5px;color:var(--muted);min-height:16px}.uc-status.bad{color:var(--red)}.uc-status.ok{color:#2f7d4f;font-weight:600}.ctrsub{font-size:11.5px;color:var(--faint)}.ctrlink{white-space:normal}.btn-ghost2{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:5px;font-size:11.5px;padding:4px 11px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn-ghost2:hover{border-color:var(--navy);background:#f4f7fc}.vinfo .iv.blank{color:#c3ccd9}.grouphead-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:4px 0 16px;padding-bottom:9px;border-bottom:2px solid var(--navy)}.grouphead-title .gt-main{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--navy)}.grouphead-title .gt-sub{font-size:11.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.13em}.vgroup{margin-bottom:16px}.vghead{background:linear-gradient(115deg,var(--navy-deep),var(--navy) 80%);color:#fff;padding:11px 18px;border-radius:6px 6px 0 0;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vghead .vchev{color:#cdd9ec;font-size:13px;flex-shrink:0;width:14px}.vghead[data-act]{cursor:pointer}.vghead[data-act]:hover{background:linear-gradient(115deg,#0a1526,#16305a 80%)}.vghead .gname2{font-family:var(--serif);font-size:17px;font-weight:600}.vghead .gmeta2{color:#a9b8d0;font-size:12.5px}.btn-ghost{margin-left:auto;border:1px solid rgba(255,255,255,.4);background:none;color:#dbe4f2;border-radius:4px;font-size:11.5px;padding:4px 11px;cursor:pointer;font-family:var(--sans);white-space:nowrap}.btn-ghost:hover{background:#ffffff1f}.vgbody{border:1px solid var(--line);border-top:none;border-radius:0 0 6px 6px;background:#fff;padding:4px 18px 8px}.erow{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--line-soft);flex-wrap:nowrap}.erow:first-child{border-top:none}.erow-left{flex:1;min-width:0;display:flex;align-items:center;gap:10px}.bchip{background:#eef2f8;color:var(--navy);border-radius:4px;padding:4px 10px;font-size:12px;font-weight:700;cursor:pointer;min-width:98px;text-align:center;white-space:nowrap}.bchip:hover{background:#dfe8f4}.erow .svccol{flex-shrink:0;width:250px;display:flex;justify-content:flex-end}.erow .svc{font-weight:500;font-size:12.5px;color:#5a6880;background:#eef2f8;border:1px solid #e0e8f2;border-radius:999px;padding:3px 12px;white-space:nowrap}.erow .contactlink{flex-shrink:0;width:118px;font-size:11.5px;color:#3a5a8c;text-decoration:none;white-space:nowrap;font-weight:600;text-align:right}.erow .contactlink:hover{text-decoration:underline}.erow .costcol{flex-shrink:0;width:96px;display:flex;justify-content:flex-end}.erow .meta{color:var(--muted);font-size:12.5px;flex:0 1 auto;min-width:0}.erow .actions{display:flex;gap:6px;align-items:center;margin-left:auto}.costtag{background:#fdf6ec;border:1px solid #ecd9b8;color:#8a5f17;border-radius:4px;padding:3px 9px;font-size:12px;font-weight:600;white-space:nowrap}.erow .meta a{color:#3a5a8c;text-decoration:none}.erow .meta a:hover{text-decoration:underline}.vghead a{color:#cdd9ec;text-decoration:none}.vghead a:hover{text-decoration:underline;color:#fff}.edetail{background:#fbfcfe;border:1px solid var(--line-soft);border-radius:6px;padding:12px 14px;margin:8px 0;width:100%}.edetail input.cell,.edetail select.cell{border-color:#d7dee9;background:#fff}.addinfo{border:1px dashed #c3ccd9;background:none;color:var(--faint);border-radius:4px;font-size:11.5px;cursor:pointer;padding:4px 9px;font-family:var(--sans);min-width:148px;text-align:center;flex-shrink:0}.filechip{display:inline-flex;align-items:center;gap:8px;background:#eef2f8;border:1px solid #dfe6f0;border-radius:999px;padding:5px 7px 5px 12px;font-size:12.5px;color:var(--ink);margin:0 7px 7px 0;vertical-align:top}.filechip .fn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;font-weight:600}.filechip .ct{color:var(--faint);font-size:11px;white-space:nowrap}.filechip button{border:none;background:#d7e0ee;color:#40506b;border-radius:50%;width:19px;height:19px;line-height:1;cursor:pointer;font-size:13px;flex-shrink:0;padding:0}.filechip button:hover{background:var(--red);color:#fff}.addinfo:hover{color:var(--navy);border-color:var(--navy)}.vdetail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2px 34px}.vdetail-grid .frow{display:flex;align-items:center;gap:10px;margin:3px 0}.vdetail-grid .fl{width:62px;flex-shrink:0;font-size:10px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.filters .fsearch{margin-left:auto;min-width:230px}.scopebar{background:#fdf6ec;border:1px solid #ecd9b8;color:#7d5713;border-radius:7px;padding:9px 15px;margin:2px 0 14px;font-size:13px}.scopebar a{color:#3a5a8c;cursor:pointer;text-decoration:none;font-weight:700;margin-left:6px}.scopebar a:hover{text-decoration:underline}.filters input[type=text],.filters select{border:1px solid #cfd7e3;border-radius:4px;padding:8px 12px;font-size:13.5px;background:#fff;font-family:var(--sans)}.filters input[type=text]{min-width:220px}.flabel{font-size:11px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase}table.mx{border-collapse:collapse;font-size:12px;background:#fff;width:100%}.mx th{background:#17365d;color:#fff;padding:8px 6px;border:1px solid #10264a;font-size:11px;white-space:nowrap}.mx th.vh{text-align:left;padding-left:12px}.mx td{border:1px solid var(--line);padding:5px 6px;text-align:center;vertical-align:middle}.mx td.vn{text-align:left;font-family:var(--serif);font-weight:600;color:var(--navy);white-space:nowrap;padding-left:12px}.mx .dot{display:inline-block;background:#eef2f8;color:#40506b;border-radius:3px;padding:1px 5px;font-size:10.5px;font-weight:600;margin:1px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d192d80;display:none;align-items:center;justify-content:center;z-index:100;padding:16px}.overlay.show{display:flex}.modal{background:#fff;border-radius:8px;padding:24px;width:460px;max-width:100%}.modal h3{font-family:var(--serif);margin:0 0 14px;font-size:20px}.modal .mrow{margin-bottom:12px}.modal label{display:block;font-size:11px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase;margin-bottom:4px}.modal input,.modal select{width:100%;border:1px solid #cfd7e3;border-radius:4px;padding:9px 12px;font-size:14.5px;font-family:var(--sans)}.modal .mbtns{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.addrow{display:flex;gap:8px;align-items:center;padding:12px 0 2px;flex-wrap:wrap}.addrow input,.addrow select{border:1px solid #cfd7e3;border-radius:4px;padding:8px 11px;font-size:13.5px;background:#fff;font-family:var(--sans)}.notesbox{width:100%;border:1px solid var(--line);border-radius:6px;padding:12px 14px;font:italic 13.5px var(--serif);color:#5a6880;background:#fffdf7;min-height:60px}@media print{.brandbar,.toolbar,.sidebar,.noprint,.daychips{display:none!important}body{background:#fff}.main{padding:0;max-width:none}.panel,.stop,.bigcard{border:1px solid #999;break-inside:avoid}.todaybanner{background:#fff!important;color:#000;border:2px solid #17365d}.todaybanner .k,.todaybanner p{color:#333}.chk{border:2px solid #333}.chk.on{background:#333;border-color:#333}input.cell{border:none}}@media (max-width:940px){.shell{flex-direction:column}.sidebar{display:none}#navToggle:checked~.shell .sidebar{display:block;position:fixed;top:0;left:0;bottom:0;width:300px;max-width:86vw;overflow-y:auto;z-index:320;background:#fff;box-shadow:0 0 50px #08122673;border-right:1px solid var(--line);padding:12px 0 50px}.navback{display:none}#navToggle:checked~.shell .navback{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#08122673;z-index:310}.menubtn{display:inline-block!important}.side-item{padding:12px 22px}.main{padding:18px 16px 60px}.brandbar{padding:14px 16px}.brandright{display:none}.toolbar{padding:8px 12px}.stop{padding:14px;gap:12px}.daychips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.daychip{flex:0 0 auto}.trow{flex-wrap:wrap;gap:10px 12px;padding:14px 4px}.trow .ttext{flex:1 1 100%;order:3;min-width:0}.trow .chk{order:1}.trow .unitchip{order:2}.trow .pill{order:4;margin-left:auto}.trow .prio,.trow .matbtn{order:5}.trow .xbtn{order:6}.chk{width:38px;height:38px;font-size:22px}.pill{padding:8px 16px;font-size:13px}.chev{padding:9px 16px;font-size:14px}.stopname{font-size:19px}.stophead{gap:12px;padding:14px}.sec-label{font-size:13.5px}.addrow input,.addrow select,.addrow button{flex:1 1 100%}}.rolebar{padding:12px 22px 14px;border-bottom:1px solid var(--line);background:#f8fafc}.rolebar .rb-l{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}.rb-btn{width:100%;text-align:left;border:1.5px solid #cfd7e3;background:#fff;border-radius:6px;padding:9px 12px;font-size:13.5px;cursor:pointer;color:var(--ink);font-family:inherit}.rb-btn.ov{border-color:var(--navy);background:var(--navy);color:#fff}.rb-hint{display:block;font-size:11px;color:var(--faint);margin-top:6px;line-height:1.45}.vchip{border:1.5px solid #cfd7e3;color:#6b7688;border-radius:999px;padding:5px 12px;font-size:12px;background:#fff;white-space:nowrap;flex-shrink:0;-webkit-user-select:none;user-select:none;cursor:pointer}.vchip.live{border-color:var(--navy);color:var(--navy);font-weight:600}.vchip.on{background:#eaf4ee;border-color:var(--green);color:var(--green);font-weight:600}.trow.unver{box-shadow:inset 3px 0 #d9b25f}.ovstop{border:1px solid var(--line);border-radius:6px;background:var(--panel);margin-bottom:14px;overflow:hidden}.ovstop-h{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}.ovstop-h .nm{font-family:var(--serif);font-size:16.5px;color:var(--navy)}.ovstop-h .dy{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.ovstop-h .grow{flex:1;min-width:150px}.ovstat{font-size:12.5px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}.ovstat.ok{background:#eaf4ee;border-color:var(--green);color:var(--green);font-weight:600}.ovstat.wait{background:#fdf5e6;border-color:#e3cba4;color:var(--amber);font-weight:600}.ovstat.todo{background:#fff;color:var(--muted)}.ovbody{padding:2px 16px 12px}.ovempty{padding:12px 0;color:var(--muted);font-size:13.5px}.ckbtn{border:1.5px solid var(--navy);background:#fff;color:var(--navy);border-radius:6px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit}.ckbtn.done{border-color:var(--green);background:var(--green);color:#fff}.ckbtn.off{border-color:#cfd7e3;color:var(--faint);cursor:not-allowed;font-weight:400}.ckstamp{font-size:12px;color:var(--muted);white-space:nowrap}.ckstamp b{color:var(--navy);font-weight:600}.ovline{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-top:5px;flex-wrap:wrap}.ovline.ok{color:var(--green);font-weight:600}.ovline .ckbtn{padding:4px 10px;font-size:11.5px}.side-item,.proplink,.doclink{text-decoration:none}.modal{max-height:90vh;overflow-y:auto}.chk.selchk{box-shadow:0 0 0 3px var(--navy)}
