:root{--g:#2e8b3e;--gd:#1d5e2a;--b:#1f6fb5;--gold:#d9a521;--bg:#f4f8f2;--t:#1c2a22}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,Arial,sans-serif;background:var(--bg);color:var(--t)}
.banner{background:var(--gold);color:#222;text-align:center;font-weight:700;padding:6px;font-size:13px;position:sticky;top:0;z-index:20}
header{background:#fff;border-bottom:3px solid var(--g);display:flex;align-items:center;gap:10px;padding:8px 12px;position:sticky;top:30px;z-index:15}
header img{height:42px}header .sp{flex:1}
nav{display:flex;gap:6px;overflow-x:auto;padding:8px 12px;background:var(--gd)}
nav button{background:transparent;color:#fff;border:1px solid #ffffff55;border-radius:20px;padding:8px 14px;white-space:nowrap;font-size:14px}
nav button.on{background:var(--gold);color:#222;border-color:var(--gold)}
main{padding:14px;max-width:1100px;margin:auto;min-height:70vh}
h2{color:var(--gd);margin:6px 0 12px}
.btn{background:var(--g);color:#fff;border:0;border-radius:10px;padding:10px 14px;font-size:14px;cursor:pointer}
.btn.b{background:var(--b)}.btn.o{background:var(--gold);color:#222}.btn.r{background:#b23b3b}.btn.l{background:#e6efe6;color:var(--t)}
.btn.sm{padding:6px 10px;font-size:13px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.stat{background:#fff;border-radius:12px;padding:14px;border-left:5px solid var(--b);box-shadow:0 1px 4px #0001;cursor:pointer}
.stat b{font-size:28px;color:var(--b);display:block}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 5px #0002}
.card img{width:100%;height:190px;object-fit:cover;display:block;cursor:pointer}
.card .in{padding:10px}.card h3{margin:0 0 4px;font-size:16px}.muted{color:#5b6b60;font-size:13px}
.tag{display:inline-block;font-size:12px;border-radius:10px;padding:2px 8px;background:#e3eefa;color:var(--b);margin-right:4px}
.tag.done{background:#e2f3e4;color:var(--gd)}.tag.prog{background:#fbf0d3;color:#8a6400}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.chips button{border:1px solid var(--g);background:#fff;color:var(--gd);border-radius:16px;padding:6px 12px}
.chips button.on{background:var(--g);color:#fff}
form label{display:block;margin:8px 0 3px;font-weight:600;font-size:14px}
input,select,textarea{width:100%;padding:10px;border:1px solid #c5d3c8;border-radius:8px;font-size:15px}
.login{max-width:380px;margin:30px auto;background:#fff;padding:22px;border-radius:14px;box-shadow:0 2px 10px #0002;text-align:center}
.login img{width:180px}.demo{background:#fbf0d3;border-radius:8px;padding:8px;font-size:13px;margin:10px 0}
.thumbs{display:flex;flex-wrap:wrap;gap:8px}.th{width:110px;background:#fff;border-radius:8px;overflow:hidden;border:2px solid transparent}
.th.cover{border-color:var(--gold)}.th img{width:110px;height:85px;object-fit:cover;display:block}.th .a{display:flex;justify-content:space-between;padding:2px}
.th .a button{border:0;background:#eef;padding:3px 6px;border-radius:5px;font-size:12px}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden}td,th{padding:9px;border-bottom:1px solid #e3e9e4;text-align:left;font-size:14px}
th{background:var(--gd);color:#fff}
.stars{color:var(--gold);font-size:18px}.priv{background:#e3eefa;border-left:4px solid var(--b);padding:8px;border-radius:6px;font-size:13px;margin-bottom:10px}
.pub{background:#fff}.hero{background:linear-gradient(120deg,var(--gd),var(--b));color:#fff;padding:24px;border-radius:14px;text-align:center}
.hero img{height:80px;background:#fff;border-radius:10px;padding:4px}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ba div{position:relative}.ba span{position:absolute;top:6px;left:6px;background:#000a;color:#fff;font-size:11px;padding:2px 6px;border-radius:6px}
.ba img{width:100%;height:150px;object-fit:cover;border-radius:8px}
.toast{position:fixed;bottom:60px;left:50%;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:20px;opacity:0;transition:.3s;z-index:50;pointer-events:none}
.toast.show{opacity:1}
.modal{position:fixed;inset:0;background:#0008;z-index:40;display:flex;align-items:center;justify-content:center;padding:10px}.hidden{display:none}
.mbox{background:#fff;border-radius:14px;max-width:700px;width:100%;max-height:90vh;overflow:auto;padding:16px;position:relative}
.x{position:absolute;right:10px;top:8px;border:0;background:none;font-size:20px}
.mbox img.big{width:100%;border-radius:10px}
footer{text-align:center;padding:16px}footer a{color:var(--gd);font-weight:700}
.row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
