:root{--bg: #FAF5EF;--surface: #FFFFFF;--ink: #2A1514;--muted: #6B5A55;--line: #E8DCD0;--accent: #491615;--accent-ink: #FFFFFF;--accent-soft: #F3E6DA;--tan: #CB9066;--neg: #C42B1F;--neg-soft: #FBE1DD;--warn: #7A4E00;--warn-soft: #FBEBC9;--bar-cost: #B9A79A;--font-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body: "Instrument Sans", "Segoe UI", system-ui, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #1A1110;--surface: #251918;--ink: #F3E9E2;--muted: #B7A59C;--line: #3A2A27;--accent: #E0A67C;--accent-ink: #2A1514;--accent-soft: #3A2620;--tan: #CB9066;--neg: #FF8F82;--neg-soft: #4A201C;--warn: #E6B654;--warn-soft: #33270F;--bar-cost: #7A6A61;color-scheme:dark}}:root[data-theme=dark]{--bg: #1A1110;--surface: #251918;--ink: #F3E9E2;--muted: #B7A59C;--line: #3A2A27;--accent: #E0A67C;--accent-ink: #2A1514;--accent-soft: #3A2620;--tan: #CB9066;--neg: #FF8F82;--neg-soft: #4A201C;--warn: #E6B654;--warn-soft: #33270F;--bar-cost: #7A6A61;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.45;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:16px 96px}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.app{max-width:1080px;margin:0 auto;display:grid;gap:20px}.top{display:grid;gap:12px}.brand{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.brand h1{font-family:var(--font-display);font-weight:700;font-size:1.2rem;margin:0;letter-spacing:-.01em;line-height:1.1}.brand .logo{width:56px;height:56px;border-radius:14px;background:#fff;border:1px solid var(--line);padding:3px;object-fit:contain;flex:none}.brand .tag{display:block;font-size:.78rem;color:var(--muted);font-weight:500;font-family:var(--font-body);margin-top:2px}.topband{height:4px;border-radius:4px;background:var(--tan)}.badge{font-size:.75rem;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--warn-soft);color:var(--warn)}.roles{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.roles span{font-size:.8rem;color:var(--muted)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.seg button{border:0;background:transparent;padding:9px 14px;min-height:44px;font-size:.9rem}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;background:var(--surface);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}nav.tabs button{flex:1;min-width:0;min-height:52px;border:0;background:transparent;display:grid;place-items:center;gap:2px;font-size:.75rem;color:var(--muted);border-radius:10px}nav.tabs button svg{width:22px;height:22px}nav.tabs button span{font-size:.66rem;text-align:center;line-height:1.1}@media(min-width:880px){nav.tabs button span{font-size:.95rem;text-align:left}}nav.tabs button[aria-current=page]{color:var(--accent);font-weight:600;background:var(--accent-soft);box-shadow:inset 0 -3px 0 var(--tan)}main{min-width:0;display:grid;gap:16px;align-content:start}h2{font-family:var(--font-display);font-size:1.6rem;line-height:1.15;margin:0;letter-spacing:-.01em}h3{font-family:var(--font-display);font-size:1.05rem;margin:0 0 10px}.sub{color:var(--muted);margin:4px 0 0;font-size:.9rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}.hero{padding:20px;border-top:4px solid var(--tan)}.hero .lab{font-size:.85rem;color:var(--muted)}.hero .val{font-family:var(--font-display);font-weight:700;font-size:clamp(2.1rem,9vw,3.2rem);line-height:1.05;letter-spacing:-.02em;margin:6px 0}.neg{color:var(--neg)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;padding:3px 10px;border-radius:99px;background:var(--accent-soft);color:var(--accent)}.pill.neg{background:var(--neg-soft);color:var(--neg)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.kpi .lab{font-size:.8rem;color:var(--muted)}.kpi .v{font-family:var(--font-display);font-weight:700;font-size:1.2rem;margin:4px 0 2px;letter-spacing:-.01em}.kpi .s{font-size:.8rem;color:var(--muted)}.cols{display:grid;gap:16px;grid-template-columns:1fr}.monthbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.monthbar .m{font-family:var(--font-display);font-weight:700;font-size:1.05rem;min-width:9.5em;text-align:center;text-transform:capitalize}.btn{min-height:44px;min-width:44px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-weight:600}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{min-height:36px;padding:0 12px;font-size:.85rem}.wf{display:grid;gap:10px}.wf .row{display:grid;gap:4px}.wf .head{display:flex;justify-content:space-between;gap:8px;font-size:.88rem}.wf .head b{font-weight:600}.wf .track{position:relative;height:16px;background:color-mix(in srgb,var(--line) 55%,transparent);border-radius:4px}.wf .bar{position:absolute;top:0;bottom:0;border-radius:4px;background:var(--bar-cost)}.wf .bar.total{background:var(--accent)}.wf .bar.res-neg{background:var(--neg)}.wf .zero{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.55}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{font-weight:600;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}td.r,th.r{text-align:right}.scroll{overflow-x:auto}details summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}.checks{list-style:none;margin:0;padding:0;display:grid;gap:8px}.checks li{display:flex;gap:10px;align-items:flex-start;font-size:.9rem}.dot{flex:none;width:22px;height:22px;border-radius:99px;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:var(--accent-soft);color:var(--accent)}.dot.bad{background:var(--neg-soft);color:var(--neg)}.field{display:grid;gap:6px}.fgrid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:12px 0}.field .hint{font-size:.78rem;color:var(--muted)}.field .err{font-size:.8rem;color:var(--neg);font-weight:600;min-height:1em}.field select{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--surface)}.field label{font-size:.85rem;color:var(--muted)}.field input{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--surface)}button.link{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;font-weight:600;min-height:32px;text-align:left}.prod{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.prod:last-of-type{border-bottom:0}.prod .n{font-weight:600}.prod .p{font-size:.85rem;color:var(--muted)}.step{display:inline-flex;align-items:center;gap:4px}.step button{width:52px;height:52px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:1.5rem;line-height:1;font-weight:600}.step button.plus{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.step .q{min-width:3.2em;text-align:center;font-family:var(--font-display);font-weight:700;font-size:1.4rem}.totalbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.totalbar .t{font-family:var(--font-display);font-weight:700;font-size:1.6rem}.empty{color:var(--muted);padding:8px 0}.list{display:grid;gap:0}.list .it{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.list .it:last-child{border-bottom:0}.note{font-size:.82rem;color:var(--muted)}#toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:9;max-width:calc(100vw - 32px);background:var(--ink);color:var(--bg);border-radius:12px;padding:12px 14px;display:none;align-items:center;gap:14px;box-shadow:0 6px 24px #00000040}#toast.on{display:flex}#toast button{background:transparent;border:1px solid currentColor;border-radius:8px;padding:6px 12px;font-weight:600;min-height:36px}.footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}@media(min-width:880px){body{padding-bottom:32px}.app{grid-template-columns:210px minmax(0,1fr);align-items:start}.top{grid-column:1 / -1;grid-template-columns:1fr auto;align-items:center}nav.tabs{position:sticky;flex-direction:column;border:1px solid var(--line);border-radius:14px;padding:8px;inset:16px auto auto}nav.tabs button{grid-auto-flow:column;justify-content:start;gap:10px;padding:0 12px;min-height:48px;font-size:.95rem}.cols{grid-template-columns:1.3fr 1fr}#toast{bottom:24px}}.invoice{background:#fff;color:#2a1514;border:1px solid var(--line);border-radius:14px;padding:16px;max-width:760px;width:100%;margin:0 auto;font-size:.85rem}.invoice .box{border:2px solid #CB9066;border-radius:14px;padding:10px 12px}.inv-head{display:grid;grid-template-columns:1.3fr .7fr 1fr;gap:10px;align-items:center}.inv-co b{font-family:var(--font-display);font-size:1.15rem;display:block;margin-bottom:4px}.inv-co div{line-height:1.35}.inv-logo{width:100%;max-width:92px;justify-self:center}.inv-title{text-align:right}.inv-title .ft{font-family:var(--font-display);font-weight:700;font-size:1.5rem;letter-spacing:.02em}.inv-title .no{font-weight:700;color:#7a2a22;font-size:1.05rem}.inv-client{margin-top:10px;display:grid;gap:4px}.inv-client .l{display:flex;gap:8px;flex-wrap:wrap}.inv-client .l span{flex:1 1 140px;border-bottom:1px dotted #8a756c;min-height:1.4em}.inv-client .l span b{font-weight:600;margin-right:4px}.inv-tab{width:100%;border-collapse:separate;border-spacing:0;margin-top:10px;border:2px solid #CB9066;border-radius:14px;overflow:hidden}.inv-tab th{background:transparent;color:#2a1514;text-transform:none;letter-spacing:0;font-size:.85rem;text-align:center;border-bottom:2px solid #CB9066;padding:8px 6px}.inv-tab td{padding:6px;border-bottom:1px dotted #8a756c;border-left:2px solid #CB9066;height:28px}.inv-tab td:first-child{border-left:0}.inv-tab td.r{text-align:right}.inv-tab tr:last-child td{border-bottom:0}.inv-foot{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;align-items:stretch}.inv-sign{min-height:110px;font-weight:600}.inv-tot{width:100%;border-collapse:collapse;border:2px solid #CB9066;border-radius:14px;overflow:hidden}.inv-tot td{border:0;border-bottom:2px solid #CB9066;padding:7px 8px;height:auto}.inv-tot tr:last-child td{border-bottom:0;font-weight:700}.inv-tot td:last-child{text-align:right;border-left:2px solid #CB9066;white-space:nowrap}.tabcheck{display:flex;align-items:center;gap:10px;min-height:44px}.tabcheck input{width:22px;height:22px;accent-color:var(--accent)}@media(max-width:520px){.inv-head{grid-template-columns:1fr 1fr}.inv-logo{display:none}.inv-foot{grid-template-columns:1fr}}@media print{body{background:#fff;padding:0!important}.top,nav.tabs,.noprint,#toast,.footer{display:none!important}.app{display:block;max-width:none}.invoice{border:0;padding:0;max-width:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.fgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));align-items:start}.field{min-width:0}.field input,.field select{width:100%;min-width:0}.step input.q{width:3.2em;height:52px;padding:0;border:0;background:transparent;appearance:textfield;-moz-appearance:textfield}.step input.q::-webkit-outer-spin-button,.step input.q::-webkit-inner-spin-button{appearance:none;margin:0}.tableau{min-width:1120px;font-size:.82rem}.tableau th,.tableau td{padding:7px 8px;white-space:nowrap}.tableau th:first-child,.tableau td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);white-space:normal;min-width:260px;max-width:260px}.tableau .section td{background:var(--accent-soft);color:var(--accent);font-weight:600;white-space:normal}.tableau .section td:first-child{background:var(--accent-soft)}.tableau .forte td{font-weight:600}.tableau .total{border-left:1px solid var(--line);font-weight:600}.tableau th{text-transform:capitalize}
