.workbench-ui .content:has(>.file-workspace){padding:0}
.file-workspace{display:flex;flex-direction:column;align-items:stretch;gap:0;flex-wrap:nowrap;height:calc(100dvh - 48px);min-height:460px;background:var(--paper);position:relative;min-width:0}
.file-workspace-header{min-height:64px;padding:12px 22px;display:flex;align-items:center;gap:12px;flex-shrink:0;border-bottom:1px solid var(--line);background:var(--surface)}
.file-workspace-header h1{font-size:17px!important;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;min-width:0}
.file-workspace-header>.save-status{margin-left:auto;white-space:nowrap;font-size:11px}
.file-workspace-header>.save-status:empty{display:none}
.file-workspace-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}
.file-workspace-header>a>.icon{transform:rotate(180deg)}
.file-workspace-error{padding:12px 22px;background:#fff3d9;color:#825710;font-size:13px;line-height:1.5;flex-shrink:0;z-index:10}
.file-workspace-error button{margin-left:12px}
.file-workspace [hidden],.canvas-selection-tools[hidden]{display:none!important}
.canvas-tools{display:flex;align-items:center;gap:4px;padding:7px 10px;position:absolute;z-index:5;top:80px;left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--line);border-radius:12px}
.board-workspace .canvas-tools{width:max-content;max-width:calc(100% - 24px);flex-wrap:nowrap;min-height:0;padding:7px 10px}
.canvas-tools .icon-button{width:36px;height:36px;margin:0;cursor:pointer}
.canvas-tools .selected{color:var(--accent-ink);background:var(--accent-soft)}
.tool-divider{width:1px;height:22px;background:var(--line);margin-inline:4px}
.canvas-upload{position:relative;overflow:hidden;display:grid;place-items:center;padding:0}
.canvas-upload input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
.canvas-viewport{position:relative;flex:1;overflow:hidden;touch-action:none;outline:none!important;background-color:var(--paper);background-image:radial-gradient(#cbd0dd 1px,transparent 1px);background-size:24px 24px}
.canvas-viewport[data-tool=hand]{cursor:grab}
.canvas-viewport.is-panning{cursor:grabbing}
.canvas-viewport[data-tool=sticky],.canvas-viewport[data-tool=text],.canvas-viewport[data-tool=rectangle],.canvas-viewport[data-tool=edge]{cursor:crosshair}
.canvas-world{position:absolute;left:0;top:0;width:1px;height:1px;transform-origin:0 0}
.canvas-edges{position:absolute;width:1px;height:1px;overflow:visible;pointer-events:none;color:var(--muted)}
.canvas-edges g path{stroke:var(--muted);stroke-width:2;fill:none;pointer-events:stroke;cursor:pointer;marker-end:url(#edge-arrow)}
.canvas-edges g path.selected{stroke:var(--accent);stroke-width:3}
.canvas-node{position:absolute;min-width:80px;min-height:80px;border:1px solid #dce0e9;border-radius:8px;background:#fff;color:var(--ink);padding:18px;display:flex;flex-direction:column;gap:8px;overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.6;user-select:none;cursor:move}
.canvas-node[data-kind=sticky]{border-color:transparent;border-radius:3px}
.canvas-node[data-kind=ellipse]{border-radius:50%;align-items:center;justify-content:center;text-align:center}
.canvas-node[data-kind=text]{background:transparent!important;border-color:transparent}
.canvas-node[data-color=yellow]{background:#fff0ad}.canvas-node[data-color=blue]{background:#e4edff}.canvas-node[data-color=green]{background:#def2e2}.canvas-node[data-color=pink]{background:#fbe0e8}.canvas-node[data-color=purple]{background:#ece2ff}
.canvas-node.selected{outline:2px solid var(--accent);outline-offset:2px}
.canvas-node-text{flex:1;overflow:hidden;pointer-events:none}
.canvas-node textarea{position:absolute;inset:0;width:100%;height:100%;resize:none;border:0!important;outline:0!important;box-shadow:none!important;border-radius:inherit;background:transparent!important;color:inherit;padding:18px;font-size:15px;line-height:1.6;user-select:text}
.canvas-node img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.canvas-node .canvas-file-label{font-size:12px;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.canvas-node a{color:var(--accent-ink);font-size:12px}
.canvas-resize{position:absolute;width:12px;height:12px;right:-7px;bottom:-7px;background:white;border:1px solid var(--accent);display:none;cursor:nwse-resize}
.canvas-node.selected .canvas-resize{display:block}
.canvas-zoom{position:absolute;bottom:18px;left:18px;display:flex;align-items:center;gap:5px;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:10px;z-index:3;font-size:12px}
.canvas-zoom span{min-width:44px;text-align:center;font-variant-numeric:tabular-nums}
.canvas-selection-tools{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;z-index:4}
.canvas-selection-tools select{max-width:110px;font-size:12px;min-height:32px;padding:5px}
.canvas-cursor{position:absolute;pointer-events:none;z-index:100;color:var(--person-color);transition:left 70ms linear,top 70ms linear}
.canvas-cursor span{position:absolute;left:12px;top:19px;white-space:nowrap;background:var(--person-color);color:white;font-size:11px;border-radius:4px;padding:2px 7px}
.kanban-toolbar{display:flex;gap:12px;align-items:center;padding:16px 24px;flex-wrap:wrap;flex-shrink:0}
.kanban-toolbar .search-field{max-width:330px;min-width:180px;font-size:13px}
.kanban-toolbar>select{width:auto;min-width:155px;font-size:12px}
.kanban-toolbar>#kanban-add-column{margin-left:auto}
.kanban-columns{display:flex;gap:20px;align-items:flex-start;flex:1;overflow:auto;padding:6px 24px 28px;min-height:0}
.kanban-column{flex:0 0 290px;max-height:100%;display:flex;flex-direction:column;min-height:140px}
.kanban-column-heading{display:flex;align-items:center;gap:8px;padding:8px 3px 14px;flex-shrink:0;font-size:13px}
.kanban-column-heading strong{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kanban-column-heading .badge{font-size:11px;padding:1px 7px}
.kanban-column-heading .icon-button{margin-left:auto}
.kanban-card-list{display:flex;flex-direction:column;gap:10px;overflow:auto;min-height:50px;padding:2px;scrollbar-width:thin}
.kanban-column.is-drop-target .kanban-card-list{outline:2px dashed var(--accent);outline-offset:3px;border-radius:8px;min-height:100px}
.kanban-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px;cursor:grab;position:relative;text-align:left;color:var(--ink);flex-shrink:0}
.kanban-card:hover{border-color:var(--field-line)}
.kanban-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.kanban-card.is-dragging{opacity:.4}
.kanban-card strong{font-size:13px;line-height:1.6;font-weight:600;overflow-wrap:anywhere;display:block;padding-right:12px;white-space:pre-wrap}
.kanban-card .card-excerpt{font-size:12px;color:var(--muted);line-height:1.6;margin:7px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kanban-card-labels{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:9px}
.kanban-card-labels span{background:var(--accent-soft);color:var(--accent-ink);font-size:10px;padding:2px 7px;border-radius:4px}
.kanban-card-footer{display:flex;gap:8px;align-items:center;margin-top:12px;font-size:11px;color:var(--muted)}
.kanban-card-footer .avatar{margin-left:auto;width:24px;height:24px;font-size:9px}
.kanban-card-footer .icon{width:13px;height:13px}
.kanban-card-footer time.overdue{color:var(--theme-danger,#a32d40)}
.kanban-card[data-color=yellow]{background:#fff2ba}.kanban-card[data-color=blue]{background:#e4ecff}.kanban-card[data-color=green]{background:#def3e2}.kanban-card[data-color=pink]{background:#ffe4eb}.kanban-card[data-color=purple]{background:#eee4fb}
.kanban-add-card{display:flex;align-items:center;gap:7px;margin-top:10px;padding:10px 6px;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer;font-size:12px;text-align:left}
.kanban-add-card:hover{background:var(--surface-hover);color:var(--ink)}
.board-inline-form{margin-top:10px;display:grid;gap:8px}
.board-inline-form textarea{width:100%;min-height:75px;resize:vertical;background:white;font-size:13px}
.board-inline-form>div{display:flex;gap:7px}
.card-file-drop{border:1px dashed var(--field-line);padding:14px;margin-top:14px;border-radius:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}
.card-file-drop input{width:100%}
.file-content-toolbar{display:flex;gap:8px;align-items:center;min-height:0;flex-shrink:0}
.file-content-toolbar:not(:empty){padding:12px 22px;border-bottom:1px solid var(--line);background:var(--surface)}
.file-content-pane{flex:1;min-height:0;overflow:auto;position:relative;display:flex;flex-direction:column}
.file-loading{padding:40px;text-align:center;color:var(--muted);font-size:13px}
#file-source{flex:1;width:100%;height:100%;min-height:280px;resize:none;padding:24px 30px;border:0;border-radius:0!important;background:var(--surface);color:var(--ink);font:13px/1.7 Consolas,monospace;tab-size:2;outline:0;box-shadow:none}
.file-render-frame{border:0;width:100%;flex:1;min-height:400px;background:white}
.file-media-stage{flex:1;display:grid;place-items:center;padding:28px;min-height:0;overflow:auto}
.file-media-stage img,.file-media-stage canvas{max-width:100%;max-height:calc(100dvh - 240px);object-fit:contain}
.file-media-stage video{max-width:100%;max-height:calc(100dvh - 200px)}
.file-media-stage audio{width:min(600px,100%)}
.file-unsupported{margin:auto;padding:36px;text-align:center;font-size:14px;line-height:1.7}
.file-unsupported>.icon{width:44px;height:44px;color:var(--muted);margin-bottom:15px}
.csv-table{border-collapse:collapse;background:var(--surface);font-size:13px;width:max-content;min-width:100%}
.csv-table th{min-width:46px;background:var(--surface-muted);font-weight:500;color:var(--muted);position:sticky;top:0;padding:8px 12px;border:1px solid var(--line);text-align:center}
.csv-table td{min-width:150px;max-width:500px;padding:9px 12px;border:1px solid var(--line);white-space:pre-wrap;vertical-align:top}
.csv-table td:focus{outline:2px solid var(--accent);outline-offset:-2px}
.csv-table tbody th{left:0;z-index:1;font-size:11px}
.file-versions-list{display:grid;gap:12px;font-size:13px}
.file-versions-list>div{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px}
.file-versions-list>div>div{flex:1;display:grid;gap:5px}
.file-versions-list small{color:var(--muted)}
.slide-content-preview{width:min(900px,calc(100% - 48px));margin:24px auto;padding:36px;background:var(--surface);border-radius:12px;color:var(--ink);font-size:16px;line-height:1.7}
.slide-content-preview h2{font-size:26px;margin:0 0 24px}
.slide-content-preview img{max-width:100%;max-height:400px;object-fit:contain;margin:12px 0}
@media(max-width:760px){
 .file-workspace{height:calc(100dvh - 110px);min-height:460px}
 .file-workspace-header{padding:12px;gap:8px;flex-wrap:wrap}
 .file-workspace-header h1{font-size:15px!important;flex:1}
 .file-workspace-header>.save-status{font-size:12px;order:4;flex-basis:100%;margin:0 0 0 38px}
 .file-workspace-actions{gap:5px}.file-workspace-actions .button{padding:7px 9px}.file-workspace-actions .button>span{display:none}
 .canvas-tools{top:82px;max-width:calc(100% - 20px);gap:0;padding:5px;overflow-x:auto}
 .canvas-tools .icon-button{width:32px;min-width:32px;height:36px}.tool-divider{margin-inline:2px}
 .canvas-selection-tools{bottom:66px;max-width:calc(100% - 20px)}
 .canvas-selection-tools .button{font-size:11px;padding:7px}
 .canvas-zoom{bottom:14px;left:14px}.canvas-zoom .icon-button{width:30px}
 .kanban-toolbar{padding:12px 16px;gap:8px}
 .kanban-toolbar .search-field{min-width:0;max-width:none;flex-basis:100%}
 .kanban-toolbar>select{flex:1;min-width:0;max-width:170px}
 .kanban-toolbar>#kanban-add-column{margin-left:0}
 .kanban-columns{padding:5px 16px 20px;gap:16px;scroll-snap-type:x proximity;scroll-padding-inline:16px}
 .kanban-column{flex-basis:calc(100vw - 64px);max-width:340px;scroll-snap-align:start}
 .file-content-toolbar:not(:empty){padding:10px 14px;flex-wrap:wrap}
 #file-source{padding:18px;font-size:12px}
 .file-media-stage{padding:16px}
}
