:root{--brand:#1D4E89;--brand-600:#163C6A;--rail:#15212C;--rail-hi:#1E2C3A;--rail-on:#253A4F;--amber:#E0A93B;--bg:#F3F5F7;--card:#ffffff;--line:#E3E7EC;--ink:#18212B;--muted:#5B6774;--ok:#1E7A4C;--warn:#9A5B07;--bad:#A3261A;--info:#2B5FA3;--saffron:#8A5A06;--radius:12px;--shadow:none;--gut:24px;--mono:"IBM Plex Mono",ui-monospace,Consolas,monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.app{display:flex;height:100vh;overflow:hidden}.rail{width:236px;flex:0 0 236px;background:var(--rail);color:#c7d0d9;display:flex;flex-direction:column}.rail .brand{display:flex;align-items:center;gap:10px;padding:20px 22px 12px;color:#fff}.rail .brand img{height:26px;filter:brightness(0) invert(1)}.rail .brand b{font-size:15px;letter-spacing:2.5px}.rail .brand span{font-size:10px;letter-spacing:2px;color:#8a96a3;display:block;margin-top:2px}.nav{flex:1;overflow-y:auto;padding:8px 12px}.nav .sec{font-size:10.5px;letter-spacing:1.6px;color:#8a99a8;text-transform:uppercase;padding:16px 10px 6px}.nav a{display:flex;align-items:center;gap:10px;padding:0 10px;height:40px;border-radius:8px;color:#c9d2db;font-size:14px;margin:1px 0}.nav a svg{width:17px;height:17px;opacity:.85}.nav a:hover{background:var(--rail-hi);color:#fff}.nav a.on{background:var(--rail-on);color:#fff;font-weight:600}.nav a .badge{margin-left:auto;background:var(--amber);color:var(--rail);font-size:11px;font-weight:700;padding:1px 7px;border-radius:10px}.rail .me{border-top:1px solid #24384C;color:#fff;padding:14px 18px;display:flex;align-items:center;gap:10px}.rail .me .av{width:34px;height:34px;border-radius:50%;background:#2c4459;color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600}.rail .me small{color:#8a96a3;display:block;font-size:11px}.rail .me .lo{margin-left:auto;color:#8a96a3;font-size:12px}.rail .me .lo:hover{color:#fff}.main{flex:1;overflow-y:auto}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;padding:16px var(--gut) 0}.tile{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px 12px 16px}.tile[class*=" t-"]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rail-c)}.tile.t-ok{--rail-c:var(--ok)}.tile.t-warn{--rail-c:var(--warn)}.tile.t-bad{--rail-c:var(--bad)}.tile.t-info{--rail-c:var(--info)}.tile.t-brand{--rail-c:var(--brand)}.tile .k{font-size:10.5px;line-height:14px;letter-spacing:.085em;font-weight:650;text-transform:uppercase;color:var(--muted);min-height:28px;display:flex;align-items:flex-end}.tile .v{font-size:24px;line-height:1;font-weight:600;letter-spacing:-.022em;white-space:nowrap;margin-top:6px;font-variant-numeric:tabular-nums}.tile .n{font-size:12px;line-height:16px;color:var(--muted);margin-top:6px;font-family:var(--mono)}.tile .n.ok{color:var(--ok)}.tile .n.warn{color:var(--warn)}.tile .n.bad{color:var(--bad)}.wrap{padding:16px var(--gut) 32px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}table.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:11px;letter-spacing:.4px;color:var(--muted);text-transform:uppercase;font-weight:600;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl th .thin{display:inline-flex;align-items:center;gap:6px}.tbl th .flt{opacity:.4;cursor:pointer}.tbl th .flt.on{opacity:1;color:var(--brand)}.tbl td{padding:12px 16px;border-bottom:1px solid #f0f2f4;font-size:13.5px}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover{background:#f9fafb}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.tbl .cust b{display:block}.tbl .cust small{color:var(--muted)}.sar{border:none;background:none;color:var(--muted);padding:0 2px}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;white-space:nowrap;padding:3px 10px;border-radius:20px;background:#eef1f4;color:var(--ink)}.pill .d{width:7px;height:7px;border-radius:50%;background:currentColor}.pill.info{background:#e4edf8;color:var(--info)}.pill.warn{background:#fbf0dc;color:var(--warn)}.pill.brand{background:#e5edf1;color:var(--brand)}.pill.saffron{background:#f7ecd6;color:var(--saffron)}.pill.ok{background:#e2f2e9;color:var(--ok)}.pill.bad{background:#fbe5e2;color:var(--bad)}.pill.txt{background:none;padding:3px 0}.pill.txt .d{display:none}.pop{position:absolute;z-index:50;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px #10182824;padding:8px;min-width:170px}.pop select,.pop input{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182859;z-index:60}.drawer{position:fixed;top:0;right:0;height:100vh;width:min(560px,94vw);background:#fff;z-index:61;display:flex;flex-direction:column;box-shadow:-8px 0 30px #10182824}.drawer .dh{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.drawer .dh h2{margin:0;font-size:18px}.drawer .db{flex:1;overflow-y:auto;padding:18px 22px}.drawer .df{border-top:1px solid var(--line);padding:14px 22px;display:flex;align-items:center;gap:10px}.drawer .df .btn.pri{margin-left:auto}.kv{display:grid;grid-template-columns:120px 1fr;gap:8px 14px;margin-bottom:18px}.kv .k{color:var(--muted)}.kv input,.kv select{width:100%;height:38px;padding:0 12px}.sec-h{font-size:14px;font-weight:600;color:var(--ink);margin:20px 0 10px}.modal .sec-h{font-size:16px;margin:0}.item-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #f0f2f4}.act{font-size:13px;padding:8px 0;border-bottom:1px solid #f4f5f7;color:var(--ink)}.act small{color:var(--muted);display:block}.field{margin-bottom:12px}.field label{display:block;font-size:13px;font-weight:500;color:#3d4855;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:0 12px}.field textarea,.tl-add textarea{padding:10px 12px}.pform{display:grid;gap:16px}.pform .card-s .sec-h:first-child{margin-top:0}.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px 14px}.pgrid .w2{grid-column:span 2}.pgrid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:#3d4855;min-width:0}.pgrid input,.pgrid select{height:40px;width:100%;padding:0 12px}.pgrid input[type=file]{padding:0;height:40px}.pgrid label.chk{flex-direction:row;align-items:center;gap:8px;align-self:end;height:40px;font-size:13px;color:var(--ink)}.plines{display:grid;gap:12px}.pline{border:1px solid var(--line);border-radius:12px;padding:14px 16px 16px;background:#fff;display:grid;gap:14px}.pline .ph{display:flex;align-items:center;gap:12px}.pline .amt{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums}.pfoot{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px}.ptotal{margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}.plist{margin:8px 0 0;padding-left:18px;display:grid;gap:4px;font-size:13px}@media (max-width:700px){.pgrid .w2{grid-column:auto}.ptotal{margin-left:0;flex-basis:100%;text-align:left}.pfoot .btn.pri{flex-basis:100%}}.login{min-height:100vh;display:flex;flex-wrap:wrap;background:var(--bg)}.login .lside{flex:1 1 420px;background:var(--rail);color:#c9d2db;padding:56px 64px;display:flex;flex-direction:column;gap:28px}.login .lside img{width:132px;filter:brightness(0) invert(1)}.login .lside h2{margin:0;color:#fff;font-size:34px;font-weight:600;line-height:1.2;max-width:420px;text-wrap:balance}.login .lside ul{list-style:none;padding:0;margin:0;font-size:15px;display:grid;gap:12px}.login .lside li{display:flex;gap:10px;align-items:center}.login .lside li svg{color:var(--amber);flex:none}.login .lform{flex:1 1 480px;display:flex;align-items:center;justify-content:center;padding:48px 24px}.login .box{width:100%;max-width:400px;display:flex;flex-direction:column;gap:4px}.login h1{font-size:26px;font-weight:600;margin:0}.login p{color:var(--muted);margin:0 0 16px;font-size:14px}.login .box p.small{text-align:center;margin:12px 0 0;font-size:12.5px}.login .field input{height:46px;font-size:15px}@media (max-width:700px){.login .lside{padding:28px 20px;gap:14px}.login .lside h2{font-size:22px}.login .lside ul{display:none}}.login .err{background:#fbe9e7;color:var(--bad);padding:8px 12px;border-radius:7px;font-size:13px;margin-bottom:12px}.muted{color:var(--muted)}.empty{padding:60px;text-align:center;color:var(--muted)}.st{flex:1;text-align:center;position:relative;font-size:11px;line-height:1.3;color:var(--muted)}.st:before{content:"";position:absolute;top:14px;left:-50%;width:100%;height:2px;background:var(--line)}.st:first-child:before{display:none}.st.done:before,.st.cur:before{background:#1f9d55}.st .dot{position:relative;width:28px;height:28px;border-radius:50%;margin:0 auto 4px;display:grid;place-items:center;font-weight:700;font-size:13px;background:#fff;border:2px solid #d5dae0;color:var(--muted)}.st.cur{color:var(--brand);font-weight:600}.st.cur .dot{background:var(--brand);border-color:var(--brand);color:#fff}.st.done{color:var(--ink)}.st.done .dot{background:#e4f3ea;border-color:#1f9d55;color:var(--ok)}.small{font-size:12px}.drawer.wide{width:min(940px,96vw)}.drawer .dh{align-items:flex-start}.jgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}@media (max-width:900px){.jgrid{grid-template-columns:minmax(0,1fr)}}.jgrid>*{min-width:0}.card-s{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}.card-s .sec-h:first-child{margin-top:0}.jside .kv{grid-template-columns:88px 1fr;gap:6px 10px;margin-bottom:10px}.st{font-size:12px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 14px}.tabs button{border:none;background:none;padding:8px 12px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.acts{display:flex;flex-wrap:wrap;gap:8px}.tbl td .sm{font-size:12px;color:var(--muted)}.keybox{background:#fbf0dc;border:1px solid #f0dcb0;border-radius:8px;padding:10px 12px;margin:0 var(--gut) 0;word-break:break-all}.toolbar{display:flex;flex-wrap:wrap;gap:8px;padding:12px var(--gut) 0;align-items:center}.toolbar input,.toolbar select{height:36px;padding:0 12px}@media (max-width:700px){.phead,.tiles,.wrap,.toolbar{padding-left:16px;padding-right:16px}.wrap{overflow-x:auto}.tiles{grid-template-columns:1fr 1fr;gap:10px}.tile .v{font-size:20px}}.phead{position:sticky;top:0;z-index:20;background:var(--bg);padding:20px var(--gut) 0}.ptop{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding-bottom:12px}.phead h1{margin:0;font-size:22px;line-height:28px;font-weight:600;color:var(--ink)}.phead .sub{color:var(--muted);font-size:12px;line-height:17px;margin-top:2px}.ptools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tool{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 14px;border:1px solid #D3DAE2;background:#fff;border-radius:10px;box-shadow:0 1px 2px #1018280d;font:inherit;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap}.tool svg{width:14px;height:14px;color:#676f7a}.tool:hover{background:#f9fafc}.tool:disabled{opacity:.6;cursor:default}.phead .tabs{margin:0;gap:2px;border-bottom:1.5px solid var(--line)}.phead .tabs a{font-size:13px;padding:6px 14px 8px;margin-bottom:-1.5px;color:var(--muted);border-bottom:2px solid transparent}.phead .tabs a:hover{color:var(--ink)}.phead .tabs a.on{color:var(--ink);font-weight:500;border-bottom-color:var(--brand)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.err{background:#fbe9e7;color:var(--bad);padding:8px 12px;border-radius:7px}.note{background:#e4f3ea;color:#14532d;padding:8px 12px;border-radius:7px}.tbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}.tbar-l,.tbar-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sel{border:1px solid var(--line);border-radius:7px;padding:6px 9px;font:inherit;font-size:13px;background:#fff;color:var(--ink)}.card{overflow:visible;scroll-margin-top:130px}.pop.menu{top:110%;display:flex;flex-direction:column;padding:6px}.pop.menu>button{border:none;background:none;text-align:left;padding:7px 10px;border-radius:6px;font-size:13px;color:var(--ink)}.pop.menu>button:hover,.pop.menu>button.on{background:#f1f4f6}.colrow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 4px;font-size:13px;cursor:pointer}.colrow input{width:auto!important;margin-right:6px}.tbl th .flt{vertical-align:middle}.tfoot{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}.bar{display:grid;grid-template-columns:150px minmax(0,1fr) 40px 110px;gap:10px;align-items:center;font-size:13px}.bar .bt{height:10px;background:#f0f2f4;border-radius:5px;overflow:hidden}.bar .bf{display:block;height:100%;background:var(--muted);border-radius:5px}.bar .bf.info{background:var(--info)}.bar .bf.warn{background:var(--warn)}.bar .bf.brand{background:var(--brand)}.bar .bf.ok{background:var(--ok)}.bar .bf.saffron{background:var(--saffron)}.bar .bf.bad{background:var(--bad)}.bar .bn,.bar .bm{text-align:right;font-variant-numeric:tabular-nums}.bar .bm{color:var(--muted)}@media (max-width:700px){.bar{grid-template-columns:110px minmax(0,1fr) 32px}.bar .bm{display:none}}@media print{.rail,.mtop,.ptools,.tbar-r,.tfoot,.flt{display:none!important}.app,.main{display:block;height:auto;overflow:visible}.phead{position:static}body{background:#fff}.card,.tile{box-shadow:none}}.tbar{padding:14px 16px 12px;border-bottom:none}.tbar .ttl{font-size:14px;line-height:19px;font-weight:500;color:var(--ink)}.tbar .ttl+.muted{font-size:12px}.tbar .btn.small{height:28px;font-size:11.5px;font-weight:600;padding:3px 10px;gap:4px;border-radius:8px;border-color:#cbd3dc;color:var(--muted);background:#fff}.tbar .btn.small:hover{background:#f9fafc}.tbar .btn.small svg{width:11px;height:11px}.tbar .sel{font-size:11.5px;padding:4px 8px;border-radius:7px}.card:has(>.tbar) .tbl th{font-size:10.5px;line-height:14px;letter-spacing:.085em;font-weight:650;padding:12px 16px;background:#fff;border-bottom:1px solid #cbd3dc}.card:has(>.tbar) .tbl td{font-size:11px;line-height:15px;padding:10px 16px;color:#33414f;border-bottom:1px solid var(--line)}.card:has(>.tbar) .tbl tbody tr:nth-child(2n) td{background:#f5f7fa}.card:has(>.tbar) .tbl tbody tr:hover td{background:#eef2f6}.card:has(>.tbar) .tbl .cust b{font-weight:500;color:var(--ink)}.card:has(>.tbar) .tbl .cust small{font-size:10.5px}.card:has(>.tbar) .tbl .pill{font-size:10.5px;padding:2px 8px}.card:has(>.tbar) .tbl th .flt{opacity:1;color:#676f7a;width:12px;height:12px}.card:has(>.tbar) .tbl th .flt.on{color:var(--brand)}.card:has(>.tbar) .tfoot{justify-content:space-between;padding:12px 16px;font-size:12px}.pager{display:flex;gap:8px}.pager button{border:1px solid #D5DBE2;background:#fff;border-radius:8px;padding:4px 12px;font:inherit;font-size:13px;color:#33414f}.pager button:hover:not(:disabled){background:#f9fafc}.pager button:disabled{opacity:.4;cursor:default}.tl-add{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-bottom:16px;margin-bottom:6px;border-bottom:1px solid var(--line)}.tl-add textarea{width:100%;border:1px solid #cbd3dc;border-radius:8px;padding:9px 11px;font:inherit;font-size:13px;resize:vertical}.tl2{list-style:none;margin:0 0 10px;padding:0}.tl2 li{position:relative;display:flex;gap:12px;padding:12px 0}.tl2 li:not(:last-child):after{content:"";position:absolute;left:13px;top:40px;bottom:-12px;width:1.5px;background:#cbd3dc}.tl2 .dot{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef2f6;color:var(--muted)}.tl2 .k-stage .dot{background:var(--brand);color:#fff}.tl2 .k-sync .dot{background:#e6eef8;color:var(--info)}.tl2 .bad .dot{background:#fbeaea;color:var(--bad)}.tl2 .ev{min-width:0;flex:1;padding-top:4px}.tl2 .meta{font-size:11.5px;color:var(--muted);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.tl2 .meta b{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:650;color:var(--ink)}.tl2 .txt{font-size:13px;color:var(--ink);margin-top:3px;overflow-wrap:anywhere;white-space:pre-wrap}.tl2 .k-comment .txt{background:#f5f7fa;border-radius:8px;padding:8px 11px;margin-top:6px}.tl2 .bad .txt{color:var(--bad)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 16px;border:1px solid #D3DAE2;background:#fff;border-radius:10px;box-shadow:0 1px 2px #1018280d;font:inherit;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;cursor:pointer;transition:background .12s,border-color .12s,filter .12s}.btn svg{width:14px;height:14px;flex:none}.btn:hover{background:#f5f7fa;border-color:#b9c2cc}.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}.btn.pri:hover{background:var(--brand-600);border-color:var(--brand-600)}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.warn{background:var(--warn);border-color:var(--warn);color:#fff}.btn.ok:hover,.btn.warn:hover{filter:brightness(.93)}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted);box-shadow:none}.btn.ghost:hover{background:#eef2f6;color:var(--ink)}.btn.danger{border-color:#efc4bf;background:#fff;color:var(--bad)}.btn.danger:hover{background:#fdf3f2;border-color:var(--bad)}.btn.small{height:30px;padding:0 11px;font-size:12px;border-radius:8px}.btn:disabled,.btn:disabled:hover{opacity:.5;cursor:not-allowed;filter:none}.picker{margin-top:12px;padding:12px;background:#f7f8fa;border-radius:8px}.ledger{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.lg-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 16px;background:#f9fafc;border-bottom:1px solid var(--line);font-size:13.5px}.lg-scroll{overflow-x:auto}.lgt{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}.lgt th{font-size:10.5px;letter-spacing:.085em;text-transform:uppercase;font-weight:650;color:var(--muted);text-align:left;padding:10px 12px;border-bottom:1px solid #cbd3dc;white-space:nowrap}.lgt td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.lgt th+th,.lgt td+td{border-left:1px solid var(--line)}.lgt .r{text-align:right}.lgt .cell{width:100%;max-width:80px;border:1px solid transparent;border-radius:6px;padding:5px 7px;font:inherit;text-align:right;background:transparent}.lgt .cell:focus{border-color:var(--brand);background:#fff;outline:none}.lg-add{padding:4px 16px 14px}.lg-add .picker{background:transparent;padding:0}.lg-foot{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-top:14px}.totals{background:#f5f7fa;border-radius:10px;padding:14px 18px;width:min(420px,100%);display:grid;gap:12px;font-size:13px}.totals .tr{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center}.totals .tr .num{text-align:right;min-width:80px}.totals .tr.tot{border-top:1px solid #cbd3dc;padding-top:12px;font-size:15px;font-weight:600}.totals .dsel{display:flex;gap:6px}.totals select,.totals input{height:36px;padding:0 10px;min-width:0;width:100%}.totals .full{grid-column:2/4}.pick-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) 72px auto;gap:8px;align-items:end}.pick-row .field{margin:0}.pick-row .btn{height:36px}.pick-row .btn.icon{width:36px;padding:0;justify-content:center}.picker>.muted{margin-top:6px}@media (max-width:640px){.pick-row{grid-template-columns:1fr 1fr}.pick-row .field:first-child{grid-column:1/-1}}.lgt .acts-cell{white-space:nowrap;padding:6px 8px}.lgt .acts-cell .btn{padding:0 7px}.lgt tr.editing td{background:#f5f9fc}.lgt .cell{border-color:#cbd3dc;background:#fff}.pick-row label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.totals .tr.tot:only-child{border-top:none;padding-top:0}.addr{position:relative;min-width:0}.addr-row{display:flex;gap:4px;align-items:center}.addr-row input{flex:1;min-width:0}.addr-list{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px #10182824;max-height:280px;overflow-y:auto}.addr-list li{padding:8px 10px;border-radius:6px;font-size:13px;cursor:pointer}.addr-list li:hover{background:#f5f7fa}.addr-list li.gattr{cursor:default;text-align:right;padding:4px 10px}.addr-list li.gattr:hover{background:none}.addr-list li.hi{background:#eef2f6}.addr-list .add-new{display:inline-flex;align-items:center;gap:6px;color:var(--brand);font-weight:600}.addr-list li .small{margin-top:2px}.pgroups tr.pg td{background:#f7f9fb;font-size:13px}.pgroups tr.pg:hover td{background:#eef2f6}.pgroups .pg-name{display:inline-flex;align-items:center;gap:6px}.pgroups tr.ps td:first-child{padding-left:34px}.pgroups td.r{text-align:right}.size-rows{display:grid;grid-template-columns:1fr 1fr 110px 32px;gap:6px;align-items:center}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}h2{margin:0;font-size:15px;font-weight:600}.btn.big{height:46px;font-size:15px;width:100%}.card,.card-s,.ledger{border-radius:12px}.field input,.field select{height:40px}.field input[type=file]{height:auto;padding:0}.rail a.me{text-decoration:none;color:inherit}.rail a.me:hover,.rail a.me.on{background:var(--rail-hi)}.mtop{display:none}@media (max-width:700px){.app{flex-direction:column}.mtop{display:flex;align-items:center;gap:12px;background:var(--rail);color:#fff;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px));flex:none;position:sticky;top:0;z-index:40}.mtop button{width:40px;height:40px;border:none;background:transparent;color:#fff;display:grid;place-items:center;border-radius:8px}.mtop b{flex:1;letter-spacing:2.5px;font-size:15px}.mtop .av{width:34px;height:34px;border-radius:50%;background:#2c4459;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;text-decoration:none}.rail{position:fixed;z-index:62;top:0;bottom:0;left:0;width:264px;transform:translate(-100%);transition:transform .2s}.menu-open .rail{transform:none}:root{--gut:16px}}.ov{display:flex;flex-direction:column;gap:16px}.strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden}.strip a{padding:14px 20px;border-right:1px solid #EFF2F5;display:grid;grid-template-rows:auto auto 22px;gap:4px;align-content:start;color:inherit;text-decoration:none}.strip a:last-child{border-right:none}.strip a:hover{background:#f8fafb}.strip .k{font-size:12.5px;color:var(--muted)}.strip .v{font-size:26px;font-weight:600;line-height:1.2}.strip a>:last-child{align-self:center;justify-self:start}.strip .bad{color:var(--bad)}.ov-cols{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(340px,1fr);gap:16px;align-items:stretch}.ov-side{display:flex;flex-direction:column;gap:16px;min-width:0}.ov-side .card:last-child{flex:1}.ov .card{margin:0}.card .hd{display:flex;align-items:center;justify-content:space-between;gap:10px;height:52px;padding:0 20px}.card.pad{padding:0 20px 12px}.card.pad .hd{padding:0}.hd h2{display:flex;align-items:center;gap:8px}.task{display:grid;grid-template-columns:200px minmax(0,1fr) 150px;align-items:center;gap:16px;padding:12px 20px;border-top:1px solid #EFF2F5}.task .pill{justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task .who{min-width:0;color:inherit;text-decoration:none}.task .who b{display:block}.task .who span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.task .btn{width:100%}.ov .bar{grid-template-columns:130px minmax(0,1fr) 28px 80px;padding:6px 0}.ov .bar .bm{font-size:12.5px}.dl{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #EFF2F5;color:inherit;text-decoration:none}.dl>:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:1100px){.ov-cols{grid-template-columns:minmax(0,1fr)}}@media (max-width:700px){.strip{grid-template-columns:repeat(2,minmax(0,1fr))}.strip a{border-bottom:1px solid #EFF2F5}.task{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.task .pill{grid-column:1/-1}.task .btn{width:auto}}.fchips{display:flex;flex-wrap:wrap;gap:8px;padding:16px var(--gut) 0}.fchip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;border:1px solid #D5DBE2;background:#fff;font:inherit;font-size:13px;font-weight:600;color:#3e4a57;cursor:pointer}.fchip b{color:var(--ink)}.fchip span{color:var(--muted);font-weight:400;font-size:12px}.fchip.bad b{color:var(--bad)}.fchip:hover{border-color:#b9c2cc}.fchip.on{background:var(--rail);border-color:var(--rail);color:#fff}.fchip.on b,.fchip.on span{color:#fff}.co{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.co-main{flex:2 1 560px;min-width:0;display:flex;flex-direction:column;gap:16px}.co-main>.card-s,.co-main>.ledger{margin:0}.co-row{display:flex;flex-wrap:wrap;gap:0 12px}.co-row>*{flex:1 1 200px;min-width:0}.sh{display:flex;align-items:center;gap:10px;margin-bottom:12px}.stepn{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;background:#eef1f4;color:#3e4a57;flex:none}.stepn.done{background:var(--ok);color:#fff}.co-sum{flex:1 1 280px;min-width:0;position:sticky;top:96px;display:flex;flex-direction:column;gap:12px;margin:0}.sum-kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px}.sum-kv>:nth-child(2n){text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sum-kv.tot{border-top:1px solid var(--line);padding-top:12px;font-size:16px}.prof{display:flex;flex-direction:column;gap:16px;max-width:880px}.prof .card-s{margin:0;padding:20px}.who-h{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px}.who-h .av{width:56px;height:56px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:600}.who-h b{font-size:18px}.who-h .pill{margin-left:auto}.row-h{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}.row-h .btn{margin-left:auto}.pop.menu>button.bad{color:var(--bad)}.pop.menu>a{padding:7px 10px;border-radius:6px;font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap}.pop.menu>a:hover{background:#f1f4f6}.pop.menu>button{white-space:nowrap}.pill.live .d{animation:pulse 1.8s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion:reduce){.pill.live .d{animation:none}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#10182859;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;cursor:default}.modal{width:min(460px,100%);padding:18px 20px;display:grid;gap:12px;text-align:left;font-weight:400}.row-end{display:flex;gap:8px;justify-content:flex-end}.bgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));gap:16px}.bcard{padding:16px 18px;min-width:0}.bcard h3{margin:0;font-size:15px}.bcard-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.bcard-h>:first-child{flex:1}.bgrid>.bcard:last-child:nth-child(odd){grid-column:1/-1}.bcard-t{display:flex;align-items:center;gap:8px;flex-shrink:0}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;padding:3px;background:#f1f4f7}.seg button{border:0;background:none;font:inherit;font-size:13px;padding:5px 14px;border-radius:7px;color:var(--muted);cursor:pointer}.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #00000014;font-weight:600}.bempty{padding:40px 0;text-align:center}.btable{max-height:300px;overflow:auto}.btable .tbl th.r{text-align:right}.btable .tbl tbody tr{cursor:default}.bchart{position:relative}.bchart svg{width:100%;height:auto;display:block}.bchart .grid{stroke:#eef1f4}.bchart .cross{stroke:#c5ccd4;stroke-dasharray:3 3}.bchart .axis{font-size:11px;fill:var(--muted)}.bchart .dlabel{font-size:11.5px;font-weight:600;fill:var(--ink)}.legend{display:flex;gap:14px;font-size:12px;color:var(--muted);margin-bottom:6px}.legend i,.tip i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.tip{position:absolute;top:28px;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:8px 10px;font-size:12px;pointer-events:none;min-width:150px}.tip div{display:flex;align-items:center}.tip span{margin-left:auto;padding-left:12px;font-variant-numeric:tabular-nums;font-weight:600}.hbars{display:grid;gap:8px}.hb{display:grid;grid-template-columns:minmax(0,38%) 1fr auto;align-items:center;gap:10px;font-size:12.5px}.hb .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hb .track{display:flex;gap:2px;height:14px}.hb .track i{height:100%;border-radius:0 4px 4px 0;min-width:3px}.hb .track i:not(:last-child){border-radius:0}.hb:hover .track i{filter:brightness(.92)}.hb b{font-weight:600;font-size:12px}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{border:1px solid #D3DAE2;border-radius:10px;background-color:#fff;color:var(--ink);font:inherit;font-size:14px;box-shadow:0 1px 2px #1018280a;transition:border-color .15s,box-shadow .15s}input:not([type=checkbox]):not([type=radio]):not([type=range]):hover,select:hover,textarea:hover{border-color:#b4bfcb}input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #1d4e8926}input:disabled,select:disabled,textarea:disabled{background-color:#f4f6f8;color:var(--muted);cursor:not-allowed}::placeholder{color:#9aa5b1;opacity:1}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235B6774' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}input[type=checkbox],input[type=radio]{accent-color:var(--brand);width:16px;height:16px;margin:0;cursor:pointer}input[type=file]{color:var(--muted);font-size:13px;cursor:pointer;display:flex;align-items:center}input[type=file]::file-selector-button{height:100%;border:0;border-right:1px solid #D3DAE2;background:#f5f7fa;padding:0 14px;margin-right:12px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer}.btn:focus-visible,.tool:focus-visible,.seg button:focus-visible{outline:none;box-shadow:0 0 0 3px #1d4e8940}.btn.pri{box-shadow:0 1px 2px #1018281f,inset 0 1px #ffffff14}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select){height:36px;padding:0 12px}:where(textarea){padding:10px 12px}.kv .k:has(+div>input,+div>select){line-height:38px}.tool.icon,.btn.icon{width:38px;padding:0}.tool.icon svg{width:16px;height:16px}.pager button{display:inline-flex;align-items:center;justify-content:center}.inl{display:inline-block;min-width:44px;min-height:20px;padding:2px 6px;margin:-2px -6px;border-radius:6px;border:1px dashed transparent;cursor:text}tr:hover .inl{border-color:#cbd3dc}.inl:hover,.inl:focus-visible{background:#fff;border-color:var(--brand);outline:none}.inl-in{height:30px!important;padding:0 8px!important;min-width:90px;max-width:220px;font:inherit}.num .inl-in{text-align:right;width:110px}.inl-in.bad{border-color:var(--bad)!important;box-shadow:0 0 0 3px #dc26261f}
