:root{--panel:#fffdf7;--ink:#243028;--muted:#69746b;--green:#6f7d4f;--line:#d8ddca}
*{box-sizing:border-box}
html,body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(135deg,#fbf7ee 0%,#edf1e5 100%);min-height:100%}
body{min-height:100vh}
.shell{max-width:1080px;margin:0 auto;padding:28px 20px 56px}
.top{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:28px}
.brand h1{margin:0;font-size:clamp(28px,4vw,44px);line-height:1.05}.brand p{margin:8px 0 0;color:var(--muted)}
.userbox{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
button,.btn{border:0;border-radius:14px;padding:12px 16px;font:inherit;cursor:pointer}
.btn-primary{background:var(--green);color:white}.btn-soft{background:#eef1e7;color:var(--ink);border:1px solid var(--line)}
.panel{background:rgba(255,253,247,.94);border:1px solid var(--line);border-radius:24px;padding:22px}
.login{max-width:520px;margin:8vh auto 0}
label{display:block;font-weight:700;margin:15px 0 7px}input{width:100%;padding:14px 15px;border:1px solid #cfd5c2;border-radius:13px;font:inherit;background:white}
.notice{padding:12px 14px;border-radius:13px;background:#f6eadf;color:#6f4a28;margin:14px 0}.ok{background:#edf4e7;color:#39532a}
.modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.module{background:rgba(255,253,247,.95);border:1px solid var(--line);border-radius:22px;padding:20px;min-height:190px;display:flex;flex-direction:column;justify-content:space-between}
.module .icon{font-size:38px}.module h2{margin:12px 0 6px;font-size:22px}.module p{margin:0;color:var(--muted);line-height:1.45}
.module .meta{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:10px}
.status{font-size:13px;font-weight:700;padding:6px 9px;border-radius:999px;background:#eef1e7}
.status.live{background:#e8f2e0;color:#35522c}.status.planned{background:#f6eadf;color:#7b522f}
a.module-link{color:inherit;text-decoration:none}.module.disabled{opacity:.72}.small{font-size:13px;color:var(--muted)}
.footer{margin-top:34px;color:var(--muted);font-size:13px;text-align:center}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
@media(max-width:820px){.modules{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.userbox{justify-content:flex-start}.shell{padding:18px 14px 38px}}
