*{box-sizing:border-box}html,body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:#f6f7fb;color:#17151d}a{text-decoration:none;color:inherit}input,select,button{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:linear-gradient(135deg,var(--primary,#5B21B6),var(--secondary,#DB2777));color:#fff;padding:12px 18px;font-weight:800;cursor:pointer}.btn:disabled{opacity:.45}.btn.small{padding:9px 14px}.installer,.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#ede9fe,#fdf2f8 45%,#f8fafc)}.install-card,.login-card{width:min(920px,100%);background:#fff;border-radius:24px;padding:30px;box-shadow:0 24px 70px #25134a1a}.login-card{max-width:460px}.brand{display:flex;gap:14px;align-items:center;margin-bottom:24px}.brand h1,.brand p{margin:0}.brand-mark{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#5B21B6,#DB2777);color:#fff;font-size:24px;font-weight:900}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.wide{grid-column:1/-1}label{display:grid;gap:7px;font-weight:700;margin-bottom:14px}input,select{width:100%;padding:12px;border:1px solid #ddd7e8;border-radius:10px;background:#fff}.requirements{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0 24px}.requirements div{display:flex;justify-content:space-between;padding:10px 12px;border-radius:10px;background:#f7f5fb}.notice{padding:13px 15px;border-radius:12px;margin:15px 0}.success{background:#ecfdf5;color:#065f46}.error{background:#fff1f2;color:#9f1239}.shell{display:flex;min-height:100vh}.sidebar{width:250px;background:#171226;color:#fff;padding:22px;position:fixed;inset:0 auto 0 0}.side-brand{display:grid;gap:3px;margin-bottom:25px}.side-brand small{opacity:.65}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:11px 12px;border-radius:10px}.sidebar nav a:hover{background:#ffffff14}.main{margin-left:250px;width:calc(100% - 250px)}.topbar{height:68px;background:#fff;border-bottom:1px solid #ece9f2;display:flex;align-items:center;gap:16px;padding:0 24px;position:sticky;top:0}.topbar span{margin-left:auto}.menu{display:none}.content{padding:26px}.page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.page-head h1,.page-head p{margin:0}.page-head p{color:#716b7d;margin-top:5px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stats article,.panel{background:#fff;border:1px solid #ece9f2;border-radius:16px;padding:20px;box-shadow:0 8px 24px #21153508}.stats article{display:grid;gap:8px}.stats strong{font-size:30px}.panel{margin-top:18px}.module-grid,.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.module-grid div{padding:13px;border:1px solid #ece9f2;border-radius:12px;display:grid;gap:4px}.module-grid span{font-size:12px;color:#777}.inline-form{display:flex;gap:10px;align-items:end}.inline-form input{max-width:280px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:620px}th,td{text-align:left;padding:12px;border-bottom:1px solid #eee}.footer,.public-footer{text-align:center;padding:22px;color:#777}.public-nav{display:flex;justify-content:space-between;align-items:center;padding:18px max(6vw,24px);background:#fff}.hero{min-height:58vh;display:grid;place-items:center;text-align:center;padding:50px 24px;background:radial-gradient(circle at top left,#ede9fe,#fff 50%,#fdf2f8)}.hero h1{font-size:clamp(42px,7vw,78px);margin:10px 0}.hero p{font-size:20px;color:#6d6577}.eyebrow{font-weight:900;color:var(--primary,#5B21B6);text-transform:uppercase;letter-spacing:.12em}.public-section{max-width:1100px;margin:auto;padding:60px 24px}.feature-grid article{background:#fff;padding:22px;border:1px solid #eee;border-radius:16px}
@media(max-width:800px){.grid,.requirements,.stats,.module-grid,.feature-grid{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);z-index:10;transition:.2s}.nav-open .sidebar{transform:none}.main{margin-left:0;width:100%}.menu{display:block}.content{padding:18px}.inline-form{display:grid}.wide{grid-column:auto}}
