:root{--bg: #F8F4F1;--surface: #FFFFFF;--surface-raised: #FAF5F2;--border: #E4D0D2;--border-hover: #C9B0B3;--text-1: #2A1520;--text-2: #7A918D;--text-3: #B5A4A8;--accent: #E8562A;--accent-hover: #D44C22;--accent-dim: rgba(232, 86, 42, .08);--green: #4D7A6E;--green-dim: rgba(77, 122, 110, .1);--red: #A26769;--red-dim: rgba(162, 103, 105, .1);--blue: #6D2E46;--blue-dim: rgba(109, 46, 70, .1);--font-display: "Overpass", system-ui, sans-serif;--font-body: "Overpass", system-ui, sans-serif;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--radius-xl: 22px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text-1);font-family:var(--font-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-3);font-size:13px;font-family:var(--font-display);letter-spacing:.06em}.page{max-width:640px;margin:0 auto;padding:48px 24px 80px}.page--wide{max-width:1020px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}.brand{display:flex;align-items:center;gap:10px}.brand-icon{width:34px;height:34px;border-radius:10px;overflow:hidden;flex-shrink:0;display:flex}.brand-icon img{width:100%;height:100%;object-fit:cover;display:block;padding:5px}.brand-name{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--text-1);letter-spacing:-.4px}.header-right{display:flex;align-items:center;gap:8px}.user-line{margin-bottom:32px}.user-chip{display:inline-flex;align-items:center;gap:6px;background:var(--green-dim);color:var(--green);padding:3px 10px;border-radius:100px;font-size:11px;font-weight:600}.user-dot{width:5px;height:5px;border-radius:50%;background:var(--green);flex-shrink:0}.section-label{font-family:var(--font-display);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-3);margin-bottom:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin-bottom:8px;transition:border-color .15s}.card:hover{border-color:var(--border-hover)}.card-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.card-body{min-width:0;flex:1}.service-name{font-size:15px;font-weight:600;color:var(--text-1);letter-spacing:-.2px}.status-row{display:flex;align-items:center;gap:6px;margin-top:5px;font-size:12px}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot--on{background:var(--green)}.status-dot--off{background:var(--text-3)}.status-dot--loading{background:var(--text-3);animation:blink 1.2s ease-in-out infinite}.status-text--on{color:var(--green)}.status-text--off{color:var(--text-2)}.status-text--loading{color:var(--text-3)}.service-detail{font-size:11px;color:var(--text-3);margin-top:3px}@keyframes blink{0%,to{opacity:.4}50%{opacity:1}}button{font-family:var(--font-body);cursor:pointer;transition:all .15s;border:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}button:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;font-size:13px;font-weight:600;padding:8px 16px;border-radius:var(--radius-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:var(--surface-raised);color:var(--text-2);font-size:13px;font-weight:500;padding:7px 14px;border-radius:var(--radius-sm);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){color:var(--text-1);border-color:var(--border-hover)}.btn-muted{background:transparent;color:var(--text-2);font-size:12px;font-weight:500;padding:5px 12px;border-radius:var(--radius-sm);border:1px solid var(--border)}.btn-muted:hover:not(:disabled){color:var(--text-1);border-color:var(--border-hover)}.btn-danger-sm{background:var(--red-dim);color:var(--red);font-size:11px;font-weight:500;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid transparent}.btn-danger-sm:hover:not(:disabled){border-color:var(--red)}.error-notice{background:var(--red-dim);border:1px solid rgba(241,109,109,.2);color:var(--red);border-radius:var(--radius-sm);padding:12px 16px;font-size:13px;margin-bottom:20px}.login-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:52px 44px;text-align:center;width:100%;max-width:380px}.login-icon{width:72px;height:72px;border-radius:18px;overflow:hidden;margin:0 auto 24px;display:flex}.login-icon img{width:100%;height:100%;object-fit:cover;display:block;padding:10px}.login-title{font-family:var(--font-display);font-size:26px;font-weight:800;letter-spacing:-.6px;color:var(--text-1);margin-bottom:8px}.login-subtitle{font-size:14px;color:var(--text-2);line-height:1.6;margin-bottom:32px}.btn-google{background:var(--surface-raised);color:var(--text-1);font-size:14px;font-weight:500;padding:11px 22px;border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;justify-content:center}.btn-google:hover{border-color:var(--border-hover)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{padding:13px 16px;text-align:left;font-family:var(--font-display);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-3);border-bottom:1px solid var(--border);background:var(--surface)}.admin-table td{padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover td{background:var(--surface-raised)}.user-name{font-weight:600;color:var(--text-1);font-size:13px}.user-email{color:var(--text-3);font-size:11px;margin-top:2px}.badge-admin{display:inline-block;background:var(--blue-dim);color:var(--blue);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:2px 6px;border-radius:4px;margin-top:4px}.table-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.conn-badge{font-size:11px;font-weight:600;color:var(--green)}.conn-none{font-size:13px;color:var(--text-3)}.conn-cell{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
