:root {
  --spb-primary:#000;
  --spb-canvas:#fff;
  --spb-soft:#f5f5f2;
  --spb-hairline:#d9d9d4;
  --spb-hairline-soft:#ecece8;
  --spb-lime:#c7f464;
  --spb-lilac:#c5b8ff;
  --spb-cream:#f4efe4;
  --spb-pink:#f4c3d7;
  --spb-ink:#000;
  --spb-space-1:4px;
  --spb-space-2:8px;
  --spb-space-3:12px;
  --spb-space-4:16px;
  --spb-space-5:24px;
  --spb-space-6:32px;
  --spb-space-7:48px;
  --spb-radius-sm:6px;
  --spb-radius-md:8px;
  --spb-radius-lg:24px;
  --spb-pill:50px;
  --spb-full:9999px;
  --spb-sans:Inter,"SF Pro Display",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --spb-mono:"JetBrains Mono","SF Mono",Menlo,Consolas,monospace;
}

[hidden]{display:none!important}
html{background:var(--spb-canvas)}
.spb-body{margin:0;background:var(--spb-canvas);color:var(--spb-ink)}
.spb-app,.spb-app *{box-sizing:border-box}
.spb-app{display:flex;min-height:100vh;background:var(--spb-canvas);color:var(--spb-ink);font-family:var(--spb-sans);font-size:16px;font-weight:330;line-height:1.45;-webkit-font-smoothing:antialiased}
.spb-app a{color:inherit}
.spb-app button,.spb-app input,.spb-app select{font:inherit}

.spb-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;width:224px;min-height:0;flex-direction:column;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--spb-hairline-soft);background:var(--spb-canvas);padding:24px 20px 20px;scrollbar-width:none;-ms-overflow-style:none}
.spb-sidebar::-webkit-scrollbar{display:none;width:0;height:0}
.spb-brand{display:flex;align-items:center;justify-content:center;padding:0 8px}
.spb-brand-logo{display:block;width:148px;height:auto;max-height:72px;object-fit:contain;object-position:center}
.spb-brand-dot{display:none}
.spb-side-nav{margin-top:34px;flex:0 0 auto}
.spb-nav-label,.spb-eyebrow{margin:0;font-family:var(--spb-mono);font-size:11px;font-weight:400;line-height:1.2;letter-spacing:.6px;text-transform:uppercase}
.spb-nav-label{padding:0 12px 10px}
.spb-nav-label--spaced{margin-top:30px}
.spb-nav-link{display:flex;min-height:42px;align-items:center;gap:12px;border-radius:var(--spb-pill);padding:8px 12px;font-size:15px;font-weight:480;text-decoration:none}
.spb-nav-link:hover{background:var(--spb-soft)}
.spb-nav-link[aria-current="page"]{background:var(--spb-primary);color:#fff}
.spb-nav-icon{display:grid;width:18px;height:18px;flex:0 0 18px;place-items:center}
.spb-nav-icon svg{display:block;width:18px;height:18px;stroke:currentColor}
.spb-nav-arrow{display:grid;width:16px;height:16px;margin-left:auto;place-items:center}
.spb-nav-arrow svg{display:block;width:14px;height:14px;stroke:currentColor}
.spb-sidebar-foot{display:flex;align-items:center;gap:9px;margin-top:auto;padding:14px 12px 4px;border-top:1px solid var(--spb-hairline-soft);font-family:var(--spb-mono);font-size:10px;letter-spacing:.3px}
.spb-sidebar-copyright{line-height:1.45;color:#5b5b56}
.spb-purge-cache-form{display:none!important}
.spb-nav-link[aria-disabled="true"]{opacity:.55;pointer-events:none}

.spb-workspace{width:100%;min-width:0;margin-left:224px}
.spb-main{width:min(100%,1220px);margin:0 auto;padding:52px 48px 80px}
.spb-mobile-bar{display:none}
.spb-view{animation:spb-enter .18s ease-out}
@keyframes spb-enter{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

.spb-overview-head,.spb-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:32px}
.spb-overview-head h1,.spb-page-header h1{margin:5px 0 5px;font-size:36px;font-weight:540;line-height:1.1;letter-spacing:-.65px}
.spb-overview-head>div>p:last-child,.spb-page-header>div>p:last-child{max-width:610px;margin:0;font-size:16px;font-weight:330}
.spb-head-actions{display:flex;align-items:center;gap:12px}
.spb-month-control{display:flex;min-height:44px;align-items:center;gap:4px;border:1px solid var(--spb-hairline);border-radius:var(--spb-pill);padding:4px;background:var(--spb-canvas);color:var(--spb-ink)}
.spb-month-control button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:var(--spb-full);background:transparent;color:var(--spb-ink);font-size:22px;line-height:1;cursor:pointer}
.spb-month-control button:hover{background:var(--spb-soft)}
.spb-month-control strong{font-size:14px;font-weight:480;white-space:nowrap}

.spb-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:0;border-radius:var(--spb-pill);padding:8px 22px;background:var(--spb-primary);color:#fff!important;font-size:16px;font-weight:480;line-height:1.4;text-decoration:none;white-space:nowrap;cursor:pointer}
.spb-button:hover{transform:scale(.985)}
.spb-button--quiet{border:0;background:var(--spb-soft);color:var(--spb-ink)!important}
.spb-button--small{min-height:40px;padding:7px 17px;font-size:14px}
.spb-icon-button{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:var(--spb-full);background:var(--spb-soft);color:var(--spb-ink);cursor:pointer}
.spb-button:focus-visible,.spb-icon-button:focus-visible,.spb-nav-link:focus-visible,.spb-input:focus-visible,.spb-select:focus-visible,.spb-month-control:focus-visible{outline:3px solid #5b9dd9;outline-offset:2px;box-shadow:none}

.spb-month-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);overflow:hidden;border-radius:var(--spb-radius-lg);background:var(--spb-lime)}
.spb-month-primary{display:flex;min-height:230px;flex-direction:column;justify-content:center;padding:38px 40px}
.spb-hero-amount{margin:12px 0 2px;font-size:52px;font-weight:340;line-height:1;letter-spacing:-1.1px}
.spb-support-copy{max-width:510px;margin:12px 0 0;font-size:15px;font-weight:330}
.spb-month-stats{display:grid;align-content:center;border-left:1px solid rgba(0,0,0,.2);padding:22px 34px}
.spb-month-stats>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid rgba(0,0,0,.18)}
.spb-month-stats>div:last-child{border-bottom:0}
.spb-month-stats span{font-size:14px;font-weight:330}
.spb-month-stats strong{font-size:19px;font-weight:540;white-space:nowrap}

