html,body,#root{min-height:100%;margin:0}*{box-sizing:border-box}.app{font-family:var(--ds-font-text);min-height:100vh;color:var(--ds-ink);flex-direction:column;font-size:14px;line-height:1.5;display:flex}.demo{background:var(--ds-raised);color:var(--ds-ink-2);text-align:center;padding:6px 12px;font-size:12px}.shell{flex-direction:row;align-items:flex-start;display:flex}.side{display:none}.main{flex:1;min-width:0;padding:16px 16px 24px}.page{flex-direction:column;gap:16px;max-width:980px;display:flex}h1{font-family:var(--ds-font-display);letter-spacing:-.02em;margin:0 0 2px;font-size:24px;font-weight:400}h2{margin:0 0 8px;font-size:15px;font-weight:600}.muted{color:var(--ds-ink-2)}.s{font-size:12px}.red{color:var(--ds-red)}.end{text-align:left}.pagehead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card{border:1px solid var(--ds-hairline);background:#fff;border-radius:12px;padding:16px}.card.flush{padding:4px 16px}.kpis{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.kpis.three{grid-template-columns:repeat(3,1fr)}.kpi{background:var(--ds-raised);border-radius:12px;flex-direction:column;gap:2px;padding:12px;display:flex}.kpi b{font-size:18px}.two{grid-template-columns:1fr;gap:16px;display:grid}.bars{align-items:flex-end;gap:10px;height:140px;padding-top:8px;display:flex}.bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.bar i{background:var(--ds-teal);border-radius:4px 4px 0 0;width:100%;max-width:36px;display:block}.lrow{border-bottom:1px solid var(--ds-hairline);color:inherit;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;text-decoration:none;display:flex}.lrow:last-child{border-bottom:0}.lrow>span:first-child{flex:160px}.lrow .end{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.thead{display:none}.trow{text-align:right;border:0;border-bottom:1px solid var(--ds-hairline);width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;grid-template-columns:1fr auto;gap:4px 12px;min-height:56px;padding:12px 0;display:grid}.trow>span:nth-child(2),.trow>span:nth-child(3){grid-column:1;font-size:12px;display:inline}.trow .end{grid-area:1/2}.trow:hover{background:#faf8f7}.trow:last-child{border-bottom:0}.pill{border-radius:12px;padding:2px 10px;font-size:12px;display:inline-block}.pill.ok{color:#2f6d5d;background:#e1efea}.pill.open{background:var(--ds-raised);color:var(--ds-ink-2)}.btn{font:inherit;border:1px solid var(--ds-hairline);cursor:pointer;min-height:40px;color:var(--ds-ink);background:#fff;border-radius:6px;padding:8px 14px;font-size:13px}.btn.wide{width:100%}.link{font:inherit;color:var(--ds-ink-2);cursor:pointer;text-align:right;background:0 0;border:0;align-self:flex-start;min-height:36px;padding:4px 0}.toolbar{flex-direction:column;gap:10px;display:flex}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg button{font:inherit;border:1px solid var(--ds-hairline);cursor:pointer;min-height:36px;color:var(--ds-ink-2);background:#fff;border-radius:18px;padding:7px 12px;font-size:13px}.tabs{border-bottom:1px solid var(--ds-hairline);gap:4px;display:flex;overflow-x:auto}.tabs button{min-height:44px;font:inherit;color:var(--ds-ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:10px 12px}.tabs button[aria-selected=true]{color:var(--ds-ink);box-shadow:inset 0 -2px 0 var(--ds-ink);font-weight:600}.form{flex-direction:column;gap:10px;display:flex}.form label{flex-direction:column;gap:4px;font-size:13px;display:flex}.line{flex-wrap:wrap;gap:8px;display:flex}fieldset{border:1px solid var(--ds-hairline);border-radius:8px;flex-direction:column;gap:6px;padding:8px 12px;display:flex}.check{align-items:center;flex-direction:row!important;gap:8px!important}.check input{flex:none;width:18px;min-height:18px}input,select{font:inherit;border:1px solid var(--ds-hairline);min-width:0;min-height:42px;color:var(--ds-ink);background:#fff;border-radius:6px;flex:140px;padding:9px}.note{background:var(--ds-raised);border-radius:6px;padding:10px;font-size:13px}.empty{text-align:center;color:var(--ds-ink-2);padding:20px}.dl{grid-template-columns:auto 1fr;gap:8px 20px;margin:0;display:grid}.dl dt{color:var(--ds-ink-2)}.dl dd{margin:0}.login{justify-content:center;padding:24px 0;display:flex}.logincard{flex-direction:column;gap:12px;width:100%;max-width:380px;display:flex}.logincard label{flex-direction:column;gap:4px;font-size:13px;display:flex}.toast{background:var(--ds-ink);color:#fff;text-align:center;border-radius:8px;margin:8px 16px 0;padding:10px 18px;font-size:13px}.bottom{border-bottom:1px solid var(--ds-hairline);background:#fff;display:flex;overflow-x:auto}.bn{min-height:56px;color:var(--ds-ink-2);flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 2px;font-size:11px;text-decoration:none;display:flex}.bn .ic{font-size:16px}.bn[aria-current=page]{color:var(--ds-ink);box-shadow:inset 0 -2px 0 var(--ds-teal);font-weight:600}@media (width>=800px){.bottom{display:none}.toast{margin:0;position:fixed;top:44px;left:50%;transform:translate(-50%)}.side{border-left:1px solid var(--ds-hairline);flex-direction:column;flex:none;gap:16px;width:230px;min-height:calc(100vh - 28px);padding:20px 12px;display:flex;position:sticky;top:0}.brand{flex-direction:column;padding:0 8px 8px;font-size:17px;display:flex}.side nav{flex-direction:column;gap:2px;display:flex}.nl{color:var(--ds-ink-2);border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:10px;text-decoration:none;display:flex}.nl:hover{background:var(--ds-raised)}.nl[aria-current=page]{background:var(--ds-raised);color:var(--ds-ink);font-weight:600}.ic{text-align:center;width:18px}.who{margin-top:auto;padding:8px}.main{padding:28px 36px}h1{font-size:30px}.kpis{grid-template-columns:repeat(4,1fr)}.kpis.three{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1.2fr 1fr}.toolbar{flex-direction:row;justify-content:space-between;align-items:center}.toolbar input{max-width:320px}.thead{border-bottom:1px solid var(--ds-hairline);color:var(--ds-ink-2);grid-template-columns:2fr 1.2fr 1fr 1fr;gap:12px;padding:12px 0;font-size:12px;display:grid}.trow{grid-template-columns:2fr 1.2fr 1fr 1fr;align-items:center}.trow>span:nth-child(2),.trow>span:nth-child(3){font-size:inherit;grid-column:auto}.trow .end{grid-area:auto}.lrow .end{flex-direction:row;align-items:center;gap:12px}}input,select{flex:none;width:100%}.line>input,.line>select{flex:140px;width:auto}.check input{width:18px}.num{border:1px solid var(--ds-hairline);text-align:left;width:90px;font:inherit;border-radius:8px;padding:6px 8px}.btn.danger{color:#fff;background:#b3261e;border-color:#b3261e}.lrow.edit{display:block}.grow{width:100%}.ptable{display:block}.prow{border-bottom:1px solid var(--ds-hairline);grid-template-columns:2.2fr 1fr 1fr 1fr;align-items:center;gap:10px;padding:12px 16px;display:grid}.prow:last-child{border-bottom:0}.phead{color:var(--ds-muted,#6b6360);font-weight:600}.namein{border:1px solid var(--ds-hairline);width:100%;font:inherit;border-radius:8px;margin-bottom:6px;padding:6px 8px}.check{align-items:center;gap:8px;display:flex}@media (width<=700px){.prow{grid-template-columns:1fr 1fr 1fr}.prow>span:first-child{grid-column:1/-1}.num{width:76px}}.sheetbar{margin:0 0 12px}.filebtn{cursor:pointer;align-items:center;display:inline-flex;position:relative}.filebtn input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}textarea{width:100%;font:inherit;border:1px solid var(--ds-hairline);border-radius:8px;padding:8px}:root{--acc:#3f7f78;--acc-d:#2f6159;--acc-l:#e6f0ee;--debt:#b9473c;--ds-font-text:"KMR Melange Grotesk",-apple-system,"Helvetica Neue","Segoe UI",Arial,sans-serif;--ds-font-display:var(--ds-font-text);--ds-page:#f7f6f3;--ds-raised:#f3f1ec;--ds-ink:#26302f;--ds-ink-2:#5d6663;--ds-hairline:#e4e1db;--ds-red:#b9473c;--ds-teal:#3f7f78}body{background:#f7f6f3}.demo{color:#4a4742;background:#eceae5;font-weight:500}h1{letter-spacing:-.02em;color:#26302f;-webkit-text-fill-color:initial;background:0 0;font-weight:600}h2{color:#26302f}.card{background:#fff;border:1px solid #e4e1db;border-radius:14px;box-shadow:0 1px 3px #0000000d}.kpi{color:#26302f;background:#fff;border:1px solid #e4e1db;border-radius:14px;box-shadow:0 1px 3px #0000000d}.kpi .muted{color:#6b6860}.kpi b,.kpi b.red{color:#26302f;font-size:24px}.kpi b.red{color:var(--debt)}.kpis>.kpi:nth-child(n){background:#fff}.bar i{background:var(--acc);opacity:.85}.bar:nth-child(n) i{background:var(--acc)}.red{color:var(--debt);font-weight:600}.trow:hover,.lrow:hover{background:#faf9f6}.pill.ok{background:var(--acc-l);color:var(--acc-d)}.pill.open{color:#5a574f;background:#efede8}.btn{color:#26302f;background:#fff;border:1px solid #d6d2ca;border-radius:10px;font-weight:500}.btn:hover{box-shadow:none;background:#faf9f6;transform:none}.btn.dark{background:var(--acc);color:#fff;border-color:var(--acc)}.btn.dark:hover{background:var(--acc-d)}.btn.danger{background:var(--debt);border-color:var(--debt);color:#fff}.seg button{color:#4a4742;border:1px solid #d6d2ca}.seg button[aria-pressed=true]{background:var(--acc);color:#fff;border-color:var(--acc)}.tabs{border-bottom:1px solid #e4e1db}.tabs button{color:#6b6860}.tabs button[aria-selected=true]{color:var(--acc-d);box-shadow:inset 0 -3px 0 var(--acc)}input,select,textarea{border:1px solid #d6d2ca;border-radius:10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--acc-l);border-color:var(--acc)}.note{color:#3b3935;background:#f1efea}.toast{background:var(--acc-d);border-radius:10px;font-weight:500}.bottom{background:#fff;border-bottom:1px solid #e4e1db}.bn{color:#6b6860}.bn[aria-current=page]{color:var(--acc-d);box-shadow:inset 0 -3px 0 var(--acc);background:var(--acc-l);font-weight:600}.link{color:var(--acc-d);font-weight:500}.sheetbar{background:#fff;border:1px dashed #d6d2ca;border-radius:12px;padding:10px}.phead{color:#6b6860}.prow:nth-child(odd):not(.phead){background:#faf9f6}@media (width>=800px){.side{color:#26302f;background:#fff;border-left:1px solid #e4e1db;border-radius:0}.brand{color:#26302f}.brand .muted,.who{color:#6b6860}.side .nl{color:#4a4742;border-radius:10px;font-size:14px;font-weight:500}.side .nl:hover{background:#f3f1ec}.side .nl[aria-current=page]{background:var(--acc-l);color:var(--acc-d);box-shadow:none;font-weight:600}}h1{width:fit-content;display:block}.num{flex:none}input[type=checkbox]{accent-color:#3f7f78}.svcline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.svcline .num{width:110px}.rm{text-align:left;grid-column:1/-1}.line .num{flex:none;width:110px}
