    #appSplit {
      --sp-bg:#f2f2f7;--sp-surface:#ffffff;--sp-surf2:#f8f8f8;--sp-surf3:#efefef;
      --sp-lime:#1ec254;--sp-lime2:#17a347;--sp-text:#1c1c1e;--sp-sub:#6e6e73;
      --sp-dim:#aeaeb2;--sp-border:#e5e5ea;--sp-green:#34c759;--sp-red:#ff3b30;
      --sp-settle:#e8f8ee;--sp-settle-border:#34c759;--sp-settle-text:#1a7a3c;
      --sp-radius:12px;
      background:var(--sp-bg);color:var(--sp-text);
      font-family:'Inter',sans-serif;
    }
    #appSplit *,#appSplit *::before,#appSplit *::after{box-sizing:border-box;margin:0;padding:0;}
    #appSplit a{color:inherit;text-decoration:none;}
    #appSplit .hidden{display:none!important;}
    /* auth screen — hidden in staff context */
    #sp-authScreen{display:none!important;}
    /* shell */
    #sp-shell{display:flex;flex-direction:column;height:100%;}
    /* header */
    #appSplit .hdr{background:var(--sp-surface);border-bottom:1px solid var(--sp-border);padding:14px 16px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:100;}
    #appSplit .hdr-back{background:none;border:none;color:var(--sp-sub);font-size:1.1rem;cursor:pointer;padding:4px 8px;border-radius:6px;}
    #appSplit .hdr-back:hover{color:var(--sp-text);background:var(--sp-surf2);}
    #appSplit .hdr-title{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;color:var(--sp-lime);flex:1;}
    #appSplit .hdr-sub{font-size:.75rem;color:var(--sp-sub);margin-top:2px;}
    #appSplit .user-pill{display:none;}
    /* bottom nav */
    #appSplit .nav-tabs{display:flex;background:var(--sp-surface);border-top:1px solid var(--sp-border);position:fixed;bottom:0;left:0;right:0;z-index:100;padding-bottom:env(safe-area-inset-bottom,0);}
    #appSplit .nav-tab{flex:1;padding:10px 8px 8px;background:none;border:none;color:var(--sp-dim);font-size:.7rem;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:color .15s;}
    #appSplit .nav-tab i{font-size:1.25rem;}
    #appSplit .nav-tab.active{color:var(--sp-lime);}
    /* pages */
    #appSplit .page{flex:1;overflow-y:auto;padding:16px;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));max-width:600px;margin:0 auto;width:100%;}
    /* cards */
    #appSplit .friend-card{background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:16px;margin-bottom:10px;display:flex;align-items:center;gap:14px;}
    #appSplit .friend-avatar{width:46px;height:46px;border-radius:50%;flex-shrink:0;background:var(--sp-lime);color:#fff;font-weight:700;font-size:1.2rem;display:flex;align-items:center;justify-content:center;}
    #appSplit .friend-info{flex:1;}
    #appSplit .friend-name{font-weight:600;font-size:1rem;color:var(--sp-text);}
    #appSplit .friend-you{font-size:.75rem;color:var(--sp-dim);font-weight:400;}
    #appSplit .friend-bal{font-size:.85rem;margin-top:3px;font-weight:500;}
    #appSplit .friend-bal.pos{color:var(--sp-green);}
    #appSplit .friend-bal.neg{color:var(--sp-red);}
    #appSplit .friend-bal.zero{color:var(--sp-dim);}
    #appSplit .group-card{background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:16px;margin-bottom:10px;cursor:pointer;transition:border-color .15s;}
    #appSplit .group-card:hover{border-color:var(--sp-lime);}
    #appSplit .group-card-row{display:flex;align-items:center;justify-content:space-between;}
    #appSplit .group-card h3{font-size:1rem;font-weight:600;color:var(--sp-text);}
    #appSplit .group-card .meta{font-size:.75rem;color:var(--sp-sub);margin-top:3px;}
    #appSplit .group-bal{text-align:right;}
    #appSplit .group-bal .amt{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;}
    #appSplit .group-bal .amt.pos{color:var(--sp-green);}
    #appSplit .group-bal .amt.neg{color:var(--sp-red);}
    #appSplit .group-bal .lbl{font-size:.72rem;color:var(--sp-sub);}
    #appSplit .group-detail-balance{background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:18px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
    #appSplit .gdb-info .lbl{font-size:.72rem;color:var(--sp-sub);text-transform:uppercase;letter-spacing:.08em;}
    #appSplit .gdb-info .amt{font-family:'Bebas Neue',sans-serif;font-size:2rem;}
    #appSplit .gdb-info .desc{font-size:.82rem;color:var(--sp-sub);}
    /* expense items */
    #appSplit .exp-item{background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:10px;padding:14px;margin-bottom:8px;display:flex;align-items:flex-start;gap:12px;}
    #appSplit .exp-icon{width:38px;height:38px;border-radius:50%;background:var(--sp-surf2);display:flex;align-items:center;justify-content:center;color:var(--sp-sub);font-size:.95rem;flex-shrink:0;}
    #appSplit .exp-icon.settled{background:var(--sp-settle);color:var(--sp-settle-text);}
    #appSplit .exp-body{flex:1;min-width:0;}
    #appSplit .exp-body h4{font-size:.95rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sp-text);}
    #appSplit .exp-meta{font-size:.72rem;color:var(--sp-dim);margin-top:2px;}
    #appSplit .exp-notes{font-size:.77rem;color:var(--sp-sub);margin-top:4px;font-style:italic;}
    #appSplit .exp-right{text-align:right;flex-shrink:0;}
    #appSplit .exp-right .total{font-weight:700;font-size:1rem;color:var(--sp-text);}
    #appSplit .exp-right .share{font-size:.75rem;margin-top:2px;}
    #appSplit .exp-right .share.owe{color:var(--sp-red);}
    #appSplit .exp-right .share.lent{color:var(--sp-green);}
    #appSplit .exp-right .share.settled{color:var(--sp-dim);}
    #appSplit .exp-delete,#appSplit .exp-edit{background:none;border:none;color:var(--sp-dim);cursor:pointer;padding:4px;font-size:.85rem;border-radius:4px;margin-top:2px;}
    #appSplit .exp-delete:hover{color:var(--sp-red);}
    #appSplit .exp-edit:hover{color:var(--sp-lime);}
    #appSplit .settle-dir-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
    #appSplit .settle-dir-name{flex:1;text-align:center;font-weight:600;font-size:.9rem;background:var(--sp-surf2);border-radius:8px;padding:6px 0;color:var(--sp-text);}
    #appSplit .btn-flip{background:var(--sp-surface);border:1.5px solid var(--sp-border);color:var(--sp-lime);border-radius:8px;padding:7px 12px;cursor:pointer;font-size:.85rem;flex-shrink:0;}
    #appSplit .btn-flip:hover{background:var(--sp-lime);color:#fff;}
    #appSplit .set-item{background:var(--sp-settle);border:1px solid var(--sp-settle-border);border-radius:10px;padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:12px;}
    #appSplit .set-item .set-icon{color:var(--sp-settle-text);font-size:1rem;flex-shrink:0;}
    #appSplit .set-item .set-body{flex:1;font-size:.85rem;line-height:1.4;color:var(--sp-settle-text);}
    #appSplit .set-item .set-meta{font-size:.72rem;color:var(--sp-settle-text);opacity:.6;margin-top:2px;}
    #appSplit .set-item .set-amt{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;color:var(--sp-settle-text);white-space:nowrap;}
    #appSplit .set-item .exp-delete{color:var(--sp-settle-text);opacity:.4;}
    #appSplit .set-item .exp-delete:hover{color:var(--sp-red);opacity:1;}
    #appSplit .act-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--sp-border);}
    #appSplit .act-item:last-child{border-bottom:none;}
    #appSplit .act-icon{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.9rem;}
    #appSplit .act-icon.added{background:#e8f8ee;color:var(--sp-green);}
    #appSplit .act-icon.deleted{background:#fff0ef;color:var(--sp-red);}
    #appSplit .act-icon.settle{background:var(--sp-settle);color:var(--sp-settle-text);}
    #appSplit .act-icon.group{background:#e8f0ff;color:#2563eb;}
    #appSplit .act-body{flex:1;}
    #appSplit .act-body p{font-size:.88rem;line-height:1.4;color:var(--sp-text);}
    #appSplit .act-body .time{font-size:.72rem;color:var(--sp-dim);margin-top:3px;}
    #appSplit .date-divider{font-size:.72rem;color:var(--sp-dim);text-transform:uppercase;letter-spacing:.1em;padding:12px 0 6px;font-weight:600;}
    #appSplit .settled-banner{display:flex;align-items:center;gap:10px;background:var(--sp-settle);border:1px solid var(--sp-settle-border);border-radius:var(--sp-radius);padding:14px 16px;margin-bottom:12px;cursor:pointer;user-select:none;}
    #appSplit .settled-banner i{color:var(--sp-settle-text);font-size:1rem;flex-shrink:0;}
    #appSplit .settled-banner-body{flex:1;}
    #appSplit .settled-banner-body strong{font-size:.88rem;color:var(--sp-settle-text);display:block;}
    #appSplit .settled-banner-body span{font-size:.75rem;color:var(--sp-settle-text);opacity:.7;}
    #appSplit .settled-banner-chevron{color:var(--sp-settle-text);opacity:.6;transition:transform .2s;}
    #appSplit .settled-banner.open .settled-banner-chevron{transform:rotate(180deg);}
    #appSplit .settled-history{display:none;}
    #appSplit .settled-history.open{display:block;}
    /* modals */
    #appSplit .modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;align-items:flex-end;justify-content:center;z-index:1000;padding:0;}
    #appSplit .modal-overlay.open{display:flex;}
    #appSplit .modal-box{background:var(--sp-surface);border-top:1px solid var(--sp-border);border-radius:20px 20px 0 0;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;animation:spSlideUp .25s ease;}
    @keyframes spSlideUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
    #appSplit .modal-hdr{padding:18px 20px;border-bottom:1px solid var(--sp-border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--sp-surface);z-index:1;}
    #appSplit .modal-hdr h3{font-size:1.1rem;font-weight:700;}
    #appSplit .modal-close{background:none;border:none;color:var(--sp-sub);font-size:1.2rem;cursor:pointer;}
    #appSplit .modal-body{padding:20px;}
    /* form */
    #appSplit .field{margin-bottom:16px;}
    #appSplit .field label{display:block;font-size:.75rem;color:var(--sp-sub);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em;}
    #appSplit .field input,#appSplit .field select,#appSplit .field textarea{width:100%;padding:12px;background:var(--sp-surf2);border:1px solid var(--sp-border);border-radius:8px;color:var(--sp-text);font-size:.95rem;font-family:inherit;}
    #appSplit .field textarea{resize:vertical;min-height:64px;}
    #appSplit .field input:focus,#appSplit .field select:focus,#appSplit .field textarea:focus{outline:none;border-color:var(--sp-lime);}
    #appSplit .hint{font-size:.72rem;color:var(--sp-dim);margin-top:4px;}
    #appSplit .split-preview{background:var(--sp-surf2);border-radius:8px;padding:12px;margin:12px 0;}
    #appSplit .split-row{display:flex;justify-content:space-between;font-size:.85rem;padding:3px 0;}
    #appSplit .empty{text-align:center;padding:40px 20px;color:var(--sp-sub);}
    #appSplit .empty i{font-size:2.5rem;margin-bottom:12px;opacity:.3;display:block;}
    /* buttons */
    #appSplit .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s;}
    #appSplit .btn:disabled{opacity:.5;cursor:not-allowed;}
    #appSplit .btn-lime{background:var(--sp-lime);color:#fff;}
    #appSplit .btn-lime:hover:not(:disabled){background:var(--sp-lime2);}
    #appSplit .btn-outline{background:transparent;border:1.5px solid var(--sp-border);color:var(--sp-text);}
    #appSplit .btn-outline:hover:not(:disabled){border-color:var(--sp-lime);color:var(--sp-lime);}
    #appSplit .btn-danger{background:var(--sp-red);color:#fff;}
    #appSplit .btn-settle{background:var(--sp-lime);color:#fff;}
    #appSplit .btn-sm{padding:7px 14px;font-size:.8rem;}
    #appSplit .btn-block{width:100%;}
    /* FAB */
    #appSplit .fab{position:fixed;bottom:calc(64px + env(safe-area-inset-bottom,0px));right:20px;width:52px;height:52px;border-radius:50%;background:var(--sp-lime);color:#fff;border:none;font-size:1.3rem;cursor:pointer;box-shadow:0 4px 16px rgba(30,194,84,.4);transition:transform .2s;z-index:99;}
    #appSplit .fab:hover{transform:scale(1.08);}
    /* confirm dialog */
    #appSplit .confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;align-items:center;justify-content:center;z-index:2000;padding:24px;}
    #appSplit .confirm-overlay.open{display:flex;}
    #appSplit .confirm-box{background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:var(--sp-radius);padding:24px;max-width:340px;width:100%;text-align:center;}
    #appSplit .confirm-box h4{font-size:1.1rem;margin-bottom:10px;}
    #appSplit .confirm-box p{font-size:.85rem;color:var(--sp-sub);margin-bottom:20px;}
    #appSplit .confirm-btns{display:flex;gap:10px;}
    /* toast */
    #sp-toast{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:#1c1c1e;color:#fff;padding:10px 20px;border-radius:20px;font-size:.85rem;z-index:3000;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap;}
    #sp-toast.show{opacity:1;}
    /* ── Balances page section headers ── */
    #appSplit .sp-section-hdr{
      display:flex;align-items:center;gap:8px;
      font-size:.72rem;font-weight:700;color:var(--sp-sub);
      letter-spacing:.09em;text-transform:uppercase;
      padding:0 2px;margin-bottom:10px;
    }
    #appSplit .sp-section-hdr i{font-size:.8rem;color:var(--sp-lime);}
    #appSplit .sp-section-hdr::after{
      content:'';flex:1;height:1px;background:var(--sp-border);margin-left:6px;
    }
    #appSplit .sp-section-hdr--groups{margin-top:22px;}

    /* ── Friends wrap — tinted card container ── */
    #appSplit .sp-friends-wrap{
      background:linear-gradient(135deg,rgba(30,194,84,.06) 0%,rgba(30,194,84,.02) 100%);
      border:1.5px solid rgba(30,194,84,.2);
      border-radius:var(--sp-radius);
      padding:12px;
      margin-bottom:4px;
    }
    #appSplit .sp-friends-wrap .friend-card{
      background:var(--sp-surface);
      margin-bottom:8px;
    }
    #appSplit .sp-friends-wrap .friend-card:last-of-type{margin-bottom:8px;}
    #appSplit .sp-friends-wrap .btn-settle{margin-top:4px;}

    /* ── Cash at site chip ── */
    #appSplit .cash-at-site-chip{background:var(--sp-surface);border:1.5px solid var(--sp-border);border-radius:var(--sp-radius);padding:10px 14px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap;}
    #appSplit .cash-at-site-chip.has-cash{border-color:var(--sp-green);background:#edfbf3;}
    #appSplit .cas-info{display:flex;flex-direction:column;gap:1px;}
    #appSplit .cas-label{font-size:.68rem;color:var(--sp-sub);text-transform:uppercase;letter-spacing:.06em;font-weight:600;}
    #appSplit .cas-amount{font-size:1.25rem;font-weight:700;color:var(--sp-text);font-family:'Bebas Neue',sans-serif;}
    #appSplit .cash-at-site-chip.has-cash .cas-amount{color:var(--sp-green);}
    #appSplit .sp-collect-btn{background:var(--sp-lime);color:#fff;border:none;white-space:nowrap;flex-shrink:0;}
    #appSplit .sp-collect-btn:hover{background:var(--sp-lime2);}
    /* ── Collection row ── */
    #appSplit .collection-row{background:#edfbf3;border:1.5px solid #34c759;border-radius:10px;padding:12px 14px;margin-bottom:8px;display:flex;align-items:flex-start;gap:12px;}
    #appSplit .collection-row.short{background:#fff5f5;border-color:#ff3b30;}
    #appSplit .collection-row.over{background:#fffbea;border-color:#f59e0b;}
    #appSplit .col-icon{width:36px;height:36px;border-radius:50%;background:#34c759;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;}
    #appSplit .collection-row.short .col-icon{background:#ff3b30;}
    #appSplit .collection-row.over .col-icon{background:#f59e0b;}
    #appSplit .col-body{flex:1;min-width:0;}
    #appSplit .col-title{font-size:.92rem;font-weight:600;color:var(--sp-text);}
    #appSplit .col-detail{font-size:.82rem;margin-top:3px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--sp-sub);}
    #appSplit .col-collected{font-weight:700;color:var(--sp-text);font-size:.95rem;}
    #appSplit .col-sep{opacity:.4;}
    #appSplit .col-notes{font-size:.77rem;color:var(--sp-sub);margin-top:4px;font-style:italic;}
    #appSplit .col-meta{font-size:.72rem;color:var(--sp-dim);margin-top:4px;}
    /* ── Status badges ── */
    #appSplit .cas-status{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:100px;font-size:.74rem;font-weight:600;}
    #appSplit .cas-status.matched{background:#e8f8ee;color:#1a7a3c;}
    #appSplit .cas-status.over{background:#fffbea;color:#92400e;}
    #appSplit .cas-status.short{background:#fff5f5;color:#c0392b;}
