:root{--color-primary: #4F46E5;--color-primary-hover: #4338CA;--color-bg: #FFFFFF;--color-bg-alt: #F4F4F2;--color-bg-dark: #18181B;--color-ink: #18181B;--color-ink-2: #52525B;--color-ink-3: #71717A;--color-line: #E4E4E7;--color-success: #16A34A;--color-warning: #F59E0B;--color-warning-ink: #92400E;--easing: cubic-bezier(.25, .46, .45, .94)}*{box-sizing:border-box}body{margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:17px;line-height:1.6;color:var(--color-ink);background:var(--color-bg-alt)}code,.mono{font-family:JetBrains Mono,monospace;font-size:14px}h1{font-size:28px;font-weight:600;letter-spacing:-.02em;margin:0 0 4px}h2{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:0 0 12px}.layout{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--color-bg-dark);color:#fafaf9;padding:24px 0;display:flex;flex-direction:column}.sidebar .brand{padding:0 20px 20px;font-weight:700;font-size:15px;letter-spacing:-.02em}.sidebar nav a{display:block;padding:10px 20px;color:#a1a1aa;text-decoration:none;font-size:15px;transition:color .15s var(--easing)}.sidebar nav a:hover{color:#fafaf9}.sidebar nav a.active{color:#fafaf9;background:#ffffff0f}.sidebar .spacer{flex:1}.sidebar button.logout{margin:0 20px;background:none;border:1px solid #3F3F46;color:#a1a1aa;border-radius:999px;padding:6px 16px;cursor:pointer;font-family:inherit;font-size:14px}.main{flex:1;padding:32px 40px;max-width:1180px}.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:999px;padding:10px 22px;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s var(--easing)}.btn.primary{background:var(--color-primary);color:#fff}.btn.primary:hover{background:var(--color-primary-hover)}.btn.primary:disabled{opacity:.6;cursor:default}.btn.secondary{background:transparent;color:var(--color-ink);border:1px solid var(--color-line)}.btn.secondary:hover{border-color:var(--color-ink-3)}.btn.danger{background:transparent;color:var(--color-ink);border:1.5px solid var(--color-warning)}.btn.small{padding:5px 14px;font-size:14px}.card{background:var(--color-bg);border:1px solid var(--color-line);padding:24px;margin-bottom:24px}table{width:100%;border-collapse:collapse;background:var(--color-bg)}.table-wrap{overflow-x:auto;border:1px solid var(--color-line);background:var(--color-bg)}th{text-align:left;font-size:14px;color:var(--color-ink-2);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--color-line);white-space:nowrap}td{padding:12px 16px;border-bottom:1px solid var(--color-line);font-size:15px}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--color-bg-alt)}.field{margin-bottom:16px}.field label{display:block;font-size:14px;color:var(--color-ink-2);margin-bottom:4px}.field input,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--color-line);border-radius:0;font-family:inherit;font-size:15px;background:var(--color-bg);color:var(--color-ink)}.field input:focus,.field textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600}.status-badge:before{content:"";width:8px;height:8px;border-radius:50%}.status-badge.on:before{background:var(--color-success)}.status-badge.off:before{background:var(--color-warning)}.alert-warning{background:#fef3c7;border:1px solid var(--color-warning);color:var(--color-warning-ink);padding:12px 16px;font-size:15px;margin-bottom:16px}.alert-error{background:#fef3c7;border:1.5px solid var(--color-warning);color:var(--color-warning-ink);padding:12px 16px;font-size:15px;margin-bottom:16px}.empty-state{text-align:center;padding:64px 24px;color:var(--color-ink-2)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#18181b80;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:var(--color-bg);padding:28px;max-width:480px;width:90%}.modal .actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-line);margin-bottom:24px}.tabs button{background:none;border:none;border-bottom:2px solid transparent;padding:10px 18px;font-family:inherit;font-size:15px;font-weight:600;color:var(--color-ink-2);cursor:pointer}.tabs button.active{color:var(--color-ink);border-bottom-color:var(--color-primary)}.secret-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.secret-row .label{width:130px;font-size:14px;color:var(--color-ink-2);flex-shrink:0}.secret-row code{background:var(--color-bg-alt);padding:6px 10px;word-break:break-all;flex:1;min-width:200px}.skeleton{background:linear-gradient(90deg,#eee 25%,#f5f5f5,#eee 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;height:16px}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.toggle{position:relative;width:44px;height:24px;flex-shrink:0;cursor:pointer}.toggle input{opacity:0;width:0;height:0}.toggle .track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--color-line);transition:background .15s var(--easing)}.toggle input:checked+.track{background:var(--color-success)}.toggle .track:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s var(--easing)}.toggle input:checked+.track:after{transform:translate(20px)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-alt)}.login-box{background:var(--color-bg);border:1px solid var(--color-line);padding:40px;width:400px}.sso-placeholder{margin-top:20px;padding:10px;text-align:center;border:1px dashed var(--color-line);color:var(--color-ink-3);font-size:14px}
