:root{--ink:#0E1420;--ink-2:#18212F;--ink-3:#232F41;--canvas:#F5F6F8;--surface:#FFFFFF;--surface-2:#FAFBFC;--line:#E4E7EC;--line-2:#EEF0F3;--text:#18212F;--muted:#6A7480;--muted-2:#98A1AD;--energy:#F5A524;--energy-dim:#7A5A16;--danger:#E5484D;--danger-bg:#FDECEC;--ok:#12A150;--ok-bg:#E7F6EE;--warn:#B7791F;--warn-bg:#FDF3D7;--blue:#2563EB;--blue-bg:#EAF0FF;--focus:#2563EB;--r:10px;--r-sm:7px;--shadow:0 1px 2px rgba(16,20,32,.05), 0 1px 3px rgba(16,20,32,.06);--shadow-lg:0 10px 30px rgba(16,20,32,.14);--ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:"SF Mono","JetBrains Mono","Cascadia Code",ui-monospace,"Roboto Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--ui);background:var(--canvas);color:var(--text);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}.mono,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}button{font-family:inherit}a{color:var(--focus);text-decoration:none;cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:var(--ink);color:#c9d2de;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:18px 18px 16px;border-bottom:1px solid var(--ink-3)}.brand .bolt{width:30px;height:30px;border-radius:8px;background:linear-gradient(160deg,var(--energy),#D98A12);display:grid;place-items:center;color:#1a1204;font-weight:800;flex:none;box-shadow:0 0 0 1px #f5a52459,0 4px 12px #f5a52440}.brand .t{line-height:1.1}.brand .t b{color:#fff;font-size:15px;letter-spacing:.2px;display:block}.brand .t span{color:var(--muted-2);font-size:11.5px}.nav{padding:12px 10px;overflow-y:auto;flex:1}.nav .group{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#6f7b8a;padding:14px 10px 6px}.nav a.item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:#c2cbd8;cursor:pointer;font-size:13.5px;font-weight:500;transition:background .12s,color .12s}.nav a.item svg{width:17px;height:17px;flex:none;opacity:.8}.nav a.item:hover{background:var(--ink-2);color:#fff}.nav a.item.active{background:var(--ink-3);color:#fff}.nav a.item.active svg{opacity:1;color:var(--energy)}.nav a.item .badge{margin-left:auto;font-family:var(--mono);font-size:11px;background:var(--ink-3);color:#aeb9c7;border-radius:20px;padding:1px 7px}.nav a.item.active .badge{background:#f5a52429;color:var(--energy)}.sidenote{padding:12px 16px;border-top:1px solid var(--ink-3);font-size:11px;color:#6f7b8a}.sidenote a{color:#8a94a3}.sidenote a:hover{color:#fff}.sideuser{display:none;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid var(--ink-3)}.sideuser .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(160deg,var(--energy),#D98A12);color:#1a1204;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}.sideuser .un{line-height:1.25;min-width:0;flex:1}.sideuser .un b{color:#fff;font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sideuser .un span{color:var(--muted-2);font-size:11px}.sideuser .btn.icon{color:#c2cbd8}.sideuser .btn.icon:hover{background:var(--ink-2);color:#fff}.main{display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:20;background:#f5f6f8db;backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:12px 26px}.topbar .crumb{font-size:11px;color:var(--muted-2);letter-spacing:.02em}.topbar h1{font-size:18px;margin:1px 0 0;letter-spacing:-.01em;font-weight:650}.topbar .spacer{flex:1}.selectors{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.selwrap{display:flex;flex-direction:column;gap:3px}.selwrap label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);padding-left:2px}select,input,textarea{font-family:inherit;font-size:13.5px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px}select{cursor:pointer;padding-right:28px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236A7480' stroke-width='1.6' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}select:disabled{background:#eef0f3;color:var(--muted);cursor:not-allowed}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #2563eb1f}.content{padding:24px 26px 60px;max-width:1280px;width:100%}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 13px;font-size:13.5px;font-weight:550;cursor:pointer;transition:background .12s,border-color .12s}.btn svg{width:16px;height:16px}.btn:hover{background:var(--surface-2);border-color:#d3d8e0}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#1a2536}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:#edeff3}.btn.danger{color:var(--danger);border-color:transparent;background:transparent}.btn.danger:hover{background:var(--danger-bg)}.btn.sm{padding:5px 9px;font-size:12.5px;border-radius:7px}.btn.icon{padding:6px;border-color:transparent;background:transparent;color:var(--muted)}.btn.icon:hover{background:#edeff3;color:var(--text)}.btn.tiny{padding:3px 7px;font-size:11.5px;border-radius:6px;gap:4px}.btn.tiny svg{width:13px;height:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.card-head{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line-2)}.card-head h2{font-size:14.5px;margin:0;font-weight:600;display:flex;align-items:center;gap:7px}.card-head h2 svg{width:16px;height:16px;color:var(--muted)}.card-head .sub{font-size:12px;color:var(--muted)}.card-head .spacer{flex:1}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar .search{position:relative;flex:1;min-width:180px;max-width:320px}.toolbar .search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted-2)}.toolbar .search input{width:100%;padding-left:32px}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2)}tbody td{padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}tr.grouphead td{background:#eff1f4;font-weight:600;font-size:12.5px;color:var(--text);border-bottom:1px solid var(--line)}tr.grouphead td svg{width:14px;height:14px;color:var(--muted);vertical-align:-2px}tr.grouphead:hover td{background:#eff1f4}tr.subtotal td{background:var(--surface-2);font-weight:600;border-top:1px solid var(--line);border-bottom:2px solid var(--line)}tr.subtotal:hover td{background:var(--surface-2)}th.r,td.r{text-align:right}td .code{font-family:var(--mono);font-weight:600;font-size:13px}td .muted{color:var(--muted);font-size:12.5px}.rowact{display:flex;gap:2px;justify-content:flex-end;align-items:center}.cellinput{width:108px;text-align:right;font-family:var(--mono);padding:6px 9px}.cellinput:disabled{background:#f1f2f4;color:var(--muted-2);cursor:not-allowed;border-color:var(--line-2)}.empty{padding:44px 20px;text-align:center;color:var(--muted)}.empty svg{width:34px;height:34px;color:var(--muted-2);margin-bottom:8px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:20px;border:1px solid transparent;white-space:nowrap}.chip svg{width:13px;height:13px}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.off{background:#eef0f3;color:var(--muted)}.chip.blue{background:var(--blue-bg);color:var(--blue)}.chip.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.chip.interna{background:var(--blue-bg);color:#3352c9}.alert-dot{display:inline-flex;align-items:center;gap:5px;color:var(--danger);font-size:12px;font-weight:600}.alert-dot svg{width:14px;height:14px}.tag{font-family:var(--mono);font-size:11px;background:#eef0f3;color:var(--muted);border-radius:6px;padding:2px 6px}.var{font-size:11.5px;font-weight:600;font-family:var(--mono);display:inline-flex;align-items:center;gap:2px}.var.up{color:var(--danger)}.var.dn{color:var(--blue)}.var.flat{color:var(--muted-2)}.var.exceed{padding:2px 6px;border-radius:6px;background:var(--danger-bg)}.readout{background:var(--ink);border-radius:var(--r);padding:6px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;position:relative;overflow:hidden}.readout:after{content:"";position:absolute;inset:0;background:radial-gradient(600px 120px at 15% -30%,rgba(245,165,36,.1),transparent 70%);pointer-events:none}.rcell{padding:16px 18px;border-radius:8px}.rcell .lbl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#7c8899;margin-bottom:9px;display:flex;align-items:center;gap:6px}.rcell .lbl svg{width:13px;height:13px}.rcell .val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:26px;font-weight:600;color:var(--energy);letter-spacing:.5px;text-shadow:0 0 16px rgba(245,165,36,.28);line-height:1}.rcell .val.total{color:#fff;text-shadow:0 0 14px rgba(255,255,255,.12)}.rcell .val small{font-size:14px;color:#8a94a3;font-weight:500;text-shadow:none;margin-left:4px}.rcell .sub{font-size:11.5px;color:#7c8899;margin-top:7px}.acct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.acct{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s}.acct:hover{border-color:#cbd2dc;box-shadow:var(--shadow-lg);transform:translateY(-1px)}.acct .ah{display:flex;align-items:center;gap:10px;padding:15px 16px 12px}.acct .ah .n{font-family:var(--mono);font-size:17px;font-weight:700;letter-spacing:.3px}.acct .ah .spacer{flex:1}.acct .meta{padding:0 16px 10px;font-size:12px;color:var(--muted)}.acct .disp{margin:0 12px 10px;background:var(--ink);border-radius:8px;padding:13px 14px;display:flex;justify-content:space-between;align-items:flex-end}.acct .disp .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#7c8899}.acct .disp .v{font-family:var(--mono);font-size:20px;font-weight:600;color:var(--energy);text-shadow:0 0 12px rgba(245,165,36,.25);line-height:1.05}.acct .disp .kw{text-align:right}.acct .disp .kw .v{color:#fff;font-size:15px;text-shadow:none}.acct .spark{padding:0 14px 13px;display:flex;align-items:center;gap:8px}.acct .spark .cap{font-size:10.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.kv{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13.5px}.kv:last-child{border-bottom:none}.kv .k{color:var(--muted)}.kv .v{font-family:var(--mono);font-weight:600}.kv.total{border-top:2px solid var(--ink);border-bottom:none;margin-top:4px;padding-top:12px;font-size:15px}.kv.total .v{color:var(--ink)}.banner{display:flex;gap:11px;align-items:flex-start;background:var(--warn-bg);border:1px solid #F0DFA8;color:#6b520e;border-radius:var(--r);padding:12px 15px;font-size:13px;margin-bottom:16px}.banner svg{width:18px;height:18px;flex:none;margin-top:1px}.banner.info{background:var(--blue-bg);border-color:#cbd9ff;color:#2a3e8c}.note{font-size:12px;color:var(--muted);margin-top:10px}.hint{font-size:12px;color:var(--muted);background:var(--surface-2);border:1px dashed var(--line);border-radius:8px;padding:9px 12px;margin-bottom:14px}.sectitle{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 10px;font-weight:600}.split{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.split .selwrap{min-width:200px}.lockbar{display:flex;align-items:center;gap:10px;padding:11px 15px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);margin-bottom:16px;font-size:13.5px}.lockbar svg{width:18px;height:18px}.lockbar.closed{background:#fff7ed;border-color:#f3d9ae;color:#8a5a12}.lockbar.open{color:var(--muted)}.lockbar .spacer{flex:1}.lockbar b{color:var(--text)}.lockbar.closed b{color:#7a4e10}.modechip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--blue);background:var(--blue-bg);border-radius:20px;padding:4px 11px}.modechip svg{width:14px;height:14px}.trend-card{padding:14px 16px}.trend-bars{display:flex;align-items:flex-end;gap:10px;height:120px;padding-top:6px}.tb{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.tb .bar{width:100%;max-width:46px;background:linear-gradient(180deg,var(--energy),#E08E13);border-radius:5px 5px 2px 2px;min-height:3px;transition:height .3s}.tb .bar.empty{background:var(--line)}.tb .cap{font-size:11px;color:var(--muted)}.tb .amt{font-family:var(--mono);font-size:11px;color:var(--text);font-weight:600}.overlay{position:fixed;inset:0;background:#0e14206b;backdrop-filter:blur(2px);z-index:100;display:grid;place-items:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .15s}.overlay.show{opacity:1;pointer-events:auto}.modal{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);width:100%;max-width:520px;transform:translateY(8px) scale(.99);transition:transform .15s;max-height:90vh;display:flex;flex-direction:column}.overlay.show .modal{transform:none}.mh{display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--line-2)}.mh h3{margin:0;font-size:16px;font-weight:650}.mh .spacer{flex:1}.mb{padding:20px;overflow-y:auto}.mf{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding:15px 20px;border-top:1px solid var(--line-2);background:var(--surface-2);border-radius:0 0 14px 14px}.field{margin-bottom:15px}.field:last-child{margin-bottom:0}.field label{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px}.field label .req{color:var(--danger)}.field input,.field select,.field textarea{width:100%}.field .help{font-size:11.5px;color:var(--muted);margin-top:5px}.field.err input,.field.err select{border-color:var(--danger);box-shadow:0 0 0 3px #e5484d1f}.field .errmsg{color:var(--danger);font-size:11.5px;margin-top:5px;display:none}.field.err .errmsg{display:block}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px}.switch input{display:none}.switch .track{width:38px;height:22px;border-radius:20px;background:#d3d8e0;position:relative;transition:background .15s;flex:none}.switch .track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:left .15s}.switch input:checked+.track{background:var(--ok)}.switch input:checked+.track:after{left:18px}.swapinfo{background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:12px 14px;margin-top:6px;font-size:12.5px}.swapinfo .kv{padding:6px 0;font-size:12.5px}.toasts{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:10px}.toast{background:var(--ink);color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow-lg);font-size:13.5px;display:flex;align-items:center;gap:10px;transform:translate(120%);transition:transform .25s;max-width:340px}.toast.show{transform:none}.toast svg{width:17px;height:17px;flex:none}.toast.ok svg{color:var(--energy)}.toast.err svg{color:#ff7a7e}.menutoggle{display:inline-flex}.print-only{display:none}.scrim{position:fixed;inset:0;background:#0e142073;z-index:110}.card-head{flex-wrap:wrap}@media(min-width:901px){.scrim{display:none}.app.collapsed{grid-template-columns:1fr}.app.collapsed .sidebar{display:none}}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:fixed;z-index:120;width:250px;left:0;top:0;transform:translate(-100%);transition:transform .2s;height:100vh}.sidebar.open{transform:none;box-shadow:var(--shadow-lg)}.readout,.grid2,.row2,.dnd{grid-template-columns:1fr}.content{padding:18px 16px 60px}.topbar{padding:10px 14px;flex-wrap:wrap;row-gap:8px}.sideuser{display:flex}.topbar .usermenu{display:none}}@media(max-width:640px){.userbtn .un{display:none}.userbtn{padding:5px}.topbar h1{font-size:16px}.selectors{gap:6px}.selwrap{min-width:0}.content{padding:14px 12px 60px}.mgrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.readbig .val{font-size:28px}.rcell .val{font-size:22px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{@page{margin:15mm 13mm}.sidebar,.topbar,.toasts,.overlay,.scrim{display:none!important}.app{display:block}.content{padding:0;max-width:none}.no-print{display:none!important}.print-only{display:block!important}body{background:#fff;font-size:12px}.card{box-shadow:none;border:1px solid #d4d8de;break-inside:avoid}.sectitle{margin:18px 0 8px}.print-header{margin-bottom:18px;border-bottom:2px solid var(--ink);padding-bottom:14px;display:flex;justify-content:space-between;align-items:flex-start}.print-header .pt b{font-size:19px}.print-header .pt span{color:#555;font-size:12px;display:block}.print-header .pr{text-align:right;font-size:12px;color:#333}.print-header .pr .rn{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--ink)}tbody tr:hover{background:none}.grid2{display:block}.grid2 .card{margin-bottom:14px}.trend-card{break-inside:avoid;margin-top:14px}.kv{font-size:12px;padding:7px 0}.kv.total{font-size:13.5px}.tablewrap{overflow:visible}table{table-layout:auto}thead th{font-size:8.5px;padding:5px 7px;background:#f2f3f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}tbody td{font-size:10px;padding:5px 7px}td .code{font-size:10px}tr{break-inside:avoid}thead{display:table-header-group}tr.subtotal td{font-weight:700;border-top:1.5px solid #333}.tb .bar,.chip{-webkit-print-color-adjust:exact;print-color-adjust:exact}.chip{font-size:9px;padding:1px 6px}.tb .amt,.tb .cap{font-size:10px}.print-footer{margin-top:16px;padding-top:8px;border-top:1px solid #d4d8de;font-size:10px;color:#777;text-align:center}}.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:14px}.mcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.mcard .mtop{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--line-2)}.mcard .mtop .code{font-family:var(--mono);font-weight:700;font-size:14px}.mcard .mtop .spacer{flex:1}.mcard .ubi{font-size:11.5px;color:var(--muted);padding:9px 14px 0;display:flex;align-items:center;gap:6px}.mcard .ubi svg{width:13px;height:13px}.photo{position:relative;margin:11px 14px 0;border-radius:10px;overflow:hidden;background:#0e1420;aspect-ratio:4/3;display:grid;place-items:center;cursor:pointer}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo .ph{display:flex;flex-direction:column;align-items:center;gap:6px;color:#7c8899;font-size:12px}.photo .ph svg{width:26px;height:26px}.photo .change{position:absolute;right:8px;bottom:8px;background:#0e1420bd;color:#fff;border:none;border-radius:8px;padding:5px 9px;font-size:11.5px;display:inline-flex;gap:5px;align-items:center;cursor:pointer}.photo .change svg{width:13px;height:13px}.photo .change.gal{right:auto;left:8px;padding:5px 7px}.readbig{padding:12px 14px 14px;text-align:center}.readbig .lbl{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2)}.readbig .val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;letter-spacing:.5px;line-height:1.05;margin-top:2px}.readbig input{font-family:var(--mono);font-size:26px;font-weight:700;text-align:center;width:100%;padding:6px 8px;border-radius:8px}.readbig .cons{font-size:12px;color:var(--muted);margin-top:7px;display:flex;align-items:center;justify-content:center;gap:8px}.filehidden{display:none}.months{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px}.mo{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2);display:flex;flex-direction:column}.mo .moh{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:center;padding:8px;border-bottom:1px solid var(--line-2);font-weight:600}.mo .mophoto{aspect-ratio:4/3;background:#0e1420;display:grid;place-items:center;position:relative;cursor:pointer}.mo .mophoto img{width:100%;height:100%;object-fit:cover}.mo .mophoto .ph{color:#7c8899}.mo .mophoto .ph svg{width:22px;height:22px}.mo .moval{font-family:var(--mono);font-size:25px;font-weight:700;text-align:center;padding:10px 6px 4px}.mo .mocons{font-size:11px;color:var(--muted);text-align:center;padding:0 6px 10px}.modal.photo-modal{max-width:560px}.photo-modal .big{background:#0e1420;border-radius:12px;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden;margin-bottom:16px}.photo-modal .big img{width:100%;height:100%;object-fit:contain}.photo-modal .big .ph{color:#7c8899;display:flex;flex-direction:column;align-items:center;gap:8px}.photo-modal .big .ph svg{width:34px;height:34px}.photo-modal .bignum{text-align:center}.photo-modal .bignum .val{font-family:var(--mono);font-size:46px;font-weight:800;letter-spacing:.5px;line-height:1}.photo-modal .bignum .lbl{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:5px}.modal.modal-wide{max-width:760px}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-svg .grid{stroke:var(--line-2)}.chart-svg .axis{stroke:var(--line);stroke-width:1}.chart-svg text{font-family:var(--ui);font-size:11px;fill:var(--muted)}.chart-svg .ln{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart-svg .hit{fill:none;stroke:transparent;stroke-width:18;cursor:pointer}.chart-svg .pt{cursor:pointer;transition:r .1s}.chart-svg .pt:hover{r:7.5}.chart-svg .bar{cursor:pointer;transition:opacity .1s}.chart-svg .bar:hover{opacity:.72}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:2px;gap:2px}.seg button{border:none;background:transparent;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background .12s,color .12s}.seg button svg{width:14px;height:14px}.seg button:hover{color:var(--text)}.seg button.active{background:var(--ink);color:#fff}.legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding:0 4px}.legend .li{display:flex;align-items:center;gap:8px;font-size:12.5px;cursor:pointer;padding:5px 10px;border-radius:8px;border:1px solid var(--line-2)}.legend .li:hover{background:var(--surface-2);border-color:var(--line)}.legend .sw{width:12px;height:12px;border-radius:3px;flex:none}.legend .li .kw{font-family:var(--mono);color:var(--muted)}.crumbnav{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:14px;color:var(--muted)}.crumbnav a{font-weight:600}.crumbnav svg{width:15px;height:15px}.chart-hintbar{font-size:11.5px;color:var(--muted-2);margin-top:8px;display:flex;align-items:center;gap:6px;justify-content:center}.dnd{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dzone{border:1.5px dashed var(--line);border-radius:12px;padding:12px;background:var(--surface-2);transition:border-color .12s,background .12s;min-height:220px}.dzone.over{border-color:var(--focus);background:var(--blue-bg)}.dzone-h{margin:0 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:8px}.dlist{display:flex;flex-direction:column;gap:8px;min-height:40px}.dchip{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:9px 11px;cursor:grab;font-size:13px;box-shadow:var(--shadow)}.dchip:hover{box-shadow:var(--shadow-lg)}.dchip svg{width:16px;height:16px;color:var(--muted);flex:none}.dchip span{flex:1}.dchip .x{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:2px 6px;border-radius:6px}.dchip .x:hover{background:#edeff3;color:var(--text)}.dchip:active{cursor:grabbing}.dchip.dragging{opacity:.35}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(900px 500px at 50% -10%,rgba(245,165,36,.1),transparent 60%),var(--canvas)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:390px;padding:30px 28px}.login-card .brand{border:none;padding:0 0 18px;justify-content:center}.login-card .brand .t b{color:var(--text)}.login-card h1{font-size:19px;margin:0 0 4px;text-align:center}.login-card .sub{font-size:13px;color:var(--muted);text-align:center;margin-bottom:22px}.login-card .field label{font-size:12.5px}.login-card .btn.primary{width:100%;justify-content:center;padding:11px}.login-err{background:var(--danger-bg);color:var(--danger);border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:14px;display:flex;gap:8px;align-items:center}.login-err svg{width:16px;height:16px;flex:none}.login-hint{margin-top:18px;font-size:11.5px;color:var(--muted-2);text-align:center;line-height:1.7}.login-hint code{background:var(--surface-2);border:1px solid var(--line-2);border-radius:5px;padding:1px 5px;font-family:var(--mono)}.usermenu{position:relative}.userbtn{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 10px;cursor:pointer}.userbtn .av{width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}.userbtn .un{line-height:1.15;text-align:left}.userbtn .un b{font-size:13px;font-weight:600;display:block}.userbtn .un span{font-size:11px;color:var(--muted)}.usermenu .pop{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);min-width:180px;padding:6px;z-index:40}.usermenu .pop button{display:flex;width:100%;align-items:center;gap:9px;border:none;background:transparent;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text)}.usermenu .pop button:hover{background:var(--surface-2)}.usermenu .pop button svg{width:15px;height:15px;color:var(--muted)}.inline-field{display:flex;align-items:center;gap:10px}.ficha .fh{border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.ficha .fh .ft b{font-size:18px}.ficha .fh .ft span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.ficha .fh .fr{text-align:right;font-size:12px;color:var(--muted)}.ficha .fh .fr .cod{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--ink);line-height:1.1;margin:2px 0}.ficha .grp{margin-bottom:14px}.ficha .grp h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line-2);padding-bottom:4px}.ficha .kvs{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.ficha .kv2{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}.ficha .kv2 .k{color:var(--muted)}.ficha .kv2 .v{font-weight:600;text-align:right}.ficha .obs{white-space:pre-wrap;font-size:13px;padding:4px 0;min-height:24px}@media print{body.printing-ficha *{visibility:hidden!important}body.printing-ficha .ficha-print,body.printing-ficha .ficha-print *{visibility:visible!important}body.printing-ficha .ficha-print{position:absolute!important;left:0;top:0;width:100%;max-width:none!important;box-shadow:none!important;border:none!important;padding:0!important}}@media(max-width:640px){.ficha .kvs{grid-template-columns:1fr}}@media(max-width:900px){.dnd{grid-template-columns:1fr}.modal.modal-wide{max-width:100%}}@media(max-width:640px){.mgrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.months{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}
