:root {
  --suite-bg:#0b0d0f;
  --suite-surface:#111418;
  --suite-raised:#15191e;
  --suite-hover:#191e24;
  --suite-text:#f3f5f7;
  --suite-secondary:#b0b7c0;
  --suite-muted:#747d87;
  --suite-border:#272c32;
  --suite-border-subtle:#1d2227;
  --suite-accent:#9eaf8d;
  --suite-accent-strong:#b7c5a8;
  --suite-danger:#c97878;
}
*{box-sizing:border-box}
body.suite-page{margin:0;min-height:100vh;background:var(--suite-bg);color:var(--suite-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:inherit}
.suite-topbar{min-height:48px;border-bottom:1px solid var(--suite-border-subtle);background:rgba(11,13,15,.94)}
.suite-topbar-inner{width:min(1180px,calc(100% - 32px));min-height:48px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}
.suite-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.suite-brand-mark{position:relative;width:19px;height:19px;display:inline-block}
.suite-brand-mark:before,.suite-brand-mark:after{content:"";position:absolute;background:#66705f}
.suite-brand-mark:before{width:13px;height:1px;left:3px;top:9px}.suite-brand-mark:after{width:1px;height:13px;left:9px;top:3px}
.suite-brand-mark span{position:absolute;width:5px;height:5px;border:1px solid #68755e;border-radius:50%;background:#0b0d0f}
.suite-brand-mark span:nth-child(1){left:7px}.suite-brand-mark span:nth-child(2){right:0;top:7px}.suite-brand-mark span:nth-child(3){left:7px;bottom:0}.suite-brand-mark span:nth-child(4){left:0;top:7px}
.suite-brand-copy{display:flex;align-items:baseline;gap:8px}.suite-brand-copy strong{font-size:13px}.suite-brand-copy span{font-size:12px;color:var(--suite-muted)}
.suite-user{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--suite-muted)}.suite-user-name{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--suite-secondary)}.suite-user a{text-decoration:none;border:1px solid var(--suite-border);padding:5px 8px;border-radius:6px}
.suite-main{width:min(1180px,calc(100% - 32px));margin:24px auto 40px}.suite-workspace{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(470px,1.1fr);border:1px solid var(--suite-border);border-radius:11px;overflow:hidden;min-height:640px}
.suite-hero,.suite-auth-visual{background:linear-gradient(90deg,rgba(7,9,10,.38),rgba(7,9,10,.72)),linear-gradient(0deg,rgba(7,9,10,.58),rgba(7,9,10,.08)),url("/static/dungeon.jpg") 50% 50%/cover no-repeat;display:flex;flex-direction:column;justify-content:space-between;padding:30px;border-right:1px solid var(--suite-border)}
.suite-hero-copy{max-width:460px}.suite-eyebrow,.suite-kicker{margin:0;color:var(--suite-accent-strong);font-size:9.5px;font-weight:680;letter-spacing:.13em;text-transform:uppercase}
.suite-hero h1,.suite-auth-visual h1,.suite-page-header h1,.suite-simple-card h1{margin:7px 0 10px;font-size:clamp(30px,4vw,48px);letter-spacing:-.045em;line-height:1;font-weight:650}.suite-hero p:not(.suite-eyebrow),.suite-auth-visual p:not(.suite-eyebrow),.suite-page-header p:not(.suite-eyebrow),.suite-simple-card p{color:var(--suite-secondary);font-size:12px;line-height:1.55}
.suite-hero-footer{display:flex;gap:8px;color:#aeb5ac;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}
.suite-launcher{background:#0e1114;padding:18px;display:flex;flex-direction:column}.suite-launcher-header,.suite-page-header,.suite-admin-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.suite-launcher-header{padding:2px 3px 13px;border-bottom:1px solid var(--suite-border-subtle)}.suite-launcher-header h2,.suite-admin-panel h2,.suite-auth-form h2{margin:4px 0 0;font-size:16px;letter-spacing:-.02em}.suite-user-badge,.suite-role{font-size:9.5px;color:var(--suite-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.suite-tool-list{display:grid;gap:5px;padding:8px 0}.suite-tool-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto 20px;align-items:center;gap:10px;min-height:58px;padding:8px 10px;border:1px solid transparent;border-radius:7px;text-decoration:none;transition:120ms ease}.suite-tool-row:hover{background:var(--suite-surface);border-color:var(--suite-border)}.suite-tool-icon{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--suite-border);border-radius:6px;background:#0c0f11;color:var(--suite-accent);font-size:15px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.suite-tool-copy{min-width:0;display:grid;gap:2px}.suite-tool-copy strong{font-size:11.5px;font-weight:620}.suite-tool-copy span{font-size:9.5px;color:var(--suite-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suite-tool-meta{font-size:9px;color:var(--suite-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.suite-arrow{color:#697168}.suite-tool-row.is-disabled{opacity:.48;cursor:not-allowed}
.suite-admin-footer{margin-top:auto;padding:13px 3px 2px;border-top:1px solid var(--suite-border-subtle);display:flex;align-items:center;justify-content:space-between;gap:12px}.suite-admin-footer strong{font-size:10.5px;color:var(--suite-secondary)}
.suite-primary,.suite-secondary,.suite-small-button{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font:inherit;font-size:10.5px;font-weight:600;text-decoration:none;cursor:pointer}.suite-primary{min-height:34px;padding:7px 12px;border:1px solid #69755f;background:#879a76;color:#0d110b}.suite-secondary,.suite-small-button{min-height:30px;padding:5px 9px;border:1px solid var(--suite-border);background:var(--suite-raised);color:var(--suite-secondary)}.suite-small-button{min-height:27px;font-size:9.5px}
.suite-message{margin:10px 0;padding:9px 10px;border:1px solid var(--suite-border);border-radius:6px;font-size:10.5px}.suite-message.error{border-color:rgba(201,120,120,.4);background:rgba(201,120,120,.07);color:#dca0a0}.suite-message.success{border-color:rgba(143,181,138,.4);background:rgba(143,181,138,.07);color:#a9c7a4}
.suite-auth-shell{width:min(920px,calc(100% - 32px));margin:48px auto}.suite-auth-card{display:grid;grid-template-columns:1.15fr .85fr;min-height:480px;border:1px solid var(--suite-border);border-radius:11px;overflow:hidden}.suite-auth-visual{min-height:480px}.suite-visual-label{font-size:9px;color:#aeb5ac;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.suite-auth-form{background:#0e1114;padding:34px;display:flex;flex-direction:column;justify-content:center}.suite-auth-form form{display:grid;gap:7px;margin-top:18px}.suite-auth-form label,.suite-create-user label,.suite-password-details label{font-size:10px;color:var(--suite-secondary)}input[type=text],input[type=password],input:not([type]){min-height:36px;border:1px solid var(--suite-border);border-radius:6px;background:#0b0e10;color:var(--suite-text);padding:7px 9px;font:inherit;font-size:11px}.suite-auth-form button{margin-top:8px}
.suite-admin-shell{width:min(1180px,calc(100% - 32px));margin:28px auto 44px}.suite-page-header{padding:0 2px 18px}.suite-page-header h1{font-size:34px}.suite-page-header p{margin:8px 0 0}.suite-admin-panel{border:1px solid var(--suite-border);border-radius:9px;background:#0e1114;margin-bottom:12px;overflow:hidden}.suite-admin-panel>header{padding:13px 14px;border-bottom:1px solid var(--suite-border-subtle)}.suite-user-table-wrap{overflow-x:auto}.suite-user-table{width:100%;border-collapse:collapse;font-size:10px}.suite-user-table th{padding:8px 10px;text-align:left;color:var(--suite-muted);font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--suite-border-subtle)}.suite-user-table td{padding:9px 10px;border-bottom:1px solid var(--suite-border-subtle);vertical-align:top}.suite-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.suite-password-state{font-size:9px}.suite-password-state.ready{color:#a9c7a4}.suite-password-state.missing{color:#d0ab76}.suite-permission-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.suite-permission-form label,.suite-permission-picks label{display:inline-flex;align-items:center;gap:4px;color:var(--suite-secondary);font-size:9.5px}.suite-permission-form input,.suite-permission-picks input{accent-color:var(--suite-accent)}.suite-password-details summary{cursor:pointer;color:var(--suite-secondary);font-size:9.5px}.suite-password-details form{display:grid;gap:5px;margin-top:7px;min-width:150px}.suite-password-details input{width:100%}.suite-create-user{padding-bottom:14px}.suite-create-user>form{padding:13px 14px}.suite-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.suite-form-grid>div{display:grid;gap:5px}.suite-permission-picks{display:flex;gap:16px;margin:12px 0}
.suite-simple-shell{width:min(560px,calc(100% - 32px));margin:70px auto}.suite-simple-card{border:1px solid var(--suite-border);border-radius:10px;background:#0e1114;padding:28px}.suite-simple-card h1{font-size:30px}
@media(max-width:850px){.suite-workspace,.suite-auth-card{grid-template-columns:1fr}.suite-hero,.suite-auth-visual{min-height:340px;border-right:0;border-bottom:1px solid var(--suite-border)}.suite-tool-copy span{white-space:normal}.suite-form-grid{grid-template-columns:1fr}}
@media(max-width:600px){.suite-topbar-inner,.suite-main,.suite-admin-shell,.suite-auth-shell{width:calc(100% - 20px)}.suite-main{margin-top:10px}.suite-workspace{border-radius:8px}.suite-hero{padding:22px}.suite-launcher{padding:11px}.suite-tool-row{grid-template-columns:32px minmax(0,1fr) 18px}.suite-tool-meta{display:none}.suite-user-badge{display:none}.suite-page-header{align-items:flex-start;flex-direction:column}.suite-permission-form{min-width:360px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}


/* Unified per-user access controls. */
.suite-access-cell{min-width:520px}
.suite-permission-form{align-items:flex-start;gap:8px}
.suite-access-grid{display:grid;grid-template-columns:repeat(3,minmax(145px,1fr));gap:6px 12px}
.suite-access-grid label{min-height:26px;padding:4px 7px;border:1px solid var(--suite-border-subtle);border-radius:5px;background:#0b0e10}
.suite-save-access{align-self:center;white-space:nowrap}
.suite-fixed-access{align-self:center;color:var(--suite-muted);font-size:9px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}
.suite-new-access{margin:12px 0;max-width:760px}
.suite-account-actions{min-width:190px}
.suite-account-actions>details+details,.suite-account-actions>details+.suite-protected-account{margin-top:9px}
.suite-delete-details summary{cursor:pointer;color:#d89999;font-size:9.5px}
.suite-delete-confirmation{width:220px;margin-top:7px;padding:9px;border:1px solid rgba(201,120,120,.35);border-radius:6px;background:rgba(201,120,120,.05)}
.suite-delete-confirmation p{margin:0 0 8px;color:var(--suite-secondary);font-size:9px;line-height:1.45}
.suite-delete-confirmation code{color:#efb0b0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.suite-delete-confirmation form{display:grid;gap:6px}
.suite-delete-confirmation input{width:100%}
.suite-danger-button{min-height:30px;padding:6px 9px;border:1px solid rgba(201,120,120,.55);border-radius:6px;background:rgba(201,120,120,.12);color:#efb0b0;font:inherit;font-size:9.5px;font-weight:650;cursor:pointer}
.suite-danger-button:hover{border-color:#c97878;background:rgba(201,120,120,.2)}
.suite-protected-account{display:block;color:var(--suite-muted);font-size:8.5px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
@media(max-width:760px){.suite-access-cell{min-width:440px}.suite-access-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}

/* Visible-but-locked launcher entries. Permissions remain enforced server-side. */
.suite-tool-row.is-access-denied{background:#0b0d0f;border-color:#171b1f;opacity:.5;cursor:not-allowed;filter:saturate(.35)}
.suite-tool-row.is-access-denied .suite-tool-icon{color:#737b83;border-color:#22272c;background:#0a0c0e}
.suite-tool-row.is-access-denied .suite-tool-meta,.suite-tool-row.is-access-denied .suite-lock{color:#7b838c}
.suite-lock{font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
