:root{--sidebar-bg:#1e293b;--sidebar-line:#334155;--sidebar-text:#cbd5e1;--sidebar-muted:#94a3b8;--accent:#3b82f6;--accent-soft:#eff6ff;--page-bg:#f8fafc;--card-bg:#fff;--line:#e2e8f0;--text:#1e293b;--text-soft:#475569;--muted:#64748b;--danger:#dc2626;--danger-soft:#fef2f2;--green:#15803d;--green-soft:#dcfce7;color:var(--text);background:var(--page-bg);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--page-bg);min-width:320px;margin:0}button{font-family:inherit}h1,h2,p{margin:0}.shell{--sidebar-w:260px;min-height:100vh}.shell.is-collapsed{--sidebar-w:72px}.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);color:#fff;z-index:100;flex-direction:column;transition:width .2s;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden}.sidebar-logo{border-bottom:1px solid var(--sidebar-line);white-space:nowrap;align-items:center;gap:12px;min-height:64px;padding:16px;font-size:15px;font-weight:600;display:flex}.logo-mark{background:var(--accent);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:flex}.sidebar-nav{flex:1;padding:12px 0}.nav-link{color:var(--sidebar-text);white-space:nowrap;align-items:center;gap:12px;padding:10px 16px;font-size:14px;text-decoration:none;display:flex}.nav-link:hover{background:var(--sidebar-line);color:#fff}.nav-link.is-active{background:var(--accent);color:#fff;font-weight:500}.is-collapsed .nav-link{justify-content:center;padding:12px}.is-collapsed .sidebar-logo{justify-content:center;padding:16px 0}.sidebar-toggle{border:0;border-top:1px solid var(--sidebar-line);width:100%;color:var(--sidebar-muted);cursor:pointer;background:0 0;justify-content:center;padding:12px 16px;display:flex}.sidebar-toggle:hover{color:#fff}.main{margin-left:var(--sidebar-w);min-height:100vh;transition:margin-left .2s}.topbar{z-index:50;background:var(--card-bg);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.breadcrumb{color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:500;display:flex}.topbar-actions{align-items:center;gap:12px;display:flex}.icon-button{border:1px solid var(--line);width:40px;height:40px;color:var(--text-soft);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;display:flex}.icon-button:hover,.icon-button.is-active{background:#f1f5f9}.content{max-width:1100px;padding:32px 24px}.launcher{position:relative}.launcher-panel{border:1px solid var(--line);z-index:300;background:#fff;border-radius:12px;width:340px;max-width:calc(100vw - 32px);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #0f172a1f}.launcher-header{color:#334155;border-bottom:1px solid #f1f5f9;padding:14px 16px;font-size:14px;font-weight:600}.launcher-grid{grid-template-columns:1fr 1fr;gap:8px;max-height:420px;padding:12px;display:grid;overflow-y:auto}.launcher-tile{border:1px solid var(--line);text-align:left;cursor:pointer;color:inherit;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;display:flex}.launcher-tile:hover:not(:disabled){background:var(--page-bg);border-color:#cbd5e1}.launcher-tile.is-current{border-color:var(--accent);background:var(--accent-soft);cursor:default}.launcher-tile.is-locked{opacity:.72;cursor:not-allowed;background:var(--page-bg)}.launcher-tile:disabled:not(.is-current):not(.is-locked){opacity:.6}.launcher-name{color:var(--text);align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.launcher-sub{color:var(--muted);font-size:11px;line-height:1.3}.launcher-sub.is-blue{color:var(--accent)}.launcher-sub.is-muted{color:var(--sidebar-muted)}.launcher-empty{color:var(--muted);text-align:center;padding:16px;font-size:13px}.launcher-error{background:var(--danger-soft);color:#b91c1c;border-radius:8px;margin:12px 12px 0;padding:10px 12px;font-size:12px;line-height:1.4}.user-menu{position:relative}.user-chip{color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:10px;padding:4px 8px 4px 4px;font-size:14px;font-weight:600;display:flex}.user-chip:hover{background:#f1f5f9}.user-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.avatar.is-large{width:64px;height:64px;font-size:22px}.user-dropdown{border:1px solid var(--line);z-index:300;background:#fff;border-radius:12px;width:260px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #0f172a1f}.user-dropdown-head{border-bottom:1px solid #f1f5f9;flex-direction:column;gap:2px;padding:14px 16px;font-size:13px;display:flex}.user-dropdown-head span{color:var(--muted);overflow-wrap:anywhere}.user-dropdown-item{width:100%;color:var(--danger);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:500;display:flex}.user-dropdown-item:hover:not(:disabled){background:var(--danger-soft)}.page-head{margin-bottom:24px}.page-head h1{margin-bottom:4px;font-size:28px;font-weight:700}.page-head p{color:var(--muted);font-size:15px}.card{background:var(--card-bg);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 3px #0f172a0f}.profile-card{padding:24px}.profile-head{border-bottom:1px solid #f1f5f9;flex-wrap:wrap;align-items:center;gap:16px;padding-bottom:20px;display:flex}.profile-id{flex:1;min-width:0}.profile-id h2{overflow-wrap:anywhere;font-size:20px;font-weight:700}.profile-id p{color:var(--muted);overflow-wrap:anywhere;font-size:14px}.details{margin:0}.details-row{border-bottom:1px solid #f1f5f9;grid-template-columns:200px 1fr;align-items:center;gap:16px;padding:14px 0;font-size:14px;display:grid}.details-row:last-child{border-bottom:0;padding-bottom:0}.details-row dt{color:var(--muted);font-weight:500}.details-row dd{color:var(--text);overflow-wrap:anywhere;margin:0;font-weight:500}.badge-row{flex-wrap:wrap;gap:6px;display:inline-flex}.badge{background:var(--accent-soft);color:#1d4ed8;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.is-green{background:var(--green-soft);color:var(--green)}.button{border:1px solid var(--line);color:var(--text-soft);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.button:hover:not(:disabled){background:#f1f5f9}.button:disabled{opacity:.6;cursor:default}.button.is-primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.is-primary:hover:not(:disabled){background:#2563eb}.button.is-danger{color:var(--danger);background:#fff;border-color:#fecaca}.button.is-danger:hover:not(:disabled){background:var(--danger-soft)}.status-page{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.status-card{text-align:center;border:1px solid var(--line);background:#fff;border-radius:16px;width:100%;max-width:440px;padding:32px;box-shadow:0 8px 24px #0f172a0f}.status-brand{justify-content:center;align-items:center;gap:10px;margin-bottom:28px;font-weight:600;display:flex}.status-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.status-icon.is-red{background:var(--danger-soft);color:var(--danger)}.status-card h1{margin-bottom:8px;font-size:20px;font-weight:700}.status-card p{color:var(--muted);font-size:14px;line-height:1.5}.status-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.topbar{padding:0 16px}.content{padding:24px 16px}.user-chip-name{display:none}.details-row{grid-template-columns:1fr;gap:4px}.profile-head .button{width:100%}}
