.admin-frame,.ims-admin{min-height:100vh}.admin-frame{display:grid;grid-template-columns:248px 1fr}@media (max-width:899px){.admin-frame{grid-template-columns:1fr}}.admin-side{position:sticky;top:0;height:100vh;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5) var(--space-4);background:var(--surface-raised);box-shadow:inset -1px 0 0 var(--separator)}@media (max-width:899px){.admin-side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;box-shadow:inset 0 -1px 0 var(--separator)}}.admin-side .brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--ink)}.admin-side .brand img{height:44px;width:auto}.admin-side .brand span{font:expanded 700 15px/18px var(--font-display)}.admin-side .brand small{display:block;font:500 12px/16px var(--font-sans);color:var(--ink-tertiary);letter-spacing:0}.admin-nav{display:grid;gap:2px}@media (max-width:899px){.admin-nav{grid-auto-flow:column;overflow-x:auto}}.admin-nav a{display:flex;align-items:center;gap:var(--space-3);padding:10px 12px;border-radius:var(--radius-sm);color:var(--ink-secondary);text-decoration:none;font:500 15px/20px var(--font-sans);white-space:nowrap}.admin-nav a:hover{background:var(--fill);color:var(--ink)}.admin-nav a[aria-current=page]{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600}.admin-nav svg{width:20px;height:20px;flex:none}.admin-user{margin-top:auto;display:grid;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--separator);font:400 13px/18px var(--font-sans);color:var(--ink-secondary);word-break:break-all}@media (max-width:899px){.admin-user{margin:0 0 0 auto;border:0;padding:0}}.admin-main{padding:var(--space-6) var(--gutter);min-width:0}.admin-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.admin-head p{color:var(--ink-secondary);margin-top:4px}.admin-card{background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:var(--space-4)}.admin-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;margin-bottom:var(--space-4)}.admin-toolbar .search{flex:1 1 260px;max-width:420px}.admin-thumb{width:44px;height:44px;border-radius:var(--radius-xs);object-fit:cover;background:var(--accent-soft);display:grid;place-items:center;font:expanded 700 14px/1 var(--font-display);color:var(--tint);flex:none}.admin-name{display:flex;align-items:center;gap:var(--space-3)}.admin-name b{font-weight:600;color:var(--ink)}.admin-name small{display:block;color:var(--ink-tertiary);font-size:13px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.admin-stat{display:grid;gap:var(--space-2);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-1);text-decoration:none;color:var(--ink);transition:box-shadow var(--dur-base),transform var(--dur-base)}.admin-stat:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.admin-stat .num{font:expanded 700 40px/1 var(--font-display)}.admin-stat .lbl{color:var(--ink-secondary)}.admin-stat .go{color:var(--tint);font-weight:500;font-size:14px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--space-4);background:var(--surface-brand);position:relative;overflow:hidden;isolation:isolate}.login-wrap .star-bg{position:absolute;right:-80px;bottom:-80px;width:420px;color:var(--sky-500);opacity:.18;z-index:-1}.login-card{width:min(420px,100%);box-sizing:border-box;background:var(--surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);padding:var(--space-6);display:grid;gap:var(--space-4)}.login-card img{height:72px;width:auto;justify-self:start}.login-error{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:14px}.image-field{display:flex;gap:var(--space-3);align-items:center}.image-field img{width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover;background:var(--fill);flex:none}