.app-shell { height: 100vh; height: 100dvh; min-height: 0; }
.topbar { flex: 0 0 70px; min-height: 70px; }
.viewer-toolbar { flex: 0 0 54px; min-height: 54px; }

@media (max-width: 1180px) {
  body { min-width: 0; }
  .workspace { grid-template-columns: 170px minmax(0, 1fr); }
  .notes-sidebar { display: none; }
  .search-panel { left: 170px; right: 0; }
  .topbar { grid-template-columns: 150px minmax(0, 1fr) auto; padding: 0 14px; }
  .canvas-scroller { padding: 22px; }
  .workspace.pages-collapsed { grid-template-columns: 0 minmax(0, 1fr); }
}

.workspace.pages-collapsed { grid-template-columns: 0 minmax(0, 1fr) 256px; }
.workspace.pages-collapsed .pages-sidebar { padding-left: 0; padding-right: 0; opacity: 0; overflow: hidden; pointer-events: none; border: 0; }
.workspace, .pages-sidebar { transition: grid-template-columns .22s ease, opacity .18s ease, padding .22s ease; }
.sidebar-toggle.active { background: #ded9ce; color: var(--accent); }

@media (max-width: 1180px) {
  .workspace.pages-collapsed { grid-template-columns: 0 minmax(0, 1fr); }
}

.file-trigger { display: inline-flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.course-file-input {
  position: absolute; inset: 0; z-index: 5; width: 100%; height: 100%;
  opacity: .01; cursor: pointer; font-size: 100px; -webkit-appearance: none;
}
.file-pick-status { position: fixed; z-index: 130; left: 50%; bottom: 18px; transform: translateX(-50%); max-width: calc(100vw - 28px); padding: 11px 16px; border-radius: 8px; background: #1f211f; color: #fff; font-size: 13px; text-align: center; box-shadow: 0 8px 25px rgba(0,0,0,.2); }
.file-pick-status[hidden] { display: none; }

@media (max-width: 820px) {
  .topbar { height: 62px; min-height: 62px; flex-basis: 62px; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; }
  .brand { font-size: 18px; }
  .brand-mark { width: 28px; height: 28px; }
  .document-meta { text-align: left; }
  .save-state, .secondary-button, .top-actions .icon-button { display: none; }
  .primary-button { height: 40px; padding: 0 13px; }
  .workspace { grid-template-columns: minmax(0, 1fr); }
  .pages-sidebar { display: none; }
  .search-panel { top: 62px; left: 0; right: 0; flex-wrap: wrap; }
  .search-box, .search-results { width: calc(100% - 36px); }
  .viewer-toolbar { height: auto; min-height: 56px; flex: 0 0 auto; grid-template-columns: minmax(0,1fr) auto; padding: 7px 9px; gap: 6px; }
  .tool-group { overflow-x: auto; padding-bottom: 2px; }
  .page-nav { grid-column: 2; grid-row: 1; }
  .zoom-group { display: none; }
  .canvas-scroller { padding: 12px; justify-content: center; }
  .empty-state { padding: 24px 18px; }
  .empty-state:before { width: 410px; height: 410px; }
  .empty-state:after { width: 240px; height: 300px; }
  .empty-state h1 { font-size: clamp(34px, 9vw, 52px); }
  .empty-state p { margin: 18px 0; }
  .feature-strip { gap: 16px; }
  .drop-zone { display: none; }
  .loading p { font-size: 15px; }
  .toast { width: max-content; max-width: calc(100vw - 32px); text-align: center; }
}

@media (pointer: coarse) {
  button, select, .tool { min-height: 40px; }
  .tool { min-width: 40px; }
  .canvas-scroller { -webkit-overflow-scrolling: touch; touch-action: pan-y; overflow-x: hidden; overflow-y: auto; overscroll-behavior-x: none; }
}

.canvas-scroller { overflow-x: hidden; overflow-y: auto; overscroll-behavior-x: none; }
