:root{--blue:#2563eb;--blue-soft:#e8f0fe;--green:#16a34a;--green-soft:#e7f7ed;--red:#dc2626;--red-soft:#fdecec;--orange:#ea580c;--orange-soft:#fff1e6;--purple:#7c3aed;--purple-soft:#f1eafe;--teal:#0d9488;--teal-soft:#e0f5f2;--tx:#111827;--mu:#6b7280;--bd:#e5e7eb;--bg:#f4f6fa}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0}body{color:var(--tx);background:#e9edf4;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.muted{color:var(--mu)}.err{color:var(--red);margin:0 0 10px;font-size:13px}.app{background:#fff;max-width:480px;min-height:100vh;margin:0 auto;padding-bottom:90px;position:relative;box-shadow:0 0 30px #00000014}.page{padding:16px}.topbar{z-index:5;background:#fff;align-items:center;gap:10px;padding:14px 16px;display:flex;position:sticky;top:0}.topbar h1{flex:1;margin:0;font-size:20px}.iconbtn{color:var(--tx);background:0 0;border:0;align-items:center;padding:6px;display:flex}.tabbar{border-top:1px solid var(--bd);width:100%;max-width:480px;padding:6px 0 calc(6px + env(safe-area-inset-bottom,0px));z-index:20;background:#fff;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--mu);flex-direction:column;align-items:center;gap:2px;padding-top:2px;font-size:11px;display:flex}.tab.on{color:var(--blue);font-weight:600}.fab{background:var(--blue);color:#fff;border:0;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:-26px auto 0;display:flex;box-shadow:0 6px 16px #2563eb66}.overlay{z-index:30;background:#0006;position:fixed;inset:0}.sheet{z-index:31;background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:480px;padding:16px 16px 28px;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:17px;display:flex}.sheet-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.qa{background:var(--bg);color:var(--tx);border:0;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:14px 4px;font-size:12px;display:flex}.ib{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.b-blue{background:var(--blue-soft);color:var(--blue)}.b-green{background:var(--green-soft);color:var(--green)}.b-red{background:var(--red-soft);color:var(--red)}.b-orange{background:var(--orange-soft);color:var(--orange)}.b-purple{background:var(--purple-soft);color:var(--purple)}.b-teal{background:var(--teal-soft);color:var(--teal)}.login{padding:56px 24px 24px}.logo{text-align:center;flex-direction:column;align-items:center;margin-bottom:56px;display:flex}.logo-ic{color:var(--blue);margin-bottom:8px}.logo h1{margin:0 0 4px;font-size:30px}.logo p{margin:0;font-size:12px}.wb{margin:0 0 4px;font-size:26px}.login form{margin-top:20px}.field{border:1px solid var(--bd);height:50px;color:var(--mu);background:#fff;border-radius:12px;align-items:center;gap:10px;margin-bottom:12px;padding:0 12px;display:flex}.field input{height:100%;color:var(--tx);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:15px}.btn{background:var(--blue);color:#fff;border:0;border-radius:12px;width:100%;height:50px;font-size:16px;font-weight:600}.btn:disabled{opacity:.6}.profile{border:1px solid var(--bd);border-radius:14px;align-items:center;gap:12px;margin-bottom:14px;padding:14px;display:flex}.avatar{background:var(--blue-soft);width:52px;height:52px;color:var(--blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.profile .n{font-size:17px;font-weight:700}.profile .s{color:var(--mu);font-size:12px}.menu-item{border:1px solid var(--bd);text-align:left;width:100%;color:var(--tx);background:#fff;border-radius:14px;align-items:center;gap:12px;margin-bottom:10px;padding:12px;display:flex}.menu-item .t{font-weight:600}.menu-item .s{color:var(--mu);font-size:12px}.menu-item .grow{flex:1}.menu-item .chev{color:var(--mu)}.btn-sm{background:var(--blue);color:#fff;border:0;border-radius:10px;align-items:center;gap:4px;padding:8px 14px;font-weight:600;display:inline-flex}.searchbar{background:var(--bg);height:44px;color:var(--mu);border-radius:12px;align-items:center;gap:8px;margin-bottom:12px;padding:0 12px;display:flex}.searchbar input{height:100%;color:var(--tx);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:15px}.chips{gap:8px;margin-bottom:8px;display:flex;overflow-x:auto}.chip{border:1px solid var(--bd);white-space:nowrap;color:var(--tx);background:#fff;border-radius:999px;padding:7px 14px;font-size:13px}.chip.on{background:var(--blue);border-color:var(--blue);color:#fff}.crow{border-bottom:1px solid var(--bd);align-items:center;gap:10px;padding:10px 0;display:flex;position:relative}.crow .nm{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.crow .ph{color:var(--mu);font-size:12px}.crow .body{flex:1;min-width:0}.tags{gap:5px;display:flex}.tag{white-space:nowrap;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:600}.tag-ok{background:var(--green-soft);color:var(--green)}.tag-no{background:var(--red-soft);color:var(--red)}.pop{border:1px solid var(--bd);z-index:10;background:#fff;border-radius:10px;position:absolute;top:46px;right:0;overflow:hidden;box-shadow:0 6px 18px #0000001f}.pop button{text-align:left;background:0 0;border:0;width:100%;padding:10px 22px;display:block}.lbl{margin:12px 0 4px;font-size:13px;font-weight:600;display:block}.in,.sel,.ta{border:1px solid var(--bd);width:100%;color:var(--tx);background:#fff;border-radius:10px;outline:0;padding:11px 12px;font-family:inherit;font-size:15px}.ta{resize:vertical;min-height:70px}.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sec{margin:22px 0 2px;font-size:16px;font-weight:700}.togrow{align-items:center;gap:12px;padding:10px 0;display:flex}.togrow .grow{flex:1}.togrow small{color:var(--mu);font-size:12px;display:block}.sw{flex-shrink:0;width:46px;height:26px;position:relative}.sw input{opacity:0;z-index:2;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.sw span{background:#d1d5db;border-radius:999px;transition:all .15s;position:absolute;inset:0}.sw span:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:all .15s;position:absolute;top:3px;left:3px}.sw input:checked+span{background:var(--blue)}.sw input:checked+span:after{left:23px}.card{border:1px solid var(--bd);background:#fff;border-radius:14px;margin-bottom:14px;padding:14px}.card h3{margin:0 0 8px;font-size:16px}.kv{gap:12px;padding:5px 0;font-size:14px;display:flex}.kv .k{width:100px;color:var(--mu);flex-shrink:0}.kv .v{word-break:break-word;flex:1}.hero{align-items:center;gap:14px;margin-bottom:14px;display:flex}.hero .avatar{color:#fff;background:#475569;width:64px;height:64px;font-size:26px}.actions3{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;display:grid}.act{border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 4px;font-size:14px;font-weight:600;display:flex}.act.blue{color:var(--blue);background:var(--blue-soft)}.act.green{color:var(--green);background:var(--green-soft)}.act.off{opacity:.4;pointer-events:none}.stat-row{align-items:center;gap:10px;padding:8px 0;display:flex}.stat-row .grow{flex:1}.pill{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.pill.ok{background:var(--green-soft);color:var(--green)}.pill.no{background:var(--red-soft);color:var(--red)}.txn{border-top:1px solid var(--bd);justify-content:space-between;padding:8px 0;font-size:14px;display:flex}.more-btn{border:1px solid var(--bd);width:100%;color:var(--blue);background:#fff;border-radius:10px;margin-top:10px;padding:12px;font-weight:600;display:block}.linkbtn{color:var(--blue);background:0 0;border:0;padding:4px 0;font-size:13px}.topmenu{position:relative}.pgrid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pcard{border:1px solid var(--bd);cursor:pointer;background:#fff;border-radius:14px;padding:8px}.pimg{aspect-ratio:1;background:var(--bg);color:var(--mu);border-radius:10px;justify-content:center;align-items:center;margin-bottom:8px;display:flex;overflow:hidden}.pimg img{object-fit:cover;width:100%;height:100%}.pname{margin-bottom:2px;font-weight:600}.sm{font-size:12px}.gc{color:var(--green)}.rc{color:var(--red)}.phero{aspect-ratio:16/10;background:var(--bg);width:100%;color:var(--mu);justify-content:center;align-items:center;display:flex;overflow:hidden}.phero img{object-fit:cover;width:100%;height:100%}.stats4{grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0;display:grid}.st{border:1px solid var(--bd);text-align:center;border-radius:12px;padding:10px 4px}.st b{font-size:16px;display:block}.st span{color:var(--mu);font-size:11px}.btns2{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.btn-o{border:1px solid var(--blue);height:50px;color:var(--blue);background:#fff;border-radius:12px;font-size:16px;font-weight:600}.imgpick{aspect-ratio:16/9;background:var(--bg);width:100%;color:var(--mu);border-radius:14px;justify-content:center;align-items:center;margin-bottom:6px;display:flex;position:relative;overflow:hidden}.imgpick img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.imgpick label{color:#fff;cursor:pointer;white-space:nowrap;background:#000000a6;border-radius:8px;padding:7px 14px;font-size:13px;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.profitbox{background:var(--green-soft);color:var(--green);border-radius:12px;justify-content:space-between;margin-top:14px;padding:12px 14px;font-weight:700;display:flex}.catrow{gap:8px;display:flex}.catrow .sel{flex:1}.catrow button{border:1px solid var(--bd);color:var(--blue);white-space:nowrap;background:#fff;border-radius:10px;padding:0 12px;font-weight:600}.amt-row{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.addrow{gap:8px;margin-bottom:14px;display:flex}.addrow .in{flex:1}.seg{border:1px solid var(--bd);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;margin-bottom:6px;display:grid;overflow:hidden}.seg button{color:var(--tx);background:#fff;border:0;padding:10px 4px;font-weight:600}.seg button.on{background:var(--blue);color:#fff}.tag-or{background:var(--orange-soft);color:var(--orange)}.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th{text-align:left;color:var(--mu);border-bottom:1px solid var(--bd);padding:6px 4px;font-size:12px;font-weight:600}.tbl td{border-bottom:1px solid var(--bd);padding:8px 4px}.tbl .num{text-align:right}.sumrow{justify-content:space-between;padding:5px 0;font-size:14px;display:flex}.sumrow.final{color:var(--green);font-size:18px;font-weight:700}.picklist{border:1px solid var(--bd);border-radius:10px;max-height:220px;margin-top:4px;overflow:auto}.picklist button{text-align:left;border:0;border-bottom:1px solid var(--bd);background:#fff;width:100%;padding:10px 12px;display:block}.picked{border:1px solid var(--bd);border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.lblrow{justify-content:space-between;align-items:center;display:flex}@media print{.topbar,.tabbar,.btns2,.sheet,.overlay,.noprint{display:none!important}.app{box-shadow:none;max-width:none;padding-bottom:0}body{background:#fff}}.tabs{background:var(--bg);border-radius:12px;grid-template-columns:repeat(4,1fr);margin:14px 0;padding:4px;display:grid}.tabs button{color:var(--mu);background:0 0;border:0;border-radius:9px;padding:9px 2px;font-size:13px}.tabs button.on{color:var(--blue);background:#fff;font-weight:600;box-shadow:0 1px 4px #0000001f}.stat3{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;display:grid}.stat3 .st{text-align:left;padding:10px}.lrow{border-bottom:1px solid var(--bd);justify-content:space-between;gap:10px;padding:9px 0;font-size:14px;display:flex}.lrow:last-child{border-bottom:0}.lrow .mu2{color:var(--mu);font-size:12px}.rowbtn{border-bottom:1px solid var(--bd);cursor:pointer;align-items:center;gap:10px;padding:12px 0;display:flex}.avimg{object-fit:cover;background:var(--bg);width:84px;height:84px;color:var(--mu);border-radius:50%;justify-content:center;align-items:center;display:flex}.upl{border:1px solid var(--bd);color:var(--blue);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:11px 12px;font-size:15px;display:flex}.thumb{object-fit:cover;border-radius:50%;flex-shrink:0;width:44px;height:44px}.dim{opacity:.55}.monthnav{justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600;display:flex}.cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal .dow{color:var(--mu);padding:4px 0;font-size:12px}.cell{aspect-ratio:1;color:var(--tx);cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-size:12px;display:flex}.cell.today{outline:2px solid var(--blue)}.dot{border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.dot.p{background:var(--green-soft);color:var(--green)}.dot.a{background:var(--red-soft);color:var(--red)}.dot.h{background:var(--orange-soft);color:var(--orange)}.legend{flex-wrap:wrap;gap:14px;margin:12px 0;font-size:12px;display:flex}.legend i{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.three{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.three button{color:#fff;border:0;border-radius:10px;height:46px;font-size:15px;font-weight:600}.docrow{align-items:center;gap:10px;display:flex}.docrow img{object-fit:cover;border:1px solid var(--bd);border-radius:6px;width:56px;height:38px}.hello{margin:2px 0;font-size:20px;font-weight:700}.sgrid{grid-template-columns:1fr 1fr;gap:12px;margin:14px 0;display:grid}.scard{border:1px solid var(--bd);cursor:pointer;background:#fff;border-radius:14px;align-items:center;gap:10px;padding:12px;display:flex}.scard .n{font-size:22px;font-weight:700;line-height:1.1}.scard .l{color:var(--mu);font-size:12px}.bar{background:var(--bg);border-radius:99px;height:8px;margin:6px 0 14px;overflow:hidden}.bar i{border-radius:99px;height:100%;display:block}.barhead{justify-content:space-between;font-size:14px;display:flex}.actrow{border-bottom:1px solid var(--bd);align-items:center;gap:10px;padding:9px 0;display:flex}.actrow:last-child{border-bottom:0}.actrow .tx{flex:1;font-size:14px}.actrow .tm{color:var(--mu);white-space:nowrap;font-size:12px}.monthsel{border:1px solid var(--bd);color:var(--tx);background:#fff;border-radius:10px;padding:7px 8px;font-size:14px}.res{border-bottom:1px solid var(--bd);cursor:pointer;align-items:center;gap:10px;padding:10px 0;display:flex}.res .body{flex:1;min-width:0}.sechead{justify-content:space-between;align-items:center;margin:16px 0 4px;font-weight:700;display:flex}.lockwrap{text-align:center;padding:36px 20px 16px}.lockic{background:var(--blue-soft);width:84px;height:84px;color:var(--blue);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.lockwrap h2{margin:0 0 6px;font-size:21px}.lockwrap p{margin:0 0 18px;font-size:14px}.lockwrap .field{text-align:left}.warnbox{background:var(--red-soft);color:var(--red);text-align:left;border-radius:12px;margin:4px 0 14px;padding:12px;font-size:13px}.safe{background:var(--bg);text-align:left;color:var(--mu);border-radius:12px;gap:10px;margin-top:22px;padding:12px;font-size:13px;display:flex}.safe b{color:var(--tx);display:block}.ftag{background:var(--blue-soft);color:var(--blue);white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600}.viewer{z-index:40;background:#fff;flex-direction:column;display:flex;position:fixed;inset:0}.vhead{border-bottom:1px solid var(--bd);align-items:center;gap:10px;padding:12px 14px;display:flex}.vtitle{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.vbody{flex:1;overflow:auto}.vtabs{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--bd);background:var(--bg);gap:6px;display:flex;overflow-x:auto}.vtabs button{border:1px solid var(--bd);white-space:nowrap;color:var(--tx);background:#fff;border-radius:8px;padding:7px 14px}.vtabs button.on{background:var(--blue);border-color:var(--blue);color:#fff}.xt{border-collapse:collapse;font-size:13px}.xt th,.xt td{border:1px solid var(--bd);white-space:nowrap;text-overflow:ellipsis;max-width:280px;padding:6px 10px;overflow:hidden}.xt thead th{background:var(--bg);color:var(--mu);z-index:2;font-weight:600;position:sticky;top:0}.xt .rn{background:var(--bg);color:var(--mu);text-align:center;z-index:1;min-width:42px;position:sticky;left:0}.xt thead .rn{z-index:3}
