/* Shotlist Studio application styles; load after glasspanel.css. */
.shotlist-icon { width:1em; height:1em; display:inline-block; flex:none; vertical-align:middle; pointer-events:none; }
.theme-icon-sun { display:none; }
body.mode-light .theme-icon-sun { display:inline-block; }
body.mode-light .theme-icon-moon { display:none; }
:root {
    --font-ui: 'Inter', 'Noto Sans TC', system-ui, sans-serif;
    --font-code: ui-monospace, 'SFMono-Regular', Consolas, monospace;
    --font-data: var(--font-ui);
    --dock-control-height: 38px;
    --accent-rgb: 245,158,11;
    --accent-glow-rgb: 245,158,11;
    --accent-text-rgb: 0,0,0;
    --accent-glass-tint: rgba(245,158,11,.45);
    --color-accent: #f59e0b; 
    --color-accent-hover: #d97706; 
    --color-text-accent: #fef3c7; 
    --color-accent-shadow: rgba(245, 158, 11, 0.45);
    --color-accent-fg: #000000;
}
body, body.mode-dark {
    --color-bg-body: #0a0c10;
    --color-text-accent: #fef3c7;
    color: #e2e8f0;
}
body.mode-light {
    --color-bg-body: #eef2f6;
    --color-text-accent: #78350f;
    color: #0f172a;
}
body { 
    font-family: var(--font-ui);
    background-color: var(--color-bg-body) !important; 
    overflow-x: hidden; 
    transition: background-color 0.5s ease, color 0.5s ease;
    position: relative;
}

