:root{--bg:#f4f6fb;--panel:#fff;--text:#121827;--muted:#6c7487;--line:#e7eaf1;--primary:#315efb;--good:#0f9f6e;--warn:#d97706;--bad:#d94141;--nav:#0b1020;--shadow:0 12px 30px rgba(24,35,70,.08)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--nav);color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 26px}.brand strong,.brand span{display:block}.brand span{font-size:12px;color:#8f9ab8;margin-top:3px}.brand-mark{width:54px;height:54px;border-radius:17px;background:linear-gradient(135deg,#315efb,#8a5cff);display:grid;place-items:center;color:#fff;font-weight:800;box-shadow:0 12px 25px rgba(49,94,251,.28)}.brand-mark.small{width:42px;height:42px;border-radius:13px}.sidebar nav{display:grid;gap:7px}.sidebar nav button,.logout{border:0;background:transparent;color:#aeb7cf;padding:13px 14px;border-radius:12px;text-align:left}.sidebar nav button.active{background:#182039;color:#fff}.logout{margin-top:auto;color:#ffb4b4}.app main{margin-left:240px;padding:0 28px 40px}.topbar{height:96px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:26px;margin:0 0 5px}.topbar p,.panel-head p{margin:0;color:var(--muted);font-size:14px}.status-dot{font-size:13px;background:#e9f8f2;color:var(--good);padding:8px 11px;border-radius:999px}.view{display:none}.view.active{display:block}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stats article,.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.stats article{padding:22px}.stats span{display:block;color:var(--muted);font-size:14px;margin-bottom:12px}.stats strong{font-size:30px}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{padding:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-head h2{margin:0 0 5px;font-size:19px}.primary,.ghost{border-radius:11px;padding:10px 15px;border:1px solid var(--line);font-weight:650}.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.ghost{background:#fff;color:var(--text)}.full{width:100%}.toolbar{display:flex;gap:10px;margin-bottom:16px}.toolbar input{flex:1}.toolbar input,.toolbar select,input,textarea,select{border:1px solid #d9deea;border-radius:11px;background:#fff;padding:11px 12px;outline:none}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th,td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{font-size:12px;color:var(--muted)}.badge{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:650}.badge.on{background:#e9f8f2;color:var(--good)}.badge.off{background:#f0f2f6;color:#7d8494}.badge.pending{background:#fff6e8;color:var(--warn)}.row-actions{display:flex;gap:7px}.row-actions button{border:0;background:#eef2ff;color:#315efb;border-radius:8px;padding:7px 9px}.row-actions button.danger{background:#fff0f0;color:var(--bad)}.list-item{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.list-main strong,.list-main span{display:block}.list-main span{color:var(--muted);font-size:13px;margin-top:4px}.connection-list{display:grid;gap:12px}.connection-card{border:1px solid var(--line);border-radius:13px;padding:14px;display:flex;justify-content:space-between}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.project-card{border:1px solid var(--line);border-radius:15px;padding:17px}.project-card h3{margin:0 0 7px}.project-card p{color:var(--muted);font-size:14px;min-height:42px}.form-panel{display:grid;gap:14px}.form-panel label,.modal-form label{display:grid;gap:7px;font-size:13px;font-weight:650}.secret-box{background:#0d1427;border-radius:14px;padding:14px;display:grid;gap:9px}.secret-box code{color:#c7d2fe;word-break:break-all}.muted{color:var(--muted);font-size:13px}.logs{display:grid;gap:10px}.log-item{display:grid;grid-template-columns:150px 1fr 110px;gap:14px;border:1px solid var(--line);border-radius:13px;padding:14px}.log-item .time,.log-item .meta{font-size:12px;color:var(--muted)}.empty-state{padding:30px;text-align:center;color:var(--muted)}dialog{border:0;border-radius:20px;padding:0;width:min(780px,calc(100% - 24px));box-shadow:0 30px 80px rgba(10,20,50,.28)}dialog::backdrop{background:rgba(6,10,22,.62)}.modal-form{padding:22px;display:grid;gap:15px;max-height:88vh;overflow:auto}.modal-head{display:flex;justify-content:space-between}.modal-head h2{margin:0 0 5px}.modal-head p{margin:0;color:var(--muted);font-size:13px}.icon-btn{border:0;background:#f1f3f7;border-radius:10px;width:36px;height:36px;font-size:24px}.form-grid,.switch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.switch-grid{background:#f7f8fb;border-radius:14px;padding:14px}.switch-grid label{display:flex;align-items:center;gap:8px;font-weight:500}.modal-actions{display:flex;justify-content:flex-end;gap:9px}.toast{position:fixed;right:24px;bottom:24px;background:#101728;color:#fff;padding:12px 16px;border-radius:11px;opacity:0;transform:translateY(15px);transition:.2s;z-index:99}.toast.show{opacity:1;transform:none}.toast.bad{background:#a62d2d}.login-gate{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#1a2b68,#090e1c 55%)}.login-card{width:min(390px,calc(100% - 28px));background:#fff;border-radius:22px;padding:30px;display:grid;gap:14px}.login-card .brand-mark{margin:auto}.login-card h1,.login-card p{text-align:center;margin:0}.login-card p{color:var(--muted)}.error{color:var(--bad);font-size:13px}.mobile-only{display:none}@media(max-width:980px){.stats{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr 1fr}.grid.two{grid-template-columns:1fr}}@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.app main{margin-left:0;padding:0 14px 30px}.topbar{height:82px}.mobile-only{display:inline-block}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats article{padding:16px}.cards,.form-grid,.switch-grid{grid-template-columns:1fr}.log-item{grid-template-columns:1fr}.panel{padding:15px}}
