:root{--bg:#f4f6f2;--card:#fff;--ink:#182a27;--muted:#60706d;--soft:#eef4ef;--line:#dde6df;--green:#2d6a5f;--green-dark:#173b35;--gold:#d7a84b;--danger:#b42318;--danger-bg:#fef3f2;--shadow:0 18px 42px #182a2714}*{box-sizing:border-box}html,body{min-height:100%}body{background:radial-gradient(circle at 88% 16%, #2d6a5f14, transparent 28%), radial-gradient(circle at 7% 88%, #d7a84b1c, transparent 25%), var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button,input,select{font:inherit}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.58}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.05}h2{font-size:21px;line-height:1.15}h3{font-size:15px;line-height:1.2}.app-shell,.signed-out-shell{min-height:100vh;padding:30px 24px 42px;position:relative;overflow:hidden}.decorative-lines{opacity:1;pointer-events:none;z-index:0;position:fixed;inset:0}.decorative-lines:before,.decorative-lines:after{content:"";border:4px solid #0000;border-top-color:#2d6a5f14;border-radius:50%;width:780px;height:330px;position:absolute;top:320px;right:-130px;transform:rotate(-17deg)}.decorative-lines:after{border-color:#d7a84b21 #0000 #0000;width:620px;inset:auto auto -130px -170px;transform:rotate(8deg)}.topbar,.dashboard-layout,.dashboard-content-grid,.signed-out-card,.error-panel,.skeleton-topbar,.skeleton-grid{z-index:1;position:relative}.topbar{justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto 24px;display:flex}.brand-row,.user-area,.card-heading-row,.category-row-top,.category-name-group,.category-amount-group,.product-actions,.filter-bar,.search-field,.product-category-filter,.sheet-title-row{align-items:center;display:flex}.brand-row{gap:14px}.brand-mark{background:var(--green-dark);color:#f4f6f2;border-radius:14px;justify-content:center;align-items:center;width:50px;height:50px;font-size:24px;font-weight:900;display:flex}.eyebrow,.panel-kicker{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:900}.eyebrow{margin-bottom:4px}.user-area{flex-wrap:wrap;justify-content:flex-end;gap:12px}.user-email{color:var(--muted);font-size:14px;font-weight:800}.account-badge{border:1px solid var(--line);color:var(--green-dark);white-space:nowrap;background:#f6faf7;border-radius:999px;align-items:center;min-height:30px;padding:0 11px;font-size:12px;font-weight:900;display:inline-flex}.account-badge-pro{color:#6b4a08;background:#fff7e3;border-color:#d7a84b73}.account-badge-always-free{color:#503908;background:#f5d66f;border-color:#90641438;box-shadow:inset 0 0 0 1px #ffffff57}.account-badge-warning{background:var(--danger-bg);color:var(--danger);border-color:#b4231847}.user-signout-button{border:1px solid var(--line);color:var(--green-dark);cursor:pointer;background:#fff;border-radius:8px;min-height:38px;padding:0 13px;font-size:13px;font-weight:900}.workspace-switcher{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:0 10px;transition:background .12s,border-color .12s,box-shadow .12s;display:inline-flex}.workspace-switcher span{text-transform:uppercase;font-size:11px;font-weight:900}.workspace-switcher strong{color:var(--green-dark);text-overflow:ellipsis;white-space:nowrap;max-width:210px;font-size:13px;font-weight:900;overflow:hidden}.workspace-switcher:hover,.workspace-switcher:focus-visible,.export-select-trigger:hover,.export-select-trigger:focus-visible{background:#f9fbf8;border-color:#cddbd2;outline:0;box-shadow:0 0 0 3px #2d6a5f17}.workspace-menu{min-width:230px}.read-only-badge{color:var(--green-dark);white-space:nowrap;background:#eef4ef;border:1px solid #d5e3dc;border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.share-manage-button,.export-button{background:var(--green-dark);border:1px solid var(--green-dark);color:#fff;cursor:pointer;border-radius:8px;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}.export-button{border-color:var(--line);color:var(--green-dark);background:#fff}.export-menu{gap:9px;width:min(360px,100vw - 42px);padding:10px;display:grid}.export-action-button{color:var(--green-dark);cursor:pointer;text-align:left;background:#fff;border:0;border-radius:7px;align-items:center;gap:10px;min-height:54px;padding:9px;display:flex}.export-action-button:hover{background:var(--soft)}.export-picker{grid-template-columns:minmax(92px,.7fr) minmax(140px,1fr);gap:8px;display:grid}.export-picker>div{gap:5px;display:grid}.export-picker>div>span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.export-select-trigger{border:1px solid var(--line);color:var(--green-dark);cursor:pointer;height:44px;font:inherit;text-align:left;background:#fff;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;padding:0 10px;font-size:13px;font-weight:900;line-height:1;display:inline-flex}.export-select-trigger [data-slot=select-value]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.export-select-trigger svg{color:var(--green-dark);opacity:1;flex:none}.export-select-menu{z-index:140;min-width:160px;max-height:min(288px,100vh - 24px);padding:6px;overflow-y:auto}[data-slot=select-content]{border:1px solid var(--line);color:var(--ink);z-index:130;background:#fff;border-radius:8px;box-shadow:0 18px 36px #182a2721}[data-slot=select-item]{color:var(--green-dark);cursor:pointer;border-radius:7px;outline:0;align-items:center;min-height:36px;padding:8px 34px 8px 10px;font-size:13px;font-weight:900;display:flex}[data-slot=select-item]:focus,[data-slot=select-item][data-highlighted]{background:var(--soft)}.export-selection{background:var(--soft);border:1px solid var(--line);color:var(--green-dark);border-radius:7px;margin:0;padding:9px 10px;font-size:12px;font-weight:900}.export-action-button span{gap:3px;display:grid}.export-action-button span,.export-action-button small{min-width:0}.export-action-button strong,.export-action-button span{font-weight:900}.export-action-button small{color:var(--muted);font-size:12px;font-weight:800}.export-error{color:var(--danger);padding:4px 5px;font-size:12px;font-weight:850}[data-slot=dropdown-menu-content]{border:1px solid var(--line);color:var(--ink);max-height:min(340px,100vh - 28px);transform-origin:var(--radix-dropdown-menu-content-transform-origin);z-index:60;background:#fff;border-radius:8px;padding:5px;overflow:auto;box-shadow:0 18px 36px #182a2721}[data-slot=dropdown-menu-content][data-state=open]{animation:.13s ease-out dropdown-menu-in}[data-slot=dropdown-menu-content][data-state=closed]{animation:95ms ease-in dropdown-menu-out}[data-slot=dropdown-menu-label]{color:var(--muted);text-transform:uppercase;padding:7px 8px 5px;font-size:11px;font-weight:900}[data-slot=dropdown-menu-radio-item],[data-slot=dropdown-menu-item]{color:var(--green-dark);cursor:pointer;border-radius:7px;outline:0;align-items:center;gap:8px;min-height:38px;padding:7px 9px 7px 30px;font-size:13px;font-weight:900;display:flex;position:relative}[data-slot=dropdown-menu-radio-item]>span:first-child{color:var(--green);justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;top:50%;left:9px;transform:translateY(-50%)}[data-slot=dropdown-menu-radio-item][data-highlighted],[data-slot=dropdown-menu-item][data-highlighted]{background:var(--soft)}[data-slot=dropdown-menu-radio-item] span:not(:first-child){gap:2px;min-width:0;display:grid}[data-slot=dropdown-menu-radio-item] small,.workspace-menu small{color:var(--muted);text-transform:none;font-size:11px;font-weight:800}[data-slot=dropdown-menu-separator]{background:var(--line);height:1px;margin:5px 0}.dashboard-layout{gap:16px;max-width:1180px;margin:0 auto;display:grid}.dashboard-content-grid{grid-template-columns:minmax(340px,.92fr) minmax(0,1.35fr);gap:16px;display:grid}.skeleton-block,.skeleton-chart-row span,.skeleton-mark{background:linear-gradient(90deg,#eef4ef 0%,#f8fbf8 48%,#e7eee8 100%) 0 0/220% 100%;border-radius:8px;animation:1.35s ease-in-out infinite skeleton-shimmer;display:block;position:relative;overflow:hidden}.skeleton-block.light{background:linear-gradient(90deg,#ffffff2e,#ffffff6b,#ffffff29) 0 0/220% 100%}.skeleton-mark{width:50px;height:50px}.skeleton-title-stack{gap:8px;display:grid}.skeleton-user-row{align-items:center;gap:12px;display:flex}.skeleton-block.short{width:92px;height:12px}.skeleton-block.title{width:220px;height:26px}.skeleton-block.badge{border-radius:999px;width:132px;height:30px}.skeleton-block.email{width:240px;height:18px}.skeleton-block.button{width:98px;height:38px}.skeleton-total{align-content:start;gap:26px;display:grid}.skeleton-block.amount{width:220px;height:54px}.skeleton-block.pill{border-radius:8px;width:158px;height:38px}.skeleton-panel{gap:16px;min-height:200px;padding:22px;display:grid}.skeleton-panel-header{justify-content:space-between;align-items:start;display:flex}.skeleton-block.segmented{width:210px;height:38px}.skeleton-stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.skeleton-block.stat{height:82px}.skeleton-chart-row{grid-template-columns:repeat(3,1fr);align-items:end;gap:12px;min-height:74px;display:grid}.skeleton-chart-row span{border-radius:999px 999px 8px 8px;height:58px}.skeleton-block.row{width:100%;height:58px}.skeleton-block.row.narrow{width:72%}.skeleton-filter-row{grid-template-columns:1.4fr .9fr;gap:10px;display:grid}.skeleton-block.filter{height:46px}.skeleton-block.filter.small{min-width:140px}.period-card,.metric-card,.panel,.signed-out-card,.error-panel{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.total-card{color:#fff;background:linear-gradient(135deg,#1b4c43,#0f342e);min-height:210px;padding:24px;position:relative;overflow:hidden}.total-card-content,.total-card-art{z-index:1;position:relative}.total-card-art:before{content:"";background:#ffffff14;border-radius:50%;width:210px;height:210px;position:absolute;top:-98px;right:-74px}.total-card-art:after{content:"";border:3px solid #0000;border-top-color:#ffffff26;border-radius:50%;width:360px;height:140px;position:absolute;top:60px;right:-30px;transform:rotate(-13deg)}.card-heading-row{justify-content:space-between}.card-heading-row p,.total-card p{color:#ffffffc7;font-size:14px;font-weight:900}.card-icon{color:var(--green-dark);background:#e5f1ec;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.total-card strong{margin-top:18px;font-size:46px;line-height:1;display:block}.meta-pill{color:var(--green);background:#e5f1ec;border-radius:8px;align-items:center;gap:8px;margin-top:24px;padding:9px 11px;font-size:14px;font-weight:900;display:inline-flex}.period-card,.panel{padding:20px}.period-card{gap:16px;display:grid;overflow:hidden}.period-card-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.month-strip{scroll-snap-type:x proximity;gap:10px;margin:0 -4px;padding:0 4px 4px;display:flex;overflow-x:auto}.month-chip{color:var(--green-dark);cursor:pointer;scroll-snap-align:start;text-align:left;background:#f9fbf8;border:1px solid #e2ebe5;border-radius:8px;flex:0 0 168px;gap:7px;min-height:82px;padding:12px;display:grid}.month-chip:hover{border-color:#c8dcd2}.month-chip[aria-pressed=true]{background:var(--green-dark);border-color:var(--green-dark);color:#fff}.month-chip span,.metric-card span,.metric-card p{color:var(--muted);font-size:12px;font-weight:850}.month-chip[aria-pressed=true] span,.month-chip[aria-pressed=true] strong{color:#fff}.month-chip strong{font-size:18px;line-height:1.1}.month-chip em{background:var(--soft);border-radius:999px;height:7px;margin-top:3px;display:block;overflow:hidden}.month-chip i{background:linear-gradient(90deg, var(--gold), #ba7d32);border-radius:inherit;height:100%;display:block}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric-card{gap:8px;min-height:112px;padding:16px;display:grid}.metric-card-primary{color:#fff;background:linear-gradient(135deg,#1b4c43,#0f342e);position:relative;overflow:hidden}.metric-card-primary:after{content:"";background:#ffffff14;border-radius:999px;width:150px;height:150px;position:absolute;top:-82px;right:-62px}.metric-card strong{color:var(--green-dark);font-size:24px;line-height:1.05}.metric-card-primary span,.metric-card-primary strong,.metric-card-primary p{color:#fff;z-index:1;position:relative}.panel-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.panel-header>span{color:var(--muted);font-size:13px;font-weight:900}.panel-header-actions{align-items:center;gap:10px;display:flex}.panel-header-actions>span{color:var(--muted);font-size:13px;font-weight:900}.segmented-control{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:4px;display:flex}.segment-button{cursor:pointer;background:0 0;border:0;border-radius:7px;min-height:34px;padding:0 12px;font-size:13px;font-weight:900}.segment-button[aria-pressed=true]{background:var(--green);color:#fff}.overview-stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.overview-stats div{background:#f9fbf8;border:1px solid #e7ece7;border-radius:8px;padding:12px}.overview-stats span,.month-bar-column span,.month-header span,.category-share,.product-main p,.sheet-product-row p,.sheet-description,.sheet-summary-row span{color:var(--muted);font-size:12px;font-weight:800}.overview-stats strong{margin-top:7px;font-size:20px;display:block}.month-bars{align-items:end;gap:10px;height:78px;margin-top:18px;display:flex}.month-bar-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:18px;height:100%;display:flex}.month-bar-track{background:var(--soft);border-radius:999px;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.month-bar-fill{background:linear-gradient(180deg, var(--gold), #ba7d32);border-radius:inherit;width:100%;min-height:6px}.categories-panel{align-self:start}.products-panel{min-width:0}.category-stack,.product-sections,.product-list,.sheet-product-list{gap:10px;display:grid}.category-create-open-button{background:var(--green);border:1px solid var(--green);color:#fff;cursor:pointer;border-radius:8px;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-size:13px;font-weight:900;display:inline-flex}.category-row{cursor:pointer;text-align:left;background:#f9fbf8;border:1px solid #e7ece7;border-radius:8px;width:100%;min-height:82px;padding:14px;transition:border-color .16s,transform .16s,background .16s;display:block}.category-row:hover{background:#fff;border-color:#cadbd3;transform:translateY(-1px)}.category-row-top{justify-content:space-between;gap:12px}.category-name-group{flex:1;gap:10px;min-width:0}.category-dot{border-radius:999px;flex:none;width:12px;height:12px}.category-name-group strong{font-size:15px;line-height:1.2;display:block}.category-share{margin-top:4px;display:block}.category-amount-group{color:var(--green-dark);white-space:nowrap;gap:6px}.category-progress-track{background:var(--soft);border-radius:999px;width:100%;height:7px;margin-top:13px;display:block;overflow:hidden}.category-progress-fill{border-radius:inherit;min-width:4px;height:100%;display:block}.category-budget-line{color:var(--green-dark);gap:6px;margin-top:10px;font-size:12px;font-weight:850;display:grid}.category-budget-line.over{color:var(--danger)}.category-budget-track{background:#edf1ed;border-radius:999px;width:100%;height:6px;display:block;overflow:hidden}.category-budget-fill{border-radius:inherit;background:#d09a32;min-width:4px;height:100%;display:block}.category-budget-line.over .category-budget-fill,.category-budget-card.over .category-budget-fill{background:var(--danger)}.category-library{border-top:1px solid var(--line);gap:8px;margin-top:2px;padding-top:12px;display:grid}.category-library>span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.category-library-list{flex-wrap:wrap;gap:8px;display:flex}.category-library-row{color:var(--ink);cursor:pointer;background:#fff;border:1px solid #e2ebe5;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 10px;display:inline-flex}.category-library-row strong{font-size:13px}.category-library-row>span:last-child{color:var(--muted);font-size:12px;font-weight:800}.products-heading{margin-bottom:12px}.filter-bar{gap:10px;margin-bottom:14px}.search-field,.product-category-filter{color:var(--muted);background:#f9fbf8;border:1px solid #dfe8e2;border-radius:8px;gap:8px;min-height:42px;padding:0 11px}.search-field{flex:1.2}.product-category-filter{flex:.72;min-width:210px;position:relative}.search-field input{color:var(--ink);background:0 0;border:0;outline:0;width:100%;min-width:0}.product-category-filter [data-slot=combobox]{width:100%;min-width:0}.product-category-filter [data-slot=input-group]{box-shadow:none;background:0 0;border:0;width:100%;min-width:0;min-height:40px;display:flex}.product-category-filter [data-slot=input-group-control]{color:var(--ink);font:inherit;background:0 0;border:0;outline:0;flex:1;width:100%;min-width:0;padding:0;font-weight:850}.product-category-filter [data-slot=input-group-control]::placeholder{color:var(--ink);opacity:1}.product-category-filter [data-slot=input-group-addon]{flex:none;align-items:center;display:inline-flex}.product-category-filter [data-slot=combobox-trigger]{appearance:none;box-shadow:none;color:var(--green-dark);cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.product-category-filter [data-slot=combobox-trigger]:hover{background:0 0}.product-category-filter [data-slot=combobox-trigger]:focus-visible{box-shadow:none;outline:0}.product-category-filter [data-slot=input-group-button]{box-shadow:none;background:0 0;border:0}.product-category-filter [data-slot=combobox-trigger-icon],.product-detail-form [data-slot=combobox-trigger-icon]{color:var(--green-dark);opacity:1;flex:none}[data-slot=combobox-positioner]{z-index:150}[data-slot=combobox-content]{border:1px solid var(--line);color:var(--ink);max-height:min(340px,100vh - 28px);min-width:var(--anchor-width);transform-origin:var(--transform-origin);z-index:150;background:#fff;border-radius:8px;padding:5px;overflow:hidden;box-shadow:0 18px 36px #182a2721}[data-slot=combobox-content][data-open]{animation:.13s ease-out dropdown-menu-in}[data-slot=combobox-content][data-closed]{animation:95ms ease-in dropdown-menu-out}[data-slot=combobox-list]{gap:2px;max-height:280px;display:grid;overflow:auto}[data-slot=combobox-item]{color:var(--green-dark);cursor:pointer;border-radius:7px;outline:0;align-items:center;gap:8px;min-height:38px;padding:8px 34px 8px 10px;font-size:13px;font-weight:900;display:flex;position:relative}[data-slot=combobox-item][data-highlighted]{background:var(--soft)}[data-slot=combobox-item-indicator]{color:var(--green);justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}[data-slot=combobox-empty]{color:var(--muted);justify-content:center;padding:12px;font-size:13px;font-weight:800;display:none}[data-empty] [data-slot=combobox-empty]{display:flex}.product-category-combobox-content{z-index:155}.category-combobox-input,.product-detail-form [data-slot=combobox],.product-detail-form [data-slot=input-group]{width:100%}.product-detail-form [data-slot=input-group]{background:#fff;border:1px solid #cadbd3;border-radius:8px;align-items:center;min-height:42px;display:flex}.product-detail-form [data-slot=input-group-control]{color:var(--green-dark);font:inherit;background:0 0;border:0;outline:0;flex:1;width:100%;min-width:0;padding:0 8px 0 12px;font-weight:850}.product-detail-form [data-slot=input-group-addon]{flex:none;align-items:center;padding-right:8px;display:inline-flex}.product-detail-form [data-slot=combobox-trigger]{appearance:none;color:var(--green-dark);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;min-width:30px;min-height:30px;padding:0;display:inline-flex}.product-detail-form [data-slot=combobox-trigger]:hover{background:var(--soft)}.product-detail-form [data-slot=combobox-trigger]:focus-visible{outline:0;box-shadow:0 0 0 3px #2d6a5f1f}.category-combobox-content{z-index:155}.product-section{gap:10px;display:grid}.month-header{border:1px solid var(--line);z-index:2;background:#eef4efb8;border-radius:8px;gap:10px;padding:10px 12px;display:grid;position:sticky;top:0}.month-header-main,.month-header-actions{align-items:center;gap:10px;display:flex}.month-header-main{justify-content:space-between}.month-header-actions{flex-wrap:wrap;justify-content:flex-end}.month-header strong{color:var(--green-dark);font-size:14px}.month-budget-chip{color:#7a5713;background:#fff7dd;border:1px solid #e4bf68;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900}.month-budget-chip.over{color:var(--danger);background:#fff0ed;border-color:#efb3aa}.month-budget-edit-button{color:var(--green);cursor:pointer;background:#fff;border:1px solid #cfe0d7;border-radius:8px;align-items:center;gap:6px;min-height:32px;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.month-budget-track{background:#e3ebe5;border-radius:999px;width:100%;height:6px;display:block;overflow:hidden}.month-budget-fill{border-radius:inherit;background:#d09a32;min-width:4px;height:100%;display:block}.month-budget-track.over .month-budget-fill{background:var(--danger)}.month-budget-form{background:#fff;border:1px solid #dbe7df;border-radius:8px;gap:10px;padding:12px;display:grid}.month-budget-form label{gap:7px;display:grid}.month-budget-form label span{color:var(--muted);font-size:12px;font-weight:850}.month-budget-form input{color:var(--ink);background:#f9fbf8;border:1px solid #cfdcd3;border-radius:8px;outline:none;min-height:40px;padding:0 11px}.month-budget-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2d6a5f1f}.product-row{background:#f9fbf8;border:1px solid #e7ece7;border-radius:8px;align-items:center;gap:12px;min-height:74px;padding:13px;display:flex}.item-accent{border-radius:999px;flex:0 0 4px;align-self:stretch}.product-main{flex:1;min-width:0}.product-open-button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}.product-open-button:hover strong{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.product-main strong{line-height:1.25;display:block}.product-main p{margin-top:5px}.product-additional-name{color:#7a510d;background:#fff7df;border:1px solid #ead08a;border-radius:999px;margin-top:7px;padding:4px 8px;font-size:12px;font-weight:900;display:inline-flex}.product-actions{flex-direction:column;gap:8px}.product-actions span{color:var(--green-dark);white-space:nowrap;font-weight:900}.product-action-buttons{justify-content:flex-end;gap:8px;display:flex}.product-action-buttons button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:38px;height:36px;display:inline-flex}.product-additional-name-button{color:var(--green-dark);background:#f4f8f6;border:1px solid #d7e4de}.product-delete-button{background:var(--danger-bg);color:var(--danger);border:1px solid #fee4e2}.product-detail-form{gap:8px;display:grid}.product-original-name{background:#f7faf7;border:1px solid #e4ece7;border-radius:8px;gap:3px;padding:10px 12px;display:grid}.product-original-name span,.product-detail-form label span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.product-original-name strong{color:var(--green-dark)}.product-detail-form label{gap:5px;display:grid}.product-detail-form input{color:var(--green-dark);font:inherit;background:#fff;border:1px solid #cadbd3;border-radius:8px;min-height:42px;padding:0 12px}.combobox-trigger{color:var(--green-dark);cursor:pointer;font:inherit;text-align:left;background:#fff;border:1px solid #cadbd3;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:42px;padding:0 12px;font-weight:850;display:flex}.combobox-trigger span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.combobox-trigger:focus-visible{border-color:var(--green);outline:0;box-shadow:0 0 0 3px #2d6a5f1f}.popover-content{color:var(--ink);z-index:80;background:#fff;border:1px solid #d8e4dd;border-radius:8px;width:min(392px,100vw - 42px);box-shadow:0 18px 42px #182a2729}.command{display:grid;overflow:hidden}.command-input{border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;background:0 0;outline:0;width:100%;min-height:44px;padding:0 12px}.product-detail-form .command-input{border:0;border-bottom:1px solid var(--line);border-radius:0;min-height:44px}.command-list{max-height:246px;padding:6px;overflow-y:auto}.command-empty{color:var(--muted);padding:12px;font-size:13px;font-weight:800}.command-group{gap:2px;display:grid}.command-item{color:var(--ink);cursor:pointer;border-radius:7px;align-items:center;gap:8px;min-height:38px;padding:0 9px;font-size:14px;font-weight:850;display:flex}.command-item[data-selected=true]{background:var(--soft);color:var(--green-dark)}.combobox-check{color:var(--green);opacity:0;flex:0 0 16px}.combobox-check.is-visible{opacity:1}.product-detail-form p{color:var(--danger);font-weight:800}.product-detail-actions{justify-content:flex-start;gap:8px;display:flex}.product-detail-form button{cursor:pointer;border-radius:8px;min-height:38px;padding:0 12px;font-weight:900}.product-detail-form button[type=button]{color:var(--green-dark);background:#fff;border:1px solid #cadbd3}.product-detail-form button[type=submit]{background:var(--green-dark);border:1px solid var(--green-dark);color:#fff}.load-more-button{color:var(--green-dark);cursor:pointer;background:#fff;border:1px solid #cadbd3;border-radius:8px;width:100%;min-height:46px;font-weight:900}.load-more-button:hover{background:#f6faf7}.share-access-form{border:1px solid var(--line);background:#f9fbf8;border-radius:8px;gap:12px;margin-top:18px;padding:14px;display:grid}.share-access-form label{gap:7px;display:grid}.share-access-form label span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.share-access-form input{color:var(--green-dark);background:#fff;border:1px solid #cadbd3;border-radius:8px;outline:0;min-height:42px;padding:0 12px}.share-access-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2d6a5f1f}.share-access-form button{background:var(--green-dark);border:1px solid var(--green-dark);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 13px;font-weight:900;display:inline-flex}.share-access-error{color:var(--danger);margin-top:12px;font-size:13px;font-weight:850}.share-access-toolbar{justify-content:space-between;align-items:center;margin:18px 0 10px;display:flex}.share-access-toolbar span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.share-access-toolbar button,.share-access-row button{border:1px solid var(--line);color:var(--green-dark);cursor:pointer;background:#fff;border-radius:8px;min-height:34px;padding:0 10px;font-size:13px;font-weight:900}.share-access-list{gap:10px;display:grid}.share-access-row{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;min-height:68px;padding:12px;display:flex}.share-access-row div{gap:4px;min-width:0;display:grid}.share-access-row strong{color:var(--green-dark);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-access-row span{color:var(--muted);font-size:12px;font-weight:800}.empty-panel{color:var(--muted);background:#f9fbf8;border:1px solid #e7ece7;border-radius:8px;align-items:center;gap:10px;min-height:86px;padding:16px;display:flex}.empty-panel p,.empty-text{color:var(--muted);font-size:14px;font-weight:800}.empty-panel.compact{min-height:72px}.signed-out-shell{justify-content:center;align-items:center;display:flex}.signed-out-card,.error-panel{max-width:520px;padding:28px}.signed-out-card h1{margin-top:14px}.signed-out-card p:not(.eyebrow),.error-panel p{color:var(--muted);margin-top:12px;font-size:15px;line-height:1.5}.primary-button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:8px;min-height:48px;margin-top:22px;padding:0 18px;font-weight:900}.auth-card{gap:14px;display:grid}.auth-form{gap:11px;margin-top:8px;display:grid}.auth-form .primary-button{margin-top:0}.auth-form input{color:var(--ink);background:#f9fbf8;border:1px solid #dfe8e2;border-radius:8px;outline:0;min-height:48px;padding:0 13px}.auth-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2d6a5f1f}.google-button,.text-switch-button{cursor:pointer;border-radius:8px;min-height:48px;font-weight:900}.google-button{border:1px solid var(--line);color:var(--green-dark);background:#fff}.auth-divider{color:var(--muted);text-transform:uppercase;justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:800;display:flex}.auth-divider:before,.auth-divider:after{background:var(--line);content:"";width:100%;height:1px}.text-switch-button{border:1px solid var(--line);color:var(--green-dark);background:0 0}.config-warning,.error-text{background:var(--danger-bg);color:var(--danger);border:1px solid #fee4e2;border-radius:8px;gap:5px;padding:12px;display:grid}.config-warning span,.error-text{font-size:13px;font-weight:800;line-height:1.45}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sheet-overlay{z-index:50;background:#0f1f1b6b;animation-duration:.18s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:both;position:fixed;inset:0}.sheet-overlay[data-state=open]{animation-name:overlay-show}.sheet-overlay[data-state=closed]{animation-name:overlay-hide}.sheet-content{background:var(--bg);z-index:51;flex-direction:column;gap:16px;max-width:min(480px,100vw - 24px);padding:28px;animation-duration:.26s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:both;display:flex;position:fixed;overflow-y:auto;box-shadow:-18px 0 42px #182a2729}.sheet-content[data-state=closed]{animation-duration:.2s}.sheet-content[data-side=right]{border-left:1px solid var(--line);width:480px;top:0;bottom:0;right:0}.sheet-content.product-sheet-stacked{z-index:61;width:430px;max-width:min(430px,100vw - 24px)}.sheet-content[data-side=left]{border-right:1px solid var(--line);width:480px;top:0;bottom:0;left:0;box-shadow:18px 0 42px #182a2729}.sheet-content[data-side=top],.sheet-content[data-side=bottom]{width:100%;max-width:none;left:0;right:0}.sheet-content[data-side=top]{border-bottom:1px solid var(--line);top:0;box-shadow:0 18px 42px #182a2729}.sheet-content[data-side=bottom]{border-top:1px solid var(--line);bottom:0;box-shadow:0 -18px 42px #182a2729}.sheet-content[data-state=open][data-side=right]{animation-name:sheet-in-from-right}.sheet-content[data-state=closed][data-side=right]{animation-name:sheet-out-to-right}.sheet-content[data-state=open][data-side=left]{animation-name:sheet-in-from-left}.sheet-content[data-state=closed][data-side=left]{animation-name:sheet-out-to-left}.sheet-content[data-state=open][data-side=top]{animation-name:sheet-in-from-top}.sheet-content[data-state=closed][data-side=top]{animation-name:sheet-out-to-top}.sheet-content[data-state=open][data-side=bottom]{animation-name:sheet-in-from-bottom}.sheet-content[data-state=closed][data-side=bottom]{animation-name:sheet-out-to-bottom}.sheet-close{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;outline:none;justify-content:center;align-items:center;width:40px;height:40px;transition:border-color .14s,box-shadow .14s,opacity .14s;display:inline-flex;position:absolute;top:18px;right:18px}.sheet-close:hover{border-color:#bdd5c9}.sheet-close:focus-visible{box-shadow:0 0 0 3px #2d6a5f29}.sheet-header{padding-right:46px}.sheet-footer{flex-direction:column;gap:8px;margin-top:auto;display:flex}.sheet-title-row{gap:12px}.sheet-title-row>div{flex:1;min-width:0}.sheet-category-icon{background:var(--soft);color:var(--green);border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.sheet-title{color:var(--ink);margin-top:3px;font-size:24px;line-height:1.1}.sheet-description{margin-top:12px;display:block}.category-rename-open-button{background:var(--soft);color:var(--green);cursor:pointer;border:1px solid #cfe0d7;border-radius:8px;flex:none;align-items:center;gap:7px;min-height:36px;padding:0 11px;font-size:13px;font-weight:850;display:inline-flex}.category-lock-card{border:1px solid var(--line);background:#f9fbf8;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding:13px 14px;display:flex}.category-lock-card.is-locked{background:#fff8df;border-color:#ead390}.category-lock-card div{gap:4px;display:grid}.category-lock-card span{color:var(--green-dark);font-size:13px;font-weight:900}.category-lock-card p{color:var(--muted);margin:0;font-size:12px;font-weight:800}.category-lock-card button{background:var(--green);border:1px solid var(--green);color:#fff;cursor:pointer;font:inherit;border-radius:8px;flex:none;align-items:center;gap:7px;min-height:36px;padding:0 11px;font-size:13px;font-weight:900;display:inline-flex}.category-lock-card button:disabled{cursor:not-allowed;opacity:.68}.category-merge-form,.category-rename-form,.category-budget-form,.category-create-form{border:1px solid var(--line);background:#f9fbf8;border-radius:8px;gap:12px;margin-top:18px;padding:14px;display:grid}.category-merge-form label,.category-rename-form label,.category-budget-form label,.category-create-form label{gap:7px;display:grid}.category-merge-form label span,.category-rename-form label span,.category-budget-form label span,.category-create-form label span{color:var(--muted);font-size:12px;font-weight:800}.category-merge-form input,.category-rename-form input,.category-budget-form input,.category-create-form input{color:var(--ink);background:#fff;border:1px solid #cfdcd3;border-radius:8px;outline:none;min-height:42px;padding:0 11px}.category-merge-form input:focus,.category-rename-form input:focus,.category-budget-form input:focus,.category-create-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2d6a5f1f}.category-merge-card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:10px;margin-top:18px;padding:13px 14px;display:grid}.category-merge-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.category-merge-card-header div{gap:4px;display:grid}.category-merge-card-header span{color:var(--green-dark);font-size:13px;font-weight:900}.category-merge-card-header p,.category-merge-note{color:var(--muted);margin:0;font-size:12px;font-weight:800}.category-merge-budget-context{color:var(--muted);font-size:12px;font-weight:800;line-height:1.35}.category-merge-card-header button{border:1px solid var(--line);color:var(--green-dark);cursor:pointer;font:inherit;background:#fff;border-radius:8px;flex:none;min-height:36px;padding:0 11px;font-size:13px;font-weight:900}.category-merge-card-header button:disabled{cursor:not-allowed;opacity:.6}.category-merge-form{margin-top:0;padding:12px}.category-merge-form [data-slot=input-group]{background:#fff;border:1px solid #cfdcd3;border-radius:8px;align-items:center;min-height:42px;display:flex}.category-merge-form [data-slot=input-group-control]{color:var(--green-dark);padding:0 8px 0 12px;font-weight:850}.category-merge-form [data-slot=combobox-trigger]{appearance:none;color:var(--green-dark);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;min-width:30px;min-height:30px;padding:0;display:inline-flex}.category-merge-name-options{border:0;flex-wrap:wrap;gap:7px;margin:0;padding:0;display:flex}.category-merge-name-options legend{color:var(--muted);flex:0 0 100%;margin-bottom:1px;font-size:12px;font-weight:800}.category-merge-name-options button{border:1px solid var(--line);color:var(--green-dark);cursor:pointer;font:inherit;background:#fff;border-radius:8px;min-height:34px;padding:0 10px;font-size:12px;font-weight:900}.category-merge-name-options button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.category-merge-name-options button:disabled{cursor:not-allowed;opacity:.52}.category-rename-actions{justify-content:flex-end;gap:9px;display:flex}.category-rename-actions button{cursor:pointer;border-radius:8px;min-height:38px;padding:0 13px;font-weight:850}.category-rename-actions button:not(:last-child){border:1px solid var(--line);color:var(--ink);background:#fff}.category-rename-actions button:last-child{background:var(--green);border:1px solid var(--green);color:#fff}.category-rename-error{color:var(--danger);font-size:13px;font-weight:750}.sheet-summary-row{background:var(--green-dark);color:#fff;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0 16px;padding:16px;display:grid}.sheet-summary-row span{color:#bfd2cb}.sheet-summary-row strong{margin-top:5px;font-size:21px;display:block}.category-budget-card{color:var(--ink);background:#fff9e8;border:1px solid #ead08d;border-radius:8px;gap:10px;margin-bottom:16px;padding:14px;display:grid}.category-budget-card.over{background:#fff3f1;border-color:#efb3aa}.category-budget-card div{justify-content:space-between;align-items:center;gap:12px;display:flex}.category-budget-card span{color:var(--muted);font-size:12px;font-weight:850}.category-budget-card strong{color:var(--green-dark);font-size:15px}.sheet-product-row{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;min-height:70px;padding:13px;display:flex}.sheet-product-row-button{color:inherit;cursor:pointer;font:inherit;text-align:left;width:100%;transition:border-color .14s,box-shadow .14s,transform .14s}.sheet-product-row-button:hover{border-color:#2d6a5f42;transform:translateY(-1px);box-shadow:0 10px 26px #182a2714}.sheet-product-row-button:disabled{cursor:default;opacity:.76;transform:none}.sheet-product-row strong{line-height:1.25;display:block}.sheet-product-row p{margin-top:4px}.sheet-product-additional-name{color:#7a510d;white-space:normal;margin-top:5px;font-size:12px;font-weight:900;display:block}.sheet-product-row>span{color:var(--green-dark);white-space:nowrap;font-weight:900}@keyframes overlay-show{0%{opacity:0}to{opacity:1}}@keyframes overlay-hide{0%{opacity:1}to{opacity:0}}@keyframes dropdown-menu-in{0%{opacity:0;transform:scale(.97)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes dropdown-menu-out{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.97)translateY(-2px)}}@keyframes sheet-in-from-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes sheet-out-to-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes sheet-in-from-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes sheet-out-to-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes sheet-in-from-top{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-out-to-top{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes sheet-in-from-bottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-out-to-bottom{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media (max-width:980px){.app-shell,.signed-out-shell{padding:18px}.topbar{align-items:flex-start;gap:16px}.dashboard-content-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar{grid-template-columns:1fr;align-items:stretch;display:grid}.user-email{display:none}.skeleton-topbar{flex-direction:column;align-items:stretch}.skeleton-user-row{justify-content:space-between}.skeleton-block.email{display:none}.skeleton-filter-row{grid-template-columns:1fr}.skeleton-panel-header{flex-direction:column;gap:14px}}@media (max-width:680px){h1{font-size:26px}.period-card-header,.panel-header,.month-header-main,.topbar{flex-direction:column;align-items:flex-start}.metric-grid{grid-template-columns:1fr}.segmented-control{width:100%}.month-chip{flex-basis:152px}.segment-button{flex:1}.product-row,.category-row-top{align-items:flex-start}.sheet-summary-row{grid-template-columns:1fr}.category-budget-card div{flex-direction:column;align-items:flex-start}.product-actions{align-items:flex-end}}
