/* Desktop workspace styles */ .desk-main { flex: 1; display: flex; flex-direction: column; min-height: 0; } .desk-item { position: absolute; display: block; width: auto; cursor: grab; touch-action: none; transform-origin: center center; transition: box-shadow 0.16s ease; outline: none; will-change: transform; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; } .desk-shell { flex: 1; display: flex; flex-direction: column; grid-column: 2 / -1; min-height: 0; position: relative; } .desk-canvas { flex: 1; position: relative; overflow: hidden; margin: 0; outline: none; } .desk-canvas:focus, .desk-canvas:focus-visible { outline: none; } .desk-empty { height: 100%; display: flex; align-items: center; justify-content: center; padding: 3rem; text-align: center; color: var(--muted); font-size: 0.95rem; } .desk-item__body { flex-grow: 1; width: 100%; height: 100%; } .desk-item:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; } .desk-item.is-dragging { cursor: grabbing; transition: none; } .desk-item.is-tag-target .desk-item__card { outline: 0.35rem dashed var(--accent); outline-offset: 0.35rem; } .desk-item.is-tag-pending .desk-item__card { outline: 0.25rem solid var(--accent-outline); outline-offset: 0.25rem; } .desk-item.is-filtered-out { opacity: 0.12; pointer-events: none; filter: blur(15px) grayscale(100%); transition: opacity 0.6s ease, filter 0.28s ease; z-index: 0 !important; } .desk-item.is-selected { z-index: 5; } .desk-item.is-selected .desk-item__card { box-shadow: 0 0 0 0.18rem color-mix(in oklch, var(--accent) 45%, transparent), 0 0 0.35rem 0 color-mix(in oklch, var(--accent) 28%, transparent), 0 12px 28px -14px color-mix(in oklch, var(--accent) 20%, transparent), 0 10px 24px var(--shadow-medium); } .desk-item.is-selected .desk-item__title { color: var(--accent); } .desk-item__tags { --tag-scale: 1; position: absolute; top: 0; right: 0; display: flex; flex-direction: column; gap: 0.35rem; align-items: flex-end; transform-origin: top right; transform: scale(var(--tag-scale)) translate(-0.5em, 0.5em); transition: transform 0.28s ease; } .desk-item__correspondents { position: absolute; bottom: 0; left: 0; display: flex; flex-direction: column; gap: 0.35rem; align-items: flex-start; transform-origin: bottom left; transform: translate(0.5em, -0.5em); pointer-events: none; } .desk-correspondent-chip { pointer-events: none; font-size: 0.82rem; padding: 0.18rem 0.55rem; max-width: min(16rem, 80%); display: inline-flex; align-items: center; overflow: hidden; background: color-mix(in oklch, var(--surface-subtle) 90%, transparent); color: var(--muted); } .desk-correspondent-chip__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .tag-chip--draggable { user-select: none; pointer-events: auto; cursor: grab; transition: transform 0.16s ease, opacity 0.2s ease, box-shadow 0.2s ease; } .desk-help-overlay { position: fixed; inset: 0; z-index: 1400; display: flex; align-items: center; justify-content: center; padding: clamp(1.5rem, 4vw, 3rem); pointer-events: none; } .desk-help-overlay__backdrop { position: absolute; inset: 0; background: var(--surface-overlay); backdrop-filter: blur(8px); pointer-events: auto; } .desk-help-overlay__content { position: relative; width: min(640px, 92vw); max-height: min(80vh, 640px); background: var(--surface); border: 1px solid var(--border); box-shadow: 0 24px 64px var(--shadow-strong); border-radius: 1.25rem; display: flex; flex-direction: column; pointer-events: auto; overflow: hidden; } .desk-help-overlay__header, .desk-help-overlay__footer { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; } .desk-help-overlay__header { border-bottom: 1px solid var(--border); } .desk-help-overlay__header h2 { margin: 0; font-size: 1.15rem; font-weight: 600; } .desk-help-overlay__body { padding: 1rem 1.25rem 1.5rem; overflow-y: auto; display: flex; flex-direction: column; gap: 0.75rem; line-height: 1.55; } .desk-help-overlay__body p { margin: 0; color: var(--muted); } .desk-help-overlay__list { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 0.5rem; } .desk-help-overlay__list li { color: var(--fg); } .desk-help-overlay__body kbd { display: inline-block; padding: 0.15rem 0.4rem; border-radius: 0.4rem; border: 1px solid var(--border-strong); background: var(--surface-subtle); font-size: 0.85em; line-height: 1; font-family: inherit; } .desk-help-overlay__footer { border-top: 1px solid var(--border); justify-content: flex-end; gap: 0.5rem; } .tag-chip--draggable:active { cursor: grabbing; } .tag-chip--draggable.is-drag-hidden { opacity: 0.4; pointer-events: none; } .desk-item__tags .tag-chip { font-size: 0.85rem; padding: 0.18rem 0.55rem; gap: 0.3rem; } .desk-card__nav { position: absolute; bottom: 1.8rem; left: 50%; transform: translateX(-50%); transform-origin: center; display: flex; gap: 1.5rem; opacity: 0; pointer-events: none; transition: opacity 0.2s ease; } .desk-item__card:hover .desk-card__nav { opacity: 1; pointer-events: auto; } .desk-card__nav-button { display: inline-flex; align-items: center; justify-content: center; width: 2.4em; height: 2.4em; padding: 0.25em; border-radius: 50%; border: none; background: var(--preview-nav-bg); color: var(--preview-nav-fg); cursor: pointer; transition: background 0.15s ease, opacity 0.15s ease; } .desk-card__nav-button:hover:not([disabled]) { background: var(--preview-nav-bg-hover); } .desk-card__nav-button:disabled { opacity: 0.4; cursor: default; } .desk-card__nav-button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } .desk-card__nav-button svg { width: 100%; height: 100%; } .desk-item__tags .tag-chip--tear-pending { opacity: 0.35; } body.desk-cursor-remove, body.desk-cursor-remove * { cursor: not-allowed !important; } .desk-item__shadow { display: none; } .desk-item__card { position: relative; border-radius: 0; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; box-shadow: 0 12px 32px var(--shadow-medium); overflow: hidden; } .desk-item__card img { width: 100%; height: 100%; object-fit: contain; display: block; pointer-events: none; user-select: none; -webkit-user-drag: none; } .desk-item__card--empty { box-shadow: 0 12px 32px var(--shadow-medium); background: radial-gradient(circle at 42% 38%, color-mix(in oklch, var(--surface-subtle) 75%, var(--selection) 25%), color-mix(in oklch, var(--surface-subtle) 85%, var(--selection) 15%) 70%), linear-gradient(135deg, color-mix(in oklch, var(--surface-subtle) 88%, var(--selection-soft) 12%) 0%, color-mix(in oklch, var(--surface-subtle) 65%, var(--shadow-faint) 35%) 100%); width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; } .desk-item__placeholder { font-size: 0.95rem; font-weight: 500; letter-spacing: normal; color: var(--muted); } .desk-item__empty { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; gap: 0.5rem; padding: 1rem; text-align: center; } .desk-item__title { font-size: 0.95rem; font-weight: 500; color: var(--fg); max-width: 90%; overflow: hidden; overflow-wrap: anywhere; word-break: break-word; white-space: normal; }