:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#162f27;background:#f5f7f4;font-size:15px;line-height:1.5;--ink:#162f27;--muted:#53665e;--line:#dce5de;--green:#0b7056;--green-dark:#104637;--mint:#e4f2e9;--paper:#fff}
*{box-sizing:border-box}
body{margin:0;min-width:320px}
button,input,select,textarea{font:inherit}
button,input,select,textarea{border:1px solid #cedbd2;border-radius:8px}
button{cursor:pointer;background:#fff;color:var(--ink);font-weight:650;padding:8px 13px}
button:hover{background:#eef5f0}
button:disabled{opacity:.54;cursor:default}
button.primary{background:var(--green);color:white;border-color:var(--green)}
button.primary:hover{background:#075a44}
button.danger{color:#a52e32;border-color:#e5c5c5}
button.link{background:none;border:0;color:#0b694e;text-align:left;padding:0;font-weight:700}
a{color:#0b694e}
:focus-visible{outline:3px solid #258a6b;outline-offset:3px}
input,select,textarea{padding:9px 10px;max-width:100%;width:100%;background:white;color:var(--ink)}
textarea{resize:vertical;min-height:75px}
input[type=checkbox]{width:auto;accent-color:var(--green)}
label{display:grid;gap:5px;font-weight:650}
label.check{display:flex;align-items:center;gap:8px}
small,.muted{color:var(--muted);font-weight:400}
h1,h2,h3,p{margin:0}
h1{font-size:clamp(1.85rem,4vw,2.65rem);letter-spacing:-.04em;line-height:1.1}
h2{font-size:1.25rem;letter-spacing:-.02em}
h3{font-size:1rem}
p{margin-top:6px}
.skip{position:absolute;top:-100px;left:12px;z-index:8;background:#fff;padding:10px}
.skip:focus{top:8px}
.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100dvh}
.sidebar{position:sticky;top:0;align-self:start;height:100dvh;background:#112d24;color:#fff;padding:27px 17px;display:flex;flex-direction:column}
.brand{display:flex;gap:11px;align-items:center;font-weight:750;font-size:1.02rem;line-height:1.2;letter-spacing:-.01em}
.brand img{height:38px;width:38px}
.brand span{display:block}
.brand small{font-size:.74rem;margin-top:4px}
.sidebar small{color:#bdd2c7}
.nav-caption{padding:35px 10px 9px;color:#9db8ac;text-transform:uppercase;font-size:.67rem;font-weight:800;letter-spacing:.15em}
.nav{display:grid;gap:5px}
.nav button{display:flex;gap:10px;align-items:center;text-align:left;background:none;border:0;color:#dce9e1;border-radius:8px;font-size:.88rem;padding:9px 10px;white-space:nowrap}
.nav button:hover,.nav button[aria-current=page]{background:#28483c;color:white}
.nav svg{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sidebar-foot{margin-top:auto;border-top:1px solid #39574b;padding:16px 7px 0;font-size:.77rem;color:#b8cfc3}
.topbar{min-height:63px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px clamp(16px,3.2vw,42px)}
.topbar strong{font-size:.86rem}
.user{display:flex;align-items:center;gap:8px}
.badge{border-radius:999px;display:inline-flex;padding:2px 8px;font-size:.73rem;line-height:1.65;font-weight:740;white-space:nowrap;background:#edf1ed;color:#41534c}
.badge.approved,.badge.active{background:#def2e6;color:#175b3f}
.badge.draft,.badge.warning{background:#fbefcf;color:#70501d}
.badge.reversed,.badge.inactive{background:#f6e6e6;color:#853b3b}
main{max-width:1460px;margin:auto;padding:27px clamp(15px,3.2vw,42px) 45px}
.page-heading{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:21px}
.eyebrow{text-transform:uppercase;font-size:.69rem;font-weight:800;letter-spacing:.14em;color:#1f7056;margin-bottom:9px}
.hero{border-radius:16px;background:#134738;background-image:radial-gradient(ellipse at 91% 140%,#297c5c 0,transparent 60%);color:white;padding:clamp(22px,4vw,36px);display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:18px}
.hero .eyebrow{color:#a8e2c2}
.hero p{color:#d7ebe0;margin-top:10px;max-width:530px}
.hero button{white-space:nowrap;color:#125341}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}
.card,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;min-width:0}
.card{padding:16px}
.card .metric{font-size:2rem;font-weight:760;letter-spacing:-.06em;margin-top:7px;line-height:1.1}
.card small{font-size:.74rem;display:block;margin-top:8px}
.card .label{color:#48635a;font-size:.8rem;font-weight:700}
.panel{overflow:hidden}
.panel+.panel{margin-top:15px}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px}
.panel-title p{font-size:.85rem}
.tabs,.filters,.actions,.pager{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tabs{margin-bottom:12px}
.tabs button[aria-pressed=true]{background:var(--mint);color:#13563f;border-color:#a7d2bc}
.filters{padding:13px 15px;border-bottom:1px solid var(--line)}
.filters input{max-width:340px}
.filters select{width:auto;min-width:145px}
.filters input,.filters select{font-size:.88rem}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem;text-align:left}
th{font-size:.71rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#f3f7f4;color:#486057}
th,td{padding:11px 15px;border-bottom:1px solid #e8eee9;vertical-align:middle}
td{overflow-wrap:anywhere}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#f9fbf9}
.nowrap{white-space:nowrap}
.pager{padding:11px 15px;justify-content:space-between;border-top:1px solid var(--line);font-size:.85rem}
.pager button{padding:4px 10px}
.empty{padding:30px 18px;color:var(--muted);text-align:center}
.note,.error{padding:11px 13px;border-radius:9px;margin-bottom:13px;font-size:.86rem}
.note{background:#e7f3eb;color:#285643}
.error{background:#fae8e8;color:#8b2a31}
.demo-banner{background:#fbefce;color:#6e501a;border-bottom:1px solid #e9dcae;padding:8px 16px;font-size:.81rem;text-align:center}
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 20% 5%,#d5eee1,#f5f7f4 58%)}
.login-card{background:white;border:1px solid var(--line);border-radius:18px;max-width:450px;width:100%;padding:29px;box-shadow:0 16px 45px #23413113}
.login-card h1{font-size:2rem;margin:25px 0 5px}
.login-card form{margin:19px 0 10px}
.login-card .actions{margin-top:14px}
.stack{display:grid;gap:11px}
dialog{padding:0;border:1px solid var(--line);border-radius:14px;color:var(--ink);width:min(740px,calc(100% - 28px));max-height:calc(100dvh - 28px);box-shadow:0 15px 50px #18342740}
dialog::backdrop{background:#102a21a3}
.dialog-head,.dialog-actions{padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.dialog-head{background:#f6f9f6;border-bottom:1px solid var(--line)}
.dialog-actions{border-top:1px solid var(--line);justify-content:end;flex-wrap:wrap}
.dialog-body{padding:16px 18px;display:grid;gap:12px}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.line{display:grid;grid-template-columns:minmax(0,1fr) 125px auto;gap:8px;align-items:end;background:#f5f8f5;border:1px solid var(--line);padding:9px;border-radius:9px}
.line .picker{display:grid;gap:5px}
.line button{padding:8px 9px}
pre{background:#f3f7f4;border-radius:8px;margin:0;padding:10px;max-height:210px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.78rem}
#toast:empty{display:none}
#toast{position:fixed;right:17px;bottom:17px;max-width:min(390px,calc(100% - 34px));border-radius:9px;padding:12px 16px;color:white;background:#163e30;box-shadow:0 5px 18px #142a2440;z-index:9}
@media(max-width:1020px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-inline:12px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:730px){.shell{display:block}.sidebar{height:auto;position:static;padding:11px 12px 7px}.sidebar .brand img{width:31px;height:31px}.sidebar .brand small{font-size:.65rem}.nav-caption,.sidebar-foot{display:none}.nav{display:flex;overflow:auto;margin-top:8px;scrollbar-width:thin}.nav button{padding:7px 9px;font-size:.79rem;gap:6px}.nav svg{width:15px;height:15px}.topbar{min-height:48px;padding-block:6px}main{padding-top:18px}.page-heading,.hero{align-items:start;flex-direction:column}.page-heading .actions{width:100%}.hero{padding:19px}.cards{gap:8px}.card{padding:12px}.card .metric{font-size:1.7rem}th,td{padding:8px 10px}.table-wrap table{min-width:540px}.line{grid-template-columns:minmax(0,1fr) auto}.line .picker{grid-column:1/-1}.filters input,.filters select{max-width:none;flex:1 1 145px}.field-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}
