*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:#f4f6f3;color:#1d2b22;display:flex;min-height:100vh}
aside{width:240px;background:#123524;color:#d8e6dc;padding:18px 12px;position:fixed;top:0;bottom:0;overflow:auto}
.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 18px}.logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#3fa66b,#9bd36a);display:grid;place-items:center;font-weight:800;color:#fff}
.brand b{display:block;color:#fff}.brand small{color:#9fbfa9;font-size:11px}
.grp{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7fa08a;margin:14px 10px 4px}
aside a{display:block;padding:8px 12px;border-radius:8px;color:#d8e6dc;text-decoration:none;font-size:14px;cursor:pointer}aside a:hover{background:#1c4a33}aside a.on{background:#2f7d52;color:#fff}
main{margin-left:240px;flex:1;padding:22px 30px;min-width:0}.banner{display:inline-block;background:#fff4d6;color:#7a5a00;border:1px solid #f0d98a;border-radius:20px;padding:3px 12px;font-size:12px;margin-bottom:12px}
h1{margin:4px 0 16px;font-size:26px}h2{font-size:18px;margin:22px 0 10px}
.card{background:#fff;border-radius:16px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);border:1px solid #e6ebe5}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.stat .n{font-size:26px;font-weight:700}.stat .l{color:#5b6b60;font-size:13px}
.buckets{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.bk{border-top:5px solid var(--c)}
.bk h3{margin:0;display:flex;justify-content:space-between}.sub{color:#5b6b60;font-size:12.5px;margin:3px 0 10px}
.row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #f0f2ef;font-size:13.5px;cursor:pointer}.row:hover{background:#f8faf7}
.av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;flex:none}
.pcs{margin-left:auto;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:10px;background:#e8f4ec;color:#1f7a45}.pcs.mid{background:#fff3dc;color:#9a6400}.pcs.low{background:#fde6e6;color:#b42323}
.foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px;color:#5b6b60}
.btn{background:#2f7d52;color:#fff;border:0;border-radius:9px;padding:7px 13px;font-weight:600;cursor:pointer;font-size:13px}.btn.ghost{background:#eef3ee;color:#1d2b22}
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tier .n{font-size:24px;font-weight:700}
.modal{position:fixed;inset:0;background:rgba(10,25,15,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px;overflow:auto;z-index:9}.hidden{display:none}
.mbox{background:#fff;border-radius:18px;width:min(980px,100%);padding:22px;position:relative}.x{position:absolute;right:16px;top:12px;cursor:pointer;font-size:22px;border:0;background:none}
.pgrid{display:grid;grid-template-columns:300px 1fr;gap:18px}.kv{font-size:13px;margin:5px 0}.kv span{color:#5b6b60;display:inline-block;width:110px}
.bar{height:9px;background:#e8ece7;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:#3fa66b}
.tabs{display:flex;gap:4px;border-bottom:1px solid #e6ebe5;margin-bottom:12px;flex-wrap:wrap}.tabs a{padding:8px 12px;cursor:pointer;font-size:13.5px;border-bottom:2px solid transparent}.tabs a.on{border-color:#2f7d52;color:#2f7d52;font-weight:600}
.big{font-size:44px;font-weight:800;color:#2f7d52}.subs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.subs .card{padding:10px;text-align:center}
.diag h4{margin:12px 0 3px;font-size:14px}.diag p{margin:0;font-size:13.5px;line-height:1.5;color:#33433a}
select,input,textarea{border:1px solid #d5ddd4;border-radius:8px;padding:7px 9px;font:inherit;font-size:13px}textarea{width:100%;min-height:80px}
.mods{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mod{cursor:pointer}.mod:hover{border-color:#3fa66b}.mod .t{font-weight:600;margin-top:6px}.ic{font-size:22px}
.cgrid{display:grid;grid-template-columns:1fr 340px;gap:16px}.act{display:flex;gap:10px;align-items:center;padding:9px 10px;border:1px solid #e6ebe5;border-radius:10px;margin-bottom:6px;background:#fff;font-size:13.5px}
.act.hdr{background:#eef6f0;font-weight:700}.drag{cursor:grab;color:#9aa;}.tag{font-size:11px;padding:2px 7px;border-radius:8px;background:#eef3ee;color:#466}.pub{background:#e3f4e8;color:#1f7a45}
.cs{display:flex;justify-content:space-between;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px}.cs:hover,.cs.on{background:#eef6f0}
table{width:100%;border-collapse:collapse;font-size:13.5px}td,th{padding:9px;border-bottom:1px solid #eef1ed;text-align:left}tr.cl{cursor:pointer}tr.cl:hover{background:#f8faf7}
.pill{font-size:11.5px;padding:2px 8px;border-radius:10px;color:#fff}
.pcs.na{background:#eef1ee;color:#7a877e}.empty{padding:14px;text-align:center;color:#7a877e;font-size:13px;background:#f7f9f6;border-radius:10px}.live{display:inline-block;margin-top:10px;font-size:12px;background:#fff4d6;color:#7a5a00;border:1px solid #f0d98a;border-radius:20px;padding:3px 12px}
.tag.warn{background:#fff4d6;color:#7a5a00}.tag.bad{background:#fde2e2;color:#a11}
.badge{background:#ef4444;color:#fff;border-radius:10px;padding:0 7px;font-size:11px;margin-left:4px}
.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal{min-height:78px;border:1px solid #e6ebe5;border-radius:8px;padding:4px;font-size:12px}.cal.e{border:none}.cal.today{border-color:#2f7d52;background:#f0f8f2}
.ev{background:#2f7d52;color:#fff;border-radius:6px;padding:2px 4px;margin-top:3px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(max-width:800px){aside{position:static;width:100%}body{flex-direction:column}main{margin-left:0;padding:14px}.stats,.buckets,.tiers{grid-template-columns:1fr 1fr!important}}

.prow{width:100%;padding-left:26px;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;margin-top:6px}
.pbtn{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border:1px solid #cfe0d3;border-radius:10px;background:#f4f9f5;color:#1f5a3a;font-size:14px;font-weight:600;cursor:pointer}
.pbtn input{display:none}
.plist{display:flex;flex-wrap:wrap;gap:8px;width:100%}.pitem{border:1px solid #e6ebe5;border-radius:10px;padding:6px;background:#fff;font-size:13px}
.pitem img{width:96px;height:96px;object-fit:cover;border-radius:6px;display:block}.pitem .pdf{display:inline-flex;align-items:center;min-height:40px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pmeta{display:flex;justify-content:space-between;align-items:center;color:#5b6b60;font-size:12px;margin-top:4px}.pdel{border:0;background:#fde6e6;color:#b42323;border-radius:8px;min-width:40px;min-height:40px;cursor:pointer;font-size:14px}
/* mobile pass 2026-10-21: readable text (>=14px), 40px tap targets, compact wrapped nav */
@media(max-width:800px){
 aside{display:flex;flex-wrap:wrap;gap:4px;padding:10px!important;height:auto!important}
 aside .brand{width:100%;margin-bottom:4px}aside .grp{display:none}aside>.sub{width:100%}
 aside a{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;font-size:15px}aside select{width:100%!important;margin:4px 0!important;min-height:40px}
 .sub,.tag,.pcs,.l,.empty,.badge,.brand small,.pmeta,.kv,.row,.act,.btn,select,input,textarea,small,.av,.pill,.live,.banner,table,.cal,.ev{font-size:14px!important}
 .btn,.x,select,input:not([type=checkbox]):not([type=file]){min-height:40px}.x{min-width:40px}
 .act input[type=checkbox],label.act input[type=checkbox]{width:40px;height:40px;flex:none;margin:0;accent-color:#2f7d52}
 .prow{padding-left:0}.row{min-height:40px}
 main a.sub,main .sub a{display:inline-block;padding:12px 0}
 main span{font-size:max(14px,1em)}
 h1{font-size:22px}
 .act>input[type=checkbox]+span{flex:1 1 180px;min-width:0}
}
