:root {
  --bg: #f3f4f7;
  --panel: #ffffff;
  --panel-soft: #f8f8fb;
  --line: #e7e8ed;
  --line-strong: #d9dbe3;
  --text: #181922;
  --text-soft: #555966;
  --muted: #8b8e99;
  --accent: #5b5ce2;
  --accent-hover: #4c4dcc;
  --accent-soft: #eeeeff;
  --danger: #d9485f;
  --success: #2f9b68;
  --sidebar: 300px;
  --player: 66px;
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 24px;
  --space-2xl: 32px;
  --radius-sm: 6px;
  --radius-md: 9px;
  --radius-lg: 12px;
  --radius-pill: 999px;
  --shadow-focus: 0 0 0 3px var(--accent-soft);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--bg);
}

* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; margin:0; }
body { overflow: hidden; background: var(--bg); color: var(--text); font-size: 14px; }
body.route-pending .track-panel { visibility: hidden; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; }
a, select, .project-item, .playlist-item, .nav-item, .track-row:not(.track-row-head), [role="button"] { cursor: pointer; }
[style*="display:none"], [style*="display: none"] { }

.deck {
  position: fixed;
  inset: 8px;
  display: grid;
  grid-template-columns: var(--sidebar) minmax(0, 1fr);
  min-width: 0;
  overflow: hidden;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 18px 55px rgba(31, 35, 50, .08);
}

.mobile-drawer-wrap {
  position: relative; grid-column: 1; grid-row: 1; min-height: 0; height: 100%; display: flex; flex-direction: column;
  overflow: hidden; background: #fafafd; border-right: 1px solid var(--line);
}
.sidebar, .library-panel {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding:var(--space-lg) var(--space-md);
  background: #fafafd;
}
.sidebar { width: 100%; flex: 1 1 auto; min-height: 0; padding-bottom:var(--space-xs); border: 0; }
.library-panel { width: 100%; flex: 0 0 auto; padding:var(--space-xs) var(--space-md) 76px; border: 0; overflow-y: auto; scrollbar-width: thin; }
.hardware-panel-content { display: contents; }
.module-fasteners, .resize-handle { display: none !important; }

.brand { display: flex; align-items: center; gap:var(--space-sm); min-height: 44px; padding:0 var(--space-sm) var(--space-lg); }
.brand-rail-logo { display:block; width:30px; height:30px; object-fit:contain; }

