:root{--color-bg: #faf9f6;--color-surface: #f2f1ee;--color-border: #e5e1d8;--color-text: #14261f;--color-muted: #6b6f68;--color-primary: #166534;--color-primary-hover: #0f4d2a;--color-success: #22c55e;--color-danger: #e64d2e;--color-warning: #f2b705;--color-logo-white: #fffdf7;--color-elevated: #f2f1ee;--color-elevated-hover: #faf9f6;--color-icon: #14261f;--shadow-soft: 0 18px 60px rgba(20, 38, 31, .08);--font-ui: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color-scheme:light;color:var(--color-text);background:var(--color-bg);font-family:var(--font-ui);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--color-bg: #000000;--color-surface: #0b0d0c;--color-elevated: #101613;--color-elevated-hover: #13241a;--color-border: #26352d;--color-text: #f8f6ef;--color-muted: #a8a69f;--color-tertiary: #6f746c;--color-primary: #22a55a;--color-primary-hover: #168246;--color-success: #22c55e;--color-danger: #f15a32;--color-warning: #f2b705;--color-icon: #d8d5cc;--shadow-soft: 0 18px 60px rgba(0, 0, 0, .32);color-scheme:dark}*{box-sizing:border-box}html{min-height:100%;background:var(--color-bg);overscroll-behavior:none;scrollbar-width:none;-ms-overflow-style:none}body{margin:0;min-width:320px;min-height:100dvh;background:var(--color-bg);overscroll-behavior:none;scrollbar-width:none;-webkit-text-size-adjust:100%;-webkit-touch-callout:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{width:0;height:0;display:none}button,input,select,textarea{font:inherit}button{cursor:pointer}#root{min-height:100dvh}.app-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100dvh;background:var(--color-bg);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);touch-action:pan-x pan-y}.sidebar{display:flex;flex-direction:column;gap:24px;padding:max(22px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));border-right:1px solid var(--color-border)}.brand img{display:block;width:154px;height:auto}.nav-list{display:grid;gap:6px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:8px 10px;border:0;border-radius:8px;color:var(--color-text);background:transparent;text-decoration:none}.nav-item.active,.nav-item:hover{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.settings{margin-top:auto}.content{min-width:0;padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-height:44px}.mobile-brand{display:none;align-items:center;gap:8px;margin-right:auto}.mobile-brand img{width:30px;height:30px}.collaborators{display:inline-flex;align-items:center;gap:4px}.avatar{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--color-border);border-radius:999px;color:var(--color-logo-white);background:var(--color-primary);font-size:11px;font-weight:700}.live-dot{width:8px;height:8px;margin-left:4px;border-radius:999px;background:var(--color-success)}.workspace{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(520px,1.6fr);gap:18px;margin-top:18px}.month-panel,.fair-panel{border:1px solid var(--color-border);border-radius:12px;background:color-mix(in srgb,var(--color-elevated) 86%,transparent);box-shadow:var(--shadow-soft)}.month-panel{padding:18px}.fair-panel{overflow:hidden}.section-heading,.fair-header{display:flex;align-items:center;gap:12px}.section-heading{justify-content:space-between;margin-bottom:18px}.eyebrow,.metric small,.fair-row small{color:var(--color-muted);font-size:12px;line-height:1.2}h1,h2,p{margin:0}h1{font-size:28px;line-height:1.1;font-weight:700}h2{font-size:26px;line-height:1.1}.fair-list{display:grid;gap:8px}.fair-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;width:100%;padding:14px;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);background:transparent;text-align:left;transition:transform .16s ease,background .16s ease,border-color .16s ease}.fair-row:hover,.fair-row.active{background:var(--color-elevated-hover);border-color:color-mix(in srgb,var(--color-primary) 36%,var(--color-border))}.fair-row:active,.primary-button:active,.ghost-button:active,.icon-button:active,.status-button:active{transform:translateY(1px)}.fair-row strong,.money-block strong,.metric strong{font-variant-numeric:tabular-nums}.money-block{display:grid;justify-items:end;gap:3px}.progress-track{grid-column:1 / -1;height:4px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border) 80%,transparent)}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--color-primary)}.fair-header{padding:18px;border-bottom:1px solid var(--color-border)}.fair-header p{margin-top:3px;color:var(--color-muted);font-size:13px}.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.primary-button,.ghost-button,.icon-button,.status-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;border-radius:8px;transition:transform .16s ease,background .16s ease,border-color .16s ease}.primary-button{padding:0 13px;border:1px solid var(--color-primary);color:var(--color-logo-white);background:var(--color-primary);font-weight:700}.primary-button:hover{background:var(--color-primary-hover)}.ghost-button{padding:0 12px;border:1px solid var(--color-border);color:var(--color-text);background:transparent}.icon-button,.status-button{width:36px;border:1px solid var(--color-border);color:var(--color-text);background:transparent}.icon-button.compact,.status-button{width:30px;min-height:30px}.items-table{padding:8px 18px 0}.table-head,.item-row{display:grid;grid-template-columns:minmax(210px,1fr) 64px 92px 92px 118px;align-items:center;gap:10px}.table-head{padding:10px 0;color:var(--color-muted);font-size:11px;font-weight:700;text-transform:uppercase}.item-row{min-height:48px;border-top:1px solid var(--color-border);font-size:14px}.item-row.purchased{color:color-mix(in srgb,var(--color-text) 55%,var(--color-muted))}.item-name{display:flex;align-items:center;gap:10px;min-width:0}.item-name svg{color:var(--color-muted);flex:0 0 auto}.row-actions{display:flex;justify-content:flex-end;gap:6px}.status-button.done{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 42%,var(--color-border))}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px;border-top:1px solid var(--color-border)}.metric,.budget-ring{min-height:92px;padding:14px 16px;border-right:1px solid var(--color-border)}.metric{display:grid;align-content:center;gap:5px}.metric span{color:var(--color-muted)}.metric.success strong{color:var(--color-success)}.metric.danger strong{color:var(--color-danger)}.budget-ring{display:grid;place-items:center;text-align:center}.budget-ring strong{display:grid;place-items:center;width:58px;height:58px;border:6px solid var(--color-primary);border-radius:999px;font-size:16px}.budget-ring span{color:var(--color-muted);font-size:12px}.realtime-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-top:1px solid var(--color-border);color:var(--color-muted);font-size:13px}.realtime-bar>div,.presence,.presence span{display:flex;align-items:center;gap:8px}.realtime-bar svg{color:var(--color-success)}.presence i{display:inline-block;width:8px;height:8px;border-radius:999px}.presence .online{background:var(--color-success)}.presence .editing{background:var(--color-warning)}.presence .viewing{background:var(--color-muted)}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-brand{display:flex}.workspace{grid-template-columns:1fr}}@media(max-width:720px){.content{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.topbar{gap:8px}.collaborators{display:none}.primary-button{min-height:40px}.fair-header{align-items:flex-start;flex-wrap:wrap}.header-actions{width:100%;margin-left:0;overflow-x:auto;padding-bottom:2px}.items-table{overflow-x:auto}.table-head,.item-row{grid-template-columns:minmax(190px,1fr) 56px 86px 86px 112px;min-width:560px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.realtime-bar{align-items:flex-start;flex-direction:column}}