.spb-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:20px;margin-top:20px}
.spb-panel{border:1px solid var(--spb-hairline);border-radius:var(--spb-radius-lg);background:var(--spb-canvas)}
.spb-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 24px 18px}
.spb-panel-head h2{margin:5px 0 0;font-size:21px;font-weight:540;line-height:1.25;letter-spacing:-.2px}
.spb-panel-head a{padding-top:15px;font-size:14px;font-weight:480}
.spb-category-list{padding:0 24px 22px}
.spb-empty-list{padding:26px 0;font-size:14px}
.spb-category-row{padding:14px 0;border-top:1px solid var(--spb-hairline-soft)}
.spb-category-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:9px;font-size:14px}
.spb-category-row strong{font-weight:480}
.spb-progress{height:6px;overflow:hidden;border-radius:var(--spb-full);background:var(--spb-soft)}
.spb-progress span{display:block;height:100%;border-radius:inherit;background:var(--spb-primary)}
.spb-empty-compact{display:flex;min-height:266px;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:left}
.spb-empty-compact strong{font-size:16px;font-weight:540}
.spb-empty-compact p{max-width:250px;margin:3px 0 0;font-size:14px}
.spb-empty-icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:var(--spb-full);background:var(--spb-soft);font-size:24px;font-weight:320}
.spb-debt-summary{min-height:266px;padding:28px 24px;background:var(--spb-cream);border-radius:0 0 calc(var(--spb-radius-lg) - 1px) calc(var(--spb-radius-lg) - 1px)}
.spb-debt-summary>strong{display:block;font-size:38px;font-weight:340;line-height:1.1;letter-spacing:-.6px}
.spb-debt-summary>p{max-width:310px;margin:9px 0 25px;font-size:14px}
.spb-activity-wide{margin-top:20px}
.spb-activity-wide .spb-empty-compact{min-height:150px}
.spb-recent-row{display:grid;grid-template-columns:90px minmax(0,1fr) 110px;align-items:center;gap:16px;padding:14px 24px;border-top:1px solid var(--spb-hairline-soft);font-size:14px}
.spb-recent-row strong{font-weight:540;text-align:right}
.spb-recent-row small{font-size:12px}

