:root{--bg: #f4f6f8;--panel: #ffffff;--border: #e2e6ea;--text: #1f2933;--muted: #6b7280;--primary: #2563eb;--danger: #dc2626;--ok: #16a34a;--warn: #d97706}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--primary);text-decoration:none}h1,h2,h3{margin:0 0 12px}.shell nav{display:flex;justify-content:space-between;align-items:center;background:var(--panel);border-bottom:1px solid var(--border);padding:0 20px;height:52px}.nav-left{display:flex;align-items:center;gap:20px}.nav-left .brand{font-weight:700;color:var(--text)}.nav-right{display:flex;align-items:center;gap:12px}.nav-right .user{color:var(--muted)}main{padding:0;max-width:1100px;margin:0 auto}.page{padding:24px}.page.narrow{max-width:680px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:6px;overflow:hidden}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.table th{background:#f9fafb;color:var(--muted);font-weight:600}.table tr:last-child td{border-bottom:none}.table code{background:#f1f5f9;padding:2px 6px;border-radius:4px}.btn{display:inline-block;padding:8px 14px;border:1px solid var(--border);border-radius:6px;background:var(--panel);cursor:pointer;font-size:14px;color:var(--text)}.btn:hover:not(:disabled){background:#f3f4f6}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:#1d4ed8}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.sm{padding:3px 10px;font-size:12px}.status{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.status.active,.status.success{background:#dcfce7;color:var(--ok)}.status.provisioning,.status.pending{background:#fef3c7;color:var(--warn)}.status.frozen{background:#e0e7ff;color:#4f46e5}.status.removed{background:#f3f4f6;color:var(--muted)}.status.fail,.status.failed{background:#fee2e2;color:var(--danger)}.form{display:flex;flex-direction:column;gap:16px;padding:16px 0}.form label{display:flex;flex-direction:column;gap:6px;font-weight:500}.form input,.form select{padding:9px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;color:var(--text);background-color:#fff;box-sizing:border-box;font-family:inherit}.form select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;cursor:pointer}.form input:focus,.form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.form .hint{color:var(--muted);font-weight:400;font-size:12px}.form .form-divider{border-top:1px solid var(--border);padding-top:14px}.form fieldset{border:1px solid var(--border);border-radius:8px;padding:14px;margin:0;background:var(--panel);display:flex;flex-direction:column;gap:14px;min-width:0}.form .section-title{margin:8px 0;font-size:15px;font-weight:600;color:var(--text)}.form .check-group{display:flex;flex-direction:column;gap:2px}.form .token-row{display:flex;gap:8px}.form .token-row input{flex:1;min-width:0}.test-result{margin-top:6px;font-size:12px}.test-result.ok{color:var(--ok)}.test-result.fail{color:var(--danger)}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tabs button{padding:8px 16px;border:none;background:none;cursor:pointer;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.field .field-label{font-weight:500;margin-bottom:8px}.check{display:flex;align-items:center;gap:8px;font-weight:400;padding:3px 0}.actions{display:flex;gap:10px;margin:12px 0}.info{padding:10px;background:#ecfdf5;color:var(--ok);border-radius:6px;margin:8px 0}.error{padding:10px;background:#fee2e2;color:var(--danger);border-radius:6px;margin:8px 0}.error-sm{color:var(--danger);font-size:12px}.muted{color:var(--muted)}.filters{display:flex;gap:10px;margin-bottom:16px}.filters input,.filters select{padding:8px 12px;border:1px solid var(--border);border-radius:6px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login{width:320px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:32px;display:flex;flex-direction:column;gap:12px}.login h1{text-align:center;margin:0}.login .sub{text-align:center;color:var(--muted);margin:0 0 8px}.login input{padding:10px 12px;border:1px solid var(--border);border-radius:6px}.login button{padding:10px;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer}.page-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--muted)}
