:root{--bg-screen: #f4f1e8;--bg-app: #e5e1d4;--ink-900: #11110e;--ink-700: #2a2a24;--sidebar-active: #1f1f1a;--sidebar-hover: #1a1a16;--surface-card: #ffffff;--divider: #efebde;--chip: #f4f1e8;--muted: #8c8c82;--muted-2: #a0a096;--muted-3: #9a968a;--body-light: #c9c9c0;--nav-inactive: #8c8c82;--chevron: #c9c5b6;--warn: #f0c24a;--warn-ink: #a8780c;--sticker-good: #e8f15c;--danger: #c7402a;--toggle-off: #d2cdbe;--on-dark: #ffffff;--card-muted: #6c6c63;--chart-rest: #5c5c54;--chart-track: #e7e2d3;--accent: #00c16a;--accent-ink: #008f4c;--tint: color-mix(in srgb, var(--accent) 16%, #ffffff);font-family:Bricolage Grotesque,system-ui,-apple-system,sans-serif;color:var(--ink-900)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-screen);-webkit-font-smoothing:antialiased}.mono{font-family:Space Mono,ui-monospace,monospace}.cap{font-family:Space Mono,monospace;text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;font-weight:700;color:var(--muted-2)}.h1{font-size:27px;font-weight:800;letter-spacing:-.02em;margin:0}.spacer{flex:1}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:252px;flex:none;background:var(--ink-900);color:#fff;display:flex;flex-direction:column;padding:22px 16px;gap:6px;overflow-y:auto}.sidebar-caption{color:var(--muted);margin:18px 8px 6px}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:var(--nav-inactive);font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;transition:background .15s,color .15s}.nav-item:hover{background:var(--sidebar-hover);color:#fff}.nav-item.active{background:var(--sidebar-active);color:var(--accent)}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{flex:none;display:flex;align-items:center;gap:16px;padding:20px 32px}.view{flex:1;overflow-y:auto;padding:18px 32px 40px}.card{background:var(--surface-card);border-radius:24px;padding:22px}.card-dark{background:var(--ink-900);color:#fff;border-radius:24px;padding:22px}.grid{display:grid;gap:16px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.overview-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:start}@media (max-width: 1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.overview-grid,.cols-3{grid-template-columns:1fr}}@media (max-width: 760px){.sidebar{width:72px;padding:22px 10px}.sidebar .label-hide{display:none}.topbar,.view{padding-left:16px;padding-right:16px}.kpi-grid,.cols-2{grid-template-columns:1fr}}.track{height:6px;border-radius:6px;background:var(--divider);overflow:hidden}.track.on-dark{background:var(--ink-700)}.track>.fill{height:100%;border-radius:6px;background:var(--accent)}.seg{display:inline-flex;background:var(--chip);border-radius:12px;padding:4px;gap:4px}.seg button{border:0;background:transparent;color:#7a776b;font-family:inherit;font-weight:700;font-size:13px;padding:8px 14px;border-radius:10px;cursor:pointer;transition:all .15s}.seg button.active{background:var(--ink-900);color:#fff}.chip{border:0;background:var(--chip);color:#7a776b;font-family:inherit;font-weight:700;font-size:13px;padding:9px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:all .15s}.chip.active{background:var(--accent);color:var(--ink-900)}.chip-white{background:#fff;color:var(--ink-900);display:inline-flex;align-items:center;gap:8px}.icon-tile{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--tint);color:var(--accent-ink);flex:none}.icon-tile.dark{background:var(--ink-900);color:var(--accent)}.btn-accent{border:0;background:var(--accent);color:var(--ink-900);font-family:inherit;font-weight:800;font-size:15px;padding:12px 18px;border-radius:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 12px 28px -10px color-mix(in srgb,var(--accent) 70%,transparent)}.btn-accent.lg{font-size:17px;padding:15px 18px;border-radius:16px;width:100%}.btn-accent:disabled{opacity:.5;cursor:default;box-shadow:none}.btn-white{width:100%;border:0;background:var(--surface-card);color:var(--ink-900);font-family:inherit;font-weight:700;font-size:15px;padding:14px;border-radius:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}.btn-ghost{border:1px solid var(--divider);background:transparent;color:var(--ink-900);font-family:inherit;font-weight:700;font-size:14px;padding:10px 16px;border-radius:12px;cursor:pointer}.field{width:100%;border:1px solid var(--divider);background:var(--surface-card);border-radius:14px;padding:12px 14px;font-family:inherit;font-size:15px;color:var(--ink-900);outline:none}.field::placeholder{color:var(--muted-2)}.field:focus{border-color:transparent;box-shadow:0 0 0 2px var(--accent)}select.field{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238c8c82' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:40px;cursor:pointer}.field-label{font-family:Space Mono,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700;color:var(--muted)}.link-accent{color:var(--accent-ink);font-weight:700;text-decoration:none;cursor:pointer;background:none;border:0;font-family:inherit;font-size:inherit}.divider-or{display:flex;align-items:center;gap:12px;color:var(--muted-2);margin:16px 0}.divider-or:before,.divider-or:after{content:"";flex:1;height:1px;background:var(--divider)}.divider-or>span{font-family:Space Mono,monospace;font-size:11px;font-weight:700;letter-spacing:.08em}.checkbox{width:22px;height:22px;border-radius:7px;border:2px solid var(--muted-2);background:var(--surface-card);display:grid;place-items:center;cursor:pointer;flex:none;color:transparent}.checkbox.checked{background:var(--accent);border-color:var(--accent);color:var(--ink-900)}.badge{font-family:Space Mono,monospace;font-size:11px;font-weight:700;background:var(--accent);color:var(--ink-900);padding:3px 9px;border-radius:8px}.tag{font-family:Space Mono,monospace;font-size:11px;font-weight:700;background:var(--tint);color:var(--accent-ink);padding:3px 10px;border-radius:8px;white-space:nowrap}.row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--divider)}.row:last-child{border-bottom:0}.table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:10px 12px;font-family:Space Mono,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700;color:var(--muted-2);border-bottom:1px solid var(--divider)}.table td{padding:14px 12px;border-bottom:1px solid var(--divider);font-size:15px}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:var(--bg-screen)}.table tbody tr:last-child td{border-bottom:0}.toggle{width:42px;height:24px;border-radius:999px;background:var(--toggle-off);border:0;cursor:pointer;position:relative;flex:none;transition:background .15s}.toggle.on{background:var(--accent)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}.toggle.on:after{left:21px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11110e80;display:grid;place-items:center;z-index:50;padding:20px}.modal{background:var(--surface-card);border-radius:24px;padding:24px;width:540px;max-width:100%;display:flex;flex-direction:column;max-height:90vh;overflow-y:auto}.modal-footer{flex:none;display:flex;gap:12px;margin-top:18px}.btn-secondary{flex:none;border:0;background:var(--chip);color:var(--ink-900);font-family:inherit;font-weight:700;font-size:15px;padding:14px 20px;border-radius:14px;cursor:pointer}.btn-secondary:hover{background:var(--divider)}.auth-split{display:flex;min-height:100vh}.auth-brand{width:42%;flex:none;background:var(--ink-900);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:40px}.auth-form-wrap{flex:1;display:grid;place-items:center;padding:40px}.auth-form{width:100%;max-width:380px}@media (max-width: 820px){.auth-brand{display:none}}.month-select{display:inline-flex;align-items:center;gap:4px;background:#fff;border-radius:999px;padding:4px}.month-select button{border:0;background:transparent;color:var(--ink-900);width:30px;height:30px;border-radius:999px;cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s}.month-select button:hover:not(:disabled){background:var(--chip)}.month-select button:disabled{color:var(--chevron);cursor:default}.month-label{font-family:Space Mono,monospace;font-weight:700;font-size:13px;padding:0 6px;white-space:nowrap;min-width:96px;text-align:center}.icon-btn{border:0;background:var(--chip);color:var(--muted-2);width:32px;height:32px;border-radius:10px;cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s,transform .1s}.icon-btn:hover{color:var(--ink-900)}.icon-btn:active{transform:scale(.92)}.goal-actions{position:absolute;top:12px;right:12px;display:flex;gap:6px;opacity:0;transition:opacity .15s}.goal-card:hover .goal-actions{opacity:1}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.overlay{animation:overlay-in .18s ease both}.modal{animation:modal-in .22s cubic-bezier(.2,.85,.25,1) both}.card,.card-dark{animation:fade-up .28s ease both}.bar-fill{transform-origin:bottom;animation:bar-grow .5s cubic-bezier(.2,.85,.25,1) both}.btn-accent{transition:transform .1s}.btn-accent:active:not(:disabled){transform:scale(.97)}@media (prefers-reduced-motion: reduce){.overlay,.modal,.card,.card-dark,.bar-fill{animation:none}}.note{color:var(--muted-2);font-size:14px;text-align:center;padding:28px 8px}