.spb-page-header{padding-bottom:26px;border-bottom:1px solid var(--spb-hairline-soft);margin-bottom:28px}
.spb-view-action{display:flex;justify-content:flex-end;margin-top:-82px;margin-bottom:36px}
.spb-toolbar{display:flex;gap:12px;margin-bottom:18px}
.spb-search{flex:1}
.spb-input,.spb-select{min-height:46px;border:1px solid var(--spb-hairline);border-radius:var(--spb-radius-md);padding:10px 13px;background:var(--spb-canvas);color:var(--spb-ink);font-size:15px;font-weight:330;box-shadow:none}
.spb-input{width:100%}
.spb-input::placeholder{color:var(--spb-ink);opacity:1}
.spb-table-scroll{overflow-x:auto}
.spb-table{width:100%;min-width:720px;border-collapse:collapse}
.spb-table th,.spb-table td{padding:15px 20px;border-bottom:1px solid var(--spb-hairline-soft);text-align:left}
.spb-table th{font-family:var(--spb-mono);font-size:10px;font-weight:400;letter-spacing:.6px;text-transform:uppercase}
.spb-table td{font-size:14px}.spb-table td strong{font-weight:540}.spb-type-badge{display:inline-block;border-radius:var(--spb-pill);padding:4px 8px;background:var(--spb-soft);font-family:var(--spb-mono);font-size:10px;letter-spacing:.4px;text-transform:uppercase}.spb-type-badge--income{background:var(--spb-lime)}
.spb-empty-state{display:grid;min-height:330px;place-items:center;align-content:center;padding:40px;text-align:center}
.spb-empty-state h2{margin:14px 0 2px;font-size:20px;font-weight:540}
.spb-empty-state p{margin:0 0 20px;font-size:15px}
.spb-debt-hero{display:grid;grid-template-columns:2fr 1fr;overflow:hidden;margin-bottom:20px;border-radius:var(--spb-radius-lg);background:var(--spb-cream)}
.spb-debt-hero>div{padding:30px 32px;border-right:1px solid rgba(0,0,0,.14)}
.spb-debt-hero>div:last-child{border-right:0}
.spb-debt-hero strong{display:block;margin-top:9px;font-size:36px;font-weight:340;line-height:1.1;letter-spacing:-.5px}
.spb-debt-list{overflow:hidden}
.spb-debt-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:17px 24px;border-top:1px solid var(--spb-hairline-soft)}
.spb-debt-order{display:grid;width:34px;height:34px;place-items:center;border-radius:var(--spb-full);background:var(--spb-soft);font-family:var(--spb-mono);font-size:11px}
.spb-debt-row h3{margin:0;font-size:16px;font-weight:540}.spb-debt-row p{margin:2px 0 0;font-size:13px}.spb-debt-row>strong{font-size:16px;font-weight:540}
.spb-debt-move{display:flex;gap:4px}.spb-debt-move button{display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:var(--spb-full);background:var(--spb-soft);color:var(--spb-ink);cursor:pointer}.spb-debt-move button:disabled{opacity:.3;cursor:default}

.spb-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.spb-count{display:grid;width:36px;height:36px;place-items:center;border-radius:var(--spb-full);background:var(--spb-soft);font-size:13px;font-weight:480}
.spb-category-names{display:flex;min-height:120px;align-content:flex-start;flex-wrap:wrap;gap:8px;padding:24px;border-top:1px solid var(--spb-hairline-soft)}
.spb-category-chip{border-radius:var(--spb-pill);padding:7px 12px;background:var(--spb-soft);font-size:13px;font-weight:480}
.spb-settings-panel{overflow:hidden}
.spb-settings-row{display:grid;grid-template-columns:minmax(0,1fr) 240px;align-items:center;gap:32px;padding:24px;border-bottom:1px solid var(--spb-hairline-soft)}
.spb-settings-row h2{margin:0 0 3px;font-size:17px;font-weight:540}
.spb-settings-row p{margin:0;font-size:14px}
.spb-settings-actions{display:flex;justify-content:flex-end;padding:20px 24px}

