@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";:root{--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:.9375rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.375rem;--text-3xl:1.75rem;--text-4xl:2.25rem;--text-5xl:3rem;--leading-none:1.15;--leading-tight:1.3;--leading-snug:1.45;--leading-normal:1.55;--leading-relaxed:1.65;--tracking-tighter:-.02em;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.02em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800}html{font-family:var(--font-sans);font-size:16px;line-height:var(--leading-normal);letter-spacing:var(--tracking-normal);word-break:keep-all;overflow-wrap:break-word;font-feature-settings:"kern" 1;font-variant-numeric:proportional-nums}body{font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal)}.label{font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:var(--leading-snug);letter-spacing:var(--tracking-wide);color:var(--muted);display:block}.amount,.tabular-nums{font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}h1,h2,h3,h4{font-family:inherit;font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin:0}h1{font-size:var(--text-3xl);font-weight:var(--weight-extrabold)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-lg);font-weight:var(--weight-semibold)}p{line-height:var(--leading-normal);margin:0}button,input,select,textarea{font:inherit;letter-spacing:inherit;line-height:var(--leading-snug)}input,select,textarea{font-size:var(--text-base)}:root{--ink:#14181f;--ink-soft:#3a424e;--muted:#6b7380;--paper:#eef1f4;--paper-2:#e4e9ef;--surface:#ffffffb8;--surface-solid:#f7f8fa;--line:#14181f1a;--accent:#c4782a;--accent-deep:#9a5c1c;--teal:#2a6f7c;--danger:#b33a2b;--warn:#a86b1a;--radius:14px;--shadow:0 18px 50px #14181f14;color:var(--ink);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(1200px 600px at 10% -10%, #c4782a2e, transparent 55%), radial-gradient(900px 500px at 100% 0%, #2a6f7c24, transparent 50%), linear-gradient(165deg, var(--paper) 0%, var(--paper-2) 45%, #dfe6ec 100%);background-attachment:fixed;margin:0}body:before{content:"";pointer-events:none;opacity:.035;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}button{cursor:pointer;color:inherit}.muted{color:var(--muted)}.danger{color:var(--danger)}.danger-text{color:#ffb4a8!important}.profit{color:var(--teal)}.warn-text{color:var(--warn)}.app{z-index:1;max-width:1120px;margin:0 auto;padding:0 1.25rem 4rem;position:relative}.hero{align-items:flex-end;min-height:min(78vh,640px);padding:5.5rem 0 2.5rem;animation:.7s both rise;display:flex;position:relative}.hero__atmosphere{background:linear-gradient(#0000 30%,#eef1f4eb 92%),linear-gradient(125deg,#1c242e 0%,#2d3a45 42%,#3d4f4a 78%,#5a4630 100%);border-radius:0 0 28px 28px;height:min(72vh,580px);position:absolute;inset:-2rem -1.25rem auto;overflow:hidden}.hero__atmosphere:after{content:"";background:radial-gradient(60% 40% at 70% 30%,#c4782a59,#0000),radial-gradient(40% 50% at 20% 70%,#2a6f7c4d,#0000);animation:8s ease-in-out infinite alternate glow;position:absolute;inset:0}.hero__content{color:#f4f1ea;width:100%;padding-bottom:.5rem;position:relative}.brand{font-weight:var(--weight-extrabold);font-size:clamp(var(--text-4xl), 7vw, var(--text-5xl));line-height:var(--leading-tight);letter-spacing:var(--tracking-tighter);text-shadow:0 8px 40px #00000059;margin-bottom:1.25rem;animation:.8s 80ms both rise}.brand--sm{font-size:var(--text-lg);text-shadow:none;opacity:.9;margin:0;animation:none}.app-brand{margin-bottom:1.25rem;animation:.8s 80ms both rise}.app-brand__company{font-weight:var(--weight-extrabold);font-size:clamp(var(--text-4xl), 7vw, var(--text-5xl));line-height:var(--leading-tight);letter-spacing:var(--tracking-tighter);color:#14181f;margin:0}.app-brand__app{font-size:clamp(var(--text-sm), 1.8vw, var(--text-md));font-weight:var(--weight-bold);color:#c4782a;letter-spacing:var(--tracking-tight);margin:.2rem 0 0}.app-brand--sm{margin-bottom:0;animation:none}.app-brand--sm .app-brand__company{font-size:var(--text-lg);line-height:var(--leading-snug)}.app-brand--sm .app-brand__app{font-size:var(--text-xs);margin-top:.05rem}.app-brand--inverted .app-brand__company{color:#f4f1ea}.app-brand--inverted .app-brand__app{color:#f0c896;opacity:.9}.home-hero .app-brand__company,.hero .app-brand:not(.app-brand--inverted) .app-brand__company{color:#f4f1ea;text-shadow:0 8px 40px #00000059}.home-hero .app-brand__app,.hero .app-brand:not(.app-brand--inverted) .app-brand__app{color:#f0c896}.login-screen__card .app-brand{margin-bottom:.35rem;animation:none}.login-screen__card .app-brand__company{font-size:var(--text-2xl)}.hero--detail{min-height:min(58vh,480px);padding-top:2rem}.hero__nav{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;animation:.5s both rise;display:flex}.hero__budget--triple{align-items:flex-end}.hero__figure--secondary{opacity:.92;font-size:clamp(var(--text-xl), 2.8vw, var(--text-2xl))!important}.hero__title{font-size:clamp(var(--text-2xl), 3vw, var(--text-3xl));font-weight:var(--weight-bold);line-height:var(--leading-tight);max-width:22rem;margin-bottom:.5rem;animation:.75s .15s both rise}.hero__sub{color:#f4f1eab8;font-size:var(--text-md);line-height:var(--leading-relaxed);max-width:32rem;margin-bottom:1.5rem;animation:.75s .22s both rise}.hero__budget{flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;margin-bottom:1.75rem;animation:.75s .28s both rise;display:flex}.hero__figure .label{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:#f4f1ea8c;margin-bottom:.2rem;display:block}.hero__figure strong{font-size:clamp(var(--text-3xl), 4vw, var(--text-4xl));font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.hero .btn--ghost{color:#f4f1eae6;background:#ffffff0f;border-color:#f4f1ea40}.hero .btn--ghost:hover{background:#ffffff1f}.hero-edit{border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#14181f73;gap:.75rem;max-width:420px;margin-bottom:1.5rem;padding:1rem;animation:.4s both rise;display:grid}.hero-edit label{font-size:var(--text-sm);color:#f4f1eab3;gap:.35rem;display:grid}.hero-edit input{color:#fff;background:#ffffff14;border:1px solid #ffffff26;border-radius:10px;padding:.65rem .75rem}.meter{animation:.8s .35s both rise}.meter__track{background:#ffffff26;border-radius:999px;height:10px;overflow:hidden}.meter__fill{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg,#e8a84a,#c4782a);height:100%;transition:width .45s;animation:1s .5s both fillGrow}.meter__fill--over{background:linear-gradient(90deg, #d96a4a, var(--danger))}.meter__track{position:relative}.meter__fill--committed{z-index:0;pointer-events:none;background:#c4782a47;position:absolute;top:0;left:0}.meter__fill:not(.meter__fill--committed){z-index:1;position:relative}.meter__legend{font-size:var(--text-md);color:#f4f1eac7;flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:.75rem;display:flex}.meter__legend strong{color:#fff;font-weight:var(--weight-semibold)}.main{gap:2.5rem;margin-top:.5rem;display:grid}.section__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.section__head h2{font-size:var(--text-2xl);line-height:var(--leading-tight);margin-bottom:.2rem}.section__actions{flex-wrap:wrap;gap:.5rem;display:flex}.category-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.85rem;display:grid}.category-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);padding:1rem 1.05rem .95rem;animation:.55s both rise}.category-card__head{align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.category-card__head h3{font-size:var(--text-md);font-weight:var(--weight-bold);flex:1}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);border-radius:6px;padding:.15rem .45rem}.badge--warn{color:var(--warn);background:#a86b1a26}.badge--ok{color:var(--teal);background:#2a6f7c1f}.badge--danger{color:var(--danger);background:#b33a2b1f}.payment-row--no-invoice{border-color:#a86b1a4d}.invoice-check{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.invoice-check:hover:not(:disabled){border-color:var(--accent);color:var(--accent-deep)}.invoice-check--done{color:var(--accent-deep);background:#c4782a1f;border-color:#c4782a66}.invoice-check--disabled{opacity:.35;cursor:not-allowed}.invoice-check-inline--done{color:var(--accent-deep)!important;background:#c4782a1a!important}.expense-row--no-invoice{border-color:#a86b1a38}.field--checkbox{align-items:center;gap:.5rem;flex-direction:row!important;display:flex!important}.field--checkbox input{width:auto}.field--checkbox span{font-size:var(--text-base);color:var(--ink-soft)}.payment-row--overdue{background:#b33a2b0a;border-color:#b33a2b59}.link-badge{color:var(--teal);font-weight:var(--weight-semibold);font-size:var(--text-xs)}.overdue-alert{gap:.75rem;margin-bottom:1.25rem;display:grid}.overdue-alert__block{border:1px solid var(--line);border-radius:12px;overflow:hidden}.overdue-alert__block--danger{background:#b33a2b0d;border-color:#b33a2b59}.overdue-alert__block--soon{background:#a86b1a0d;border-color:#a86b1a59}.overdue-alert__block header{font-size:var(--text-base);font-weight:var(--weight-semibold);border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.65rem .85rem;display:flex}.overdue-alert__block header h2{font-size:var(--text-base);font-weight:var(--weight-bold)}.overdue-alert__block--danger header{color:var(--danger)}.overdue-alert__block--soon header{color:var(--warn)}.overdue-alert__block ul{margin:0;padding:0;list-style:none}.overdue-alert__item{text-align:left;border:none;border-top:1px solid var(--line);width:100%;color:inherit;background:0 0;padding:.65rem .85rem;display:block}.overdue-alert__item:hover{background:#ffffff80}.overdue-alert__title{font-weight:var(--weight-semibold);font-size:var(--text-base);display:block}.overdue-alert__meta{font-size:var(--text-xs);color:var(--muted);margin-top:.15rem;display:block}.ledger-month__actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.ledger-month__export{flex-wrap:wrap;gap:.35rem;display:flex}.detail-export{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-bottom:.75rem;padding:0 .25rem;display:flex}.budget-allocator__types{margin-bottom:.85rem}.budget-allocator__types-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--muted);margin-bottom:.45rem;display:block}.budget-allocator__preset-desc{font-size:var(--text-xs);margin:.45rem 0 0}.preset-chips{flex-wrap:wrap;gap:.4rem;display:flex}.preset-chip{border:1px solid var(--line);background:var(--surface-solid);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--ink-soft);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .75rem;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.preset-chip:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.preset-chip--active{border-color:var(--accent);color:var(--accent-deep);background:#c4782a1a}.modal--wide{width:min(480px,100%)}.field-readonly{color:var(--muted);background:#14181f0a!important}.vat-preview{margin-top:-.25rem}.receipt-upload{border:1px dashed var(--line);cursor:pointer;color:var(--muted);font-size:var(--text-sm);border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.receipt-upload:hover{border-color:var(--accent);color:var(--accent-deep);background:#c4782a0a}.receipt-preview{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.receipt-preview img{object-fit:cover;width:100%;max-height:160px;display:block}.receipt-preview__meta{font-size:var(--text-xs);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .65rem;display:flex}.project-card__flags{flex-wrap:wrap;gap:.25rem;display:flex}.category-card__bars{background:#14181f0f;border-radius:999px;height:8px;margin-bottom:.9rem;position:relative}.bar{border-radius:inherit;max-width:100%;height:100%;position:absolute;top:0;left:0}.bar--plan{background:#14181f1f}.bar--spent{opacity:.9}.category-card__stats{grid-template-columns:1fr 1fr;gap:.5rem;margin:0 0 .35rem;display:grid}.category-card__stats dt{font-size:var(--text-xs);color:var(--muted);margin-bottom:.15rem}.category-card__stats dd{font-weight:var(--weight-semibold);font-size:var(--text-base);margin:0}.category-card__hint{font-size:var(--text-xs)}.inline-num{width:100%;font-weight:var(--weight-semibold);font-size:var(--text-base);background:0 0;border:1px solid #0000;border-radius:8px;padding:.2rem .35rem}.inline-num:hover,.inline-num:focus{border-color:var(--line);background:#fff;outline:none}.filters{flex-wrap:wrap;gap:.45rem;margin-bottom:1rem;display:flex}.chip{border:1px solid var(--line);background:var(--surface);font-size:var(--text-sm);color:var(--ink-soft);border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .75rem;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.chip:hover{background:#fff}.chip--active{border-color:color-mix(in srgb, var(--chip-accent,var(--accent)) 55%, transparent);color:var(--ink);box-shadow:0 0 0 1px color-mix(in srgb, var(--chip-accent,var(--accent)) 25%, transparent);background:#fff}.chip__dot{border-radius:50%;width:6px;height:6px}.expense-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.expense-row{border-radius:var(--radius);background:var(--surface-solid);border:1px solid var(--line);grid-template-columns:4px 1fr auto auto;align-items:center;gap:.85rem;padding:.9rem 1rem;animation:.45s both rise;display:grid}.expense-row__swatch{border-radius:4px;align-self:stretch;min-height:2.5rem}.expense-row__title{font-weight:var(--weight-semibold);font-size:var(--text-base);line-height:var(--leading-snug);flex-wrap:wrap;align-items:center;gap:.25rem;margin-bottom:.15rem;display:flex}.expense-row__meta{font-size:var(--text-sm);color:var(--muted);flex-wrap:wrap;gap:.35rem;display:flex}.expense-row__note{font-size:var(--text-sm);color:var(--ink-soft);margin-top:.3rem}.expense-row__amount{font-weight:var(--weight-bold);font-size:var(--text-lg);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight);white-space:nowrap}.expense-row__actions{gap:.2rem;display:flex}.empty{text-align:center;border:1px dashed var(--line);border-radius:var(--radius);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--muted);background:#fff6;padding:2.5rem 1rem}.empty p+p{margin-top:.35rem}.empty--compact{padding:1.25rem 1rem}.payment-panel__badge{vertical-align:middle;margin-left:.5rem}.payment-summary{margin-bottom:1rem}.payment-summary__meter{background:#14181f14;border-radius:999px;height:8px;margin-bottom:.5rem;overflow:hidden}.payment-summary__meter--labor .payment-summary__fill{background:linear-gradient(90deg, #6aabbb, var(--teal))}.payment-summary__fill{border-radius:inherit;background:linear-gradient(90deg, #e8a84a, var(--accent));height:100%;transition:width .35s}.payment-summary__row{font-size:var(--text-base);flex-wrap:wrap;gap:.75rem 1.25rem;display:flex}.payment-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.payment-row{background:var(--surface-solid);border:1px solid var(--line);border-radius:12px;grid-template-columns:auto 1fr auto auto auto auto;align-items:center;gap:.65rem;padding:.75rem .85rem;transition:background .2s,border-color .2s;display:grid}.payment-row--labor{grid-template-columns:auto 1fr auto auto auto}.payment-row--done{background:#2a6f7c0f;border-color:#2a6f7c2e}.payment-check{border:2px solid var(--line);width:32px;height:32px;color:var(--muted);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.payment-check:hover{border-color:var(--teal);color:var(--teal)}.payment-check--done{background:var(--teal);border-color:var(--teal);color:#fff}.payment-row__main{text-align:left;min-width:0;color:inherit;background:0 0;border:none;padding:0}.payment-row__title{font-weight:var(--weight-semibold);font-size:var(--text-md);align-items:center;gap:.35rem;display:flex}.payment-row__role{font-weight:var(--weight-medium);font-size:var(--text-xs);color:var(--muted);background:#14181f0f;border-radius:5px;padding:.1rem .4rem}.payment-row__meta{font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;margin-top:.15rem;display:block;overflow:hidden}.payment-row__amount{font-weight:var(--weight-bold);font-size:var(--text-md);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight);white-space:nowrap}.payment-add-form{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:.5rem;margin-bottom:1rem;padding:.85rem;display:grid}.payment-add-form input{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.55rem .7rem}.sidebar-item__flags{gap:.25rem;margin-top:.35rem;display:flex}.sidebar-flag{font-size:var(--text-2xs);font-weight:var(--weight-semibold);border-radius:4px;padding:.12rem .35rem}.sidebar-flag--warn{color:#f0c896;background:#a86b1a33}.btn{font-weight:var(--weight-semibold);font-size:var(--text-md);line-height:var(--leading-snug);letter-spacing:var(--tracking-normal);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.65rem 1rem;transition:transform .15s,background .2s,border-color .2s;display:inline-flex}.btn:active{transform:scale(.98)}.btn--sm{font-size:var(--text-sm);padding:.45rem .75rem}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent-deep)}.btn--primary:hover{background:var(--accent-deep)}.btn--ghost{border-color:var(--line);color:var(--ink-soft);background:0 0}.btn--ghost:hover{background:#ffffffb3}.btn--block{width:100%}.icon-btn{width:34px;height:34px;color:var(--muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--ink);background:#14181f0f}.icon-btn--danger:hover{color:var(--danger);background:#b33a2b1a}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14181f73;place-items:end center;padding:1rem;animation:.2s both fade;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px 18px 14px 14px;width:min(440px,100%);max-height:min(90vh,720px);margin-bottom:.5rem;animation:.3s both slideUp;overflow:auto;box-shadow:0 24px 80px #00000040}.modal__head{justify-content:space-between;align-items:center;padding:1.1rem 1.15rem .5rem;display:flex}.modal__head h2{font-size:var(--text-xl);line-height:var(--leading-tight)}.form{gap:.85rem;padding:.5rem 1.15rem 1.25rem;display:grid}.field{gap:.35rem;display:grid}.field>span{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface-solid);border-radius:10px;padding:.7rem .8rem}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent);outline-offset:1px;border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}.field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-error{color:var(--danger);font-size:var(--text-base)}.form-actions{justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{0%{opacity:.85;transform:scale(1)}to{opacity:1;transform:scale(1.04)}}@keyframes fillGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.home-hero{align-items:flex-end;min-height:min(70vh,560px);padding:5rem 0 2rem;animation:.7s both rise;display:flex;position:relative}.home-hero__atmosphere{background:linear-gradient(#0000 28%,#eef1f4f0 92%),linear-gradient(125deg,#1c242e 0%,#2d3a45 42%,#3d4f4a 78%,#5a4630 100%);border-radius:0 0 28px 28px;height:min(66vh,520px);position:absolute;inset:-2rem -1.25rem auto;overflow:hidden}.home-hero__atmosphere:after{content:"";background:radial-gradient(55% 40% at 72% 28%,#c4782a59,#0000),radial-gradient(40% 50% at 18% 72%,#2a6f7c47,#0000);animation:8s ease-in-out infinite alternate glow;position:absolute;inset:0}.home-hero__content{color:#f4f1ea;width:100%;position:relative}.home-hero__title{font-size:clamp(var(--text-2xl), 3.2vw, var(--text-3xl));font-weight:var(--weight-bold);line-height:var(--leading-tight);max-width:20rem;margin-bottom:.55rem;animation:.75s .12s both rise}.home-hero__sub{color:#f4f1eab8;font-size:var(--text-md);line-height:var(--leading-relaxed);max-width:32rem;margin-bottom:1.75rem;animation:.75s .2s both rise}.portfolio-strip{border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#14181f61;border:1px solid #ffffff14;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;padding:1rem 1.1rem;animation:.8s .28s both rise;display:grid}.portfolio-strip .label{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:#f4f1ea8c;margin-bottom:.25rem;display:block}.portfolio-strip strong{font-size:clamp(var(--text-md), 2.2vw, var(--text-xl));font-weight:var(--weight-bold);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight)}.portfolio-strip .profit{color:#8fd0c0}.portfolio-strip .danger{color:#ffb4a8}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.project-card{border-radius:var(--radius);background:var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow);animation:.5s both rise;position:relative;overflow:hidden}.project-card__body{text-align:left;width:100%;color:inherit;background:0 0;border:none;gap:1rem;padding:1.15rem 1.15rem 1rem;display:grid}.project-card__body:hover{background:#ffffff8c}.project-card__top h3{font-size:var(--text-lg);margin-bottom:.25rem}.project-card__stats{grid-template-columns:1fr 1fr;gap:.65rem .75rem;margin:0;display:grid}.project-card__stats dt{font-size:var(--text-xs);color:var(--muted);margin-bottom:.15rem}.project-card__stats dd{font-weight:var(--weight-semibold);font-size:var(--text-base);align-items:center;gap:.25rem;margin:0;display:inline-flex}.project-card__stats>div:last-child{grid-column:1/-1}.project-card__foot{font-size:var(--text-xs);justify-content:space-between;gap:.5rem;display:flex}.project-card__delete{background:#fffc;position:absolute;top:.55rem;right:.55rem}.modal-backdrop--center{place-items:center;padding:1.5rem}.modal--create-project{border-radius:18px;width:min(480px,100%);margin-bottom:0}.modal__foot{border-top:1px solid var(--line);justify-content:flex-end;gap:.5rem;margin-top:.25rem;padding:.85rem 1.15rem 1.15rem;display:flex}.project-create-form.form{padding-top:.35rem}.create-form{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);gap:.85rem;margin-bottom:1.25rem;padding:1.1rem;animation:.35s both rise;display:grid}.create-form .form{padding:0}.create-form .form-actions{margin-top:0}.field-row--3{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-tabs{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#ffffff73;flex-wrap:wrap;gap:.35rem;max-width:1280px;margin:0 auto;padding:0 1.25rem;display:flex;position:sticky;top:0}.desktop-main .detail-tabs{padding:0 2rem}.detail-tabs__btn{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.85rem 1rem;transition:color .2s,border-color .2s}.detail-tabs__btn:hover{color:var(--ink-soft)}.detail-tabs__btn--active{color:var(--ink);border-bottom-color:var(--accent)}.main--tabbed{margin-top:1.25rem}.detail-tab-panel{gap:2rem;display:grid}.detail-tab-panel--stack{gap:2.5rem}.basis-badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);vertical-align:middle;border-radius:4px;margin-right:.35rem;padding:.12rem .4rem;display:inline-block}.basis-badge--accrual{color:var(--teal);background:#2a6f7c1f}.basis-badge--cash{color:var(--accent-deep);background:#c4782a1f}.hero__figure .label{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.allocation-banner{font-size:var(--text-sm);border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-bottom:.85rem;padding:.65rem .85rem}.allocation-banner--ok{background:#2a6f7c0f;border-color:#2a6f7c40}.allocation-banner--warn{background:#a86b1a0f;border-color:#a86b1a59}.form-hint{font-size:var(--text-sm);line-height:var(--leading-snug);border:1px solid var(--line);background:#14181f0a;border-radius:10px;padding:.65rem .85rem}.form-hint--warn{background:#a86b1a0f;border-color:#a86b1a59}.modal--narrow{width:min(380px,100%)}.profit-panel__grid--dual{grid-template-columns:1fr 1fr;margin-bottom:.85rem}.profit-hero--cash{background:linear-gradient(145deg, #c4782a1a, #ffffffb3), var(--surface-solid)}.profit-hero--cash strong{color:var(--accent-deep)}.profit-hero--cash.profit-hero--loss strong{color:var(--danger)}.allocation-banner--budget{margin-bottom:0}.budget-allocator{margin-bottom:1.25rem}.budget-allocator__summary{font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:.35rem .5rem;display:flex}.budget-allocator__hint{font-size:var(--text-sm);margin-top:.5rem}.budget-allocator__actions{flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem;display:flex}.budget-allocator__table-wrap{border:1px solid var(--line);background:var(--surface-solid);border-radius:12px;margin-bottom:.5rem;overflow-x:auto}.budget-allocator__table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.budget-allocator__table th,.budget-allocator__table td{text-align:left;border-bottom:1px solid var(--line);padding:.55rem .75rem}.budget-allocator__table th{font-weight:var(--weight-semibold);color:var(--muted);background:#14181f08}.budget-allocator__table tfoot td{font-weight:var(--weight-semibold);border-bottom:none}.budget-allocator__table .dot{vertical-align:middle;margin-right:.4rem;display:inline-block}.budget-allocator__input{width:100%;min-width:7rem}.category-card--labor{border-color:#2a6f7c40}.category-card__labor-note{font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--ink-soft);background:#2a6f7c14;border-radius:8px;margin:0 0 .65rem;padding:.45rem .55rem}.labor-callout{background:#2a6f7c12;border:1px solid #2a6f7c47;border-radius:12px;margin-bottom:1.25rem;padding:.85rem 1rem}.labor-callout strong{font-size:var(--text-base);margin-bottom:.25rem;display:block}.labor-callout p{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--ink-soft);margin:0}.labor-callout em{font-style:normal;font-weight:var(--weight-semibold);color:var(--teal)}.expense-callout{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-bottom:1rem;padding:.75rem .95rem}.expense-callout p{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--ink-soft);margin:0}.expense-callout__link{font:inherit;font-weight:var(--weight-semibold);color:var(--accent-deep);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.expense-callout__link:hover{color:var(--accent)}.expense-row--linked{background:#2a6f7c0d;border-color:#2a6f7c2e}.expense-row__link-badge{vertical-align:middle;align-items:center;gap:.2rem;margin-left:.35rem;display:inline-flex}.profit-facts--wide{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=800px){.profit-panel__grid--dual{grid-template-columns:1fr}.profit-facts--wide{grid-template-columns:1fr 1fr}}@media (width<=560px){.detail-tabs{flex-wrap:nowrap;padding:0 .75rem;overflow-x:auto}.detail-tabs__btn{white-space:nowrap;font-size:var(--text-base);padding:.75rem .85rem}.profit-facts--wide{grid-template-columns:1fr}.payment-row{grid-template-columns:auto 1fr auto;grid-template-areas:"check main amount""check meta actions"}.payment-row--labor{grid-template-columns:auto 1fr auto}.payment-check{grid-area:check}.payment-row__main{grid-area:main}.payment-row__amount{grid-area:amount}.payment-row .invoice-check,.payment-row .icon-btn{grid-area:actions}}.profit-panel__grid{grid-template-columns:1.2fr 1fr;gap:.85rem;display:grid}.profit-hero{border-radius:var(--radius);background:linear-gradient(145deg, #2a6f7c1f, #ffffffb3), var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow);padding:1.35rem 1.4rem;animation:.55s both rise}.profit-hero--loss{background:linear-gradient(145deg, #b33a2b1a, #ffffffb3), var(--surface-solid)}.profit-hero .label{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--muted);margin-bottom:.4rem;display:block}.profit-hero strong{font-size:clamp(var(--text-3xl), 3.5vw, var(--text-4xl));font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;color:var(--teal);align-items:center;gap:.45rem;display:inline-flex}.profit-hero--loss strong{color:var(--danger)}.profit-hero p{color:var(--muted);font-size:var(--text-base);margin-top:.45rem}.profit-facts{grid-template-columns:1fr 1fr;gap:.65rem;margin:0;display:grid}.profit-facts>div{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);padding:.9rem 1rem;animation:.55s both rise}.profit-facts dt{font-size:var(--text-xs);color:var(--muted);margin-bottom:.25rem}.profit-facts dd{font-weight:var(--weight-bold);font-size:var(--text-lg);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight);margin:0}.category-card__tools{opacity:1;margin-left:auto;display:flex}.category-card:hover .category-card__tools,.category-card:focus-within .category-card__tools{opacity:1}.category-add,.category-add-btn{margin-top:.85rem}.category-add{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.category-add input{border:1px solid var(--line);background:#fff;border-radius:10px;flex:1;min-width:160px;padding:.55rem .75rem}@media (width>=720px){.modal-backdrop{place-items:center}.modal{border-radius:18px}.expense-row{grid-template-columns:4px minmax(0,1fr) auto auto}}@media (width<=800px){.portfolio-strip{grid-template-columns:1fr 1fr}.ledger-kpi{grid-template-columns:1fr}.year-strip__grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;height:auto}.year-strip__cell{flex-direction:row;justify-content:flex-start;gap:.5rem}.year-strip__bar{border-radius:4px;width:4px;height:24px!important}.profit-panel__grid,.field-row--3{grid-template-columns:1fr}}@media (width<=560px){.expense-row{grid-template-columns:4px 1fr auto;grid-template-areas:"swatch main amount""swatch main actions"}.expense-row__swatch{grid-area:swatch}.expense-row__main{grid-area:main}.expense-row__amount{font-size:var(--text-md);grid-area:amount}.expense-row__actions{grid-area:actions;justify-content:flex-end}.field-row{grid-template-columns:1fr}.hero,.home-hero{min-height:auto;padding-top:3.5rem}.hero--detail{padding-top:1.5rem}}.sidebar-flag--ok{color:#8fd0c0;background:#2a6f7c40}.ledger-month{border-radius:var(--radius);background:var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:1.25rem;padding:1.25rem}.ledger-month--compact{padding:1rem}.ledger-month__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.ledger-month__head>div:first-child{flex:1;min-width:200px}.payment-panel__hint-inline{font-size:var(--text-xs);display:inline}.ledger-month__head h2{font-size:var(--text-xl)}.ledger-month__nav{align-items:center;gap:.35rem;display:flex}.ledger-month__label{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-tight);text-align:center;min-width:7rem}.ledger-kpi{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.ledger-kpi__card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:1rem 1.05rem}.ledger-kpi__card .label{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--muted);margin-bottom:.35rem;display:block}.ledger-kpi__card strong{font-size:clamp(var(--text-lg), 2.5vw, var(--text-2xl));font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;align-items:center;gap:.35rem;display:inline-flex}.ledger-kpi__card p{font-size:var(--text-xs);color:var(--muted);margin-top:.35rem}.ledger-kpi__card--sales{background:linear-gradient(145deg,#2a6f7c14,#fff);border-color:#2a6f7c40}.ledger-kpi__card--sales strong{color:var(--teal)}.ledger-kpi__card--purchase{background:linear-gradient(145deg,#c4782a14,#fff);border-color:#c4782a40}.ledger-kpi__card--purchase strong{color:var(--accent-deep)}.ledger-kpi__card--net strong{color:var(--teal)}.ledger-kpi__card--loss strong{color:var(--danger)}.ledger-bars{gap:.45rem;margin-bottom:1rem;display:grid}.ledger-bar-row{font-size:var(--text-xs);color:var(--muted);grid-template-columns:2.5rem 1fr;align-items:center;gap:.5rem;display:grid}.ledger-bar-track{background:#14181f0f;border-radius:999px;height:8px;overflow:hidden}.ledger-bar-fill{border-radius:inherit;height:100%;transition:width .4s}.ledger-bar-fill--sales{background:var(--teal)}.ledger-bar-fill--purchase{background:var(--accent)}.ledger-month-pills{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.year-strip{border-top:1px solid var(--line);padding-top:.5rem}.year-strip__title{font-size:var(--text-sm);margin-bottom:.65rem}.year-strip__grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:.35rem;height:88px;display:grid}.year-strip__cell{color:var(--muted);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:center;gap:.25rem;padding:.25rem 0;display:flex}.year-strip__cell:hover,.year-strip__cell--active{color:var(--ink);background:#14181f0d}.year-strip__bar{border-radius:4px 4px 0 0;width:100%;max-width:20px;min-height:4px;transition:height .3s}.year-strip__bar--up{background:var(--teal)}.year-strip__bar--down{background:var(--danger)}.ledger-days{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.ledger-day{border:1px solid var(--line);background:var(--surface-solid);border-radius:12px;overflow:hidden}.ledger-day__head{font-size:var(--text-sm);font-weight:var(--weight-semibold);background:#14181f0a;justify-content:space-between;align-items:center;padding:.55rem .85rem;display:flex}.ledger-day__list{margin:0;padding:0;list-style:none}.ledger-row{border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.7rem .85rem;display:grid}.ledger-row__icon{border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.ledger-row__icon--in{color:var(--teal);background:#2a6f7c1f}.ledger-row__icon--out{color:var(--accent-deep);background:#c4782a1f}.ledger-row__title{font-weight:var(--weight-semibold);font-size:var(--text-base);display:block}.ledger-row__meta{font-size:var(--text-xs);margin-top:.1rem;display:block}.ledger-row__amount{font-weight:var(--weight-bold);font-size:var(--text-md);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight);white-space:nowrap}.section--ledger-main{margin-bottom:.5rem}.welcome-panel--ledger{text-align:left;place-content:start;gap:0;min-height:auto;padding:1.5rem 2rem 3rem}.welcome-panel--ledger .welcome-panel__hint{text-align:center;margin-top:1rem}.welcome-panel__empty{color:var(--muted);flex-direction:column;align-items:center;gap:.5rem;padding:2rem;display:flex}@media (width>=1024px){.desktop-app{grid-template-columns:300px minmax(0,1fr);max-width:none;min-height:100vh;margin:0;padding:0;display:grid}.sidebar{color:#f4f1ea;background:linear-gradient(#1c242e 0%,#24303a 55%,#2a3840 100%);border-right:1px solid #ffffff14;flex-direction:column;gap:.85rem;height:100vh;min-height:0;padding:1.25rem 1rem 1.25rem 1.25rem;display:flex;position:sticky;top:0;overflow:hidden}.sidebar .user-bar{background:#ffffff0f;flex-shrink:0;margin:auto .85rem 1rem}.sidebar__brand{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.sidebar__brand .app-brand{flex:1;min-width:0}.sidebar__badge{font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);color:#f0c896;background:#c4782a40;border-radius:5px;padding:.15rem .4rem}.sidebar__portfolio{background:#ffffff0f;border:1px solid #ffffff14;border-radius:12px;padding:.85rem}.sidebar__stat>span{font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);color:#f4f1ea8c;margin-bottom:.2rem;display:block}.sidebar__stat strong{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.sidebar__stat .profit{color:#8fd0c0}.sidebar__stat .danger{color:#ffb4a8}.sidebar__stat-row{border-top:1px solid #ffffff14;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:grid}.sidebar__stat-row span{font-size:var(--text-2xs);color:#f4f1ea80;margin-bottom:.15rem;display:block}.sidebar__stat-row strong{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.sidebar__actions{gap:.45rem;display:grid}.sidebar .btn--primary{box-shadow:0 4px 16px #c4782a59}.sidebar .btn--ghost{color:#f4f1ead9;background:#ffffff0a;border-color:#ffffff26}.sidebar .btn--ghost:hover{background:#ffffff1a}.sidebar__create{background:#0003;border:1px solid #ffffff1a;border-radius:10px;gap:.45rem;padding:.75rem;display:grid}.sidebar__create input{color:#fff;background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;padding:.5rem .65rem}.sidebar__create-row{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.sidebar__list{flex:1;align-content:start;gap:.35rem;min-height:0;margin-right:-.15rem;padding-right:.15rem;display:grid;overflow:auto}.sidebar__empty{font-size:var(--text-base);padding:.5rem}.sidebar-item{border:1px solid #0000;border-radius:10px;align-items:stretch;transition:border-color .2s,background .2s;display:flex;overflow:hidden}.sidebar-item--active{background:#c4782a1f;border-color:#c4782a8c}.sidebar-item__btn{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:none;flex:1;padding:.65rem .7rem}.sidebar-item__btn:hover{background:#ffffff0f}.sidebar-item__name{font-weight:var(--weight-semibold);font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.sidebar-item__client{font-size:var(--text-xs);color:#f4f1ea8c;margin-top:.1rem;display:block}.sidebar-item__meta{font-size:var(--text-xs);justify-content:space-between;gap:.5rem;margin-top:.35rem;display:flex}.sidebar-item__delete{color:#f4f1ea73;opacity:0;align-self:center;margin-right:.25rem}.sidebar-item:hover .sidebar-item__delete,.sidebar-item:focus-within .sidebar-item__delete{opacity:1}.desktop-main{min-width:0;max-height:100vh;overflow:auto}.desktop-main .app,.desktop-main>.hero,.desktop-main>.main{max-width:1280px;margin:0 auto}.desktop-main>.hero{padding-left:2rem;padding-right:2rem}.desktop-main>.main{padding:0 2rem 3rem}.desktop-main .hero--detail{min-height:auto;padding-top:1.75rem;padding-bottom:1.5rem}.desktop-main .hero__atmosphere{border-radius:0 0 20px 20px;height:100%;inset:0 0 auto}.desktop-main .hero__nav{justify-content:flex-end}.desktop-main .hero__title{max-width:none;font-size:var(--text-2xl)}.desktop-main .hero__budget--triple{gap:2rem}.main__split{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);align-items:start;gap:1.5rem;display:grid}.main__col{min-width:0}.welcome-panel{text-align:center;place-content:center;gap:.75rem;min-height:100vh;padding:3rem;display:grid}.welcome-panel__icon{background:var(--surface);border:1px solid var(--line);width:72px;height:72px;color:var(--accent);border-radius:18px;justify-content:center;align-items:center;margin:0 auto .5rem;display:inline-flex}.welcome-panel h2{font-size:var(--text-2xl)}.welcome-panel p{max-width:32rem;line-height:var(--leading-relaxed);margin:0 auto}.welcome-panel__hint{font-size:var(--text-md);color:var(--accent-deep);margin-top:.5rem}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profit-panel__grid{grid-template-columns:1fr}.profit-facts{grid-template-columns:repeat(3,1fr)}.desktop-main .section--expenses{max-height:calc(100vh - 2rem);padding-right:.25rem;position:sticky;top:1rem;overflow:auto}.is-electron .desktop-app{min-height:100vh}.is-electron body{-webkit-user-select:none;user-select:none}.is-electron input,.is-electron textarea,.is-electron .expense-row__main,.is-electron .sidebar-item__name{-webkit-user-select:text;user-select:text}}@media (width>=1400px){.desktop-app{grid-template-columns:320px minmax(0,1fr)}.main__split{grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);gap:2rem}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.backup-controls__actions{flex-wrap:wrap;gap:.35rem;display:flex}.backup-controls--compact .backup-controls__actions{flex-direction:column}.backup-controls__msg{font-size:var(--text-xs);color:var(--success,#3d6b5a);margin:.35rem 0 0}.backup-controls__msg--err{color:var(--danger)}.login-screen{background:var(--bg,#eef1f4);place-items:center;min-height:100dvh;padding:1.5rem;display:grid;position:relative}.login-screen--loading{place-items:center;min-height:100dvh;display:grid}.login-screen__atmosphere{pointer-events:none;background:radial-gradient(80% 60% at 20% 10%,#c4782a1f,#0000),radial-gradient(60% 50% at 90% 80%,#2a6f7c1a,#0000);position:absolute;inset:0}.login-screen__card{background:#fff;border:1px solid #14181f0f;border-radius:16px;width:min(100%,420px);padding:2rem 1.75rem;position:relative;box-shadow:0 12px 40px #14181f14}.login-screen__title{font-size:var(--text-xl,1.35rem);letter-spacing:-.02em;margin:.5rem 0 .35rem}.login-screen__sub{font-size:var(--text-sm);margin:0 0 1.5rem;line-height:1.55}.login-screen__actions{justify-content:center;min-height:44px;display:flex}.login-screen__setup{font-size:var(--text-sm);background:#c4782a14;border:1px solid #c4782a33;border-radius:10px;gap:.75rem;padding:1rem;display:flex}.login-screen__setup strong{margin-bottom:.35rem;display:block}.login-screen__code{font-size:var(--text-xs);white-space:pre-wrap;word-break:break-all;background:#14181f0d;border-radius:8px;margin:.65rem 0;padding:.65rem .75rem;overflow-x:auto}.login-screen__hint{font-size:var(--text-xs);margin:0;line-height:1.5}.login-screen__error{color:var(--danger);font-size:var(--text-sm);background:#d96a4a1a;border-radius:8px;margin:1rem 0 0;padding:.65rem .75rem}.user-bar{background:#14181f0a;border-radius:10px;align-items:center;gap:.55rem;margin-top:.5rem;padding:.55rem .65rem;display:flex}.user-bar--compact{background:0 0;margin-top:0;padding:.35rem .5rem}.user-bar__avatar{object-fit:cover;border-radius:50%;flex-shrink:0}.user-bar__avatar--fallback{color:#fff;width:32px;height:32px;font-size:var(--text-sm);font-weight:var(--weight-semibold);background:#c4782a;place-items:center;display:grid}.user-bar--compact .user-bar__avatar--fallback{width:28px;height:28px}.user-bar__info{flex-direction:column;flex:1;gap:.05rem;min-width:0;display:flex}.user-bar__name{font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-bar__email{font-size:var(--text-2xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-bar__logout{flex-shrink:0;margin-left:auto}.hero__nav .user-bar{margin-left:auto}.home-hero__content>.user-bar{width:fit-content;margin-bottom:.75rem;margin-left:auto}.sidebar .user-bar{background:#ffffff0f;margin:.75rem .85rem 1rem}.sidebar .user-bar__name,.sidebar .user-bar__email{color:#f4f1eaeb}.sidebar .user-bar__email{color:#f4f1ea8c}.sidebar__nav{padding:0 .85rem}.sidebar-nav-btn{color:#f4f1ea;width:100%;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;text-align:left;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:10px;align-items:center;gap:.5rem;padding:.55rem .65rem;display:flex}.sidebar-nav-btn:hover{background:#ffffff1a}.sidebar-nav-btn--active{background:#c4782a2e;border-color:#c4782a80}.sidebar-nav-btn__badge{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:#ffc98a;margin-left:auto}.sidebar__back-projects{text-align:left;width:100%;font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;padding:.35rem .5rem .65rem}.receivables-cta{align-items:center;gap:.5rem;margin-top:1rem;display:inline-flex}.receivables-page{max-width:960px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.receivables-page__hero{margin-bottom:2rem}.receivables-page__back{margin-bottom:.75rem}.receivables-page__title{font-size:var(--text-2xl);letter-spacing:var(--tracking-tighter);margin:.35rem 0 .25rem}.receivables-summary{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-top:1.25rem;display:grid}.receivables-summary__card{background:#fff;border:1px solid #14181f14;border-radius:12px;flex-direction:column;gap:.2rem;padding:1rem;display:flex;box-shadow:0 4px 16px #14181f0a}.receivables-summary__card--primary{background:#c4782a0f;border-color:#c4782a40}.receivables-summary__card--danger{background:#d96a4a0f;border-color:#d96a4a40}.receivables-summary__card strong{font-size:var(--text-lg);font-variant-numeric:tabular-nums}.receivables-page__empty{text-align:center;padding:3rem 1.5rem}.receivables-section{margin-bottom:2rem}.receivables-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.receivables-row{text-align:left;cursor:pointer;background:#fff;border:1px solid #14181f14;border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.75rem .85rem;display:flex}.receivables-row:hover{background:#c4782a0a;border-color:#c4782a4d}.receivables-row--overdue{background:#d96a4a0a;border-color:#d96a4a40}.receivables-row__main{flex-direction:column;gap:.15rem;min-width:0;display:flex}.receivables-row__title{font-weight:var(--weight-semibold)}.receivables-row__meta{font-size:var(--text-sm)}.receivables-row__amount{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;flex-shrink:0}.receivables-table-wrap{background:#fff;border:1px solid #14181f14;border-radius:12px;overflow-x:auto}.receivables-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.receivables-table th,.receivables-table td{text-align:left;border-bottom:1px solid #14181f0f;padding:.65rem .75rem}.receivables-table th.num,.receivables-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.receivables-table thead th{font-weight:var(--weight-semibold);font-size:var(--text-xs);color:var(--muted);background:#f4f6f8}.receivables-table tfoot td{font-weight:var(--weight-semibold);background:#fafbfc;border-bottom:none}.receivables-table__link{text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;flex-direction:column;gap:.1rem;padding:0;display:flex}.receivables-table__link:hover strong{color:#c4782a}@media (width>=1024px){.receivables-page{padding:2rem 2rem 3rem}}.tax-vat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;display:grid}.tax-vat-card{background:#fff;border:1px solid #14181f14;border-radius:12px;padding:1rem}.tax-vat-card h3{font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0 0 .65rem}.tax-vat-card dl{grid-template-columns:1fr 1fr;gap:.45rem .75rem;margin:0;display:grid}.tax-vat-card dt{font-size:var(--text-2xs);color:var(--muted)}.tax-vat-card dd{font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:right;margin:0}.tax-all-clear{color:#3d6b5a;font-size:var(--text-sm);background:#3d6b5a1a;border-radius:10px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.75rem 1rem;display:flex}.home-hero__portfolio-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.sidebar-nav-btn__badge--warn{color:#ffc98a}.tax-page .receivables-page__title{max-width:28rem}
