.visor-inline{border:1px solid var(--border-subtle);border-radius:var(--radius-lg,12px);background:var(--surface-raised);box-shadow:var(--shadow-sm,0 1px 2px #0000000d);max-width:420px;overflow:hidden}.visor-toolbar{align-items:center;gap:var(--space-2,8px);padding:var(--space-2,8px) var(--space-3,12px);border-bottom:1px solid var(--border-subtle);background:var(--surface-sunken);display:flex}.visor-toolbar-inline{padding:var(--space-1-5,6px) var(--space-2,8px)}.visor-kind-icon{color:var(--text-tertiary);flex-shrink:0;display:flex}.visor-toolbar-meta{flex-direction:column;flex:1;min-width:0;display:flex}.visor-toolbar-name{font-size:var(--fs-body-sm,13px);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.visor-toolbar-sub{font-size:var(--fs-caption,11px);color:var(--text-tertiary)}.visor-dl-btn{border-radius:var(--radius-md,8px);font-size:var(--fs-body-sm,13px);color:var(--action-primary);background:var(--action-primary-subtle,#16a34a1a);transition:background var(--dur-1,.12s) var(--ease-out,ease);flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;font-weight:600;text-decoration:none;display:inline-flex}.visor-dl-btn:hover{background:var(--action-primary-hover,#16a34a2e)}.visor-icon-btn{border-radius:var(--radius-md,8px);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.visor-icon-btn:hover{background:var(--surface-sunken)}.visor-inline-body{padding:var(--space-2,8px);background:var(--surface-raised)}.visor-inline-body .visor-img-wrap img{max-height:320px}.visor-inline-body .visor-pdf{height:360px}.visor-inline-body .visor-code,.visor-inline-body .visor-md{max-height:320px}.visor-modal-overlay{z-index:10050;padding:var(--space-4,16px);animation:visor-fade .16s var(--ease-out,ease);background:#0f172a99;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.visor-modal{background:var(--surface-raised);border-radius:var(--radius-lg,14px);width:min(960px,100%);max-height:92vh;box-shadow:var(--shadow-lg,0 20px 60px #0000004d);animation:visor-pop .2s var(--ease-out,ease);flex-direction:column;display:flex;overflow:hidden}.visor-modal-body{background:var(--surface-canvas);min-height:0;padding:var(--space-3,12px);flex:1;overflow:auto}.visor-img-wrap{justify-content:center;align-items:center;display:flex}.visor-img-wrap img,.visor-img-wrap svg{border-radius:var(--radius-md,8px);max-width:100%;height:auto;display:block}.visor-pdf-wrap{width:100%}.visor-pdf{border-radius:var(--radius-md,8px);background:var(--gray-0);border:none;width:100%;height:70vh}.visor-inline-body .visor-pdf-wrap .visor-pdf{height:360px}.visor-audio{padding:var(--space-3,12px)}.visor-audio audio{width:100%}.visor-video video{border-radius:var(--radius-md,8px);background:var(--gray-1000);width:100%;max-height:70vh;display:block}.visor-code{font-family:var(--font-mono,ui-monospace, Menlo, monospace);font-size:var(--fs-body-sm,13px);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md,8px);padding:var(--space-3,12px);white-space:pre;margin:0;line-height:1.55;overflow:auto}.visor-code-plain{white-space:pre-wrap;word-break:break-word}.visor-csv-wrap{border:1px solid var(--border-subtle);border-radius:var(--radius-md,8px);overflow:auto}.visor-csv{border-collapse:collapse;width:100%;font-size:var(--fs-body-sm,13px)}.visor-csv th,.visor-csv td{border:1px solid var(--border-subtle);text-align:left;white-space:nowrap;padding:6px 10px}.visor-csv th{background:var(--surface-sunken);color:var(--text-secondary);font-weight:600;position:sticky;top:0}.visor-csv tr:nth-child(2n) td{background:var(--surface-sunken)}.visor-md{color:var(--text-primary);font-size:var(--fs-body,14px);line-height:1.6}.visor-md-h{margin:.8em 0 .4em;font-weight:700}.visor-md-p{margin:.5em 0}.visor-md-ul,.visor-md-ol{margin:.5em 0;padding-left:1.4em}.visor-md-quote{border-left:3px solid var(--border-strong);color:var(--text-secondary);margin:.6em 0;padding-left:12px}.visor-md-code,.visor-md-pre{font-family:var(--font-mono,ui-monospace, Menlo, monospace)}.visor-md-code{background:var(--surface-sunken);border-radius:4px;padding:1px 5px;font-size:.9em}.visor-md-pre{background:var(--surface-sunken);border-radius:8px;padding:12px;overflow:auto}.visor-fallback{padding:var(--space-6,32px) var(--space-4,16px);text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.visor-fallback-icon{color:var(--text-tertiary)}.visor-fallback-name{color:var(--text-primary);word-break:break-word;font-weight:600}.visor-fallback-meta{font-size:var(--fs-body-sm,13px);color:var(--text-tertiary)}.visor-fallback-hint{font-size:var(--fs-caption,12px);color:var(--text-tertiary);margin-bottom:6px}.visor-loading{padding:var(--space-4,16px);color:var(--text-secondary);font-size:var(--fs-body-sm,13px);align-items:center;gap:8px;display:flex}.visor-spin{animation:.8s linear infinite visor-spin}.visor-thumb{border-radius:var(--radius-md,8px);border:1px solid var(--border-subtle);background:var(--surface-sunken);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.visor-thumb img{object-fit:cover;width:100%;height:100%}.visor-thumb-generic{color:var(--text-tertiary)}.visor-sheet{gap:var(--space-2,8px);flex-direction:column;display:flex}.visor-sheet-tabs{flex-wrap:wrap;gap:4px;display:flex}.visor-sheet-tab{border-radius:var(--radius-md,8px);border:1px solid var(--border-subtle);background:var(--surface-raised);font-size:var(--fs-body-sm,13px);color:var(--text-secondary);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;max-width:180px;padding:4px 10px;overflow:hidden}.visor-sheet-tab:hover{background:var(--surface-sunken)}.visor-sheet-tab.active{background:var(--action-primary-subtle,#16a34a1a);border-color:var(--action-primary);color:var(--action-primary);font-weight:600}.visor-sheet-note{font-size:var(--fs-caption,12px);color:var(--text-tertiary)}.visor-docx{color:var(--text-primary);font-size:var(--fs-body,14px);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md,8px);padding:var(--space-4,20px) var(--space-5,24px);max-width:820px;margin:0 auto;line-height:1.6}.visor-docx h1,.visor-docx h2,.visor-docx h3{margin:.9em 0 .4em;font-weight:700;line-height:1.3}.visor-docx p{margin:.55em 0}.visor-docx ul,.visor-docx ol{margin:.55em 0;padding-left:1.5em}.visor-docx img{max-width:100%;height:auto}.visor-docx table{border-collapse:collapse;width:100%;margin:.8em 0}.visor-docx th,.visor-docx td{border:1px solid var(--border-subtle);text-align:left;padding:6px 10px}.visor-docx a{color:var(--action-primary)}.visor-inline-body .visor-docx{max-height:320px;overflow:auto}.visor-pdfjs{flex-direction:column;height:100%;display:flex}.visor-pdfjs-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3,12px);padding:var(--space-1-5,6px) var(--space-2,8px);border:1px solid var(--border-subtle);border-radius:var(--radius-md,8px);background:var(--surface-sunken);margin-bottom:var(--space-2,8px);flex-wrap:wrap;display:flex}.visor-pdfjs-zoom{align-items:center;gap:4px;display:flex}.visor-pdfjs-pageinfo,.visor-pdfjs-zoominfo{font-size:var(--fs-body-sm,13px);color:var(--text-secondary);text-align:center;font-variant-numeric:tabular-nums}.visor-pdfjs-pageinfo{padding-left:var(--space-1,4px)}.visor-pdfjs-zoominfo{min-width:56px}.visor-icon-btn:disabled{opacity:.4;cursor:default}.visor-icon-btn:disabled:hover{background:0 0}.visor-pdfjs-scroll{background:var(--surface-canvas);border-radius:var(--radius-md,8px);min-height:0;padding:var(--space-3,12px);overscroll-behavior:contain;flex:1;position:relative;overflow:auto}.visor-pdfjs-pages{align-items:center;gap:var(--space-3,12px);flex-direction:column;width:fit-content;min-width:100%;margin:0 auto;display:flex}.visor-pdfjs-page{background:var(--gray-0);box-shadow:var(--shadow-md,0 2px 12px #0000001f);flex:none}.visor-pdfjs-canvas{display:block}.visor-modal-body .visor-pdfjs{height:74vh}.visor-inline-body .visor-pdfjs{height:360px}@keyframes visor-fade{0%{opacity:0}to{opacity:1}}@keyframes visor-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes visor-spin{to{transform:rotate(360deg)}}
