.cb-app-shell { min-height: 100vh; background: var(--cb-bg); display: grid; grid-template-columns: 260px minmax(0,1fr); }
.cb-app-nav { position: sticky; top: 0; height: 100vh; background: #111827; color: #fff; display: flex; flex-direction: column; padding: 20px 14px; }
.cb-app-brand { display: grid; grid-template-columns: 42px 1fr auto; gap: 11px; align-items: center; padding: 0 8px 22px; }
.cb-app-brand__mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: #fff; color: #111827; text-decoration: none; font-weight: 800; }
.cb-app-brand strong { display: block; font-size: 13px; }
.cb-app-brand span { display: block; margin-top: 1px; color: #9ca3af; font-size: 12px; }
.cb-app-nav__close { display:none; background:transparent; border:0; color:#fff; font-size:24px; }
.cb-app-menu { flex: 1; overflow-y: auto; }
.cb-app-menu__group { margin-top: 22px; }
.cb-app-menu__label { padding: 0 10px 7px; color: #6b7280; text-transform: uppercase; letter-spacing: .08em; font-size: 10px; font-weight: 800; }
.cb-app-menu__item { display: flex; align-items: center; gap: 10px; min-height: 42px; padding: 0 10px; margin: 2px 0; border-radius: 8px; color: #cbd5e1; text-decoration: none; font-weight: 600; font-size: 14px; }
.cb-app-menu__item span { width: 18px; text-align: center; color: #94a3b8; }
.cb-app-menu__item:hover { background: rgba(255,255,255,.06); color: #fff; }
.cb-app-menu__item.is-active { background: #fff; color: #111827; }
.cb-app-menu__item.is-active span { color: #111827; }
.cb-app-user { border-top: 1px solid rgba(255,255,255,.08); padding: 16px 8px 0; }
.cb-app-user strong, .cb-app-user span { display: block; overflow: hidden; text-overflow: ellipsis; }
.cb-app-user strong { font-size: 13px; }.cb-app-user span { color: #94a3b8; font-size: 11px; }
.cb-app-user a { display: inline-block; margin-top: 9px; color: #cbd5e1; font-size: 12px; }
.cb-app-main { min-width: 0; }
.cb-app-topbar { height: 64px; padding: 0 30px; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--cb-border); display: flex; align-items: center; gap: 16px; position: sticky; top: 0; z-index: 10; backdrop-filter: blur(10px); }
.cb-app-menu-toggle { display:none; border:0; background:transparent; font-size:22px; }
.cb-app-topbar__title { font-weight: 700; }
.cb-app-site-link { margin-left: auto; color: var(--cb-muted); text-decoration: none; font-size: 13px; }
.cb-app-content { width: min(1240px, 100%); margin: 0 auto; padding: 34px 30px 70px; }
.cb-page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.cb-page-head h1 { font-size: clamp(32px, 4vw, 48px); letter-spacing: -.03em; }
.cb-page-head p { max-width: 680px; margin-top: 8px; color: var(--cb-muted); }
.cb-eyebrow { display: block; margin-bottom: 7px; color: var(--cb-accent); text-transform: uppercase; letter-spacing: .09em; font-size: 11px; font-weight: 800; }
.cb-home-placeholder { margin-top: 22px; min-height: 250px; padding: 32px; border-radius: var(--cb-radius-lg); background: linear-gradient(135deg,#fff,#eef2ff); border:1px solid var(--cb-border); display:flex; align-items:flex-end; }
.cb-home-placeholder h2 { font-size: 28px; }.cb-home-placeholder p { margin-top:8px; color:var(--cb-muted); max-width:700px; }
.cb-module-list { display:flex; flex-direction:column; gap:12px; }
.cb-module-card { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px; background:var(--cb-surface); border:1px solid var(--cb-border); border-radius:var(--cb-radius-md); }
.cb-module-card h2 { font-size:19px; }.cb-module-card p { margin-top:6px; color:var(--cb-muted); }.cb-module-card small { display:block; margin-top:8px; color:var(--cb-muted); }
.cb-install-dialog { width:min(560px,calc(100% - 30px)); border:0; border-radius:var(--cb-radius-lg); padding:24px; box-shadow:0 30px 80px rgba(0,0,0,.25); }
.cb-install-dialog::backdrop { background:rgba(17,24,39,.55); }
.cb-install-dialog__head { display:flex; justify-content:space-between; gap:18px; }.cb-install-dialog__head button { border:0; background:transparent; font-size:28px; cursor:pointer; }
.cb-dropzone { min-height:150px; padding:24px; display:grid; place-items:center; text-align:center; border:2px dashed var(--cb-border); border-radius:var(--cb-radius-md); background:var(--cb-bg); cursor:pointer; color:var(--cb-muted); }
.cb-dropzone input { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
@media (max-width:900px) { .cb-app-shell{grid-template-columns:1fr}.cb-app-nav{position:fixed;left:-280px;width:260px;z-index:50;transition:left .2s ease}.cb-app-nav.is-open{left:0}.cb-app-nav__close,.cb-app-menu-toggle{display:block}.cb-app-topbar{padding:0 18px}.cb-app-content{padding:26px 18px 60px} }
@media (max-width:640px) { .cb-page-head,.cb-module-card{flex-direction:column;align-items:stretch}.cb-app-site-link{font-size:0}.cb-app-site-link::after{content:'↗';font-size:18px} }

.cb-app .cb-button,
.cb-app button{
    border-color:#9ca3af;
}
