:root{
  --cc-bg:#0a0e27;
  --cc-panel:rgba(255,255,255,.035);
  --cc-panel-2:rgba(255,255,255,.02);
  --cc-border:rgba(255,255,255,.08);
  --cc-text:#e7eaf3;
  --cc-muted:#a0aec0;
  --cc-accent:#00d4ff;
  --cc-accent2:#00a8cc;
  --cc-sidebar-w:280px;
  --cc-topbar-h:68px;
  --cc-radius:16px;
}

/* Web-first shell */
html, body{
  height:100%;
  background:var(--cc-bg);
  color:var(--cc-text);
}

.cc-shell{
  min-height:100vh;
  display:flex;
  background:var(--cc-bg);
}

.cc-sidebar{
  width:var(--cc-sidebar-w);
  flex:0 0 var(--cc-sidebar-w);
  padding:18px 14px;
  border-right:1px solid var(--cc-border);
  background:linear-gradient(180deg, rgba(255,255,255,.03) 0%, rgba(255,255,255,.015) 70%);
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
}

.cc-brand{
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 10px 16px;
  margin-bottom:10px;
}

.cc-logo{
  width:40px;
  height:40px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, rgba(0,212,255,.28) 0%, rgba(0,168,204,.18) 100%);
  border:1px solid rgba(0,212,255,.22);
  box-shadow:0 14px 40px rgba(0,212,255,.12);
  font-weight:900;
  letter-spacing:.5px;
}

.cc-brand .cc-brand-text{
  line-height:1.1;
}
.cc-brand .cc-brand-text .t{
  font-weight:900;
  font-size:1.05rem;
  letter-spacing:.2px;
}
.cc-brand .cc-brand-text .s{
  color:var(--cc-muted);
  font-size:.78rem;
}

.cc-nav{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:6px;
}

.cc-nav .cc-group{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.06);
}

.cc-nav .cc-group-title{
  color:rgba(255,255,255,.55);
  font-size:.7rem;
  letter-spacing:.12em;
  font-weight:700;
  padding:0 10px 8px;
  text-transform:uppercase;
}

.cc-link{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:14px;
  text-decoration:none;
  color:var(--cc-text);
  border:1px solid transparent;
  background:transparent;
}

.cc-link:hover{
  background:rgba(255,255,255,.04);
  border-color:rgba(0,212,255,.16);
}

.cc-link.active{
  background:rgba(0,212,255,.10);
  border-color:rgba(0,212,255,.28);
  box-shadow:0 0 0 2px rgba(0,212,255,.10) inset;
}

.cc-link .material-symbols-outlined{
  font-size:22px;
  color:rgba(255,255,255,.70);
}
.cc-link.active .material-symbols-outlined{
  color:var(--cc-accent);
}

.cc-link .label{
  font-weight:700;
  font-size:.92rem;
}

.cc-side-footer{
  margin-top:16px;
  padding:12px;
  border-top:1px solid rgba(255,255,255,.06);
  display:flex;
  flex-direction:column;
  gap:10px;
}

.cc-logout{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03);
  color:var(--cc-text);
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-weight:700;
}

.cc-logout:hover{
  border-color:rgba(0,212,255,.22);
  background:rgba(0,212,255,.08);
}

.cc-main{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
}

.cc-topbar{
  height:var(--cc-topbar-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 22px;
  border-bottom:1px solid var(--cc-border);
  background:rgba(10,14,39,.86);
  backdrop-filter:blur(10px);
  position:sticky;
  top:0;
  z-index:50;
}

.cc-title{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.cc-title .h{
  font-weight:900;
  letter-spacing:.2px;
  font-size:1.1rem;
}

.cc-title .sub{
  color:var(--cc-muted);
  font-size:.8rem;
}

.cc-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.cc-iconbtn{
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03);
  color:var(--cc-text);
  display:grid;
  place-items:center;
  position:relative;
}

.cc-iconbtn:hover{
  border-color:rgba(0,212,255,.22);
  background:rgba(0,212,255,.08);
}

.cc-badge{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:18px;
  height:18px;
  padding:0 6px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--cc-accent) 0%, var(--cc-accent2) 100%);
  color:#04101a;
  font-size:.7rem;
  font-weight:900;
  display:grid;
  place-items:center;
  border:1px solid rgba(0,212,255,.20);
}

.cc-userchip{
  display:flex;
  align-items:center;
  gap:10px;
  padding:6px 10px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.02);
}

.cc-avatar{
  width:38px;
  height:38px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, rgba(0,212,255,.18) 0%, rgba(0,168,204,.10) 100%);
  border:1px solid rgba(0,212,255,.18);
  font-weight:900;
  letter-spacing:.4px;
}

.cc-userchip .meta{
  display:flex;
  flex-direction:column;
  line-height:1.1;
}

.cc-userchip .meta .n{
  font-weight:800;
  font-size:.92rem;
}

.cc-userchip .meta .e{
  color:var(--cc-muted);
  font-size:.75rem;
  max-width:260px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cc-content{
  padding:26px 28px;
}

/* Many pages were built for a mobile bottom bar; remove that padding on desktop */
@media (min-width: 992px){
  .applications-page,
  .jobs-page,
  .messages-page,
  .offers-page{
    padding-bottom: 26px !important;
  }
  .bottom-bar{ display:none !important; }
  /* Some pages still include a mobile-only top bar */
  .home-topbar{ display:none !important; }
}

/* If someone narrows the browser, keep it usable (not mobile-perfect, just not broken) */
@media (max-width: 980px){
  :root{ --cc-sidebar-w: 92px; }
  .cc-brand .cc-brand-text{ display:none; }
  .cc-link .label{ display:none; }
  .cc-group-title{ display:none; }
}

@media (max-width: 720px){
  .cc-sidebar{ display:none; }
  .cc-content{ padding:18px 16px; }
}
