:root{--ink: #1B2430;--ink-2: #3E4652;--muted: #4B5563;--bg: #F6F4EC;--card: #FFFFFF;--green: #16A34A;--green-dark: #0F5132;--green-ink: #0B3D26;--yellow: #FFD43B;--mint: #CDF5E1;--sky: #D6ECFF;--sky-ink: #174A7C;--sun: #FFF1B8;--sun-ink: #5C4800;--rose: #FFE0E6;--rose-ink: #8A1C2B;--red: #E5484D;--line: #D3D1C7;--soft: #F1EFE8;--border: 2.5px solid var(--ink);--shadow: 0 4px 0 var(--ink);--shadow-sm: 0 3px 0 var(--ink);--radius: 18px;--font-head: "Fredoka", "Plus Jakarta Sans", system-ui, sans-serif;--font-body: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--green-dark);font-weight:600}a:hover{color:var(--green-ink)}img{max-width:100%;display:block}h1,h2,h3{font-family:var(--font-head);margin:0;line-height:1.2}h1{font-size:26px;font-weight:700}h2{font-size:20px;font-weight:600}h3{font-size:17px;font-weight:600}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid #2563EB;outline-offset:2px}:focus:not(:focus-visible){outline:none}.btn:focus-visible,.seg button:focus-visible,.chips button:focus-visible,.poll-opt:focus-visible,a.nb:focus-visible,button.nb:focus-visible{outline:none;box-shadow:0 0 0 3px var(--bg),0 0 0 6px #2563eb}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.page{max-width:560px;margin:0 auto;padding:16px 16px 120px;display:flex;flex-direction:column;gap:20px}.page.wide{max-width:1120px}.stack{display:flex;flex-direction:column;gap:12px}.stack-lg{display:flex;flex-direction:column;gap:20px}.row{display:flex;align-items:center;gap:12px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.bold{font-weight:700}.head{font-family:var(--font-head)}.money{font-family:var(--font-head);font-weight:700;font-variant-numeric:tabular-nums}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.nb{border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--card)}.card{padding:16px}.card.lg{padding:20px}.bg-mint{background:var(--mint)}.bg-sky{background:var(--sky)}.bg-sun{background:var(--sun)}.bg-rose{background:var(--rose)}.bg-green{background:var(--green);color:#fff}.bg-soft{background:var(--soft)}.icon-box{width:44px;height:44px;border:2px solid var(--ink);border-radius:12px;display:flex;align-items:center;justify-content:center;background:#fff;flex:none}.icon-box.sm{width:36px;height:36px;border-radius:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border:var(--border);border-radius:14px;background:#fff;color:var(--ink);font-weight:700;font-size:15px;text-decoration:none;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .06s,box-shadow .06s}.btn:hover{color:var(--ink)}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 0 var(--ink)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--green);color:#fff}.btn.primary:hover{color:#fff}.btn.yellow{background:var(--yellow)}.btn.danger{background:var(--red);color:#fff}.btn.ghost{box-shadow:none;background:transparent}.btn.block{width:100%}.btn.lg{min-height:54px;font-size:16px}.btn.sm{min-height:40px;padding:0 12px;font-size:13.5px;border-width:2px;border-radius:12px}.link-btn{background:none;border:0;padding:8px 0;min-height:44px;color:var(--green-dark);font-weight:700;cursor:pointer}.field{display:flex;flex-direction:column;gap:6px}.field>label,.label{font-size:13.5px;font-weight:700}.input,.select,.textarea{width:100%;min-height:48px;padding:10px 14px;border:var(--border);border-radius:12px;background:#fff;font-size:16px}.textarea{min-height:110px;resize:vertical}.input.pin{letter-spacing:.5em;text-align:center;font-family:var(--font-head);font-size:22px;font-weight:700}.hint{font-size:12.5px;color:var(--muted)}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px}.check input{width:22px;height:22px;margin-top:1px;accent-color:var(--green);flex:none}.error-box{background:var(--rose);color:var(--rose-ink);border:2px solid var(--ink);border-radius:12px;padding:10px 12px;font-size:14px;font-weight:600}.info-box{background:var(--mint);color:var(--green-ink);border:2px solid var(--ink);border-radius:12px;padding:10px 12px;font-size:14px}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px}.seg button{min-height:44px;border:var(--border);border-radius:12px;background:#fff;font-weight:700;cursor:pointer}.seg button[aria-pressed=true]{background:var(--yellow);box-shadow:var(--shadow-sm)}.pill{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--ink);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;background:#fff;white-space:nowrap}.pill.green{background:var(--mint);color:var(--green-ink)}.pill.red{background:var(--rose);color:var(--rose-ink)}.pill.yellow{background:var(--sun);color:var(--sun-ink)}.pill.blue{background:var(--sky);color:var(--sky-ink)}.pill.gray{background:var(--soft);color:#444441}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.brand:hover{color:var(--ink)}.brand-mark{width:42px;height:42px;border:var(--border);border-radius:12px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}.brand-name{font-family:var(--font-head);font-weight:700;font-size:17px;line-height:1.1}.service{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px 12px;min-height:106px;border-radius:16px;text-decoration:none;color:var(--ink);text-align:center}.service:hover{color:var(--ink)}.service span.t{font-size:12.5px;font-weight:700;line-height:1.25}.lock{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:999px;background:var(--ink);color:var(--yellow);display:flex;align-items:center;justify-content:center}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;border-top:var(--border);padding:8px 8px calc(10px + env(safe-area-inset-bottom))}.bottom-nav .inner{max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:600;min-height:48px;justify-content:flex-end}.bottom-nav a.active{color:var(--green-dark);font-weight:800}.bottom-nav a.center{margin-top:-30px;color:var(--rose-ink);font-weight:700}.bottom-nav .fab{width:58px;height:58px;border-radius:999px;background:var(--red);border:var(--border);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;color:#fff}.list{display:flex;flex-direction:column}.list>.item{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:2px dashed var(--line)}.list>.item:last-child{border-bottom:0}.dot{width:10px;height:10px;border-radius:999px;border:2px solid var(--ink);flex:none}.months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.month{border:2px solid var(--ink);border-radius:10px;padding:8px 4px;text-align:center}.month .m{font-size:12px;font-weight:700}.month .s{font-size:10.5px;font-weight:700}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b24308c;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:12px}.modal{width:100%;max-width:520px;max-height:92vh;overflow:auto;padding:20px}@media (min-width: 640px){.modal-backdrop{align-items:center}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:96px;z-index:60;max-width:calc(100% - 32px);padding:12px 16px;font-weight:700}.table-wrap{overflow-x:auto;border:var(--border);border-radius:14px;background:#fff}table.t{width:100%;border-collapse:collapse;font-size:14px}table.t th,table.t td{padding:10px 12px;text-align:left;border-bottom:2px solid var(--soft);vertical-align:middle}table.t th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafaf7}table.t tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.admin-shell{min-height:100vh}.admin-top{position:sticky;top:0;z-index:30;background:#fff;border-bottom:var(--border)}.admin-top-inner{display:flex;align-items:center;gap:12px;max-width:1280px;margin:0 auto;padding:10px 16px;min-height:66px}.admin-top .brand{min-width:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.hamburger{width:44px;padding:0;display:none;flex:none}.only-mobile{display:none}.admin{display:grid;grid-template-columns:248px minmax(0,1fr);gap:24px;max-width:1280px;margin:0 auto;padding:20px 16px 40px;align-items:start;min-height:calc(100vh - 67px)}.admin-nav{position:sticky;top:86px;max-height:calc(100vh - 126px);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:10px;padding:12px}.admin-nav a,.admin-drawer a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;border:2px solid transparent;color:var(--ink);text-decoration:none;font-weight:600;font-size:14.5px;min-height:44px}.admin-nav a:hover,.admin-drawer a:hover{background:var(--soft)}.admin-nav a.active,.admin-drawer a.active{background:var(--yellow);border-color:var(--ink)}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-title{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 12px 2px}.nav-foot{border-top:2px dashed var(--line);padding-top:8px}.admin-nav .nav-foot{display:none}.admin-main{min-width:0;display:flex;flex-direction:column;gap:20px}.admin-drawer{position:fixed;top:0;bottom:0;left:0;z-index:60;width:min(300px,86vw);background:#fff;border-right:var(--border);box-shadow:6px 0 0 var(--ink);padding:14px 12px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;transform:translate(-110%);transition:transform .26s var(--ease-out, ease-out);visibility:hidden}.admin-drawer.open{transform:none;visibility:visible}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#1b243080;animation:fade .2s ease-out both}@media (min-width: 900px){.admin-drawer,.drawer-backdrop{display:none}}@media (max-width: 899px){.admin{grid-template-columns:minmax(0,1fr);padding-top:16px}.admin-nav{display:none}.hamburger{display:inline-flex}.only-desktop{display:none}.only-mobile{display:inline}.admin-top-inner{gap:10px;padding:8px 12px;min-height:60px}.admin-top .brand-mark{display:none}}.stat{padding:14px;display:flex;flex-direction:column;gap:4px}.stat .v{font-family:var(--font-head);font-size:26px;font-weight:700;line-height:1}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.bar-chart{display:flex;align-items:flex-end;gap:10px;height:140px;padding-top:8px}.bar-chart .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.bar-chart .bars{display:flex;gap:3px;align-items:flex-end;height:100%;width:100%;justify-content:center}.bar-chart .b{width:40%;max-width:18px;border:2px solid var(--ink);border-bottom:0;border-radius:4px 4px 0 0}.qr-box{width:240px;max-width:100%;aspect-ratio:1;border:var(--border);border-radius:14px;background:#fff;padding:10px;margin:0 auto}.qr-box img,.qr-box canvas{width:100%;height:100%;image-rendering:pixelated}.footer{background:var(--ink);color:#e5e7eb;padding:24px 20px calc(110px + env(safe-area-inset-bottom))}.footer .inner{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:8px}.footer a{color:#fff}.empty{text-align:center;padding:24px 12px;color:var(--muted);font-size:14px}.skeleton{background:#e4e1d6;animation:bonePulse 1.1s ease-in-out infinite alternate;border-radius:12px;min-height:80px}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}.btn{transition:none}}.photo-grid{display:grid;gap:6px;grid-template-columns:repeat(2,1fr)}.photo-grid.n1{grid-template-columns:1fr}.photo-grid img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;border:2px solid var(--ink);display:block;background:var(--soft)}.photo-grid.n1 img{aspect-ratio:auto;max-height:340px}.photo-grid.n3 img:first-child{grid-column:span 2}.stars{display:inline-flex;gap:2px;color:#e0a800}.stars button{background:none;border:0;padding:4px;cursor:pointer;color:inherit;min-width:40px;min-height:40px}.post-actions{display:flex;gap:8px;flex-wrap:wrap}.post-actions .btn{min-height:40px}.btn.on{background:var(--rose);color:var(--rose-ink)}.avatar{width:40px;height:40px;border-radius:999px;border:2px solid var(--ink);display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:none}.h-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,46%);gap:12px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory}.h-scroll>*{scroll-snap-align:start}.shop-thumb{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;border:2px solid var(--ink);background:var(--sun);display:flex;align-items:center;justify-content:center}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.chips button{flex:none;min-height:40px;padding:0 14px;border:2px solid var(--ink);border-radius:999px;background:#fff;font-weight:700;font-size:13px;cursor:pointer}.chips button[aria-pressed=true]{background:var(--ink);color:#fff}.comment{display:flex;gap:10px;align-items:flex-start}.comment .bubble{background:var(--soft);border-radius:12px;padding:8px 12px;flex:1}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.panic{--p: 0;position:relative;align-self:center;width:180px;height:180px;border-radius:999px;border:4px solid var(--ink);background:conic-gradient(#8A1C2B calc(var(--p) * 360deg),var(--red) 0);color:#fff;box-shadow:0 6px 0 var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:800 18px var(--font-head);letter-spacing:1px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.panic:active{transform:translateY(3px);box-shadow:0 3px 0 var(--ink)}.panic:focus-visible{outline:4px solid var(--yellow);outline-offset:4px}.qr-pass{background:#fff;border:var(--border);border-radius:18px;padding:14px;width:min(280px,100%);align-self:center}.qr-pass img{width:100%;display:block;image-rendering:pixelated}.code-big{font:800 30px var(--font-head);letter-spacing:6px;text-align:center}.alert-flash{animation:flash 1s steps(2) infinite}@keyframes flash{50%{background:#ffb3c0}}@media (prefers-reduced-motion: reduce){.alert-flash{animation:none}}.chips button[aria-checked=true]{background:var(--ink);color:#fff}.date-badge{flex:none;width:56px;border:var(--border);border-radius:14px;overflow:hidden;text-align:center;background:#fff;box-shadow:var(--shadow-sm)}.date-badge .m{display:block;background:var(--red);color:#fff;font:700 12px var(--font-body);text-transform:uppercase;padding:2px 0}.date-badge .d{display:block;font:700 24px var(--font-head);padding:2px 0 4px}.poll-opt{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:50px;padding:0 14px;border:2px solid var(--ink);border-radius:12px;background:#fff;font:inherit;color:var(--ink);cursor:pointer;text-align:left}.poll-opt:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--w, 0);background:var(--mint);z-index:0;transition:width .3s}.poll-opt>*{position:relative;z-index:1}.poll-opt[aria-pressed=true]{box-shadow:var(--shadow-sm);border-width:3px}.poll-opt:disabled{cursor:default}a.nb,button.nb,.seg button,.chips button,.poll-opt{-webkit-tap-highlight-color:transparent;transition:transform .06s,box-shadow .06s}a.nb:active,button.nb:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 var(--ink)}.seg button:active,.chips button:active,.poll-opt:active:not(:disabled){transform:translateY(1px)}:root{--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-back: cubic-bezier(.34, 1.45, .64, 1)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,16px) scale(.95)}to{opacity:1;transform:translate(-50%)}}@keyframes beat{0%{transform:scale(1)}35%{transform:scale(1.35)}60%{transform:scale(.9)}to{transform:scale(1)}}@keyframes hop{0%,to{transform:none}40%{transform:translateY(-4px)}70%{transform:translateY(1px)}}@keyframes ring{0%{box-shadow:0 0 #e5484d8c}to{box-shadow:0 0 0 10px #e5484d00}}@keyframes stamp{0%{opacity:0;transform:scale(.4) rotate(-12deg)}70%{opacity:1;transform:scale(1.12) rotate(3deg)}to{transform:none}}@keyframes glow{0%,to{box-shadow:0 6px 0 var(--ink)}50%{box-shadow:0 6px 0 var(--ink),0 0 0 10px #e5484d2e}}.page>:not(.modal-backdrop),.admin-main>:not(.modal-backdrop){animation:rise .38s var(--ease-out) both}.page>:nth-child(2),.admin-main>:nth-child(2){animation-delay:40ms}.page>:nth-child(3),.admin-main>:nth-child(3){animation-delay:80ms}.page>:nth-child(4),.admin-main>:nth-child(4){animation-delay:.12s}.page>:nth-child(5),.admin-main>:nth-child(5){animation-delay:.16s}.page>:nth-child(6),.admin-main>:nth-child(6){animation-delay:.2s}.page>:nth-child(n+7),.admin-main>:nth-child(n+7){animation-delay:.24s}.grid-2>*,.grid-3>*,.h-scroll>*{animation:rise .38s var(--ease-out) both}.grid-2>:nth-child(2),.grid-3>:nth-child(2),.h-scroll>:nth-child(2){animation-delay:50ms}.grid-2>:nth-child(3),.grid-3>:nth-child(3),.h-scroll>:nth-child(3){animation-delay:.1s}.grid-2>:nth-child(4),.grid-3>:nth-child(4),.h-scroll>:nth-child(4){animation-delay:.15s}.grid-2>:nth-child(n+5),.grid-3>:nth-child(n+5),.h-scroll>:nth-child(n+5){animation-delay:.2s}.page>.alert-flash{animation:rise .38s var(--ease-out) both,flash 1s steps(2) .5s infinite}.modal-backdrop{animation:fade .2s ease-out both}.modal{animation:pop .32s var(--ease-back) both}.toast{animation:toastIn .3s var(--ease-back) both}.seg button,.chips button,.pill,.btn{transition:background-color .18s,color .18s,transform .06s,box-shadow .06s}.seg button[aria-pressed=true],.chips button[aria-pressed=true]{animation:hop .3s var(--ease-out)}.bottom-nav a.active svg{animation:hop .35s var(--ease-out)}.btn.on svg{animation:beat .4s var(--ease-out)}.poll-opt[aria-pressed=true] svg,.stamp{animation:stamp .45s var(--ease-back) both}.poll-opt:before{transition:width .6s var(--ease-out)}.badge-ping{animation:ring 1.6s ease-out infinite}.panic{animation:glow 2.4s ease-in-out infinite}.panic:active{animation:none}@media (hover: hover) and (pointer: fine){a.nb,button.nb{transition:transform .15s var(--ease-out),box-shadow .15s var(--ease-out)}a.nb:hover,button.nb:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 0 var(--ink)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 0 var(--ink)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important}}.official-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:6px 4px 2px}.official-head .emoji{font-size:40px;line-height:1;display:inline-block}.card.duka{background:#f4f3ef}.card.duka .official-head h2{font-family:var(--font-head);letter-spacing:.2px}.card.duka .official-head:before{content:"";width:46px;height:4px;border-radius:4px;background:var(--ink);margin-bottom:6px}.today{background:linear-gradient(180deg,#e9f9f0,#fff 70%)}.prayer{border:2px solid var(--ink);border-radius:14px;padding:10px 12px;background:#fff;display:flex;flex-direction:column;gap:8px}.prayer-row{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;text-align:center}.prayer-row>span{display:flex;flex-direction:column;border-radius:10px;padding:4px 0;font-size:13px}.prayer-row>span.on{background:var(--yellow);border:2px solid var(--ink)}.today-chip{display:flex;gap:8px;align-items:center;font-size:13.5px;font-weight:600;padding:8px 12px;border:2px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);text-decoration:none}.today-chip.hot{background:var(--sun)}.sk,.page>.sk,.admin-main>.sk,.stack>.sk{animation:skIn .2s ease-out .3s both}@keyframes skIn{0%{opacity:0}to{opacity:1}}.bone{display:block;background:#e4e1d6;border-radius:6px;animation:bonePulse 1.1s ease-in-out infinite alternate}@keyframes bonePulse{0%{background:#e4e1d6}to{background:#d3cfc0}}.sk-card{display:flex;flex-direction:column;gap:10px}.sk-row{display:flex;align-items:center;gap:12px;padding:12px 14px}.sk-lines{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.sk-table{padding:0;overflow:hidden}.sk-trow{display:grid;grid-template-columns:1.1fr 1.6fr 1fr 70px;gap:14px;align-items:center;padding:13px 16px;border-top:2px solid #ECE9DF}.sk-trow.head{background:var(--soft, #F1EFE6);border-top:0;border-bottom:2px solid var(--ink)}@media (max-width: 560px){.sk-trow{grid-template-columns:1fr 1.4fr 64px}.sk-trow>:nth-child(3){display:none}}.splash{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}.splash-house{width:64px;height:64px;border:3px solid var(--ink);border-radius:18px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;animation:houseHop .9s cubic-bezier(.3,1.6,.5,1) infinite}@keyframes houseHop{0%,to{transform:translateY(0);box-shadow:0 5px 0 var(--ink)}45%{transform:translateY(-16px);box-shadow:0 21px 0 var(--ink)}}.splash-text{font:700 18px var(--font-head, inherit)}.splash-dots{display:flex;gap:7px}.splash-dots i{width:11px;height:11px;border-radius:999px;border:2px solid var(--ink);background:var(--yellow);animation:dotHop 1s infinite}.splash-dots i:nth-child(2){background:var(--mint);animation-delay:.15s}.splash-dots i:nth-child(3){background:var(--sky, #D6ECFF);animation-delay:.3s}@keyframes dotHop{0%,to{transform:none}40%{transform:translateY(-7px)}}.page>.splash,.admin-main>.splash{animation:fade .25s ease-out both}.top-progress{position:fixed;top:0;left:0;right:0;height:6px;z-index:60;pointer-events:none;opacity:0;transition:opacity .2s}.top-progress.on{opacity:1;transition-delay:.3s}.top-progress i{display:block;height:100%;width:0;background:repeating-linear-gradient(-45deg,var(--green) 0 8px,#22A055 8px 16px);border-bottom:2px solid var(--ink);border-right:2px solid var(--ink);border-radius:0 6px 6px 0}.top-progress.on i{animation:progRun 2.4s cubic-bezier(.1,.6,.3,1) .3s forwards}@keyframes progRun{0%{width:4%}to{width:88%}}.btn[aria-busy=true]{cursor:progress}.btn[aria-busy=true]:before{content:"";width:15px;height:15px;flex:none;border:2.5px solid currentColor;border-right-color:transparent;border-radius:999px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.confirm{align-items:center;text-align:center}.confirm-icon{width:64px;height:64px;border:2.5px solid var(--ink);border-radius:18px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);animation:stamp .45s var(--ease-back) both}.confirm-icon.bg-yellow{background:var(--yellow)}.confirm-icon.bg-rose{color:var(--rose-ink)}.confirm-actions{width:100%;display:flex;flex-direction:column;gap:10px;margin-top:4px}.fin-hero{align-items:flex-start;gap:10px}.fin-hero-icon{width:60px;height:60px;border:2.5px solid var(--ink);border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);transform:rotate(-4deg)}.fin-month{position:sticky;top:0;z-index:5;background:var(--bg);padding:6px 0}.fin-balance{font-size:36px;line-height:1.05;margin-top:2px}.fin-balance.neg{color:var(--rose-ink)}.fin-stat{border:2px solid var(--ink);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}.fin-stat .money{font-size:17px;overflow-wrap:anywhere}.fin-row{width:100%;background:none;border:0;border-bottom:2px dashed var(--line);font:inherit;color:var(--ink);cursor:pointer;padding:10px 0}.list>.fin-row:last-child{border-bottom:0}.fin-note{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fin-in{color:var(--green-dark)}.fin-bar{height:12px;border:2px solid var(--ink);border-radius:999px;background:#fff;overflow:hidden}.fin-bar i{display:block;height:100%;border-right:2px solid var(--ink);transition:width .5s var(--ease-out)}.fin-amount{display:flex;align-items:center;border:var(--border);border-radius:12px;background:#fff;padding-left:14px}.fin-amount span{font:700 22px var(--font-head);color:var(--ink-2)}.fin-amount .input{border:0;font:700 26px var(--font-head);padding-left:8px;min-height:58px;background:transparent}.fin-amount:focus-within{box-shadow:0 0 0 3px var(--bg),0 0 0 6px #2563eb}.fin-amount .input:focus-visible{box-shadow:none}.fin-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.fin-cats button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border:2px solid var(--ink);border-radius:14px;background:#fff;font:700 11.5px/1.2 inherit;color:var(--ink);cursor:pointer;text-align:center}.fin-cats button[aria-pressed=true]{background:var(--yellow);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.fab-add{position:fixed;right:max(16px,calc(50% - 264px));bottom:calc(96px + env(safe-area-inset-bottom));z-index:21;display:inline-flex;align-items:center;gap:6px;padding:0 20px;min-height:56px;border:2.5px solid var(--ink);border-radius:999px;background:var(--green);color:#fff;font:700 17px var(--font-head);box-shadow:0 5px 0 var(--ink);cursor:pointer;animation:pop .35s var(--ease-back) both}.fab-add:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}.wa-bubble{position:relative;background:#dcf8c6;border:2px solid var(--ink);border-radius:14px 14px 14px 4px;padding:12px 14px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:var(--shadow-sm);max-height:420px;overflow:auto}.bulk-bar{position:sticky;top:8px;z-index:6}.t input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}
