/* workspaces.css — five workspace presets driven by body.ws-* class. */

:root { --font-body: 13px; --font-heading: 22px; }

body.font-small  { --font-body: 12px; --font-heading: 20px; }
body.font-normal { --font-body: 13px; --font-heading: 22px; }
body.font-large  { --font-body: 15px; --font-heading: 24px; }

body            { font-size: var(--font-body); }
.h1             { font-size: var(--font-heading); }
body.dense .row { padding: 6px 0; }
body.dense table td { padding: 4px 8px; }

#workspace { display: flex; flex: 1; min-width: 0; height: 100%; }
#main-screen { flex: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
#main-screen #content { flex: 1; overflow-y: auto; padding: 20px 32px 48px 32px; }
body.compact #main-screen #content { padding: 12px 24px 24px 24px; }

#phone-panel { display: none; }
#chat-panel  { display: none; }

body.ws-classic #phone-panel { display: block; order: 1; width: 280px; flex: 0 0 280px; border-right: 0.5px solid var(--border); overflow-y: auto; }
body.ws-classic #main-screen { order: 2; }
body.ws-classic #chat-panel  { display: flex; flex-direction: column; order: 3; width: 320px; flex: 0 0 320px; border-left: 0.5px solid var(--border); overflow: hidden; }

body.ws-mirror #chat-panel  { display: flex; flex-direction: column; order: 1; width: 320px; flex: 0 0 320px; border-right: 0.5px solid var(--border); overflow: hidden; }
body.ws-mirror #main-screen { order: 2; }
body.ws-mirror #phone-panel { display: block; order: 3; width: 280px; flex: 0 0 280px; border-left: 0.5px solid var(--border); overflow-y: auto; }

body.ws-compact #main-screen { width: 100%; transition: margin 0.15s ease; }
body.ws-focus   #main-screen { transition: margin 0.15s ease; }

/* Pane base — when open, slide-out from chosen dock side */
body.ws-compact #chat-panel.open,
body.ws-focus   #chat-panel.open,
body.ws-compact #phone-panel.open,
body.ws-focus   #phone-panel.open {
  display: flex; flex-direction: column;
  position: fixed; top: 0; bottom: 0; width: 320px;
  background: var(--bg); z-index: 70;
}

/* Chat dock variants */
body.chat-dock-left  #chat-panel.open { left: 56px; border-right: 0.5px solid var(--border); box-shadow: 4px 0 16px rgba(0,0,0,0.04); }
body.chat-dock-right #chat-panel.open { right: 0;   border-left:  0.5px solid var(--border); box-shadow: -4px 0 16px rgba(0,0,0,0.04); }
body.chat-dock-floating #chat-panel.open { left: auto; right: 16px; top: 70px; bottom: auto; height: 480px; width: 340px; border: 0.5px solid var(--border); border-radius: 8px; box-shadow: 0 4px 24px rgba(0,0,0,0.08); }

/* Phone dock variants */
body.phone-dock-left  #phone-panel.open { left: 56px; border-right: 0.5px solid var(--border); box-shadow: 4px 0 16px rgba(0,0,0,0.04); }
body.phone-dock-right #phone-panel.open { right: 0;   border-left:  0.5px solid var(--border); box-shadow: -4px 0 16px rgba(0,0,0,0.04); }
body.phone-dock-floating #phone-panel.open { left: auto; right: 16px; bottom: 16px; top: auto; height: 460px; width: 320px; border: 0.5px solid var(--border); border-radius: 8px; box-shadow: 0 4px 24px rgba(0,0,0,0.08); }

/* Push main content so panes don't cover it (only for non-floating docks) */
body.ws-compact.chat-dock-left:has(#chat-panel.open)   #main-screen { margin-left: 320px; }
body.ws-compact.chat-dock-right:has(#chat-panel.open)  #main-screen { margin-right: 320px; }
body.ws-compact.phone-dock-left:has(#phone-panel.open) #main-screen { margin-left: 320px; }
body.ws-compact.phone-dock-right:has(#phone-panel.open) #main-screen { margin-right: 320px; }
body.ws-focus.chat-dock-left:has(#chat-panel.open)     #main-screen { margin-left: 320px; }
body.ws-focus.chat-dock-right:has(#chat-panel.open)    #main-screen { margin-right: 320px; }
body.ws-focus.phone-dock-left:has(#phone-panel.open)   #main-screen { margin-left: 320px; }
body.ws-focus.phone-dock-right:has(#phone-panel.open)  #main-screen { margin-right: 320px; }

body.ws-focus #phone-panel { display: none; }
body.ws-focus #chat-panel  { display: none; }
body.ws-focus #chat-panel.open { display: flex; flex-direction: column; position: fixed; right: 16px; top: 70px; width: 340px; height: 480px; background: var(--bg); border: 0.5px solid var(--border); border-radius: 8px; z-index: 70; box-shadow: 0 4px 24px rgba(0,0,0,0.08); }

body.ws-unified #phone-panel { display: block; order: 1; flex: 1; min-width: 0; border-right: 0.5px solid var(--border); overflow-y: auto; }
body.ws-unified #main-screen { order: 2; flex: 1; }
body.ws-unified #chat-panel  { display: flex; flex-direction: column; order: 3; flex: 1; min-width: 0; border-left: 0.5px solid var(--border); overflow: hidden; }

#chat-panel.collapsed { width: 32px; flex: 0 0 32px; }
#chat-panel.collapsed .chat-body { display: none; }

/* In compact/focus, the floating #webphone container is unused — phone lives inside #phone-panel slot */
body.ws-compact #webphone, body.ws-focus #webphone { display: none !important; }

/* Phone mounted inside #phone-panel slot — kill any stray fixed pill positioning */
#phone-panel #wp { position: static !important; width: 100% !important; height: 100% !important; }
#phone-panel #wp #wp-toggle { display: none !important; }
#phone-panel #wp #wp-panel { position: static !important; width: 100% !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; padding: 16px 18px 24px 18px !important; display: block !important; }

/* Responsive content padding — tighten margins when side panels eat width */
body.ws-classic #main-screen #content,
body.ws-mirror  #main-screen #content,
body.ws-unified #main-screen #content { padding: 16px 20px 32px 20px; }

/* When content area drops below ~720px, switch row layout to wrap and hide low-priority columns.
   Use container queries on #content so it adapts to actual available width, not viewport. */
#main-screen #content { container-type: inline-size; }

@container (max-width: 720px) {
  .row .col-md-hide { display: none !important; }
  .row { flex-wrap: wrap; gap: 4px 12px; }
  .row > [style*="width:140px"],
  .row > [style*="width:120px"] { width: auto !important; flex: 1 1 100px; }
}
@container (max-width: 520px) {
  .row .col-sm-hide { display: none !important; }
  .h1 { font-size: 18px !important; }
}
