:root{--bg:#f4f6f8;--fg:#1b2733;--accent:#1f4e79;--card:#fff;--safe-t:env(safe-area-inset-top);--safe-b:env(safe-area-inset-bottom);--safe-l:env(safe-area-inset-left);--safe-r:env(safe-area-inset-right)}@media (prefers-color-scheme:dark){:root{--bg:#11181f;--fg:#e8eef3;--accent:#6aa7dc;--card:#1b2733}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--fg);margin:0;font:17px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#app{min-height:100%;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l)}button{min-width:44px;min-height:44px;font:inherit}.placeholder{padding:24px}#toast-host{left:0;right:0;bottom:calc(16px + var(--safe-b));pointer-events:none;z-index:1000;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}.toast{pointer-events:auto;color:#fff;background:#1b2733;border-radius:12px;align-items:center;gap:16px;min-height:48px;padding:8px 16px;display:flex;box-shadow:0 4px 16px #0006}.toast button{color:#0b1620;background:#6aa7dc;border:0;border-radius:8px;padding:0 16px;font-weight:600}.bar{align-items:center;gap:12px;padding:12px 16px;display:flex}.bar h1{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:22px;overflow:hidden}.bar>button:not(.primary){color:var(--accent);background:0 0;border:0}main{max-width:900px;margin:0 auto;padding:0 16px 16px}.cards{gap:8px;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--card);border-radius:12px;align-items:stretch;gap:8px;padding:4px;display:flex}.card-main{text-align:left;color:inherit;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-height:56px;padding:8px 12px;display:flex}.card-main strong,.card-main small{display:block}.card-main small{opacity:.7}.card-main small.error{color:#c0392b;opacity:1}.icon{font-size:28px}.card>button:not(.card-main){color:var(--accent);background:0 0;border:0;border-radius:8px;padding:0 12px}.card>.danger{color:#c0392b}.card button:disabled{opacity:.5}.card-main small.processing{color:var(--accent);opacity:1}.primary{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:0 16px;font-weight:600}.empty{text-align:center;opacity:.7;padding:24px}.usage{padding:12px 16px calc(12px + var(--safe-b));text-align:center;opacity:.7;font-size:14px}.ifc-viewer{background:var(--bg);padding:var(--safe-t) var(--safe-r) 0 var(--safe-l);flex-direction:column;display:flex;position:fixed;inset:0}.ifc-bar{z-index:5;flex-wrap:wrap;gap:8px;padding:8px 12px;position:relative}.ifc-bar button,.ifc-bar select{background:var(--card);color:var(--fg);min-height:44px;font:inherit;border:1px solid #0002;border-radius:10px;padding:0 12px}.ifc-bar>button:not(.primary){color:var(--fg);background:var(--card);border:1px solid #0002}.ifc-bar .on{background:var(--accent);color:#fff;border-color:var(--accent)}.ifc-bar button:disabled{opacity:.4}.ifc-modes{gap:4px;display:flex}.ifc-search{flex:1;min-width:200px;position:relative}.ifc-search input{width:100%;min-height:44px;font:inherit;background:var(--card);color:var(--fg);border:1px solid #0002;border-radius:10px;padding:0 12px}.ifc-popover{z-index:10;background:var(--card);border-radius:12px;max-height:60vh;padding:8px;position:absolute;top:100%;right:12px;overflow:auto;box-shadow:0 6px 24px #0004}.ifc-results{margin:4px 0 0;list-style:none;left:0;right:0}.ifc-results button{text-align:left;width:100%;color:inherit;background:0 0;border:0;padding:8px;display:block}.ifc-results small{opacity:.7;display:block}.ifc-layer{align-items:center;gap:12px;min-height:44px;padding:0 8px;display:flex}.ifc-layer input{width:22px;height:22px}.ifc-stage{flex:1;min-height:0;position:relative;overflow:hidden}.ifc-stage canvas{touch-action:none;display:block}.ifc-slider{left:calc(12px + var(--safe-l));bottom:calc(12px + var(--safe-b));z-index:4;background:var(--card);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;display:flex;position:absolute;box-shadow:0 4px 16px #0003}.ifc-slider input{width:180px}.ifc-panel{top:8px;right:calc(8px + var(--safe-r));bottom:calc(8px + var(--safe-b));z-index:6;background:var(--card);border-radius:12px;flex-direction:column;width:min(380px,90vw);display:flex;position:absolute;box-shadow:0 6px 24px #0004}.ifc-panel[hidden],.ifc-popover[hidden],.ifc-slider[hidden]{display:none}.ifc-panel-close{color:var(--fg);background:0 0;border:0;align-self:flex-end;font-size:28px}.ifc-panel-body{padding:0 16px 16px;overflow:auto}.ifc-panel h2{margin:0 0 8px;font-size:19px}.ifc-panel table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:15px}.ifc-panel th,.ifc-panel td{text-align:left;vertical-align:top;border-bottom:1px solid #0001;padding:4px}.ifc-panel th{word-break:break-word;width:45%;font-weight:600}.ifc-panel summary{cursor:pointer;align-items:center;min-height:36px;font-weight:600;display:flex}.ifc-loading{text-align:center;background:var(--bg);z-index:8;place-items:center;padding:24px;font-size:20px;display:grid;position:absolute;inset:0}.pdf-bar{align-items:center}.pdf-bar input.pdf-pageno{width:64px;min-height:44px;font:inherit;background:var(--card);color:var(--fg);text-align:center;border:1px solid #0002;border-radius:10px;padding:0 8px}.pdf-total{opacity:.7}.pdf-find{min-width:160px}.pdf-matchinfo{opacity:.8;font-size:14px}.pdf-body{flex:1;min-height:0;display:flex;position:relative}.pdf-thumbs{background:var(--card);border-right:1px solid #0002;flex-direction:column;flex:none;gap:8px;width:148px;padding:8px;display:flex;overflow:auto}.pdf-thumbs[hidden]{display:none}.pdf-thumb{color:inherit;background:0 0;border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;min-height:44px;padding:4px;display:flex}.pdf-thumb.on{border-color:var(--accent)}.pdf-thumb canvas,.pdf-thumb-ph{background:#fff;display:block;box-shadow:0 1px 4px #0004}.pdf-stage{touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;background:#0001;flex:1;min-width:0;padding:8px;overflow:auto}.pdf-page{background:#fff;margin:0 auto;position:relative;box-shadow:0 2px 12px #0004}.pdf-canvas{display:block}.pdf-hl{pointer-events:none;transform-origin:0 0;position:absolute;inset:0}.pdf-hit{mix-blend-mode:multiply;background:#ffd60a88;border-radius:2px;position:absolute}.pdf-hit.on{background:#ff950099;outline:2px solid #ff9500}.dxf-stage{background:#fff}.dxf-layer-actions{gap:8px;padding:4px 0 8px;display:flex}.dxf-layer-actions button{background:var(--card);min-height:44px;color:var(--fg);font:inherit;border:1px solid #0002;border-radius:10px;flex:1}.dxf-marker{pointer-events:none;z-index:3;box-sizing:border-box;background:#e6394622;border:3px solid #e63946;border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;animation:1s ease-in-out infinite dxf-pulse;position:absolute}@keyframes dxf-pulse{50%{transform:scale(1.35)}}.sp-panel{padding:0 16px 8px}.sp-box{position:relative}.sp-box input{width:100%;min-height:44px;font:inherit;background:var(--card);color:var(--fg);border:1px solid #0002;border-radius:10px;padding:0 48px 0 12px}.sp-clear{color:var(--fg);background:0 0;border:0;font-size:24px;position:absolute;top:0;right:0}.sp-results ul{background:var(--card);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.sp-results button{text-align:left;width:100%;color:inherit;background:0 0;border:0;padding:8px 12px;display:block}.sp-results small{opacity:.7;display:block}.sp-group{text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin:12px 4px 4px;font-size:14px}.sp-empty{opacity:.7;margin:12px 4px}
