body{color:#12305a;-webkit-font-smoothing:antialiased;background:#eef4fb;margin:0;font-family:Noto Sans TC,sans-serif}a{color:#2563c9;text-decoration:none}a:hover{color:#1a4fa8}h1,h2,h3,h4,p{margin:0}.bp{color:#12305a;background-color:#eef4fb;background-image:linear-gradient(#2563c912 1px,#0000 1px),linear-gradient(90deg,#2563c912 1px,#0000 1px);background-size:40px 40px}.bp-deep{color:#fff;background-color:#1d5596;background-image:linear-gradient(#aad6ff29 1px,#0000 1px),linear-gradient(90deg,#aad6ff29 1px,#0000 1px);background-size:40px 40px}.bp-deep .dim{color:#cfe2f7}.bp-deep .faint{color:#a9c6e8}.bp-deep .tag{color:#9fd0ff}.mono{font-family:IBM Plex Mono,ui-monospace,monospace}.tag{letter-spacing:2px;color:#3a8fd9;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:11px}.dim{color:#4a6488}.faint{color:#7d93b2}.topbar{box-sizing:border-box;color:#fff;background:#17457f;border-bottom:3px solid #3a8fd9;flex-wrap:wrap;align-items:center;gap:24px;height:60px;padding:0 32px;display:flex}.topbar a{color:#d6e8fb}.topbar a:hover{color:#fff}.topbar .dim{color:#bcd5f0}.topbar .btn{color:#fff;background:0 0;border-color:#9fd0ff}.bp-deep .panel{color:#12305a}.bp-deep .panel .tag{color:#3a8fd9}.bp-deep .panel .dim{color:#4a6488}.bp-deep .panel .faint{color:#7d93b2}.logo{letter-spacing:2px;align-items:center;gap:10px;font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:600;display:flex;color:#9fd0ff!important}.logo b{letter-spacing:0;color:#fff;font-family:Noto Sans TC,sans-serif;font-weight:500}.proj{background:#ffffff14;border:1px solid #9fd0ff99;align-items:center;gap:8px;height:32px;padding:0 12px;font-size:13px;display:inline-flex;color:#fff!important}.proj .faint{color:#9fd0ff}.avatar{color:#17457f;box-sizing:border-box;background:#e7f0fb;border:1px solid #3a8fd9;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-family:IBM Plex Mono,monospace;font-size:12px;display:inline-flex}.topbar .avatar{color:#fff;background:#2d64a6;border-color:#9fd0ff}.side{box-sizing:border-box;background:#f7faff;border-right:1px solid #c9dbf0;flex-direction:column;flex:220px;max-width:220px;padding:16px 0;display:flex}.nav{color:#4a6488;border-left:3px solid #0000;align-items:center;gap:12px;height:42px;padding:0 20px;font-size:14px;display:flex}.nav .no{color:#7d93b2;width:22px;font-family:IBM Plex Mono,monospace;font-size:11px}.nav.on{color:#17457f;background:#e3eefb;border-left-color:#2563c9;font-weight:500}.nav.on .no{color:#2563c9}.main{box-sizing:border-box;flex-direction:column;flex:999 560px;gap:20px;min-width:0;max-width:1480px;padding:28px 32px;display:flex}.panel{box-sizing:border-box;background:#fff;border:1px solid #c9dbf0}.panel-h{background:#f4f8fd;border-bottom:1px solid #d6e6f8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.panel-h h2{color:#17457f;font-size:15px;font-weight:700}.panel-b{padding:16px}.sec{align-items:center;gap:16px;display:flex}.sec h2{color:#17457f;font-size:20px;font-weight:700}.sec .rule{background:#b9d2ee;flex:1;height:1px}.ac-cobalt{border-top:3px solid #2563c9}.ac-sky{border-top:3px solid #3a8fd9}.ac-cyan{border-top:3px solid #1a9cc4}.ac-steel{border-top:3px solid #5b7fa6}.btn{color:#2563c9;cursor:pointer;box-sizing:border-box;white-space:nowrap;background:#fff;border:1px solid #2563c9;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 18px;font-family:inherit;font-size:14px;font-weight:500;display:inline-flex}.btn-p{background:#2563c9;font-weight:700;color:#fff!important}.btn-d{color:#c8433a;border-color:#c8433a}.btn-sm{height:30px;padding:0 10px;font-size:12px}.btn-lg{height:48px;padding:0 28px;font-size:15px}.bp-deep .btn{color:#fff;background:0 0;border-color:#9fd0ff}.bp-deep .btn-p{background:#fff;border-color:#fff;color:#17457f!important}.st{letter-spacing:.5px;white-space:nowrap;background:#fff;border:1px solid;align-items:center;height:22px;padding:0 8px;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-flex}.st-wait{color:#2563c9;background:#eaf2fd}.st-rev{color:#a86b10;background:#fdf5e6}.st-back{color:#c8433a;background:#fdf0ee}.st-ok{color:#1f8a5b;background:#eaf7f0}.st-draft{color:#5b7fa6;background:#f2f6fb}.st-late{color:#fff;background:#c8433a;border-color:#c8433a}.late{color:#c8433a}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.lbl{letter-spacing:1px;color:#3a8fd9;font-family:IBM Plex Mono,monospace;font-size:11px}.in{color:#12305a;box-sizing:border-box;background:#fff;border:1px solid #b9d2ee;width:100%;height:40px;padding:0 12px;font-family:inherit;font-size:14px}.ta{resize:vertical;min-height:90px;padding:10px 12px}.box{box-sizing:border-box;background:#fff;border:1px solid #2563c9;flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.box.on{background:#2563c9}.drop{color:#3a8fd9;letter-spacing:1px;background:#f4f8fd;border:1px dashed #7fb0e6;justify-content:center;align-items:center;height:110px;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex}table.tb{border-collapse:collapse;width:100%;font-size:13px}.tb th{text-align:left;letter-spacing:1px;color:#3a8fd9;white-space:nowrap;background:#f4f8fd;border-bottom:1px solid #b9d2ee;padding:10px 12px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.tb td{vertical-align:middle;border-bottom:1px solid #e3edf8;padding:11px 12px}.tb tr.row-late td{background:#fdf3f1}.id{color:#2563c9;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:500}.loc{color:#5b7fa6;font-family:IBM Plex Mono,monospace;font-size:12px}.kpi{flex-direction:column;gap:4px;padding:16px 18px;display:flex}.kpi .n{color:#17457f;font-family:IBM Plex Mono,monospace;font-size:34px;font-weight:600;line-height:1.1}.steps{align-items:center;display:flex}.node{box-sizing:border-box;background:#fff;border:2px solid #2563c9;flex:none;width:12px;height:12px}.node.done{background:#2563c9}.node.now{background:#e0a33a;border-color:#e0a33a}.seg{background:#9cc3ec;flex:1;min-width:20px;height:2px}.phone{box-sizing:border-box;flex-direction:column;width:390px;min-height:844px;display:flex}.tabbar{background:#fff;border-top:1px solid #c9dbf0;grid-template-columns:repeat(4,minmax(0,1fr));height:64px;display:grid}.tabbar a{color:#7d93b2;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;display:flex}.tabbar a.on{color:#2563c9;font-weight:500;box-shadow:inset 0 3px #2563c9}*{box-sizing:border-box}html,body{min-height:100%}button,input,select,textarea{font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.in:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #3a8fd9}select.in{padding-right:8px}.in.ta{height:auto}.check-row{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.check-row input{accent-color:#2563c9;width:16px;height:16px;margin:0}.g2,.g3,.g4,.g5,.g6{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}.split{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.split>.wide{flex-direction:column;flex:2 460px;gap:20px;min-width:0;display:flex}.split>.narrow{flex-direction:column;flex:280px;gap:20px;min-width:0;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.scroll-x{overflow-x:auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head h1{color:#17457f;font-size:24px;font-weight:700}.alert{border:1px solid;padding:10px 14px;font-size:13px;line-height:1.6}.alert-err{color:#a3352d;background:#fdf0ee;border-color:#e9b3ad}.alert-ok{color:#17704a;background:#eaf7f0;border-color:#a9dcc1}.alert-info{color:#17457f;background:#eaf2fd;border-color:#b9d2ee}.empty{text-align:center;color:#7d93b2;padding:28px;font-size:13px}.badge{color:#fff;background:#c8433a;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-flex}.thumb{object-fit:cover;background:#f4f8fd;border:1px solid #c9dbf0;width:100%;height:150px;display:block}.chat-a{white-space:pre-wrap;border-left:2px solid #1a9cc4;padding-left:12px;font-size:14px;line-height:1.7}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.filters{grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr)) minmax(100px,.8fr) auto auto auto;align-items:center;gap:8px;display:grid}.filters .in{height:36px}.filters .f-chk{white-space:nowrap;color:#4a6488;font-size:13px}.filters .f-btn{gap:6px;display:flex}.filters .f-btn .btn{height:36px}@media (max-width:1400px){.filters{grid-template-columns:repeat(6,minmax(0,1fr))}.filters .f-q{grid-column:span 2}.filters .f-btn{grid-column:span 4;justify-content:flex-end}.hide-md{display:none}}.m-card{color:inherit;background:#fff;border-bottom:1px solid #e3edf8;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.m-card:hover{background:#f7faff}.m-title{color:#12305a;font-size:14px;line-height:1.45}.nowrap-ellipsis{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.tb td.nw,.tb th{white-space:nowrap}.segc{background:#fff;border:1px solid #b9d2ee;gap:0;min-height:40px;display:grid}.segc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.segc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.seg-opt{cursor:pointer;border-right:1px solid #d6e6f8;flex-direction:column;justify-content:center;gap:2px;min-height:40px;padding:6px 12px;display:flex;position:relative}.seg-opt:last-child{border-right:0}.seg-opt input{opacity:0;pointer-events:none;position:absolute}.seg-opt .seg-t{color:#17457f;white-space:nowrap;font-size:14px;font-weight:500}.seg-opt .seg-d{color:#7d93b2;font-size:11px;line-height:1.4}.seg-opt.on{background:#2563c9}.seg-opt.on .seg-t{color:#fff}.seg-opt.on .seg-d{color:#d6e8fb}.seg-opt:has(input:focus-visible){outline-offset:-2px;outline:2px solid #3a8fd9}.nt-r1{grid-template-columns:minmax(260px,auto) 150px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.nt-r1 .seg-opt .seg-d{display:none}.nt-types{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.nt-loc{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.nt-pair{align-items:center;gap:6px;display:inline-flex}.nt-pair .lbl{white-space:nowrap}.nt-pair select.in{width:88px;height:36px;padding:0 6px}.nt-date{align-items:center;gap:8px;display:flex}.nt-date .lbl{white-space:nowrap}.file-f{background:#f7faff;border:1px dashed #9cc3ec;flex-direction:column;gap:4px;min-width:0;padding:6px 8px;display:flex}.file-f input{max-width:100%;font-size:12px}.nt-actions{justify-content:flex-end;gap:8px;display:flex}.nt-form .panel-b{padding:12px 16px}.kv{gap:10px 16px;font-size:14px}.kv .field{gap:2px}.up-d>summary{list-style:none}.up-d>summary::-webkit-details-marker{display:none}.up-d:not([open])>summary{border-bottom:0}.up-row{grid-template-columns:160px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.up-file{min-width:0;font-size:12px}.inv-row{grid-template-columns:minmax(200px,2fr) repeat(2,minmax(120px,1fr)) 120px auto;align-items:end;gap:8px;display:grid}.pf-row{grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) minmax(200px,1.2fr) auto;align-items:end;gap:12px;display:grid}.rp-item{border-bottom:1px solid #e3edf8;flex-direction:column;gap:6px;padding:12px 16px;display:flex}.grid-row{grid-template-columns:96px minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:10px;display:grid}.grid-prev{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app{flex-direction:column;min-height:100vh;display:flex}.app-body{flex:1;min-height:0;display:flex}.tabbar-fixed,.only-mobile{display:none}@media print{.no-print{display:none!important}body{background:#fff}}@media (max-width:900px){.g4,.g5,.g6{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.side{display:none}.main{padding:16px 16px 88px}.topbar{flex-wrap:nowrap;gap:10px;height:auto;min-height:56px;padding:8px 12px}.topbar .proj{text-overflow:ellipsis;white-space:nowrap;max-width:42vw;line-height:30px;display:block;overflow:hidden}.in,.ta,select.in{font-size:16px}.check-row{min-height:44px}:is(label:has(>input[type=radio]),label:has(>input[type=checkbox])){min-height:36px}.nt-types{gap:2px 12px}.nt-types .lbl{width:100%}.tb td,.tb th{white-space:nowrap}.page-head p{font-size:11px!important}.topbar .hide-sm{display:none}.g2,.g3,.g4,.g5,.g6{grid-template-columns:minmax(0,1fr)}.g2.m2,.g3.m2,.g4.m2{grid-template-columns:repeat(2,minmax(0,1fr))}.g-keep2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.hide-sm{display:none!important}.only-mobile{display:block}.tabbar-fixed{z-index:20;height:64px;padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #c9dbf0;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar-fixed a{color:#7d93b2;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;display:flex}.tabbar-fixed a.on{color:#2563c9;font-weight:500;box-shadow:inset 0 3px #2563c9}.page-head h1{font-size:20px}.btn-lg{height:44px;padding:0 18px}.tb{font-size:12px}.g3.m2,.g4.m2,.g2.m2{grid-template-columns:repeat(2,minmax(0,1fr))}.nt-r1{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.nt-r1 .segc,.nt-r1 .nt-title,.nt-r1 select.in{grid-column:1/-1}.nt-loc{grid-template-columns:auto;gap:6px;display:grid}.nt-loc-l{display:none}.nt-pair{grid-template-columns:44px minmax(0,1fr) 10px minmax(0,1fr);gap:6px;display:grid}.nt-pair select.in{width:100%}.nt-date{grid-column:1/-1}.nt-date .in{flex:1}.segc-3 .seg-d{display:none}.seg-opt{text-align:center;align-items:center;padding:6px 8px}.nt-actions{z-index:5;background:#eef4fb;border-top:1px solid #c9dbf0;margin:0 -16px;padding:8px 16px;position:sticky;bottom:64px}.nt-actions .btn{flex:1}.td-split{flex-flow:column;gap:14px}.td-split>.wide,.td-split>.narrow{display:contents}.td-split .o1{order:1}.td-split .o2{order:2}.td-split .o3{order:3}.td-split .o4{order:4}.td-split .o5{order:5}.td-split .o7{order:7}.td-split .o8{order:8}.td-split .o9{order:9}.td-split .o10{order:10}.td-split .o11{order:11}.td-split>*>section{width:100%}.up-row{grid-template-columns:minmax(0,1fr) auto}.up-row .up-file{order:-1;grid-column:1/-1}.grid-row{grid-template-columns:76px minmax(0,1fr);gap:4px 8px}.grid-prev{grid-column:2}.filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.filters .f-q{grid-column:1/-1}.filters select.in,.filters input[name=floor]{grid-column:span 2}.filters .f-chk{min-height:36px;font-size:12px}.filters .f-btn{grid-column:span 2}.filters .f-btn .btn{flex:1;padding:0 8px}.g4.keep4{grid-template-columns:repeat(4,minmax(0,1fr))}.g4.keep4>*{text-align:center;padding-left:2px;padding-right:2px;font-size:12px}.inv-row{grid-template-columns:repeat(2,minmax(0,1fr))}.inv-row .field:first-child{grid-column:1/-1}.pf-row{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-row .field:nth-child(3){grid-column:1/-1}.page-head{flex-wrap:nowrap;align-items:center}.page-head .tag{display:none}}.arch-bar{color:#17457f;background:#eaf2fd;border:1px solid #b9d2ee;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:8px 12px;font-size:13px;line-height:1.6;display:flex}
