:root{--bg:#f4f6fb;--panel:#fff;--line:#dee2e6;--text:#212529;--muted:#6c757d;--brand:#0d6efd;--brand-strong:#0b5ed7;--brand-soft:#e7f1ff}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{color:var(--text);background:linear-gradient(180deg, #f8f9fb 0%, var(--bg) 100%);font-family:Pretendard,Noto Sans KR,Malgun Gothic,sans-serif}.app-shell{grid-template-rows:auto auto 1fr;width:100%;height:100%;display:grid}.drop-overlay{z-index:40;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);pointer-events:none;background:#0d152624;place-items:center;padding:2rem;display:grid;position:absolute;inset:0}.drop-overlay[hidden]{display:none!important}.drop-overlay-card{text-align:center;background:linear-gradient(#fffffffa,#f1f6fff5),#fff;border:2px dashed #0d6efd61;border-radius:1.2rem;justify-items:center;gap:.85rem;width:min(100%,440px);padding:2rem 2.25rem;display:grid;box-shadow:0 22px 60px #0f172a2e,inset 0 0 0 1px #ffffffb3}.drop-overlay-icon{width:4rem;height:4rem;color:var(--brand);background:linear-gradient(135deg,#0d6efd2e,#2563eb1f);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.drop-overlay-icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:1.7rem;height:1.7rem}.drop-overlay-title{color:#0f172a;letter-spacing:-.02em;font-size:1.08rem;font-weight:800}.drop-overlay-caption{color:#475569;font-size:.9rem}.toolbar{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.7rem 1rem;display:flex;box-shadow:0 .125rem .25rem #00000013}.toolbar-group{gap:0;display:flex}.toolbar-group-main{border:1px solid var(--line);background:#fff;border-radius:.5rem;align-items:center;display:inline-flex;overflow:hidden;box-shadow:0 .05rem .15rem #0000000a}.toolbar-group-main .toolbar-btn+.toolbar-btn{border-left:1px solid var(--line)}.toolbar-meta{border:1px solid var(--line);background:#f8f9fa;border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.55rem;margin-left:auto;padding:.4rem .55rem;display:flex}.toolbar-btn{appearance:none;color:var(--text);--toolbar-icon-bg:#0d6efd1f;--toolbar-icon-fg:var(--brand);cursor:pointer;background:#fff;border:0;border-radius:0;justify-content:center;align-items:center;min-width:52px;min-height:46px;padding:.52rem .72rem;font-size:.9rem;font-weight:600;line-height:1.2;transition:background-color .15s,color .15s,box-shadow .15s,transform .15s;display:inline-flex}.toolbar-btn:hover{color:var(--brand-strong);background:#f3f7ff}.toolbar-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #0d6efd42}.toolbar-btn:active{transform:translateY(1px)}.toolbar-btn-icon{background:var(--toolbar-icon-bg);width:2rem;height:2rem;color:var(--toolbar-icon-fg);border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 0 0 1px #0f172a0a}.toolbar-btn-icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:1.08rem;height:1.08rem}.toolbar-btn-primary{background:var(--brand);color:#fff;--toolbar-icon-bg:#ffffff2e;--toolbar-icon-fg:#fff}.toolbar-btn-primary:hover{background:var(--brand-strong);color:#fff}.toolbar-btn-fit-width{--toolbar-icon-bg:#3b82f61f;--toolbar-icon-fg:#2563eb}.toolbar-btn-fit-page{--toolbar-icon-bg:#6366f11f;--toolbar-icon-fg:#4f46e5}.toolbar-btn-print{--toolbar-icon-bg:#4755691f;--toolbar-icon-fg:#334155}.toolbar-btn-download{--toolbar-icon-bg:#14b8a61f;--toolbar-icon-fg:#0f766e}.toolbar-btn-draw{--toolbar-icon-bg:#f9731624;--toolbar-icon-fg:#ea580c}.toolbar-btn-clear{--toolbar-icon-bg:#e11d481f;--toolbar-icon-fg:#be123c}.toolbar button.is-active{background:var(--brand-soft);color:var(--brand-strong);font-weight:600}.toolbar button.is-active .toolbar-btn-icon{color:var(--brand-strong);background:#0d6efd24}.toolbar button:disabled{cursor:not-allowed;opacity:.5;color:var(--muted)}.toolbar button:disabled .toolbar-btn-icon{color:#94a3b8;background:#94a3b824}.whiteboard-panel{border-bottom:1px solid var(--line);background:#f8f9fa;flex-wrap:wrap;grid-row:2;align-items:center;gap:.7rem .9rem;padding:.6rem 1rem;display:none}.app-shell.whiteboard-open .whiteboard-panel{display:flex}.whiteboard-control{border:1px solid var(--line);background:#fff;border-radius:.5rem;align-items:center;gap:.6rem;padding:.35rem .55rem;display:flex;box-shadow:0 .03rem .12rem #0000000a}.whiteboard-label{color:var(--muted);font-size:.8rem;font-weight:600}.whiteboard-options{align-items:center;gap:.35rem;display:flex}.whiteboard-tool{appearance:none;color:var(--text);cursor:pointer;background:#fff;border:1px solid #ced4da;border-radius:999px;padding:.33rem .78rem;font-size:.84rem;font-weight:500}.whiteboard-tool.is-selected{background:var(--brand-soft);color:var(--brand-strong);border-color:#9ec5fe}.whiteboard-color-input{border:1px solid var(--line);background:#fff;border-radius:8px;width:34px;height:30px;padding:2px}.whiteboard-swatch{cursor:pointer;border:1px solid #0f172a2e;border-radius:999px;width:22px;height:22px}.whiteboard-swatch.is-selected{outline:2px solid var(--brand-strong);outline-offset:1px}.whiteboard-size-wrap{align-items:center;gap:.5rem;display:flex}.whiteboard-size-input{width:140px}.whiteboard-size-value{min-width:3.2rem;color:var(--muted);font-size:.84rem;font-weight:600}.viewer-root{grid-row:3;grid-template-rows:1fr;min-height:0;display:grid;position:relative}.viewer-meta{background:0 0;border:0;flex-wrap:wrap;gap:.55rem;padding:0;display:flex}.meta-line{background:#fff;border:1px solid #e9ecef;border-radius:.45rem;align-items:center;gap:.4rem;min-width:auto;padding:.28rem .45rem;display:flex}.meta-line:first-child{flex:12rem;min-width:12rem}.meta-label{color:var(--muted);white-space:nowrap;font-size:.74rem;font-weight:700}.meta-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.88rem;font-weight:700;overflow:hidden}.zoom-inline-btn{appearance:none;color:var(--text);cursor:pointer;background:#fff;border:1px solid #ced4da;border-radius:999px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;font-size:0;line-height:1;display:inline-flex}.zoom-inline-btn:hover{color:var(--brand-strong);background:var(--brand-soft);border-color:#9ec5fe}.zoom-inline-btn svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}.scroll-container{cursor:grab;min-height:0;padding:0;position:relative;overflow:auto}.scroll-container.is-drag-scrolling{cursor:grabbing;-webkit-user-select:none;user-select:none}.scroll-container.is-drag-scrolling *{-webkit-user-select:none;user-select:none}.app-shell.whiteboard-open .scroll-container{cursor:default}.scroll-content{min-height:100%;position:relative}.scroll-content.whiteboard-enabled{-webkit-user-select:none;user-select:none}.whiteboard-overlay{z-index:30;pointer-events:none;cursor:crosshair;touch-action:none;position:absolute;top:0;left:0}.whiteboard-overlay.is-enabled{pointer-events:auto}.scroll-content .hwp-page-canvas{background:#fff;display:block;position:absolute;box-shadow:0 16px 40px #0f172a14,0 2px 8px #0f172a0f}.scroll-content.pdf-mode{flex-direction:column;align-items:center;gap:1rem;min-height:auto;padding:1rem 0 2rem;display:flex}.pdf-page{justify-content:center;width:100%;display:flex}.pdf-canvas{background:#fff;display:block;box-shadow:0 16px 40px #0f172a14,0 2px 8px #0f172a0f}.scroll-content.sheet-mode,.scroll-content.ppt-mode,.scroll-content.image-mode{min-height:100%}.sheet-tabs{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;display:flex;position:sticky;top:0}.sheet-tab{appearance:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#f8fafc;border-radius:999px;padding:.45rem .8rem;font-size:.92rem}.sheet-tab.is-active{border-color:var(--brand);color:var(--brand-strong);background:#155eef14;font-weight:600}.sheet-body{min-height:calc(100% - 60px);padding:1rem}.sheet-stage{margin:0 auto;position:relative}.sheet-zoom-host{transform-origin:0 0;position:absolute;top:0;left:0}.sheet-table{border-collapse:collapse;table-layout:fixed;background:#fff;box-shadow:0 16px 40px #0f172a14,0 2px 8px #0f172a0f}.sheet-table td,.sheet-table th{vertical-align:top;color:#0f172a;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid #d6dde8;min-width:0;padding:2px 4px;font-size:11pt;line-height:1.15}.sheet-cell-content{min-height:1.1em}.sheet-empty{border:1px dashed var(--line);min-width:320px;min-height:160px;color:var(--muted);background:#ffffffd1;border-radius:20px;justify-content:center;align-items:center;padding:1rem 1.25rem;display:inline-flex}.ppt-body{min-height:100%;padding:1rem}.ppt-stage{margin:0 auto;position:relative}.ppt-zoom-host{transform-origin:0 0;flex-direction:column;gap:1.75rem;display:flex;position:absolute;top:0;left:0}.ppt-slide-page{width:fit-content}.ppt-slide-frame{background:linear-gradient(#f8fafceb,#fffffffa),#fff;position:relative;overflow:hidden;box-shadow:0 16px 40px #0f172a14,0 2px 8px #0f172a0f}.ppt-shape,.ppt-image,.ppt-table-box,.ppt-chart-box{position:absolute}.ppt-shape{flex-direction:column;padding:6px 8px;display:flex;overflow:hidden}.ppt-paragraph{line-height:1.25}.ppt-bullet{margin-right:6px}.ppt-image{object-fit:contain;width:100%;height:100%;display:block}.ppt-table-box{overflow:hidden}.ppt-table{border-collapse:collapse;table-layout:auto;background:#fffffff0;width:100%;height:100%}.ppt-table td{vertical-align:top;overflow-wrap:anywhere;word-break:keep-all;padding:0;font-size:.82rem}.ppt-table-cell{flex-direction:column;min-height:100%;display:flex}.ppt-table-paragraph{white-space:pre-wrap;line-height:1.35}.ppt-chart-box{color:var(--text);background:#ffffffd6;border:1px dashed #94a3b8;flex-direction:column;justify-content:center;gap:.4rem;padding:.85rem 1rem;display:flex}.ppt-chart-title{font-weight:700}.ppt-chart-caption{color:var(--muted);font-size:.82rem}.image-body{min-height:100%;padding:1rem}.image-stage{margin:0 auto;position:relative}.image-zoom-host{transform-origin:0 0;position:absolute;top:0;left:0}.image-view{background:#fff;max-width:none;display:block;box-shadow:0 16px 40px #0f172a14,0 2px 8px #0f172a0f}@media (width<=768px){.toolbar,.viewer-meta,.whiteboard-panel,.drop-overlay{padding-inline:.75rem}.toolbar-meta{width:100%;margin-left:0;padding-inline:.5rem}.toolbar .toolbar-btn{padding:.5rem .8rem;font-size:.9rem}.toolbar-group-main{max-width:100%}.meta-line{width:100%;min-width:auto}.meta-line:first-child{flex-basis:100%;min-width:100%}.sheet-tabs,.sheet-body,.ppt-body,.image-body{padding-inline:.75rem}.whiteboard-control{width:100%}}
