:root{--bg:#0f1115;--card:#181b22;--line:#262a33;--text:#e8eaf0;--muted:#8b92a3;--accent:#3b82f6;--accent-bg:#1b2b48;--op:#f59e0b;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Roboto,Segoe UI,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation;user-select:none;-webkit-user-select:none}button,select,input{font:inherit;color:inherit}button{touch-action:manipulation;cursor:pointer}#app{display:flex;flex-direction:column;height:100dvh;max-width:560px;margin:0 auto;padding-top:env(safe-area-inset-top)}.top{display:flex;align-items:center;gap:4px;padding:6px 8px 0 16px}.title{flex:1;font-weight:700;font-size:20px}.icon-btn{background:none;border:0;font-size:24px;width:48px;height:48px;border-radius:50%;color:var(--muted)}.icon-btn:active{background:var(--card)}.icon-btn.small{width:40px;height:40px;font-size:18px}.icon-btn:disabled{opacity:.3}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.updated{font-size:12.5px;color:var(--muted);padding:0 16px 6px}.list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 10px;overscroll-behavior-y:contain}#rows{display:flex;flex-direction:column}.more{flex:none;margin:2px 10px 6px;min-height:44px;font-size:16px!important;background:none;border:1px dashed var(--line);border-radius:10px;color:var(--accent);font-size:14px}.row{display:flex;align-items:center;gap:12px;width:100%;height:64px;flex:none;padding:0 16px;margin:4px 0;background:var(--card);border:0;border-radius:16px;transition:background .15s,box-shadow .15s,transform .15s;text-align:left}.row.pin-end{margin-bottom:8px}.row.active{background:#172238}.row.lifted{transform:scale(1.03);box-shadow:0 16px 32px #000c,0 2px 6px #0008;background:#262c3a;position:relative;z-index:3;transition:box-shadow .15s,background .15s;touch-action:none}.row.lifted.dropping{transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s;box-shadow:0 2px 6px #0006}body.dragging .list{overflow:hidden;touch-action:none}body.dragging .row:not(.lifted){transition:transform .18s cubic-bezier(.2,.8,.2,1)}.flag{flex:none;width:36px;height:36px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#2a2f3a}.flag img{width:100%;height:100%;display:block;object-fit:cover}.flag.txt{font-size:11px;font-weight:700;color:var(--muted)}.flag.cfa{background:none}.names{display:flex;flex-direction:row;align-items:baseline;gap:8px;min-width:0;flex:1 1 auto;overflow:hidden}.code{font-weight:700;font-size:18px}.name{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amt{margin-left:auto;font-size:22px;text-align:right;background:none;border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 0 6px 16px;min-height:48px;transition:border-color .15s;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;max-width:72%;flex:0 0 auto}.row.active .amt{color:#fff;border-bottom-color:var(--accent)}.row.active .amt:after{content:"";display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.15em;background:var(--accent);animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.pad{position:fixed;left:0;right:0;bottom:0;max-width:560px;margin:0 auto;z-index:5;padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;transform:translateY(105%);transition:transform .2s cubic-bezier(.2,.8,.2,1);border-radius:18px 18px 0 0;box-shadow:0 -8px 24px #0008;background:#0b0d11;border-top:1px solid var(--line);padding:6px 8px calc(8px + env(safe-area-inset-bottom))}.chips{touch-action:pan-x;display:flex;gap:8px;overflow-x:auto;padding:4px 2px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;white-space:nowrap;font-size:15px!important;min-height:36px!important;padding:6px 12px!important;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:15px;min-height:38px;color:var(--op)}.chip:active{background:var(--accent-bg)}.chip.static{pointer-events:none}.display{display:flex;align-items:center;gap:8px;padding:0 0 6px;height:46px}.clear-btn{flex:none;width:64px;height:40px;border:0;border-radius:12px;background:#4a2420;color:#ffb4a6;font-size:20px;font-weight:600;transition:transform .15s,filter .15s}.disp-txt{flex:1;min-width:0;text-align:right}.unused{flex:none;width:64px;height:46px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-size:26px}.expr{font-size:14px;color:var(--muted);min-height:20px;white-space:nowrap;overflow-x:auto;scrollbar-width:none}.result{white-space:nowrap;overflow:hidden;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.keys{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.key{font-weight:500;height:clamp(40px,calc((50dvh - 142px)/5),52px);border:0;border-radius:12px;transition:transform .15s,filter .15s;background:var(--card);font-size:25px}.key:active,.clear-btn:active,.close-btn:active{filter:brightness(.8);transform:scale(.97)}.key.op{color:var(--op);font-size:26px}.key.fn{font-size:21px}.key.eq{background:var(--accent);color:#fff;font-size:28px}.key.fn{color:var(--muted)}.hidden{display:none!important}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:10;overflow-y:auto;padding-top:env(safe-area-inset-top);-webkit-user-select:auto;user-select:auto}.sheet-body{max-width:560px;margin:0 auto;padding:0 16px 40px}h2{font-size:16px;margin:20px 0 8px}h2 small{color:var(--muted);font-weight:400;font-size:12px}.cur-list,.sc-list{list-style:none;padding:0;margin:0}.cur-item,.sc-item{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:12px;padding:6px 8px;margin:4px 0}.cur-item .icon-btn,.sc-item .icon-btn:first-of-type{margin-left:auto}.cur-item.dragging{outline:2px solid var(--accent);opacity:.85}.handle{font-size:26px;color:var(--muted);padding:6px 10px;touch-action:none;cursor:grab}.field{display:flex;justify-content:space-between;align-items:center;margin:12px 0}select,input{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:16px;min-height:44px}.add-row{display:flex;gap:8px}.add-row select{flex:1;min-width:0}.sc-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.sc-form input[name=label]{grid-column:span 2}.btn{background:var(--accent);border:0;border-radius:10px;padding:10px 16px;min-height:44px;color:#fff;font-weight:600}.btn:disabled{opacity:.4}.sc-form .btn{grid-column:span 2}.note{color:var(--muted);font-size:12px;margin-top:24px}.types{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:6px}.type-opt{display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;position:relative}.type-opt input{position:absolute;opacity:0}.tl{font-weight:600;font-size:14px}.tex{font-size:12px;color:var(--muted)}.btn.ghost{background:none;color:var(--accent)}.hist{list-style:none;padding:0;margin:0}.hist-item{background:var(--card);border-radius:12px;padding:10px 12px;margin:6px 0;cursor:pointer}.hist-item:active{background:var(--accent-bg)}.hx{color:var(--muted);font-size:14px}.hr{font-size:18px;font-weight:700}.hd{font-size:11px;color:var(--muted)}.hint{color:var(--muted);font-size:14px;margin:0 0 10px;list-style:none}.btn.wide{width:100%;font-size:17px;min-height:52px;margin-bottom:10px}.sc-item{padding:10px 12px}.sc-name{flex:1;font-size:16px;color:var(--op);min-width:0}.tbtn{background:none;border:1px solid var(--line);border-radius:10px;padding:0 14px;min-height:44px;font-size:15px;color:var(--accent);font-weight:600}.tbtn.danger{color:#f87171}.tbtn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg);border-bottom:1px solid var(--line)}.bar-title{flex:1;text-align:center;font-weight:700;font-size:16px}.ed-form{display:flex;flex-direction:column;gap:8px}.ed-form .types{grid-template-columns:1fr}.ed-form input[name=value]{font-size:22px;min-height:52px}.type-opt{padding:12px 14px}.tl{font-size:16px}.tex{font-size:14px}.preview{background:var(--card);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.pex{font-size:18px;font-weight:600}.pad-open .pad{transform:none}.pad-spacer{height:0;flex:none}.pad-open .pad-spacer{height:calc(50dvh + env(safe-area-inset-bottom))}.pad-top{touch-action:none;position:relative;height:32px;display:flex;justify-content:center;align-items:center}.grip{width:40px;height:4px;border-radius:2px;background:#3a4050}.close-btn{position:absolute;right:4px;top:50%;margin-top:-18px;width:36px;height:36px;border-radius:50%;background:#1d212a;border:0;color:var(--muted);display:flex;align-items:center;justify-content:center;transition:transform .15s,filter .15s}.chips-row{display:flex;align-items:center;gap:4px}.chips-row .chips{flex:1;min-width:0}.chip-gear{flex:none;width:36px;height:36px;background:none;border:0;color:var(--muted);display:flex;align-items:center;justify-content:center;opacity:.8}.icon-btn{display:inline-flex;align-items:center;justify-content:center}.ptr{--p:0;height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:13px;transition:height .2s}.ring{width:20px;height:20px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--p) * 360deg),#2a2f3a 0);-webkit-mask:radial-gradient(circle,transparent 6.5px,#000 7px);mask:radial-gradient(circle,transparent 6.5px,#000 7px)}.ptr.loading .ring{background:conic-gradient(var(--accent) 270deg,#2a2f3a 0);animation:spin .8s linear infinite}#rows{transition:transform .2s}.seg{display:flex;gap:6px;margin:4px 0}.seg label{flex:1}.seg input{position:absolute;opacity:0}.seg span{display:block;text-align:center;padding:8px 4px;border:1px solid var(--line);border-radius:8px;font-size:15px;font-weight:600;background:var(--bg)}.seg input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.type-opt:has(>input:checked){border-color:var(--accent);background:var(--accent-bg)}.chip.fx-chip{background:none;border:1px solid #3a4050;color:var(--text);font-weight:600;margin-left:2px}.fx-name{display:flex;flex-direction:column;gap:2px;color:var(--text)}.fx-name small{color:var(--muted);font-size:12px}.fx-card .hr{font-size:17px}.fx-formula{margin:4px 0 8px}.fterm{display:flex;gap:12px;align-items:flex-start;background:var(--card);border-radius:16px;padding:12px 16px;margin:8px 0;transition:background .15s}.fterm.active{background:#172238}.fterm-main{flex:1;min-width:0}.fsign{flex:none;width:16px;font-size:20px;font-weight:600;color:var(--op);line-height:32px}.fterm-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px}.flabel{font-size:15px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ffield{display:block;width:100%;text-align:right;font-size:26px;font-weight:600;background:none;border:0;border-bottom:2px solid transparent;padding:8px 0 6px;color:var(--text);transition:border-color .15s;white-space:nowrap;overflow:hidden}.fterm.active .ffield{color:#fff;border-bottom-color:var(--accent)}.fterm.active .ffield:after{content:"";display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.15em;background:var(--accent);animation:caret 1s steps(1) infinite}.fterm.fixed .flabel,.ffixed{color:var(--muted)}.ffixed{text-align:right;font-size:18px;padding:6px 0 2px}.fnote{text-align:right;color:var(--muted);font-size:13px}.pill{position:relative;flex:none;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px 0 4px;border-radius:999px;background:#1d212a;font-size:14px;font-weight:600}.pill .flag{width:24px;height:24px}.pill select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;min-height:0;padding:0;border:0}.fres{position:sticky;bottom:0;z-index:1;background:var(--bg);border-top:1px solid var(--line);margin:16px -16px 0;padding:12px 16px 16px}body.pad-open .fres{bottom:var(--padh, 50dvh)}body.pad-open .fv-body{padding-bottom:calc(var(--padh, 50dvh) + 16px)}.fres-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.fres-name{font-size:15px;color:var(--muted);font-weight:600}.fres-amt{text-align:right;font-size:32px;font-weight:700;padding-top:4px;white-space:nowrap;overflow:hidden}.fres-amt.pos{color:#7ad9a4}.fres-amt.neg{color:#f4a3a3}.fconv{list-style:none;padding:0;margin:8px 0}.fconv li{display:flex;align-items:center;gap:8px;height:40px;border-bottom:1px solid #1c2028;font-size:15px}.fconv .flag{width:24px;height:24px}.fconv-amt{margin-left:auto;font-weight:600}.fdetail{margin:8px 0 24px;color:var(--muted);font-size:14px}.fdetail summary{cursor:pointer;padding:8px 0;color:var(--accent);font-weight:600;list-style:none}.fdetail summary::-webkit-details-marker{display:none}.fdetail summary:before{content:"▸ "}.fdetail[open] summary:before{content:"▾ "}.fdetail ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.fdetail b{color:var(--text);font-weight:600}.ftot{color:var(--text);font-weight:700;padding-top:4px;border-top:1px solid var(--line)}.tcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin:8px 0;display:flex;flex-direction:column;gap:8px}.tcard-head{display:flex;align-items:center;gap:8px}.tnum{flex:1;font-weight:700}.tbtn.sm{min-height:36px;padding:0 10px;font-size:14px}.tbtn:disabled{opacity:.35}.trow{display:flex;gap:8px;align-items:center}.trow>*{flex:1;min-width:0}.tlab{color:var(--muted);font-size:14px;flex:none!important}.btn.ghost-outline{background:none;border:1px dashed var(--line);color:var(--accent)}.btn.ghost-outline:disabled{opacity:.4}.fxs{padding:16px 0 24px}.pad-open .fxs{display:none}.fxs-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 6px;color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.fxs-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 0;touch-action:pan-x pan-y}.fxs-row::-webkit-scrollbar{display:none}.fxc{flex:none;width:72%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:var(--card);border:0;border-radius:16px;padding:12px 16px;transition:transform .15s,filter .15s;-webkit-touch-callout:none}.fxs-row.single .fxc,.fxc.invite{width:100%}.fxc:active{filter:brightness(.85);transform:scale(.98)}.fxc-name{font-size:16px;font-weight:600}.fxc-sub{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.fxc-last{font-size:14px;font-weight:600;color:var(--op)}.fxc.invite{background:none;border:1px dashed #3a4050}.fxc.invite .fxc-name{color:var(--accent)}.menu-ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0009;display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(16px + env(safe-area-inset-bottom));animation:fade .15s}.menu{width:100%;max-width:420px;background:var(--card);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.menu-title{padding:14px 16px;color:var(--muted);font-size:14px;text-align:center;border-bottom:1px solid var(--line)}.menu-btn{min-height:52px;background:none;border:0;border-bottom:1px solid var(--line);font-size:17px;color:var(--accent)}.menu-btn.danger{color:#f87171}.menu-btn.cancel{font-weight:600;color:var(--text);border-bottom:0}@keyframes fade{0%{opacity:0}}.chip.start{color:#8ab4ff;border-color:#2b3d63}.type-opt .tex{white-space:pre-line}.chip.has-var{position:relative}.chip.has-var:after{content:"";position:absolute;top:5px;right:6px;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.55}.chip.arc-src{filter:brightness(1.25)}.arc{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:none;opacity:0;transform:scale(.7);transition:opacity .15s ease-out,transform .15s cubic-bezier(.2,.8,.2,1)}.arc.open{opacity:1;transform:none}.arc-blur{position:absolute;top:0;right:0;bottom:0;left:0;background:#1e232eb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.arc-svg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;filter:drop-shadow(0 8px 18px rgba(0,0,0,.55))}.arc-outline{fill:none;stroke:#ffffff38;stroke-width:1}.arc-pill{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;padding:6px 12px;min-height:36px;display:flex;align-items:center;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--op);font-size:15px;font-weight:600;transition:transform .16s cubic-bezier(.2,.8,.2,1),background .16s,border-color .16s,color .16s,box-shadow .16s}.arc-pill.start{color:#8ab4ff;border-color:#2b3d63}.arc-pill.hover{transform:translate(-50%,-50%) scale(1.14);background:#33405c;border-color:var(--accent);color:#fff;box-shadow:0 0 14px #3b82f673}.undo-btn{right:auto!important;left:4px}.close-btn:disabled{opacity:.35}.tcard-head .chip{pointer-events:none}
