/* Gift budget planner: extends the site system (glass cards, violet/mint/rose/peach, Plus Jakarta Sans) */
.page-top .eyebrow{margin-bottom:14px}
.page-top .cta-row{margin-top:22px}
.page-top .trust{margin:14px 0 0;color:var(--muted);font-size:.9375rem}
.page-top h1{max-width:20ch}
.gb{padding:28px 0 24px;scroll-margin-top:12px}
.gb-grid{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
.gb-main,.gb-side{display:contents}
.gb-budget{order:1}.gb-sum{order:2}.gb-addp{order:3}.gb-listp{order:4}.gb-actions{order:5}
.gb-panel{border-radius:28px;padding:20px 16px;min-width:0}
.gb-panel h3{font-size:1.25rem;margin:0 0 4px}
.gb-sub{color:var(--muted);font-size:.9375rem;margin:0 0 14px}
.gb-lbl{display:block;font-weight:700;font-size:1rem;margin:0 0 8px}
.gb-row{display:grid;gap:14px;grid-template-columns:minmax(0,1fr);margin-bottom:14px}
.gb-seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;margin:0 0 16px;padding:0;min-width:0}
.gb-seg legend{font-weight:700;margin-bottom:8px;padding:0}
.gb-seg label{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;min-height:52px;padding:6px 10px;border-radius:16px;border:1px solid var(--line);background:rgba(8,12,30,.55);font-weight:700;cursor:pointer;line-height:1.2;transition:background .2s,border-color .2s}
.gb-seg label:hover{background:var(--glass-hi)}
.gb-seg input,.gb-pill input{position:absolute;inset:0;width:100%;height:100%;margin:0;cursor:pointer;appearance:none;-webkit-appearance:none;background:transparent;border:0;border-radius:inherit}
.gb-seg input:focus-visible,.gb-pill input:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.gb-seg label:has(input:checked){background:rgba(139,123,255,.28);border-color:var(--violet)}
.gb-err{color:#ffb4c8;font-size:.9375rem;font-weight:600;margin:6px 2px 0}
.field[aria-invalid="true"]{border-color:#ff8aa8;box-shadow:0 0 0 2px rgba(255,138,168,.35)}
select.field{padding-right:12px}

/* summary */
.gb-sum{border-radius:28px;padding:18px 16px}
.gb-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
.gb-tile{border:1px solid var(--line);border-radius:18px;background:rgba(8,12,30,.5);padding:12px 14px;min-width:0}
.gb-tile dt{font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0}
.gb-tile dd{margin:0}
.gb-tile .v{display:block;font-size:clamp(1.25rem,5.2vw,1.75rem);font-weight:800;letter-spacing:-.02em;overflow-wrap:anywhere;line-height:1.15;margin-top:2px}
.gb-tile .s{display:block;font-size:.875rem;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.gb-sum[data-level="over"] .gb-tile.left{border-color:#ff8aa8;background:rgba(255,122,122,.1)}
.gb-sum[data-level="over"] .gb-tile.left .v{color:#ffc4d3}
.gb-bar{position:relative;height:14px;border-radius:999px;background:rgba(8,12,30,.7);border:1px solid var(--line);overflow:hidden;margin:2px 0 12px}
.gb-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;transition:width .26s var(--ease)}
.gb-bar .pl{background:rgba(139,123,255,.55)}
.gb-bar .sp{background:var(--mint)}
.gb-bar.lv-over .sp,.gb-bar.lv-plan-over .pl{background:#ff8aa8}
.gb-bar.lv-over .pl{background:rgba(255,138,168,.45)}
.gb-bar.lv-near .sp{background:var(--peach)}
.gb-key{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.875rem;color:var(--muted);margin:-4px 0 12px}
.gb-key span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;background:rgba(139,123,255,.8)}
.gb-key span+span::before{background:var(--mint)}
.gb-warn{margin:0 0 8px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);font-weight:600;overflow-wrap:anywhere}
.gb-warn.lv-ok{border-color:rgba(63,224,192,.4);background:rgba(63,224,192,.08)}
.gb-warn.lv-near,.gb-warn.lv-plan-over{border-color:rgba(255,185,137,.55);background:rgba(255,185,137,.1)}
.gb-warn.lv-over{border-color:#ff8aa8;background:rgba(255,122,122,.12);color:#ffd5df}
.gb-warn.lv-none{color:var(--muted)}
.gb-counts{margin:0;color:var(--muted);font-size:.9375rem}

/* add form */
.gb-add-grid{display:grid;gap:12px;grid-template-columns:minmax(0,1fr);margin-bottom:12px}
.gb-add-grid>div{min-width:0}
.gb-add .btn{width:100%}
.gb-opt{font-weight:500;color:var(--muted);font-size:.875rem}

/* toolbar */
.gb-tools{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 12px}
.gb-tools label{display:block;font-size:.8125rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.gb-tools .gb-tl-sort{grid-column:1/-1}
.gb-showing{margin:0 0 10px;color:var(--muted);font-size:.9375rem;min-height:1.5em}

/* cards */
.gb-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:12px}
.gb-card{border:1px solid var(--line);border-radius:22px;background:rgba(8,12,30,.5);padding:12px;min-width:0}
.gb-card.is-given{border-color:rgba(63,224,192,.4);background:rgba(63,224,192,.06)}
.gb-card.lv-over{border-color:#ff8aa8;background:rgba(255,122,122,.08)}
.gb-card.lv-plan-over,.gb-card.lv-near,.gb-card.lv-above-plan{border-color:rgba(255,185,137,.6)}
.gb-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:10px}
.gb-top .gb-name{grid-column:1/2;font-weight:700}
.gb-top .gb-grp{grid-column:1/2;grid-row:2}
.gb-rm{grid-column:2;grid-row:1/3;width:48px;border:1px solid var(--line);border-radius:16px;background:none;color:var(--muted);font-size:1.125rem;font-weight:800;cursor:pointer}
.gb-rm:hover{background:rgba(255,122,122,.18);color:#fff}
.gb-card .field{min-height:48px;padding:0 14px;border-radius:14px}
.gb-fields{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}
.gb-f{display:block;min-width:0}
.gb-f-idea{grid-column:1/-1}
.gb-pm .gb-f-budget{grid-column:1/-1}
.gb-fl{display:block;font-size:.8125rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.gb-stages{display:flex;flex-wrap:wrap;gap:8px}
.gb-pill{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:rgba(8,12,30,.55);font-weight:700;cursor:pointer;transition:background .2s,border-color .2s}
.gb-pill span::before{content:"";display:inline-block;width:14px;height:14px;border-radius:5px;border:2px solid var(--muted);margin-right:8px;vertical-align:-2px}
.gb-pill:has(input:checked){background:rgba(63,224,192,.16);border-color:var(--mint)}
.gb-pill input:checked+span::before{background:var(--mint);border-color:var(--mint);box-shadow:inset 0 0 0 2px #0B1020}
.gb-msg{margin:10px 0 0;font-weight:700;font-size:.9375rem;color:#ffd0a8;overflow-wrap:anywhere}
.gb-card.lv-over .gb-msg{color:#ffc4d3}
.gb-card.lv-over .gb-msg::before,.gb-card.lv-plan-over .gb-msg::before{content:"Warning: "}
.gb-empty,.gb-nomatch{padding:18px;border:1px dashed var(--line);border-radius:18px;color:var(--muted);margin:0 0 12px}
.gb-empty strong{display:block;color:var(--ink);font-size:1.0625rem;margin-bottom:4px}
.gb-empty .btn,.gb-nomatch .btn{margin-top:10px;min-height:48px}
.gb-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 12px;border:0;background:none;color:#b9adff;font-weight:700;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.gb-link:hover{color:#fff}
.gb-note{margin:0 0 10px;font-size:.9375rem;color:var(--muted)}
.gb-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 10px;padding:10px 14px;border-radius:16px;border:1px solid #ff8aa8;background:rgba(255,122,122,.1)}
.gb-confirm span{font-weight:600}
.gb-live{margin:12px 0 0;font-size:.9375rem;color:var(--muted);min-height:1.5em;overflow-wrap:anywhere}
.gb-live.ok{color:#9ff0dc}
.gb-live.warn{color:#ffd0a8;font-weight:600}
.gb-live.err{color:#ffb4c8;font-weight:600}

/* actions */
.gb-act{display:grid;gap:10px}
.gb-act .btn{width:100%;min-height:56px}
.gb-paper{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gb-paper label{font-weight:700}
.gb-paper select{width:auto;min-width:8rem;min-height:48px;padding:0 14px}
.gb-saved{display:flex;gap:8px;align-items:center;font-size:.9375rem;color:var(--muted);margin:0}
.gb-saved::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px rgba(63,224,192,.22)}
.gb-saved.off{color:#ffd0a8}
.gb-saved.off::before{background:var(--peach);box-shadow:0 0 0 4px rgba(255,185,137,.22)}
.gb-how{padding-top:24px}
.gb-how .faq{max-width:68ch;margin:0 0 32px}
.gb-how .faq details{border:1px solid var(--line);border-radius:18px;background:var(--glass);margin:0 0 10px;overflow:hidden}
.gb-how .faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;min-height:44px;padding:12px 18px;font-weight:700;list-style:none}
.gb-how .faq summary::-webkit-details-marker{display:none}
.gb-how .faq summary::after{content:"+";flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:1.25rem;line-height:1;color:var(--ink,#fff);background:rgba(255,255,255,.08)}
.gb-how .faq details[open] summary::after{content:"\2212"}
.gb-how .faq summary:focus-visible{outline:2px solid var(--mint);outline-offset:-2px}
.gb-how .faq details p{margin:0;padding:0 18px 16px;color:#dfe2fb;overflow-wrap:anywhere}
.gb-sheet{display:none}

@media (min-width:560px){
  .gb-panel{padding:24px}
  .gb-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
  .gb-add-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gb-add-grid .wide{grid-column:1/-1}
  .gb-tools{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gb-tools .gb-tl-sort{grid-column:auto}
  .gb-top{grid-template-columns:minmax(0,1fr) minmax(8rem,10rem) 48px}
  .gb-top .gb-name,.gb-top .gb-grp,.gb-rm{grid-column:auto;grid-row:auto}
  .gb-pm .gb-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gb-pm .gb-f-budget{grid-column:auto}
  .gb-act{grid-template-columns:1fr 1fr}
}
@media (min-width:960px){
  .gb-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:28px;align-items:start}
  .gb-main,.gb-side{display:grid;gap:20px;min-width:0;align-content:start}
  .gb-side{position:sticky;top:16px}
  .gb-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gb-act{grid-template-columns:1fr}
}
@media (min-width:1100px){.gb-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.gb-bar i,.gb-seg label,.gb-pill{transition:none}}

@media print{
  html,body{background:#fff!important;background-image:none!important;color:#000!important}
  body>*:not(.gb-sheet){display:none!important}
  .gb-sheet{display:block;font-family:var(--font);color:#000;font-size:11pt;line-height:1.3}
  .gb-sheet h1{font-size:24pt;margin:0 0 4pt;color:#000;letter-spacing:-.02em}
  .gb-sheet .sub{margin:0 0 8pt;font-size:11pt;color:#333}
  .gb-sheet table{width:100%;border-collapse:collapse;margin-top:8pt;table-layout:auto}
  .gb-sheet thead{display:table-header-group}
  .gb-sheet th{text-align:left;font-size:9pt;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid #000;padding:4pt 6pt;color:#000}
  .gb-sheet td{padding:7pt 6pt;border-bottom:1px solid #aaa;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}
  .gb-sheet tr{break-inside:avoid;page-break-inside:avoid}
  .gb-sheet .ck{width:1%;text-align:center;white-space:nowrap}
  .gb-sheet td.ck i{display:inline-block;width:13pt;height:13pt;border:2px solid #000;border-radius:3pt;vertical-align:middle}
  .gb-sheet td.ck i.on{background:#000}
  .gb-sheet .num{text-align:right;white-space:nowrap}
  .gb-sheet td.nm span{display:block;font-size:9pt;color:#444}
  .gb-sheet .foot{margin-top:12pt;font-size:9pt;color:#555}
}
