@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-cyrillic-wght-normal-5WvUvBgz.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-vietnamese-wght-normal-Cabi7G8-.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-ext-wght-normal-CT1r92Rl.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/playfair-display-latin-wght-normal-BOwq7MWX.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #F5F5F4;--surface: #FFFFFF;--surface-2: #FAFAF9;--sand: #EFEBE7;--ink: #1C1917;--ink-2: #44403C;--ink-3: #736B65;--line: #E7E5E4;--line-2: #D6D3D1;--accent: #9A3412;--accent-ink: #FFFFFF;--accent-soft: #F7EAE3;--accent-line: #E6C6B6;--side: #1C1917;--side-2: #2A2522;--side-ink: #F5F5F4;--side-dim: #A8A29E;--side-line: #36302C;--side-accent: #E8875F;--ok: #166534;--ok-soft: #E3F1E6;--warn: #8A4B0B;--warn-soft: #FAEFD9;--crit: #B42318;--crit-soft: #FBE7E4;--info: #44403C;--info-soft: #ECE8E4;--s1: #9A3412;--s2: #0369A1;--s3: #C08A1E;--s4: #6D5BD0;--scrim: rgba(28, 25, 23, .42);--shadow: 0 1px 2px rgba(28, 25, 23, .05), 0 10px 30px -18px rgba(28, 25, 23, .22);--f-display: "Playfair Display Variable", "Playfair Display", Georgia, "Times New Roman", serif;--f-ui: "Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--r: 16px;--r-sm: 10px;--side-w: 252px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}h1,h2,h3,h4,p{margin:0}h1,h2,h3{text-wrap:balance}img{max-width:100%}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.small{font-size:12.5px}.nowrap{white-space:nowrap}.right{text-align:right}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100%}.side{background:var(--side);color:var(--side-ink);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 14px 16px;gap:20px;overflow-y:auto}.brand{display:flex;flex-direction:column;gap:10px;padding:0 10px}.brand img{width:148px;height:auto;display:block}.brand small{color:var(--side-dim);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:2px}.nav hr{border:0;border-top:1px solid var(--side-line);margin:10px 8px;width:auto}.nav a{display:flex;align-items:center;gap:12px;color:var(--side-dim);padding:9px 12px;border-radius:10px;font-weight:500;font-size:14px;text-decoration:none;white-space:nowrap}.nav a svg{width:18px;height:18px;flex:none}.nav a:hover{color:var(--side-ink);background:#ffffff0a}.nav a.active{background:var(--side-2);color:var(--side-ink);font-weight:600}.nav a.active svg{color:var(--side-accent)}.nav .count{margin-left:auto;background:var(--crit);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px}.side-user{margin-top:auto;border-top:1px solid var(--side-line);padding:14px 10px 0;display:flex;align-items:center;gap:10px;min-width:0}.side-user .who{min-width:0;flex:1;display:flex;flex-direction:column}.side-user .who b{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user .who span{color:var(--side-dim);font-size:12px}.side-user button{border:0;background:transparent;color:var(--side-dim);width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:none}.side-user button:hover{color:var(--side-ink);background:#ffffff0f}.side-user button svg{width:17px;height:17px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--side-2);color:var(--side-ink);display:grid;place-items:center;font-weight:600;font-size:13px;flex:none}.main{padding-inline:clamp(16px,3.2vw,40px);padding-block:30px 64px;min-width:0;display:flex;flex-direction:column;gap:20px}.topbar-m{display:none}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.top h1{font-family:var(--f-display);font-weight:600;font-size:clamp(26px,3vw,34px);letter-spacing:-.01em;line-height:1.12}.top p{margin-top:6px;color:var(--ink-3);font-size:15px;max-width:70ch}.top-actions{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}.crumb{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);font-size:13px;text-decoration:none;margin-bottom:6px}.crumb:hover{color:var(--ink)}.crumb svg{width:15px;height:15px}.page{display:flex;flex-direction:column;gap:16px;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);padding:9px 14px;border-radius:12px;font-weight:600;font-size:13.5px;line-height:1.2;white-space:nowrap;text-decoration:none}.btn svg{width:16px;height:16px;flex:none}.btn:hover{border-color:var(--ink-3)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--surface)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--sand)}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.danger{color:var(--crit);border-color:var(--crit-soft)}.btn.danger.armed{background:var(--crit);color:#fff;border-color:var(--crit)}.btn.sm{padding:6px 10px;font-size:12.5px;border-radius:9px}.btn.lg{padding:13px 18px;font-size:15px;border-radius:14px}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{border:0;background:transparent;color:var(--ink-3);width:32px;height:32px;border-radius:8px;display:inline-grid;place-items:center;flex:none}.icon-btn:hover{background:var(--sand);color:var(--ink)}.icon-btn svg{width:16px;height:16px}.icon-btn.armed{background:var(--crit);color:#fff}.link{background:none;border:0;padding:0;color:var(--accent);font-weight:600;cursor:pointer;text-decoration:none}.link:hover{text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}.card-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:18px 22px 6px;flex-wrap:wrap}.card-h h2{font-size:16.5px;font-weight:700;letter-spacing:-.01em}.card-h .hint{color:var(--ink-3);font-size:13px}.card-h .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.card-b{padding:8px 22px 20px}.card-b.flush{padding:0 0 6px}.card.pad{padding:20px 22px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.kpi{padding:20px 22px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:5px;min-width:0}.kpi:first-child{border-left:0}.kpi .k{color:var(--ink-2);font-weight:500;font-size:13.5px}.kpi .v{font-size:clamp(22px,2.2vw,29px);font-weight:700;letter-spacing:-.025em;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap}.kpi .s{color:var(--ink-3);font-size:12.5px}.kpi .v.crit{color:var(--crit)}.kpi .v.ok{color:var(--ok)}.kpi .v.accent{color:var(--accent)}.grid2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px 20px;align-items:start}.grid-eq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;align-items:start}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.stack{display:flex;flex-direction:column;gap:16px;min-width:0}.row-flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 25%,transparent);padding:13px 18px;border-radius:14px}.banner p{flex:1 1 320px}.banner b{color:var(--warn)}.banner.crit{background:var(--crit-soft);border-color:color-mix(in srgb,var(--crit) 25%,transparent)}.banner.crit b{color:var(--crit)}.banner.ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 25%,transparent)}.banner.ok b{color:var(--ok)}.banner.info{background:var(--info-soft);border-color:var(--line-2)}.banner.info b{color:var(--ink)}.obra-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);min-width:0;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}.obra-card:hover{border-color:var(--accent-line);transform:translateY(-1px)}.obra-top{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);min-width:0;white-space:nowrap;overflow:hidden}.obra-name{font-family:var(--f-display);font-size:21px;font-weight:600;line-height:1.15}.obra-sub{color:var(--ink-3);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obra-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;border-top:1px dashed var(--line-2);padding-top:10px;margin-top:2px;font-size:12.5px;color:var(--ink-3);flex-wrap:wrap}.obra-foot b{color:var(--ink);font-weight:600}.dot{width:9px;height:9px;border-radius:50%;background:var(--dot, var(--accent));flex:none;display:inline-block}.bar{height:7px;border-radius:99px;background:var(--sand);overflow:hidden;position:relative}.bar>span{display:block;height:100%;background:var(--accent);border-radius:99px}.bar.warn>span{background:var(--warn)}.bar.crit>span{background:var(--crit)}.bar.ok>span{background:var(--ok)}.bar.ink>span{background:var(--ink-2)}.bar .mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);border-radius:2px}.bar.tall{height:10px}.meter{display:flex;align-items:center;gap:10px;min-width:120px}.meter .bar{flex:1;min-width:50px}.meter span.v{font-variant-numeric:tabular-nums;font-size:12.5px;min-width:40px;text-align:right;color:var(--ink-2)}.duo{display:flex;flex-direction:column;gap:5px}.duo .lg{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-3);gap:8px}.duo .lg b{color:var(--ink);font-variant-numeric:tabular-nums}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 9px;font-family:var(--f-ui);letter-spacing:0;line-height:1.45;font-size:12px;font-weight:600;white-space:nowrap;background:var(--info-soft);color:var(--info)}.chip svg{width:12px;height:12px}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.crit{background:var(--crit-soft);color:var(--crit)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip.plain{background:transparent;border:1px solid var(--line-2);color:var(--ink-3);font-weight:500}.chip.dark{background:var(--ink);color:var(--surface)}.steps{display:inline-flex;gap:4px;flex-wrap:nowrap}.step{border:1px solid var(--line-2);background:var(--surface);color:var(--ink-3);border-radius:8px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.step svg{width:13px;height:13px}.step:hover{border-color:var(--ink-3);color:var(--ink)}.step[aria-pressed=true]{background:var(--info-soft);border-color:transparent;color:var(--ink)}.step.pay[aria-pressed=true]{background:var(--ok-soft);color:var(--ok)}.step:disabled{cursor:default;opacity:.6}.rows{display:flex;flex-direction:column}.row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.row:first-child{border-top:0}.row .who{display:flex;flex-direction:column;gap:2px;min-width:0}.row .who b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis}.row .who span{color:var(--ink-3);font-size:12.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.row .val{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.row .val small{display:block;font-weight:500;color:var(--ink-3);font-size:12px}.group-l{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;padding:14px 0 4px}.group-l.crit{color:var(--crit)}.foot{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px;margin-top:4px;font-size:13px;color:var(--ink-2)}.foot b{font-variant-numeric:tabular-nums;color:var(--ink)}.tbl-wrap{overflow-x:auto}.card-b>.tbl-wrap{margin:0 -22px;padding:0 22px}table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:left;font-weight:600;color:var(--ink-3);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;padding:10px 10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr.click{cursor:pointer}.tbl tbody tr.click:hover td{background:var(--surface-2)}.tbl td.r,.tbl th.r{text-align:right}.tbl td.money{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;font-weight:600}.tbl td.dt{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink-2)}.tbl td.desc{min-width:200px}.tbl td.desc b{font-weight:600;display:block}.tbl td.desc span{color:var(--ink-3);font-size:12.5px}.tbl tr.dim td{color:var(--ink-3)}.tbl tr.over td{background:color-mix(in srgb,var(--crit-soft) 55%,transparent)}.tbl tfoot td{font-weight:700;border-top:1px solid var(--line-2);border-bottom:0}.tbl td.chk,.tbl th.chk{width:34px;padding-right:0}.empty{color:var(--ink-3);padding:18px 0;font-size:13.5px}.state{padding:44px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ink-3)}.state b{color:var(--ink);font-family:var(--f-display);font-size:20px;font-weight:600}.state span{max-width:52ch}.state .btn{margin-top:8px}.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--line-2);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.form .full{grid-column:1 / -1}.form.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.field>.lbl{font-weight:600;font-size:13px;color:var(--ink-2)}.field .help{font-size:12.5px;color:var(--ink-3)}.field .err{font-size:12.5px;color:var(--crit)}.inp{border:1px solid var(--line-2);background:var(--surface);border-radius:10px;padding:9px 11px;font-size:14px;min-width:0;width:100%}.inp:focus{outline:2px solid var(--accent-line);border-color:var(--accent)}.inp::placeholder{color:#a8a29e}.inp.money{text-align:right;font-variant-numeric:tabular-nums}.inp.sm{padding:6px 8px;font-size:13.5px;border-radius:8px}.inp:disabled{background:var(--surface-2);color:var(--ink-3)}textarea.inp{min-height:84px;resize:vertical;line-height:1.45}select.inp{padding-right:28px}.inp-prefix{position:relative}.inp-prefix>span{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:13px;pointer-events:none}.inp-prefix>.inp{padding-left:34px}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:500}.switch input{appearance:none;width:38px;height:22px;border-radius:99px;background:var(--line-2);position:relative;cursor:pointer;flex:none;transition:background .15s;margin:0}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}.switch input:checked{background:var(--accent)}.switch input:checked:after{transform:translate(16px)}.check{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}.check:first-child{border-top:0}.check input,input.cb{appearance:none;width:20px;height:20px;border:1.5px solid var(--line-2);border-radius:6px;background:var(--surface);flex:none;margin:1px 0 0;display:grid;place-items:center;cursor:pointer}.check input:checked,input.cb:checked{background:var(--ok);border-color:var(--ok)}.check input:checked:after,input.cb:checked:after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg)}.check .t{display:flex;flex-direction:column;gap:2px;min-width:0}.check .t b{font-weight:500}.check.done .t b{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-2)}.check .t span{font-size:12.5px;color:var(--ink-3)}.seg{display:inline-flex;align-self:flex-start;max-width:100%;background:var(--sand);border-radius:12px;padding:3px;gap:2px;flex-wrap:wrap}.seg button{border:0;background:transparent;padding:7px 12px;border-radius:9px;font-weight:600;font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}.seg button svg{width:15px;height:15px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filters .inp{width:auto}.month{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line-2);border-radius:14px;padding:4px;box-shadow:var(--shadow)}.month button{border:0;background:transparent;width:34px;height:40px;border-radius:10px;color:var(--ink-2);display:grid;place-items:center}.month button:hover{background:var(--sand)}.month button svg{width:17px;height:17px}.month .lbl{width:auto;min-width:150px;padding:0 6px;display:flex;flex-direction:column;align-items:center;justify-content:center}.month .lbl b{font-size:15.5px;font-weight:700;letter-spacing:-.01em}.month .lbl span{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:6px}.month .lbl span i{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-2);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a,.tabs button{border:0;background:transparent;padding:10px 14px;font-weight:600;font-size:14px;color:var(--ink-3);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:7px}.tabs a:hover,.tabs button:hover{color:var(--ink)}.tabs a.active,.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.tabs .count{background:var(--crit);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:0 6px}.scrim{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:flex-start;justify-content:center;padding:clamp(12px,4vh,48px) 16px;overflow-y:auto;z-index:40}.modal{background:var(--surface);border-radius:20px;width:min(720px,100%);box-shadow:0 30px 80px -20px #00000073;border:1px solid var(--line);position:relative}.modal.narrow{width:min(520px,100%)}.modal.wide{width:min(980px,100%)}.modal-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 4px}.modal-h h2{font-family:var(--f-display);font-size:23px;font-weight:600;line-height:1.2}.modal-h p{color:var(--ink-3);margin-top:4px;font-size:13.5px}.modal-b{padding:14px 24px 8px;display:flex;flex-direction:column;gap:14px}.modal-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px 22px;flex-wrap:wrap}.modal-f .lft{margin-right:auto}.toasts{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:60;align-items:center;pointer-events:none}.toast{background:var(--ink);color:var(--bg);padding:11px 16px;border-radius:12px;font-weight:500;font-size:13.5px;max-width:calc(100vw - 32px);box-shadow:0 10px 30px #00000040}.toast.err{background:var(--crit);color:#fff}.pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.pair>div{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:0}.pair .lbl{font-size:12px;color:var(--ink-3)}.pair .v{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.02em}.pair .v.accent{color:var(--accent)}.pair .v.crit{color:var(--crit)}.pair .v.ok{color:var(--ok)}.dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px;font-size:13.5px}.dl dt{color:var(--ink-3)}.dl dd{margin:0;font-weight:500;overflow-wrap:anywhere}.pre{white-space:pre-wrap;color:var(--ink-2);font-size:13.5px;line-height:1.55}.pix{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:7px 8px 7px 12px;font-variant-numeric:tabular-nums;min-width:0}.pix code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.pix small{color:var(--ink-3);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;flex:none}.drop{border:1.5px dashed var(--line-2);border-radius:12px;padding:16px;background:var(--surface-2);display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;color:var(--ink-3);font-size:13px;cursor:pointer}.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--ink-2)}.drop svg{width:20px;height:20px}.files{display:flex;flex-direction:column;gap:6px}.file{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:7px 8px 7px 12px;font-size:13px;min-width:0}.file svg{width:16px;height:16px;color:var(--ink-3);flex:none}.file a,.file span.n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;font-weight:500}.file a:hover{text-decoration:underline}.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.thumbs a{display:block;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--sand);border:1px solid var(--line)}.thumbs img{width:100%;height:100%;object-fit:cover;display:block}.belt{display:inline-flex;align-items:center;height:14px;width:62px;border-radius:3px;border:1px solid rgba(0,0,0,.25);position:relative;overflow:hidden;flex:none}.belt i{position:absolute;right:6px;top:0;bottom:0;width:20px;background:#1c1917;display:flex;gap:2px;align-items:center;justify-content:center}.belt i u{width:2px;height:100%;background:#fff;text-decoration:none}.belt.BRANCA{background:#fff}.belt.AZUL{background:#1d4ed8}.belt.ROXA{background:#6d28d9}.belt.MARROM{background:#6b3f1d}.belt.PRETA{background:#111}.belt.PRETA i{background:#b42318}.etapa-upd{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1.1fr);gap:10px 22px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.etapa-upd:first-child{border-top:0}.etapa-ctl{display:flex;align-items:center;gap:10px;min-width:0}.slider-wrap{flex:1;min-width:0;display:flex;align-items:center;height:36px}.slider-wrap input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:10px;border-radius:99px;margin:0;cursor:pointer;background:linear-gradient(var(--ink),var(--ink)) calc(var(--p, 0%) - 1px) 50% / 2px 100% no-repeat,linear-gradient(to right,var(--accent) var(--v, 0%),var(--sand) var(--v, 0%))}.slider-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--surface);border:2px solid var(--accent);box-shadow:0 1px 4px #0003}.slider-wrap input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--surface);border:2px solid var(--accent);box-shadow:0 1px 4px #0003}.slider-wrap input[type=range]:disabled{cursor:default;opacity:.7}.inp-suffix{position:relative;width:74px;flex:none}.inp-suffix .inp{padding-right:24px;text-align:right}.inp-suffix>span{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:13px;pointer-events:none}.savebar{position:sticky;bottom:14px;z-index:20;background:var(--surface);border:1px solid var(--line-2);border-radius:18px;box-shadow:0 12px 36px -12px #1c191759;padding:12px 14px 12px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.chart{position:relative}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart .gl{stroke:var(--line);stroke-width:1}.chart .ax{fill:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}.chart .dl{fill:var(--ink);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.chart .guide{stroke:var(--ink-3);stroke-width:1}.tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line-2);border-radius:10px;padding:9px 11px;font-size:12px;box-shadow:0 6px 20px #0000001f;min-width:170px;display:grid;gap:3px;z-index:5}.tip b{font-weight:600;margin-bottom:2px}.tip div{display:flex;justify-content:space-between;gap:14px;color:var(--ink-3);align-items:center}.tip div span:last-child{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}.legend span{display:inline-flex;align-items:center;gap:7px}.legend i{width:12px;height:3px;border-radius:2px;background:var(--c, var(--s1));display:inline-block}.legend i.sq{width:10px;height:10px;border-radius:3px}.login{min-height:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.login-brand{background:var(--side);color:var(--side-ink);padding:clamp(28px,6vw,72px);display:flex;flex-direction:column;justify-content:space-between;gap:40px}.login-brand img{width:200px}.login-brand h1{font-family:var(--f-display);font-weight:500;font-size:clamp(30px,3.6vw,46px);line-height:1.12;letter-spacing:-.01em;max-width:14ch}.login-brand p{color:var(--side-dim);max-width:44ch;margin-top:16px;font-size:15px}.login-form{display:flex;align-items:center;justify-content:center;padding:clamp(24px,5vw,64px)}.login-form form{width:min(380px,100%);display:flex;flex-direction:column;gap:16px}.login-form h2{font-family:var(--f-display);font-size:28px;font-weight:600}@media(max-width:1080px){.grid2,.grid-eq{grid-template-columns:minmax(0,1fr)}}@media(max-width:860px){.app{grid-template-columns:minmax(0,1fr)}.side{position:fixed;inset:0 auto 0 0;width:min(290px,86vw);z-index:50;transform:translate(-102%);transition:transform .2s ease;height:100dvh}.side.open{transform:none;box-shadow:0 0 0 100vmax var(--scrim)}.topbar-m{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--side);color:var(--side-ink);padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;position:sticky;top:0;z-index:30}.topbar-m img{height:26px;width:auto}.topbar-m button{border:0;background:transparent;color:var(--side-ink);width:40px;height:40px;border-radius:10px;display:grid;place-items:center;position:relative}.topbar-m button svg{width:22px;height:22px}.main{padding-block:20px 88px;gap:16px}.form,.form.three{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{border-left:0;border-top:1px solid var(--line);padding:16px 18px}.kpi:nth-child(-n+2){border-top:0}.kpi:nth-child(2n){border-left:1px solid var(--line)}.row{grid-template-columns:minmax(0,1fr) auto}.row>.steps,.row>.acts{grid-column:1 / -1}.login{grid-template-columns:minmax(0,1fr)}.login-brand{padding:28px 24px;gap:20px}.login-brand h1{font-size:26px;max-width:none}.login-brand p{display:none}.card-h{padding:16px 16px 4px}.card-b{padding:8px 16px 16px}.card.pad{padding:16px}.card-b>.tbl-wrap{margin:0 -16px;padding:0 16px}.modal-h{padding:18px 18px 4px}.modal-b{padding:12px 18px 6px}.modal-f{padding:12px 18px 18px}.month .lbl{min-width:120px}.etapa-upd{grid-template-columns:minmax(0,1fr)}.savebar{bottom:10px;padding:10px 12px}.savebar .btn{flex:1}.inp,.inp.sm,select.inp,textarea.inp{font-size:16px}.seg button{min-height:40px;padding:8px 13px}.banner{align-items:flex-start;gap:10px 12px;padding:12px 14px}.banner p{flex:1 1 0;min-width:180px}.kpi:last-child:nth-child(odd){grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation-duration:.01ms!important}}@media print{.side,.topbar-m,.top-actions,.tabs,.no-print{display:none!important}.app{display:block}.main{padding:0}body{background:#fff}.card{box-shadow:none;break-inside:avoid}}