.spb-sidebar-scrim{position:fixed;inset:0;z-index:25;background:rgba(0,0,0,.55)}
.spb-toast{position:fixed;right:24px;bottom:24px;z-index:60;border-radius:var(--spb-pill);padding:12px 18px;background:var(--spb-primary);color:#fff;font-size:14px;font-weight:480}
.spb-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px}
.spb-modal-scrim{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.spb-modal-card{position:relative;width:min(100%,600px);max-height:calc(100vh - 48px);overflow:auto;border-radius:var(--spb-radius-lg);padding:28px;background:var(--spb-canvas)}
.spb-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.spb-modal-head h2{margin:5px 0 0;font-size:25px;font-weight:540;letter-spacing:-.25px}
.spb-entry-form .spb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.spb-field{display:flex;flex-direction:column;gap:7px}.spb-field--wide{grid-column:1/-1}.spb-field label{font-size:14px;font-weight:480}.spb-field label span{font-weight:330}
.spb-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:20px;border-radius:var(--spb-pill);padding:4px;background:var(--spb-soft)}.spb-type-toggle input{position:absolute;opacity:0}.spb-type-toggle span{display:block;border-radius:var(--spb-pill);padding:9px 16px;text-align:center;font-weight:480;cursor:pointer}.spb-type-toggle input:checked+span{background:var(--spb-primary);color:#fff}
.spb-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.spb-form-error{margin-top:16px;border-radius:var(--spb-radius-md);padding:12px 14px;background:var(--spb-pink);font-size:14px;font-weight:480}
.spb-is-loading{opacity:.62;pointer-events:none}

@media(max-width:1040px){
  .spb-main{padding:40px 32px 70px}
  .spb-month-card{grid-template-columns:1fr}
  .spb-month-stats{grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(0,0,0,.18);border-left:0;padding:0 26px}
  .spb-month-stats>div{display:block;padding:20px 14px;border-right:1px solid rgba(0,0,0,.18);border-bottom:0}
  .spb-month-stats>div:last-child{border-right:0}
  .spb-month-stats strong{display:block;margin-top:5px}
  .spb-dashboard-grid{grid-template-columns:1fr}
  .spb-empty-compact{min-height:180px}
}
@media(max-width:820px){
  .spb-sidebar{transform:translateX(-100%);transition:transform .2s ease}
  .spb-sidebar.is-open{transform:none}
  .spb-workspace{margin-left:0}
  .spb-mobile-bar{position:sticky;top:0;z-index:20;display:flex;height:64px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--spb-hairline-soft);padding:0 20px;background:var(--spb-canvas)}
  .spb-mobile-bar strong{font-size:16px;font-weight:700}
  .spb-mobile-brand{display:flex;align-items:center;justify-content:center;height:46px}
  .spb-mobile-brand img{display:block;width:130px;height:46px;object-fit:contain}
  .spb-menu-button{gap:4px;padding:12px}
  .spb-menu-button span{display:block;width:16px;height:1.5px;background:var(--spb-primary)}
  .spb-main{padding:34px 22px 60px}
}
@media(max-width:640px){
  .spb-main{padding:28px 16px 50px}
  .spb-overview-head,.spb-page-header{align-items:flex-start;flex-direction:column;margin-bottom:24px}
  .spb-overview-head h1,.spb-page-header h1{font-size:31px}
  .spb-head-actions{width:100%;justify-content:space-between}
  .spb-head-actions .spb-button{flex:1}
  .spb-month-primary{min-height:210px;padding:28px 24px}
  .spb-hero-amount{font-size:42px}
  .spb-month-stats{grid-template-columns:1fr;padding:0 24px}
  .spb-month-stats>div{display:flex;padding:15px 0;border-right:0;border-bottom:1px solid rgba(0,0,0,.18)}
  .spb-month-stats>div:last-child{border-bottom:0}
  .spb-month-stats strong{display:block;margin-top:0}
  .spb-toolbar{align-items:stretch;flex-direction:column}
  .spb-two-columns{grid-template-columns:1fr}
  .spb-debt-hero{grid-template-columns:1fr}
  .spb-debt-hero>div{border-right:0;border-bottom:1px solid rgba(0,0,0,.14)}
  .spb-debt-hero>div:last-child{border-bottom:0}
  .spb-settings-row{grid-template-columns:1fr;gap:16px}
  .spb-settings-row .spb-select{width:100%}
  .spb-settings-actions .spb-button{width:100%}
  .spb-view-action{justify-content:stretch;margin:0 0 24px}.spb-view-action .spb-button{width:100%}
  .spb-entry-form .spb-form-grid{grid-template-columns:1fr}.spb-field--wide{grid-column:auto}
  .spb-modal{padding:0;place-items:end center}.spb-modal-card{width:100%;max-height:94vh;border-radius:var(--spb-radius-lg) var(--spb-radius-lg) 0 0;padding:24px 18px}
  .spb-recent-row{grid-template-columns:72px minmax(0,1fr);gap:10px}.spb-recent-row strong{grid-column:2;text-align:left}
  .spb-debt-row{grid-template-columns:36px minmax(0,1fr) auto}.spb-debt-row>strong{grid-column:2}.spb-debt-move{grid-column:3;grid-row:1/3}
  .spb-toast{right:16px;bottom:16px;left:16px;text-align:center}
}

