:root{--ink:#000;--text:#1A1A1A;--muted:#666;--line:#E0E0E0;--soft:#F5F5F5;--bad:#B3261E}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);color:var(--text);background:#FAFAFA;font-size:15px;line-height:1.5}
a{color:inherit}
.top{background:#fff;border-bottom:1px solid var(--line)}
.top .in{max-width:1180px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:28px}
.top img{height:38px;display:block}
.top nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.top nav a{text-decoration:none;padding:7px 12px;border-radius:6px;color:var(--muted);font-weight:500}
.top nav a:hover{background:var(--soft);color:var(--ink)}
.top nav a.on{background:var(--ink);color:#fff}
.top .side{display:flex;gap:10px;align-items:center}
.wrap{max-width:1180px;margin:0 auto;padding:36px 24px 80px}
h1{font-family:var(--head);font-weight:500;font-size:34px;line-height:1.2;color:var(--ink)}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:8px}
.intro{color:var(--muted);max-width:720px;margin-bottom:24px}
.btn{display:inline-block;font:500 14px var(--font);padding:9px 16px;border-radius:6px;border:1px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn.line{background:#fff;color:var(--ink);border-color:#CFCFCF}
.btn.small{padding:5px 11px;font-size:13px}
.btn.danger{background:#fff;color:var(--bad);border-color:#E7C1BE}
.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.top a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.card{background:#fff;border:1px solid var(--line);border-radius:10px}
table{width:100%;border-collapse:collapse}
th{font-size:13px;font-weight:500;color:var(--muted);text-align:start;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--soft)}
td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:none}
td.r,th.r{text-align:end}
tfoot td{font-weight:600;border-top:2px solid var(--ink)}
.num{font-variant-numeric:tabular-nums;unicode-bidi:isolate}
.muted{color:var(--muted)}
.tag{font-size:12px;padding:2px 8px;border-radius:20px;background:var(--soft);color:var(--muted)}
.acts{display:flex;gap:6px;justify-content:flex-end}
.acts form{display:inline}
.flash{background:#fff;border:1px solid var(--line);border-inline-start:4px solid var(--ink);padding:12px 16px;border-radius:6px;margin-bottom:22px}
.errors{border-inline-start-color:var(--bad);color:var(--bad)}
.form{padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;max-width:860px}
.form .full{grid-column:1/-1}
label{display:block;font-weight:500;margin-bottom:6px}
input[type=text],input[type=number],input[type=email],input[type=password],select,textarea{width:100%;font:15px var(--font);padding:9px 11px;border:1px solid #CFCFCF;border-radius:6px;background:#fff;color:var(--text)}
textarea{min-height:76px;resize:vertical}
.hint{font-size:13px;color:var(--muted);margin-top:5px}
.check{display:flex;gap:8px;align-items:center;font-weight:500}
.bar{display:flex;gap:10px;padding:18px 28px;border-top:1px solid var(--line)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:28px}
.kpis div{padding:22px}
.kpis div+div{border-inline-start:1px solid var(--line)}
.kpis span{display:block;color:var(--muted);font-size:13px}
.kpis b{display:block;font-size:24px;font-weight:600;margin-top:6px}
.links{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.links a{display:block;padding:20px;text-decoration:none}
.links a b{display:block;font-size:17px}
.links a span{color:var(--muted);font-size:14px}
.links a:hover{border-color:var(--ink)}
.group{margin-bottom:26px}
.group h2{font-size:17px;padding:16px 20px;border-bottom:1px solid var(--line)}
.trow{display:grid;grid-template-columns:200px 1fr 1fr;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line)}
.trow:last-child{border-bottom:none}
.trow .k{font-weight:500}
.trow textarea{min-height:44px}
.sticky{position:sticky;bottom:0;background:#FAFAFA;padding:14px 0;border-top:1px solid var(--line)}
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login .card{width:100%;max-width:400px;padding:36px}
.login img{height:56px;margin-bottom:26px}
.login .f{margin-bottom:16px}
@media (max-width:820px){.form,.links,.kpis{grid-template-columns:1fr}.kpis div+div{border-inline-start:none;border-top:1px solid var(--line)}.trow{grid-template-columns:1fr}.top .in{flex-wrap:wrap}table{font-size:14px}}

.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand span{font-family:var(--head);font-size:20px;font-weight:500;color:var(--ink);padding-inline-start:14px;border-inline-start:1px solid var(--line);white-space:nowrap}
.login .appname{font-family:var(--head);font-size:30px;font-weight:500;color:var(--ink);line-height:1.2}
.scroll{overflow-x:auto}
th.grp{text-align:center;background:#fff;border-bottom:none;padding-bottom:0}
.form h2.sub{font-size:15px;font-weight:600;padding-top:8px;border-top:1px solid var(--line);margin-top:4px}
.form h2.sub:empty{padding:0}
.months{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 20px;padding:20px}
.months label{font-size:14px}
.group td input{min-width:110px}
@media (max-width:820px){.months{grid-template-columns:1fr 1fr}}
.login .tagline{color:var(--muted);margin:4px 0 26px}
.login img{margin-bottom:18px}
