/* spreadsheet_analysis.css (주인 A) — 추적 화살표 겹판 · 수식 계산 창 · 오류 ⚠ 단추 */ /* 추적 화살표 — 크기 0 겹판(격자 조작을 막지 않음) */ .ss-trace { position: absolute; left: 0; top: 0; width: 1px; height: 1px; overflow: visible; pointer-events: none; } .ss-trace__line { stroke-width: 1.5; } .ss-trace__line.is-plain, .ss-trace__dot.is-plain, .ss-trace__head.is-plain { stroke: var(--color-info); fill: var(--color-info); } .ss-trace__line.is-error, .ss-trace__dot.is-error, .ss-trace__head.is-error { stroke: var(--color-danger); fill: var(--color-danger); } .ss-trace__line.is-sheet, .ss-trace__dot.is-sheet, .ss-trace__head.is-sheet { stroke: var(--color-text-body); fill: var(--color-text-body); } .ss-trace__line.is-sheet { stroke-dasharray: 4 3; } .ss-trace__box { fill: none; stroke-width: 2; stroke: var(--color-info); } .ss-trace__box.is-error { stroke: var(--color-danger); } .ss-trace__sheet { fill: var(--color-surface); stroke: var(--color-text-body); } /* 수식 계산 창 */ .ss-steps { position: absolute; inset: 0; z-index: var(--z-dropdown); display: flex; align-items: center; justify-content: center; background: rgb(0 0 0 / 18%); } .ss-steps__box { display: flex; flex-direction: column; gap: var(--spacing-8); min-width: 420px; max-width: 90%; padding: var(--spacing-12); background: var(--color-surface-raised); color: var(--color-text-body); border: 1px solid var(--color-border); border-radius: var(--radius-cards); box-shadow: var(--shadow-lg); font-size: 13px; } .ss-steps__title { font-weight: 600; } .ss-steps__meta { color: var(--color-text-secondary); } .ss-steps__text { min-height: 60px; padding: var(--spacing-8); font-family: var(--font-mono, monospace); white-space: pre-wrap; word-break: break-all; background: var(--color-canvas); border: 1px solid var(--color-border); border-radius: var(--radius-sm); } .ss-steps__foot { display: flex; justify-content: flex-end; gap: var(--spacing-8); } /* 오류 ⚠ 단추 · 풍선 · 메뉴 */ .ss-errtip { position: absolute; z-index: var(--z-dropdown); width: 0; height: 0; overflow: visible; } .ss-errtip__btn { position: absolute; width: 18px; height: 18px; padding: 0; font-size: 11px; line-height: 16px; cursor: pointer; color: var(--color-warning); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-sm); } .ss-errtip__balloon { display: none; position: absolute; left: 0; top: 22px; z-index: var(--z-dropdown); width: max-content; max-width: 320px; padding: var(--spacing-4) var(--spacing-8); font-size: 12px; color: var(--color-text-body); background: var(--color-surface-raised); border: 1px solid var(--color-border); border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); } .ss-errtip__btn:hover + .ss-errtip__balloon { display: block; } .ss-errtip__menu { position: absolute; left: 0; top: 22px; z-index: var(--z-dropdown); display: flex; flex-direction: column; min-width: 200px; max-width: 320px; padding: var(--spacing-4); font-size: 13px; color: var(--color-text-body); background: var(--color-surface-raised); border: 1px solid var(--color-border); border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); } .ss-errtip__head { padding: var(--spacing-4); font-weight: 600; } .ss-errtip__item { padding: var(--spacing-4); text-align: left; color: inherit; background: none; border: none; cursor: pointer; } .ss-errtip__item:hover { background: var(--color-mist-violet); }