.nav-group { display: flex; flex-direction: column; gap:var(--space-xs); min-height: 0; }
.nav-projects { flex: 1; overflow: hidden; }
.scroll-nav-list { min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #d5d6de transparent; }
.nav-label, .panel-caption, .now-section-label {
  display: flex; align-items: center; justify-content: space-between;
  padding:var(--space-sm) var(--space-sm) var(--space-sm); color: var(--muted); font-size: 11px;
  font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.nav-item, .project-item, .playlist-item, .no-project-item {
  position: relative; width: 100%; min-height: 36px; display: flex; align-items: center;
  gap:var(--space-sm); padding:var(--space-sm) var(--space-sm); margin:var(--space-xs) 0; border: 0; border-radius:var(--radius-md);
  background: transparent; color: var(--text-soft); text-align: left; font-size: 13px;
  font-weight: 500; line-height: 1.25;
}
.nav-item:hover, .project-item:hover, .playlist-item:hover, .no-project-item:hover { background: #f0f1f5; color: var(--text); }
.nav-item.active, .project-item.active, .playlist-item.active, .no-project-item.active { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.project-item { position: relative; padding-left: 38px; }
.project-item-child { margin-left: calc(var(--project-depth, 1) * 18px); width: calc(100% - (var(--project-depth, 1) * 18px)); }
.project-item.dragging { opacity: .35; }
.project-item.drop-before { box-shadow: inset 0 2px var(--accent); }
.project-item.drop-after { box-shadow: inset 0 -2px var(--accent); }
.project-item.drop-inside { outline: 2px solid var(--accent); background: var(--accent-soft); }
.project-menu-btn { position: absolute; left: 8px; top: 50%; transform: translateY(-50%); width: 25px; height: 25px; border: 0; border-radius:var(--radius-sm); background: transparent; color: var(--muted); font-size: 16px; }
.project-menu-btn:hover { background: #e9eaf0; color: var(--text); }
.project-thumb, .home-thumb { display: grid; place-items: center; overflow: hidden; flex: 0 0 auto; border-radius:var(--radius-sm); background: var(--accent-soft); color: var(--accent); font-size: 10px; font-weight: 700; }
.project-thumb { width: 32px; height: 32px; }
.project-thumb img, .home-thumb img { width: 100%; height: 100%; object-fit: cover; }
.auto-cover { position: relative; width: 100%; height: 100%; display: block; overflow: hidden; background: #6869ea; }
.auto-cover i, .auto-cover b { position: absolute; display: block; border-radius:var(--radius-pill); background: rgba(255,255,255,.36); transform: rotate(-24deg); }
.auto-cover i { width: 80%; height: 26%; left: -18%; top: 18%; }
.auto-cover b { width: 65%; height: 65%; right: -25%; bottom: -28%; border: 2px solid rgba(255,255,255,.5); background: transparent; }
.auto-cover-0 { background: linear-gradient(145deg,#24264c,#6466e8 60%,#ef9b77); }
.auto-cover-1 { background: linear-gradient(145deg,#112e3b,#319e9b 58%,#f1c768); }
.auto-cover-2 { background: linear-gradient(145deg,#3c173f,#b64d8b 60%,#f1ad86); }
.auto-cover-3 { background: linear-gradient(145deg,#142445,#3974d8 55%,#79d5d1); }
.auto-cover-4 { background: linear-gradient(145deg,#403113,#c68c36 55%,#f2d69c); }
.auto-cover-5 { background: linear-gradient(145deg,#271c43,#7454c7 55%,#e597ba); }
.auto-cover-6 { background: linear-gradient(145deg,#21372e,#4b9e72 55%,#c8dc84); }
.auto-cover-7 { background: linear-gradient(145deg,#3e2221,#c25145 56%,#eda271); }
.auto-cover-8 { background: linear-gradient(145deg,#17253a,#536d96 55%,#d9b7a0); }
.auto-cover-9 { background: linear-gradient(145deg,#39213d,#8e609b 55%,#73b8c8); }
.auto-cover-10 { background: linear-gradient(145deg,#182f31,#337d80 55%,#e9b36b); }
.auto-cover-11 { background: linear-gradient(145deg,#252525,#6d6d6d 55%,#d9c097); }
.auto-cover-1 i,.auto-cover-4 i,.auto-cover-7 i,.auto-cover-10 i { width: 32%; height: 120%; left: 33%; top: -10%; border-radius:var(--radius-sm); }
.auto-cover-2 b,.auto-cover-5 b,.auto-cover-8 b,.auto-cover-11 b { width: 80%; height: 18%; right: -8%; bottom: 18%; border: 0; background: rgba(255,255,255,.35); }
.project-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-protected-dot { display: inline-block; width: 6px; height: 6px; margin-left:var(--space-xs); border-radius: 50%; background: #e5a22e; }
.project-action-menu { position: fixed; z-index: 120; min-width: 205px; padding:var(--space-xs); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; box-shadow: 0 14px 35px rgba(22,25,36,.16); }
.project-action-menu button { padding:var(--space-sm) var(--space-sm); border: 0; border-radius:var(--radius-sm); background: transparent; color: var(--text-soft); text-align: left; font-size: 10px; }
.project-action-menu button:hover:not(:disabled) { background: var(--panel-soft); color: var(--text); }
.project-action-menu button:disabled { color: #b5b7c0; }
.project-row-right { display: flex; align-items: center; gap:var(--space-xs); margin-left: auto; }
.project-quick-toggle, .project-toggle-placeholder { width: 23px; height: 23px; flex: 0 0 23px; }
.project-quick-toggle { display: grid; place-items: center; padding:0; border: 1px solid #dedff0; border-radius:var(--radius-sm); background: #fff; color: var(--accent); font-size: 15px; font-weight: 600; line-height: 1; box-shadow: 0 1px 3px rgba(28,31,44,.05); }
.project-quick-toggle:hover { border-color: #c8c9ee; background: var(--accent-soft); }
.project-toggle-btn, .project-toggle-spacer { width: 14px; padding:0; border: 0; background: none; color: var(--muted); }
.project-row-right { display: flex; align-items: center; gap:var(--space-xs); margin-left: auto; }
.project-count { color: var(--muted); font-size: 10px; }
.project-lock-btn, .project-nest-btn, .project-description-btn {
  width: 22px; height: 22px; padding:0; border: 0; border-radius:var(--radius-sm);
  background: transparent; color: var(--muted); opacity: 0;
}
.project-item:hover .project-lock-btn, .project-item:hover .project-nest-btn,
.project-item:hover .project-description-btn { opacity: 1; }
.project-lock-btn:hover, .project-nest-btn:hover, .project-description-btn:hover { background: #e7e8ee; color: var(--text); }
.sidebar-footer { display: flex; align-items: center; gap:var(--space-sm); padding:var(--space-md) var(--space-sm) 0; }
.logout-link { color: var(--muted); font-size: 11px; text-decoration: none; }
.logout-link:hover { color: var(--text); }
.version-link { margin-left: auto; padding:0; border: 0; background: none; color: var(--accent); font-size: 9px; font-weight: 700; }
.version-link:hover { text-decoration: underline; }

.library-controls { flex: 0 0 auto; }
.nav-playlists { flex: 0 0 auto; height: 116px; margin-top: 0; padding-top:var(--space-xs); border-top: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #d5d6de transparent; }
.nav-playlists-empty { padding:var(--space-sm) var(--space-sm); color: var(--muted); font-size: 12px; }
.work-navigation { flex: 0 0 auto; margin-top: 0; padding-top:var(--space-xs); border-top: 0; }
.work-nav-item { justify-content: space-between; }
.nav-count-badge { display: grid; min-width: 19px; height: 19px; padding:0 var(--space-xs); place-items: center; border-radius:var(--radius-md); background: var(--accent-soft); color: var(--accent); font-size: 8px; font-weight: 700; }
.library-controls .nav-item,
.nav-playlists .playlist-item { width: calc(100% - 18px); margin-left:var(--space-sm); margin-right:var(--space-sm); }
.nav-icon { display: inline-grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; color: var(--muted); font-size: 19px; }
.nav-item.active .nav-icon { color: var(--accent); }
.library-controls .nav-item, .nav-playlists .playlist-item, .work-nav-item { min-height: 30px; gap:var(--space-sm); padding:var(--space-xs) var(--space-sm); margin:0; }
.work-nav-item > span:first-child { display: flex; align-items: center; gap:var(--space-sm); }
.request-nav-icon { position: relative; width: 23px; height: 18px; margin:0 var(--space-xs); border: 1.7px solid currentColor; border-radius:var(--radius-sm); }
.request-nav-icon::before { content: ""; position: absolute; left: 5px; top: -5px; width: 7px; height: 5px; border: 1.7px solid currentColor; border-bottom: 0; border-radius:var(--radius-sm) 3px 0 0; }
.request-nav-icon::after { content: ""; position: absolute; left: 7px; top: 6px; width: 4px; height: 2px; border-radius:var(--radius-sm); background: currentColor; }
#newPlaylistBtn { width: 23px; height: 23px; border: 0; border-radius:var(--radius-sm); background: transparent; color: var(--muted); }
#newPlaylistBtn:hover { background: #ececf1; color: var(--text); }
.nav-add-btn { width: 23px; height: 23px; padding:0; border: 0; border-radius:var(--radius-sm); background: transparent; color: var(--muted); font-size: 15px; }
.nav-add-btn:hover { background: #ececf1; color: var(--text); }
.now-playing-compact {
  flex: 0 0 auto; margin:var(--space-md) 0 var(--space-sm); padding:var(--space-md);
  border: 1px solid var(--line); border-radius:var(--radius-lg); background: var(--panel);
}
.now-playing-compact { display: none !important; }
.npc-display-top, .tools-caption { display: none; }
.npc-row { display: flex; align-items: flex-start; gap:var(--space-sm); }
.npc-info { min-width: 0; flex: 1; }
.npc-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-size: 12px; font-weight: 600; }
.npc-artist, .npc-project { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top:var(--space-xs); color: var(--muted); font-size: 10px; }
.npc-menu-wrap { position: relative; }
.npc-menu {
  position: fixed; z-index: 130; min-width: 150px;
  padding:var(--space-xs); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff;
  box-shadow: 0 12px 30px rgba(25, 28, 40, .14);
}
.npc-menu button { width: 100%; padding:var(--space-sm) var(--space-sm); border: 0; border-radius:var(--radius-sm); background: none; text-align: left; color: var(--text-soft); font-size: 11px; }
.npc-menu button:hover { background: var(--panel-soft); color: var(--text); }
.npc-progress { display: grid; grid-template-columns: 30px 1fr 30px; align-items: center; gap:var(--space-xs); margin-top:var(--space-sm); color: var(--muted); font-size: 9px; }
.npc-progress-track { height: 3px; overflow: hidden; border-radius:var(--radius-sm); background: #e9eaf0; }
#npcProgressFill { display: block; width: 0; height: 100%; background: var(--accent); }
.library-panel-actions { display: none!important; }
.library-panel-actions .btn { min-width: 0; padding:0 var(--space-sm); }
.library-panel-actions .btn span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.system-status { display: none!important; }
.system-status span { display: none; }
.system-status i { width: 6px; height: 6px; border-radius: 50%; background: #43b67a; box-shadow: 0 0 0 3px #e2f5e9; }
.sidebar-footer { display: none!important; }
.creator-profile-card { position: fixed; left: 9px; bottom: 9px; z-index: 33; width: calc(var(--sidebar) - 1px); height: var(--player); min-height: var(--player); display: flex; align-items: center; gap:var(--space-sm); padding:var(--space-sm) var(--space-md); border: 1px solid var(--line); border-radius: 0 0 0 16px; background: #fff; color: var(--text); text-align: left; }
.creator-profile-card:hover { background: #fafafd; }
.creator-avatar { position: relative; display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: var(--accent); color: #fff; font-weight: 700; }
.creator-avatar i { position: absolute; right: 0; bottom: 0; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: #43b67a; }
.creator-profile-copy { display: grid; gap:var(--space-xs); min-width: 0; flex: 1; }
.creator-profile-copy strong { font-size: 11px; }
.creator-profile-copy small { color: var(--muted); font-size: 9px; }
.creator-profile-chevron { color: var(--muted); }
.creator-profile-menu { position: fixed; left: 12px; bottom: calc(var(--player) + 13px); z-index: 121; width: calc(var(--sidebar) - 8px); padding:var(--space-xs); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; box-shadow: 0 14px 35px rgba(22,25,36,.16); }
.creator-profile-menu button, .creator-profile-menu a { width: 100%; display: flex; justify-content: space-between; padding:var(--space-sm); border: 0; border-radius:var(--radius-sm); background: none; color: var(--text-soft); text-decoration:none; text-align: left; font-size: 11px; }
.creator-profile-menu button:hover:not(:disabled), .creator-profile-menu a:hover { background: var(--panel-soft); color: var(--text); }
.creator-profile-menu small { color: var(--muted); font-size: 8px; }

.main { grid-column: 2; grid-row: 1; width: 100%; min-width: 0; min-height: 0; display: grid; grid-template-rows: 70px minmax(0, 1fr); padding-bottom: var(--player); background: var(--panel); }
body.no-transport .main { padding-bottom: 0; }
.topbar { display: flex; align-items: center; gap:var(--space-md); padding:var(--space-md) var(--space-xl); border-bottom: 1px solid var(--line); }
.notification-wrap { position: relative; flex: 0 0 auto; }
.notification-btn { position: relative; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; color: var(--text-soft); font-size: 15px; cursor: pointer; }
.notification-btn:hover { background: var(--panel-soft); color: var(--accent); }
.notification-btn > span { position: absolute; right: -5px; top: -6px; min-width: 17px; height: 17px; padding:0 var(--space-xs); border: 2px solid #fff; border-radius:var(--radius-md); background: #ef596f; color: #fff; font-size: 8px; font-weight: 700; line-height: 13px; text-align: center; }
.notification-panel { position: absolute; left: 0; top: 45px; z-index: 140; width: min(390px, calc(100vw - 30px)); max-height: 480px; overflow: auto; padding:var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fff; box-shadow: 0 20px 55px rgba(25,28,40,.18); }
.notification-head { display: flex; align-items: center; justify-content: space-between; padding:var(--space-sm) var(--space-md); border-bottom: 1px solid var(--line); }
.notification-head strong { font-size: 13px; }
.notification-head span { color: var(--accent); font-size: 9px; font-weight: 700; }
.notification-item { display: flex; align-items: center; justify-content: space-between; gap:var(--space-sm); width: 100%; padding:var(--space-md); border: 0; border-radius:var(--radius-md); background: transparent; text-align: left; cursor: pointer; }
.notification-item:hover, .notification-item.is-new { background: var(--accent-soft); }
.notification-item span { min-width: 0; display: grid; gap:var(--space-xs); }
.notification-item strong, .notification-item small, .notification-item time { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notification-item strong { color: var(--text); font-size: 11px; }
.notification-item small { color: var(--text-soft); font-size: 10px; }
.notification-item time { color: var(--muted); font-size: 8px; }
.notification-item b { color: var(--accent); }
.notification-empty { padding:var(--space-xl) var(--space-md); color: var(--muted); font-size: 10px; text-align: center; }
.desktop-menu-bar { position: relative; display: flex; align-items: center; gap:var(--space-xs); }
.desktop-menu-trigger { padding:var(--space-sm) var(--space-sm); border: 0; border-radius:var(--radius-sm); background: transparent; color: var(--text-soft); font-size: 11px; }
.desktop-menu-trigger:hover:not(:disabled), .desktop-menu-trigger[aria-expanded="true"] { background: var(--panel-soft); color: var(--text); }
.desktop-menu-trigger:disabled { opacity: 1; cursor: default; }
.desktop-file-menu { position: absolute; left: 0; top: 38px; z-index: 125; min-width: 210px; padding:var(--space-xs); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; box-shadow: 0 18px 45px rgba(25,28,40,.16); }
.desktop-file-menu button, .desktop-file-menu a { width: 100%; display: flex; align-items: center; justify-content: space-between; padding:var(--space-sm) var(--space-sm); border: 0; border-radius:var(--radius-sm); background: transparent; color: var(--text-soft); text-decoration: none; text-align: left; font-size: 12px; }
.desktop-file-menu button:hover, .desktop-file-menu a:hover { background: var(--panel-soft); color: var(--text); }
.desktop-file-menu small { color: var(--muted); font-size: 8px; }
.desktop-view-menu { left: 44px; }
.desktop-help-menu { left: 91px; }
.menu-separator { display: block; height: 1px; margin:var(--space-xs) var(--space-xs); background: var(--line); }
.hamburger-btn { display: none; width: 36px; height: 36px; border: 0; border-radius:var(--radius-md); background: var(--panel-soft); color: var(--text-soft); }
.home-btn { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; color: var(--text-soft); font-size: 18px; }
.home-btn:hover { border-color: #ccccf1; background: var(--accent-soft); color: var(--accent); }
.search-wrap { flex: 1; min-width: 160px; display: flex; align-items: center; gap:var(--space-sm); height: 42px; padding:0 var(--space-md); border: 1px solid transparent; border-radius:var(--radius-md); background: #f4f5f7; }
.search-wrap:focus-within { border-color: #cacaef; background: #fff; box-shadow:var(--shadow-focus); }
.search-icon { color: var(--muted); font-size: 12px; }
.search-wrap input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); }
.search-wrap input::placeholder { color: #9a9da7; }
.top-control { display: grid; gap:var(--space-xs); color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; }
.rating-control { display: none; }
.top-add-btn { height: 38px; padding:0 var(--space-lg); white-space: nowrap; }
.top-feedback-btn { height: 38px; padding:0 var(--space-lg); white-space: nowrap; border: 1px solid var(--line); background: #fff; color: var(--text); font-weight: 650; box-shadow: 0 4px 14px rgba(30, 32, 50, .06); }
.top-feedback-btn:hover { color: var(--accent); border-color: #cfd0f4; background: #fff; }
.top-utility-btn { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-sm); height:38px; padding:0 var(--space-md); white-space:nowrap; border:1px solid var(--line); background:#fff; color:var(--text); text-decoration:none; font-weight:650; box-shadow:0 4px 14px rgba(30,32,50,.06); }
.top-utility-btn:hover { color:var(--accent); border-color:#cfd0f4; background:#fff; }
.top-utility-btn span { color:var(--accent); font-size:14px; line-height:1; }
.top-utility-btn b { font:inherit; }
.sort-select { height: 34px; min-width: 120px; padding:0 var(--space-xl) 0 var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); outline: 0; background: #fff; color: var(--text-soft); font-size: 11px; }
.content-row { min-height: 0; overflow: hidden; }
.track-panel { height: 100%; padding: var(--space-xl) var(--space-xl) calc(var(--player) + 24px) var(--space-xl); overflow: auto; background: #fff; }
body.no-transport .track-panel { padding-bottom:var(--space-xl); }
.track-panel-header { display: flex; align-items: baseline; gap:var(--space-sm); margin-bottom:var(--space-lg); }
.track-panel-header h2 { margin:0; color: var(--text); font-size: 22px; line-height: 1.2; letter-spacing: -.55px; }
.track-count { color: var(--muted); font-size: 11px; }
.project-description-row { display: flex; align-items: center; justify-content: space-between; gap:var(--space-md); margin: -6px 0 16px; padding:var(--space-sm) var(--space-md); border-radius:var(--radius-md); background: var(--panel-soft); color: var(--text-soft); }
.project-description-text { line-height: 1.5; }
.bulk-bar { position:sticky; top:8px; z-index:70; align-items: center; justify-content: space-between; gap:var(--space-sm); margin-bottom:var(--space-md); padding:var(--space-sm) var(--space-md); border: 1px solid #dcdcf6; border-radius:var(--radius-md); background:var(--accent-soft); color:var(--accent); box-shadow:0 8px 24px rgba(67,68,145,.12); }
.bulk-bar-actions { display: flex; gap:var(--space-sm); }
.requests-workspace { min-width: 0; }
.requests-toolbar { display: flex; align-items: center; justify-content: space-between; gap:var(--space-lg); margin-bottom:var(--space-md); padding:var(--space-md) var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fafafd; }
.requests-toolbar > div { display: grid; gap:var(--space-xs); }
.requests-toolbar strong { font-size: 12px; }
.requests-toolbar span { color: var(--muted); font-size: 10px; }
.requests-toolbar select { min-width: 160px; padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; color: var(--text-soft); font-size: 10px; }
.requests-workspace-list { display: grid; gap:var(--space-sm); }
.workspace-request { display: grid; grid-template-columns: minmax(180px,1.4fr) minmax(150px,1fr) 125px 105px 35px; gap:var(--space-md); align-items: center; padding:var(--space-lg) var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fff; }
.workspace-request:hover { border-color: #d8d8f2; box-shadow: 0 7px 20px rgba(25,28,40,.05); }
.workspace-request-song { display: grid; gap:var(--space-xs); min-width: 0; }
.workspace-request-song strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.workspace-request-song span, .workspace-request-detail span { color: var(--muted); font-size: 9px; }
.workspace-request-detail { display: grid; gap:var(--space-xs); }
.workspace-request-detail strong { font-size: 10px; }
.offer-note { margin:var(--space-sm) 0 0; padding:var(--space-sm); border-radius:var(--radius-sm); background: #f4f4fb; color: var(--text-soft); font-size: 9px; line-height: 1.45; }
.workspace-request-status { padding:var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; color: var(--text-soft); font-size: 9px; }
.workspace-request-action { display: grid; gap:var(--space-xs); justify-items: stretch; color: var(--accent); font-size: 8px; font-weight: 600; text-align: center; }
.workspace-request-action button { padding:var(--space-xs) var(--space-sm); border: 1px solid #ccccf1; border-radius:var(--radius-sm); background: var(--accent-soft); color: var(--accent); font-size: 8px; font-weight: 600; }
.workspace-request-action button:hover { background: #e3e3ff; }
.workspace-request-action .view-request-song { border-color: var(--line); background: #fff; color: var(--text-soft); }
.workspace-request-action small { color: var(--success); }
.workspace-open-song { width: 32px; height: 32px; border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; color: var(--accent); }
.requests-workspace-empty { padding:46px var(--space-lg); border: 1px dashed var(--line); border-radius:var(--radius-lg); color: var(--muted); text-align: center; }

.track-table { min-width: 760px; overflow: hidden; border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fff; }
.track-row {
  display: grid;
  grid-template-columns: 34px 104px minmax(248px, 1fr) 120px 210px 104px 62px 96px 38px 38px;
  align-items: center; min-height: 64px; border-bottom: 1px solid #f0f0f3; background: #fff; color: var(--text-soft);
}
.track-row:last-child { border-bottom: 0; }
.track-row:not(.track-row-head) { cursor: pointer; }
.track-row:not(.track-row-head):hover { background: #f8f8fb; }
.track-row.playing { background: var(--accent-soft); }
.track-row.selected { background: #f3f3ff; }
.track-row.linked-highlight { animation: linked-highlight 2.6s ease; }
.version-comment.linked-highlight { animation: linked-highlight 2.6s ease; border-radius:var(--radius-md); }
@keyframes linked-highlight { 0%,55% { background: #e8e8ff; box-shadow: inset 3px 0 var(--accent); } 100% { background: #fff; box-shadow: none; } }
.track-row-head { min-height: 38px; background: #fafafd; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .07em; }
.col { min-width: 0; padding:0 var(--space-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.col-title { position: relative; padding-right:var(--space-md); color: var(--text); font-size: 13px; font-weight: 600; }
.inline-title-text { display: inline-flex; align-items: center; cursor: text; border-radius:var(--radius-sm); padding:var(--space-xs) var(--space-xs); margin: -1px -4px; max-width: 100%; }
.inline-title-text:hover { background: var(--accent-soft); }
.col-title.editing-title { overflow: visible; white-space: normal; position: relative; z-index: 5; }
.inline-title-input { font: inherit; font-weight: inherit; color: inherit; width: 100%; min-width: 140px; padding:var(--space-xs) var(--space-xs); margin: -1px -4px; border: 1px solid var(--accent); border-radius:var(--radius-sm); background: #fff; }
.song-artwork { float: left; width: 42px; height: 42px; margin: -3px 11px -3px 0; overflow: hidden; border-radius:var(--radius-md); box-shadow: 0 2px 7px rgba(25,28,40,.09); }
.song-artwork img { width: 100%; height: 100%; object-fit: cover; }
.song-artwork .auto-cover { border-radius:var(--radius-md); }
.song-version-subtitle { margin-top:var(--space-xs); color: var(--muted); font-size: 10px; font-weight: 400; }
.parent-song-meta{display:flex;align-items:center;gap:var(--space-sm);color:var(--muted);font-size:10px;font-weight:400}
.song-row-actions { position: absolute; top: 50%; right: 8px; display: flex; gap:var(--space-xs); transform: translateY(-50%); opacity: .15; transition: opacity .15s; }
.track-action-menu { position: fixed; z-index: 130; display: grid; min-width: 170px; padding:var(--space-xs); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; box-shadow: 0 14px 35px rgba(22,25,36,.16); }
.col-menu { overflow: visible; }
.track-action-menu button { padding:var(--space-sm) var(--space-sm); border: 0; border-radius:var(--radius-sm); background: transparent; color: var(--text-soft); text-align: left; font-size: 12px; }
.track-action-menu button:hover { background: var(--panel-soft); color: var(--text); }
.add-version-btn, .add-request-btn { min-height: 27px; padding:0 var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-sm); background: #fff; color: var(--accent); font-size: 9px; font-weight: 600; }
.track-row:hover .song-row-actions, .song-row-actions:focus-within { opacity: 1; }
.add-version-btn:hover, .add-request-btn:hover { border-color: #ccccf1; background: var(--accent-soft); }
.song-request-chips { display: flex; flex-wrap: wrap; gap:var(--space-xs); margin-top:var(--space-xs); }
.song-request-chip { padding:var(--space-xs) var(--space-xs); border-radius:var(--radius-md); background: #f0f0ff; color: var(--accent); font-size: 8px; font-weight: 600; }
.song-request-chip.status-draft, .song-request-chip.status-paused { background: #f2f3f6; color: var(--muted); }
.col-studio, .col-project, .col-duration, .col-num { font-size: 12px; }
.col-studio{display:grid;place-items:center;padding:0 var(--space-xs)}
.col-num, .col-duration { color: var(--muted); font-variant-numeric: tabular-nums; }
.col-num { position: relative; display: flex; align-items: center; gap:var(--space-xs); height: 100%; padding:0 var(--space-xs) 0 var(--space-sm); }
.track-number { width: 24px; flex: 0 0 24px; text-align: center; transition: opacity .12s; }
.song-row-leading-actions { display:inline-flex; align-items:center; gap:var(--space-xs); }
.row-play-btn, .row-record-along-btn { display: grid; place-items: center; width: 32px; height: 32px; flex:0 0 32px; padding:0; border: 1px solid var(--line-strong); border-radius: 50%; background: #fff; color: var(--accent); cursor:pointer; }
.row-play-btn { padding-left:2px; font-size: 9px; opacity:1; transform:none; transition:background .12s,border-color .12s,color .12s; }
.row-record-along-btn .ui-icon { width:16px; height:16px; }
.row-play-btn:focus-visible, .row-record-along-btn:focus-visible { outline:none; box-shadow:var(--shadow-focus); }
.row-play-btn:hover { border-color: #c6c7f1; background: var(--accent-soft); }
.row-record-along-btn:hover { border-color:#c6c7f1; background:var(--accent-soft); }
.track-row.playing .row-play-btn { opacity: 1; background: var(--accent); border-color: var(--accent); color: #fff; }
.track-row.playing .track-number { opacity: 1; }
.col-check { display: grid; place-items: center; padding:0; }
.col-check input { accent-color: var(--accent); }
.mobile-artist { display: none; }
.sortable-header { cursor: pointer; }
.sortable-header:hover { color: var(--text); }
.sortable-header::after { content: "\2195"; margin-left:var(--space-xs); color: #c3c5cf; font-size: 10px; }
.sortable-header.sort-asc::after { content: "\2191"; color: var(--accent); }
.sortable-header.sort-desc::after { content: "\2193"; color: var(--accent); }
.sort-indicator { margin-left:var(--space-xs); color: var(--accent); }
.song-group-header { display: flex; align-items: center; gap:var(--space-sm); min-height: 43px; padding:0 var(--space-lg); border-bottom: 1px solid var(--line); background: #f7f7fb; }
.song-group-header strong { font-size: 12px; }
.song-group-header span:last-child { margin-left: auto; color: var(--muted); font-size: 10px; }
.song-group-icon { color: var(--accent); font-size: 15px; }
.version-row { min-height: 54px; background: #fdfdff; }
.version-row .col-title { padding-left: 42px; color: var(--text-soft); font-weight: 500; }
.song-parent-row { background: #fbfbff; cursor: pointer; }
.song-parent-row .col-title { font-weight: 700; }
.song-parent-row .track-number { color: var(--text-soft); }
.song-parent-empty { color: var(--muted); }
.song-expand-btn { width: 24px; height: 24px; margin-right:var(--space-sm); padding:0; border: 0; border-radius:var(--radius-sm); background: var(--accent-soft); color: var(--accent); font-size: 15px; }
.song-expand-placeholder { display: inline-block; width: 24px; height: 24px; margin-right:var(--space-sm); vertical-align: middle; }
.primary-badge { display: inline-flex; margin-left:var(--space-sm); padding:var(--space-xs) var(--space-xs); border-radius:var(--radius-pill); background: #e5f6ea; color: #267c4d; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.version-badge, .badge-needs { display: inline-flex; margin-left:var(--space-sm); padding:var(--space-xs) var(--space-xs); border-radius:var(--radius-pill); background: var(--accent-soft); color: var(--accent); font-size: 9px; font-weight: 600; }
.version-row-badges { display:inline-flex;align-items:center;gap:var(--space-xs); }
.version-row-badges .version-badge,.version-row-badges .primary-badge,.version-row-badges .badge-needs{margin-left:var(--space-xs)}
.badge-needs { background: #fff3d8; color: #a46a00; }
.lyrics-flag { display: inline-flex; margin-left:var(--space-xs); color: var(--muted); font-size: 11px; vertical-align: middle; }
.empty-state { padding:70px var(--space-lg); color: var(--muted); text-align: center; }

.btn, .btn-icon { border: 0; }
.btn { min-height: 36px; padding:0 var(--space-md); border-radius:var(--radius-md); font-size: 11px; font-weight: 600; }
.btn-solid { background: var(--accent); color: #fff; box-shadow: 0 5px 12px rgba(91, 92, 226, .18); }
.btn-solid:hover { background: var(--accent-hover); }
.btn-ghost { border: 1px solid var(--line); background: #fff; color: var(--text-soft); }
.btn-ghost:hover { border-color: var(--line-strong); background: var(--panel-soft); color: var(--text); }
.btn-danger { color: var(--danger); }
.btn-icon { display: grid; place-items: center; width: 28px; height: 28px; padding:0; border-radius:var(--radius-sm); background: transparent; color: var(--muted); }
.btn-icon:hover { background: #ececf1; color: var(--text); }
.row-fav-btn.active, .heart-btn.active { color: #e35e7a; }
.row-comment-btn { position:relative; display:inline-flex; align-items:center; gap:var(--space-xs); padding:var(--space-xs) var(--space-xs); border:0; border-radius:var(--radius-sm); background:transparent; color:var(--muted); font-size:13px; }
.row-comment-btn:hover { background:var(--accent-soft); color:var(--accent); }
.row-comment-btn span { font-size:9px; font-weight:700; }
.row-comment-btn.has-new { background:var(--accent-soft); color:var(--accent); }
.row-comment-btn.has-new::after { content:""; position:absolute; right:2px; top:2px; width:5px; height:5px; border-radius:50%; background:#ef596f; }
.star-row { display: flex; gap:var(--space-xs); }
.star { color: #d9dae0; cursor: pointer; font-size: 12px; }
.star.filled { color: #efad3e; }
.status-pill { display: inline-flex; padding:var(--space-xs) var(--space-sm); border-radius:var(--radius-pill); background: #f0f1f4; color: #656976; font-size: 9px; font-weight: 600; text-transform: capitalize; }
.status-pill.status-demo { background: #ececff; color: #5758d6; }
.status-pill.status-wip { background: #fff1dc; color: #a66706; }
.status-pill.status-final { background: #e4f6e9; color: #26814e; }
.status-pill.status-idea { background: #f0f1f4; color: #656976; }
.tool-icon { margin-right:var(--space-xs); color: var(--muted); }

.transport {
  position: fixed; left: calc(8px + var(--sidebar)); right: 8px; bottom: 8px; width: auto; height: var(--player); transform: none;
  display: block; overflow: hidden; border: 1px solid var(--line); border-radius: 0 0 16px 0;
  background: #fff; box-shadow: 0 -8px 28px rgba(31, 35, 50, .05); z-index: 30;
}
.transport-module { background: transparent; }
.transport-controls { width: min(920px,100%); min-width: 0; height: 100%; display: grid; grid-template-columns: auto minmax(220px, 1fr) 130px; align-items: center; justify-content: center; gap:var(--space-lg); margin: 0 auto; padding:var(--space-sm) var(--space-xl); }
.meter-module, .monitor-module, .legacy-transport-meta, .module-title, .tbtn-label { display: none; }
@media (min-width:901px) {
  .transport{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .transport-controls{width:100%;margin:0}
  .legacy-transport-meta{display:flex;align-items:center;gap:var(--space-xs);min-width:72px;height:100%;padding:0 var(--space-md);border-left:0;background:transparent}
  .legacy-transport-meta .transport-track-info{display:none}
  .transport-track-info{display:grid;gap:var(--space-xs);min-width:0;flex:1}
  .bar-title{overflow:hidden;color:var(--text);font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
  .bar-artist-row{min-width:0}.bar-artist{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
}
.transport-buttons { display: flex; align-items: center; justify-content: center; gap:var(--space-sm); }
.transport-btn-group, .tbtn-slot { display: contents; }
.tbtn { display: grid; place-items: center; width: 31px; height: 31px; padding:0; border: 0; border-radius: 50%; background: #f2f3f6; color: var(--text-soft); }
.tbtn:hover { background: #e9eaf0; color: var(--text); }
.tbtn-main { width: 40px; height: 40px; background: var(--accent); color: #fff; box-shadow: 0 6px 16px rgba(91, 92, 226, .24); }
.tbtn-main:hover { background: var(--accent-hover); color: #fff; }
.tbtn-small { font-size: 14px; }
.tbtn-pill { width: 48px; border-radius:var(--radius-md); font-size: 9px; font-weight: 700; letter-spacing: .05em; }
.tbtn.active { background: var(--accent-soft); color: var(--accent); }
.seek-row { display: grid; grid-template-columns: 38px minmax(180px, 1fr) 38px; align-items: center; gap:var(--space-sm); width: 100%; color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.seek-row input[type="range"] { width: 100%; accent-color: var(--accent); }
.transport-volume { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap:var(--space-sm); }
.transport-volume input { width: 100%; min-width: 0; accent-color: var(--accent); }
.transport-volume .tbtn.active { background: #ffe9ed; color: var(--danger); }

/* Keep the desktop transport inside its first grid column at narrower
   effective widths (including Windows display scaling/browser zoom). */
@media (min-width:901px) and (max-width:1500px) {
  .transport { grid-template-columns:minmax(0,1fr) auto; }
  .transport-controls { grid-template-columns:auto minmax(100px,1fr) 96px; gap:var(--space-sm); padding:var(--space-sm); }
  .transport-buttons { gap:var(--space-xs); }
  .seek-row { grid-template-columns:32px minmax(70px,1fr) 32px; gap:var(--space-xs); }
  .transport-volume { grid-template-columns:30px minmax(0,1fr); gap:var(--space-xs); }
}

.modal-overlay { position: fixed; inset: 0; z-index: 100; align-items: center; justify-content: center; padding:var(--space-lg); overflow-y: auto; background: rgba(24, 25, 34, .38); backdrop-filter: blur(5px); }
.modal { width: min(680px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; padding:var(--space-xl); border-radius:var(--radius-lg); background: #fff; box-shadow: 0 28px 90px rgba(20, 22, 32, .24); }
.modal-small { width: min(440px, 100%); }
.version-upload-modal { width: min(660px, 100%); }
.version-source-tabs { display: grid; grid-template-columns: 1fr 1fr; gap:var(--space-xs); margin:var(--space-lg) 0; padding:var(--space-xs); border-radius:var(--radius-md); background: var(--panel-soft); }
.version-source-tabs button { min-height: 38px; border: 0; border-radius:var(--radius-md); background: transparent; color: var(--text-soft); font-weight: 600; }
.version-source-tabs button.active { background: #fff; color: var(--accent); box-shadow: 0 2px 8px rgba(25,28,40,.08); }
.version-library-picker { display: grid; gap:var(--space-sm); margin:var(--space-md) 0; color: var(--text-soft); font-weight: 600; }
.version-library-picker input { width: 100%; min-height: 42px; padding:0 var(--space-md); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; color: var(--text); outline: 0; }
.version-library-picker input:focus { border-color: #bdbef1; box-shadow:var(--shadow-focus); }
.version-library-results { max-height: 280px; overflow-y: auto; border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; }
.version-library-result { display: grid; grid-template-columns: 22px 1fr; gap:var(--space-sm); align-items: center; min-height: 52px; padding:var(--space-sm) var(--space-md); border-bottom: 1px solid #f0f0f3; cursor: pointer; }
.version-library-result:last-child { border-bottom: 0; }
.version-library-result:hover { background: var(--panel-soft); }
.version-library-result input { accent-color: var(--accent); }
.version-library-result span { display: grid; gap:var(--space-xs); min-width: 0; }
.version-library-result strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.version-library-result small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.version-library-selection { margin-top:var(--space-sm); padding:var(--space-sm) var(--space-sm); border-radius:var(--radius-md); background: var(--accent-soft); color: var(--accent); font-size: 12px; font-weight: 600; }
.users-list { display:grid; gap:var(--space-sm); max-height:320px; margin-bottom:var(--space-lg); overflow-y:auto; }
.user-row { display:grid; grid-template-columns:minmax(180px,1fr) 130px 90px auto auto; gap:var(--space-sm); align-items:center; padding:var(--space-sm); border:1px solid var(--line); border-radius:var(--radius-md); }
.user-row > div { display:grid; gap:var(--space-xs); min-width:0; }
.user-row input[type="text"], .user-row input[type="email"], .user-row .user-name { min-width:0; padding:var(--space-xs) var(--space-sm); border:1px solid var(--line); border-radius:var(--radius-sm); }
.user-row small { overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }
.user-row select { min-height:34px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; }
.project-manager-modal { width: min(820px, 100%); }
.project-manager-modal #pmImageProgress { height: auto; overflow: visible; background: transparent; }
.project-manager-modal #pmImageProgress .upload-progress-track { height: 6px; overflow: hidden; border-radius:var(--radius-pill); background: #e8e9ef; }
#pmImageProgressBar { width: 0; height: 100%; border-radius: inherit; background: var(--accent); transition: width .15s linear; }
#pmImageProgressText { position: static; display: block; margin-bottom:var(--space-xs); color: var(--text-soft); font-size: 11px; }
.request-modal, .capabilities-modal { width: min(760px, 100%); }
.request-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap:var(--space-lg); margin-bottom:var(--space-lg); }
.request-form-card { padding:var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fafafd; }
.request-form-card > label { margin-bottom:var(--space-md); }
.request-sharing { display: flex!important; grid-template-columns: 18px 1fr!important; align-items: center; gap:var(--space-sm)!important; }
.request-sharing input { width: auto!important; }
.operation-success { margin-top:var(--space-md); padding:var(--space-md) var(--space-md); border-radius:var(--radius-md); background: #e9f7ef; color: var(--success); font-size: 10px; font-weight: 600; }
.workspace-toast { position: fixed; right: 22px; bottom: 78px; z-index: 500; max-width: min(420px, calc(100vw - 32px)); padding:var(--space-md) var(--space-lg); border-radius:var(--radius-lg); background: #202235; color: #fff; font-size: 11px; font-weight: 700; box-shadow: 0 14px 36px rgba(25,28,40,.24); opacity: 0; transform: translateY(10px); pointer-events: none; transition: opacity .18s ease, transform .18s ease; }
.workspace-toast.show { opacity: 1; transform: translateY(0); }
.background-upload-indicator { display: flex; align-items: center; gap:var(--space-sm); position: fixed; right: 22px; bottom: 132px; z-index: 499; padding:var(--space-sm) var(--space-lg); border: 0; border-radius:var(--radius-pill); background: var(--accent); color: #fff; font-size: 11px; font-weight: 700; box-shadow: 0 14px 36px rgba(25,28,40,.24); cursor: pointer; }
.background-upload-indicator::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: bg-upload-pulse 1.1s ease-in-out infinite; }
@keyframes bg-upload-pulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
.existing-requests { display: grid; gap:var(--space-sm); margin-bottom:var(--space-lg); }
.requests-empty { padding:var(--space-lg); border: 1px dashed var(--line); border-radius:var(--radius-lg); color: var(--muted); font-size: 11px; text-align: center; }
.request-summary { position: relative; display: grid; grid-template-columns: 1fr 145px 28px; gap:var(--space-sm); align-items: center; padding:var(--space-md); border: 1px solid var(--line); border-radius:var(--radius-lg); }
.request-summary > div { display: grid; gap:var(--space-xs); }
.request-summary strong { font-size: 11px; }
.request-summary small { color: var(--muted); font-size: 9px; text-transform: capitalize; }
.request-role { color: var(--accent); font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.request-status-control { padding:var(--space-sm)!important; font-size: 10px; }
.capability-heading { display: flex; justify-content: space-between; gap:var(--space-lg); margin:var(--space-xl) 0 var(--space-md); }
.capability-heading span { color: var(--muted); font-size: 10px; }
.capability-role-list { display: grid; gap:var(--space-md); max-height: 330px; overflow-y: auto; padding:var(--space-md); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fafafd; }
.capability-group > strong { display: block; margin-bottom:var(--space-sm); color: var(--muted); font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.capability-group > div { display: flex; flex-wrap: wrap; gap:var(--space-sm); }
.capability-choice { display: flex!important; grid-template-columns: 16px 1fr!important; align-items: center; gap:var(--space-xs)!important; padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; cursor: pointer; }
.capability-choice:has(input:checked) { border-color: #c9caf4; background: var(--accent-soft); color: var(--accent); }
.capability-choice input { width: auto!important; }
.capability-choice span { font-size: 10px; }
.changelog-modal { width: min(720px, 100%); }
.changelog-list { display: grid; gap:var(--space-md); }
.changelog-release { padding:var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fff; }
.changelog-release.latest { border-color: #cfd0f4; background: #fafaff; }
.changelog-release-head { display: flex; align-items: center; justify-content: space-between; gap:var(--space-md); margin-bottom:var(--space-md); }
.changelog-release-head strong { font-size: 14px; }
.changelog-release-title { margin-top:var(--space-xs); color: var(--text-soft); font-size: 10px; font-weight: 600; }
.changelog-release-head span { color: var(--muted); font-size: 9px; }
.changelog-latest { margin-left:var(--space-sm); padding:var(--space-xs) var(--space-xs); border-radius:var(--radius-md); background: var(--accent-soft); color: var(--accent)!important; font-size: 7px!important; font-weight: 700; text-transform: uppercase; }
.changelog-release ul { margin:0; padding-left:var(--space-lg); color: var(--text-soft); font-size: 10px; line-height: 1.7; }
.notebook-tabs { display: flex; gap:var(--space-xs); margin-bottom:var(--space-lg); padding:var(--space-xs); border-radius:var(--radius-md); background: var(--panel-soft); }
.notebook-tab { flex: 1; padding:var(--space-sm); border: 0; border-radius:var(--radius-sm); background: transparent; color: var(--muted); font-size: 10px; font-weight: 600; }
.notebook-tab.active { background: #fff; color: var(--accent); box-shadow: 0 2px 8px rgba(25,28,40,.07); }
.notebook-panel { display: none; }
.notebook-panel.active { display: grid; }
.roadmap-list { gap:var(--space-sm); }
.roadmap-section { display:grid; gap:var(--space-sm); }
.roadmap-section + .roadmap-section { margin-top:var(--space-md); }
.roadmap-section-heading { margin:0; color:var(--accent); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.roadmap-completed-note { margin:var(--space-sm) 0 0; color:var(--muted); font-size:10px; text-align:center; }
.roadmap-item { display: block; padding:var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); }
.roadmap-item > span { align-self: start; padding:var(--space-xs) var(--space-xs); border-radius:var(--radius-sm); background: var(--accent-soft); color: var(--accent); font-size: 8px; font-weight: 700; text-align: center; text-transform: uppercase; }
.roadmap-item strong { font-size: 11px; }
.roadmap-item p { margin:var(--space-xs) 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.home-workspace { grid-template-columns: repeat(6, minmax(0,1fr)); gap:var(--space-md); }
.home-card { grid-column:span 3; padding:var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fff; }
.home-wide { grid-column: 1/-1; padding:var(--space-xl); background: linear-gradient(135deg,#fafaff,#f5f5ff); }
.home-third { grid-column:span 2; }
.home-studio-icon { display:grid; width:34px; height:34px; flex:none; place-items:center; border-radius:var(--radius-md); background:var(--soft-accent); color:var(--accent); font-size:14px; }
.home-card-head { display: flex; align-items: center; justify-content: space-between; gap:var(--space-md); }
.home-card h3 { margin:0; font-size: 15px; }
.home-card-head small { display: block; margin-bottom:var(--space-xs); color: var(--accent); font-size: 8px; font-weight: 700; letter-spacing: .08em; }
.home-card > p { margin:var(--space-sm) 0 0; color: var(--muted); }
.home-comment { display: grid; grid-template-columns: minmax(0,1fr) 112px 14px; align-items: center; column-gap:var(--space-md); padding:var(--space-md) var(--space-sm); }
.home-comment.is-new { background: var(--accent-soft); }
.home-comment > span { min-width: 0; }
.home-comment strong, .home-comment small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-comment time { justify-self: end; color: var(--muted); font-size: 8px; white-space: nowrap; }
.home-comment > b { justify-self: end; }
.home-row { width: 100%; display: flex; align-items: center; justify-content: space-between; gap:var(--space-sm); padding:var(--space-md) var(--space-xs); border: 0; border-bottom: 1px solid #f0f0f3; background: transparent; text-align: left; }
.home-thumb { width: 38px; height: 38px; }
.home-row-copy { min-width: 0; flex: 1; }
.home-row:hover { color: var(--accent); }
.home-row span { display: grid; gap:var(--space-xs); }
.comments-inbox-modal { width: min(720px, 100%); max-height: min(760px, calc(100vh - 50px)); }
.comments-inbox-list { display: grid; overflow: auto; margin-top:var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); }
.inbox-comment { display: grid; grid-template-columns: 38px minmax(0,1fr) 14px; align-items: center; gap:var(--space-md); width: 100%; padding:var(--space-md); border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; }
.inbox-comment:last-child { border-bottom: 0; }
.inbox-comment:hover, .inbox-comment.is-new { background: var(--accent-soft); }
.inbox-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius:var(--radius-lg); background: var(--accent-soft); color: var(--accent); font-size: 12px; font-weight: 700; }
.inbox-copy { min-width: 0; display: grid; gap:var(--space-xs); }
.inbox-copy strong { color: var(--text); font-size: 11px; }
.inbox-copy strong em { color: var(--muted); font-style: normal; font-weight: 500; }
.inbox-copy small { overflow: hidden; color: var(--text-soft); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.inbox-copy time { color: var(--muted); font-size: 8px; }
.inbox-comment > b { color: var(--accent); }

/* Studio workspace */
body.studio-open { overflow: hidden; }
.studio-overlay { position: fixed; inset: 0; z-index: 300; display: flex; padding:var(--space-lg); background: rgba(26,28,40,.42); backdrop-filter: blur(7px); }
.studio-shell { display: flex; flex-direction: column; width: min(1500px,100%); height: min(900px,100%); margin: auto; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #f8f8fb; box-shadow: 0 30px 90px rgba(18,20,32,.3); }
.studio-header { display: flex; align-items: flex-start; justify-content: space-between; gap:var(--space-lg); padding:var(--space-lg) var(--space-xl) var(--space-lg); border-bottom: 1px solid var(--line); background: #fff; }
.studio-header h2 { margin:var(--space-xs) 0 var(--space-xs); font-size: 22px; letter-spacing: -.45px; }
.studio-header p { margin:0; color: var(--muted); font-size: 10px; }
.studio-session-picker { display: flex; align-items: end; gap:var(--space-sm); }
.studio-session-picker label { display: grid; gap:var(--space-xs); color: var(--muted); font-size: 8px; font-weight: 600; }
.studio-session-picker input, .studio-session-picker select { min-width: 180px; padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; font-size: 9px; }
.studio-toolbar { display: grid; grid-template-columns: auto auto auto auto 62px minmax(180px,1fr) 62px; align-items: center; gap:var(--space-sm); padding:var(--space-md) var(--space-xl); border-bottom: 1px solid var(--line); background: #fff; }
.studio-play-btn { min-width: 92px; padding:var(--space-sm) var(--space-lg); border: 0; border-radius:var(--radius-md); background: var(--accent); color: #fff; font-weight: 700; box-shadow: 0 7px 18px rgba(91,92,230,.24); }
.studio-toolbar > span { color: var(--text-soft); font-size: 9px; font-variant-numeric: tabular-nums; text-align: center; white-space: nowrap; }
.studio-toolbar input[type="range"] { width: 100%; min-width: 0; accent-color: var(--accent); }
.studio-record-bar { display: grid; grid-template-columns: minmax(190px,280px) 120px 1fr; align-items: end; gap:var(--space-md); padding:var(--space-sm) var(--space-xl); border-bottom: 1px solid var(--line); background: #fbfbfd; }
.studio-record-bar > label { display: grid; gap:var(--space-xs); color: var(--muted); font-size: 8px; font-weight: 600; }
.studio-record-bar select { min-width: 0; padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; font-size: 9px; }
.studio-input-meter { align-self: center; height: 7px; overflow: hidden; border-radius:var(--radius-sm); background: #e8e8ee; }
.studio-input-meter i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#3bc878 0 70%,#f1c84b 85%,#ef596f); transition: width .05s linear; }
.studio-record-btn { display: inline-flex; align-items: center; justify-content: center; gap:var(--space-sm); padding:var(--space-sm) var(--space-md); border: 1px solid #f0b5be; border-radius:var(--radius-md); background: #fff5f6; color: #c73f53; font-size: 9px; font-weight: 700; }
.studio-record-btn i { width: 8px; height: 8px; border-radius: 50%; background: #e64d62; }
.studio-record-btn.recording { border-color: #df4258; background: #df4258; color: #fff; animation: studio-record-pulse 1.2s infinite; }
.studio-record-btn.recording i { background: #fff; border-radius:var(--radius-sm); }
.studio-record-bar > span { align-self: center; color: var(--muted); font-size: 8px; }
@keyframes studio-record-pulse { 50% { box-shadow: 0 0 0 5px rgba(223,66,88,.12); } }
.studio-ruler { display: grid; grid-template-columns: 205px minmax(300px,1fr) 380px; gap:var(--space-md); padding:var(--space-sm) var(--space-xl); color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .08em; }
.studio-body { display: flex; flex: 1; min-height: 0; }
.studio-main { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.studio-lyrics-panel { display: flex; flex-direction: column; width: 280px; flex: 0 0 280px; gap:var(--space-sm); padding:var(--space-lg); border-left: 1px solid var(--line); background: #fff; overflow-y: auto; }
.studio-lyrics-head { display: flex; flex-direction: column; gap:var(--space-xs); }
.studio-lyrics-head h4 { margin:0; font-size: 13px; letter-spacing: -.2px; }
.studio-lyrics-source { color: var(--muted); font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.studio-lyrics-body { flex: 1; white-space: pre-wrap; font-size: 11px; line-height: 1.65; color: var(--text); }
.studio-lyrics-body.empty { color: var(--muted); font-style: italic; }
.studio-tracks { display: grid; gap:var(--space-sm); flex: 1; min-height: 0; overflow: auto; padding:0 var(--space-xl) var(--space-lg); }
.studio-track { display: grid; grid-template-columns: 205px minmax(300px,1fr) 380px; gap:var(--space-md); min-height: 112px; padding:var(--space-md); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fff; }
.studio-track-info { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap:var(--space-xs); padding:var(--space-xs); }
.studio-track-info .track-name { width: 100%; padding:var(--space-sm) var(--space-sm); border: 1px solid transparent; border-radius:var(--radius-sm); background: transparent; color: var(--text); font-size: 12px; font-weight: 700; }
.studio-track-info .track-name:hover, .studio-track-info .track-name:focus { border-color: var(--line); background: #fff; outline: none; }
.studio-track-info small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.studio-track-info small { color: var(--muted); font-size: 8px; }
.studio-info-record { margin-top:var(--space-xs); padding:var(--space-sm) var(--space-md); border:1px solid #f0b5be; border-radius:var(--radius-md); background:#fff5f6; color:#c73f53; font-size:9px; font-weight:700; }
.studio-info-record i { display:inline-block; width:8px; height:8px; margin-right:var(--space-xs); border-radius:50%; background:#df4258; }
.studio-info-record.active { border-color:#df4258; background:#df4258; color:#fff; box-shadow:0 0 0 3px rgba(223,66,88,.12); }
.studio-info-record.active i { background:#fff; }
.studio-file-btn { margin-top:var(--space-xs); padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); color: var(--accent); font-size: 9px; font-weight: 600; cursor: pointer; }
.studio-file-btn:hover { background: var(--accent-soft); }
.studio-file-btn input { display: none; }
.studio-lane { position: relative; align-self: center; height: 76px; overflow: hidden; border: 1px solid #e5e5ec; border-radius:var(--radius-md); background: #f3f3f8; }
.studio-lane canvas { display: block; width: 100%; height: 100%; }
.studio-playhead { position: absolute; top: 0; bottom: 0; left: 0; width: 1px; background: #ef596f; pointer-events: none; }
.studio-track-controls { display: grid; align-content: center; gap:var(--space-sm); }
.studio-toggle-row { display: flex; align-items: center; gap:var(--space-xs); }
.studio-toggle-row button { min-width: 48px; height: 28px; padding:0 var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-sm); background: #fff; color: var(--muted); font-size: 8px; font-weight: 700; }
.studio-toggle-row .track-mute.active { border-color: #f5c96b; background: #fff5d9; color: #9a6400; }
.studio-toggle-row .track-solo.active { border-color: #9dd9b2; background: #e4f8eb; color: #178143; }
.studio-toggle-row .track-arm { display: inline-flex; align-items: center; justify-content: center; gap:var(--space-xs); min-width: 84px; border-color: #f0b5be; background: #fff5f6; color: #c73f53; }
.studio-toggle-row .track-arm i { width: 8px; height: 8px; border-radius: 50%; background: #df4258; }
.studio-toggle-row .track-arm.active { border-color: #df4258; background: #df4258; color: #fff; box-shadow: 0 0 0 3px rgba(223,66,88,.12); }
.studio-toggle-row .track-arm.active i { background: #fff; }
.studio-toggle-row .track-download { min-width: 70px; color: var(--accent); }
.studio-toggle-row .track-clear { margin-left: auto; font-size: 15px; }
.studio-track-controls > label { display: grid; grid-template-columns: 42px 1fr 36px; align-items: center; gap:var(--space-sm); color: var(--muted); font-size: 8px; }
.studio-track-controls input[type="range"] { min-width: 0; accent-color: var(--accent); }
.studio-track-controls output { font-size: 8px; text-align: right; }
.studio-time-fields { display: grid; grid-template-columns: repeat(3,1fr); gap:var(--space-xs); }
.studio-time-fields label { display: grid; gap:var(--space-xs); color: var(--muted); font-size: 7px; text-transform: uppercase; }
.studio-time-fields input { width: 100%; min-width: 0; padding:var(--space-xs) var(--space-xs); border: 1px solid var(--line); border-radius:var(--radius-sm); font-size: 8px; }
.studio-footer { display: flex; align-items: flex-end; justify-content: space-between; gap:var(--space-lg); padding:var(--space-md) var(--space-xl); border-top: 1px solid var(--line); background: #fff; }
.studio-save-fields { display: flex; gap:var(--space-sm); flex: 1; }
.studio-save-fields label { display: grid; gap:var(--space-xs); min-width: 220px; color: var(--muted); font-size: 8px; font-weight: 600; }
.studio-save-fields select, .studio-save-fields input { padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; font-size: 10px; }
.studio-export-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap:var(--space-sm); }
.studio-export-actions > span { max-width: 240px; color: #2b9553; font-size: 9px; text-align: right; }
.studio-export-actions > span.studio-error { color: #d7475b; }
.studio-upload-progress { display: grid; gap:var(--space-xs); width: 170px; color: var(--muted); font-size: 8px; }
.studio-upload-progress > div { height: 6px; overflow: hidden; border-radius:var(--radius-pill); background: #e8e9ef; }
.studio-upload-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--accent); transition: width .12s linear; }
.home-navigation { margin:var(--space-xs) var(--space-md) var(--space-sm); }
.home-navigation .nav-item { width: 100%; }
.project-private-badge { margin-left:var(--space-xs); padding:var(--space-xs) var(--space-xs); border-radius:var(--radius-pill); background: var(--accent-soft); color: var(--accent); font-size: 7px; font-weight: 700; text-transform: uppercase; }
.project-shared-badge { margin-left:var(--space-xs); padding:var(--space-xs) var(--space-xs); border-radius:var(--radius-pill); background:#e8f5ee; color:#238653; font-size:7px; font-weight:700; text-transform:uppercase; }
.project-section-label { margin:var(--space-md) var(--space-sm) var(--space-xs); color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.1em; }
.project-section-label:first-child { margin-top:var(--space-xs); }
.project-section-empty { padding:var(--space-sm) var(--space-md) var(--space-md); color:var(--muted); font-size:11px; }
.project-sharing-field { padding:var(--space-md); border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--panel-soft); }
.project-members-list { display:grid; grid-template-columns:1fr; gap:var(--space-sm); margin-top:var(--space-sm); }
.project-member-option { display:flex!important; flex-direction:row!important; align-items:center; gap:var(--space-sm); min-width:0; padding:var(--space-sm) var(--space-md); border:1px solid var(--line); border-radius:var(--radius-md); background:var(--panel); cursor:pointer; }
.project-member-option input { width:18px; height:18px; margin:0 0 0 auto; flex:none; accent-color:var(--accent); }
.project-member-option span { min-width:0; }
.project-member-avatar { display:grid; width:32px; height:32px; flex:none; place-items:center; border-radius:var(--radius-md); background:var(--soft-accent); color:var(--accent); font-size:11px; font-weight:700; }
.project-member-copy { display:block!important; flex:1 1 auto; min-width:0; color:var(--text); text-align:left; visibility:visible!important; opacity:1!important; }
.project-member-copy strong { color:var(--text); font-size:12px; }
.project-member-option strong,.project-member-option small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.project-member-option small { margin-top:var(--space-xs); color:var(--muted); font-size:10px; }
.project-sharing-note { grid-column:1/-1; color:var(--muted); font-size:11px; }
@media(max-width:720px){.project-members-list{grid-template-columns:1fr;}}
.project-action-menu .danger-menu-item, .track-action-menu .danger-menu-item { color: #c83f52; }
.delete-project-choices { display: grid; gap:var(--space-sm); margin-top:var(--space-lg); }
.delete-project-choices .btn { justify-content: flex-start; min-height: 42px; text-align: left; }
.btn-danger { border: 1px solid #efb7bf; background: #fff1f3; color: #bd3347; }
.version-studio-btn { position:static; display:inline-flex; align-items:center; justify-content:center; gap:var(--space-xs); width:92px; min-height:28px; padding:0 var(--space-sm); border:1px solid #ccd8f5; border-radius:var(--radius-md); background:#f5f8ff; color:#3a67b7; font-size:9px; font-weight:700; cursor:pointer; }
.version-studio-btn .ui-icon { width:18px; height:18px; flex:0 0 18px; }
.version-studio-btn b { display:grid; place-items:center; min-width:16px; height:16px; padding:0 4px; border-radius:var(--radius-pill); background:#dfe8ff; font-size:8px; }
.version-studio-btn b.studio-count-empty{visibility:hidden}
.version-studio-btn:hover { border-color:#aebfe8; background:#eaf0ff; }
.studio-sessions-workspace { min-height: 100%; }
.studio-sessions-toolbar { display: flex; align-items: center; justify-content: space-between; gap:var(--space-lg); margin-bottom:var(--space-lg); padding:var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fff; }
.studio-sessions-toolbar > div:first-child { display: grid; gap:var(--space-xs); }
.studio-sessions-toolbar strong { font-size: 14px; }
.studio-sessions-toolbar span { color: var(--muted); font-size: 9px; }
.studio-sessions-toolbar > div:last-child { display: flex; gap:var(--space-sm); }
.studio-sessions-toolbar input { width: 260px; padding:var(--space-sm) var(--space-md); border: 1px solid var(--line); border-radius:var(--radius-md); font-size: 10px; }
.studio-sessions-list { display: grid; gap:var(--space-sm); }
.studio-session-card { display: grid; grid-template-columns: 44px minmax(240px,1fr) 180px auto; align-items: center; gap:var(--space-md); padding:var(--space-md) var(--space-lg); border: 1px solid var(--line); border-radius:var(--radius-lg); background: #fff; }
.studio-session-card:hover { border-color: #d6d7ed; box-shadow: 0 5px 18px rgba(25,28,40,.05); }
.studio-session-art { display: grid; place-items: center; width: 44px; height: 44px; border-radius:var(--radius-lg); background: linear-gradient(135deg,#e9e9ff,#f5e8fb); color: var(--accent); font-size: 18px; }
.studio-session-copy, .studio-session-meta { min-width: 0; display: grid; gap:var(--space-xs); }
.studio-session-copy strong { font-size: 11px; }
.studio-session-copy small { overflow: hidden; color: var(--text-soft); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.studio-session-copy em { color: #3a67b7; font-size: 8px; font-style: normal; }
.studio-session-meta small { color: var(--muted); font-size: 8px; }
.studio-session-actions { display: flex; gap:var(--space-xs); }
.studio-session-actions .btn { padding:var(--space-sm) var(--space-sm); font-size: 8px; }
.studio-sessions-empty { padding:70px var(--space-lg); border: 1px dashed var(--line); border-radius:var(--radius-lg); color: var(--muted); font-size: 10px; line-height: 1.7; text-align: center; }
.studio-folders-back { margin:0 0 var(--space-md); }
.studio-folder-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-md); }
.studio-folder-card { display:grid; grid-template-columns:72px minmax(0,1fr) auto; align-items:center; gap:var(--space-md); padding:var(--space-lg); border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; }
.studio-folder-card > span:nth-child(2),.studio-session-copy { display:grid; gap:var(--space-xs); min-width:0; }
.studio-folder-card strong,.studio-session-copy strong { color:var(--text); font-size:12px; }
.studio-folder-card small,.studio-folder-card em,.studio-session-copy small,.studio-session-copy em,.studio-song-group header small { color:var(--muted); font-size:9px; font-style:normal; }
.studio-card-art { width:56px; height:56px; border-radius:var(--radius-md); object-fit:cover; background:var(--surface-soft,#f3f3f7); }
.studio-art-fallback { display:grid; place-items:center; color:var(--accent); font-size:24px; }
.studio-folder-detail { gap:var(--space-xl); }
.studio-song-group { display:grid; gap:var(--space-md); }
.studio-song-group > header { display:flex; align-items:center; gap:var(--space-md); }
.studio-song-group > header .studio-card-art { width:48px; height:48px; }
.studio-song-group h3 { margin:0 0 var(--space-xs); font-size:15px; }
.studio-session-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-md); }
.studio-session-grid .studio-session-card,.studio-search-results .studio-session-card { grid-template-columns:56px minmax(0,1fr) auto; }
.studio-session-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:var(--space-xs); }
.studio-context { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-xs); color:var(--muted); font-size:10px; }
.studio-context a { color:var(--accent); text-decoration:none; }
.studio-context small { flex-basis:100%; }
.studio-session-page { min-height:100%; }
.studio-session-page .studio-shell { width:100%; height:auto; min-height:calc(100vh - 150px); margin:0; overflow:visible; border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.studio-page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-lg); padding:var(--space-lg) var(--space-xl); border-bottom:1px solid var(--line); background:#fff; }
.studio-page-heading { display:grid; gap:var(--space-xs); min-width:0; }
.studio-page-heading #studioBackBtn { justify-self:start; margin-bottom:var(--space-xs); }
.studio-page-title-input { width:min(620px,80vw); padding:var(--space-xs) 0; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--text); font:700 22px/1.2 Inter,sans-serif; }
.studio-page-title-input:hover,.studio-page-title-input:focus { border-bottom-color:var(--accent); outline:0; }
.studio-context { color:var(--muted); font-size:9px; }
.studio-page-actions { display:flex; align-items:center; gap:var(--space-sm); }
.studio-save-state { color:#2b9553; font-size:9px; font-weight:700; white-space:nowrap; }
.studio-save-state.studio-error { color:#d7475b; }
.studio-session-page .studio-session-picker { padding:var(--space-md) var(--space-xl); border-bottom:1px solid var(--line); background:#fbfbfd; }
.studio-session-page .studio-track-controls > label:has(.track-offset) { grid-template-columns:auto 86px auto; }
.track-offset { width:86px; padding:var(--space-xs); border:1px solid var(--line); border-radius:var(--radius-sm); }
.studio-route-state { padding:80px var(--space-xl); border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; text-align:center; }
.studio-route-state h2 { margin:0 0 var(--space-sm); }
.studio-route-state p { margin:0 auto var(--space-lg); max-width:520px; color:var(--muted); }
.studio-share-link { display:flex; align-items:center; gap:var(--space-sm); margin:var(--space-md) 0; }
.studio-share-link code { min-width:0; flex:1; overflow:auto; padding:var(--space-sm); border:1px solid var(--line); border-radius:var(--radius-md); background:#f7f7fb; white-space:nowrap; }
.studio-add-member { display:flex; align-items:end; gap:var(--space-sm); margin:var(--space-lg) 0; }
.studio-add-member label { display:grid; flex:1; gap:var(--space-xs); color:var(--muted); font-size:9px; }
.studio-add-member select { padding:var(--space-sm); border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; }
.studio-access-lists { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-md); max-height:52vh; overflow:auto; }
.studio-access-lists section { padding:var(--space-md); border:1px solid var(--line); border-radius:var(--radius-md); }
.studio-access-lists h4 { margin:0 0 var(--space-sm); }
.studio-access-person { display:flex; align-items:center; justify-content:space-between; gap:var(--space-sm); padding:var(--space-xs) 0; }
.studio-access-person > span:first-child { display:grid; }
.studio-access-person small,.studio-inherited-label { color:var(--muted); font-size:8px; }

@media (max-width: 900px) {
  .studio-session-page .studio-shell { min-height:0; border-radius:0; }
  .studio-page-header { flex-direction:column; padding:var(--space-md); }
  .studio-page-title-input { width:100%; font-size:18px; }
  .studio-page-actions { width:100%; flex-wrap:wrap; }
  .studio-session-page .studio-session-picker { display:grid; grid-template-columns:1fr; padding:var(--space-md); }
  .studio-session-page .studio-session-picker label,.studio-session-page .studio-session-picker select { width:100%; min-width:0; }
  .studio-session-page .studio-body { flex-direction:column; }
  .studio-session-page .studio-lyrics-panel { display:flex; width:auto; flex:0 0 auto; max-height:320px; border-top:1px solid var(--line); border-left:0; }
  .studio-access-lists { grid-template-columns:1fr; }
  .studio-share-link { align-items:stretch; flex-direction:column; }
}
@media (max-width: 950px) {
  .studio-overlay { padding:0; }
  .studio-shell { height: 100%; border-radius: 0; }
  .studio-ruler { display: none; }
  .studio-lyrics-panel { display: none; }
  .studio-record-bar { grid-template-columns: minmax(180px,1fr) 100px; }
  .studio-record-bar > span { display: none; }
  .studio-track { grid-template-columns: 130px minmax(240px,1fr); }
  .studio-track-controls { grid-column: 1/-1; grid-template-columns: 100px minmax(200px,1fr) 260px; }
  .studio-footer { align-items: stretch; flex-direction: column; }
  .studio-export-actions { justify-content: flex-end; }
  .studio-session-card { grid-template-columns: 44px 1fr; }
  .studio-session-meta, .studio-session-actions { grid-column: 2; }
  .studio-sessions-toolbar { align-items: stretch; flex-direction: column; }
  .studio-sessions-toolbar input { width: 100%; }
  .studio-folder-grid,.studio-session-grid { grid-template-columns:1fr; }
  .studio-folder-card { grid-template-columns:56px minmax(0,1fr); }
  .studio-folder-card > button { grid-column:1/-1; }
  .studio-session-grid .studio-session-card,.studio-search-results .studio-session-card { grid-template-columns:48px minmax(0,1fr); }
  .studio-session-grid .studio-session-actions,.studio-search-results .studio-session-actions { grid-column:1/-1; justify-content:flex-start; }
}
@media (max-width: 620px) {
  .studio-header { flex-direction: row; align-items: center; justify-content: space-between; gap:var(--space-sm); padding:var(--space-md) var(--space-md); }
  .studio-header p { display: none; }
  .studio-title-block { flex: none; }
  .studio-title-block h2 { margin:var(--space-xs) 0; font-size: 16px; }
  .studio-session-picker { display: none; }
  .studio-close-btn { position: static; width: auto; height: auto; padding:var(--space-xs) var(--space-sm); font-size: 0; }
  .studio-close-btn::after { content: '\2039 Sessions'; font-size: 10px; font-weight: 700; }
  .studio-toolbar { display: flex; flex-wrap: wrap; gap:var(--space-xs) var(--space-sm); padding:var(--space-sm) var(--space-md); }
  .studio-toolbar .studio-play-btn, .studio-toolbar > .btn, .studio-toolbar .studio-record-btn { flex: 1 1 0; min-width: 0; padding-left:var(--space-xs); padding-right:var(--space-xs); font-size: 10px; }
  .studio-toolbar > span, .studio-toolbar input[type="range"] { order: 1; }
  .studio-toolbar > span { flex: 0 0 auto; }
  .studio-toolbar input[type="range"] { flex: 1 1 auto; min-width: 60px; }
  .studio-record-bar { display: flex; align-items: center; gap:var(--space-sm); padding:var(--space-sm) var(--space-md); }
  .studio-record-bar > label { flex: 1; min-width: 0; }
  .studio-record-bar > label select { min-width: 0; width: 100%; }
  .studio-record-bar #studioRecordHint { display: none; }
  .studio-track { display: flex; flex-direction: column; gap:var(--space-sm); padding:var(--space-md); }
  .studio-track-info { flex-direction: column; align-items: stretch; padding:0; }
  .studio-info-record { width: 100%; text-align: center; }
  .studio-lane { width: 100%; height: 68px; }
  .studio-track-controls { grid-column: auto; display: flex; flex-direction: column; align-items: stretch; gap:var(--space-sm); }
  .studio-toggle-row { flex-wrap: wrap; }
  .studio-track-controls > label { grid-template-columns: 42px 1fr 36px; }
  .studio-footer { flex-direction: row; align-items: center; gap:var(--space-sm); padding:var(--space-sm) var(--space-md); }
  .studio-save-fields { min-width: 0; }
  .studio-save-fields label { min-width: 0; flex: 1; }
  .studio-save-fields input { font-size: 10px; }
  .studio-export-actions { flex: none; }
  .studio-export-actions > span { display: none; }
}
.home-row strong { color: var(--text); font-size: 11px; }
.home-row small { color: var(--muted); font-size: 9px; }
.home-row b { color: var(--accent); font-size: 17px; }
.home-link { border: 0; background: none; color: var(--accent); font-size: 9px; font-weight: 600; }
.home-empty { padding:var(--space-lg) 0; color: var(--muted); font-size: 10px; }
.home-workspace{align-items:start}
.home-loading{grid-column:1/-1;padding:var(--space-xl);color:var(--muted)}
.home-attention,.home-upcoming,.home-active-projects,.home-recent-work,.home-quick-actions{grid-column:1/-1}
.home-attention-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-md)}
.home-attention-tile{display:grid;gap:var(--space-sm);min-height:92px;padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;text-align:left}.home-attention-tile:hover{border-color:var(--accent);background:var(--panel-soft)}.home-attention-tile strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.home-attention-counts{display:flex;flex-wrap:wrap;gap:var(--space-sm);color:var(--muted);font-size:9px}.home-attention-counts span{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--panel-soft)}.home-attention-counts b{color:var(--text)}.home-attention-counts .is-overdue,.home-attention-counts .is-overdue b{color:#b9364a}
.home-open-action{color:var(--accent);font-size:9px;font-weight:700}.home-date-group h4,.home-recent-columns h4{margin:var(--space-md) 0 var(--space-xs);color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.home-date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm)}.home-date-tile{display:grid;align-content:start;gap:var(--space-xs);min-width:0;min-height:76px;padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;text-align:left}.home-date-tile:hover{border-color:var(--accent);background:var(--panel-soft)}.home-date-tile time{color:var(--accent);font-size:9px;font-weight:700}.home-date-tile strong,.home-date-tile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-date-tile strong{font-size:10px}.home-date-tile small{color:var(--muted);font-size:8px}
.home-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-md)}.home-project-card{display:grid;gap:var(--space-sm);min-width:0;padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-soft)}.home-project-card>button{display:grid;gap:var(--space-xs);padding:0;border:0;background:transparent;text-align:left}.home-project-card>button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.home-project-progress{height:6px;overflow:hidden;border-radius:var(--radius-pill);background:#e6e7ed}.home-project-progress i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.home-project-stats{display:flex;flex-wrap:wrap;gap:var(--space-md);color:var(--muted);font-size:8px}.home-project-stats b{color:var(--text)}.home-project-stats .is-overdue,.home-project-stats .is-overdue b{color:#b9364a}.home-project-card>small{overflow:hidden;color:var(--muted);font-size:8px;line-height:1.45}
.home-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-md)}.home-action-grid button{min-height:48px;padding:0 var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;color:var(--text);font-weight:600}.home-action-grid button:hover{border-color:var(--accent);color:var(--accent)}
.home-recent-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl)}.home-recent-columns .home-row{min-height:44px}
@media(max-width:900px){.home-project-grid,.home-attention-grid,.home-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-recent-columns{grid-template-columns:1fr}}
@media(max-width:480px){.home-project-grid,.home-attention-grid,.home-date-grid{grid-template-columns:1fr}.home-card{padding:var(--space-md)}.home-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-action-grid button{padding:0 var(--space-sm)}}

.login-body { min-height: 100vh; display: grid; place-items: center; padding:var(--space-xl); overflow: auto; background: radial-gradient(circle at 50% 0,#fff 0,#f3f4f7 60%); }
.login-panel { width: min(440px,100%); padding:var(--space-2xl); border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 22px 70px rgba(31,35,50,.1); }
.login-brand { display: flex; align-items: center; justify-content: center; margin-bottom:var(--space-xl); }
.login-brand-logo { display:block; width:220px; max-width:100%; height:auto; }
.login-kicker { color: var(--accent); font-size: 9px; font-weight: 700; letter-spacing: .09em; }
.login-title { margin:var(--space-sm) 0 var(--space-sm); font-size: 30px; line-height: 1.12; letter-spacing: -.8px; }
.login-sub { margin:0 0 var(--space-xl); color: var(--muted); line-height: 1.6; }
.login-fields { display: grid; gap:var(--space-lg); }
.login-field { display: grid; gap:var(--space-sm); color: var(--text); font-size: 11px; font-weight: 600; }
.login-panel input { width: 100%; height: 46px; padding:0 var(--space-md); border: 1px solid var(--line); border-radius:var(--radius-md); outline: 0; }
.login-panel input:focus { border-color: #bdbef1; box-shadow:var(--shadow-focus); }
.login-panel > button { width: 100%; height: 44px; margin-top:var(--space-md); border: 0; border-radius:var(--radius-md); background: var(--accent); color: #fff; font-weight: 600; }
.project-manager-head { display: flex; align-items: center; gap:var(--space-lg); margin-bottom:var(--space-lg); }
.project-image-card { width: 92px; height: 92px; flex: 0 0 92px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius:var(--radius-lg); background: var(--panel-soft); color: var(--muted); font-size: 10px; }
.project-image-card img { width: 100%; height: 100%; object-fit: cover; }
.project-actions-section { margin-top:var(--space-xl); padding-top:var(--space-lg); border-top: 1px solid var(--line); }
.section-heading { display: flex; align-items: baseline; gap:var(--space-sm); margin-bottom:var(--space-sm); }
.section-heading span { color: var(--muted); font-size: 9px; }
.pm-actions-list { display: grid; gap:var(--space-xs); }
.pm-action { display: grid; grid-template-columns: 22px 1fr; align-items: center; gap:var(--space-sm); padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); }
.pm-action input { width: auto; accent-color: var(--accent); }
.pm-action span { display: grid; gap:var(--space-xs); }
.pm-action strong { font-size: 11px; }
.pm-action small { color: var(--muted); font-size: 9px; }
.pm-action.completed { opacity: .55; }
.pm-action.completed strong { text-decoration: line-through; }
.pm-action-form { display: grid; grid-template-columns: 2fr 1fr 140px auto; gap:var(--space-sm); margin-top:var(--space-sm); }
.pm-action-form input { min-width: 0; padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); outline: 0; }
@media (max-width: 700px) { .pm-action-form { grid-template-columns: 1fr; } }
.modal h3 { margin:0 0 var(--space-lg); font-size: 18px; letter-spacing: -.3px; }
.rescan-summary-body { max-height: 50vh; overflow-y: auto; font-size: 12px; color: var(--text); }
.rescan-summary-body p { margin:0 0 var(--space-sm); }
.rescan-duplicate-list { margin:0 0 var(--space-sm); padding-left:var(--space-lg); color: var(--text-soft); }
.rescan-duplicate-list li { margin-bottom:var(--space-xs); }
.modal-song-head { display: flex; align-items: flex-start; justify-content: space-between; gap:var(--space-lg); flex-wrap: wrap; }
.modal-song-head h3 { margin-bottom:var(--space-xs); }
.modal-song-head-actions{display:flex;align-items:flex-start;gap:var(--space-sm);margin-left:auto}.modal-song-head-actions .btn-icon{flex:0 0 auto}
#modalTopActions { margin:0 0 var(--space-md); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap:var(--space-md); }
.modal label { display: grid; gap:var(--space-xs); color: var(--text-soft); font-size: 11px; font-weight: 600; }
.full-width { grid-column: 1 / -1; }
.modal input, .modal select, .modal textarea { width: 100%; padding:var(--space-sm) var(--space-md); border: 1px solid var(--line); border-radius:var(--radius-md); outline: 0; background: #fff; color: var(--text); font-weight: 400; resize: vertical; }
.modal input:focus, .modal select:focus, .modal textarea:focus { border-color: #bdbef1; box-shadow:var(--shadow-focus); }
.lyrics-edit-field{display:grid;gap:var(--space-xs)}
.lyrics-edit-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}
.lyrics-edit-head>label{display:block}
.lyrics-copy-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-sm)}
.lyrics-copy-actions .btn{width:auto;min-height:44px;padding:0 var(--space-md);font-size:10px}
.lyrics-copy-status{min-height:16px;margin:0;color:var(--muted);font-size:10px}.lyrics-copy-status.error{color:var(--danger)}
.detail-note { margin: -7px 0 14px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.modal-actions { display: flex; align-items: center; justify-content: space-between; gap:var(--space-md); margin-top:var(--space-lg); }
.modal-actions-right { display: flex; gap:var(--space-sm); margin-left: auto; }
.feedback-modal { width: min(680px, calc(100vw - 30px)); }
.feedback-inbox-modal { width: min(900px, calc(100vw - 30px)); max-height: min(850px, calc(100vh - 40px)); overflow: auto; }
.feedback-toolbar { display: flex; justify-content: flex-end; margin:var(--space-sm) 0 var(--space-md); }
.feedback-toolbar select { width: 180px; }
.feedback-inbox-list { display: grid; gap:var(--space-md); }
.feedback-card { border: 1px solid var(--line); border-radius:var(--radius-lg); padding:var(--space-lg); background: #fff; }
.feedback-card.is-collapsed { max-height:76px; overflow:hidden; cursor:pointer; }
.feedback-card.is-collapsed:hover { border-color:#cfd0f4; background:#fafaff; }
.feedback-card.is-collapsed::after { content:'›'; position:absolute; right:14px; top:25px; color:var(--accent); font-size:19px; }
.feedback-card { position:relative; }
.feedback-card.is-collapsed header { padding-right:var(--space-2xl); }
.feedback-card header { display:grid; grid-template-columns:minmax(0,1fr) 150px; align-items:center; gap:var(--space-md); }
.feedback-card header > div { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; column-gap:var(--space-sm); row-gap:var(--space-xs); min-width:0; }
.feedback-card header .feedback-type { grid-column:1; grid-row:1/3; }
.feedback-card header strong { grid-column:2; grid-row:1; overflow:hidden; color:var(--text); font-size:13px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.feedback-card header small { grid-column:2; grid-row:2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.feedback-card header .feedback-card-status,.feedback-card header > .feedback-status { width:150px; min-width:150px; }
.feedback-card header small, .feedback-context { color: var(--muted); font-size: 9px; }
.feedback-card > p, .feedback-steps p { white-space: pre-wrap; line-height: 1.5; }
.feedback-type { width: max-content; padding:var(--space-xs) var(--space-sm); border-radius:var(--radius-pill); text-transform: capitalize; font-size: 10px; font-weight: 700; background: #fff0ed; color: #b94b3a; }
.feedback-type.enhancement { background: #efefff; color: var(--accent); }
.feedback-context { margin:var(--space-sm) 0; }
.feedback-card label { display: grid; gap:var(--space-xs); }
.feedback-card-actions { display: flex; justify-content: flex-end; align-items: center; gap:var(--space-sm); margin-top:var(--space-sm); }
.feedback-save-status { color: var(--success); font-size: 11px; }
.feedback-status { flex: none; padding:var(--space-xs) var(--space-sm); border-radius:var(--radius-pill); background: #f0f1f5; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: capitalize; }
.feedback-status.status-in_progress { background: #fff3dc; color: #9b6500; }
.feedback-status.status-completed { background: #e7f7ed; color: var(--success); }
.feedback-status.status-declined { background: #f3f3f5; color: #777b88; }

/* 1.2.2.8: compact project sharing, structured feedback and clearer Studio setup */
.project-sharing-field,.project-description-field { min-width:0; }
.project-description-field textarea { min-height:190px; height:100%; }
.project-members-list { align-content:start; max-height:205px; overflow:auto; }
.project-member-option { min-height:50px; padding:var(--space-sm) var(--space-sm); }
.project-member-copy { display:grid!important; gap:var(--space-xs); }
.project-member-copy strong { display:block!important; color:var(--text)!important; font-size:12px!important; line-height:1.3; visibility:visible!important; opacity:1!important; }
.project-member-copy small { display:block!important; color:var(--muted)!important; font-size:9px!important; visibility:visible!important; opacity:1!important; }
.project-member-name { display:block!important; flex:1 1 auto; min-width:0; overflow:hidden; color:var(--text)!important; font-size:12px!important; font-weight:650; line-height:1.35; text-align:left; text-overflow:ellipsis; white-space:nowrap; visibility:visible!important; opacity:1!important; }
.project-member-name small { display:inline!important; margin-left:var(--space-xs); color:var(--muted)!important; font-size:9px!important; font-weight:400; visibility:visible!important; opacity:1!important; }
.modal .project-member-option input[type="checkbox"] { width:18px!important; min-width:18px!important; height:18px!important; margin:0 0 0 auto!important; padding:0!important; flex:0 0 18px!important; }

.feedback-inbox-list { gap:var(--space-sm); }
.feedback-column-headings,.feedback-summary-grid { display:grid; grid-template-columns:105px minmax(180px,1fr) 120px 130px 150px 28px; align-items:center; gap:var(--space-md); }
.feedback-column-headings { padding:0 var(--space-md); color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.feedback-card { padding:0; overflow:hidden; }
.feedback-card.is-collapsed { max-height:none; overflow:hidden; }
.feedback-card.is-collapsed::after { content:none; }
.feedback-summary-grid { min-height:60px; padding:var(--space-sm) var(--space-md); cursor:pointer; }
.feedback-summary-grid:hover { background:#fafaff; }
.feedback-summary-title { min-width:0; overflow:hidden; color:var(--text); font-size:12px; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.feedback-summary-user,.feedback-summary-grid time { overflow:hidden; color:var(--muted); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.feedback-card-status { width:150px; min-width:150px; }
.feedback-expand { width:28px; height:28px; padding:0; border:0; background:transparent; color:var(--accent); font-size:20px; cursor:pointer; transition:transform .15s ease; }
.feedback-expand[aria-expanded="true"] { transform:rotate(90deg); }
.feedback-card-body { padding:var(--space-md); border-top:1px solid var(--line); }
.feedback-card.is-collapsed .feedback-card-body { display:none; }
.feedback-card-body > p,.feedback-steps p { white-space:pre-wrap; line-height:1.5; }

.studio-header { align-items:center; }
.studio-title-block { flex:0 0 auto; }
.studio-session-picker { flex:1; justify-content:flex-end; flex-wrap:wrap; }
.studio-session-picker label { min-width:170px; }
.studio-session-picker label > span,.studio-save-fields label > span { color:var(--muted); font-size:8px; font-weight:400; }
.studio-session-picker input,.studio-session-picker select { width:100%; min-width:0; }
.studio-save-fields label { min-width:300px; }
.studio-save-fields label > span { display:block; margin-top:-1px; }
.studio-library-btn { height:38px; padding:0 var(--space-lg); border:1px solid #cfd0f4; background:#fff; color:var(--accent); font-weight:650; box-shadow:0 4px 14px rgba(30,32,50,.06); }
.studio-library-btn:hover { border-color:var(--accent); background:var(--accent-soft); }

@media(max-width:1250px){
  .top-utility-btn { width:38px; padding:0; }
  .top-utility-btn b { display:none; }
}

@media(max-width:720px){
  .project-manager-modal .form-grid { grid-template-columns:1fr; }
  .feedback-column-headings { display:none; }
  .feedback-summary-grid { grid-template-columns:90px minmax(0,1fr) 120px 28px; gap:var(--space-sm); }
  .feedback-summary-user,.feedback-summary-grid time { display:none; }
  .feedback-card-status { width:120px; min-width:120px; }
}
.drop-zone { position: relative; display: grid; place-items: center; min-height: 112px; margin-bottom:var(--space-lg); padding:var(--space-lg); border: 1px dashed #c9cbd5; border-radius:var(--radius-lg); background: #fafafd; color: var(--muted); text-align: center; }
.drop-zone.dragover { border-color: var(--accent); background: var(--accent-soft); }
.drop-zone input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.file-name-display { margin:var(--space-xs) 0 0; color: var(--accent); }
.upload-progress { position: relative; height: 6px; margin-top:var(--space-md); overflow: hidden; border-radius:var(--radius-sm); background: #ececf2; }
.upload-progress > div, #uploadProgressBar { height: 100%; background: var(--accent); transition: width .2s; }
.upload-progress-text { position: absolute; right: 0; top: -18px; color: var(--muted); font-size: 9px; }
#uploadProgress{height:auto;min-height:27px;overflow:visible;background:transparent}
#uploadProgress .upload-progress-text{position:static;display:block;margin-bottom:5px;text-align:right}
#uploadProgress>.upload-progress-track{height:6px;overflow:hidden;border-radius:var(--radius-sm);background:#ececf2}
#uploadProgress.is-error .upload-progress-text{color:var(--danger)}
#uploadProgress.is-error #uploadProgressBar{background:var(--danger)}
.playlist-chip-row { display: flex; flex-wrap: wrap; gap:var(--space-xs); }
.playlist-chip { display: inline-flex; align-items: center; gap:var(--space-xs); padding:var(--space-xs) var(--space-sm); border-radius:var(--radius-pill); background: var(--accent-soft); color: var(--accent); font-size: 10px; }
.playlist-chip button { border: 0; background: none; color: inherit; }
.playlist-chip-empty { color: var(--muted); font-size: 10px; }
#addToPlaylistSelect { width: 100%; margin-top:var(--space-md); padding:var(--space-sm) var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); font-size: 11px; }
.playlist-add-select { margin-top:var(--space-sm); }
.playlist-check-list { display: grid; gap:var(--space-xs); max-height: 300px; overflow: auto; }
.bulk-file-queue { display: grid; gap:var(--space-sm); width: 100%; max-height: 300px; overflow-x: hidden; overflow-y: auto; }
.bulk-file-row { min-width: 0; padding:var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); }
.bfr-main { min-width: 0; display: flex; justify-content: space-between; gap:var(--space-sm); }
.bfr-name { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bfr-status { flex: 0 0 auto; }
.bfr-status { color: var(--muted); font-size: 10px; }
.bfr-status.success { color: var(--success); }
.bfr-status.error { color: var(--danger); }
.bfr-status.warning { color: #a46a00; }
.bulk-upload-modal { width: min(820px, calc(100vw - 32px)); }
.bulk-match-toolbar { display: flex; align-items: center; justify-content: space-between; gap:var(--space-md); margin:var(--space-md) 0 var(--space-sm); padding:var(--space-sm) var(--space-md); border-radius:var(--radius-md); background: var(--panel-soft); color: var(--text-soft); font-size: 10px; }
.bulk-match-suggestion { display: grid; grid-template-columns:auto minmax(130px,1fr) minmax(230px,1.4fr); align-items:center; gap:var(--space-sm); margin-top:var(--space-sm); padding:var(--space-sm); border-radius:var(--radius-md); background:#f8f8fd; }
.bulk-match-suggestion strong { overflow:hidden; color:var(--text); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.bulk-match-suggestion select { min-width:0; height:34px; padding:0 var(--space-2xl) 0 var(--space-sm); border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; color:var(--text-soft); font-size:10px; }
.match-confidence { padding:var(--space-xs) var(--space-sm); border-radius:var(--radius-pill); font-size:8px; font-weight:700; white-space:nowrap; }
.match-confidence.high { background:#e5f6ea; color:#267c4d; }
.match-confidence.possible { background:#fff3d8; color:#9a6507; }
.bulk-match-none { display: flex; align-items: center; gap:var(--space-sm); margin-top:var(--space-xs); padding:var(--space-sm); border-radius:var(--radius-md); background: #f8f8fd; color: var(--muted); font-size: 9px; }
.bulk-match-none select { min-width: 0; flex: 1; height: 34px; padding:0 var(--space-2xl) 0 var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; color: var(--text-soft); font-size: 10px; }
.bulk-cluster-banner { display: flex; align-items: center; gap:var(--space-sm); margin:var(--space-xs) 0; padding:var(--space-sm) var(--space-md); border: 1px dashed var(--accent); border-radius:var(--radius-md); background: var(--accent-soft); color: var(--text); font-size: 10px; }
.bulk-cluster-banner select { flex: 0 0 auto; min-width: 0; max-width: 60%; height: 30px; padding:0 var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-sm); background: #fff; font-size: 10px; }
.bulk-cluster-original-badge { display: inline-flex; color: var(--accent); font-weight: 600; }
.playlist-check-list { display:grid; gap:var(--space-sm); max-height:320px; overflow-x:hidden; overflow-y:auto; padding:var(--space-xs); }
.playlist-check-row { display:flex; align-items:center; gap:var(--space-sm); width:100%; min-height:42px; padding:0 var(--space-md); border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; color:var(--text-soft); font-size:11px; cursor:pointer; }
.playlist-check-row:hover { border-color:#d7d7f2; background:var(--panel-soft); }
.playlist-check-row:has(input:checked) { border-color:#c8c9f4; background:var(--accent-soft); color:var(--text); }
.playlist-check-row input { flex:0 0 auto; margin:0; accent-color:var(--accent); }
.merge-parent-choices { display:grid; gap:var(--space-sm); margin-top:var(--space-md); }
.merge-parent-choice { display:flex; align-items:center; gap:var(--space-md); min-height:54px; padding:var(--space-sm) var(--space-md); border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; cursor:pointer; }
.merge-parent-choice:hover, .merge-parent-choice:has(input:checked) { border-color:#c9caf3; background:var(--accent-soft); }
.merge-parent-choice input { margin:0; accent-color:var(--accent); }
.merge-parent-choice span { display:grid; gap:var(--space-xs); }
.merge-parent-choice strong { color:var(--text); font-size:11px; }
.merge-parent-choice small { color:var(--muted); font-size:9px; }
.merge-parent-choice.is-disabled { opacity:.58; cursor:default; }
.project-match-modal { width:min(900px,calc(100vw - 32px)); max-height:min(760px,calc(100vh - 32px)); overflow:auto; }
.project-match-head { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-lg); }
.project-match-toolbar { display:flex; justify-content:flex-end; margin:var(--space-md) 0; }
.project-match-list { display:grid; gap:var(--space-sm); }
.project-match-row { display:grid; grid-template-columns:70px minmax(180px,1fr) minmax(220px,1fr) 105px; align-items:center; gap:var(--space-sm); padding:var(--space-sm); border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; }
.project-match-copy { display:grid; gap:var(--space-xs); min-width:0; }
.project-match-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.project-match-copy small { color:var(--muted); }
.project-match-row select { min-width:0; }
@media (max-width:760px){.project-match-row{grid-template-columns:70px 1fr}.project-match-row select{grid-column:1/-1}}
.inline-view-song { display: block; margin-top:var(--space-sm); padding:var(--space-xs) var(--space-sm); border: 1px solid #ccccf1; border-radius:var(--radius-sm); background: var(--accent-soft); color: var(--accent); font-size: 9px; font-weight: 600; }
.bfr-progress { height: 3px; margin-top:var(--space-xs); overflow: hidden; border-radius:var(--radius-sm); background: #ececf2; }
.bfr-progress-bar { width: 0; height: 100%; background: var(--accent); }
.login-error { color: var(--danger); font-size: 11px; }

.version-panel-backdrop { position: fixed; inset: 0; z-index: 79; background: rgba(24, 25, 34, .2); backdrop-filter: blur(2px); }
.version-panel {
  position: fixed; top: 14px; right: 14px; bottom: 12px; z-index: 80; width: min(460px, calc(100vw - 28px));
  padding:var(--space-xl); overflow-y: auto; border: 1px solid var(--line); border-radius:var(--radius-lg);
  background: #fff; box-shadow: -18px 0 55px rgba(23, 26, 38, .15);
  transform: translateX(calc(100% + 30px)); transition: transform .22s ease;
}
.version-panel.open { transform: translateX(0); }
.version-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap:var(--space-md); }
.version-panel-kicker { margin-bottom:var(--space-xs); color: var(--accent); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.version-panel h3 { margin:0; font-size: 21px; letter-spacing: -.45px; }
.version-panel-subtitle { margin-top:var(--space-xs); color: var(--muted); font-size: 11px; text-transform: capitalize; }
.version-panel-actions { display: flex; gap:var(--space-sm); margin:var(--space-lg) 0; }
.version-tab-panel { display: none; padding-top:var(--space-lg); }
.version-tab-panel.active { display: block; }
.version-lyrics { min-height: 180px; margin-bottom:var(--space-lg); white-space: pre-wrap; color: var(--text-soft); font-size: 12px; line-height: 1.8; }
.version-lyrics.empty { color: var(--muted); font-style: italic; }
.local-note { display: grid; gap:var(--space-xs); margin-bottom:var(--space-md); padding:var(--space-sm) var(--space-md); border-radius:var(--radius-md); background: #fff7e8; color: #856126; font-size: 10px; }
.local-note span { color: #98784a; line-height: 1.4; }
.version-comments { display: grid; gap:var(--space-sm); margin-bottom:var(--space-lg); }
.comments-empty { padding:var(--space-xl) var(--space-sm); color: var(--muted); text-align: center; font-size: 11px; }
.version-comment { display: grid; grid-template-columns: 50px 1fr auto; gap:var(--space-sm); padding:var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); }
.version-comment.comment-new { border-color:#cfd0f5; background:var(--accent-soft); }
.comment-time { align-self: start; padding:var(--space-xs) var(--space-xs); border: 0; border-radius:var(--radius-sm); background: var(--accent-soft); color: var(--accent); font-size: 9px; font-weight: 700; }
.version-comment p { margin:var(--space-xs) 0 var(--space-xs); color: var(--text); font-size: 11px; line-height: 1.45; }
.version-comment span { color: var(--muted); font-size: 8px; }
.delete-comment-btn,.review-comment-delete { align-self:start; padding:var(--space-xs) var(--space-sm); border:1px solid #f0caca; border-radius:var(--radius-md); background:#fff8f8; color:var(--danger); font-size:9px; font-weight:700; cursor:pointer; }
.delete-comment-btn:hover,.review-comment-delete:hover { border-color:#e6aaaa; background:#fff0f0; }
.comment-form textarea { width: 100%; padding:var(--space-sm); border: 1px solid var(--line); border-radius:var(--radius-md); outline: 0; resize: vertical; }
.comment-form textarea:focus { border-color: #bdbef1; box-shadow:var(--shadow-focus); }
.comment-form-row { display: flex; align-items: center; justify-content: space-between; gap:var(--space-md); margin-top:var(--space-sm); }
.comment-form-row label { color: var(--muted); font-size: 10px; }
.comment-form-row input { accent-color: var(--accent); }

@media (max-width: 1180px) {
  :root { --sidebar: 260px; }
  .track-row { grid-template-columns: 32px 104px minmax(182px, 1fr) 130px 170px 0 58px 96px 34px 34px; }
  .col-rating { visibility: hidden; }
}

@media (min-width: 901px) and (max-width: 1299px) {
  .deck { inset: 8px; }
}

@media (max-width: 900px) {
  body { overflow: auto; }
  .deck { inset: 0; display: block; border: 0; border-radius: 0; }
  .main { height: 100%; }
  .hamburger-btn { display: grid; place-items: center; }
  .mobile-drawer-wrap {
    position: fixed; inset: 0 auto var(--player) 0; z-index: 60; display: flex;
    width: min(88vw, 400px); transform: translateX(-105%); transition: transform .22s ease;
    overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    background: #fafafd; box-shadow: 18px 0 45px rgba(24, 27, 39, .18);
  }
  .mobile-drawer-wrap.open { transform: translateX(0); }
  .sidebar, .library-panel { width: 100%; min-height: auto; flex: none; overflow: visible; }
  .desktop-menu-bar { display: none; }
  .nav-projects, .nav-playlists, .scroll-nav-list { flex: none; max-height: none; overflow: visible; }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 55; display: none; background: rgba(20, 22, 30, .35); }
  .sidebar-backdrop.visible { display: block; }
  .top-control { display: none; }
  #topStudioBtn, #topPlanningBtn { display: none; } /* already reachable via the hamburger drawer (Studio Sessions / Plans) */
  .search-wrap { min-width: 0; flex: 1 1 60px; }
  .top-add-btn { padding:0; width: 38px; }
  .top-add-btn b { display: none; }
  .track-panel { padding:var(--space-lg) var(--space-md) 96px var(--space-md); }
  body.no-transport .track-panel { padding-bottom:var(--space-lg); }
  .track-table { min-width: 0; }
  .track-row { grid-template-columns: 30px 96px minmax(120px, 1fr) 0 minmax(90px, .6fr) 0 55px 96px 34px 34px; }
  .col-title { padding-right:var(--space-sm); }
  .version-studio-btn { width:28px; min-height:28px; justify-content:center; padding:0; }
  .version-studio-btn span, .version-studio-btn b { display:none; }
  .add-version-btn { display: none; }
  .col-studio, .col-rating { visibility: hidden; padding:0; }
  .col-num { visibility:visible; padding:0; }
  .col-num .track-number { display:none; }
  .mobile-artist { display: block; margin-top:var(--space-xs); color: var(--muted); font-size: 10px; font-weight: 400; }
  .transport { left: 6px; right: 6px; bottom: 5px; width: auto; height: 78px; transform: none; border-radius:var(--radius-lg); }
  .transport-controls { grid-template-columns: 1fr; gap:var(--space-xs); padding:var(--space-sm) var(--space-md); }
  .seek-row { grid-row: 2; }
  .transport-volume { position: absolute; right: 12px; top: 11px; width: 112px; }
  .creator-profile-card { position: static; width: auto; margin:var(--space-md) var(--space-sm) 0; border-radius:var(--radius-lg); }
  .creator-profile-menu { position: fixed; left: 12px; right: 12px; bottom: calc(var(--player) + 12px); width: auto; }
  .tools-caption { display: flex; margin-top:var(--space-md); }
  .library-panel-actions { position: static; display: grid!important; width: auto; grid-template-columns: 1fr; margin:0 var(--space-sm); }
  .sidebar-footer { position: static; display: flex!important; width: auto; justify-content: flex-start; padding:var(--space-md) var(--space-sm) 0; }
  .workspace-request { grid-template-columns: minmax(140px,1fr) 120px 34px; }
  .workspace-request-detail { grid-column: 1; }
  .workspace-request-action { grid-column: 2; grid-row: 1; }
  .workspace-request-status { grid-column: 2; grid-row: 2; }
  .workspace-open-song { grid-column: 3; grid-row: 1 / span 2; }
}

@media (max-width: 560px) {
  .mobile-drawer-wrap { width: 94vw; }
  .sidebar, .library-panel { width: 100%; }
  .form-grid { grid-template-columns: 1fr; }
  .full-width { grid-column: 1; }
  .lyrics-edit-head{align-items:stretch;flex-direction:column}
  .lyrics-copy-actions{display:grid;grid-template-columns:1fr}
  .lyrics-copy-actions .btn{width:100%;min-height:44px}
  .track-row { grid-template-columns: 0 96px minmax(80px, 1fr) 0 0 0 0 96px 0 32px; }
  .col-check,.col-fav { visibility:hidden; padding:0; }
  .col-duration { visibility:hidden; padding:0; }
  .col-project { visibility: hidden; padding:0; }
  .modal { padding:var(--space-lg); }
  .request-summary { grid-template-columns: 1fr; }
  .delete-request-btn { position: absolute; right: 24px; }
  .requests-toolbar { align-items: stretch; flex-direction: column; }
  .workspace-request { grid-template-columns: 1fr 34px; }
  .workspace-request-detail, .workspace-request-action, .workspace-request-status { grid-column: 1; }
  .workspace-open-song { grid-column: 2; grid-row: 1 / span 4; }
  .home-workspace { grid-template-columns: 1fr; }
  .home-card,.home-third { grid-column:1; }
  .transport-volume { width: 38px; }
  .transport-volume input { display: none; }
}
/* 1.3 Planning and compact library drawer */
.nav-projects { flex:1 1 55%; }
.nav-plans { flex:0 1 34%; min-height:112px; padding-top:var(--space-sm); border-top:1px solid var(--line); }
.plan-sidebar-item { width:100%; display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:var(--space-sm); padding:var(--space-sm) var(--space-sm); border:0; border-radius:var(--radius-md); background:transparent; color:var(--text-soft); text-align:left; }
.plan-sidebar-item:hover,.plan-sidebar-item.active { background:var(--accent-soft); color:var(--accent); }
.plan-sidebar-icon { display:grid; place-items:center; width:28px; height:28px; border-radius:var(--radius-md); background:#eeeeff; font-size:14px; }
.plan-sidebar-copy { min-width:0; display:grid; gap:var(--space-xs); }.plan-sidebar-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.plan-sidebar-copy small{color:var(--muted);font-size:9px}
.plan-sidebar-progress { width:32px;height:3px;overflow:hidden;border-radius:var(--radius-sm);background:#e6e7ec}.plan-sidebar-progress i{display:block;height:100%;background:var(--accent)}
.plan-view-all { align-self:flex-start;margin:var(--space-xs) var(--space-sm);padding:var(--space-xs) 0;border:0;background:none;color:var(--accent);font-size:10px }
.library-drawer-toggle { flex:0 0 48px;display:flex;align-items:center;gap:var(--space-sm);width:calc(100% - 10px);margin:var(--space-xs);padding:0 var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;color:var(--text-soft);text-align:left }
.library-drawer-toggle span{font-size:18px;color:var(--accent)}.library-drawer-toggle b{font-size:12px}.library-drawer-toggle i{margin-left:auto;font-style:normal;color:var(--muted)}.library-drawer-toggle:hover{border-color:#cecef0;background:var(--accent-soft);color:var(--accent)}
.library-panel.library-drawer { position:fixed;left:9px;bottom:calc(var(--player) + 9px);z-index:119;width:calc(var(--sidebar) - 1px);max-height:min(68vh,620px);padding:var(--space-sm) var(--space-md) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg) 14px 0 0;background:#fff;box-shadow:0 -18px 45px rgba(25,28,40,.15);overflow:auto;transform:translateY(calc(100% + 16px));opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease }
.library-panel.library-drawer.is-open{transform:none;opacity:1;pointer-events:auto}.library-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-sm) var(--space-sm);border-bottom:1px solid var(--line)}.library-drawer-head strong{font-size:13px}.library-drawer-head button{width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:20px}.library-drawer-head button:hover{background:var(--panel-soft)}
.library-panel.library-drawer .library-panel-actions,.library-panel.library-drawer .sidebar-footer,.library-panel.library-drawer .system-status{display:none!important}

.planning-workspace { height:100%; min-height:0; overflow:auto; padding:0 var(--space-lg) var(--space-xl); background:#fff; }
.planning-toolbar { position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) 0;background:#fff;border-bottom:1px solid var(--line) }
.planning-toolbar h3{margin:0;font-size:20px}.planning-toolbar .spacer{flex:1}.planning-toolbar button,.plan-btn{min-height:34px;padding:0 var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;color:var(--text-soft);font-weight:600;font-size:11px}.planning-toolbar button:hover,.plan-btn:hover{background:var(--panel-soft)}.planning-toolbar .primary,.plan-btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}
.plan-section-title{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-xl) 0 var(--space-sm);font-size:14px}.plan-section-title small{color:var(--muted);font-size:10px}
.plan-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:var(--space-md)}.plan-card{display:grid;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;text-align:left}.plan-card:hover{border-color:#cfcff0;box-shadow:0 8px 24px rgba(35,37,55,.06)}
.plan-card-top{display:flex;align-items:flex-start;gap:var(--space-md)}
.plan-card-image{display:block;flex:0 0 64px;width:64px;height:64px;overflow:hidden;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent-soft),#e4e4ff)}.plan-card-image img{width:100%;height:100%;object-fit:cover;display:block}.plan-card-image-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:22px;opacity:.4}
.plan-card-info{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0;flex:1}.plan-card h4{margin:0;font-size:14px}
.plan-date{color:var(--muted);font-size:10px}.plan-date.overdue{color:var(--danger);font-weight:700}
.plan-progress-row{display:flex;align-items:center;gap:var(--space-sm);color:var(--muted);font-size:10px}.plan-progress-bar{flex:1;height:5px;border-radius:var(--radius-sm);background:#ececf2;overflow:hidden}.plan-progress-bar i{display:block;height:100%;background:var(--accent)}
.plan-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.plan-chip{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:#f0f0ff;color:var(--accent);font-size:9px;font-weight:600}.plan-empty{padding:50px var(--space-lg);border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--muted);text-align:center}
.plan-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--space-lg);padding:var(--space-lg) 0}.plan-detail-hero h3{margin:var(--space-xs) 0;font-size:22px}.plan-detail-hero p{margin:var(--space-xs) 0;color:var(--text-soft);max-width:720px}.plan-kicker{color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.08em}.plan-summary{display:flex;gap:var(--space-sm);align-items:stretch}.plan-summary span{display:flex;flex-direction:column;gap:var(--space-xs);min-width:110px;padding:var(--space-sm) var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-soft)}.plan-summary strong{font-size:18px}.plan-summary small{color:var(--muted);font-size:9px;font-weight:600;letter-spacing:.03em}
.plan-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-md);overflow-x:auto}.plan-tab{flex:0 0 auto;padding:var(--space-sm) var(--space-md);border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-soft);font-size:11px}.plan-tab.active{background:var(--accent-soft);color:var(--accent);font-weight:700}
.activity-table{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg)}.activity-row{display:grid;grid-template-columns:30px minmax(220px,1fr) 130px 130px 140px 28px;align-items:center;gap:var(--space-sm);min-height:40px;padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--line);font-size:11px}.activity-row:last-child{border-bottom:0}.activity-row.head{min-height:34px;background:var(--panel-soft);color:var(--muted);font-size:9px;font-weight:700;text-transform:uppercase}.activity-check{width:18px;height:18px}.activity-title{display:grid;gap:var(--space-xs)}.activity-title strong{font-size:12px}.activity-title small{color:var(--muted);font-size:9px}.activity-row.completed{opacity:.58}.activity-row.completed .activity-title-cell strong{text-decoration:line-through}.activity-date.overdue{color:var(--danger);font-weight:700}.activity-warning{color:#d0801f;font-size:10px;cursor:help}.activity-open{width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:none;color:var(--accent)}
.plan-calendar{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));border:1px solid var(--line);border-radius:var(--radius-lg);overflow:auto}.calendar-day{min-height:120px;padding:var(--space-sm);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day:nth-child(7n){border-right:0}.calendar-day b{font-size:10px;color:var(--muted)}.calendar-item{display:block;width:100%;margin-top:var(--space-xs);padding:var(--space-xs) var(--space-xs);border:0;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);text-align:left;font-size:9px}.calendar-item.milestone{background:#fff1d8;color:#a76600}
.timeline-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius-lg)}.timeline-head,.timeline-row{display:grid;grid-template-columns:220px minmax(720px,1fr);min-width:940px}.timeline-head{background:var(--panel-soft)}.timeline-label{padding:var(--space-sm) var(--space-md);border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px}.timeline-grid{position:relative;min-height:42px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),#ededf2 calc(10% - 1px),#ededf2 10%)}.timeline-bar{position:absolute;top:11px;height:20px;min-width:10px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:8px;line-height:20px;text-align:center}.timeline-bar.milestone{width:14px!important;transform:rotate(45deg);border-radius:var(--radius-sm)}.unscheduled{margin-top:var(--space-md);padding:var(--space-md);border:1px dashed var(--line-strong);border-radius:var(--radius-lg)}.unscheduled strong{font-size:11px}
.plan-modal-backdrop{position:fixed;inset:0;z-index:210;display:grid;place-items:center;padding:var(--space-lg);background:rgba(25,27,38,.48)}.plan-modal{width:min(760px,100%);max-height:92vh;overflow:auto;padding:var(--space-lg);border-radius:var(--radius-lg);background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.25)}.plan-modal.wide{width:min(900px,100%)}.plan-modal h3{margin:0 0 var(--space-xs)}.plan-modal-sub{margin:0 0 var(--space-lg);color:var(--muted);font-size:10px}.plan-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.plan-field{display:grid;gap:var(--space-xs)}.plan-field.full{grid-column:1/-1}.plan-field label{color:var(--text-soft);font-size:10px;font-weight:600}.plan-field input,.plan-field select,.plan-field textarea{width:100%;padding:var(--space-sm);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#fff;outline:none}.plan-field textarea{min-height:90px;resize:vertical}.plan-field input:focus,.plan-field select:focus,.plan-field textarea:focus{border-color:#bfbfeb;box-shadow:var(--shadow-focus)}.plan-pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);max-height:150px;overflow:auto;padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md)}.plan-pick{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs);border-radius:var(--radius-sm);font-size:10px}.plan-pick:hover{background:var(--panel-soft)}.plan-pick input{width:16px;height:16px}.plan-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg)}.plan-attachments{display:grid;gap:var(--space-xs)}.plan-file{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:10px}
.plan-dep-picker{position:relative;padding:var(--space-sm);border:1px solid var(--line-strong);border-radius:var(--radius-md)}.plan-dep-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-xs)}.plan-dep-chips:empty{margin-bottom:0}.plan-dep-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:600}.plan-dep-chip button{display:flex;align-items:center;justify-content:center;width:15px;height:15px;border:0;border-radius:50%;background:none;color:inherit;font-size:13px;line-height:1;cursor:pointer}.plan-dep-chip button:hover{background:rgba(0,0,0,.08)}.plan-dep-search{width:100%;padding:var(--space-xs) var(--space-xs);border:0;outline:none;font-size:11px}.plan-dep-suggestions{position:absolute;left:0;right:0;top:100%;z-index:5;max-height:180px;overflow:auto;margin-top:var(--space-xs);padding:var(--space-xs);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:0 10px 26px rgba(20,20,30,.14)}.plan-dep-suggestions button{display:block;width:100%;padding:var(--space-sm) var(--space-sm);border:0;border-radius:var(--radius-sm);background:none;text-align:left;font-size:10px;cursor:pointer}.plan-dep-suggestions button:hover{background:var(--panel-soft)}
.plan-comment-list{display:grid;gap:var(--space-sm);max-height:220px;overflow:auto;margin-bottom:var(--space-sm)}.plan-comment{padding:var(--space-sm) var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:#fafafd}.plan-comment-head{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);font-size:10px}.plan-comment-head b{font-size:10px}.plan-comment-head small{color:var(--muted)}.plan-comment-delete{margin-left:auto;width:16px;height:16px;border:0;border-radius:50%;background:none;color:var(--muted);font-size:12px;cursor:pointer}.plan-comment-delete:hover{background:var(--panel-soft);color:var(--danger)}.plan-comment p{margin:0;font-size:11px;line-height:1.5;white-space:pre-wrap}
.plan-comment-add{display:flex;gap:var(--space-sm);align-items:flex-end}.plan-comment-add textarea{flex:1;min-height:44px;padding:var(--space-sm);border:1px solid var(--line-strong);border-radius:var(--radius-md);font:inherit;resize:vertical}
@media(max-width:1050px){.top-utility-btn b{display:none}.top-utility-btn{width:38px;padding:0}}
@media(max-width:720px){.library-panel.library-drawer{left:8px;right:8px;bottom:calc(var(--player) + 8px);width:auto;max-height:70vh;border-radius:var(--radius-lg)}.plan-form-grid{grid-template-columns:1fr}.plan-pick-grid{grid-template-columns:1fr}.planning-workspace{padding:0 var(--space-sm) var(--space-lg)}.plan-detail-hero{grid-template-columns:1fr}.plan-summary{justify-content:flex-start}.plan-bulk-bar{flex-wrap:wrap;gap:var(--space-sm)}.plan-bulk-bar select,.plan-bulk-bar .btn{flex:1 1 auto}.plan-comment-add{flex-direction:column;align-items:stretch}.board-column{flex:0 0 82vw;scroll-snap-align:start}.board-columns{scroll-snap-type:x mandatory}.plan-card-image{flex-basis:52px;width:52px;height:52px}.plan-csv-actions{display:none}}

/* 1.3.0.1 Planning refinements */
.sidebar{padding-bottom:58px}
.library-drawer-toggle{position:fixed;left:14px;bottom:calc(var(--player) + 14px);z-index:34;width:calc(var(--sidebar) - 12px);height:48px;margin:0;background:#fff}
.library-panel.library-drawer{bottom:calc(var(--player) + 62px);max-height:min(64vh,590px)}
.planning-notice{position:fixed;right:22px;bottom:86px;z-index:300;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background:#252735;color:#fff;font-size:11px;box-shadow:0 12px 28px rgba(0,0,0,.2)}

/* Project Notes 1.4.9.0 */
.notes-workspace{display:grid;grid-template-columns:minmax(190px,0.72fr) minmax(220px,0.9fr) minmax(360px,2fr);grid-template-rows:minmax(520px,calc(100vh - 300px));min-height:520px;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:#fff}
.notes-workspace>.notes-mobile-title{display:none;grid-column:1/-1;grid-row:1;margin:0}
.notes-workspace>.notes-sections{grid-column:1;grid-row:1}
.notes-workspace>.notes-pages{grid-column:2;grid-row:1}
.notes-workspace>.notes-editor{grid-column:3;grid-row:1}
.notes-workspace>.notes-notice{grid-column:1/-1;grid-row:1;align-self:end;justify-self:center;z-index:5;margin:var(--space-md);pointer-events:none}
.notes-column{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line)}
.notes-column:last-of-type{border-right:0}
.notes-column>header{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-sm);min-height:58px;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--line);background:var(--panel-soft)}
.notes-column>header h4{min-width:0;flex:1;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.notes-list{min-height:0;overflow:auto;padding:var(--space-xs)}
.notes-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto;align-items:stretch;margin-bottom:2px;border:1px solid transparent;border-radius:var(--radius-md)}
.notes-list-row>.notes-select{grid-column:1;grid-row:1}
.notes-list-row>.notes-actions{grid-column:2;grid-row:1}
.notes-section-row.is-selected{border-color:var(--accent);background:var(--accent-soft)}
.notes-page-row{border-radius:var(--radius-sm)}
.notes-page-row.is-selected{border-color:transparent;background:var(--panel-soft)}
.notes-select{min-width:0;padding:10px;border:0;background:transparent;text-align:left;color:var(--text);cursor:pointer}
.notes-select strong,.notes-select small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notes-select strong{font-size:12px}.notes-select small{margin-top:3px;color:var(--muted);font-size:9px}
.notes-pages .notes-list{padding:2px var(--space-xs)}
.notes-page-row{min-height:38px;margin-bottom:0}
.notes-page-row:not(:last-child){border-bottom-color:rgba(28,31,44,.08);border-radius:0}
.notes-page-row .notes-select{display:flex;align-items:center;min-height:38px;padding:5px 9px}
.notes-page-line{display:flex;align-items:baseline;min-width:0;max-width:100%;gap:7px}
.notes-page-line strong{flex:0 1 auto;min-width:0;font-size:11px}
.notes-page-line small{flex:0 0 auto;margin-top:0;font-size:8px}
.notes-page-row .notes-actions summary{min-height:32px;padding:8px 7px}
.notes-actions{position:relative;align-self:center;margin-right:4px}
.notes-actions summary{min-height:34px;padding:9px 7px;border-radius:var(--radius-sm);color:var(--text-soft);font-size:9px;font-weight:700;cursor:pointer;list-style:none}
.notes-actions summary::-webkit-details-marker{display:none}
.notes-actions[open]>div{position:fixed;z-index:400;width:150px;margin:0;padding:4px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:0 8px 24px rgba(28,31,44,.16)}
.notes-actions button{display:block;width:100%;min-height:34px;padding:6px 9px;border:0;border-radius:var(--radius-sm);background:#fff;text-align:left;color:var(--text);font-size:10px;cursor:pointer}
.notes-actions button:hover,.notes-actions button:focus-visible{background:var(--panel-soft)}
.notes-actions button:disabled{opacity:.4;cursor:not-allowed}
.notes-editor-head>div{min-width:0;flex:1}.notes-editor-head small{display:block;color:var(--muted);font-size:9px}.notes-editor-head [data-notes-save-status]{font-size:10px;font-weight:700;color:var(--success)}.notes-editor-head [data-notes-save-status].is-error{color:var(--danger)}
[data-notes-editor-body]{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(220px,1fr) auto;padding:var(--space-lg);gap:var(--space-md)}
[data-notes-editor-body]>.notes-title-label{grid-column:1;grid-row:1}
[data-notes-editor-body]>.notes-body-label{grid-column:1;grid-row:2}
[data-notes-editor-body]>.notes-editor-footer{grid-column:1;grid-row:3}
.notes-title-label,.notes-body-label{display:flex;min-height:0;flex-direction:column;gap:6px;color:var(--text-soft);font-size:10px;font-weight:700}
.notes-title-label input{width:100%;padding:10px 2px;border:0;border-bottom:1px solid var(--line-strong);background:#fff;color:var(--text);font-size:22px;font-weight:700}
.notes-body-label textarea{width:100%;height:100%;min-height:260px;resize:none;padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;color:var(--text);font:13px/1.55 inherit;white-space:pre-wrap;overflow:auto}
.notes-editor-footer{display:flex;align-items:center;gap:var(--space-md);min-height:36px;color:var(--muted);font-size:9px}.notes-editor-footer [data-notes-count]{margin-left:auto}.notes-editor-footer [data-notes-count].is-near-limit{color:var(--danger);font-weight:700}.notes-error-actions{display:flex;gap:var(--space-xs)}
.notes-column-empty,.notes-empty,.notes-loading,.notes-editor-loading{padding:var(--space-xl);color:var(--text-soft);text-align:center}.notes-column-empty p,.notes-empty p{margin:0 0 var(--space-sm)}
.notes-notice:not(:empty){padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:#252735;color:#fff;font-size:10px;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.notes-mobile-back{display:none;min-height:40px;padding:0;border:0;background:transparent;color:var(--accent);font-size:11px;font-weight:700}
.notes-workspace button:focus-visible,.notes-workspace input:focus-visible,.notes-workspace textarea:focus-visible,.notes-workspace summary:focus-visible,.notes-workspace h3:focus-visible,.notes-workspace h4:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

@media(max-width:720px){
  .notes-workspace{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(480px,calc(100dvh - 250px));min-height:520px;border-radius:var(--radius-md)}
  .notes-workspace>.notes-mobile-title{display:block;grid-column:1;grid-row:1;padding:var(--space-md);border-bottom:1px solid var(--line);font-size:16px}
  .notes-workspace>.notes-sections,.notes-workspace>.notes-pages,.notes-workspace>.notes-editor{grid-column:1;grid-row:2;display:none;border-right:0}
  .notes-workspace[data-notes-panel="sections"]>.notes-sections{display:flex}
  .notes-workspace[data-notes-panel="pages"]>.notes-pages{display:flex}
  .notes-workspace[data-notes-panel="editor"]>.notes-editor{display:flex}
  .notes-workspace>.notes-notice{grid-column:1;grid-row:2;align-self:end;justify-self:center}
  .notes-mobile-back{display:inline-flex;align-items:center;flex:0 0 auto}
  .notes-column>header{min-height:62px}.notes-column>header .plan-btn{min-height:42px}
  .notes-section-row{min-height:52px}.notes-section-row .notes-select{min-height:50px;padding:10px 12px}.notes-actions summary{min-height:44px;padding:14px 9px}.notes-actions button{min-height:44px}
  .notes-page-row{min-height:44px}.notes-page-row .notes-select{min-height:44px;padding:6px 10px}.notes-page-row .notes-actions summary{min-height:44px;padding:14px 9px}.notes-page-line{gap:6px}.notes-page-line strong{font-size:12px}
  [data-notes-editor-body]{padding:var(--space-md);grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(260px,1fr) auto}
  .notes-title-label input{font-size:18px}.notes-body-label textarea{min-height:280px;resize:vertical;font-size:16px}
  .notes-editor-footer{align-items:flex-start;flex-wrap:wrap}.notes-editor-footer [data-notes-count]{margin-left:0}.notes-error-actions{flex-basis:100%}
}
.planning-toolbar a.plan-btn{display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}
.plan-btn.danger,.activity-action-menu .danger{color:var(--danger)}
.searchable-pick{display:grid;gap:var(--space-sm)}.searchable-pick>.pick-search{height:38px;padding:0 var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#fff}.searchable-pick>.pick-search:focus{border-color:#bfbfeb;outline:0;box-shadow:var(--shadow-focus)}
.plan-pick[hidden]{display:none}
.activity-table-expanded{overflow-x:auto}
.activity-row-expanded{grid-template-columns:22px 28px minmax(200px,1.4fr) 70px 80px 88px 88px 100px 78px 40px 28px;min-width:950px}
.activity-title-button{padding:0;border:0;background:none;text-align:left;color:var(--text);cursor:pointer}.activity-title-button:hover strong{color:var(--accent);text-decoration:underline}.activity-title-button small{display:block}
.activity-title-cell{display:flex;align-items:center;gap:var(--space-xs);cursor:text;overflow:hidden}.activity-title-cell strong{flex:1 1 auto;min-width:40px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.activity-title-cell small{display:flex;align-items:center;gap:var(--space-xs);flex:0 1 auto;min-width:0;overflow:hidden;color:var(--muted);font-size:9px}.activity-title-cell:hover{background:var(--accent-soft);border-radius:var(--radius-sm)}
.activity-row-toggle-cell{display:flex;align-items:center;justify-content:center}
.activity-row-child{padding-left:var(--space-2xl)}.activity-row-child .activity-title-cell strong{font-weight:500}
[data-field-edit]{border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-xs);margin:-2px -5px;cursor:pointer}[data-field-edit]:hover{background:var(--accent-soft)}
.inline-field-input{width:100%;padding:var(--space-xs) var(--space-xs);border:1px solid var(--accent);border-radius:var(--radius-sm);font:inherit;background:#fff}
.activity-details-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:14px;line-height:1;opacity:0}.activity-row:hover .activity-details-btn,.activity-row:focus-within .activity-details-btn{opacity:1}.activity-details-btn:hover{background:var(--panel-soft);color:var(--accent)}
.activity-subtask-group{position:relative;padding-left:var(--space-lg)}.activity-subtask-group::before{content:'';position:absolute;left:18px;top:0;bottom:34px;width:2px;border-radius:var(--radius-sm);background:var(--accent-soft)}.activity-subtask-group .activity-row-child{padding-left:var(--space-lg)}
.activity-add-subtask{display:block;width:100%;padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-2xl);border:0;border-top:1px solid var(--line);background:none;color:var(--muted);font-size:10px;text-align:left;cursor:pointer}.activity-add-subtask:hover{color:var(--accent);background:var(--panel-soft)}
.plan-section-header{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md) var(--space-xs);border-bottom:0}.plan-section-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:12px;cursor:pointer}.plan-section-toggle:hover{background:var(--panel-soft)}
.plan-section-name{font-size:12px;font-weight:700;color:var(--text);cursor:text;border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-xs);margin:-2px -5px}.plan-section-name:hover{background:var(--accent-soft)}.plan-section-name-fixed{cursor:default}.plan-section-name-fixed:hover{background:none}
.plan-section-delete{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:14px;opacity:0}.plan-section-header:hover .plan-section-delete{opacity:1}.plan-section-delete:hover{background:var(--panel-soft);color:var(--danger)}
.activity-add-task{display:block;width:100%;padding:var(--space-sm) var(--space-md);border:0;border-bottom:1px solid var(--line);background:none;color:var(--muted);font-size:10px;text-align:left;cursor:pointer}.activity-add-task:hover{color:var(--accent);background:var(--panel-soft)}
.plan-add-section{display:block;width:100%;padding:var(--space-sm) var(--space-md);border:0;background:none;color:var(--muted);font-size:10px;text-align:left;cursor:pointer}.plan-add-section:hover{color:var(--accent);background:var(--panel-soft)}
.plan-bulk-bar{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:11px;font-weight:600}.plan-bulk-bar select{padding:var(--space-xs) var(--space-sm);border:0;border-radius:var(--radius-sm);font-size:10px;font-weight:600;color:var(--text)}.plan-bulk-bar .btn{padding:var(--space-xs) var(--space-sm);font-size:10px}.plan-bulk-bar .btn-ghost{background:rgba(255,255,255,.16);color:#fff}.plan-bulk-bar .btn-ghost:hover{background:rgba(255,255,255,.28)}
.activity-select{width:16px;height:16px}
.board-columns{display:flex;gap:var(--space-md);overflow-x:auto;padding-bottom:var(--space-sm)}
.board-column{flex:0 0 260px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-soft);transition:background .12s ease,box-shadow .12s ease}
.board-column.drag-over{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}
.board-column-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-md);font-size:11px;font-weight:700}.board-column-head span{color:var(--muted);font-weight:600}
.board-column-cards{display:flex;flex-direction:column;gap:var(--space-sm);min-height:40px;padding:0 var(--space-sm)}
.board-card{padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;cursor:grab}.board-card:active{cursor:grabbing}.board-card.is-dragging{opacity:.35}
.board-card-title{margin-bottom:var(--space-xs);font-size:11px;font-weight:600}
.board-card-meta{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);color:var(--muted);font-size:9px}.board-card-meta i{margin-right:var(--space-xs)}
.board-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs)}.board-card-status{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);font-size:8px;font-weight:700;background:var(--panel-soft);color:var(--muted)}.board-card-status.status-completed{background:#e3f5e9;color:#278055}.board-card-status.status-overdue{background:#ffe9ec;color:#c53e53}.board-card-status.status-blocked{background:#fff0d9;color:#a46709}.board-card-assignee{color:var(--muted);font-size:9px}
.board-add-task{display:block;width:100%;padding:var(--space-sm) var(--space-md);margin-top:var(--space-xs);border:0;background:none;color:var(--muted);font-size:10px;text-align:left;cursor:pointer}.board-add-task:hover{color:var(--accent)}
.activity-milestone-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:var(--space-xs);border:0;border-radius:var(--radius-sm);background:var(--panel-soft);color:var(--muted);font-size:11px;cursor:pointer;vertical-align:middle}.activity-milestone-toggle:hover{background:var(--accent-soft);color:var(--accent)}
.activity-milestone-count{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:9px;font-weight:700;white-space:nowrap}
.activity-milestone-count[data-open-comments]{cursor:pointer}
.activity-milestone-count[data-open-comments]:hover{background:var(--accent);color:#fff}
.activity-status-picker{width:100%;padding:var(--space-xs) var(--space-xs);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fff;font-size:10px;font-weight:600;line-height:1.4}
.activity-type{display:flex;align-items:center;gap:var(--space-xs);color:var(--text-soft);font-size:10px;overflow:hidden}.activity-type i{color:var(--accent);font-size:8px;font-style:normal}
.activity-start,.activity-date,.activity-assignee{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.activity-status{display:inline-flex;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);font-size:9px;font-style:normal;font-weight:700}.status-open{background:#eef0f4;color:#656a76}.status-blocked{background:#fff0d9;color:#a46709}.status-overdue{background:#ffe9ec;color:#c53e53}.status-completed{background:#e3f5e9;color:#278055}
.activity-gear-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:26px;padding:3px 7px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:#fff;color:var(--muted);font-size:9px;font-weight:650;white-space:nowrap}.activity-gear-btn b{font-size:8px;font-weight:700}.activity-gear-btn.is-empty b{color:#9a9ca5;font-weight:500}.activity-gear-btn.has-gear{border-color:#c8c6f7;background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px rgba(87,80,218,.08)}.activity-gear-btn.has-gear b{display:grid;min-width:17px;height:17px;padding:0 4px;place-items:center;border-radius:var(--radius-pill);background:var(--accent);color:#fff}.activity-gear-btn:hover{border-color:var(--accent);color:var(--accent)}.activity-files{color:var(--muted);font-size:10px}.activity-menu-wrap{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-xs)}.activity-more{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:14px}.activity-more:hover{background:var(--panel-soft);color:var(--text)}
.activity-action-menu{position:fixed;z-index:250;min-width:160px;padding:var(--space-xs);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:0 14px 35px rgba(22,25,36,.18)}.activity-action-menu button{display:block;width:100%;padding:var(--space-sm) var(--space-sm);border:0;border-radius:var(--radius-sm);background:none;color:var(--text-soft);text-align:left;font-size:10px}.activity-action-menu button:hover{background:var(--panel-soft);color:var(--text)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.calendar-toolbar>div{display:flex;align-items:center;gap:var(--space-xs)}.calendar-toolbar button{min-height:32px;padding:0 var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;color:var(--text-soft);font-size:10px}.calendar-toolbar button:hover,.calendar-toolbar button.active{border-color:#ccccf1;background:var(--accent-soft);color:var(--accent)}.calendar-toolbar strong{margin-left:var(--space-sm);font-size:12px}.calendar-mode{padding:var(--space-xs);border-radius:var(--radius-md);background:var(--panel-soft)}.calendar-mode button{border:0;background:transparent}.calendar-mode button.active{background:#fff;box-shadow:0 2px 7px rgba(30,33,47,.08)}
.multi-month-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:var(--space-md);align-items:start}.mini-month{padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}.mini-month h4{margin:0 0 var(--space-sm);font-size:12px}.mini-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.mini-weekday{padding:var(--space-xs);color:var(--muted);font-size:8px;font-weight:700;text-align:center}.mini-day{min-width:0;min-height:78px;padding:var(--space-xs);border-top:1px solid var(--line);border-right:1px solid var(--line)}.mini-day:nth-child(7n){border-right:0}.mini-day.outside{opacity:.35}.mini-day.today>b{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:var(--accent);color:#fff}.mini-day>b{display:block;margin-bottom:var(--space-xs);color:var(--text-soft);font-size:9px}.mini-day .calendar-item{overflow:hidden;margin:var(--space-xs) 0;padding:var(--space-xs) var(--space-xs);text-overflow:ellipsis;white-space:nowrap;font-size:7px}.mini-day>small{color:var(--muted);font-size:7px}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-lg)}.week-day{min-height:360px;padding:var(--space-sm);border-right:1px solid var(--line)}.week-day:last-child{border-right:0}.week-day.today{background:#fafaff}.week-day h4{display:flex;align-items:center;justify-content:space-between;margin:0 0 var(--space-sm);color:var(--muted);font-size:10px}.week-day h4 b{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;color:var(--text)}.week-day.today h4 b{background:var(--accent);color:#fff}.week-item{display:grid;gap:var(--space-xs);width:100%;margin-bottom:var(--space-xs);padding:var(--space-sm);border:0;border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text);text-align:left}.week-item.milestone{border-color:#d68b1d;background:#fff2df}.week-item strong{font-size:9px}.week-item small{color:var(--muted);font-size:7px}.week-empty{color:#b2b4bd;font-size:8px}
.timeline-label small{display:block;margin-top:var(--space-xs);color:var(--muted);font-size:8px}
.csv-import-actions{display:flex;gap:var(--space-sm);margin:var(--space-md) 0}.csv-import-actions label{display:inline-flex;align-items:center;cursor:pointer}.csv-progress{position:relative;height:27px;margin:var(--space-sm) 0;overflow:hidden;border-radius:var(--radius-md);background:#edeef3}.csv-progress i{position:absolute;inset:0 auto 0 0;width:0;background:#dedeff;transition:width .15s}.csv-progress span{position:relative;z-index:1;display:grid;height:100%;place-items:center;color:var(--text-soft);font-size:9px}.csv-summary{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md) 9px 0 0}.csv-summary strong{margin-right:auto;font-size:11px}.csv-summary span{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);font-size:8px;font-weight:700}.csv-valid{background:#e3f5e9;color:#278055}.csv-invalid{background:#ffe9ec;color:#c53e53}.csv-table{max-height:330px;overflow:auto;border:1px solid var(--line);border-top:0;border-radius:0 0 9px 9px}.csv-row{display:grid;grid-template-columns:45px 70px minmax(170px,1fr) minmax(220px,1.4fr);gap:var(--space-sm);padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--line);font-size:9px}.csv-row:last-child{border-bottom:0}.csv-row.head{position:sticky;top:0;background:var(--panel-soft);color:var(--muted);font-weight:700;text-transform:uppercase}.csv-row.invalid{background:#fff7f8;color:#a93345}.csv-success,.csv-error{display:grid;gap:var(--space-xs);padding:var(--space-lg);border-radius:var(--radius-md)}.csv-success{background:#e8f7ed;color:#24784f}.csv-error{background:#fff0f2;color:#b7394d}
@media(max-width:1400px){.multi-month-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}.multi-month-grid .mini-month:last-child{display:none}.planning-toolbar{flex-wrap:wrap}.activity-row-expanded{grid-template-columns:22px 26px minmax(180px,1.3fr) 65px 75px 82px 82px 90px 74px 36px 26px;min-width:870px}}
@media(max-width:900px){.multi-month-grid{grid-template-columns:1fr}.multi-month-grid .mini-month:not(:first-child){display:none}.library-drawer-toggle{left:13px;bottom:calc(var(--player) + 13px);width:calc(var(--sidebar) - 10px)}.library-panel.library-drawer{bottom:calc(var(--player) + 61px)}.calendar-toolbar{align-items:flex-start}.calendar-toolbar strong{display:none}}
@media(max-width:720px){.activity-row-expanded{grid-template-columns:22px 28px minmax(190px,1fr) 82px 88px 90px 74px 30px;min-width:730px}.activity-row-expanded>*:nth-child(4),.activity-row-expanded>*:nth-child(6),.activity-row-expanded>*:nth-child(8){display:none}.library-drawer-toggle{left:12px;right:12px;width:auto}.library-panel.library-drawer{bottom:calc(var(--player) + 61px)}.csv-row{grid-template-columns:38px 55px minmax(120px,1fr) minmax(180px,1.4fr)}}
@media(max-width:720px){
  .activity-table{overflow-x:visible}
  .activity-row-expanded.head{display:none}
  .activity-row-expanded.activity-data-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-sm);min-width:0;padding:var(--space-sm) var(--space-md)}
  .activity-row-expanded.activity-data-row>*:nth-child(4),.activity-row-expanded.activity-data-row>*:nth-child(6),.activity-row-expanded.activity-data-row>*:nth-child(8){display:flex}
  .activity-select{order:-2}
  .activity-row-toggle-cell{order:-1}
  .activity-title-cell{order:0;flex:1 1 auto;min-width:80px}
  .activity-row-expanded.activity-data-row::after{content:'';flex-basis:100%;height:0;order:0.5}
  .activity-type{order:1;flex:0 0 auto;font-size:9px}
  .activity-status-picker{order:1;flex:0 0 auto;width:auto;max-width:120px;font-size:9px;padding:var(--space-xs) var(--space-xs)}
  .activity-start,.activity-date,.activity-assignee,.activity-gear-btn,.activity-files{order:2;flex:0 0 auto;font-size:9px}
  .activity-menu-wrap{order:3;margin-left:auto}
  .plan-tab[data-tab="board"],.plan-tab[data-tab="timeline"]{display:none}
}
@media(max-width:900px){.sidebar{padding-bottom:var(--space-xs)}.library-drawer-toggle{position:static;width:calc(100% - 18px);height:48px;margin:var(--space-md) var(--space-sm) 0}.library-panel.library-drawer{left:8px;right:8px;bottom:calc(var(--player) + 8px);width:auto;max-height:70vh;border-radius:var(--radius-lg)}}

/* 1.3.0.2 compact module drawers, inline activities and searchable picklists */
.sidebar{position:absolute;inset:0 0 var(--player) 0;display:flex;width:100%;height:auto;flex-direction:column;gap:var(--space-sm);padding-bottom:var(--space-xs)}
.sidebar-module-toggle{position:static;flex:0 0 50px;width:calc(100% - 10px);height:50px;margin:0 var(--space-xs);padding:0 var(--space-sm)}
.sidebar-module-toggle span{display:grid;width:25px;height:25px;place-items:center;border-radius:var(--radius-sm);background:var(--accent-soft);font-size:14px}
.sidebar-module-toggle b{color:var(--text-soft);font-size:13px;font-weight:600}
.sidebar-module-toggle i{display:grid;width:32px;height:32px;place-items:center;margin-left:auto;border-radius:var(--radius-md);background:#f0f1f5;color:var(--text-soft);font-size:20px;font-weight:700;line-height:1;pointer-events:none}
.sidebar-module-toggle:hover i,.sidebar-module-toggle[aria-expanded="true"] i{background:#fff;color:var(--accent);box-shadow:0 1px 5px rgba(28,31,44,.09)}
.sidebar-module-toggle[aria-expanded="true"]{border-color:#cecef0;background:var(--accent-soft);color:var(--accent)}
.sidebar-module-drawer{flex:1 1 0!important;min-height:0!important;max-height:none;overflow:hidden;padding:0 var(--space-sm) var(--space-xs);border-top:0;opacity:1;transition:opacity .16s ease,padding .16s ease}
.sidebar-module-drawer.is-collapsed{flex:0 0 0!important;max-height:0!important;padding-top:0;padding-bottom:0;opacity:0;pointer-events:none}
.sidebar-module-drawer .nav-label{margin:0;padding:var(--space-xs) var(--space-xs) var(--space-xs)}
.sidebar-module-drawer .scroll-nav-list{flex:1 1 auto;max-height:none;overflow-y:auto}
.sidebar-module-drawer .nav-item,.sidebar-module-drawer .project-item,.sidebar-module-drawer .playlist-item,.sidebar-module-drawer .plan-sidebar-item{color:var(--text-soft);font-family:inherit;font-size:13px;font-weight:500}
.sidebar-module-drawer .nav-item:hover,.sidebar-module-drawer .project-item:hover,.sidebar-module-drawer .playlist-item:hover,.sidebar-module-drawer .plan-sidebar-item:hover{background:#f0f1f5;color:var(--text)}
.sidebar-module-drawer .nav-item.active,.sidebar-module-drawer .project-item.active,.sidebar-module-drawer .playlist-item.active,.sidebar-module-drawer .plan-sidebar-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.library-panel.library-drawer.sidebar-module-drawer{position:static;left:auto;bottom:auto;z-index:auto;width:auto;max-height:none;margin:0;padding:0 var(--space-sm) var(--space-xs);border:0;border-radius:0;background:transparent;box-shadow:none;overflow-y:auto;transform:none;opacity:1;pointer-events:auto}
.library-panel.library-drawer.sidebar-module-drawer.is-collapsed{opacity:0;pointer-events:none}
.library-panel.library-drawer .library-drawer-head,.library-panel.library-drawer .now-playing-compact,.library-panel.library-drawer .library-panel-actions,.library-panel.library-drawer .sidebar-footer,.library-panel.library-drawer .system-status{display:none!important}
.studio-sidebar-item{display:grid!important;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:var(--space-sm)}
.studio-sidebar-item .plan-sidebar-copy strong{font-size:12px}.studio-sidebar-item .plan-sidebar-copy small{font-size:9px}

.plan-multi-pick{position:relative}
.plan-multi-pick>summary{display:flex;align-items:center;min-height:40px;padding:var(--space-sm) var(--space-2xl) var(--space-sm) var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#fff;color:var(--text-soft);font-size:10px;cursor:pointer;list-style:none}
.plan-multi-pick>summary::-webkit-details-marker{display:none}
.plan-multi-pick>summary:after{content:'⌄';position:absolute;right:12px;color:var(--muted);font-size:15px}
.plan-multi-pick[open]>summary{border-color:#bfbfeb;box-shadow:var(--shadow-focus)}
.plan-multi-pick[open]>summary:after{content:'⌃'}
.plan-multi-panel{position:static;margin-top:var(--space-xs);padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:none}
.plan-multi-panel .plan-pick-grid{display:grid;grid-template-columns:1fr;max-height:220px;margin-top:var(--space-sm);padding:var(--space-xs);border:0;border-radius:0}
.plan-multi-panel .plan-pick{min-height:34px;padding:var(--space-sm) var(--space-sm)}
.plan-multi-panel .plan-pick span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.activity-data-row{cursor:pointer}
.activity-data-row:hover{background:#fafaff}
.activity-data-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.activity-data-row.is-dragging{opacity:.35}
.activity-data-row.drag-over-row{box-shadow:inset 0 2px 0 var(--accent)}
.plan-section-list{min-height:6px}.plan-section-list.drag-over{background:var(--accent-soft)}

@media(max-width:1250px){
.plan-modal-backdrop{display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:var(--space-lg)}
.plan-modal{flex:0 0 auto;max-height:none;margin:auto;overflow:visible}
.plan-modal-actions{padding:var(--space-md) 0 0;background:#fff;border-top:1px solid var(--line)}
}
@media(max-width:900px){.sidebar{width:100%;height:auto;flex:1 1 auto;padding-bottom:var(--space-xs)}.sidebar-module-toggle{position:static;width:calc(100% - 18px);margin:0 var(--space-sm)}.library-panel.library-drawer.sidebar-module-drawer{position:static;left:auto;right:auto;bottom:auto;width:auto;max-height:none;border-radius:0}}

/* 1.3.0.6 dedicated review workspace and shell-bound navigation */
.song-review-workspace{max-width:1120px;margin:0 auto;padding:var(--space-xs) 0 var(--space-2xl)}
.review-toolbar{display:flex;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}
.review-hero{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(135deg,#fafaff,#f4f4ff)}
.review-artwork{width:82px;height:82px;flex:0 0 82px;overflow:hidden;border-radius:var(--radius-lg);background:var(--accent-soft)}
.review-artwork img,.review-artwork .auto-cover{width:100%;height:100%;object-fit:cover}
.review-kicker{display:block;margin-bottom:var(--space-xs);color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.08em}
.review-hero h3,.review-section-head h3{margin:0;font-size:22px}.review-hero p{margin:var(--space-sm) 0 0;color:var(--muted)}
.review-player{margin-top:var(--space-md);padding:var(--space-lg) var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:0 8px 24px rgba(29,32,45,.04)}
.review-player-controls{display:flex;gap:var(--space-sm)}.review-seek{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);color:var(--muted);font-size:11px}.review-seek input{width:100%;accent-color:var(--accent)}
.review-discussion{margin-top:var(--space-md);padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}
.review-section-head{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:var(--space-md);border-bottom:1px solid var(--line)}.review-section-head>span{color:var(--muted);font-size:11px}
.review-comment-list{display:grid;gap:var(--space-sm);padding:var(--space-md) 0}.review-comment{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}.review-comment.linked-highlight{border-color:var(--accent);background:var(--accent-soft)}
.review-comment-time{align-self:start;padding:var(--space-xs) var(--space-sm);border:0;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:700}.review-comment-time[data-time=""]{cursor:default}.review-comment p{margin:0 0 var(--space-sm);line-height:1.5}.review-comment span{color:var(--muted);font-size:10px}
.review-comment-form textarea{width:100%;padding:var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);resize:vertical}.review-comment-form>div{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-top:var(--space-sm)}.review-comment-form label{color:var(--text-soft);font-size:11px}
@media(max-width:900px){.mobile-drawer-wrap{height:auto}.sidebar{position:static;inset:auto;width:100%;height:auto;flex:1 1 auto}.song-review-workspace{padding:0 var(--space-xs) var(--space-xl)}.review-hero{padding:var(--space-md)}.review-comment{grid-template-columns:58px minmax(0,1fr) auto}}

/* 1.3.0.7 keep every drawer inside the application shell at all widths */
.mobile-drawer-wrap{height:100%;min-height:0;overflow:hidden}
.sidebar{position:absolute;inset:0 0 var(--player) 0;width:100%;height:auto;min-height:0;display:flex;overflow:hidden}
.creator-profile-card{position:absolute;left:0;right:0;bottom:0;width:100%;height:var(--player);margin:0;border-radius:0 0 0 16px}
@media(max-width:900px){
  .mobile-drawer-wrap{position:fixed;inset:0 auto var(--player) 0;height:auto;overflow:hidden}
  .sidebar{position:absolute;inset:0 0 var(--player) 0;width:100%;height:auto;min-height:0;display:flex;flex:0 1 auto;overflow:hidden}
  .creator-profile-card{position:absolute;left:0;right:0;bottom:0;width:100%;margin:0;border-radius:0}
  .sidebar-module-drawer{min-height:0!important;overflow:hidden!important}
  .sidebar-module-drawer .scroll-nav-list{min-height:0;max-height:none;overflow-y:auto}
  .song-review-workspace{padding:0 var(--space-xs) var(--space-xl)}.review-hero{padding:var(--space-md)}.review-comment{grid-template-columns:58px minmax(0,1fr) auto}
}

/* 1.3.0.8 vertical Plan timeline */
.vertical-timeline-modal{width:min(900px,calc(100vw - 36px));padding:0;overflow:hidden;background:#f8f8fc}
.vertical-timeline-head{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);padding:var(--space-xl) var(--space-xl);border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
.vertical-timeline-head h3{margin:var(--space-xs) 0 var(--space-xs);font-size:25px}.vertical-timeline-head p{margin:0;color:var(--muted);font-size:11px}
.vertical-timeline-list{position:relative;display:grid;gap:0;max-height:min(680px,calc(100vh - 180px));overflow-y:auto;padding:var(--space-xl) var(--space-2xl) var(--space-2xl)}
.vertical-timeline-list:before{content:"";position:absolute;left:173px;top:25px;bottom:35px;width:2px;background:linear-gradient(var(--accent),#dfe0ec)}
.vertical-timeline-item{position:relative;display:grid;grid-template-columns:125px 36px minmax(0,1fr);align-items:start;width:100%;padding:0 0 var(--space-lg);border:0;background:transparent;color:var(--text);text-align:left}
.vertical-timeline-date{padding-top:var(--space-lg);color:var(--text-soft);font-size:10px;font-weight:600;text-align:right}
.vertical-timeline-marker{position:relative;z-index:2;display:grid;place-items:center;height:50px}.vertical-timeline-marker i{display:block;width:13px;height:13px;border:3px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px #cfd0f4}
.vertical-timeline-item.milestone .vertical-timeline-marker i{border-radius:var(--radius-sm);background:#d68b1d;transform:rotate(45deg)}.vertical-timeline-item.completed .vertical-timeline-marker i{background:var(--success)}.vertical-timeline-item.overdue .vertical-timeline-marker i{background:var(--danger)}
.vertical-timeline-card{display:block;padding:var(--space-md) var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:0 5px 18px rgba(28,31,44,.04);transition:.15s ease}.vertical-timeline-item:hover .vertical-timeline-card{border-color:#c9caf0;transform:translateY(-1px);box-shadow:0 9px 24px rgba(28,31,44,.08)}
.vertical-timeline-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.vertical-timeline-card-head strong{font-size:13px}.vertical-timeline-card p{margin:var(--space-sm) 0;color:var(--text-soft);font-size:11px;line-height:1.5}.vertical-timeline-meta,.vertical-timeline-card small{display:block;color:var(--muted);font-size:9px}.vertical-timeline-card small{margin-top:var(--space-sm);color:#8a641e}
@media(max-width:720px){.vertical-timeline-list{padding:var(--space-lg) var(--space-md) var(--space-xl)}.vertical-timeline-list:before{left:25px}.vertical-timeline-item{grid-template-columns:24px minmax(0,1fr)}.vertical-timeline-date{grid-column:2;padding:0 0 var(--space-xs);text-align:left}.vertical-timeline-marker{grid-column:1;grid-row:1/span 2;height:38px}.vertical-timeline-card{grid-column:2}.vertical-timeline-head{padding:var(--space-lg)}}

/* 1.3.0.9 calendar scheduling and rebuilt timelines */
@media(min-width:901px){.mobile-drawer-wrap{position:absolute;inset:0 auto 0 0;width:var(--sidebar);height:auto}}
.calendar-item,.week-item{cursor:grab}.calendar-item:active,.week-item:active{cursor:grabbing}.calendar-item.is-dragging,.week-item.is-dragging{opacity:.35}.calendar-drop-zone{transition:background .12s ease,box-shadow .12s ease}.calendar-drop-zone.drag-over{background:#eeeeff!important;box-shadow:inset 0 0 0 2px var(--accent)}
.timeline-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}.timeline-toolbar>div:first-child{display:grid;gap:var(--space-xs)}.timeline-toolbar strong{font-size:11px}.timeline-toolbar>div:first-child span{color:var(--muted);font-size:8px}.timeline-toolbar-actions{display:flex;align-items:center;gap:var(--space-xs)}.timeline-toolbar-actions>span{margin-right:var(--space-xs);color:var(--muted);font-size:8px;font-weight:700;text-transform:uppercase}.timeline-toolbar-actions button,.timeline-toolbar-actions .plan-btn{display:grid;min-width:32px;height:32px;place-items:center;padding:0 var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;color:var(--text-soft);font-size:10px;text-decoration:none}.timeline-toolbar-actions button:hover,.timeline-toolbar-actions .plan-btn:hover{border-color:#c8c9ee;background:var(--accent-soft);color:var(--accent)}
.timeline-modern{max-width:100%;overflow:auto;background:#fff}.timeline-content{width:calc(220px + var(--timeline-width));min-width:100%}.timeline-modern .timeline-head,.timeline-modern .timeline-row{grid-template-columns:220px var(--timeline-width);min-width:0}.timeline-modern .timeline-head{position:sticky;top:0;z-index:4;height:54px;background:#fafafd}.timeline-modern .timeline-label{position:sticky;left:0;z-index:3;display:grid;align-content:center;min-width:0;padding:var(--space-sm) var(--space-md);border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;color:var(--text);text-align:left}.timeline-modern .timeline-head .timeline-label{z-index:6;background:#fafafd}.timeline-modern .timeline-label strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.timeline-modern .timeline-label small{overflow:hidden;margin-top:var(--space-xs);color:var(--muted);font-size:7px;text-overflow:ellipsis;white-space:nowrap}
.timeline-axis{position:relative;border-bottom:1px solid var(--line);background:#fafafd}.timeline-date-tick{position:absolute;top:0;bottom:0;width:1px;background:#dedfe8}.timeline-date-tick b{position:absolute;top:18px;left:5px;color:var(--text-soft);font-size:8px;white-space:nowrap}.timeline-grid{position:relative;min-height:52px;border-bottom:1px solid var(--line);background:#fff}.timeline-grid-line{position:absolute;top:0;bottom:0;width:1px;background:#eeeef3}
.timeline-modern .timeline-bar{top:14px;height:24px;min-width:11px;padding:0;border:0;border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;line-height:24px;box-shadow:0 3px 9px rgba(91,92,226,.22)}.timeline-modern .timeline-bar:hover{filter:brightness(.94);box-shadow:0 5px 13px rgba(91,92,226,.3)}.timeline-modern .timeline-bar span{display:block;overflow:hidden;padding:0 var(--space-xs);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.timeline-modern .timeline-bar.status-completed{background:var(--success)}.timeline-modern .timeline-bar.status-overdue{background:var(--danger)}.timeline-modern .timeline-bar.status-blocked{background:#c58726}.timeline-modern .timeline-bar.milestone{top:18px;width:16px!important;height:16px;min-width:16px;border-radius:var(--radius-sm);transform:rotate(45deg)}

/* 1.3.0.10 stable Timeline sizing */
.timeline-content{width:max(100%,calc(220px + var(--timeline-width)))}
.timeline-modern .timeline-head,.timeline-modern .timeline-row{grid-template-columns:220px minmax(var(--timeline-width),1fr);width:100%}
.timeline-modern .timeline-axis,.timeline-modern .timeline-grid{border-right:1px solid var(--line)}

/* 1.3.0.12 user management */
.users-list{gap:var(--space-sm);max-height:390px;padding-right:var(--space-xs)}
.user-row{grid-template-columns:minmax(300px,1fr) 145px 90px 180px;gap:var(--space-md);padding:var(--space-md);align-items:end;background:#fff}
.user-identity{display:grid!important;grid-template-columns:1fr 1fr;gap:var(--space-sm)!important}
.user-identity label,.user-role-field,.user-active-field{display:grid;gap:var(--space-xs);color:var(--text-soft);font-size:10px;font-weight:600}
.user-identity small{grid-column:1/-1}
.user-row input[type="text"],.user-row input[type="email"],.user-row .user-name,.user-row select{width:100%;min-height:38px;padding:var(--space-sm) var(--space-sm)}
.user-active-field>span:last-child{display:flex;align-items:center;gap:var(--space-sm);min-height:38px;color:var(--text);font-size:11px}
.user-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);min-width:0}
.user-actions .btn{white-space:nowrap}
.user-create-grid input,.user-create-grid select{min-height:42px}
@media(max-width:720px){.user-row{grid-template-columns:1fr 1fr}.user-identity,.user-actions{grid-column:1/-1}.user-actions{justify-content:flex-start}}
@media(max-width:480px){.user-row,.user-identity{grid-template-columns:1fr}.user-identity small{grid-column:auto}}

/* 1.3.0.13 compact user cards */
.project-manager-modal:has(#usersList){width:min(760px,100%);overflow-x:hidden}
.users-list{display:grid;gap:var(--space-sm);width:100%;max-height:400px;overflow-x:hidden;overflow-y:auto;padding:0 var(--space-xs) var(--space-xs) 0}
.user-row{display:grid;grid-template-columns:1fr;gap:var(--space-md);width:100%;min-width:0;padding:var(--space-md) var(--space-md);overflow:hidden}
.user-card-head{display:flex!important;align-items:center;justify-content:space-between;gap:var(--space-md);min-width:0}
.user-card-head>div{display:grid;gap:var(--space-xs);min-width:0}.user-card-head strong{font-size:12px}.user-card-head small{color:var(--muted);font-size:9px}
.user-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 145px;gap:var(--space-sm);min-width:0}
.user-fields label{display:grid;gap:var(--space-xs);min-width:0;color:var(--text-soft);font-size:9px;font-weight:650}
.user-fields input,.user-fields select{width:100%;min-width:0;min-height:38px;padding:var(--space-sm) var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}
.user-active-field{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-soft);font-size:10px;font-weight:650}.user-active-field input{width:16px;height:16px}
.user-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.user-actions .btn{min-height:36px}
.user-create-grid{width:100%;min-width:0}.user-create-grid label{min-width:0}.user-create-grid input,.user-create-grid select{width:100%;min-width:0}
@media(max-width:720px){.user-fields{grid-template-columns:1fr 1fr}.user-fields label:last-child{grid-column:1/-1}.user-actions{justify-content:stretch}.user-actions .btn{flex:1}}
@media(max-width:480px){.user-fields{grid-template-columns:1fr}.user-fields label:last-child{grid-column:auto}.user-card-head{align-items:flex-start;flex-direction:column}}

/* 1.3.1.0 Configuration workspace and consistent icons */
.topbar .notification-wrap{order:99;margin-left:0}.notification-panel{left:auto;right:0}
.top-utility-btn span,.search-icon,.tool-icon,.nav-module-icon,.nav-icon,.plan-sidebar-icon,.sidebar-module-toggle>span,.home-btn{filter:grayscale(1);color:var(--text-soft)}
.notification-btn{filter:none!important}
.feedback-hidden .home-feedback-card,.feedback-hidden #sendFeedbackBtn,.feedback-hidden #helpFeedbackInboxBtn{display:none!important}
.configuration-workspace{grid-template-columns:190px minmax(0,1fr);gap:var(--space-md);min-height:520px}
.configuration-nav{display:grid;align-content:start;gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fafafd}
.configuration-nav button{display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:0 var(--space-md);border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-soft);font-weight:600;text-align:left}.configuration-nav button.active{background:var(--accent-soft);color:var(--accent)}.configuration-nav button:disabled{opacity:.48;cursor:default}.configuration-nav small{font-size:8px;font-weight:500}
.configuration-content{min-width:0;padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}.configuration-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-lg)}.configuration-head h3{margin:0 0 var(--space-xs);font-size:18px}.configuration-head p,.configuration-setting p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}
.config-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-md);background:#fafafd}.config-summary span{padding:var(--space-md);text-align:center;color:var(--text-soft);font-size:10px}.config-summary span+span{border-left:1px solid var(--line)}.config-summary b{color:var(--accent);font-size:14px}
.config-user-table{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md)}.config-user-row{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(180px,1.3fr) 130px 90px 110px;align-items:center;gap:var(--space-md);min-height:56px;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--line);font-size:10px}.config-user-row:last-child{border-bottom:0}.config-user-row.head{min-height:36px;background:#fafafd;color:var(--muted);font-size:8px;font-weight:700;text-transform:uppercase}.config-user-name{display:grid;gap:var(--space-xs)}.config-user-name b{font-size:11px}.config-user-name small{color:var(--muted);font-size:8px}.config-status{display:inline-flex;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:#f0f1f5;color:var(--muted);font-style:normal;font-weight:700}.config-status.active{background:#e7f7ed;color:var(--success)}.config-row-actions{display:flex;align-items:center;gap:var(--space-xs)}.config-row-actions .btn{min-height:30px;padding:0 var(--space-sm);font-size:8px}
.configuration-setting{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fafafd}.configuration-setting.disabled{opacity:.55}.configuration-setting b{display:block;margin-bottom:var(--space-xs)}.switch-row{display:flex;align-items:center;gap:var(--space-sm);white-space:nowrap;font-size:10px;font-weight:600}.switch-row input{width:18px;height:18px}.configuration-actions{display:flex;justify-content:flex-end;margin-top:var(--space-md)}.configuration-empty{padding:50px;text-align:center;color:var(--muted)}.config-active{display:flex!important;align-items:center;gap:var(--space-sm)}.config-active input{width:auto!important}
.config-threshold-row{display:flex;gap:var(--space-lg);margin-top:var(--space-md);flex-wrap:wrap}.config-threshold-row label{display:flex;flex-direction:column;gap:var(--space-xs);font-size:9px;font-weight:600;color:var(--text)}.config-threshold-row input{width:70px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:11px;font-weight:600}
.config-status-list{display:grid;gap:var(--space-sm);margin-top:var(--space-xs)}.config-status-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:#fafafd}.config-status-row .config-status-label{flex:1;min-width:0;padding:var(--space-sm) var(--space-sm);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:11px}.config-status-complete{display:flex;align-items:center;gap:var(--space-xs);white-space:nowrap;font-size:9px;color:var(--muted);font-weight:600}.config-status-complete input{width:16px;height:16px}.config-status-add{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px dashed var(--line-strong);border-radius:var(--radius-md)}.config-status-add input[type=text],.config-status-add input:not([type]){flex:1;min-width:0;padding:var(--space-sm) var(--space-sm);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:11px}
@media(max-width:900px){.configuration-workspace{grid-template-columns:1fr}.configuration-nav{grid-template-columns:repeat(3,1fr)}.configuration-nav button:disabled{display:none}.config-user-table{overflow-x:auto}.config-user-row{min-width:720px}}

/* 1.4.10.0 Crew & Contacts */
.crew-toolbar{display:flex;align-items:end;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-lg)}
.crew-toolbar label{font-size:9px;font-weight:700;color:var(--text-soft)}
.crew-toolbar input,.crew-toolbar select{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#fff;font:inherit}
.crew-toolbar input{flex:1 1 260px}.crew-contact-list,.crew-project-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:var(--space-md)}
.crew-contact-card,.crew-project-card{min-width:0;padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:0 5px 18px rgba(28,31,44,.04)}
.crew-contact-main,.crew-project-card>div:first-child,.crew-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}
.crew-contact-card h4,.crew-project-card h4{margin:0 0 var(--space-xs);font-size:15px}.crew-contact-card p,.crew-project-card p{overflow-wrap:anywhere}.crew-contact-main p,.crew-project-card>div:first-child p{margin:0;color:var(--muted);font-size:10px}
.crew-contact-card dl{display:flex;gap:var(--space-md);flex-wrap:wrap;margin:var(--space-md) 0}.crew-contact-card dl div{flex:1 1 120px}.crew-contact-card dt{color:var(--muted);font-size:8px;font-weight:700;text-transform:uppercase}.crew-contact-card dd{margin:var(--space-xs) 0 0;font-size:11px;overflow-wrap:anywhere}
.crew-notes{min-height:36px;margin:var(--space-sm) 0;color:var(--text-soft);font-size:10px;line-height:1.5;white-space:pre-wrap}.crew-sharing,.crew-help{color:var(--muted);font-size:9px}.crew-card-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-top:var(--space-md)}.crew-card-actions .btn{min-height:44px}
.crew-unavailable{padding:var(--space-md);border-radius:var(--radius-md);background:#f4f4f7;color:var(--text-soft);font-size:11px;font-weight:700}.crew-phone-link{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--space-md);font-weight:700}
.crew-contact-modal{width:min(720px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.crew-modal-head h3{margin:0}.crew-kicker{margin:0 0 var(--space-xs);color:var(--accent);font-size:9px;font-weight:700;text-transform:uppercase}
.crew-form-grid{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-lg)}.crew-form-grid>label{display:flex;flex:1 1 280px;flex-direction:column;gap:var(--space-xs);font-size:10px;font-weight:700}.crew-form-grid>label.full{flex-basis:100%}.crew-form-grid input:not([type=checkbox]),.crew-form-grid textarea{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);font:inherit}.crew-phone-sharing{flex-direction:row!important;align-items:flex-start}.crew-phone-sharing input{width:20px;height:20px;flex:0 0 auto}.crew-phone-sharing small{display:block;margin-top:var(--space-xs);color:var(--muted);font-weight:500;line-height:1.45}
.crew-form-error{padding:var(--space-md);border-radius:var(--radius-md);background:#fff0f2;color:var(--danger);font-size:11px;font-weight:700}.crew-project-list ul{padding:0;list-style:none}.crew-project-list li,.crew-attach-row{display:flex;align-items:center;gap:var(--space-sm);min-height:52px;border-bottom:1px solid var(--line)}.crew-project-list li span{flex:1}.crew-attach-row{align-items:flex-end;flex-wrap:wrap;margin-top:var(--space-lg);border:0}.crew-attach-row label{flex-basis:100%;font-size:10px;font-weight:700}.crew-attach-row select{flex:1;min-width:180px;min-height:44px}.crew-project-head{display:flex;align-items:end;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.crew-project-head h3{margin:0 0 var(--space-xs)}.crew-project-head p{margin:0;color:var(--muted)}.crew-project-head label{display:flex;flex-direction:column;gap:var(--space-xs);font-size:9px;font-weight:700}.crew-project-head input{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md)}
.crew-project-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.crew-project-actions .btn,.crew-project-detach{min-height:44px}.crew-project-detach{margin-top:var(--space-md)}.crew-picker-label{display:block;margin:var(--space-lg) 0 var(--space-xs);font-size:10px;font-weight:700}.crew-existing-select{width:100%;min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#fff}
.crew-project-identity{display:block!important}.crew-project-card{display:flex;flex-direction:column;gap:var(--space-lg)}.crew-project-card-footer{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.crew-project-card-footer .crew-phone-link{min-height:32px;margin:0}.crew-project-card-footer .crew-unavailable{margin:0;padding:var(--space-sm)}.crew-project-card-spacer{flex:1}.crew-project-card-footer .crew-project-detach{margin:0}
.crew-bulk-modal{width:min(760px,100%)}.crew-bulk-toolbar{display:flex;align-items:end;justify-content:space-between;gap:var(--space-md);margin-top:var(--space-lg)}.crew-bulk-toolbar label{display:flex;flex:1;flex-direction:column;gap:var(--space-xs);font-size:10px;font-weight:700}.crew-bulk-toolbar input{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md)}.crew-bulk-toolbar>div{display:flex;gap:var(--space-xs)}.crew-selected-count{margin:var(--space-md) 0 var(--space-sm);color:var(--text-soft);font-size:10px;font-weight:700}.crew-existing-list{display:grid;gap:var(--space-xs);max-height:min(460px,50dvh);overflow-y:auto;padding:var(--space-xs);border:1px solid var(--line);border-radius:var(--radius-md)}.crew-existing-option{display:flex;align-items:center;gap:var(--space-md);min-height:52px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer}.crew-existing-option:hover{background:#fafafd}.crew-existing-option input{width:20px;height:20px;flex:0 0 auto}.crew-existing-option span{display:flex;min-width:0;flex-direction:column;gap:var(--space-xs)}.crew-existing-option small{color:var(--muted);overflow-wrap:anywhere}
@media(max-width:720px){.crew-contact-list,.crew-project-cards{grid-template-columns:minmax(0,1fr)}.crew-project-head{align-items:stretch;flex-direction:column}.crew-project-head input{width:100%}.crew-project-actions .btn{flex:1}.crew-contact-modal{max-height:none}.crew-modal-backdrop{align-items:flex-start}.crew-form-grid input:not([type=checkbox]),.crew-form-grid textarea,.crew-toolbar input,.crew-toolbar select,.crew-project-head input,.crew-existing-select{font-size:16px}.crew-card-actions .btn{flex:1 1 45%}}
@media(max-width:720px){.crew-project-card-footer{align-items:flex-start;flex-direction:column}.crew-project-card-spacer{display:none}.crew-project-card-footer .crew-project-detach{align-self:stretch}.crew-bulk-toolbar{align-items:stretch;flex-direction:column}.crew-bulk-toolbar>div .btn{flex:1}.crew-bulk-toolbar input{font-size:16px}}

/* 1.4.11.0 Gear Kit */
.gear-toolbar{display:flex;align-items:end;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-lg)}.gear-toolbar label{display:flex;flex:1 1 220px;flex-direction:column;gap:var(--space-xs);font-size:10px;font-weight:700}.gear-toolbar input,.gear-toolbar select{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#fff}
.gear-case-list{display:flex;flex-direction:column;gap:var(--space-lg)}.gear-case{padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}.gear-case>header,.activity-gear-case>header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.gear-case h4,.activity-gear-case h4{margin:0 0 var(--space-xs);font-size:15px}.gear-case small,.activity-gear-case header p{margin:0;color:var(--muted);font-size:9px}.gear-order-actions,.gear-bulk-actions,.gear-state-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.gear-order-actions .btn,.gear-bulk-actions .btn,.gear-state-actions .btn{min-height:40px}
.gear-item-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}.gear-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:72px;padding:var(--space-md) 0;border-bottom:1px solid var(--line)}.gear-item h5{margin:0 0 var(--space-xs);font-size:12px}.gear-item p{max-width:640px;margin:0 0 var(--space-xs);color:var(--text-soft);font-size:10px;white-space:pre-wrap}.gear-item.inactive{background:#fafafd}.gear-status{font-size:9px;font-weight:700}.gear-item.inactive .gear-status{color:var(--danger)}.gear-add-item{margin-top:var(--space-md)}
.gear-form-modal{width:min(620px,100%)}.gear-form-modal>label{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-md);font-size:10px;font-weight:700}.gear-form-modal input,.gear-form-modal textarea,.gear-form-modal select{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-md);font:inherit}.gear-form-modal textarea{min-height:120px}.gear-error{padding:var(--space-md);border-radius:var(--radius-md);background:#fff0f2;color:var(--danger);font-weight:700}.gear-live{min-height:20px;color:var(--text-soft);font-size:10px}
.gear-activity-modal{width:min(1100px,100%);max-height:90dvh;overflow-y:auto}.gear-activity-toolbar{display:flex;justify-content:flex-end;margin:var(--space-lg) 0}.activity-gear-case{margin-top:var(--space-lg);padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg)}.activity-gear-case ul{margin:0;padding:0;list-style:none}.activity-gear-case li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:64px;padding:var(--space-sm) 0;border-top:1px solid var(--line)}.activity-gear-case li>span{display:flex;min-width:0;flex-direction:column;gap:var(--space-xs)}.activity-gear-case li small{color:var(--muted)}
.gear-selection-modal{width:min(760px,100%);max-height:90dvh;overflow-y:auto}.gear-selection-list{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-lg)}.gear-selection-row{display:flex;align-items:center;gap:var(--space-md);min-height:56px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer}.gear-selection-row input{width:20px;height:20px;flex:0 0 auto}.gear-selection-row span{display:flex;min-width:0;flex:1;flex-direction:column;gap:var(--space-xs)}.gear-selection-row small{color:var(--muted)}.gear-selection-row em{color:var(--text-soft);font-size:9px;font-style:normal;font-weight:700}
.gear-selection-part{margin-bottom:var(--space-lg)}.gear-selection-part>h4{margin:0 0 var(--space-xs)}.gear-selection-part>p{margin:0 0 var(--space-md);color:var(--muted);font-size:10px}.gear-selection-group{margin:var(--space-sm) 0}.gear-selection-group h5{margin:0;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:#fafafd;font-size:10px}.gear-selection-group .gear-selection-row{margin-top:var(--space-xs)}
@media(max-width:720px){.gear-case>header,.activity-gear-case>header,.gear-item,.activity-gear-case li{align-items:stretch;flex-direction:column}.gear-order-actions .btn,.gear-bulk-actions .btn,.gear-state-actions .btn{flex:1 1 45%;min-height:44px}.gear-form-modal,.gear-activity-modal,.gear-selection-modal{width:100%;max-height:none}.gear-modal-backdrop{align-items:flex-start}.gear-toolbar input,.gear-toolbar select,.gear-form-modal input,.gear-form-modal textarea,.gear-form-modal select{font-size:16px}.gear-selection-row{align-items:flex-start}.gear-selection-row em{flex-basis:100%}}
.vertical-timeline-modal{background:#fff}.vertical-timeline-actions{display:flex;gap:var(--space-sm)}.guide-timeline-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);max-height:min(680px,calc(100vh - 180px));overflow-y:auto;padding:var(--space-xl) var(--space-xl) var(--space-2xl);background:#fafafd}.guide-timeline-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:var(--space-md);min-width:0;padding:var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;color:var(--text);text-align:left;box-shadow:0 6px 20px rgba(28,31,44,.04);transition:.15s ease}.guide-timeline-item:hover{border-color:#c8c9ee;transform:translateY(-2px);box-shadow:0 10px 28px rgba(28,31,44,.09)}.guide-timeline-number{display:grid;width:32px;height:32px;place-items:center;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:700}.guide-timeline-item.milestone .guide-timeline-number{background:#fff1d8;color:#a76600}.guide-timeline-item.completed .guide-timeline-number{background:#e3f5e9;color:#278055}.guide-timeline-copy{display:block;min-width:0}.guide-timeline-date{display:block;margin-bottom:var(--space-xs);color:var(--accent);font-size:9px;font-weight:700;letter-spacing:.03em;white-space:normal}.guide-timeline-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.guide-timeline-card-head strong{font-size:13px;line-height:1.35}.guide-timeline-copy p{margin:var(--space-sm) 0;color:var(--text-soft);font-size:10px;line-height:1.55}.guide-timeline-meta,.guide-timeline-copy small{display:block;color:var(--muted);font-size:8px;line-height:1.45}.guide-timeline-copy small{margin-top:var(--space-xs);color:#8a641e}
@media(max-width:900px){.guide-timeline-list{grid-template-columns:1fr}.timeline-toolbar{align-items:flex-start;flex-direction:column}.timeline-toolbar-actions{flex-wrap:wrap}}

/* 1.3.16.0 Availability polls */
.avail-toolbar{display:flex;align-items:center;margin-bottom:var(--space-md)}
.avail-list{display:grid;gap:var(--space-sm)}
.avail-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}
.avail-row:hover{border-color:#cfcff0}
.avail-row-main{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}
.avail-row-main b{font-size:13px}
.avail-row-meta{color:var(--text-soft);font-size:10px}
.avail-row-actions{display:flex;gap:var(--space-xs);flex:0 0 auto}
.avail-status{display:inline-flex;align-self:flex-start;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);font-size:8px;font-weight:700;text-transform:uppercase}
.avail-status-open{background:var(--accent-soft);color:var(--accent)}
.avail-status-closed{background:#f0f0f3;color:var(--text-soft)}
.avail-status-confirmed{background:#e5f6ea;color:#267c4d}
.avail-dates-locked{margin:0 0 var(--space-sm);padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-md);background:#fff7e8;color:#8a641e;font-size:10px}
.avail-date-builder{display:grid;gap:var(--space-sm);margin-bottom:var(--space-sm)}
.avail-date-range{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}
.avail-date-range input,.avail-date-range select{padding:var(--space-sm) var(--space-sm);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:10px}
.avail-picker{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-sm)}
.avail-picker-nav{display:flex;gap:var(--space-sm)}
.avail-picker-month{display:grid;gap:var(--space-xs)}
.avail-picker-head{text-align:center;font-size:10px;color:var(--text-soft)}
.avail-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs);font-size:9px}
.avail-picker-grid>span{text-align:center;color:var(--muted);font-weight:700}
.avail-picker-cell{display:grid;place-items:center;height:26px;border:0;border-radius:var(--radius-sm);background:var(--panel-soft);color:var(--text);font-size:10px}
.avail-picker-cell.empty{background:transparent}
.avail-picker-cell.selected{background:var(--accent);color:#fff;font-weight:700}
.avail-picker-cell:disabled{opacity:.35;cursor:default}
.avail-chip-list{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}
.avail-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:600}
.avail-chip button{border:0;background:none;color:var(--accent);font-size:12px;line-height:1;padding:0}
.avail-confirmed-note{padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-md);background:#e5f6ea;color:#267c4d;font-size:11px}
.avail-matrix-wrap{overflow:auto;max-height:360px;border:1px solid var(--line);border-radius:var(--radius-md);margin-top:var(--space-sm)}
.avail-matrix{border-collapse:collapse;width:100%;font-size:10px}
.avail-matrix th,.avail-matrix td{padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
.avail-matrix th:first-child,.avail-matrix td:first-child{text-align:left;position:sticky;left:0;background:#fff}
.avail-matrix thead th{background:var(--panel-soft);color:var(--text-soft)}
.avail-matrix td.yes{color:#267c4d;font-weight:700}
.avail-matrix td.no{color:var(--muted)}
.avail-matrix th.confirmed,.avail-matrix td.confirmed{background:#e5f6ea}
.avail-matrix tfoot td{font-weight:700;background:var(--panel-soft)}
.avail-note{cursor:help}
.avail-ranking{margin-top:var(--space-sm);font-size:11px;color:var(--text-soft)}

/* 1.3.17.0 Availability review screen redesign (Calendar view, larger
   organiser modal, participant editing, best-availability, WhatsApp copy) */
.plan-modal.avail-review{width:min(1400px,90vw);max-height:90vh;padding:0;display:flex;flex-direction:column}
.avail-review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);padding:var(--space-xl) var(--space-xl) 0}
.avail-review-header h3{margin:0 0 var(--space-xs);font-size:18px}
.avail-review-header-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;flex:0 0 auto}
.avail-review-meta{padding:var(--space-xs) var(--space-xl) 0;color:var(--muted);font-size:11px;display:flex;align-items:center;gap:var(--space-xs)}
.avail-review-body{overflow-y:auto;padding:var(--space-md) var(--space-xl) var(--space-sm);flex:1 1 auto}
.avail-review-footer{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:var(--space-md) var(--space-xl);display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}
.avail-review-footer-right{display:flex;gap:var(--space-sm)}

.avail-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}
.avail-filter-pills,.avail-view-toggle{display:flex;gap:var(--space-xs)}
.avail-pill{padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;color:var(--text-soft);font-size:11px;font-weight:700}
.avail-pill.active{background:var(--accent-soft);color:var(--accent);border-color:#c9c9f5}
.avail-view-toggle .avail-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.avail-filter-summary{color:var(--text-soft);font-size:11px;flex:1 1 auto}

.avail-cal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--space-md)}
.avail-cal-card{display:flex;flex-direction:column;gap:var(--space-sm);text-align:left;padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;cursor:pointer;font:inherit}
.avail-cal-card:hover{border-color:#c9c9f5}
.avail-cal-card.everyone .avail-cal-day,.avail-cal-card.everyone .avail-cal-date{color:#267c4d}
.avail-cal-card.selected{background:#eefaf1;border-color:#8fd6ac}
.avail-cal-card.confirmed{box-shadow:0 0 0 2px #267c4d inset}
.avail-cal-card-head{display:flex;align-items:flex-start;justify-content:space-between}
.avail-cal-day{display:block;font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--text-soft)}
.avail-cal-date{display:block;font-size:13px;font-weight:800;letter-spacing:.02em}
.avail-cal-radio{width:18px;height:18px;flex:0 0 auto;border-radius:50%;border:2px solid var(--line-strong)}
.avail-cal-card.selected .avail-cal-radio{border-color:#267c4d;background:radial-gradient(circle,#267c4d 42%,transparent 44%)}
.avail-cal-count{font-size:12px;font-weight:700}
.avail-cal-people{display:flex;flex-direction:column;gap:var(--space-xs);font-size:11px}
.avail-cal-person.yes{color:#267c4d}
.avail-cal-person.no{color:#c13b4e}
.avail-cal-pill{align-self:flex-start;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:#e5f6ea;color:#267c4d;font-size:9px;font-weight:700}
.avail-cal-confirmed-pill{align-self:flex-start;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:#267c4d;color:#fff;font-size:9px;font-weight:700}
@media(max-width:720px){.avail-cal-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-sm)}}

.avail-matrix-col{cursor:pointer}
.avail-matrix-col.selected{background:#eefaf1;color:#267c4d}
.avail-matrix-col.confirmed{background:#e5f6ea}

.avail-dates-note{color:var(--muted);font-size:10px;margin:var(--space-sm) 0}
.avail-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-xs)}
.avail-panel{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-md);background:#fafafd}
.avail-panel h4{margin:0 0 var(--space-sm);font-size:12px}
.avail-panel-sub{margin:0 0 var(--space-sm);color:var(--text-soft);font-size:11px}
.avail-panel .plan-btn.full{width:100%;margin-bottom:var(--space-sm);justify-content:center}
.avail-panel small{color:var(--muted);font-size:10px}
@media(max-width:1050px){.avail-panels{grid-template-columns:1fr}}

.avail-participant-list{display:grid;gap:var(--space-sm)}
.avail-participant-row{display:flex;align-items:center;gap:var(--space-sm)}
.avail-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:700;flex:0 0 auto}
.avail-participant-name{flex:1 1 auto;font-size:11px;font-weight:600;min-width:0}
.avail-participant-count{color:var(--text-soft);font-size:10px;white-space:nowrap}
.avail-owner-note{display:block;margin-top:var(--space-sm);color:var(--muted);font-size:10px}

.avail-best-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-sm)}
.avail-best-list li{display:flex;align-items:center;gap:var(--space-sm);font-size:11px}
.avail-best-rank{width:18px;text-align:center;color:var(--muted);font-weight:700}
.avail-best-list li.everyone .avail-best-rank{color:#e0a72f}
.avail-best-date{flex:1 1 auto;font-weight:600}
.avail-best-status{color:var(--text-soft);font-size:10px}
.avail-best-list li.everyone .avail-best-status{color:#267c4d;font-weight:700}

/* Owner editing a participant's response */
.plan-modal.avail-edit-response{width:min(720px,100%)}
.avail-edit-banner{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent);font-size:11px;margin:var(--space-sm) 0}
.avail-edit-count{margin:0 0 var(--space-sm);font-size:11px;font-weight:700;color:var(--text-soft)}
.avail-edit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-sm);margin-bottom:var(--space-xs)}
.avail-edit-day{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:#fff;font:inherit;text-align:left}
.avail-edit-day-badge{font-size:10px;font-weight:800;letter-spacing:.03em;color:var(--text-soft)}
.avail-edit-day-state{font-size:12px;font-weight:700}
.avail-edit-day.available{border-color:#8fd6ac;background:#eefaf1}
.avail-edit-day.available .avail-edit-day-state{color:#267c4d}
.avail-edit-day.unavailable .avail-edit-day-state{color:#c13b4e}
.avail-edit-warning{margin:var(--space-sm) 0;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:#fff7e8;color:#8a641e;font-size:11px}
@media(max-width:720px){.avail-edit-grid{grid-template-columns:1fr}}

/* Mobile: match the existing full-page-scroll modal pattern (see the
   pre-existing @media(max-width:1250px) .plan-modal override) instead of
   a cramped internally-scrolling box, and keep the footer reachable. */
@media(max-width:1250px){
  .plan-modal.avail-review{width:100%;max-height:none}
  .avail-review-body{overflow-y:visible}
  .avail-review-header{flex-wrap:wrap}
  .avail-review-header-actions{width:100%}
  .avail-review-footer{position:sticky;bottom:-20px;flex-wrap:wrap}
  .avail-filter-row{flex-direction:column;align-items:stretch}
  .avail-view-toggle{justify-content:stretch}
  .avail-view-toggle .avail-pill{flex:1 1 auto;justify-content:center;text-align:center}
}
/* Mood Board (Plans module) */
.moodboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}
.moodboard-filters{display:flex;gap:var(--space-xs)}
.moodboard-upload-btn{cursor:pointer}
.moodboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md)}
.moodboard-card{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:#fff;cursor:pointer;transition:.12s ease}
.moodboard-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(28,31,44,.08)}
.moodboard-card.is-choice{border-color:var(--success)}
.moodboard-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:var(--panel-soft)}
.moodboard-card-body{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-sm)}
.moodboard-score{display:flex;gap:var(--space-sm);font-size:10px;font-weight:700}
.moodboard-score .mb-up{color:var(--success)}
.moodboard-score .mb-down{color:var(--danger)}
.moodboard-tag{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill)}
.moodboard-tag.choice{background:var(--success);color:#fff}
.moodboard-tag.rejected{background:var(--danger);color:#fff}
.moodboard-lightbox-backdrop{position:fixed;inset:0;z-index:220;background:rgba(15,16,26,.88);display:flex;align-items:stretch}
.moodboard-lightbox{display:flex;width:100%}
.moodboard-lightbox-main{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:var(--space-2xl)}
.moodboard-lightbox-main img{max-width:100%;max-height:100%;border-radius:var(--radius-md);box-shadow:0 20px 60px rgba(0,0,0,.5)}
.moodboard-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:20px;cursor:pointer}
.moodboard-nav:hover{background:rgba(255,255,255,.24)}
.moodboard-nav.prev{left:20px}
.moodboard-nav.next{right:20px}
.moodboard-lightbox-close{position:absolute;top:16px;right:20px;background:none;border:0;color:#fff;font-size:26px;cursor:pointer;z-index:2}
.moodboard-lightbox-panel{width:340px;flex:0 0 340px;background:#fff;padding:var(--space-lg);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}
.moodboard-lightbox-counter{font-size:10px;font-weight:700;color:var(--muted)}
.moodboard-vote-row{display:flex;gap:var(--space-sm)}
.moodboard-vote-btn{flex:1;padding:var(--space-sm) 0;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#fff;font-weight:700;font-size:12px;cursor:pointer}
.moodboard-vote-btn.up.active{background:var(--success);border-color:var(--success);color:#fff}
.moodboard-vote-btn.down.active{background:var(--danger);border-color:var(--danger);color:#fff}
.moodboard-status-row{display:flex;gap:var(--space-sm)}
.moodboard-status-row .plan-btn{flex:1}
.moodboard-manual-form{display:grid;gap:var(--space-sm);padding:var(--space-md);border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--panel-soft)}
.moodboard-manual-note{margin:0;font-size:10px;color:var(--muted)}
.moodboard-favourite-label{display:flex;align-items:center;gap:var(--space-xs);font-size:10px;font-weight:600}
.moodboard-metadata-summary{font-size:10px;color:var(--text-soft);padding:var(--space-sm) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.moodboard-comments{display:flex;flex-direction:column;gap:var(--space-sm);flex:1;min-height:0}
.moodboard-comment-list{flex:1;overflow-y:auto;min-height:60px}
.moodboard-comment{padding:var(--space-sm) 0;border-bottom:1px solid var(--line);font-size:10px}
.moodboard-comment strong{font-size:10px}
.moodboard-comment-when{color:var(--muted);font-size:8px;margin-left:var(--space-xs)}
.moodboard-comment-empty{color:var(--muted);font-size:10px}
.moodboard-comment-input{display:flex;gap:var(--space-sm)}
.moodboard-comment-input input{flex:1;padding:var(--space-sm) var(--space-sm);border:1px solid var(--line-strong);border-radius:var(--radius-md);font-size:11px}
@media(max-width:720px){.moodboard-lightbox{flex-direction:column}.moodboard-lightbox-panel{width:100%;flex:1}.moodboard-lightbox-main{padding:var(--space-lg)}}
/* Quick Record (top bar voice-memo capture) */
.qr-icon{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--danger);}
.quick-record-modal{display:flex;flex-direction:column;width:min(480px,100%);max-height:calc(var(--qr-visible-height,100dvh) - (2 * var(--space-lg)));overflow-y:auto;overscroll-behavior:contain}
.quick-record-stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl) 0}
.quick-record-clock{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.quick-record-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:#fff;font-weight:700;font-size:13px;cursor:pointer}
.quick-record-btn i{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--danger)}
.quick-record-btn.stop i{border-radius:var(--radius-sm)}
.quick-record-btn:hover{border-color:#cfd0f4}
.quick-record-playback{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);width:100%}
.quick-record-playback audio{width:100%}
.quick-record-destination{display:none;flex-direction:column;gap:var(--space-md);padding:0 var(--space-xs) var(--space-xs)}
.quick-record-modal>.modal-actions{position:sticky;z-index:2;bottom:calc(-1 * var(--space-xl));flex:0 0 auto;margin:var(--space-lg) calc(-1 * var(--space-xl)) calc(-1 * var(--space-xl));padding:var(--space-md) var(--space-xl) calc(var(--space-xl) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}
.quick-record-modal .modal-actions-right{align-items:center}.quick-record-modal .modal-actions-right .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;line-height:1.2;text-align:center}
.quick-record-discard-actions{display:flex}.quick-record-discard-actions .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
body.quick-record-open{overflow:hidden}
@media(max-width:720px){
  #quickRecordModal{align-items:flex-start;padding:var(--space-sm)}
  .quick-record-modal{width:100%;max-height:calc(var(--qr-visible-height,100dvh) - (2 * var(--space-sm)));padding:var(--space-lg)}
  .quick-record-modal input,.quick-record-modal select,.quick-record-modal textarea{font-size:16px}
  .quick-record-modal>.modal-actions{bottom:calc(-1 * var(--space-lg));margin:var(--space-md) calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg));padding:var(--space-md) var(--space-lg) calc(var(--space-lg) + env(safe-area-inset-bottom))}
  .quick-record-modal>.modal-actions{align-items:stretch;flex-direction:column}
  .quick-record-discard-actions,.quick-record-discard-actions .btn{width:100%}
  .quick-record-modal .modal-actions-right{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-left:0}
}
@media(max-width:900px) and (orientation:landscape){
  .quick-record-stage{padding:var(--space-sm) 0}
  .quick-record-clock{font-size:22px}
}

/* Phase 9: coherent local outline icons and contextual mobile shell. */
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.ui-icon{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rail-item>.ui-icon,.mobile-nav-item>.ui-icon{width:24px;height:24px}
.notification-btn .ui-icon,.topbar-menu-trigger .ui-icon{margin:auto}
.creator-profile-chevron{width:16px;height:16px}
.mini-player-play .ui-icon{width:16px;height:16px;fill:currentColor;stroke-width:1.5}
.mobile-context-header{display:none}

button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.snotty-tooltip{position:fixed;z-index:10000;display:grid;gap:5px;width:max-content;max-width:min(300px,calc(100vw - 20px));padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:#252735;color:#fff;box-shadow:0 14px 35px rgba(22,25,36,.25);font-size:12px;line-height:1.35;pointer-events:none;opacity:1;transform:translateY(0);transition:opacity .12s ease,transform .12s ease}
.snotty-tooltip[hidden]{display:none}.snotty-tooltip-title{font-size:12px;font-weight:750}.snotty-tooltip-description{color:#f1f1f5}
@media(prefers-reduced-motion:reduce){.snotty-tooltip{transition:none}}

@media(max-width:900px){
  html,body{max-width:100%;overflow-x:hidden}
  .main{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .mobile-context-header{
    position:sticky;top:0;z-index:85;display:grid;grid-template-columns:minmax(0,1fr) auto;
    align-items:center;min-height:56px;padding:var(--space-xs) max(var(--space-md),env(safe-area-inset-right)) var(--space-xs) max(var(--space-md),env(safe-area-inset-left));
    border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(10px)
  }
  .mobile-context-header:has(.mobile-header-back:not([style*="display:none"])){grid-template-columns:auto minmax(0,1fr) auto}
  .mobile-context-header h1{min-width:0;margin:0;font-size:16px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-header-back,.mobile-header-icon,.mobile-header-account{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:0;background:none;color:var(--text-soft)}
  .mobile-header-back{gap:2px;padding:0 var(--space-xs) 0 0;color:var(--accent);font-weight:650}
  .mobile-header-back .ui-icon{width:18px;height:18px}
  .mobile-header-actions{display:flex;align-items:center}
  .mobile-header-icon .qr-icon{width:18px;height:18px}
  .mobile-header-account .creator-avatar{margin:0}
  .mobile-context-header>.mobile-header-popover{
    position:absolute;top:calc(100% + var(--space-xs));right:max(var(--space-sm),env(safe-area-inset-right));left:auto;
    z-index:122;width:min(320px,calc(100vw - (2 * var(--space-sm))));max-height:calc(100dvh - 76px);
    overflow:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;box-shadow:0 14px 35px rgba(22,25,36,.16)
  }
  .mobile-context-header>.notification-panel.mobile-header-popover{padding:var(--space-md)}
  .mobile-context-header>.account-menu.mobile-header-popover{min-width:0}
  .topbar{display:none}
  .track-panel{min-width:0;padding-top:var(--space-md)}
  .track-panel-header{display:none}
  .mobile-bottom-nav{min-height:60px}
  .mobile-nav-item{min-height:52px}
  .mobile-mini-player{right:max(var(--space-sm),env(safe-area-inset-right));left:max(var(--space-sm),env(safe-area-inset-left));min-height:54px}
  .mini-player-play{width:44px;height:44px;flex:0 0 44px}
  body.mobile-player-expanded .transport{max-height:calc(100dvh - 64px - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
  .modal-overlay,.plan-modal-backdrop{padding:max(var(--space-sm),env(safe-area-inset-top)) max(var(--space-sm),env(safe-area-inset-right)) max(var(--space-sm),env(safe-area-inset-bottom)) max(var(--space-sm),env(safe-area-inset-left))}
  .modal input,.modal select,.modal textarea,.plan-modal input,.plan-modal select,.plan-modal textarea{font-size:16px}
  .btn-icon,.notification-btn,.heart-btn,.npc-menu-btn{min-width:44px;min-height:44px}
  .music-folder-open,.music-playlist-card,.music-shortcut-card,.music-recent-row{min-height:44px}
  .music-detail-hero{align-items:flex-start;flex-wrap:wrap}
  .music-detail-actions{width:100%;flex-wrap:wrap}
  .music-detail-actions .btn{min-height:44px;flex:1 1 auto}
  .song-table{max-width:100%;overflow-x:hidden}
  .song-table .table-head{display:none}
}
@media(max-width:480px){
  .mobile-context-header{padding-inline:var(--space-sm)}
  .mobile-header-actions{gap:0}
  .mobile-header-back span{display:none}
  .music-folder-grid,.music-playlist-grid,.music-shortcut-grid{grid-template-columns:1fr}
  .music-recent-row{grid-template-columns:42px minmax(0,1fr) 24px}
  .music-recent-date{display:none}
  .modal-actions{align-items:stretch;flex-direction:column-reverse}
  .modal-actions>.btn,.modal-actions-right,.modal-actions-right>.btn{width:100%}
}
/* Mood Board — multi-photo upload queue (individual + overall progress) */
.moodboard-upload-queue{margin-bottom:var(--space-md);padding:var(--space-md) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-soft)}
.moodboard-upload-queue-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-bottom:var(--space-sm)}
.moodboard-upload-queue-head span{color:var(--muted);font-weight:700}
.moodboard-upload-overall-track{height:6px;border-radius:var(--radius-pill);background:var(--line);overflow:hidden;margin-bottom:var(--space-sm)}
.moodboard-upload-overall-bar{height:100%;background:var(--accent);border-radius:var(--radius-pill);transition:width .15s ease}
.moodboard-upload-queue-list{display:flex;flex-direction:column;gap:var(--space-sm);max-height:180px;overflow-y:auto}
.moodboard-upload-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 76px;align-items:center;gap:var(--space-sm);font-size:10px}
.moodboard-upload-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-soft)}
.moodboard-upload-row-track{height:5px;border-radius:var(--radius-pill);background:var(--line);overflow:hidden}
.moodboard-upload-row-bar{height:100%;background:var(--accent);border-radius:var(--radius-pill);transition:width .1s linear}
.moodboard-upload-row-status{text-align:right;color:var(--muted);font-weight:700}
.moodboard-upload-row.status-done .moodboard-upload-row-bar{background:var(--success)}
.moodboard-upload-row.status-done .moodboard-upload-row-status{color:var(--success)}
.moodboard-upload-row.status-error .moodboard-upload-row-bar{background:var(--danger)}
.moodboard-upload-row.status-error .moodboard-upload-row-status{color:var(--danger)}
.moodboard-upload-row.status-skipped .moodboard-upload-row-status{color:var(--danger)}

/* =========================================================================
   PHASE 3 — application shell: compact rail, Music flyout, Application and
   Account menus, mobile bottom navigation, mobile mini-player.
   Old sidebar/hamburger/File-View-Help CSS above is now unused dead weight
   (harmless -- nothing in the markup matches those selectors any more) and
   is left in place rather than hunted down and deleted, to keep this diff
   reviewable. Uses the existing design tokens throughout; no new colours.
   ========================================================================= */

:root { --rail-width: 84px; }

.deck { grid-template-columns: var(--rail-width) minmax(0, 1fr); }

/* The original .transport rule (line ~394) positions its left edge using
   --sidebar (300px, the old wide sidebar's width). The rail is much
   narrower, so the transport bar's left edge needs to follow it instead --
   overriding just this one property, not the whole original rule. */
.transport { left: calc(8px + var(--rail-width)); }
@media (max-width: 900px) { .transport { left: 6px; } }

/* ---- Left rail ---- */
.rail {
  grid-column: 1; grid-row: 1; min-height: 0; height: 100%;
  display: flex; flex-direction: column; align-items: stretch;
  overflow: hidden; background: #fafafd; border-right: 1px solid var(--line);
}
.rail .brand { justify-content: center; padding:var(--space-lg) var(--space-xs) var(--space-md); }
.rail-nav { display: flex; flex-direction: column; gap:var(--space-xs); padding:0 var(--space-xs); }
.rail-item {
  display: flex; flex-direction: column; align-items: center; gap:var(--space-xs);
  padding:var(--space-sm) var(--space-xs); border: 0; border-radius:var(--radius-md);
  background: none; color: var(--text-soft); font-size: 10px; font-weight: 600;
}
.rail-item:hover { background: #f0f1f5; color: var(--text); }
.rail-item.active, .rail-item[aria-expanded="true"] { background: var(--accent-soft); color: var(--accent); }
.rail-icon { display: grid; place-items: center; width: 26px; height: 26px; font-size: 16px; }
.rail-label { line-height: 1.1; }

/* ---- Routed Music catalogue ---- */
.music-catalogue-workspace,.music-dashboard,.music-detail-workspace{min-width:0}
.music-dashboard{gap:var(--space-xl)}
.music-dashboard-primary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xl);align-items:start}
.music-dashboard-stack{display:grid;gap:var(--space-xl);min-width:0}
.music-dashboard-primary .music-section-head{min-height:36px;align-items:center;flex-wrap:wrap}.music-dashboard-primary .music-section-head>span{flex-wrap:wrap}
.music-dashboard-section{min-width:0}
.music-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm)}
.music-section-head h3{margin:0;font-size:12px}
.music-section-head>span{display:flex;align-items:center;gap:var(--space-sm)}
.music-section-link{border:0;background:none;color:var(--accent);font-size:9px;font-weight:650}
.music-folder-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md)}
.music-folder-card,.music-playlist-card,.music-shortcut-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:0 5px 16px rgba(28,31,44,.035)}
.music-folder-open{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:start;width:100%;min-width:0;padding:0;border:0;background:none;color:var(--text);text-align:left}
.music-folder-cover{display:block;width:88px;height:88px;overflow:hidden;border-radius:var(--radius-lg) 0 0 var(--radius-lg);background:var(--panel-soft)}
.music-folder-cover img,.music-folder-cover>.auto-cover{width:100%;height:100%;object-fit:cover}
.music-folder-copy{display:grid;align-content:start;gap:var(--space-xs);min-width:0;padding:var(--space-md)}
.music-folder-copy strong{display:-webkit-box;overflow:hidden;min-height:30px;font-size:11px;line-height:1.35;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.music-playlist-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.music-folder-copy small,.music-folder-copy em,.music-playlist-card small{overflow:hidden;color:var(--muted);font-size:8px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.music-recent-list{display:grid;gap:var(--space-sm)}
.music-recent-row{display:grid;grid-template-columns:36px minmax(0,1fr) 84px 20px;align-items:center;gap:var(--space-sm);width:100%;height:56px;padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:0 5px 16px rgba(28,31,44,.035);color:var(--text);text-align:left}
.music-recent-row:hover{background:#fafafd}
.music-recent-cover{width:36px;height:36px;overflow:hidden;border-radius:var(--radius-sm);background:var(--panel-soft)}
.music-recent-cover img,.music-recent-cover>.auto-cover{width:100%;height:100%;object-fit:cover}
.music-recent-copy{display:grid;gap:2px;min-width:0}.music-recent-copy strong,.music-recent-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-recent-copy strong{font-size:10px}.music-recent-copy small{color:var(--muted);font-size:8px}
.music-recent-date{display:grid;gap:1px;color:var(--muted);font-size:8px;line-height:1.15;text-align:right}.music-recent-date time{color:var(--text-soft);font-weight:600}.music-recent-open{color:var(--muted);font-size:15px;text-align:center}
.music-playlist-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}
.music-playlist-card{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;height:56px;column-gap:var(--space-sm);padding:var(--space-sm);color:var(--text);text-align:left}
.music-playlist-art{display:grid;grid-row:1/3;width:36px;height:36px;place-items:center;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent-soft),#f7f2ff);color:var(--accent);font-size:16px}
.music-playlist-card strong{align-self:end}.music-playlist-card small{align-self:start;color:var(--muted)}
.music-shortcut-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}
.music-shortcut-card{display:flex;align-items:center;height:56px;gap:var(--space-sm);padding:var(--space-sm);color:var(--text);text-align:left}
.music-shortcut-card>span{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);font-size:16px}
.music-shortcut-card strong,.music-playlist-card strong{font-size:10px}
.music-dashboard-empty{padding:var(--space-xl);border:1px dashed var(--line);border-radius:var(--radius-lg);color:var(--muted);font-size:10px;text-align:center}
.music-detail-header{margin-bottom:var(--space-lg)}
.music-breadcrumb{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);color:var(--muted);font-size:9px}.music-breadcrumb button{border:0;background:none;color:var(--accent);font-size:9px}.music-breadcrumb strong{color:var(--text-soft)}
.music-detail-hero{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}
.music-detail-hero h3{margin:0 0 var(--space-xs);font-size:18px}.music-detail-hero small{color:var(--muted);font-size:9px}
.music-detail-cover{display:grid;width:72px;height:72px;flex:0 0 auto;overflow:hidden;place-items:center;border-radius:var(--radius-md);background:var(--panel-soft);color:var(--accent);font-size:22px}.music-detail-cover img,.music-detail-cover>.auto-cover{width:100%;height:100%;object-fit:cover}
.music-detail-actions{display:flex;gap:var(--space-sm)}

/* ---- Compact top bar: Application menu + Account menu ---- */
.app-menu-wrap, .account-menu-wrap { position: relative; }
.topbar-menu-trigger { width: 38px; height: 38px; border: 1px solid var(--line); border-radius:var(--radius-md); background: #fff; font-size: 18px; color: var(--text-soft); }
.topbar-menu-trigger:hover { color: var(--accent); border-color: #cfd0f4; }
.topbar-dropdown {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 121; min-width: 210px;
  padding:var(--space-xs); border: 1px solid var(--line); border-radius:var(--radius-md);
  background: #fff; box-shadow: 0 14px 35px rgba(22,25,36,.16);
}
.topbar-dropdown button, .topbar-dropdown a {
  width: 100%; display: flex; justify-content: space-between; padding:var(--space-sm);
  border: 0; border-radius:var(--radius-sm); background: none; color: var(--text-soft);
  text-decoration: none; text-align: left; font-size: 12px;
}
.topbar-dropdown button:hover:not(:disabled), .topbar-dropdown a:hover { background: var(--panel-soft); color: var(--text); }
.topbar-dropdown .menu-separator { display: block; height: 1px; margin:var(--space-xs) 0; background: var(--line); }
.topbar-dropdown .version-link { color: var(--muted); font-size: 10px; }
.topbar-dropdown.mobile-app-menu{position:fixed;right:max(var(--space-sm),env(safe-area-inset-right));bottom:calc(64px + env(safe-area-inset-bottom));top:auto;z-index:140;width:min(260px,calc(100vw - (2 * var(--space-sm))));max-height:calc(100dvh - 88px);overflow-y:auto}

.account-trigger { display: flex; align-items: center; gap:var(--space-sm); border: 0; background: none; padding:var(--space-xs); border-radius:var(--radius-md); }
.account-trigger:hover { background: var(--panel-soft); }
.account-trigger strong { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.account-menu { min-width: 220px; }

/* ---- Now-playing menu relocated into the transport bar ---- */
.bar-artist-row { display: flex; align-items: baseline; gap:var(--space-xs); }
.bar-project { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 10px; }
.bar-project:not(:empty)::before { content: "\00b7"; margin-right:var(--space-xs); }
.transport-track-display .npc-menu-wrap { position: relative; margin-left:var(--space-xs); }

/* ---- Mobile bottom navigation ---- */
.mobile-bottom-nav {
  display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  grid-template-columns: repeat(5, 1fr); background: #fff; border-top: 1px solid var(--line);
  padding:var(--space-xs) 0 max(var(--space-xs), env(safe-area-inset-bottom));
}
.mobile-nav-item {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  border: 0; background: none; padding:var(--space-xs) 0; color: var(--muted); font-size: 9px; font-weight: 600;
}
.mobile-nav-item .rail-icon { font-size: 17px; }
.mobile-nav-item[aria-expanded="true"] { color: var(--accent); }

/* ---- Mobile mini-player ---- */
.mobile-mini-player {
  position: fixed; left: 6px; right: 6px; z-index: 89;
  display: grid; grid-template-columns:minmax(0,1fr) auto 28px; align-items:center; gap:4px var(--space-sm);
  height:auto; min-height:66px; padding:7px var(--space-md); border: 1px solid var(--line); border-radius:var(--radius-lg);
  background: #fff; box-shadow: 0 8px 24px rgba(25,28,40,.1); color: var(--text);
}
.mini-player-info { min-width:0;display:flex;flex-direction:column;align-items:flex-start;border:0;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer; }
.mini-player-title { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 600; }
.mini-player-artist { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 10px; }
.mini-player-controls{display:flex;align-items:center;gap:4px}.mini-player-play,.mini-player-skip{display:grid;place-items:center;width:34px;height:34px;min-width:34px;flex:0 0 34px;aspect-ratio:1;padding:0;border:0;border-radius:50%;background:var(--panel-soft);color:var(--accent);cursor:pointer}.mini-player-play{background:var(--accent-soft)}.mini-player-skip .ui-icon{width:14px;height:14px}.mini-player-progress{grid-column:1/-1;display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:6px;color:var(--muted);font-size:9px}.mini-player-progress span:last-child{text-align:right}.mini-player-progress input{width:100%;min-width:0;margin:0;accent-color:var(--accent)}
.mini-player-close{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}.mini-player-close:hover,.mini-player-close:focus-visible{background:var(--panel-soft);color:var(--text);outline:none}.mini-player-close .ui-icon{width:15px;height:15px}

@media (min-width: 901px) {
  .mobile-bottom-nav, .mobile-mini-player { display: none !important; }
}

@media (max-width: 900px) {
  .rail { display: none; }
  .deck { grid-template-columns: minmax(0, 1fr); }
  .music-dashboard-primary{grid-template-columns:1fr}
  .music-dashboard-primary .music-section-head{min-height:0}
  .music-folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .music-playlist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .music-shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .music-detail-hero{align-items:flex-start;flex-wrap:wrap}.music-detail-actions{width:100%;flex-wrap:wrap}
  .mobile-bottom-nav { display: grid; }
  .mobile-mini-player { bottom: calc(56px + max(var(--space-xs), env(safe-area-inset-bottom))); }
  .transport { display: none; }
  body.mobile-player-expanded .transport {
    display: flex; position: fixed; left: 6px; right: 6px;
    bottom: calc(56px + max(var(--space-xs), env(safe-area-inset-bottom)));
    z-index: 95; height: auto; border-radius:var(--radius-lg); box-shadow: 0 18px 45px rgba(24,27,39,.18);
  }
  body.mobile-player-expanded .mobile-mini-player { display: none !important; }
  body:not(.mobile-player-expanded) .mobile-mini-player { display: grid; }
  .track-panel { padding-bottom: 150px; }
  body.no-transport .mobile-mini-player, body.no-transport.mobile-player-expanded .transport { display: none; }
}
@media (max-width: 480px) {
  .music-folder-grid,.music-playlist-grid,.music-shortcut-grid{grid-template-columns:minmax(0,1fr)}
  .music-section-head{align-items:flex-start;flex-direction:column}
  .music-recent-row{grid-template-columns:36px minmax(0,1fr) 20px}.music-recent-date{display:none}
}

/* Phase 9 final shell overrides sit after the Phase 3 rules they refine. */
@media(max-width:900px){
  .mobile-mini-player{left:max(var(--space-sm),env(safe-area-inset-left));right:max(var(--space-sm),env(safe-area-inset-right));height:auto;min-height:66px}
  body.mobile-player-expanded .transport{
    left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));
    max-height:calc(100dvh - 64px - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain
  }
}
.col-comments{padding:0 4px;overflow:visible}
.song-companion-actions{display:inline-flex;align-items:center;justify-content:center;gap:2px;padding:3px;border:1px solid #dedff0;border-radius:var(--radius-md);background:#fff;box-shadow:0 2px 7px rgba(31,34,58,.06);white-space:nowrap}
.companion-row-btn{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:34px;height:32px;padding:0 6px;border:0;border-radius:var(--radius-sm);background:transparent;color:#62657a;cursor:pointer}
.companion-row-btn:hover,.companion-row-btn:focus-visible{background:var(--accent-soft);color:var(--accent);outline:none;box-shadow:var(--shadow-focus)}
.lyrics-row-btn.is-empty{color:#999bad;background:#fafafd;border:1px dashed #d6d7df}
.lyrics-row-btn.is-empty:hover,.lyrics-row-btn.is-empty:focus-visible{color:var(--accent);background:var(--accent-soft);border-color:#c6c7f1}
.companion-row-btn .ui-icon,.lyrics-flag .ui-icon{width:17px;height:17px;stroke-width:1.8}
.companion-row-btn span{font-size:9px;font-weight:700}
.companion-overlay{align-items:center;justify-content:center;padding:var(--space-lg);background:rgba(24,25,44,.3)}
.song-companion-modal{width:min(760px,calc(100vw - 32px));height:min(780px,calc(100dvh - 32px));display:flex;flex-direction:column;padding:0;overflow:hidden}
.companion-header{display:flex;justify-content:space-between;gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--border)}
.companion-header h3{margin:3px 0}.companion-header p{margin:0;color:var(--muted)}
.companion-tabs{display:flex;gap:var(--space-xs);padding:0 var(--space-lg);border-bottom:1px solid var(--border)}
.companion-tabs button{display:flex;align-items:center;gap:7px;min-height:48px;padding:0 var(--space-md);border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);cursor:pointer}
.companion-tabs button.active{border-color:var(--accent);color:var(--accent)}
.companion-tabs .ui-icon{width:17px;height:17px}.companion-body{flex:1;min-height:0;padding:var(--space-lg);overflow:hidden}
.companion-body>[role=tabpanel]{height:100%;overflow:auto}.companion-body pre{height:100%;box-sizing:border-box;margin:0;padding:var(--space-lg);overflow:auto;white-space:pre-wrap;font:inherit;line-height:1.65;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md)}
.companion-lyrics-label{margin-bottom:var(--space-sm);color:var(--text);font-size:12px;font-weight:700}
.companion-lyrics-editor{display:block;width:100%;height:calc(100% - 92px);min-height:220px;box-sizing:border-box;padding:var(--space-lg);resize:vertical;border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;color:var(--text);font:inherit;line-height:1.65}
.companion-lyrics-editor:focus{border-color:var(--accent);outline:none;box-shadow:var(--shadow-focus)}
.companion-lyrics-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);min-height:52px}
.companion-lyrics-actions p{min-width:0;margin:0 auto 0 0;color:var(--muted);font-size:11px}.companion-lyrics-actions p.error{color:var(--danger)}
.companion-comments{display:grid;gap:var(--space-sm);max-height:calc(100% - 155px);overflow:auto;margin-bottom:var(--space-md)}
.companion-comments,.companion-comment{min-width:0}.companion-comment{padding:var(--space-md);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md)}.companion-comment header{display:flex;min-width:0;gap:var(--space-sm);align-items:center}.companion-comment p{max-width:100%;margin:8px 0 0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.comment-time,.comment-delete{flex:0 0 auto;border:0;background:none;color:var(--accent);cursor:pointer}.comment-time{margin-left:auto}.comment-delete{margin-left:auto;color:var(--danger);font-size:10px;font-weight:700}
.comment-time+.comment-delete{margin-left:0}
.companion-body label{display:grid;gap:6px}.companion-body select,.companion-body input[type=text],.companion-body textarea{font-size:16px}
.companion-meter{height:10px;margin:var(--space-sm) 0 var(--space-md);overflow:hidden;border-radius:var(--radius-pill);background:var(--border)}.companion-meter i{display:block;width:0;height:100%;background:#22a06b}
.companion-tip{padding:var(--space-sm) var(--space-md);border:1px solid #d8d6ff;border-radius:var(--radius-md);background:#f7f6ff}.companion-record-status{display:flex;justify-content:space-between;margin:var(--space-md) 0}
#companionRecordBtn.recording,#companionRecordBtn.recording:disabled{border-color:#df4258;background:#df4258;color:#fff;opacity:1}
.companion-record-lyrics{margin:var(--space-md) 0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-soft)}.companion-record-lyrics summary{padding:var(--space-sm) var(--space-md);color:var(--text);font-weight:600;cursor:pointer}.companion-record-lyrics pre{max-height:220px;height:auto;margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:#fff;font-size:12px;line-height:1.55}
.companion-take{display:grid;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md)}.companion-take[hidden]{display:none}.companion-take audio{width:100%}.companion-take-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.companion-player{display:grid;grid-template-columns:auto minmax(120px,.65fr) auto auto minmax(120px,1fr) auto;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border);background:var(--surface-subtle)}
.companion-quick-save{white-space:nowrap;box-shadow:0 5px 16px rgba(90,79,230,.24)}
.companion-quick-save[hidden]{display:none}
.companion-footer-status{min-width:0;overflow:hidden;color:var(--text-soft);font-size:10px;font-weight:600;line-height:1.35;text-overflow:ellipsis}
.companion-footer-status.error{color:var(--danger)}
.companion-footer-status[hidden]{display:none}

/* Compact track rows: keep the version controls usable without crushing titles. */
@media(max-width:560px){
  .track-table{min-width:0;overflow:visible}
  .track-table>.track-row-head{display:none}
  .track-table .track-row:not(.track-row-head){
    grid-template-columns:auto auto auto minmax(0,1fr) 36px 40px;
    grid-template-rows:auto auto;min-height:88px;padding:6px 0
  }
  .track-table .col-check,.track-table .col-project,
  .track-table .col-rating,.track-table .col-duration{display:none}
  .track-table .col-title{grid-column:1 / -1;grid-row:1}
  .track-table .col-num{grid-column:1;grid-row:2}
  .track-table .col-comments{grid-column:2;grid-row:2}
  .track-table .col-studio{display:grid;grid-column:3;grid-row:2;visibility:visible;padding:0}
  .track-table .col-fav{grid-column:5;grid-row:2}
  .track-table .col-menu{grid-column:6;grid-row:2}
  .track-table.selection-mode .track-row:not(.track-row-head){
    grid-template-columns:32px auto auto auto minmax(0,1fr) 36px 40px
  }
  .track-table.selection-mode .col-check{display:grid;grid-column:1;grid-row:1 / span 2}
  .track-table.selection-mode .col-title{grid-column:2 / -1}
  .track-table.selection-mode .col-num{display:none}
  .track-table.selection-mode .col-comments{grid-column:3}
  .track-table.selection-mode .col-studio{grid-column:4}
  .track-table.selection-mode .col-fav{grid-column:6}
  .track-table.selection-mode .col-menu{grid-column:7}
  .track-table .col-title{
    min-width:0;padding:4px var(--space-sm);overflow:hidden;white-space:normal;line-height:1.25
  }
  .track-table .version-row .col-title{display:flex;align-items:center;flex-wrap:wrap;gap:3px var(--space-xs)}
  .track-table .version-title-text{flex:1 0 100%;min-width:0}
  .track-table .version-row-badges{order:2}
  .track-table .version-row .song-version-subtitle{order:2;margin:0}
  .track-table .version-row .mobile-artist{order:2;margin:0}
  .track-table .inline-title-text{
    display:inline;overflow-wrap:normal;word-break:normal
  }
  .track-table .song-version-subtitle,
  .track-table .mobile-artist{
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap
  }
  .track-table .col-num{justify-content:flex-start;padding:2px var(--space-sm)}
  .track-table .song-row-leading-actions{gap:4px}
  .track-table .row-play-btn,.track-table .row-record-along-btn{
    width:36px;height:36px;flex-basis:36px
  }
  .track-table .col-studio .version-studio-btn{
    position:static;width:36px;min-height:36px;flex:0 0 36px;padding:0;justify-content:center
  }
  .track-table .col-studio .version-studio-btn .ui-icon{width:19px;height:19px;flex-basis:19px}
  .track-table .col-studio .version-studio-btn span,.track-table .col-studio .version-studio-btn b{display:none}
  .track-table .song-expand-placeholder{display:none}
  .track-table .version-row .col-title{padding-left:var(--space-sm)}
  .track-table .col-comments{display:flex;justify-content:center;padding:0 2px}
  .track-table .song-companion-actions{gap:0;padding:2px}
  .track-table .companion-row-btn{min-width:30px;width:30px;height:32px;padding:0 3px}
  .track-table .col-fav,.track-table .col-menu{display:grid;place-items:center;padding:0;visibility:visible}
  .track-table .track-action-menu{max-width:calc(100vw - 16px);max-height:calc(100dvh - 24px);overflow-y:auto}
  .track-table .col-menu .btn-icon,.track-table .col-fav .btn-icon{min-width:36px;min-height:36px}
  .track-table .song-parent-row{
    grid-template-columns:minmax(0,1fr) 44px 40px;
    grid-template-rows:auto auto;min-height:92px;padding:6px 0
  }
  .track-table .song-parent-row .col-num{display:flex;grid-column:1;grid-row:2;justify-content:flex-start;padding-left:var(--space-sm)}
  .track-table .song-parent-row .col-studio{display:none}
  .track-table .song-parent-row .col-title{
    grid-column:1 / -1;grid-row:1;display:grid;grid-template-columns:48px minmax(0,1fr);
    grid-template-rows:auto auto;align-items:center;gap:2px var(--space-xs);padding:4px var(--space-sm)
  }
  .track-table .song-parent-row .song-artwork{grid-column:1;grid-row:1 / span 2;float:none;margin:0;width:42px;height:42px}
  .track-table .song-parent-row .inline-title-text{grid-column:2;grid-row:1;align-self:end}
  .track-table .song-parent-row .parent-song-meta{grid-column:2;grid-row:2;align-self:start;min-width:0}
  .track-table .song-parent-row .parent-song-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .track-table .song-parent-row .col-comments{grid-column:2;grid-row:2}
  .track-table .song-parent-row .col-fav{display:none}
  .track-table .song-parent-row .col-menu{grid-column:3;grid-row:2}
  .track-table.selection-mode .song-parent-row{grid-template-columns:32px minmax(0,1fr) 44px 40px}
  .track-table.selection-mode .song-parent-row .col-num{display:none}
  .track-table.selection-mode .song-parent-row .col-title{grid-column:2 / -1}
  .track-table.selection-mode .song-parent-row .col-comments{grid-column:3}
  .track-table.selection-mode .song-parent-row .col-menu{grid-column:4}
}
.studio-headphone-tip{flex-basis:100%;font-size:12px;color:var(--muted)}
@media(max-width:720px){.companion-overlay{padding:0;align-items:flex-end}.song-companion-modal{width:100%;height:100dvh;max-height:none;border-radius:0}.companion-header,.companion-body{padding:var(--space-md)}.companion-tabs{padding:0 var(--space-xs);overflow:hidden}.companion-tabs button{flex:1;justify-content:center;padding:0 5px;font-size:12px}.companion-player{grid-template-columns:auto auto 1fr auto;padding:var(--space-sm);padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom))}.companion-quick-save,.companion-footer-status{grid-column:1 / -1}.companion-quick-save{min-height:44px}.companion-footer-status{white-space:normal;text-align:center}.song-companion-actions{gap:1px}.companion-row-btn{min-width:44px;height:44px;padding:0 6px}.row-play-btn,.row-record-along-btn{width:44px;height:44px;flex-basis:44px}.companion-lyrics-actions{flex-wrap:wrap}.companion-lyrics-actions p{flex-basis:100%}.companion-lyrics-actions .btn{min-height:44px}.companion-take-actions .btn{flex:1 1 45%}}
/* Release C: authenticated Shoot-Day Sheets */
.shoot-index,.shoot-sheet{max-width:1180px;margin:0 auto}.shoot-index>header,.shoot-sheet-head,.shoot-section-head,.shoot-index-card,.shoot-gear-case>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.shoot-index h3,.shoot-sheet h3,.shoot-sheet h4,.shoot-sheet h5{margin-top:0}.shoot-index-list{display:grid;gap:12px;margin-top:18px}.shoot-index-card,.shoot-panel{border:1px solid var(--border,#dedee8);border-radius:14px;background:var(--panel,#fff);padding:18px}.shoot-index-card p{margin:4px 0}.shoot-index-card small{color:var(--muted,#74748a)}.shoot-sheet{display:grid;gap:16px}.shoot-kicker{color:#5b55df;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:0 0 5px}.shoot-head-actions,.shoot-contact-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.shoot-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.shoot-form-grid label{display:grid;gap:6px;font-weight:600}.shoot-form-grid .full{grid-column:1/-1}.shoot-form-grid input,.shoot-form-grid textarea,.shoot-add-contact select{width:100%;box-sizing:border-box}.shoot-hide{grid-template-columns:auto 1fr!important;align-items:start}.shoot-hide small{display:block;font-weight:400;color:var(--muted,#74748a)}.shoot-status{min-height:1.2em;margin:0}.shoot-status.error,.shoot-error{color:#a52222}.shoot-unsaved{display:inline-block;width:max-content;margin:0;padding:5px 9px;border-radius:999px;background:#fff4cf;color:#6e5200}.shoot-help{color:#805d00}.shoot-add-contact{display:grid;grid-template-columns:minmax(170px,1fr) auto;gap:6px;align-items:end}.shoot-add-contact label{grid-column:1/-1;font-weight:600}.shoot-contact{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-top:1px solid var(--border,#dedee8)}.shoot-contact:first-child{border-top:0}.shoot-contact h5,.shoot-contact p{margin:0 0 4px}.shoot-contact small{display:block;color:var(--muted,#74748a)}.shoot-gear-case{margin-top:12px;border:1px solid var(--border,#dedee8);border-radius:10px;overflow:hidden}.shoot-gear-case>header{padding:12px;background:#f7f7fb}.shoot-gear-case h5{margin:0}.shoot-gear-case ul{list-style:none;padding:0;margin:0}.shoot-gear-case li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid var(--border,#dedee8)}
@media(max-width:700px){.shoot-index>header,.shoot-sheet-head,.shoot-section-head,.shoot-index-card,.shoot-contact{flex-direction:column}.shoot-index-card .btn,.shoot-head-actions,.shoot-head-actions .btn{width:100%}.shoot-form-grid{grid-template-columns:1fr}.shoot-form-grid .full{grid-column:auto}.shoot-add-contact{width:100%;grid-template-columns:1fr}.shoot-add-contact label{grid-column:auto}.shoot-contact-actions{width:100%}.shoot-contact-actions .btn{flex:1 1 auto}.shoot-gear-case>header,.shoot-gear-case li{align-items:flex-start;flex-direction:column}}
@media print{body *{visibility:hidden!important}.shoot-sheet,.shoot-sheet *{visibility:visible!important}.shoot-sheet{position:absolute;inset:0;max-width:none;display:block;color:#000;background:#fff}.shoot-head-actions,.shoot-status,.shoot-unsaved,.shoot-sheet form button,.shoot-contact-actions,.shoot-add-contact,#shootOpenGear{display:none!important}.shoot-panel{break-inside:avoid;border-color:#bbb;margin:12px 0;box-shadow:none}.shoot-contact,.shoot-gear-case li{break-inside:avoid}.plan-tabs,.planning-toolbar{display:none!important}}
.shoot-save-footer{display:flex;align-items:center;justify-content:flex-end;gap:18px;padding:14px 0;background:transparent}.shoot-save-footer #shootFooterStatus:not(:empty){margin-right:auto;color:#176b3a;font-weight:700}.shoot-save-footer #shootFooterStatus.error{color:#a52222}.shoot-index-saved{padding:10px 14px;border-radius:10px;background:#e8f7ed;color:#176b3a;font-weight:700}.shoot-contact-picker{grid-column:1/-1;min-width:min(560px,80vw);border:1px solid var(--border,#dedee8);border-radius:10px;padding:10px}.shoot-contact-picker>div:first-child{display:flex;align-items:center;gap:8px;margin-bottom:8px}.shoot-contact-picker>div:first-child span{margin-left:auto}.shoot-contact-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:280px;overflow:auto;gap:6px}.shoot-contact-options label{display:flex;align-items:flex-start;gap:8px;padding:9px;border-radius:8px;background:#f7f7fb}.shoot-contact-options small{display:block;color:var(--muted,#74748a)}
#shootPrintView{display:none}
@media(max-width:700px){.shoot-save-footer{position:static;align-items:stretch;flex-direction:column}.shoot-save-footer .btn{width:100%}.shoot-contact-picker{min-width:0;width:100%;box-sizing:border-box}.shoot-contact-options{grid-template-columns:1fr}}
@media print{body>*:not(#shootPrintView){display:none!important}#shootPrintView,#shootPrintView *{visibility:visible!important}#shootPrintView{display:block!important;position:static!important;color:#000;background:#fff;font:11pt/1.35 Arial,sans-serif}#shootPrintView>header{border-bottom:3px solid #222;padding-bottom:12px;margin-bottom:18px}#shootPrintView>header p{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:9pt}#shootPrintView>header h1{margin:3px 0 5px;font-size:24pt}#shootPrintView>section{display:block!important;margin:0 0 18px;break-inside:auto;border:0;padding:0}#shootPrintView h2{font-size:16pt;border-bottom:1px solid #999;padding-bottom:5px;margin:0 0 10px}#shootPrintView dl{display:grid;grid-template-columns:1fr 1fr;gap:9px 20px;margin:0}#shootPrintView dl>div{break-inside:avoid}#shootPrintView dt{font-weight:700;font-size:9pt;text-transform:uppercase}#shootPrintView dd{margin:2px 0 0;white-space:normal}#shootPrintView ul{list-style:none;margin:0;padding:0}#shootPrintView li{display:flex;justify-content:space-between;gap:15px;padding:6px 0;border-bottom:1px solid #ddd;break-inside:avoid}#shootPrintView .print-people li div span{display:block}#shootPrintView section section{border:1px solid #bbb;margin:0 0 10px;padding:9px;break-inside:auto}#shootPrintView section section header{display:flex;justify-content:space-between;gap:10px;break-after:avoid}#shootPrintView section section h3{margin:0;font-size:12pt}@page{margin:14mm}}
.shoot-unsaved[hidden]{display:none!important}

/* Release 1: private personal to-do list */
.todo-global-btn .todo-check-icon{position:relative;right:auto;top:auto;display:block;min-width:0;width:17px;height:17px;padding:0;border:2px solid currentColor;border-radius:5px;background:transparent;color:inherit}.todo-global-btn .todo-check-icon:after{content:"";position:absolute;left:3px;top:3px;width:7px;height:4px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg)}
.todo-backdrop{position:fixed;z-index:3000;inset:0;display:flex;justify-content:flex-end;background:rgba(20,20,35,.42)}.todo-panel{width:min(680px,100%);height:100%;box-sizing:border-box;overflow:auto;padding:24px;background:#fff;box-shadow:-10px 0 32px rgba(20,20,35,.18)}.todo-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.todo-panel>header p{margin:0;color:var(--accent);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.todo-panel h2,.todo-panel h3{margin:4px 0 0}.todo-panel button,.home-todos button{min-height:38px;border:1px solid var(--line);border-radius:9px;padding:0 12px;background:#fff;color:var(--text);cursor:pointer}.todo-panel button:hover,.home-todos button:hover{border-color:var(--accent);color:var(--accent)}.todo-panel button:focus-visible,.todo-panel input:focus-visible,.todo-panel textarea:focus-visible,.todo-panel select:focus-visible,.home-todos button:focus-visible,.home-todos input:focus-visible{outline:3px solid rgba(91,85,223,.25);outline-offset:2px}.todo-panel button:disabled{opacity:.45;cursor:not-allowed}.todo-panel nav{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}.todo-panel nav button.active{border-color:var(--accent);background:#efefff;color:var(--accent);font-weight:700}#todoQuick,.home-todo-quick{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:18px}#todoQuick label,.home-todo-quick label,#todoForm label{display:grid;gap:6px;font-weight:600}#todoQuick input,.home-todo-quick input,#todoForm input,#todoForm textarea,#todoForm select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff;color:var(--text);font:inherit}#todoStatus{min-height:20px;color:#176b3a}.todo-list{list-style:none;margin:0;padding:0}.todo-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px 0;border-top:1px solid var(--line)}.todo-row.high{border-left:4px solid #df4258;padding-left:12px}.todo-row h4,.todo-row p{margin:0 0 5px;overflow-wrap:anywhere}.todo-row>div>span{color:var(--muted);font-size:12px}.todo-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.todo-empty{padding:24px;border:1px dashed var(--line);border-radius:10px;text-align:center;color:var(--muted)}#todoForm form{display:grid;gap:12px;margin:12px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}#todoForm form>div{display:flex;justify-content:flex-end;gap:8px}.home-todos{grid-column:span 3}.home-todos .home-row{display:flex;width:100%;height:auto;margin-top:8px;padding:9px;text-align:left}.home-todos .home-row span{display:grid;gap:3px}.home-todos .home-row small{color:var(--muted)}.home-todo-quick{margin-top:12px}.home-todos>.home-empty{margin-top:12px}
@media(max-width:700px){.todo-backdrop{align-items:flex-end}.todo-panel{width:100%;height:min(92dvh,900px);padding:16px;border-radius:18px 18px 0 0}.todo-row{grid-template-columns:1fr}.todo-actions{justify-content:flex-start}.todo-actions button{min-height:44px;flex:1 1 auto}#todoQuick,.home-todo-quick{grid-template-columns:1fr}#todoQuick button,.home-todo-quick button{min-height:44px}.home-todos{grid-column:1}}

/* Keep the asynchronous To-Do card and Quick Actions in a stable first row. */
.home-workspace>.home-todos-slot{grid-column:1 / span 3;min-width:0}
.home-todos-slot>.home-todos{height:100%;box-sizing:border-box}
.home-workspace>.home-quick-actions{grid-column:4 / span 3}
.home-quick-actions .home-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:700px){.home-workspace>.home-todos-slot,.home-workspace>.home-quick-actions{grid-column:1}}
