:root{--red:#B43D32;--red-dark:#942e27;--ink:#252525;--cream:#F6F2EC;--white:#fff;--muted:#746f6c;--line:#e8dfd8;--surface:#fff;--quiet:#f0eae4;--green:#317c59;--gold:#e4ad45;--shadow:0 12px 35px rgba(41,28,19,.045);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:#e6e2dd}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid rgba(180,61,50,.38);outline-offset:2px}.preview-note{display:flex;justify-content:space-between;align-items:center;max-width:500px;margin:17px auto 10px;font-size:12px;color:#5f5b58;gap:10px}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#317c59;margin-right:4px}.preview-note-right{opacity:.72}.device{max-width:430px;height:min(884px,calc(100dvh - 62px));min-height:590px;margin:0 auto 16px;border-radius:30px;background:var(--cream);box-shadow:0 22px 80px rgba(24,20,18,.18);overflow:hidden;border:1px solid rgba(30,20,15,.1)}.app{height:100%;position:relative;overflow:hidden;background:var(--cream)}.page-scroll{height:calc(100% - 73px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.page-scroll::-webkit-scrollbar{width:3px}.page-scroll::-webkit-scrollbar-thumb{background:#ded1c7}.page-pad{padding:21px 19px 28px}.bottom-nav{height:73px;border-top:1px solid var(--line);background:var(--surface);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 9px 11px;position:absolute;left:0;right:0;bottom:0;z-index:10}.nav-item{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;background:none;border:0;border-radius:13px;color:#78716e;font-size:11px;font-weight:600}.nav-item .ic{height:29px;width:45px;display:flex;align-items:center;justify-content:center;border-radius:20px}.nav-item.active{color:var(--red)}.nav-item.active .ic{background:#fae8e4}.icon{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.i-sm{width:16px;height:16px}.i-lg{width:24px;height:24px}.i-xl{width:28px;height:28px}.serif{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em}h1,h2,h3,p{margin:0}h1{font-size:36px;line-height:1.03;font-weight:700}h2{font-size:29px;line-height:1.06}h3{font-size:17px;letter-spacing:-.03em}.text-muted{color:var(--muted)}.tiny{font-size:11px}.small{font-size:12px}.body-sm{font-size:13px;line-height:1.5}.semibold{font-weight:650}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#837872}.space-8{height:8px}.space-12{height:12px}.space-16{height:16px}.space-20{height:20px}.space-24{height:24px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.start{align-items:flex-start}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.section-head{display:flex;justify-content:space-between;align-items:center;margin:22px 0 13px;gap:10px}.section-head h3{font-size:17px}.link-btn{background:none;border:none;color:var(--red);font-size:12px;font-weight:700;padding:6px 0}.icon-btn{width:41px;height:41px;display:grid;place-items:center;border:1px solid var(--line);background:var(--surface);border-radius:13px;color:var(--ink);flex:none}.icon-btn.solid{background:var(--red);color:white;border-color:var(--red)}.brand{font-family:Georgia,serif;font-weight:750;letter-spacing:-.055em;font-size:24px;color:var(--ink)}.brand span{color:var(--red)}.brand-sub{font-size:11px;color:var(--muted);margin-top:0}.app-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:20px}.back-head{display:flex;align-items:center;gap:12px;margin-bottom:17px}.back-head h2{font-size:22px}.btn{border:0;border-radius:13px;padding:13px 15px;font-weight:700;font-size:13px;display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:45px}.btn.primary{background:var(--red);color:#fff}.btn.secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.btn.ghost{background:#f4e4df;color:var(--red)}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:default}.chip{display:inline-flex;gap:6px;align-items:center;justify-content:center;padding:9px 12px;background:var(--surface);border:1px solid var(--line);border-radius:28px;font-size:12px;color:var(--ink);white-space:nowrap;max-width:100%}.chip.active{background:#fbe9e6;border-color:#f3cbc4;color:var(--red-dark)}.chip.dark{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.26);color:white}.chip:has(svg){gap:5px}.chipline{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chipline::-webkit-scrollbar{display:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.card + .card{margin-top:10px}.card.soft{background:var(--quiet)}.card .overline{font-size:11px;color:var(--muted);margin-bottom:8px}.card .big{font-size:28px;line-height:1.14;font-weight:790;letter-spacing:-.06em}.card .mid{font-size:20px;font-weight:780;letter-spacing:-.04em}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-grid .card{min-height:112px}.stat-grid .card+.card{margin:0}.stat-red{background:linear-gradient(120deg,#bc4a3c,#95352d);color:#fff;padding:21px;border:0;position:relative;overflow:hidden}.stat-red:before{content:"";width:220px;height:220px;position:absolute;border:1px solid #ffffff24;border-radius:50%;right:-103px;top:-106px;box-shadow:0 0 0 48px #ffffff0b,0 0 0 99px #ffffff06}.stat-red>*{position:relative}.stat-red .overline{color:#fff9}.stat-red .big{font-size:38px}.stat-red .sub{font-size:12px;color:#fffdd}.stat-red .inline-action{background:#ffffff20;border:none;color:#fff;padding:9px 12px;border-radius:11px;display:inline-flex;gap:7px;align-items:center;font-size:12px;font-weight:700}.divider{height:1px;background:var(--line);margin:14px 0}.row-tap{display:flex;align-items:center;gap:12px;background:var(--surface);width:100%;border:1px solid var(--line);padding:14px;border-radius:15px;text-align:left;color:var(--ink)}.row-tap+.row-tap{margin-top:8px}.row-tap .grow{min-width:0}.row-tap p{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.45}.row-tap strong{font-size:13px;line-height:1.4}.badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:750;letter-spacing:.01em;padding:5px 8px;border-radius:7px;background:#f1e9e2;color:#6b5349}.badge.red{background:#fae7e4;color:#b5372e}.badge.green{background:#e7f2e9;color:#267346}.badge.gold{background:#fff3db;color:#986315}.badge.blue{background:#eaf0f9;color:#406187}.caption{font-size:11px;color:var(--muted);line-height:1.45}.input{width:100%;min-height:45px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);padding:12px 14px;font-size:14px}.input:focus{outline:2px solid #dbaeaa}.label{font-size:12px;font-weight:700;display:block;margin:0 0 7px}.select{appearance:none;min-height:45px}.hero{background:linear-gradient(180deg,#20282b 0%,#202529 46%,#101819 100%);color:white;height:366px;padding:25px 23px 40px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 79% 30%,rgba(245,191,142,.20),transparent 23%),linear-gradient(to bottom,transparent 43%,#091315 100%)}.mountain{position:absolute;inset:auto 0 0;bottom:0;width:100%;height:225px;pointer-events:none}.mountain path{fill:#223235}.mountain path:nth-child(2){fill:#172629}.mountain path:nth-child(3){fill:#0e191b}.hero>*:not(.mountain){position:relative;z-index:1}.hero .brand{color:#fff}.hero .brand-sub{color:#ffffffbc}.hero .eyebrow{color:#f2bfb9}.hero h1{font-size:37px;margin:23px 0 14px}.hero p{max-width:290px;color:#ffffffc2;font-size:13px;line-height:1.55}.hero-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:8px}.hero-search{margin:-24px 19px 0;position:relative;z-index:2;display:flex;background:#fff;padding:9px 10px 9px 14px;gap:8px;box-shadow:0 16px 24px #130f0f14;border-radius:18px;border:1px solid #fff}.hero-search input{flex:1;width:0;border:0;background:none;outline:0;color:var(--ink);font-size:14px}.hero-search .icon-btn{height:46px;width:46px}.search-content{padding:17px 19px 30px}.notice{border-radius:14px;padding:13px 14px;background:#ebf3ec;border:1px solid #d7e5d9;font-size:12px;line-height:1.5;color:#317c59;display:flex;gap:10px;align-items:flex-start}.notice.warn{background:#fff2dc;color:#865a13;border-color:#eed9b4}.notice.info{background:#eee9e4;border-color:#e4d9d0;color:#766255}.example{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:13px;padding:13px 12px;margin-top:8px;font-size:13px;font-weight:650;line-height:1.45;color:var(--ink)}.example svg{color:var(--red)}.subtle-panel{padding:15px;border:1px solid #f0d9d1;background:#fcf0ec;border-radius:16px}.metric-split{display:flex;justify-content:space-between;gap:10px;margin:15px 0}.metric-split b{font-size:23px;letter-spacing:-.06em}.list-card{background:var(--surface);border:1px solid var(--line);border-radius:15px;margin-bottom:9px;padding:14px}.list-card .amount{color:var(--red);font-weight:780;font-size:17px;letter-spacing:-.035em;text-align:right;white-space:nowrap}.list-card .card-title{font-size:14px;font-weight:750;line-height:1.35;overflow-wrap:anywhere}.list-card .card-sub{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}.tap-link{border:none;background:none;color:var(--red);padding:0;font-size:12px;font-weight:750;display:inline-flex;align-items:center;gap:5px}.mini-ico{width:39px;height:39px;background:#f7e6e1;color:var(--red);display:grid;place-items:center;border-radius:11px;flex:none}.segmented{display:flex;background:#eae4dd;padding:4px;border-radius:13px;gap:3px}.segmented button{border:0;background:transparent;color:#726f6c;border-radius:10px;flex:1;min-width:0;font-size:11px;font-weight:700;padding:10px 5px;line-height:1.25}.segmented button.active{background:var(--surface);box-shadow:0 2px 7px #0000000a;color:var(--red)}.bar-row{display:grid;grid-template-columns:95px 1fr 58px;gap:8px;align-items:center;margin:13px 0;font-size:11px}.bar-label{overflow-wrap:anywhere}.bar-track{height:9px;border-radius:12px;background:#f0e9e4;overflow:hidden}.bar-fill{height:100%;border-radius:12px;background:var(--red)}.donut{width:146px;height:146px;border-radius:50%;background:conic-gradient(var(--red) 0 36%,#df927e 36% 60%,#e7b54f 60% 78%,#588b76 78% 91%,#aaa1a0 91%);position:relative;display:grid;place-items:center;flex:none}.donut:before{content:"";position:absolute;inset:31px;background:white;border-radius:50%}.donut .center{position:relative;text-align:center;font-size:18px;font-weight:850;letter-spacing:-.05em}.donut .center small{display:block;font-size:10px;font-weight:550;color:var(--muted);letter-spacing:0;margin-top:3px}.chart-grid{display:flex;align-items:flex-end;gap:10px;height:160px;border-bottom:1px solid #dfd5cc;padding:5px 3px 0}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:5px;height:100%;min-width:0}.chart-bar{width:70%;max-width:30px;background:linear-gradient(180deg,#bd4538,#d77e6b);border-radius:6px 6px 0 0;min-height:5px}.chart-col small{font-size:9px;color:var(--muted);white-space:nowrap}.directory-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.directory-card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:17px 13px;text-align:left;min-height:128px}.directory-card .mini-ico{margin-bottom:14px}.directory-card b{display:block;font-size:14px}.directory-card small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.directory-card svg{width:22px;height:22px}.detail-amount{font-size:36px;font-weight:800;letter-spacing:-.07em;color:var(--red);line-height:1.15}.detail-field{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.detail-field:last-child{border-bottom:0}.detail-field .value{text-align:right;font-weight:650;max-width:58%;overflow-wrap:anywhere}.detail-field .key{color:var(--muted)}.switch{display:inline-flex;width:42px;height:25px;border-radius:40px;background:#d7d0c9;align-items:center;padding:3px;flex:none;border:0}.switch:before{content:"";display:block;width:19px;height:19px;background:white;border-radius:100%;box-shadow:0 1px 3px #0002;transition:transform .2s}.switch.on{background:var(--red)}.switch.on:before{transform:translateX(17px)}.overlay{position:absolute;inset:0;background:#10101165;z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-height:85%;overflow:auto;background:var(--cream);border-radius:23px 23px 0 0;padding:18px 19px 24px;box-shadow:0 -9px 50px #0002}.sheet:before{content:"";display:block;width:40px;height:5px;border-radius:5px;background:#ded3cb;margin:-8px auto 17px}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.sheet-head h3{font-size:20px}.sheet-item{display:flex;align-items:center;gap:10px;min-height:46px;padding:12px 3px;border-bottom:1px solid var(--line);font-size:13px}.sheet-item input[type=checkbox],.sheet-item input[type=radio]{accent-color:var(--red);width:18px;height:18px;margin:0}.sheet-actions{display:flex;gap:8px;margin-top:17px}.sheet-actions .btn{flex:1}.toast{z-index:50;position:absolute;bottom:85px;left:17px;right:17px;background:#252525;color:#fff;border-radius:12px;padding:13px 15px;font-size:12px;line-height:1.5;pointer-events:none;opacity:0;transform:translateY(12px);transition:.22s}.toast.show{opacity:1;transform:translateY(0)}.empty{text-align:center;padding:35px 15px;color:var(--muted)}.empty svg{color:var(--red);width:32px;height:32px;margin-bottom:10px}.empty strong{display:block;color:var(--ink);margin-bottom:6px}.theme-charcoal{--cream:#202326;--surface:#2b3033;--ink:#f6f1ec;--muted:#b5aaa5;--line:#48474a;--quiet:#373a3b;--shadow:none}.theme-charcoal .donut:before{background:var(--surface)}.theme-charcoal .stat-red{color:white}.theme-charcoal .hero{background:linear-gradient(#101617,#182528)}.theme-charcoal .bottom-nav{background:#272b2d}.theme-charcoal .chip.active{color:#eaa99f;background:#4d3332;border-color:#6a4743}.theme-charcoal .hero-search{background:#343536;border-color:#444}.theme-charcoal .hero-search input{color:white}.theme-charcoal .notice{background:#2a4034;border-color:#385b45}.theme-charcoal .subtle-panel{background:#3a3130;border-color:#624440}.theme-charcoal .mini-ico{background:#503332}.theme-charcoal .segmented{background:#383b40}.theme-charcoal .input{background:#2b3033}.theme-charcoal .badge{background:#47413d;color:#ebd9cf}.theme-charcoal .badge.red{background:#513432;color:#f0b8b0}.theme-charcoal .example{color:var(--ink)}.theme-charcoal .stat-red .big{color:white}.footer-note{font-size:10px;text-align:center;color:var(--muted);padding:16px 12px}.hidden{display:none!important}@media(max-width:500px){body{background:var(--cream)}.preview-note{display:none}.device{border:0;border-radius:0;box-shadow:none;max-width:none;width:100%;height:100dvh;min-height:0;margin:0}.page-scroll{height:calc(100% - 77px)}.bottom-nav{height:77px;padding-bottom:max(9px,env(safe-area-inset-bottom))}.sheet{padding-bottom:max(24px,env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.full-amount .stat-red .big{font-size:clamp(22px,7.5vw,32px);overflow-wrap:anywhere}.full-amount .detail-amount,.full-amount .card .mid,.full-amount .card .big{overflow-wrap:anywhere;font-size:clamp(18px,5vw,26px)}.full-amount .list-card .amount{white-space:normal;overflow-wrap:anywhere;font-size:15px}

/* GrantFrame v0.3.0 — accessible charcoal surface mapping + fluid mobile motion */
.app{--ease-spring:cubic-bezier(.2,1.25,.24,1);--ease-fluid:cubic-bezier(.2,.75,.25,1)}
.app.theme-charcoal{--cream:#1e2225;--surface:#2c3034;--quiet:#34383d;--ink:#f5f3f0;--muted:#c0bdb9;--line:#4a5157;--red:#f18b7d;--red-dark:#f4a397;--green:#83d9ab;--gold:#e9bb61;color:var(--ink);color-scheme:dark}
.theme-charcoal .page-scroll,.theme-charcoal .page-pad,.theme-charcoal .card,.theme-charcoal .list-card,.theme-charcoal .sheet,.theme-charcoal .directory-card,.theme-charcoal .directory-grid,.theme-charcoal .subtle-panel,.theme-charcoal .row-tap,.theme-charcoal .notice{color:var(--ink)}
.theme-charcoal h1,.theme-charcoal h2,.theme-charcoal h3,.theme-charcoal h4,.theme-charcoal strong,.theme-charcoal b,.theme-charcoal label,.theme-charcoal span:not(.pulse-dot),.theme-charcoal .card-title,.theme-charcoal .detail-field .value,.theme-charcoal .bar-label,.theme-charcoal .eyebrow{color:inherit}
.theme-charcoal .stat-red,.theme-charcoal .stat-red *,.theme-charcoal .hero,.theme-charcoal .hero *,.theme-charcoal .btn.primary,.theme-charcoal .btn.primary *{color:#fff}
.theme-charcoal .badge.red,.theme-charcoal .chip.active,.theme-charcoal .tap-link,.theme-charcoal .amount,.theme-charcoal .detail-amount,.theme-charcoal .link-btn,.theme-charcoal .nav-item.active,.theme-charcoal .nav-item.active *{color:var(--red)!important}
.theme-charcoal .btn.secondary,.theme-charcoal .segmented button,.theme-charcoal .icon-btn,.theme-charcoal .chip,.theme-charcoal .sheet-item,.theme-charcoal .chart-col,.theme-charcoal .bar-row,.theme-charcoal .detail-click,.theme-charcoal .kpi-tap{color:var(--ink)}
.theme-charcoal .segmented button.active{background:#46484c;color:#ffc0b8}
.theme-charcoal .input,.theme-charcoal select,.theme-charcoal input:not([type=checkbox]):not([type=radio]),.theme-charcoal .sheet input{color:var(--ink);background:var(--surface);border-color:var(--line)}
.theme-charcoal input::placeholder{color:#b5ada8;opacity:1}
.theme-charcoal .overline,.theme-charcoal .caption,.theme-charcoal .text-muted,.theme-charcoal .card-sub,.theme-charcoal .detail-field .key,.theme-charcoal .small{color:var(--muted)!important}
.theme-charcoal .bar-track{background:#41464a}.theme-charcoal .bar-fill{background:var(--red)}
.theme-charcoal .mini-ico{color:var(--red)}
.theme-charcoal .bottom-nav{border-color:var(--line)}
.theme-charcoal .sheet{background:#252a2e}
.theme-charcoal .badge.green{background:#254637;color:#aff0c8!important}
.theme-charcoal .chart-bar{background:linear-gradient(180deg,#f2a396,#b43d32)}
.theme-charcoal .notice{background:#2d3537;border-color:#454f4b}
.theme-charcoal .detail-click{border-color:var(--line)}
.app .page-scroll>*{animation:gf-enter .34s var(--ease-fluid) both}
@keyframes gf-enter{from{opacity:.68;transform:translateY(7px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}
.app .bottom-nav .nav-item,.app button,.app .card,.app .list-card,.app .directory-card,.app .chart-bar,.app .bar-fill{transition:transform .28s var(--ease-spring),background .28s var(--ease-fluid),color .2s ease,border-color .2s ease,box-shadow .32s ease,opacity .28s ease}
.app button:active{transform:scale(.965)}
.app button:disabled{opacity:.48;cursor:not-allowed}
.app .nav-item.active .ic{animation:gf-nav .43s var(--ease-spring)}
@keyframes gf-nav{0%{transform:translateY(4px) scale(.78)}70%{transform:translateY(-2px) scale(1.13)}100%{transform:translateY(0) scale(1)}}
.app .overlay{animation:gf-fade .22s ease-out both}
.app .sheet{animation:gf-sheet .44s cubic-bezier(.22,1.13,.3,1) both;overscroll-behavior:contain}
@keyframes gf-fade{from{opacity:0}to{opacity:1}}
@keyframes gf-sheet{from{transform:translateY(38px);opacity:.88}65%{transform:translateY(-5px)}to{transform:translateY(0);opacity:1}}
.app .card:has(>button:hover),.app .directory-card:hover{box-shadow:0 10px 25px rgba(0,0,0,.07)}
.app .bar-row.clickable-chart{display:grid;width:100%;border:0;background:transparent;color:var(--ink);text-align:left;padding:5px 2px;border-radius:8px;min-height:37px}
.app .bar-row.clickable-chart:focus-visible,.app .chart-col.clickable-chart:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.app .bar-row.clickable-chart:hover{background:var(--quiet)}
.app .chart-col.clickable-chart{border:0;background:none;color:inherit;padding:6px 2px;border-radius:10px;min-width:0;flex:1}
.app .kpi-tap{appearance:none;display:block;text-align:left;color:var(--ink);font:inherit;min-width:0;width:100%;cursor:pointer}
.app .detail-click{width:100%;border:0;border-bottom:1px solid var(--line);text-align:left;background:transparent;color:var(--ink);cursor:pointer;min-height:48px}
.app .dimension-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:175px;overflow-y:auto}
.app .dimension-option{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:11px;min-height:47px;color:var(--ink);font-size:12px;font-weight:650;text-align:left;display:flex;gap:7px;justify-content:space-between;align-items:center}
.app .dimension-option span{border-radius:100px;background:var(--quiet);min-width:24px;line-height:24px;text-align:center}
.app .dimension-option.active{border-color:var(--red);background:color-mix(in srgb,var(--red) 9%,var(--surface));color:var(--red)}
.app .ambiguity-choice{width:100%;text-align:left;background:var(--surface);border:0;border-bottom:1px solid var(--line);color:var(--ink);padding:13px 8px}
.app .hero-search input{background:transparent!important}
.app .full-amount .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.app .full-amount .stat-grid .mid{overflow-wrap:anywhere}
@media (prefers-reduced-motion:reduce){.app *, .app *::before,.app *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.app .tag-tap{cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:12px;margin:2px 4px 2px 0;padding:6px 10px;white-space:normal;text-align:left;border:1px solid var(--line);color:var(--ink)}.app .tag-tap.badge.red{border-color:var(--red);color:var(--red)}
.app .bar-row b{font-variant-numeric:tabular-nums}.app .row-tap strong,.app .card-title{overflow-wrap:anywhere}.app .detail-field .value{overflow-wrap:anywhere}.app .stat-grid .card .mid{overflow-wrap:anywhere}.app .directory-card:focus-visible{outline:3px solid var(--red)}

/* GrantFrame v0.3.1: properly centered single-line search composer. */
.app .hero-search{
 box-sizing:border-box;display:grid;grid-template-columns:28px minmax(0,1fr) 52px;
 align-items:center;column-gap:12px;min-height:76px;margin:-24px 19px 0;
 padding:10px 12px 10px 20px;border-radius:24px;
 background:#fff;border:1px solid #eee5df;box-shadow:0 18px 32px #20130e1a;
}
.app .hero-search:focus-within{border-color:#D8A49C;box-shadow:0 12px 35px #20130e1b,0 0 0 3px #b43d3214}
.app .search-leading{display:flex;align-items:center;justify-content:center;align-self:stretch;color:#62666B}
.app .search-leading .icon{width:24px;height:24px}
.app .hero-search input,.app .hero-search input:focus{
 display:block;min-width:0;width:100%;height:52px;min-height:52px;max-height:52px;
 box-sizing:border-box;border:0!important;border-radius:0!important;outline:0!important;
 margin:0!important;padding:0!important;background:transparent!important;
 color:#252525;font:500 16px/1.35 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
 -webkit-appearance:none;appearance:none;-webkit-text-size-adjust:100%;box-shadow:none!important;
}
.app .hero-search input::placeholder{color:#7C7873;opacity:1}
.app .hero-search input::-webkit-search-cancel-button{display:none}
.app .search-submit{display:flex;align-items:center;justify-content:center;align-self:center;width:52px;height:52px;min-width:52px;padding:0;border:0;border-radius:17px;background:#B43D32;color:#fff;cursor:pointer;box-shadow:0 4px 8px #b43d3226}
.app .search-submit .icon{width:26px;height:26px;stroke-width:2}
.theme-charcoal .hero-search,.app.theme-charcoal .hero-search{background:#2d3236;border-color:#495057}
.app.theme-charcoal .search-leading{color:#E0E1E3}
.app.theme-charcoal .hero-search input,.app.theme-charcoal .hero-search input:focus{color:#fff;background:transparent!important}
.app.theme-charcoal .hero-search input::placeholder{color:#C4C3C1}
.app.theme-charcoal .search-submit{background:#B43D32;color:#fff}
@media(max-width:360px){.app .hero-search{margin-left:12px;margin-right:12px;column-gap:7px;grid-template-columns:23px minmax(0,1fr) 47px;padding-left:13px}.app .search-submit{width:47px;min-width:47px;height:49px}.app .hero-search input{font-size:15px}}
/* Universal scope and local scope can be cleared independently. */
.app .filter-reset-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:9px;margin-bottom:3px;min-height:32px}
.app .filter-scope-count{appearance:none;background:transparent;border:0;color:var(--muted);font-size:12px;padding:4px 0;flex:1;text-align:left;min-width:85px;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.app .filter-reset-link{appearance:none;background:transparent;border:1px solid var(--line);color:var(--red-dark);border-radius:11px;padding:7px 10px;min-height:34px;font:650 12px Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;cursor:pointer}
.app .filter-reset-link.all{background:color-mix(in srgb,var(--red) 9%,var(--surface));border-color:color-mix(in srgb,var(--red) 25%,var(--line))}
.app .filter-manage-group{background:var(--quiet);border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:15px}
.app .filter-manage-group p{margin:9px 0 13px;line-height:1.5}
.app.theme-charcoal .filter-reset-link{color:#FFA89C}
.app.theme-charcoal .filter-reset-link.all{background:#493735}
.app.theme-charcoal .filter-manage-group{background:#33383B}
