:root{--ink:#18251f;--muted:#6f7d75;--line:#e3e9e5;--paper:#f6f8f6;--green:#1d6b4b;--nav:#142b22;--lime:#d8f06b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 system-ui,-apple-system,sans-serif}.shell{display:grid;grid-template-columns:235px 1fr;min-height:100vh}.shell>aside{background:var(--nav);color:white;padding:24px 16px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;color:white;text-decoration:none;font-weight:800;font-size:18px;padding:0 9px 28px}.brand i,.install-brand>b{width:34px;height:34px;border-radius:9px;background:var(--lime);color:var(--nav);display:grid;place-items:center;font-style:normal}.brand small,.install-brand small{display:block;color:#91a79c;font-size:9px;letter-spacing:1.5px}.shell nav{display:flex;flex-direction:column;gap:4px}.shell nav a{color:#aebfb7;text-decoration:none;padding:11px 13px;border-radius:8px;display:flex;gap:10px}.shell nav a:hover{background:#244437;color:white}.logout{margin-top:auto}.logout button{border:0;background:none;color:#aebfb7;padding:10px;cursor:pointer}.shell main header{height:68px;background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 32px}.shell main header span{color:var(--muted);font-size:12px}.content{padding:32px;max-width:1350px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.heading small{font-weight:800;letter-spacing:1.4px;color:var(--green)}h1{margin:4px 0;font-size:30px}h2{font-size:17px}.heading p{margin:0;color:var(--muted)}.primary{background:var(--green);color:white;border:0;border-radius:8px;padding:10px 15px;text-decoration:none;font-weight:700;cursor:pointer}.primary:disabled{opacity:.45}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stats article,.panel{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 8px 28px #18302009}.stats article{padding:19px}.stats span{color:var(--muted)}.stats b{display:block;font-size:28px;margin-top:5px}.panel{overflow:hidden}.panel-title{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line)}.panel-title h2{margin:0}.panel-title a,.link{color:var(--green);border:0;background:none;text-decoration:none;font-weight:700;cursor:pointer}table{width:100%;border-collapse:collapse}th{text-align:left;background:#fafbfa;color:#77827b;text-transform:uppercase;letter-spacing:.5px;font-size:10px;padding:11px 18px}td{padding:14px 18px;border-top:1px solid var(--line)}td small{display:block;color:var(--muted)}.badge{padding:4px 8px;border-radius:20px;font-size:11px;font-weight:700}.badge.green{background:#e3f3ea;color:#146c48}.badge.gray{background:#edf0ee;color:#68736d}.badge.orange{background:#fff0dc;color:#a15d10}.badge.red{background:#fde5e7;color:#a82431}.empty{padding:50px;text-align:center;color:var(--muted)}.empty b{display:block;color:var(--ink);font-size:18px}.alert{padding:13px 16px;border-radius:9px;margin-bottom:18px}.alert.success{background:#e5f4eb;color:#176844}.alert.error{background:#fde9eb;color:#9b2934}.alert code{word-break:break-all}dialog{border:0;border-radius:14px;padding:0;width:min(500px,calc(100% - 30px));box-shadow:0 20px 70px #142b2240}dialog::backdrop{background:#10201999}dialog form{padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{font-size:20px}.modal-head button{border:0;background:none;font-size:24px}label{display:block;font-size:12px;font-weight:700;margin:13px 0}input,select,textarea{width:100%;border:1px solid #ccd6d0;border-radius:8px;padding:10px;margin-top:5px;background:white}textarea{min-height:70px}.check{display:flex;gap:8px;align-items:center}.check input{width:auto;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wide{grid-column:1/-1}.wide-button{width:100%;margin-top:12px}.hint{color:var(--muted);font-size:12px}.settings-grid{display:grid;grid-template-columns:320px 1fr;gap:16px}.info-card{padding:20px}.info-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px}.info-card dt{color:var(--muted)}.info-card dd{margin:0;text-align:right}.auth-page,.installer{min-height:100vh;display:grid;place-items:center;background:var(--nav)}.auth-card,.install-card{background:white;border-radius:16px;padding:30px;box-shadow:0 25px 80px #0003}.auth-card{width:min(410px,calc(100% - 30px));text-align:center}.auth-card label{text-align:left}.auth-logo{width:48px;height:48px;border-radius:12px;background:var(--lime);display:grid;place-items:center;margin:auto;font-size:25px;font-weight:900}.install-wrap{width:min(820px,calc(100% - 30px));padding:35px 0}.install-brand{display:flex;color:white;gap:10px;align-items:center;font-size:18px;font-weight:800;margin-bottom:18px}.install-card h1{margin-top:0}.requirements{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.requirements span{padding:5px 8px;border-radius:6px;font-size:11px}.requirements .ok{background:#e4f3ea;color:#176945}.requirements .bad{background:#fde8ea;color:#9e2935}@media(max-width:760px){.shell{grid-template-columns:1fr}.shell>aside{display:none}.content{padding:20px 14px}.stats{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.heading{align-items:flex-start}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}table{display:block;overflow:auto}}
