:root{
  --bg:#f6f7f8;
  --card:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  --line:rgba(17,24,39,.10);
  --accent:#2563eb;

  --topbar:56px;
  --leftW:260px;
--midW: 340px;
    
  --leftCollapsed:52px;

  --radius:14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
small{color:var(--muted)}
button{font-family:inherit}

/* Top bar */
.topbar{
  height:var(--topbar);
  position:sticky; top:0; z-index:10;
  background:rgba(246,247,248,.92);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
  padding:0 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand .title{
  font-weight:780;
  letter-spacing:.2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.iconbtn{
  border:1px solid var(--line);
  background:var(--card);
  padding:9px 12px;
  border-radius:999px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 1px 0 rgba(17,24,39,.03);
}
.iconbtn:active{transform:translateY(1px)}
.search{flex:1;min-width:140px;max-width:520px}
.search input{
  width:100%;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-size:14px;
  outline:none;
}

/* 3-pane layout */
.app{
  height:calc(100vh - var(--topbar));
  display:grid;
  grid-template-columns: var(--leftW) var(--midW) 1fr;
}
.pane{
  min-width:0;
  background:var(--card);
  border-right:1px solid var(--line);
  overflow:hidden;
}
.pane:last-child{border-right:none}

.paneHead{
  padding:12px 12px 10px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.paneHead h2{
  margin:0;
  font-size:13px;
  color:var(--muted);
  font-weight:850;
  letter-spacing:.6px;
  text-transform:uppercase;
}
.scroll{
  height:calc(100% - 48px);
  overflow:auto;
}

/* Lists */
.list{margin:0;padding:0;list-style:none}
.row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 12px; /* dense like Fastmail */
  border-bottom:1px solid rgba(17,24,39,.06);
}
.row:hover{background:rgba(17,24,39,.03)}
.row .primary{font-weight:760; font-size:14px; line-height:1.2}
.row .meta{font-size:12px;color:var(--muted);margin-top:2px}
.row.selected{background:rgba(37,99,235,.10)}
.row.selected .primary{color:#0b3aa4}

.badge{
  font-size:12px;
  padding:4px 9px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(37,99,235,.08);
  color:var(--accent);
  font-weight:850;
  white-space:nowrap;
}
.chev{color:var(--muted);font-size:18px;padding-left:8px}

/* Detail */
.detail{padding:14px}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:14px;
}
.notice{
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(17,24,39,.03);
  padding:10px 12px;
  font-size:14px;
  color:#1f2937;
}
.kv{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:8px 12px;
  font-size:14px;
}
.kv .k{color:var(--muted);font-weight:800}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.btn{
  display:inline-block;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--card);
  font-weight:850;
}
.btn.primary{background:var(--accent);color:#fff;border:none}

/* Collapse left pane to a rail */
.app.left-collapsed{
  grid-template-columns: var(--leftCollapsed) var(--midW) 1fr;
}
.left .label{display:inline}
.app.left-collapsed .left .label{display:none}

/* Slide-over detail on narrower screens */
@media (max-width: 1200px){
  .backdrop{
    position:fixed;
    top:var(--topbar);
    left:0; right:0; bottom:0;
    background:rgba(17,24,39,.28);
    opacity:0;
    pointer-events:none;
    transition:opacity 220ms ease;
    z-index:60;
  }
  .backdrop.open{
    opacity:1;
    pointer-events:auto;
  }

  .detailScreen{
    position:fixed;
    top:var(--topbar);
    right:0;
    bottom:0;
    width:min(520px, 100vw);
    background:var(--bg);
    z-index:70;
    transform:translateX(100%);
    transition:transform 220ms ease;
    display:grid;
    grid-template-rows:52px 1fr;
    box-shadow:-18px 0 40px rgba(0,0,0,.18);
    border-left:1px solid var(--line);
    will-change:transform;
  }
  .detailScreen.open{ transform:translateX(0); }

  .detailScreen .dsTop{
    background:rgba(246,247,248,.92);
    backdrop-filter:saturate(180%) blur(14px);
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 12px;
    gap:10px;
  }
  .detailScreen .dsBody{
    overflow:auto;
    padding:14px;
  }

  .pane.right{display:none}
  body.no-scroll{overflow:hidden}
}

/* Mobile: stack panes (basic fallback) */
@media (max-width: 980px){
  .app{grid-template-columns:1fr}
  .pane{border-right:none}
  .paneHead{position:sticky;top:0;background:var(--card);z-index:5}
}