/* Mobile floating dock, adapted from the React Bits Dock interaction. */
.spb-bottom-nav{display:none}
@media(max-width:820px){
  .spb-main{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}
  .spb-bottom-nav{
    position:fixed;left:50%;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:40;
    display:flex;align-items:flex-end;justify-content:center;gap:14px;width:max-content;max-width:calc(100vw - 20px);
    min-height:68px;padding:8px;border:1px solid #222;border-radius:18px;background:#120f17;color:#fff;
    box-shadow:0 14px 38px rgba(0,0,0,.22);transform:translateX(-50%);
    scrollbar-width:none;-ms-overflow-style:none;isolation:isolate;
  }
  .spb-bottom-nav::-webkit-scrollbar{display:none;width:0;height:0}
  .spb-bottom-nav-link{
    --spb-dock-size:50px;position:relative;display:flex;width:var(--spb-dock-size);height:var(--spb-dock-size);flex:0 0 var(--spb-dock-size);align-items:center;justify-content:center;
    border:1px solid #2b2730;border-radius:10px;background:#120f17;color:#fff;text-decoration:none;outline:0;cursor:pointer;
    box-shadow:0 4px 6px -1px rgba(0,0,0,.10),0 2px 4px -1px rgba(0,0,0,.06);
    transition:width 90ms linear,height 90ms linear,flex-basis 90ms linear,border-color .16s ease,background-color .16s ease,color .16s ease;
    -webkit-tap-highlight-color:transparent;will-change:transform;
  }
  .spb-bottom-nav-link svg{display:block;width:22px;height:22px;stroke:currentColor;stroke-width:1.75;pointer-events:none}
  .spb-bottom-nav-link span{
    position:absolute;top:-31px;left:50%;z-index:2;width:max-content;max-width:120px;pointer-events:none;
    border:1px solid #2b2730;border-radius:6px;padding:3px 8px;background:#120f17;color:#fff;font-size:11px;font-weight:480;line-height:1.2;white-space:nowrap;
    opacity:0;transform:translate(-50%,5px);transition:opacity .16s ease,transform .16s ease;
  }
  .spb-bottom-nav-link:hover span,.spb-bottom-nav-link:focus-visible span,.spb-bottom-nav-link.is-dock-near span{opacity:1;transform:translate(-50%,-5px)}
  .spb-bottom-nav-link:hover,.spb-bottom-nav-link:focus-visible{border-color:#4a4450}
  .spb-bottom-nav-link:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #120f17}
  .spb-bottom-nav-link[aria-current="page"]{border-color:var(--spb-lime);background:var(--spb-lime);color:#000}
    .spb-bottom-nav-link:active{--spb-dock-size:58px!important}
  .spb-toast{bottom:calc(94px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:380px){
  .spb-bottom-nav{gap:10px;padding:7px}
  .spb-bottom-nav-link{--spb-dock-size:46px}
}
@media(hover:none) and (pointer:coarse){
  .spb-bottom-nav-link:hover span{opacity:0;transform:translate(-50%,5px)}
  .spb-bottom-nav-link:focus-visible span{opacity:1;transform:translate(-50%,-5px)}
}

/* DreamStead public home login. */
.spb-login-body{margin:0;min-height:100vh;background:var(--spb-canvas);color:var(--spb-ink);font-family:var(--spb-sans);-webkit-font-smoothing:antialiased}
.spb-login-body *{box-sizing:border-box}
.spb-login-page{display:grid;min-height:100vh;min-height:100dvh;place-items:center;padding:40px 20px calc(40px + env(safe-area-inset-bottom,0px))}
.spb-login-card{width:min(100%,420px)}
.spb-login-brand{display:flex;justify-content:center;margin-bottom:44px}
.spb-login-brand img{display:block;width:190px;max-width:60vw;height:auto;object-fit:contain}
.spb-login-copy{margin-bottom:30px}
.spb-login-copy .spb-eyebrow{margin-bottom:12px}
.spb-login-copy h1{margin:0;font-size:40px;font-weight:360;line-height:1.02;letter-spacing:-1.1px}
.spb-login-copy p:last-child{margin:11px 0 0;font-size:15px;line-height:1.5}
.spb-login-form{display:grid;gap:18px}
.spb-login-field{display:grid;gap:8px;font-size:13px;font-weight:480}
.spb-login-field input{width:100%;min-height:52px;border:1px solid var(--spb-hairline);border-radius:12px;outline:0;padding:12px 14px;background:#fff;color:#000;font:inherit;font-size:16px;box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}
.spb-login-field input:focus{border-color:#000;box-shadow:0 0 0 1px #000}
.spb-login-remember{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer}
.spb-login-remember input{width:16px;height:16px;margin:0;accent-color:#000}
.spb-login-submit{min-height:52px;border:0;border-radius:var(--spb-pill);padding:12px 20px;background:#000;color:#fff;font:inherit;font-size:15px;font-weight:540;cursor:pointer;-webkit-tap-highlight-color:transparent}
.spb-login-submit:hover{opacity:.86}
.spb-login-submit:active{transform:scale(.99)}
.spb-login-error{margin-bottom:18px;border-radius:12px;padding:12px 14px;background:var(--spb-pink);font-size:13px;font-weight:480;line-height:1.4}
@media(max-width:640px){
  .spb-login-page{place-items:start center;padding:calc(58px + env(safe-area-inset-top,0px)) 22px calc(32px + env(safe-area-inset-bottom,0px))}
  .spb-login-brand{margin-bottom:54px}
  .spb-login-brand img{width:164px}
  .spb-login-copy h1{font-size:36px}
}

/* DreamStead 6-digit PIN login. */
.spb-pin-card{width:min(100%,390px)}
.spb-pin-copy{text-align:center}
.spb-pin-copy .spb-eyebrow{justify-content:center}
.spb-pin-form{gap:22px}
.spb-pin-input-wrap{position:relative;display:block;cursor:text}
.spb-pin-input{position:absolute;inset:0;width:100%;height:100%;opacity:.01;z-index:2;border:0;font-size:16px;color:transparent;background:transparent;caret-color:transparent}
.spb-pin-dots{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;width:100%}
.spb-pin-dots i{display:flex;aspect-ratio:1;align-items:center;justify-content:center;border:1px solid var(--spb-hairline);border-radius:14px;background:#fff;transition:border-color .15s ease,transform .15s ease,background .15s ease}
.spb-pin-dots i:after{content:"";width:11px;height:11px;border-radius:50%;background:#000;opacity:0;transform:scale(.45);transition:opacity .12s ease,transform .12s ease}
.spb-pin-dots i.is-filled{border-color:#000;transform:translateY(-1px)}
.spb-pin-dots i.is-filled:after{opacity:1;transform:scale(1)}
.spb-pin-input:focus + .spb-pin-dots i{border-color:#aaa}
.spb-pin-input:focus + .spb-pin-dots i.is-filled{border-color:#000}
.spb-login-recovery{display:block;margin-top:20px;text-align:center;color:var(--spb-ink);font-size:13px;text-decoration:underline;text-underline-offset:3px}
.spb-login-note{margin:18px 0 0;text-align:center;font-size:12px;line-height:1.5;color:var(--spb-muted)}
.screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:600px){.spb-pin-dots{gap:7px}.spb-pin-dots i{border-radius:12px}}

/* DreamStead mobile application polish — mobile only. */
@media (max-width:820px){
  html,.spb-body{min-height:100%;overscroll-behavior-y:none;background:var(--spb-canvas)}
  .spb-body{-webkit-text-size-adjust:100%;touch-action:manipulation}
  .spb-app{min-height:100dvh;font-size:15px;overflow-x:hidden}
  .spb-app button,.spb-app a,.spb-app input,.spb-app select,.spb-app summary{-webkit-tap-highlight-color:transparent}

  .spb-mobile-bar{
    height:54px;padding:0 max(14px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));
    border-bottom-color:rgba(0,0,0,.06);background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px)
  }
  .spb-mobile-brand{height:40px}.spb-mobile-brand img{width:108px;height:38px}
  .spb-menu-button{width:40px;height:40px;display:grid;place-content:center;padding:0;border-radius:50%}
  .spb-menu-button:active{background:var(--spb-soft);transform:scale(.96)}
  .spb-menu-button span{width:15px}

  .spb-main{padding:20px 14px calc(88px + env(safe-area-inset-bottom,0px));max-width:100vw}
  .spb-view{animation:spb-mobile-enter .22s cubic-bezier(.2,.8,.2,1)}
  @keyframes spb-mobile-enter{from{opacity:.3;transform:translate3d(8px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}

  .spb-overview-head,.spb-page-header{gap:14px;margin-bottom:18px}
  .spb-page-header{padding-bottom:16px}
  .spb-overview-head h1,.spb-page-header h1{margin:3px 0;font-size:27px;line-height:1.08;letter-spacing:-.45px}
  .spb-overview-head>div>p:last-child,.spb-page-header>div>p:last-child{font-size:13px;line-height:1.45}
  .spb-eyebrow,.spb-nav-label{font-size:9px;letter-spacing:.5px}
  .spb-head-actions{gap:8px}
  .spb-month-control{min-height:38px;padding:3px}.spb-month-control button{width:30px;height:30px}.spb-month-control strong{font-size:12px}
  .spb-button{min-height:40px;padding:7px 16px;font-size:14px}.spb-button--small{min-height:36px;padding:6px 13px;font-size:12px}
  .spb-icon-button{width:40px;height:40px}

  .spb-panel,.spb-month-card,.spb-debt-hero{border-radius:16px}
  .spb-panel-head{padding:16px 16px 12px;gap:12px}.spb-panel-head h2{font-size:17px}.spb-panel-head a{padding-top:9px;font-size:12px}
  .spb-category-list{padding:0 16px 14px}.spb-category-row{padding:11px 0}.spb-category-row>div:first-child{font-size:12px;margin-bottom:7px}
  .spb-progress{height:5px}
  .spb-dashboard-grid,.spb-activity-wide{gap:12px;margin-top:12px}
  .spb-empty-compact{min-height:132px;padding:18px;gap:12px}.spb-empty-icon{width:36px;height:36px;font-size:20px}.spb-empty-compact strong{font-size:14px}.spb-empty-compact p{font-size:12px}
  .spb-debt-summary{min-height:0;padding:20px 16px}.spb-debt-summary>strong{font-size:30px}.spb-debt-summary>p{margin:7px 0 16px;font-size:12px}

  .spb-month-primary{min-height:0;padding:22px 18px}.spb-hero-amount{margin:8px 0 0;font-size:38px;letter-spacing:-.8px}.spb-support-copy{margin-top:8px;font-size:12px}
  .spb-month-stats{grid-template-columns:repeat(3,minmax(0,1fr));padding:0;border-top:1px solid rgba(0,0,0,.13)}
  .spb-month-stats>div{display:block;min-width:0;padding:12px 10px;border-right:1px solid rgba(0,0,0,.13);border-bottom:0}
  .spb-month-stats>div:last-child{border-right:0}.spb-month-stats span{display:block;font-size:9px;line-height:1.25}.spb-month-stats strong{display:block;margin-top:4px;font-size:13px;overflow:hidden;text-overflow:ellipsis}

  .spb-input,.spb-select{min-height:42px;padding:8px 11px;font-size:16px;border-radius:10px}
  .spb-toolbar{gap:8px;margin-bottom:12px}
  .spb-table-scroll{margin-inline:-14px;padding-inline:14px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.spb-table-scroll::-webkit-scrollbar{display:none}
  .spb-table th,.spb-table td{padding:12px 14px}.spb-table td{font-size:12px}

  .spb-modal{align-items:end;padding:0}.spb-modal-scrim{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  .spb-modal-card{max-height:calc(92dvh - env(safe-area-inset-top,0px));padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;scrollbar-width:none;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .spb-modal-card::-webkit-scrollbar{display:none}.spb-modal-head{margin-bottom:16px}.spb-modal-head h2{font-size:21px}.spb-entry-form .spb-form-grid{gap:13px}.spb-field{gap:5px}.spb-field label{font-size:12px}.spb-type-toggle{margin-bottom:14px}.spb-type-toggle span{padding:8px 10px;font-size:13px}.spb-modal-actions{position:sticky;bottom:calc(-18px - env(safe-area-inset-bottom,0px));margin:18px -16px calc(-18px - env(safe-area-inset-bottom,0px));padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  .spb-form-error{font-size:12px}

  .spb-toast{right:14px;left:14px;bottom:calc(78px + env(safe-area-inset-bottom,0px));padding:10px 14px;font-size:12px;box-shadow:0 10px 30px rgba(0,0,0,.18)}

  .spb-sidebar{width:min(84vw,300px);padding:calc(18px + env(safe-area-inset-top,0px)) 18px calc(18px + env(safe-area-inset-bottom,0px));box-shadow:18px 0 45px rgba(0,0,0,.14)}
  .spb-brand-logo{width:124px;max-height:58px}.spb-side-nav{margin-top:24px}.spb-nav-label--spaced{margin-top:20px}.spb-nav-link{min-height:40px;padding:7px 10px;font-size:14px}

  .spb-bottom-nav{
    bottom:calc(8px + env(safe-area-inset-bottom,0px));min-height:58px;gap:7px;padding:6px;
    max-width:calc(100vw - 24px);border-radius:17px;background:rgba(18,15,23,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    box-shadow:0 10px 28px rgba(0,0,0,.22)
  }
  .spb-bottom-nav-link{--spb-dock-size:44px;border-radius:11px;transition:width .16s cubic-bezier(.2,.8,.2,1),height .16s cubic-bezier(.2,.8,.2,1),flex-basis .16s cubic-bezier(.2,.8,.2,1),background-color .16s ease,color .16s ease,transform .12s ease}
  .spb-bottom-nav-link svg{width:20px;height:20px}.spb-bottom-nav-link:active{--spb-dock-size:44px!important;transform:scale(.92)}
  .spb-bottom-nav-link span{top:-28px;font-size:10px}
}
@media(max-width:380px){
  .spb-main{padding-inline:12px}.spb-bottom-nav{gap:5px;padding:5px}.spb-bottom-nav-link{--spb-dock-size:42px}.spb-bottom-nav-link svg{width:19px;height:19px}
}
@media(hover:none) and (pointer:coarse){
  .spb-bottom-nav-link span{display:none}
}
@media(prefers-reduced-motion:reduce){
  .spb-view,.spb-sidebar,.spb-bottom-nav-link,.spb-button,.spb-modal-card{animation:none!important;transition:none!important}
}

/* DreamStead v1.3.1 mobile comfort pass: preserve app layout, restore breathing room. */
@media(max-width:820px){
  .spb-app{font-size:16px}
  .spb-mobile-bar{height:60px;padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px))}
  .spb-mobile-brand{height:44px}.spb-mobile-brand img{width:116px;height:42px}
  .spb-menu-button{width:44px;height:44px}
  .spb-main{padding:24px 16px calc(96px + env(safe-area-inset-bottom,0px))}
  .spb-overview-head,.spb-page-header{gap:16px;margin-bottom:22px}.spb-page-header{padding-bottom:18px}
  .spb-overview-head h1,.spb-page-header h1{font-size:30px;line-height:1.1;letter-spacing:-.5px}
  .spb-overview-head>div>p:last-child,.spb-page-header>div>p:last-child{font-size:14px;line-height:1.5}
  .spb-eyebrow,.spb-nav-label{font-size:10px;letter-spacing:.55px}
  .spb-head-actions{gap:10px}
  .spb-month-control{min-height:42px;padding:4px}.spb-month-control button{width:34px;height:34px}.spb-month-control strong{font-size:13px}
  .spb-button{min-height:44px;padding:9px 17px;font-size:14px}.spb-button--small{min-height:40px;padding:8px 14px;font-size:13px}.spb-icon-button{width:44px;height:44px}
  .spb-panel,.spb-month-card,.spb-debt-hero{border-radius:18px}
  .spb-panel-head{padding:19px 18px 14px;gap:14px}.spb-panel-head h2{font-size:18px}.spb-panel-head a{font-size:13px}
  .spb-category-list{padding:0 18px 16px}.spb-category-row{padding:13px 0}.spb-category-row>div:first-child{font-size:13px;margin-bottom:8px}
  .spb-dashboard-grid,.spb-activity-wide{gap:15px;margin-top:15px}
  .spb-empty-compact{min-height:150px;padding:22px;gap:14px}.spb-empty-icon{width:40px;height:40px;font-size:22px}.spb-empty-compact strong{font-size:15px}.spb-empty-compact p{font-size:13px}
  .spb-debt-summary{padding:24px 19px}.spb-debt-summary>strong{font-size:34px}.spb-debt-summary>p{font-size:13px}
  .spb-month-primary{padding:27px 21px}.spb-hero-amount{margin-top:9px;font-size:41px}.spb-support-copy{font-size:13px}
  .spb-month-stats>div{padding:15px 12px}.spb-month-stats span{font-size:10px}.spb-month-stats strong{margin-top:5px;font-size:14px}
  .spb-input,.spb-select{min-height:46px;padding:10px 13px;font-size:16px;border-radius:12px}
  .spb-toolbar{gap:10px;margin-bottom:15px}
  .spb-table th,.spb-table td{padding:14px 15px}.spb-table td{font-size:13px}
  .spb-modal-card{padding:22px 18px calc(22px + env(safe-area-inset-bottom,0px));border-radius:22px 22px 0 0}
  .spb-modal-head{margin-bottom:19px}.spb-modal-head h2{font-size:23px}.spb-entry-form .spb-form-grid{gap:16px}.spb-field{gap:7px}.spb-field label{font-size:13px}.spb-type-toggle{margin-bottom:17px}.spb-type-toggle span{padding:10px 12px;font-size:14px}
  .spb-form-error{font-size:13px}.spb-toast{padding:12px 15px;font-size:13px}
  .spb-sidebar{width:min(86vw,310px)}.spb-nav-link{min-height:44px;padding:9px 11px;font-size:15px}
  .spb-bottom-nav{bottom:calc(9px + env(safe-area-inset-bottom,0px));min-height:62px;gap:8px;padding:7px;max-width:calc(100vw - 22px);border-radius:18px}
  .spb-bottom-nav-link{--spb-dock-size:46px;border-radius:12px}.spb-bottom-nav-link svg{width:21px;height:21px}.spb-bottom-nav-link:active{--spb-dock-size:46px!important}.spb-bottom-nav-link span{top:-30px;font-size:11px}
}
@media(max-width:380px){
  .spb-main{padding-inline:14px}.spb-overview-head h1,.spb-page-header h1{font-size:28px}.spb-bottom-nav{gap:6px;padding:6px}.spb-bottom-nav-link{--spb-dock-size:44px}.spb-bottom-nav-link svg{width:20px;height:20px}
}

/* DreamStead v1.3.2 targeted mobile debt-summary fix. Desktop intentionally unchanged. */
@media(max-width:640px){
  .spb-debt-hero{
    grid-template-columns:minmax(0,1.65fr) minmax(0,.7fr);
    min-height:0;
  }
  .spb-debt-hero>div{
    min-width:0;
    padding:20px 18px;
    border-right:0;
    border-bottom:0;
  }
  .spb-debt-hero>div:first-child{border-right:1px solid rgba(0,0,0,.14)}
  .spb-debt-hero .spb-eyebrow{font-size:10px;line-height:1.3;letter-spacing:.5px}
  .spb-debt-hero strong{
    margin-top:8px;
    font-size:clamp(25px,7.5vw,36px);
    line-height:1.05;
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
    letter-spacing:-.5px;
  }
  .spb-debt-hero>div:last-child strong{font-size:clamp(25px,7vw,34px)}
}
@media(max-width:380px){
  .spb-debt-hero>div{padding-inline:15px}
  .spb-debt-hero strong{font-size:clamp(23px,7vw,32px)}
}


/* Settings workspace tabs */
.spb-settings-tabs{display:flex;gap:6px;margin:-8px 0 24px;padding:5px;border:1px solid var(--spb-hairline);border-radius:var(--spb-pill);background:var(--spb-soft);width:max-content;max-width:100%}
.spb-settings-tab{display:inline-flex;min-height:38px;align-items:center;justify-content:center;border-radius:var(--spb-pill);padding:7px 16px;font-size:14px;font-weight:480;text-decoration:none;white-space:nowrap}
.spb-settings-tab:hover{background:rgba(255,255,255,.7)}
.spb-settings-tab[aria-selected="true"]{background:var(--spb-primary);color:#fff}
.spb-settings-tab-panel{animation:spb-enter .18s ease-out}
.spb-settings-subhead{margin:0 0 20px}.spb-settings-subhead h2{margin:5px 0 5px;font-size:28px;font-weight:540;line-height:1.15;letter-spacing:-.35px}.spb-settings-subhead p:last-child{max-width:650px;margin:0}
@media (max-width:820px){.spb-settings-tabs{width:100%;overflow-x:auto;justify-content:flex-start;margin:-2px 0 18px;border-radius:18px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.spb-settings-tabs::-webkit-scrollbar{display:none}.spb-settings-tab{flex:0 0 auto;min-height:40px;padding:8px 14px;font-size:13px}.spb-settings-subhead h2{font-size:25px}.spb-sidebar-copyright{padding-bottom:10px;font-size:9px}.spb-purge-cache-form{display:none!important}}
