:root{--bg:#f4f6f9;--panel:#fff;--ink:#17202c;--muted:#667085;--line:#dde2ea;--brand:#1d4ed8;--brand-ink:#fff;--brand-soft:#e6edff;--danger:#c62828;--warn:#fff4d6;--radius:12px;--tap:46px;--shadow:0 6px 24px #1018281f;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0}body{overscroll-behavior:none;font-size:16px}h1{margin:8px 0;font-size:24px}h2{margin:20px 0 10px;font-size:20px}h3{margin:12px 0 8px;font-size:17px}button{font:inherit;color:inherit}input,select,textarea{font:inherit;width:100%;min-height:var(--tap);border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:10px 12px;font-size:16px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}mark{background:#ffe066}.page{flex-direction:column;min-height:100%;display:flex}.center{flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.container{width:100%;max-width:1100px;margin:0 auto;padding:16px}.container.wide{max-width:1500px}.row{align-items:center;display:flex}.row.between{justify-content:space-between}.row.gap,.gap{gap:8px}.wrap{flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:13px}.badge{background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.empty{text-align:center;color:var(--muted);border:2px dashed var(--line);border-radius:var(--radius);margin:16px 0;padding:48px 16px}.warn{background:var(--warn);border-radius:10px;margin:10px 0;padding:10px 14px}.section{margin-top:20px}.btn{min-height:var(--tap);border:1px solid var(--line);cursor:pointer;white-space:nowrap;touch-action:manipulation;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5}.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.btn.danger{color:var(--danger);border-color:#f2c4c4}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost.on{background:var(--brand-soft)}.btn.icon{width:var(--tap);padding:0;font-size:20px}.btn.sm{min-height:36px;padding:0 12px;font-size:14px}.btn.lg{min-height:52px;padding:0 22px;font-size:17px}.chips{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.chips.scroll{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.chip{border:1px solid var(--line);cursor:pointer;white-space:nowrap;touch-action:manipulation;background:#fff;border-radius:999px;min-height:42px;padding:0 14px;font-weight:500}.chip.sm{min-height:34px;padding:0 12px;font-size:14px}.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}.chip .cnt{opacity:.75;margin-left:6px;font-size:12px}.seg{background:#eef1f6;border-radius:12px;gap:4px;padding:4px;display:flex;overflow-x:auto}.seg button{white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;min-height:42px;padding:0 10px;font-weight:600}.seg.sm button{min-height:38px;font-size:14px}.seg button.on{color:var(--brand);background:#fff;box-shadow:0 1px 4px #0000001f}.topbar{z-index:20;padding:8px 12px;padding-top:max(8px, env(safe-area-inset-top));background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:6px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:8px;font-size:18px;font-weight:800;display:flex}.logo{color:var(--brand)}.title-block{cursor:pointer;min-width:0}.title-block .t1{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:800;overflow:hidden}.title-block .t2{color:var(--muted);font-size:13px}.tabs{background:var(--panel);border-bottom:1px solid var(--line);z-index:19;gap:4px;padding:0 12px;display:flex;position:sticky;top:62px;overflow-x:auto}.tab{min-height:48px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:0 18px;font-weight:700}.tab.on{color:var(--brand);border-bottom-color:var(--brand)}.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);text-align:left;padding:16px}.project-card{cursor:pointer;flex-direction:column;gap:4px;display:flex}.project-card:active{background:#f7f9ff}.pc-type{color:var(--brand);font-size:12px;font-weight:700}.pc-name{font-size:19px;font-weight:800}.pc-sub{color:var(--muted);font-size:13px}.pc-meta{color:var(--muted);gap:12px;margin-top:8px;font-size:13px;display:flex}.list{flex-direction:column;gap:8px;display:flex}.list-row{background:var(--panel);border:1px solid var(--line);text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.list-row.clickable{cursor:pointer}.search{max-width:420px}.drop.over{outline:3px dashed var(--brand);outline-offset:6px;border-radius:var(--radius)}.sheet-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:12px;display:grid}.sheet-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.sheet-thumb{aspect-ratio:1.41;cursor:pointer;background:#fafafa;border:0;width:100%;padding:0;display:block;position:relative}.sheet-thumb img{object-fit:contain;width:100%;height:100%}.pin-count{color:#fff;background:#e53935;border-radius:999px;place-items:center;min-width:28px;height:28px;padding:0 6px;font-size:14px;font-weight:800;display:grid;position:absolute;top:8px;right:8px}.sheet-info{padding:8px 10px}.sheet-name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.sheet-meta{flex-wrap:nowrap;min-width:0;margin-top:4px}.sheet-meta>*{white-space:nowrap;flex-shrink:0}.sheet-meta .bld-badge,.sheet-meta .sheet-floor{text-overflow:ellipsis;flex-shrink:1;min-width:0;overflow:hidden}.sheet-meta .bld-badge{max-width:45%}.sheet-meta .spacer{flex-shrink:1;min-width:0}.modal-back{z-index:100;background:#0a101c73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);width:100%;max-width:560px;max-height:calc(100dvh - 32px);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;display:flex;position:relative}.modal.wide{max-width:860px}.modal-head{border-bottom:1px solid var(--line);align-items:center;padding:8px 8px 8px 18px;display:flex}.modal-head h3{flex:1;margin:0}.modal-body{padding:16px 18px;overflow-y:auto}.modal-actions{flex-wrap:wrap;gap:8px;padding-top:14px;display:flex}.form{flex-direction:column;gap:12px;display:flex}.form label,label.field{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}label.check{flex-direction:row;align-items:center;gap:10px}label.check input{width:22px;min-height:22px}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid2>label{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.busy{z-index:200;background:#ffffffb3;place-items:center;display:grid;position:fixed;inset:0}.busy-box{box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:12px;min-width:280px;padding:24px 28px;display:flex}.busy-box progress{width:100%}.spinner{border:4px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toasts{left:50%;bottom:max(20px, env(safe-area-inset-bottom));z-index:300;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--shadow);background:#1f2937;border-radius:12px;max-width:90vw;padding:12px 18px}.toast.err{background:var(--danger)}.viewer{background:#e9edf3;flex-direction:column;display:flex;position:fixed;inset:0}.viewer-bar{padding:6px 8px;padding-top:max(6px, env(safe-area-inset-top));background:var(--panel);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:4px;display:flex}.sheet-select{max-width:min(420px,45vw);font-weight:700}.type-filter{max-width:200px}.floor-select{width:auto;max-width:140px;font-weight:700}.floor-select.warn-sel{background:#fff8e6;border-color:#f59e0b}.viewer-search{background:var(--panel);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:10px;padding:6px 10px;display:flex}.viewer-search input{max-width:360px}.panzoom{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;flex:1;position:relative;overflow:hidden}.panzoom.adding{cursor:crosshair;outline-offset:-4px;outline:4px solid #e53935}.pz-content{transform-origin:0 0;will-change:transform;background:#fff;position:absolute;top:0;left:0;box-shadow:0 2px 16px #00000026}.pz-content img{pointer-events:none;-webkit-user-drag:none;display:block}.pz-overlay{pointer-events:none;position:absolute;inset:0}.pin{background:var(--c);color:#fff;pointer-events:auto;cursor:pointer;touch-action:none;border:3px solid #fff;border-radius:50%;place-items:center;width:34px;height:34px;margin:-17px 0 0 -17px;padding:0;font-size:13px;font-weight:800;display:grid;position:absolute;box-shadow:0 2px 6px #00000059}.pin:after{content:"";border-radius:50%;position:absolute;inset:-8px}.pin.sel{z-index:2;width:44px;height:44px;margin:-22px 0 0 -22px;font-size:15px;box-shadow:0 0 0 5px #1d4ed873,0 2px 8px #0006}.search-hit{background:#ffd60059;border:2px solid #f59e0b;border-radius:4px;position:absolute;transform:translate(-50%,-50%)}.zoom-ctl{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:12px;left:12px}.zoom-ctl .btn{box-shadow:var(--shadow)}.fab{right:18px;bottom:max(18px, env(safe-area-inset-bottom));color:#fff;cursor:pointer;z-index:6;background:#e53935;border:0;border-radius:999px;min-height:60px;padding:0 26px;font-size:18px;font-weight:800;position:absolute;box-shadow:0 8px 24px #e5393566}.fab.on{background:#1f2937}.hint{color:#fff;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#1f2937d1;border-radius:999px;max-width:94vw;padding:6px 12px;font-size:13px;position:absolute;top:70px;left:50%;overflow:hidden;transform:translate(-50%)}.viewer.with-side .fab,.viewer.with-bottom .fab,.viewer.with-side .hint,.viewer.with-bottom .hint{display:none}.side-panel{background:var(--panel);z-index:10;width:min(480px,44vw);padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #00000026}.viewer.with-side .panzoom{margin-right:min(480px,44vw)}.bottom-sheet{background:var(--panel);z-index:10;border-radius:18px 18px 0 0;flex-direction:column;height:62dvh;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #0000002e}.viewer.with-bottom .panzoom{margin-bottom:62dvh}.editor{flex-direction:column;height:100%;min-height:0;display:flex}.editor-modal{max-width:720px;height:calc(100dvh - 32px)}.goto-drawing{position:absolute;top:12px;right:64px}.editor-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 8px 10px 14px;display:flex}.no-badge{color:#fff;border-radius:50%;place-items:center;min-width:38px;height:38px;font-weight:800;display:grid}.eh-title{flex:1;min-width:0}.eh-title .t1{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:800;overflow:hidden}.eh-title .t2{color:var(--muted);font-size:13px}.editor-body{-webkit-overflow-scrolling:touch;flex:1;padding:4px 14px 24px;overflow-y:auto}.ed-sec{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:14px 0;display:flex}.ed-sec label{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.sec-title{color:var(--brand);align-items:center;font-size:15px;font-weight:800;display:flex}.lbl{margin:4px 0;font-size:14px;font-weight:600}.field{flex-direction:column;gap:4px;display:flex}.help{background:#f1f6ff;border-radius:10px;padding:8px 12px;font-size:14px}.ai-note{color:#4c1d95;background:#f4efff;border-radius:10px;padding:8px 12px;font-size:14px}.ai-suggest{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.ai-tag{color:#6d28d9;background:#f4efff;border-radius:6px;padding:3px 7px;font-size:12px;font-weight:700}.chip.ai-chip{color:#4c1d95;border-color:#c4b5fd}.chip.ai-chip b{margin-left:2px;font-weight:700}.chip.ai-chip.on{color:#fff;background:#6d28d9;border-color:#6d28d9}.ai-warn{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:2px 8px;font-size:12px}.chip.ai-chip.ref{color:var(--muted);cursor:default;border-style:dashed;align-items:center;display:inline-flex}.ai-note.big{margin:10px 0;font-size:15px}.type-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;display:grid}.type-btn{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:8px;min-height:46px;padding:6px 10px;font-size:14px;font-weight:600;line-height:1.2;display:flex}.type-btn i{background:var(--c);border-radius:50%;flex:none;width:12px;height:12px}.type-btn.on{border:2px solid var(--c);background:color-mix(in srgb, var(--c) 10%, white)}.qty{color:var(--ink);font-size:15px}.num{align-items:center;gap:6px;display:flex}.num .hw{flex:1}.num input{text-align:center;font-weight:700}.unit{color:var(--muted);min-width:22px;font-size:14px}.area-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;display:grid}.quick{scrollbar-width:none;align-items:center;gap:6px;margin-top:-2px;display:flex;overflow-x:auto}.ql{color:var(--muted);white-space:nowrap;font-size:12px}.switch-row{justify-content:space-between;align-items:center;min-height:44px;flex-direction:row!important}.switch{appearance:none;cursor:pointer;background:#cfd6e1;border:0;border-radius:999px;flex:none;height:30px;padding:0;position:relative;width:52px!important;min-height:30px!important}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .15s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--brand)}.switch:checked:after{left:25px}.ed-foot{padding-top:16px}.hw{align-items:stretch;gap:6px;width:100%;display:flex}.hw>input,.hw>textarea{flex:1;min-width:0}.hw-btn{flex:none}.hw-canvas{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;height:260px;margin-bottom:8px;display:block}.hw-canvas.number{height:200px}.photo-strip{gap:8px;padding:2px 0 4px;display:flex;overflow-x:auto}.ph-add,.ph-item{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;width:92px;height:92px;padding:0;font-size:13px;font-weight:700;display:flex;position:relative;overflow:hidden}.ph-add span{font-size:28px}.ph-add.cam{background:var(--brand);color:#fff;border-color:var(--brand)}.ph-item img{object-fit:cover;width:100%;height:100%}.ph-badge{color:#fff;background:#000000a6;border-radius:6px;padding:1px 6px;font-size:11px;position:absolute;top:4px;left:4px}.busy-ph{color:var(--muted)}.photo-full{object-fit:contain;background:#111;border-radius:10px;width:100%;max-height:60dvh}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);max-height:calc(100dvh - 230px);margin-top:10px;overflow:auto}.dtable{border-collapse:collapse;white-space:nowrap;width:100%;font-size:14px}.dtable th,.dtable td{border:1px solid var(--line);text-align:center;vertical-align:middle;padding:6px 8px}.dtable th{z-index:1;background:#f2f4f8;position:sticky;top:0}.dtable thead tr:nth-child(2) th{top:33px}.dtable td.l{text-align:left;white-space:normal;min-width:140px}.dtable tr.clickable{cursor:pointer}.dtable tr.clickable:active,.dtable tr.clickable:hover{background:#f7f9ff}.dot{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.thumb-cell .ph-item{width:56px;height:56px}.album-grid{background:#fff;border:1px solid #333;grid-template-columns:1fr 1fr;gap:0;display:grid}.album-cell{break-inside:avoid;border:1px solid #333;flex-direction:column;display:flex}.album-img{aspect-ratio:4/3;background:#fff;place-items:center;padding:6px;display:grid}.album-img img{object-fit:contain;max-width:100%;max-height:100%}.album-meta{border-collapse:collapse;width:100%;font-size:14px}.album-meta th,.album-meta td{border-top:1px solid #333;padding:6px 8px}.album-meta th{white-space:pre;background:#f2f2f2;border-left:1px solid #333;width:70px}.album-no{text-align:center;width:44px;font-weight:800}.guide-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;margin-top:14px;display:grid}.gc-area{font-size:17px;font-weight:800}.gc-focus{color:var(--brand);margin:4px 0 8px;font-size:14px}.guide-card ul{margin:0;padding:0;list-style:none}.guide-card li{border-top:1px solid var(--line);cursor:pointer;gap:10px;padding:9px 0;font-size:15px;display:flex}.guide-card li.done{color:var(--muted);text-decoration:line-through}.box{border:2px solid var(--line);color:#fff;border-radius:6px;flex:none;place-items:center;width:24px;height:24px;font-weight:800;display:grid}li.done .box{background:var(--brand);border-color:var(--brand)}ul.plain{padding-left:18px}.export-card{cursor:pointer;min-height:110px}.export-card.primary{border:2px solid var(--brand);background:#f5f8ff}.ec-title{margin-bottom:6px;font-size:17px;font-weight:800}.ec-desc{color:var(--muted);font-size:14px}.danger-zone{border-top:1px solid var(--line);margin-top:40px;padding-top:10px}@media (width<=640px){.grid2,.album-grid{grid-template-columns:1fr}.sheet-select{max-width:38vw}.type-filter{display:none}.container{padding:12px}}@media print{@page{size:A4;margin:12mm}.topbar,.tabs,.no-print,.toasts{display:none!important}body,.page,.container{background:#fff;padding:0}.album-grid{grid-template-columns:1fr 1fr}.album-cell{page-break-inside:avoid}.album-img{aspect-ratio:auto;height:72mm}.page-break{page-break-before:always}}.sync-state{white-space:nowrap;font-size:14px}.sync-state.warn{color:#b45309}.storage-path{word-break:break-all;background:#f3f4f6;border-radius:6px;padding:6px 8px;font-family:ui-monospace,monospace;font-size:13px}.form-block{flex-direction:column;gap:6px;display:flex}.form-block .label{color:var(--muted,#555);font-size:14px}.select-bar{z-index:5;background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;padding:8px 12px;display:flex;position:sticky;top:0}.sheet-card.selected{outline-offset:-1px;outline:3px solid #2563eb}.sheet-thumb{position:relative}.sheet-check{color:#fff;background:#00000059;border:2px solid #fff;border-radius:8px;place-items:center;width:30px;height:30px;font-weight:700;display:grid;position:absolute;top:8px;left:8px;box-shadow:0 1px 3px #0000004d}.sheet-check.on{background:#2563eb}.file-row{cursor:pointer;align-items:center;gap:12px;display:flex}.file-row input[type=checkbox]{flex:none;width:24px;height:24px}.file-row.selected{background:#eef2ff}.ellipsis{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.warn-text{color:#b45309;font-weight:600}.dtable .chk-col{text-align:center;width:44px}.dtable .chk-col input{pointer-events:none;width:22px;height:22px}.dtable thead .chk-col input{pointer-events:auto}.dtable tr.selected td{background:#eef2ff}.toast.has-action{pointer-events:auto;align-items:center;gap:14px;display:flex}.toast-action{color:#bfdbfe;cursor:pointer;background:0 0;border:1.5px solid #93c5fd;border-radius:8px;padding:6px 12px;font-size:15px;font-weight:700}.trash-list .thumb,.trash-list img{object-fit:cover;border-radius:6px;flex:none;width:56px;height:56px}.trash-list{max-height:55vh;margin-top:8px;overflow:auto}.banner{border-radius:10px;margin:10px 0;padding:12px 14px;line-height:1.5}.banner.warn{color:#9a3412;background:#fff7ed;border:1px solid #fdba74}.banner.danger{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5}.type-cards{gap:12px;display:grid}.type-card{text-align:left;padding:18px 20px}.type-card:active,.type-card:hover{border-color:var(--primary,#2563eb)}.round-badge{white-space:nowrap;color:#3730a3;background:#eef2ff;border-radius:999px;margin-left:6px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.round-sec{background:#f5f7ff;border:1px solid #c7d2fe;border-radius:12px;padding:10px 12px}.round-sec.prev{background:#fffbeb;border-color:#fcd34d}.round-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.prev-summary{align-items:flex-start;gap:10px;display:flex}.prev-thumbs{flex:none;gap:6px;display:flex}.prev-thumbs img,.prev-thumbs .thumb{object-fit:cover;border-radius:6px;width:64px;height:64px}.pin.prev{color:var(--c);border:3px dashed var(--c);background:#fff}.dtable tr.prev-only td{color:#6b7280;background:#fafafa}.prev-thumb{opacity:.55;display:inline-block}.pair-title{text-align:center;background:#f2f2f2;border:1px solid #000;padding:6px;font-weight:700}.pair-album .album-grid{margin-bottom:0}.album-img.dash{color:#444;place-items:center;font-size:28px;display:grid}.ok-banner{color:#065f46;background:#ecfdf5;border:1px solid #6ee7b7}.dtable.compact td,.dtable.compact th{padding:4px 8px}.issues{margin-top:8px}.issues summary{cursor:pointer;color:#b45309;font-weight:600}.pin.extra{opacity:.85;width:24px;height:24px;margin:-12px 0 0 -12px;font-size:11px}.project-card{position:relative}.project-card.editing{padding-left:54px}.project-card.selected{outline-offset:-1px;background:#eef2ff;outline:3px solid #2563eb}.project-card .sheet-check{color:#fff;background:#fff;border-color:#94a3b8;top:14px;left:12px}.project-card .sheet-check.on{background:#2563eb;border-color:#2563eb}.building-tabs{flex-wrap:wrap;margin:8px 0}.building-tabs .cnt{opacity:.7;font-weight:400}.bld-badge{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.bld-editor{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.bld-row{align-items:center;gap:6px;width:100%;max-width:520px;display:flex}.bld-row input{flex:1;min-width:0}.bld-no{text-align:center;width:22px;color:var(--muted);font-weight:700}.nowrap{white-space:nowrap}.form-section-title{margin-top:6px;font-weight:700}.settings-layout{grid-template-columns:200px 1fr;align-items:start;gap:20px;display:grid}.settings-nav{flex-direction:column;gap:4px;display:flex;position:sticky;top:8px}.settings-nav-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-weight:600;display:flex}.settings-nav-item.on{background:var(--panel);border-color:var(--line);color:var(--brand)}.settings-nav-item .cnt{color:#3730a3;background:#eef2ff;border-radius:999px;padding:1px 8px;font-size:12px}.settings-body{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:18px 20px}.settings-body h2{margin-top:0}.danger-text{color:#b91c1c}.inline-box{flex-direction:column;gap:8px;display:flex}@media (width<=760px){.settings-layout{grid-template-columns:1fr}.settings-nav{flex-direction:row;position:static;overflow-x:auto}.settings-nav-item{white-space:nowrap}}.type-btn.on.extra{outline:2px dashed var(--c);outline-offset:-3px}.type-picked{margin-top:8px}.brief-bar{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:8px 0;padding:10px 12px;display:flex}.brief-bar.done{background:#eff6ff;border-color:#bfdbfe}.modal.qc-modal{flex-direction:column;width:100%;max-width:960px;padding:0;display:flex;overflow:hidden}.qc-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 18px;display:flex}.qc-head .eh-title{flex:1;min-width:0}.qc-head .t1{font-size:19px;font-weight:800}.qc-head .t2{color:var(--muted);font-size:13px}.qc-status{color:#3730a3;white-space:nowrap;background:#eef2ff;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.qc-status.none{color:#92400e;background:#fef3c7}.qc-status.set{color:#166534;background:#dcfce7}.qc-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.qc-body{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;padding:14px 18px 4px;display:grid}.qc-cap{color:var(--muted);margin-bottom:6px;font-size:14px}.qc-cap b{color:var(--text,#111)}.qc-photo{aspect-ratio:4/3;background:#111827;border-radius:12px;place-items:center;display:grid;overflow:hidden}.qc-photo img{object-fit:contain;width:100%;height:100%}.qc-photo .muted{color:#9ca3af}.qc-thumbs{gap:6px;margin-top:6px;display:flex}.qc-thumbs .ph-item{width:56px;height:56px}.qc-thumbs .on .ph-item{outline:3px solid var(--brand);outline-offset:-3px}.qc-right{flex-direction:column;gap:12px;display:flex}.qc-card{border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:12px}.qc-card-title{align-items:baseline;gap:8px;margin-bottom:8px;font-weight:700;display:flex}.qc-follow{grid-template-columns:1fr 1fr;gap:8px;display:grid}.qc-fbtn{text-align:left;border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;min-height:56px;padding:10px 12px;display:grid}.qc-fbtn .qc-ficon{background:#f1f5f9;border-radius:50%;grid-row:span 2;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.qc-fbtn b{font-size:15px}.qc-fbtn small{color:var(--muted);font-size:12px}.qc-fbtn.on{border-color:var(--brand);background:#eef2ff;box-shadow:0 0 0 2px #c7d2fe}.qc-fbtn.on .qc-ficon{background:var(--brand);color:#fff}.qc-fbtn.f-보수완료.on{background:#f0fdf4;border-color:#16a34a;box-shadow:0 0 0 2px #bbf7d0}.qc-fbtn.f-보수완료.on .qc-ficon{background:#16a34a}.qc-fbtn.f-진행.on{background:#fef2f2;border-color:#dc2626;box-shadow:0 0 0 2px #fecaca}.qc-fbtn.f-진행.on .qc-ficon{background:#dc2626}.qc-photos{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.qc-photos .ph-add,.qc-photos .ph-item{width:80px;height:80px}.qc-table-wrap{padding:10px 18px 0;overflow-x:auto}.qc-table{width:100%;font-size:13px}.qc-foot{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:12px;padding:14px 18px;display:flex}.qc-foot .btn.lg{min-width:110px}@media (width<=760px){.qc-body{grid-template-columns:1fr}.qc-foot .muted{display:none}}.panzoom,.pin{-webkit-touch-callout:none}.pz-arrows{pointer-events:none;position:absolute;inset:0;overflow:visible}.pz-arrow .shaft{fill:none;stroke-linejoin:round;stroke:var(--c);stroke-width:2.5px;stroke-linecap:round}.pz-arrow .head{fill:var(--c)}.pz-arrow .hit{fill:none;stroke:#0000;stroke-width:26px;pointer-events:stroke;cursor:pointer}.pz-arrow .halo{fill:none;stroke-linejoin:round;stroke:#2563eb59;stroke-width:12px;stroke-linecap:round}.pz-arrow.prev .shaft{stroke-dasharray:6 4}.pz-arrow.prev{opacity:.8}.pz-arrow.live .shaft{stroke-width:3px}.pin.drawing{box-shadow:0 0 0 6px #2563eb73,0 2px 8px #0006}.arrow-tip{pointer-events:auto;touch-action:none;cursor:move;z-index:3;background:#fff;border:4px solid #2563eb;border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;position:absolute;box-shadow:0 1px 5px #00000059}.arrow-tip:after{content:"";border-radius:50%;position:absolute;inset:-12px}.arrow-del{z-index:3;position:absolute;transform:translate(-50%,-150%)}.arrow-del .btn{pointer-events:auto;color:#b91c1c;white-space:nowrap;background:#fff;border:1px solid #fca5a5;box-shadow:0 2px 8px #00000040}.loupe{pointer-events:none;z-index:4;background-color:#fff;background-repeat:no-repeat;border:3px solid #2563eb;border-radius:50%;position:absolute;box-shadow:0 4px 14px #00000059}.loupe:before,.loupe:after{content:"";background:#e11d48;position:absolute}.loupe:before{width:2px;margin-left:-1px;top:30%;bottom:30%;left:50%}.loupe:after{height:2px;margin-top:-1px;top:50%;left:30%;right:30%}.pin{transition:transform .12s,box-shadow .12s}.pin.lifting{z-index:4;cursor:grabbing;transform:scale(1.18);box-shadow:0 10px 18px #00000059,0 0 0 5px #1d4ed873}.pin.sel{cursor:grab}.arrow-knob{border:3px solid var(--c);width:32px;height:32px;color:var(--c);pointer-events:auto;touch-action:none;cursor:crosshair;z-index:3;-webkit-user-select:none;user-select:none;background:#fff;border-radius:50%;place-items:center;margin:-16px 0 0 -16px;padding:0;font-size:18px;font-weight:900;line-height:1;animation:.28s cubic-bezier(.3,1.6,.5,1) both knob-pop;display:grid;position:absolute;box-shadow:0 2px 6px #0000004d}.arrow-knob span{pointer-events:none;display:block}.arrow-knob:after{content:"";border-radius:50%;position:absolute;inset:-10px}.arrow-knob:before{content:"";border:3px solid var(--c);pointer-events:none;border-radius:50%;animation:.9s ease-out .25s both knob-pulse;position:absolute;inset:-3px}@keyframes knob-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes knob-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.pz-arrow.born .head{transform-box:fill-box;transform-origin:50%;animation:.35s cubic-bezier(.3,1.8,.5,1) head-pop}@keyframes head-pop{0%{transform:scale(2.2)}to{transform:scale(1)}}.ai-review-bar{background:#faf7ff;border:1px solid #ddd6fe;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;padding:8px 10px;font-size:13px;display:flex}.dtable td.ai-cell{color:#9a3412;min-width:150px;font-size:12px}.prev-match{background:#faf7ff;border:1px solid #ddd6fe;border-radius:8px;margin-top:8px;padding:8px 10px}.pm-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.pm-list{flex-direction:column;gap:6px;display:flex}.pm-card{border:1px solid var(--line,#e5e7eb);background:#fff;border-radius:8px;align-items:center;gap:10px;padding:6px;display:flex}.pm-card img,.pm-card .thumb{object-fit:cover;border-radius:6px;flex:none;width:72px;height:72px}.pm-info{flex:1;min-width:0}.pm-best{color:#6d28d9;background:#f4efff;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px}.pz-mark .shape{fill:none;stroke:#e5232a;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.pz-mark .shape.hatch{fill:url(#mk-hatch)}.pz-mark .shape.line{stroke-width:2.6px}.pz-mark.prev{opacity:.6}.pz-mark.prev .shape{stroke-dasharray:6 4}.pz-mark .halo{fill:none;stroke:#2563eb59;stroke-width:12px;stroke-linejoin:round;stroke-linecap:round}.pz-mark .hit{fill:none;stroke:#0000;stroke-width:28px;pointer-events:stroke;cursor:pointer}.pz-mark .hit.sel{stroke-width:26px;cursor:move}.pz-mark .hit.ellipse,.pz-mark .hit.poly{fill:#0000;pointer-events:all}.pz-mark.draft .shape{stroke-dasharray:5 3}.pz-mark.draft .vertex{fill:#fff;stroke:#e5232a;stroke-width:2px}.panzoom.marking{cursor:crosshair}.panzoom.marking .pin,.panzoom.marking .arrow-knob,.panzoom.marking .pz-arrow .hit{pointer-events:none}.mark-handle{pointer-events:auto;touch-action:none;z-index:3;background:#fff;border:3px solid #e5232a;border-radius:4px;width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute;box-shadow:0 1px 5px #00000059}.mark-handle.h-e,.mark-handle.h-w{cursor:ew-resize}.mark-handle.h-n,.mark-handle.h-s{cursor:ns-resize}.mark-handle:after{content:"";position:absolute;inset:-12px}.mark-bar{z-index:5;pointer-events:auto;background:#fffffff5;border:1px solid #e5e7eb;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;max-width:calc(100% - 20px);padding:6px 8px;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 2px 10px #0000002e}.mark-bar.on{border-color:#e5232a}.mark-bar .btn.danger-ghost{color:#b91c1c;border-color:#fca5a5}.arrow-del{gap:6px;display:flex}.arrow-del .btn.dot-toggle{color:#1f2937;border-color:#cbd5e1}.viewer-tabs{background:#fff;border-bottom:1px solid #e5e7eb;display:flex}.viewer-tabs .vt{color:#6b7280;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;max-width:220px;padding:10px 8px 9px;font-size:15px;font-weight:600}.viewer-tabs .vt.on{color:#111827;border-bottom-color:#d63384;font-weight:800}.viewer-tabs .vt-n{color:#9ca3af;margin-left:2px;font-size:12px;font-weight:600}.viewer-tabs .vt.on .vt-n{color:#d63384}.pin.spot-view{border-radius:8px}.pin.spot-memo{border-radius:50% 50% 50% 4px;font-size:14px}.fab-group{z-index:6;gap:10px;display:flex;position:absolute;bottom:16px;right:16px}.fab-group .fab{position:static}.fab.secondary{color:#334155;background:#fff;border:2px solid #cbd5e1}.memo-list{z-index:7;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:min(420px,100% - 24px);max-height:60%;padding:8px;position:absolute;top:112px;right:12px;overflow:auto;box-shadow:0 8px 24px #0003}.memo-list .ml-head{align-items:center;gap:8px;padding:4px 6px 8px;display:flex}.memo-list .ml-item{text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #f1f5f9;grid-template-columns:auto 1fr;gap:2px 8px;width:100%;padding:8px;display:grid}.memo-list .ml-item:hover{background:#f8fafc}.memo-list .ml-tag{color:#fff;white-space:nowrap;border-radius:999px;grid-row:span 2;align-self:start;padding:2px 8px;font-size:12px;font-weight:700}.memo-list .ml-where{color:#64748b;font-size:12px}.memo-list .ml-text{white-space:pre-wrap;font-size:14px}.spot-editor .spot-check{flex-direction:row;align-items:center;gap:6px;margin-top:8px;font-size:14px;font-weight:600;display:inline-flex}.spot-editor .prev-photos{margin-top:10px}.photo-strip.ro{opacity:.9}.viewer.with-side .fab-group,.viewer.with-bottom .fab-group{display:none}.fab-group .fab:not(.secondary):not(.on){background:#0d9488;box-shadow:0 8px 24px #0d948866}.view-pick{background:#f0fdfa;border:1px solid #99f6e4;border-radius:10px;flex-wrap:wrap;gap:6px 14px;margin:8px 0 12px;padding:10px 12px;display:flex}.view-pick .vp-title{width:100%;font-size:14px;font-weight:700}.view-pick label{align-items:center;gap:6px;font-size:14px;display:inline-flex}.view-pick label.off{color:#94a3b8;text-decoration:line-through}.viewer-tabs~.hint{top:112px}.spot-editor .spot-check input{flex:none;width:22px;height:22px;min-height:0;margin:0;padding:0}.view-pick input{flex:none;width:20px;height:20px;min-height:0;margin:0;padding:0}.ph-note{color:#64748b;flex-basis:100%;margin-top:2px;font-size:12px}.pin.spot-change{border-radius:4px;transform:rotate(0)}.pin.spot-change.done{opacity:.45}.pz-mark.chg-new .shape{stroke:#2563eb;stroke-width:5px;stroke-dasharray:10 5;fill:none}.pz-mark.chg-del .shape{stroke:#475569;stroke-width:4px;stroke-dasharray:3 6;fill:none}.pz-mark.ghost{opacity:.45;pointer-events:none}.ghost-label{color:#fff;white-space:nowrap;pointer-events:none;z-index:2;opacity:.85;background:#c2410cd9;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;transform:translate(-50%,-150%)}.fab-group .fab.change:not(.on){background:#c2410c;box-shadow:0 8px 24px #c2410c66}.rp-status{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;font-size:14px;display:flex}.rp-panes{grid-template-columns:1fr 1fr;gap:10px;display:grid}.rp-pane .rp-title{margin-bottom:4px;font-size:13px;font-weight:700}.rp-img{background:#fff;border:1px solid #cbd5e1;position:relative}.rp-img img{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.rp-img.tapping{cursor:crosshair;outline:3px solid #2563eb}.rp-dot{pointer-events:none;border:1px solid #fff;border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute}.rp-ref{color:#fff;pointer-events:none;background:#2563eb;border-radius:50%;place-items:center;width:20px;height:20px;margin:-10px 0 0 -10px;font-size:12px;font-weight:800;display:grid;position:absolute}@media (width<=760px){.rp-panes{grid-template-columns:1fr}}.viewer.tool-on .bottom-sheet{display:none}.viewer.tool-on.with-bottom .panzoom{margin-bottom:0}.pz-ink{pointer-events:none}.pz-ink polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.pz-ink polyline.hl{opacity:.35;mix-blend-mode:multiply;stroke-linecap:square}.pz-ink .eraser{fill:#ffffff80;stroke:#475569;stroke-width:1.5px;stroke-dasharray:3 3}.panzoom.inking{cursor:crosshair}.panzoom.inking .pin,.panzoom.inking .pz-mark .hit,.panzoom.inking .pz-arrow .hit,.panzoom.inking .ghost-label{pointer-events:none}.ink-bar{z-index:6;background:#fffffff7;border:2px solid #c2410c;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:8px 10px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000038}.ink-bar .btn.on{color:#fff;background:#c2410c;border-color:#c2410c}.ink-bar .btn.danger-ghost{color:#b91c1c;border-color:#fca5a5}.ink-sep{background:#e5e7eb;align-self:stretch;width:1px;margin:0 2px}.ink-color{cursor:pointer;border:2px solid #fff;border-radius:50%;width:30px;height:30px;min-height:0;padding:0;box-shadow:0 0 0 1px #cbd5e1}.ink-color.on{box-shadow:0 0 0 3px #c2410c}.ink-size{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;min-height:0;padding:0;display:inline-flex}.ink-size i{background:#111827;border-radius:50%;display:block}.ink-size.on{background:#fff7ed;border:2px solid #c2410c}.pz-ink polyline.sel-halo{stroke:#3b82f6;opacity:.35}.pz-ink .lasso{fill:#3b82f60f;stroke:#2563eb;stroke-width:1.5px;stroke-dasharray:5 4}.pz-ink .lasso-box{fill:none;stroke:#2563eb;stroke-width:1.5px;stroke-dasharray:6 4}.ink-seln{color:#1d4ed8;font-size:13px;font-weight:700}.pz-ink .lasso-stem{stroke:#2563eb;stroke-width:1.5px}.pz-ink .lasso-rot,.pz-ink .lasso-scale{fill:#fff;stroke:#2563eb;stroke-width:2px}.export-blds{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:12px;display:flex}.export-blds .spot-check{align-items:center;gap:6px;font-weight:600;display:inline-flex}.export-blds .spot-check input{width:22px;height:22px;min-height:0;margin:0}.export-blds p{flex-basis:100%;margin:0}.export-card:disabled{opacity:.45;cursor:not-allowed}.merge-blds{border-top:1px solid var(--line,#e5e7eb);margin-top:28px;padding-top:16px}.merge-blds h3{margin:0 0 6px}.merge-step{margin:14px 0 8px;font-weight:600}.merge-pick{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:4px;display:grid}.merge-pick label{border:1px solid var(--line);cursor:pointer;touch-action:manipulation;background:#fff;border-radius:10px;align-items:center;gap:10px;min-height:56px;padding:10px 12px;display:flex}.merge-pick label.on{border-color:var(--brand);background:var(--brand-soft)}.merge-pick input[type=checkbox],.merge-check input[type=checkbox]{flex:none;width:22px;height:22px;min-height:0;margin:0;padding:0}.merge-pick-text{flex-direction:column;flex:1;min-width:0;display:flex}.merge-pick-text b,.merge-pick-text .small{word-break:keep-all;overflow-wrap:anywhere}.merge-pick-no{color:var(--brand);border:1px solid var(--brand);background:#fff;border-radius:999px;flex:none;padding:2px 8px;font-size:12px;font-weight:600}.merge-name{flex-direction:column;max-width:360px;margin-bottom:10px;display:flex}.merge-name .merge-step{margin-bottom:8px}.merge-check{cursor:pointer;align-items:center;gap:8px;margin-top:8px;display:flex}.split-ask{flex-direction:column;gap:10px;margin:16px 0;display:flex}.split-ask.asking .split-q{border-color:var(--brand);background:var(--brand-soft)}.split-q{border:1px solid var(--line);border-radius:10px;padding:12px 14px}.split-opt{border:1px solid var(--line);background:#fff;border-radius:10px}.split-opt.on{border-color:var(--brand);background:var(--brand-soft)}.split-ask label.split-head{cursor:pointer;touch-action:manipulation;flex-direction:row;align-items:center;gap:12px;min-height:56px;padding:10px 14px;font-size:15px;font-weight:400;display:flex}.split-head>span{flex-direction:column;display:flex}.split-head input[type=radio]{outline-offset:2px;border-radius:50%;flex:none;width:22px;height:22px;min-height:0;margin:0;padding:0}.split-ask label.split-field{flex-direction:column;gap:4px;padding:0 14px 12px 48px;font-size:14px;display:flex}.grid-bar{z-index:5;background:var(--panel);border-bottom:1px solid var(--line);gap:6px;padding:8px 12px;display:grid;position:relative}.grid-bar p{margin:0}.grid-chips{gap:4px}.grid-chips .chip.sm{min-height:28px;padding:2px 8px;font-size:13px}.grid-prefix{color:var(--muted);align-items:center;gap:4px;margin-right:4px;font-size:13px;display:inline-flex}.grid-prefix input{width:52px;min-height:28px;padding:4px 6px}.pz-mark.ghost.grid-axis .shape{stroke:#2563eb;stroke-width:1.5px;stroke-dasharray:6 4;fill:none}.ghost-label.grid{background:#2563ebe6;padding:1px 4px;font-size:11px;transform:translate(-50%,-50%)}.grid-auto{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:700}.voice-bar{border-bottom:1px solid var(--line,#e5e7eb);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.voice-rec{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:12px 4px;display:flex}.voice-dot{background:#dc2626;border-radius:50%;width:18px;height:18px;animation:1.2s ease-in-out infinite voice-pulse}@keyframes voice-pulse{50%{opacity:.35;transform:scale(.8)}}.voice-level{background:#e5e7eb;border-radius:4px;width:min(320px,80%);height:8px;overflow:hidden}.voice-level span{background:#16a34a;height:100%;transition:width .1s;display:block}.voice-live{min-height:3em;font-size:18px}.voice-preview{flex-direction:column;gap:10px;display:flex}.voice-text{flex-direction:column;gap:4px;font-size:14px;display:flex}.voice-text textarea{width:100%;font-size:16px}.voice-rows{border-collapse:collapse;width:100%;font-size:14px}.voice-rows th,.voice-rows td{text-align:left;vertical-align:middle;border-bottom:1px solid #e5e7eb;padding:6px}.voice-rows td:first-child,.voice-rows th:first-child{text-align:center;width:44px}.voice-rows td input[type=checkbox]{width:22px;height:22px}.voice-rows td input:not([type]){width:100%;min-width:80px}.voice-rows tr.off{opacity:.45}.voice-src{color:#374151;background:#e5e7eb;border-radius:4px;margin-left:6px;padding:0 5px;font-size:11px}.voice-src.ai{color:#5b21b6;background:#ede9fe}.voice-src.type{color:#92400e;background:#fef3c7}.err-text{color:#b91c1c}.warn-text{color:#b45309}.voice-keep{align-items:center;gap:8px;font-size:14px;display:flex}.voice-keep input[type=checkbox]{flex:none;width:22px;height:22px}