body.mode-dark .brand-logo { filter: invert(1) brightness(2); }
body.mode-light .brand-logo { filter: none; }
body.mode-dark .title-text { color: #f8fafc; }
body.mode-light .title-text { color: #0f172a; }

.animate-transition-all { transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1); }
.pointer-events-none-children * { pointer-events: none !important; }

/* 防禦拖曳干擾 */
body.is-dragging-file .thumb-dropzone * { pointer-events: none !important; }

table { border-collapse: separate; border-spacing: 0; }
thead tr { background: rgba(0,0,0,0.2); backdrop-filter: blur(10px); }
body.mode-light thead tr { background: rgba(255,255,255,0.4); }

tbody tr { transition: background-color 0.2s ease, border-color 0.2s ease; border-bottom: 1px solid rgba(255,255,255,0.05); }
tbody tr:nth-child(even):not([class*="mark-row-"]):not(.shot-row-completed):not(.sortable-selected) { background: rgba(255,255,255,0.015); }
tbody tr:hover:not(.sortable-selected) { background: rgba(255,255,255,0.06) !important; }

body.mode-light tbody tr { border-bottom: 1px solid rgba(0,0,0,0.05); }
body.mode-light tbody tr:nth-child(even):not([class*="mark-row-"]):not(.shot-row-completed):not(.sortable-selected) { background: rgba(0,0,0,0.025); }
body.mode-light tbody tr:hover:not(.sortable-selected) { background: rgba(0,0,0,0.05) !important; }

td input:not(.glass-checkbox), td textarea, td select { background: transparent !important; border: none; outline: none; }
.markdown-editor { position:relative; white-space:pre-wrap; overflow-wrap:anywhere; cursor:text; line-height:1.45; }
.markdown-editor[data-empty="true"]::before { content:attr(data-placeholder); position:absolute; inset:0; padding:inherit; color:#94a3b8; pointer-events:none; }
.markdown-editor[contenteditable="false"] { cursor:default; }
.markdown-editor .md-line { min-height:1.3em; }
.markdown-editor .md-h1 { font-size:1.32em; font-weight:800; }
.markdown-editor .md-h2 { font-size:1.18em; font-weight:700; }
.markdown-editor .md-h3 { font-size:1.04em; font-weight:700; }
.markdown-editor a { color:var(--color-accent); text-decoration:underline; }
td .markdown-editor { background:transparent!important; border:none; outline:none; height:36px; }
body.mode-light .markdown-editor[data-empty="true"]::before { color:#64748b; }
.save-status-lamp { --save-color:#ef4444; position:absolute; right:31.5px; top:31.5px; width:11px; height:11px; border-radius:50%; border:0; background:var(--save-color); box-shadow:0 0 12px color-mix(in srgb,var(--save-color) 60%,transparent); transition:background-color .15s,box-shadow .15s; }
.save-status-lamp[data-status="saved"] { --save-color:#22c55e; }
.save-status-lamp[data-status="saving"] { --save-color:#fbbf24; }
#project-info > .max-w-2xl { padding-top:14px; }
.brand-copy { display:flex; flex-direction:column; justify-content:center; }
.brand-title-row { display:flex; align-items:baseline; gap:6px; white-space:nowrap; }
.brand-title { font-family:var(--font-ui); font-size:11px; font-weight:900; letter-spacing:.1em; line-height:1.25; text-transform:uppercase; }
.brand-credit { font-family:var(--font-ui); font-size:7px; font-weight:700; letter-spacing:.05em; line-height:1; margin-top:2px; text-transform:uppercase; opacity:.55; }
.version-button { font:700 8px var(--font-ui); opacity:.55; width:fit-content; flex:none; margin:0; padding:0; }
.version-button:hover { opacity:1; }
.release-dialog { width:min(480px,calc(100vw - 32px)); margin:auto; padding:28px; border:1px solid rgba(255,255,255,.35); border-radius:24px; background:#f8fafc; color:#0f172a; box-shadow:0 24px 80px rgba(0,0,0,.3); }
.release-dialog::backdrop { background:rgba(10,12,16,.45); backdrop-filter:blur(8px); }
body.mode-dark .release-dialog { background:#151922; color:#e2e8f0; }
.release-kicker { font:10px var(--font-ui); letter-spacing:.15em; opacity:.65; }
.release-dialog h2 { font-size:23px; font-weight:800; margin:10px 0 18px; }
.release-dialog ul { list-style:disc; padding-left:20px; font-size:14px; line-height:1.8; }
.release-dialog li { margin:10px 0; }
.release-dialog > button { width:100%; padding:12px; margin-top:20px; }
.release-history { max-height:min(55vh,420px); overflow:auto; padding-right:8px; }
.release-history section + section { border-top:1px solid rgba(148,163,184,.25); margin-top:16px; padding-top:16px; }
.release-history h3 { font-size:13px; font-weight:700; }
.mark-row-red { --row-description-color:#fca5a5; }
.mark-row-orange { --row-description-color:#fdba74; }
.mark-row-yellow { --row-description-color:#fde047; }
.mark-row-green { --row-description-color:#6ee7b7; }
.mark-row-blue { --row-description-color:#93c5fd; }
.mark-row-purple { --row-description-color:#d8b4fe; }
body.mode-light .mark-row-red { --row-description-color:#991b1b; }
body.mode-light .mark-row-orange { --row-description-color:#9a3412; }
body.mode-light .mark-row-yellow { --row-description-color:#854d0e; }
body.mode-light .mark-row-green { --row-description-color:#065f46; }
body.mode-light .mark-row-blue { --row-description-color:#1e40af; }
body.mode-light .mark-row-purple { --row-description-color:#6b21a8; }
[class*="mark-row-"] .markdown-editor { color:var(--row-description-color)!important; }
.markdown-preview { white-space: normal; overflow-wrap: anywhere; line-height: 1.45; }
.markdown-preview:empty { display: none; }
.markdown-preview .md-line { min-height: 1.3em; white-space: pre-wrap; }
.markdown-preview .md-h1 { font-size: 1.32em; font-weight: 800; }
.markdown-preview .md-h2 { font-size: 1.18em; font-weight: 700; }
.markdown-preview .md-h3 { font-size: 1.04em; font-weight: 700; }
.markdown-preview a { color: var(--color-accent); text-decoration: underline; }
#print-content .markdown-preview a { color: #1d4ed8; }

.shot-row-completed { 
    opacity: 0.4 !important; 
    filter: grayscale(0.5); 
}
.shot-row-completed td { 
    position: relative; 
}
.shot-row-completed td::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 3px;
    background-color: var(--color-accent);
    opacity: 0.7;
    transform: translateY(-50%);
    pointer-events: none;
    z-index: 10;
}
.shot-row-completed td:has(> .glass-checkbox)::after { display:none; }

.font-mono-tech { font-family: var(--font-data); font-variant-numeric:tabular-nums; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(156, 163, 175, 0.4); border-radius: 4px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: rgba(156, 163, 175, 0.7); }
body.mode-light ::-webkit-scrollbar-thumb { background: rgba(148, 163, 184, 0.4); }

input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.sortable-ghost { opacity: 0.4; background-color: rgba(255, 255, 255, 0.05) !important; border: 1px dashed var(--color-accent) !important; }
.drag-handle { touch-action:none; user-select:none; -webkit-touch-callout:none; }
body.shot-dragging, body.shot-dragging * { cursor:grabbing !important; user-select:none !important; }
#shotlist-tbody .shot-drop-placeholder td { padding:0; text-align:center; border:2px dashed rgba(var(--accent-rgb), .65); color:rgb(var(--accent-rgb)); background:rgba(var(--accent-rgb), .12); font-size:12px; font-weight:800; pointer-events:none; }
.shot-drag-ghost { position:fixed; z-index:99999; pointer-events:none; margin:0; filter:drop-shadow(0 20px 24px rgba(15,23,42,.35)); }
.shot-drag-stack { position:relative; width:184px; box-sizing:border-box; padding:8px; border:1px solid rgba(255,255,255,.2); border-radius:16px; color:#f4f4f5; background:rgba(39,39,42,.94); box-shadow:inset 0 1px rgba(255,255,255,.08); }
body.mode-light .shot-drag-stack { color:#0f172a; background:rgba(248,250,252,.94); border-color:rgba(255,255,255,.65); box-shadow:inset 0 1px rgba(255,255,255,.8); }
.shot-drag-stack.is-multiple::before, .shot-drag-stack.is-multiple::after { content:''; position:absolute; inset:5px -4px -5px 4px; z-index:-1; border-radius:16px; background:rgba(var(--accent-rgb), .38); transform:rotate(4deg); }
.shot-drag-stack.is-multiple::after { inset:8px -8px -8px 8px; opacity:.55; transform:rotate(7deg); }
.shot-drag-mini { display:flex; align-items:center; gap:7px; min-height:49px; padding:4px; border-radius:9px; background:rgba(var(--accent-rgb), .1); font-size:11px; font-weight:800; }
.shot-drag-mini + .shot-drag-mini { margin-top:3px; }
.shot-drag-mini img, .shot-drag-empty { width:69px; height:42px; flex:none; object-fit:cover; border-radius:6px; }
.shot-drag-empty { display:grid; place-items:center; background:rgba(var(--accent-rgb), .1); font-weight:400; }
.shot-drag-stack-label { display:flex; justify-content:space-between; margin-top:4px; font-size:11px; font-weight:800; }
@media print { .shot-drag-ghost, .shot-drop-placeholder { display:none !important; } }
.sortable-chosen { background-color: rgba(255, 255, 255, 0.03) !important; }

tr.sortable-selected { 
    background-color: var(--color-accent-shadow) !important; 
    outline: 2px solid var(--color-accent) !important;
    outline-offset: -2px;
    box-shadow: inset 4px 0 0 0 var(--color-accent) !important;
}

/* Smart Highlight CSS */
.highlight-group-0 { border: 2px solid #3b82f6 !important; box-shadow: 0 0 10px rgba(59,130,246,0.6) !important; background-color: rgba(59,130,246,0.1) !important; }
.highlight-group-1 { border: 2px solid #10b981 !important; box-shadow: 0 0 10px rgba(16,185,129,0.6) !important; background-color: rgba(16,185,129,0.1) !important; }
.highlight-group-2 { border: 2px solid #f59e0b !important; box-shadow: 0 0 10px rgba(245,158,11,0.6) !important; background-color: rgba(245,158,11,0.1) !important; }
.highlight-group-3 { border: 2px solid #a855f7 !important; box-shadow: 0 0 10px rgba(168,85,247,0.6) !important; background-color: rgba(168,85,247,0.1) !important; }
.highlight-group-4 { border: 2px solid #f43f5e !important; box-shadow: 0 0 10px rgba(244,63,94,0.6) !important; background-color: rgba(244,63,94,0.1) !important; }
.highlight-group-5 { border: 2px solid #06b6d4 !important; box-shadow: 0 0 10px rgba(6,182,212,0.6) !important; background-color: rgba(6,182,212,0.1) !important; }

.custom-highlighted { transition: border 0.25s ease-in-out, box-shadow 0.25s ease-in-out, background-color 0.25s ease-in-out; }
.movable-col-header { cursor: move; }

body.mode-light #highlight-options-menu {
    background-color: rgba(255, 255, 255, 0.95) !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
    color: #0f172a !important;
    box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.15) !important;
}
body.mode-light #highlight-options-menu > div:hover {
    background-color: rgba(0, 0, 0, 0.05) !important;
}
body.mode-light #highlight-options-menu > div.border-b {
    border-color: rgba(0, 0, 0, 0.05) !important;
}

.mark-row-red { background-color: rgba(239, 68, 68, 0.15) !important; box-shadow: inset 0 1px 0 rgba(239, 68, 68, 0.3), inset 0 -1px 0 rgba(239, 68, 68, 0.3) !important; }
.mark-row-red input, .mark-row-red textarea { color: #fca5a5 !important; }
.mark-row-orange { background-color: rgba(249, 115, 22, 0.15) !important; box-shadow: inset 0 1px 0 rgba(249, 115, 22, 0.3), inset 0 -1px 0 rgba(249, 115, 22, 0.3) !important; }
.mark-row-orange input, .mark-row-orange textarea { color: #fdba74 !important; }
.mark-row-yellow { background-color: rgba(234, 179, 8, 0.15) !important; box-shadow: inset 0 1px 0 rgba(234, 179, 8, 0.3), inset 0 -1px 0 rgba(234, 179, 8, 0.3) !important; }
.mark-row-yellow input, .mark-row-yellow textarea { color: #fde047 !important; }
.mark-row-green { background-color: rgba(16, 185, 129, 0.15) !important; box-shadow: inset 0 1px 0 rgba(16, 185, 129, 0.3), inset 0 -1px 0 rgba(16, 185, 129, 0.3) !important; }
.mark-row-green input, .mark-row-green textarea { color: #6ee7b7 !important; }
.mark-row-blue { background-color: rgba(59, 130, 246, 0.15) !important; box-shadow: inset 0 1px 0 rgba(59, 130, 246, 0.3), inset 0 -1px 0 rgba(59, 130, 246, 0.3) !important; }
.mark-row-blue input, .mark-row-blue textarea { color: #93c5fd !important; }
.mark-row-purple { background-color: rgba(168, 85, 247, 0.15) !important; box-shadow: inset 0 1px 0 rgba(168, 85, 247, 0.3), inset 0 -1px 0 rgba(168, 85, 247, 0.3) !important; }
.mark-row-purple input, .mark-row-purple textarea { color: #d8b4fe !important; }

body.mode-light .mark-row-red { background-color: rgba(254, 226, 226, 0.8) !important; box-shadow: inset 0 1px 0 rgba(248, 113, 113, 0.5), inset 0 -1px 0 rgba(248, 113, 113, 0.5) !important; }
body.mode-light .mark-row-red input, body.mode-light .mark-row-red textarea { color: #991b1b !important; }
body.mode-light .mark-row-orange { background-color: rgba(255, 237, 213, 0.8) !important; box-shadow: inset 0 1px 0 rgba(251, 146, 60, 0.5), inset 0 -1px 0 rgba(251, 146, 60, 0.5) !important; }
body.mode-light .mark-row-orange input, body.mode-light .mark-row-orange textarea { color: #9a3412 !important; }
body.mode-light .mark-row-yellow { background-color: rgba(254, 249, 195, 0.8) !important; box-shadow: inset 0 1px 0 rgba(250, 204, 21, 0.5), inset 0 -1px 0 rgba(250, 204, 21, 0.5) !important; }
body.mode-light .mark-row-yellow input, body.mode-light .mark-row-yellow textarea { color: #854d0e !important; }
body.mode-light .mark-row-green { background-color: rgba(209, 250, 229, 0.8) !important; box-shadow: inset 0 1px 0 rgba(52, 211, 153, 0.5), inset 0 -1px 0 rgba(52, 211, 153, 0.5) !important; }
body.mode-light .mark-row-green input, body.mode-light .mark-row-green textarea { color: #065f46 !important; }
body.mode-light .mark-row-blue { background-color: rgba(219, 234, 254, 0.8) !important; box-shadow: inset 0 1px 0 rgba(96, 165, 250, 0.5), inset 0 -1px 0 rgba(96, 165, 250, 0.5) !important; }
body.mode-light .mark-row-blue input, body.mode-light .mark-row-blue textarea { color: #1e40af !important; }
body.mode-light .mark-row-purple { background-color: rgba(243, 232, 255, 0.8) !important; box-shadow: inset 0 1px 0 rgba(192, 132, 252, 0.5), inset 0 -1px 0 rgba(192, 132, 252, 0.5) !important; }
body.mode-light .mark-row-purple input, body.mode-light .mark-row-purple textarea { color: #6b21a8 !important; }

@media print {
    @page { size: A4 landscape; margin: 10mm; }
    body { background-color: #ffffff !important; margin: 0; padding: 0; }
    body::before, body::after { display: none !important; }
    #app-ui { display: none !important; }
    #print-view-container { display: block !important; padding: 0 !important; background-color: #ffffff !important; }
    .no-print { display: none !important; }
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

/* CineTools v0.4 shared workspace toolbar */
.workspace-zoom-reset { position:fixed; top:max(12px,env(safe-area-inset-top)); left:max(12px,env(safe-area-inset-left)); z-index:70; min-width:58px; min-height:40px; padding:8px 12px; border-radius:999px; border:1px solid var(--glass-edge); background:rgba(248,250,252,.94); color:#1e293b; box-shadow:0 4px 12px rgba(15,23,42,.12); font:600 12px/1.2 var(--font-ui); font-variant-numeric:tabular-nums; cursor:pointer; touch-action:manipulation; }
.workspace-zoom-reset[hidden] { display:none; }
body.mode-dark .workspace-zoom-reset { color:#f4f4f5; background:rgba(24,24,27,.94); }
.workspace-zoom-reset:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
@media (pointer:coarse) { .workspace-zoom-reset { min-height:44px; } }
.workspace-toolbar {
    flex-wrap: nowrap;
    gap: 6px;
    max-width: calc(100vw - 24px);
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    transition-property: width, max-width, background-color, border-color, box-shadow;
}
body.pb-32 { padding-bottom: max(8rem, calc(var(--workspace-toolbar-height, 60px) + 32px)); }
.toolbar-icon-button { width: 38px; height: 38px; flex: none; display: inline-grid; place-items: center; padding: 0; }
.toolbar-divider { width: 1px; height: 24px; flex: none; margin-inline: 3px; border-radius: 999px; background: rgba(148,163,184,.36); }
.toolbar-group { display: flex; align-items: center; min-width: 38px; flex: none; }
#assistant-orb { z-index: 61; }
.cloud-image-slot { position:relative; width:100%; height:48px; min-height:48px; border-radius:12px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.cloud-image-slot > img { width:100%; height:100%; object-fit:cover; cursor:zoom-in; }
.cloud-image-slot > button,.cloud-image-loading { font:500 10px/1.3 var(--font-ui,system-ui); display:flex; gap:4px; align-items:center; justify-content:center; }
.cloud-image-slot > button { padding:4px; }
.cloud-image-slot > button:not(.cloud-image-clear) { min-height:44px; min-width:44px; }
.cloud-image-loading { flex-direction:column; white-space:nowrap; gap:2px; }
.cloud-image-slot > button,.cloud-image-overlay button { white-space:pre-line; text-align:center; }
.cloud-image-slot > .cloud-image-clear { position:absolute; right:3px; top:3px; width:22px; height:22px; border-radius:50%; background:#0009; color:white; font-size:16px; }
.cloud-image-spinner { width:16px; height:16px; flex-shrink:0; animation:cloud-image-spin 1s linear infinite; }
.cloud-image-overlay { position:absolute; inset:0; }
@keyframes cloud-image-spin { to { rotate:360deg; } }
@media(prefers-reduced-motion:reduce) { .cloud-image-spinner { animation:none; } }
@media print { #shotlist-workspace { zoom:1 !important; } }
.dock-brand { min-width: 0; flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 3px 6px; border: 0; border-radius: 12px; color: inherit; background: transparent; text-align: start; cursor: pointer; }
.dock-brand-mark { width: 30px; height: 30px; flex: none; display: inline-grid; place-items: center; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(228,228,231,.45); box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.dock-brand-logo { width: 16px; height: 16px; object-fit: contain; filter: grayscale(1); }
body.mode-dark .dock-brand-mark { background: rgba(228,228,231,.08); border-color: rgba(255,255,255,.05); }
body.mode-dark .dock-brand-logo { filter: grayscale(1) invert(1); }
.dock-brand-copy { display: flex; flex-direction: column; justify-content: center; line-height: 1; }
.dock-brand-title { display: flex; align-items: baseline; gap: 6px; font: 900 11px/1.25 var(--font-ui); letter-spacing: .1em; white-space: nowrap; color: #0f172a; }
.dock-brand-credit { margin-top: 2px; font: 700 7px/1 var(--font-ui); letter-spacing: .05em; color: #64748b; text-transform: uppercase; }
.dock-brand .version-button { font-size: 8px; color: #64748b; opacity: 1; letter-spacing: normal; }
body.mode-dark .dock-brand-title { color: #fff; }
body.mode-dark .dock-brand-credit,
body.mode-dark .dock-brand .version-button { color: #94a3b8; }
.dock-brand:focus-visible,
.workspace-toolbar button:focus-visible,
.cloud-library-dialog button:focus-visible,
.cloud-library-dialog input:focus-visible,
.cloud-library-dialog select:focus-visible { outline: auto; outline-offset: 2px; }

.dock-account-button { width: 40px; height: 38px; flex: none; display: inline-grid; place-items: center; padding: 0; border: 1px solid rgba(var(--accent-rgb),.48); border-radius: 12px; color: var(--color-accent); background: rgba(var(--accent-rgb),.13); box-shadow: inset 0 1px rgba(255,255,255,.5), 0 5px 14px -10px var(--color-accent-shadow); cursor: pointer; transition-property: background-color, border-color, box-shadow, scale; transition-duration: 150ms; }
.dock-account-button:hover,
.dock-account-button[aria-expanded="true"] { border-color: rgba(var(--accent-rgb),.8); background: rgba(var(--accent-rgb),.22); }
.dock-account-button:active { scale: .96; }
.dock-account-avatar,
.dock-account-avatar-fallback { width: 25px; height: 25px; border-radius: 50%; border: 1px solid rgba(255,255,255,.72); box-shadow: 0 3px 10px -5px rgba(15,23,42,.8); }
.dock-account-avatar { display: block; object-fit: cover; background: rgba(148,163,184,.18); }
.dock-account-avatar-fallback { display: inline-grid; place-items: center; color: var(--color-accent-fg); background: var(--color-accent); font: 900 10px/1 var(--font-ui); text-transform: uppercase; }
.dock-account-avatar[hidden],
.dock-account-avatar-fallback[hidden],
.dock-account-cloud-icon[hidden],
.dock-account-menu button[hidden],
.dock-account-cell[hidden] { display: none !important; }

.dock-account-menu,
.cloud-save-menu { position: relative; z-index: 3; display: flex; align-items: center; gap: 6px; max-width: 0; margin-inline: 0; overflow: hidden; opacity: 0; visibility: hidden; pointer-events: none; translate: -10px 0; transform-origin: left center; transition-property: max-width, margin, opacity, translate, visibility; transition-duration: 360ms,360ms,150ms,360ms,0s; transition-timing-function: cubic-bezier(.2,.85,.25,1); transition-delay: 0s,0s,0s,0s,360ms; }
.dock-account-menu[data-open="true"] { max-width: 440px; margin-inline-start: 6px; margin-inline-end: 16px; opacity: 1; visibility: visible; pointer-events: auto; translate: 0 0; transition-delay: 0s; }
.cloud-save-menu[data-open="true"] { max-width: 300px; margin-inline-start: 6px; margin-inline-end: 16px; opacity: 1; visibility: visible; pointer-events: auto; translate: 0 0; transition-delay: 0s; }
:is(#cloud-save-button,#dock-share-button)[aria-expanded="true"] { border-color: rgba(var(--accent-rgb),.72); background: rgba(var(--accent-rgb),.22); box-shadow: inset 0 1px rgba(255,255,255,.7), 0 5px 14px -8px var(--color-accent-shadow); }
.dock-account-cell,
.dock-account-menu button,
.cloud-save-menu button { min-height: 36px; flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.34); border-radius: 11px; color: inherit; background: rgba(255,255,255,.38); box-shadow: inset 0 1px 1px rgba(255,255,255,.5), 0 5px 12px -8px rgba(15,23,42,.5); font-size: 11px; font-weight: 800; white-space: nowrap; }
body.mode-dark .dock-account-cell,
body.mode-dark .dock-account-menu button,
body.mode-dark .cloud-save-menu button { background: rgba(39,39,42,.58); border-color: rgba(255,255,255,.18); }
.dock-account-cell { border-color: rgba(var(--accent-rgb),.48); background: rgba(var(--accent-rgb),.15); cursor: default; }
body.mode-dark .dock-account-cell { border-color: rgba(var(--accent-rgb),.48); background: rgba(var(--accent-rgb),.15); }
.dock-account-menu button,
.cloud-save-menu button { cursor: pointer; transition-property: background-color, border-color, box-shadow; transition-duration: 150ms; }
.dock-account-menu button:hover,
.cloud-save-menu button:hover { border-color: rgba(var(--accent-rgb),.72); background: rgba(var(--accent-rgb),.16); }
.dock-account-provider,
.dock-account-transfer,
.dock-account-logout { width: 36px; padding-inline: 0 !important; }
.dock-account-provider { color: var(--color-accent); }
.dock-account-name { display: block; max-width: 140px; overflow: hidden; text-overflow: ellipsis; line-height: 20px; }
.dock-account-transfer img { width: 19px; height: 19px; border-radius: 5px; object-fit: contain; }
.microsoft-account-mark { width: 16px; height: 16px; display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; }
.microsoft-account-mark span:nth-child(1) { background:#f35325; }.microsoft-account-mark span:nth-child(2) { background:#81bc06; }.microsoft-account-mark span:nth-child(3) { background:#05a6f0; }.microsoft-account-mark span:nth-child(4) { background:#ffba08; }

.dock-account-button { padding:3px; overflow:hidden; }
.dock-account-avatar,.dock-account-avatar-fallback { width:100%; height:100%; border-radius:8px; border:0; box-shadow:none; }
.support-panel-actions { display:flex; gap:8px; border-top:1px solid var(--glass-edge); padding-top:12px; margin-top:12px; }
.support-panel-actions button { flex:1; padding:9px 6px; font-size:11px; font-weight:800; }
.support-dialog { z-index:1000; }
.support-dialog>.surface-card { opacity:1!important; transition-property:transform!important; }
.support-body { padding:20px; font-size:13px; line-height:1.7; }
.support-body fieldset { padding:0; margin:0; border:0; display:grid; gap:12px; }
.support-body label { display:grid; gap:5px; font-weight:700; }
.support-body input,.support-body textarea { width:100%; padding:10px 12px; border-radius:12px; }
.support-body textarea { min-height:120px; resize:vertical; }
.support-body .support-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.support-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }
.support-actions button { padding:8px 14px; font-weight:800; }
.support-placeholder { padding:16px; margin-top:14px; text-align:center; }
.support-body a[hidden] { display:none; }
.save-status-lamp { appearance: none; padding: 0; border: 0; cursor: pointer; }
.save-status-lamp::after { content: ''; position: absolute; inset: -10px; }
.save-status-lamp:focus-visible { outline: auto; outline-offset: 4px; }

.cloud-library-dialog { width: min(880px, calc(100vw - 24px)); max-height: min(760px, calc(100dvh - 24px)); padding: 0; border: 0; border-radius: 24px; color: inherit; background: transparent; }
.cloud-library-dialog::backdrop { background: rgba(2,6,23,.58); backdrop-filter: blur(8px); }
.cloud-library-card { max-height: inherit; overflow: auto; overscroll-behavior: contain; padding: 22px; border: 1px solid rgba(255,255,255,.46); border-radius: 24px; color: #1e293b; background: rgba(248,250,252,.92); box-shadow: 0 28px 70px -24px rgba(2,6,23,.5), inset 0 1px rgba(255,255,255,.9); backdrop-filter: blur(24px) saturate(130%); }
body.mode-dark .cloud-library-card { color: #f8fafc; border-color: rgba(255,255,255,.18); background: rgba(15,18,23,.92); }
.cloud-library-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding:20px 24px; border-bottom:1px solid rgba(226,232,240,.6); }
body.mode-dark .cloud-library-header { border-color:rgba(63,63,70,.6); }
.cloud-dialog { font-family:var(--font-ui); }
.cloud-library-header h2 { margin: 4px 0 0; font-size:20px; font-weight:900; line-height:1.4; }
.cloud-library-kicker { margin: 0; color: var(--color-accent); font-size:9px; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.cloud-library-body { padding:24px; }
.cloud-storage-target { margin: 8px 0 0; color: #64748b; font-size: 12px; line-height: 1.5; overflow-wrap: break-word; }
body.mode-dark .cloud-storage-target { color: #cbd5e1; }
.cloud-action { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:38px; padding:8px 12px; border:1px solid rgba(255,255,255,.5); border-radius:12px; background:rgba(255,255,255,.34); color:inherit; font-size:12px; font-weight:800; cursor:pointer; box-shadow:inset 0 1px rgba(255,255,255,.72),0 9px 22px -18px rgba(15,23,42,.65); transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease; }
body.mode-dark .cloud-action { background:rgba(255,255,255,.055); border-color:rgba(255,255,255,.14); box-shadow:inset 0 1px rgba(255,255,255,.12); }
.cloud-action:hover,.cloud-filter-button[aria-pressed="true"] { border-color:rgba(var(--accent-rgb),.7); background:rgba(var(--accent-rgb),.12); }
.cloud-action.primary { color:var(--color-accent-fg); background:var(--color-accent); border-color:rgba(var(--accent-rgb),.9); }
.cloud-action.danger { color:#ef4444; }
.cloud-dialog-close { width:40px; height:40px; flex:none; padding:8px; }
.cloud-library-controls { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.cloud-library-filters { display:flex; gap:8px; flex:none; }
.cloud-search-shell { position:relative; flex:1; min-width:0; }
.cloud-search-shell>.shotlist-icon { position:absolute; left:12px; top:50%; translate:0 -50%; color:#94a3b8; width:18px; height:18px; pointer-events:none; }
.cloud-library-search { width:100%; min-height:42px; padding:10px 16px; border:1px solid rgba(255,255,255,.5); border-radius:12px; color:inherit; background:rgba(255,255,255,.38); box-shadow:inset 0 1px rgba(255,255,255,.7); font:inherit; font-size:14px; }
.cloud-search-shell .cloud-library-search { padding-left:40px; }
body.mode-dark .cloud-library-search { background:rgba(255,255,255,.055); border-color:rgba(255,255,255,.14); }
.cloud-library-options { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.cloud-library-options .cloud-storage-target { margin:0; font-size:10px; }
.cloud-trash-toggle { min-height:38px; display:inline-flex; align-items:center; gap:8px; font-size:12px; cursor:pointer; flex:none; }
.cloud-trash-toggle input { accent-color:var(--color-accent); }
.cloud-library-message { margin:0 0 16px; padding:12px 16px; border:1px solid rgba(251,191,36,.25); border-radius:12px; color:#92400e; background:rgba(251,191,36,.1); font-size:12px; }
body.mode-dark .cloud-library-message { color:#fde68a; }
.cloud-project-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-flow:dense; gap:12px; max-height:min(520px,60vh); overflow-y:auto; padding:2px; }
.cloud-project-list { transform-origin:center top; transition:opacity .14s ease-in,translate .18s cubic-bezier(.4,0,1,1),scale .18s cubic-bezier(.4,0,1,1); }
.cloud-project-list[data-surface-state="opening"] { opacity:0; translate:0 8px; scale:.96; }
.cloud-project-list[data-surface-state="open"] { opacity:1; translate:0 0; scale:1; transition-duration:.22s; transition-timing-function:cubic-bezier(.16,1,.3,1); }
.cloud-project-card { position:relative; min-width:0; min-height:136px; display:flex; flex-direction:column; padding:15px; border:1px solid rgba(255,255,255,.48); border-radius:18px; background:radial-gradient(90% 90% at 8% 0%,rgba(255,255,255,.55),transparent 62%),rgba(255,255,255,.25); box-shadow:inset 0 1px rgba(255,255,255,.72),0 12px 28px -22px rgba(15,23,42,.65); cursor:pointer; transition:transform .2s ease,border-color .2s ease,background-color .2s ease,box-shadow .2s ease,opacity .18s ease,filter .18s ease; }
.cloud-project-card[data-origin-tool="story-border"] { grid-column:1; }
.cloud-project-card[data-origin-tool="shotlist-studio"] { grid-column:2; }
body.mode-dark .cloud-project-card { background:radial-gradient(90% 90% at 8% 0%,rgba(255,255,255,.09),transparent 62%),rgba(255,255,255,.04); border-color:rgba(255,255,255,.13); box-shadow:inset 0 1px rgba(255,255,255,.1),0 14px 30px -24px rgba(0,0,0,.86); }
.cloud-project-card:hover { transform:translateY(-2px); border-color:rgba(var(--accent-rgb),.66); background-color:rgba(var(--accent-rgb),.08); box-shadow:inset 0 1px rgba(255,255,255,.82),0 16px 32px -22px rgba(var(--accent-rgb),.7); }
.cloud-project-open { position:relative; z-index:1; width:100%; flex:1; min-width:0; padding:0; border:0; border-radius:10px; color:inherit; background:transparent; text-align:start; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.cloud-project-info { display:block; min-width:0; pointer-events:none; }
.cloud-project-title { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15.5px; font-weight:900; }
.cloud-project-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:8px; color:#64748b; font-size:10px; }
body.mode-dark .cloud-project-meta { color:#a1a1aa; }
.cloud-tool-badge { display:inline-flex; align-items:center; gap:5px; padding:3px 7px; border-radius:999px; color:#475569; background:rgba(148,163,184,.14); font:700 9px/1.2 var(--font-ui); letter-spacing:.06em; text-transform:uppercase; }
body.mode-dark .cloud-tool-badge { color:#d4d4d8; }
.cloud-source-logo { width:14px; height:14px; flex:none; object-fit:contain; filter:none; }
.cloud-project-card[data-origin-tool="story-border"] .cloud-source-logo { filter:brightness(0) saturate(100%); }
body.mode-dark .cloud-project-card[data-origin-tool="story-border"] .cloud-source-logo { filter:brightness(0) saturate(100%) invert(1); }
.cloud-project-actions { position:relative; z-index:2; display:flex; justify-content:flex-end; gap:7px; margin-top:13px; }
.cloud-project-icon-action { width:34px; height:34px; display:inline-grid; place-items:center; padding:0; border:1px solid rgba(255,255,255,.5); border-radius:11px; color:inherit; background:rgba(255,255,255,.35); cursor:pointer; box-shadow:inset 0 1px rgba(255,255,255,.7); transition:border-color .2s ease,background-color .2s ease,color .2s ease; }
.cloud-project-icon-action .shotlist-icon { width:17px; height:17px; }
.cloud-upgrade-action { width:auto; min-width:80px; padding-inline:12px; font:600 12px/1.2 var(--font-ui); }
.cloud-format-badge { font:600 10px/1.4 var(--font-ui); }
body.mode-dark .cloud-project-icon-action { border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.055); }
.cloud-project-icon-action:hover { border-color:rgba(var(--accent-rgb),.72); background:rgba(var(--accent-rgb),.15); }
.cloud-project-icon-action.danger:hover { color:#ef4444; border-color:rgba(239,68,68,.62); background:rgba(239,68,68,.11); }
.cloud-action:focus-visible,.cloud-library-search:focus-visible,.cloud-project-open:focus-visible,.cloud-project-icon-action:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.cloud-project-loading { position:absolute; inset:8px; z-index:5; display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid rgba(var(--accent-rgb),.32); border-radius:13px; color:var(--color-accent); background:rgba(248,250,252,.88); box-shadow:inset 0 1px rgba(255,255,255,.82); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); font-size:12px; font-weight:900; letter-spacing:.04em; opacity:0; visibility:hidden; pointer-events:none; transform:scale(.97); transition:opacity .18s ease,transform .22s cubic-bezier(.16,1,.3,1),visibility 0s linear .22s; }
body.mode-dark .cloud-project-loading { background:rgba(24,24,27,.88); box-shadow:inset 0 1px rgba(255,255,255,.1); }
.cloud-project-card[data-loading="true"] { transform:none; border-color:rgba(var(--accent-rgb),.72); }
.cloud-project-card[data-loading="true"] .cloud-project-loading { opacity:1; visibility:visible; transform:scale(1); transition-delay:0s; }
.cloud-project-spinner { animation:cloud-project-loading-spin .85s linear infinite; }
@keyframes cloud-project-loading-spin { to { transform:rotate(360deg); } }
.cloud-project-list[data-project-busy="true"] .cloud-project-card:not([data-loading="true"]) { opacity:.48; filter:saturate(.62); transform:none; }
.cloud-project-list[data-project-busy="true"] button { cursor:wait; pointer-events:none; }
.cloud-empty-state { grid-column:1 / -1; padding:64px 0; color:#64748b; font-size:14px; text-align:center; }
body.mode-dark .cloud-empty-state { color:#a1a1aa; }
.cloud-library-more { display:flex; margin:16px auto 0; }
.cloud-library-more[hidden],.cloud-library-message[hidden],#cloud-action-input-label[hidden] { display:none; }
.cloud-secondary-card { padding:24px; font-family:var(--font-ui); }
.cloud-secondary-card h2 { margin:0; font-size:18px; font-weight:900; }
.cloud-secondary-card p { margin:12px 0; font-size:14px; line-height:1.6; overflow-wrap:break-word; }
.cloud-secondary-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }
.storage-details-text { margin-block: 20px; white-space: pre-line; line-height: 1.6; }
.storage-details-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.storage-details-actions button { padding: 10px 16px; }

@media (max-width: 980px) {
    .workspace-toolbar { flex-wrap: wrap; width: max-content; }
    #control-deck.workspace-toolbar { border-radius: 24px !important; }
    .toolbar-group { max-width: 100%; flex-wrap: wrap; row-gap: 8px; }
    .dock-account-menu[data-open="true"], .cloud-save-menu[data-open="true"] { max-width: calc(100vw - 64px); flex-wrap: wrap; }
}

@media (max-width: 820px) {
    .dock-brand-name, .dock-brand-credit, .toolbar-divider { display: none; }
    .dock-account-menu[data-open="true"] { max-width: 272px; }
    .dock-account-name { max-width: 76px; }
}
@media (max-width: 620px) {
    .workspace-toolbar { gap: 4px; max-width: calc(100vw - 12px); bottom: max(6px, env(safe-area-inset-bottom)); }
    .toolbar-icon-button, .dock-account-button { width: 34px; height: 34px; }
    .cloud-project-list { grid-template-columns: 1fr; }
    .cloud-library-controls { flex-direction:column; align-items:stretch; }
    .dock-account-name { max-width: 56px; }
    .dock-account-shell:has(.dock-account-menu[data-open="true"]), .cloud-save-shell:has(.cloud-save-menu[data-open="true"]) { display: contents; }
    .dock-account-menu button, .cloud-save-menu button { padding-inline: 7px; }
    .cloud-library-search { font-size:16px; }
    .cloud-library-body { padding:20px; }
    .cloud-library-options { align-items:flex-start; }
}
@media (max-width:720px) { .cloud-project-list { grid-template-columns:1fr; } .cloud-project-card[data-origin-tool] { grid-column:1; } }
@media (pointer: coarse) {
    .toolbar-icon-button, .dock-account-button, .dock-account-menu button, .cloud-save-menu button { min-width: 44px; min-height: 44px; }
    .cloud-action,.cloud-project-icon-action,.cloud-trash-toggle { min-width:44px; min-height:44px; }
}
@media (prefers-reduced-motion: reduce) {
    .dock-account-button, .dock-account-menu, .cloud-save-menu, .dock-account-menu button, .cloud-save-menu button { transition-duration: .01ms !important; transition-delay: 0s !important; }
    .cloud-project-list,.cloud-project-card,.cloud-project-loading,.cloud-project-icon-action,.cloud-action { transition-duration:.01ms!important; transition-delay:0s!important; }
    .cloud-project-card:hover { transform:none; }
    .cloud-project-spinner { animation-duration:1.6s; }
}

/* Dock sizing and state switches share one height, regardless of pointer/viewport. */
.tabler-icon { width:1em; height:1em; display:inline-block; flex:none; vertical-align:middle; pointer-events:none; }
html { font-family:var(--font-ui); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
button { box-sizing:border-box; }
body :is(button,input,textarea,select,.font-mono,.font-sans,.font-mono-tech) { font-family:var(--font-ui); }
code,pre { font-family:var(--font-code); }
.workspace-toolbar :is(.toolbar-icon-button,.dock-account-button,.dock-brand,.dock-account-cell,.dock-account-menu button,.cloud-save-menu button,.dock-mode-switch) { height:var(--dock-control-height); min-height:var(--dock-control-height); box-sizing:border-box; align-items:center; }
.workspace-toolbar :is(.toolbar-icon-button,.dock-account-button) { width:var(--dock-control-height); min-width:var(--dock-control-height); }
.workspace-toolbar :is(.toolbar-icon-button,.dock-account-menu button,.cloud-save-menu button) { border-radius:999px; }
.workspace-toolbar .dock-account-button { border-radius:12px; }
.workspace-toolbar .toolbar-icon-button > svg { width:18px; height:18px; }
.workspace-toolbar .dock-account-provider > svg { width:19px; height:19px; }
.dock-mode-edit-group { display:flex; flex:none; align-items:center; gap:6px; overflow:hidden; max-width:var(--edit-group-width,none); opacity:1; transition:max-width 420ms ease,opacity 150ms ease,margin 420ms ease; }
.dock-mode-switch { position:relative; box-sizing:border-box; width:60px; flex:none; margin:0; padding:0; border:1px solid rgba(255,255,255,.2); border-radius:999px; color:inherit; background:rgba(255,255,255,.05); box-shadow:inset 0 1px rgba(255,255,255,.1),0 4px 6px -1px rgba(0,0,0,.1); cursor:pointer; touch-action:manipulation; transition:background-color 150ms,border-color 150ms,scale 150ms; }
body.mode-dark .dock-mode-switch { border-color:rgba(255,255,255,.18); background:rgba(39,39,42,.48); box-shadow:inset 0 1px rgba(255,255,255,.1),0 7px 16px -13px rgba(0,0,0,.8); }
body.mode-light .dock-mode-switch { background:rgba(255,255,255,.6); border-color:rgba(255,255,255,.8); color:#334155; box-shadow:inset 0 2px 3px rgba(255,255,255,.9),0 4px 10px -2px rgba(0,0,0,.03); }
.dock-mode-switch:hover { border-color:rgba(var(--accent-rgb),.72); background:rgba(var(--accent-rgb),.14); }
.dock-mode-switch > .mode-switch-icon { position:absolute; top:50%; z-index:1; width:18px; height:18px; translate:0 -50%; transition:transform 140ms cubic-bezier(.2,0,0,1),opacity 90ms ease; }
.mode-switch-icon-left { left:8px; opacity:0; transform:scale(.25); transition-delay:0s; }
.mode-switch-icon-right { right:8px; opacity:1; transform:scale(1); transition-delay:130ms; }
.mode-switch-thumb { position:absolute; z-index:2; top:50%; left:8px; width:17px; height:17px; border-radius:50%; background:var(--color-accent); box-shadow:0 2px 7px rgba(0,0,0,.28); opacity:.45; transform:translate3d(0,-50%,0); }
.dock-mode-switch[aria-pressed="true"] .mode-switch-thumb { transform:translate3d(25px,-50%,0); opacity:.95; }
#dock-annotations-button:active { scale:.96; }
@media (prefers-reduced-motion:no-preference) {
  #dock-annotations-button .mode-switch-thumb { transition:transform 200ms cubic-bezier(.2,0,0,1),opacity 140ms ease; }
}
.library-project-sync { display:inline-flex; width:24px; height:24px; align-items:center; justify-content:center; flex:none; }
.library-sync-glyph { display:inline-grid; place-items:center; width:24px; height:24px; padding:3px; border:0; border-radius:50%; color:inherit; background:transparent; }
.library-sync-glyph svg { width:16px; height:16px; }
button.library-sync-glyph { cursor:pointer; background:rgba(var(--accent-rgb),.12); }
button.library-sync-glyph:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.cloud-image-slot .cloud-image-preview { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; pointer-events:none; }
.cloud-image-slot .cloud-image-full { position:relative; opacity:0; }
.cloud-image-slot .cloud-image-full.is-resolved { opacity:1; }
.cloud-image-slot > .cloud-image-loading,.cloud-image-slot > button { z-index:2; position:relative; }
@media (prefers-reduced-motion:no-preference) {
  .cloud-image-full.is-resolved { animation:cloud-image-resolve 180ms ease-out; }
}
@keyframes cloud-image-resolve { from {opacity:0;} to {opacity:1;} }
@media (prefers-reduced-motion:reduce) { #dock-annotations-button:active { scale:1; } }
.dock-mode-switch[aria-pressed="true"] .mode-switch-icon-left { opacity:1; transform:scale(1); transition-delay:130ms; }
.dock-mode-switch[aria-pressed="true"] .mode-switch-icon-right { opacity:0; transform:scale(.25); transition-delay:0s; }
html.theme-swapping :not(.dock-mode-switch):not(.dock-mode-switch *),
html.theme-swapping :not(.dock-mode-switch):not(.dock-mode-switch *)::before,
html.theme-swapping :not(.dock-mode-switch):not(.dock-mode-switch *)::after { transition:none !important; }
body[data-app-mode="viewer"] .dock-mode-edit-group { max-width:0; height:var(--dock-control-height); max-height:var(--dock-control-height); flex-wrap:nowrap; margin-inline-end:-6px; opacity:0; pointer-events:none; visibility:hidden; transition:max-width 420ms ease,opacity 150ms ease,margin 420ms ease,visibility 0s 420ms; }
body[data-app-mode="viewer"] #toolbar-print-layout-button { display:none !important; }
body[data-app-mode="viewer"] :is(#assistant-orb,#assistant-panel,#btn-clear-all) { display:none !important; }
body[data-app-mode-locked="true"] #viewer-mode-toggle { display:none !important; }
body[data-app-mode="viewer"] #project-info input,
body[data-app-mode="viewer"] #project-info [contenteditable],
body[data-app-mode="viewer"] #shotlist-workspace input:not(.glass-checkbox),
body[data-app-mode="viewer"] #shotlist-workspace select,
body[data-app-mode="viewer"] #shotlist-workspace textarea,
body[data-app-mode="viewer"] #shotlist-workspace [contenteditable="true"] { pointer-events:none !important; cursor:default !important; }
body[data-app-mode="viewer"] .drag-handle,
body[data-app-mode="viewer"] .movable-col-header,
body[data-app-mode="viewer"] #marquee-zone { pointer-events:none !important; cursor:default !important; }
/* Every button uses the same press feedback; compact row/color controls keep their density. */
button:not(#assistant-orb) { transition-property:background-color,border-color,box-shadow,color,opacity,scale; }
button:not(#assistant-orb):hover { transform:none; }
button:not(#assistant-orb):active:not(:disabled) { transform:none; scale:.96; transition-duration:150ms; }
button.color-btn:hover { scale:1; }
.workspace-toolbar button { transition-duration:150ms; }
.workspace-toolbar button:hover { scale:1; }
.workspace-toolbar button:active:not(:disabled) { scale:.96; }
.markdown-editor,.markdown-preview,.support-body { text-wrap:pretty; }
.markdown-editor a,.markdown-preview a { text-underline-position:from-font; text-decoration-thickness:from-font; }
.release-dialog h2,.cloud-library-header h2,.cloud-secondary-card h2 { text-wrap:balance; }
.version-button { font-weight:700; }
.release-kicker { font-family:var(--font-data); }
.dock-account-name { display:block; line-height:calc(var(--dock-control-height) - 2px); padding-block:0; }
#assistant-panel :is(#btn-lock,#btn-add-shot) { height:44px; padding-block:0; }
#assistant-panel button[onclick^="smartSort"],#assistant-panel button[onclick^="setAllChecked"],.support-panel-actions button { min-height:36px; line-height:1.4; }
:is(.support-actions,.cloud-secondary-actions,.storage-details-actions) button { min-height:40px; line-height:1.4; }
.release-dialog ul,.cloud-secondary-card p { line-height:1.6; }
.support-body { font-size:14px; line-height:1.6; }
.support-body label { font-size:13px; font-weight:600; }
.support-body input,.support-body textarea { font-size:14px; font-weight:400; line-height:1.5; }
.support-dialog h2 { font-size:20px; font-weight:800; line-height:1.1; }
@media (max-width:980px) { .dock-mode-edit-group { flex-wrap:wrap; justify-content:center; max-width:min(var(--edit-group-width,100%),100%); min-width:0; } #toast { bottom:calc(var(--workspace-toolbar-height,60px) + 24px); } }
@media (max-width:620px) { .dock-mode-edit-group { gap:4px; }.workspace-toolbar { gap:6px; } }
@media (pointer:coarse) { :root { --dock-control-height:48px; } .workspace-toolbar :is(.dock-account-provider,.dock-account-transfer,.dock-account-logout) { width:48px; } .support-body input,.support-body textarea { font-size:16px; } }
@media (prefers-reduced-motion:reduce) { .dock-mode-switch,.mode-switch-icon,.mode-switch-thumb,.dock-mode-edit-group,button:not(#assistant-orb) { transition-duration:.01ms !important; transition-delay:0s !important; } button:not(#assistant-orb):active { scale:1 !important; }.mode-switch-icon { transform:none !important; } }
