:root{--bg:#f6f7f9;--surface:#fff;--text:#1f2430;--muted:#6b7280;--border:#e3e6eb;--primary:#2f6fed;--primary-ink:#fff;--danger:#d64545;--warn-bg:#fff7e6;--warn-border:#f5c56b;--mark-姓名:#ffe0b2;--mark-身分證:#ffcdd2;--mark-手機:#c8e6c9;--mark-市話:#dcedc8;--mark-地址:#bbdefb;--mark-電子郵件:#e1bee7;--mark-公司:#d7ccc8;--mark-統編:#b2ebf2;--mark-識別碼:#ffe082;--mark-restored:#d0f0dd;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;font-size:15px}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{margin:0;font-size:1.25rem}h2{margin:0 0 .5rem;font-size:1.15rem}h3{margin:0 0 .5rem;font-size:1rem}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.warn{color:var(--danger)}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.5rem;display:flex;position:sticky;top:0}.brand{flex-direction:column;gap:.15rem;display:flex}.tabs{gap:.25rem;display:flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;padding:.45rem .9rem;font-size:.95rem}.tab.active{background:var(--primary);color:var(--primary-ink)}.tab:hover:not(.active){background:var(--bg)}.panels{max-width:1400px;margin:0 auto;padding:1.25rem 1.5rem 3rem}.view>h2+p{margin-top:0}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:.45rem .9rem;font-size:.9rem}.btn:hover{border-color:#c9cfd8}.btn-primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.btn-primary:hover{filter:brightness(1.05)}.btn-ghost{background:0 0}.btn-small{padding:.2rem .55rem;font-size:.8rem}.btn-danger{color:var(--danger)}.dropzone{text-align:center;background:var(--surface);cursor:pointer;border:2px dashed #c3cad6;border-radius:12px;padding:2.5rem 1rem;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.dragover{border-color:var(--primary);background:#eef3ff}.dropzone-label{font-weight:600}.dropzone-hint{color:var(--muted);margin-top:.35rem;font-size:.85rem}.toolbar{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.6rem .9rem;display:flex}.file-info{align-items:center;gap:.5rem;display:flex}.toolbar-actions{gap:.5rem;display:flex}.workspace{grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem;display:grid}.workspace.workspace-with-list{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}@media (max-width:900px){.workspace.workspace-with-list{grid-template-columns:1fr}}.preview-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.preview-head h3{margin:0}.toolbar-stack{flex-direction:column;align-items:stretch;gap:.4rem}.toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.toolbar-sep{background:var(--border);width:1px;height:1.4rem;margin:0 .25rem}.notice-inline{padding:.15rem .5rem}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.preview-wrap,.sidebar{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:0;padding:1rem}.preview{white-space:pre-wrap;word-break:break-word;border:1px solid var(--border);background:#fcfcfd;border-radius:8px;max-width:100%;max-height:70vh;padding:.75rem;line-height:1.75;overflow:auto}.sidebar{max-height:calc(100vh - 5.5rem);position:sticky;top:4.5rem;overflow:auto}.mark{background:#eee;border-radius:4px;padding:0 .25em}.mark.mark-code{font-family:ui-monospace,Menlo,monospace;font-size:.9em}.mark-姓名{background:var(--mark-姓名)}.mark-身分證{background:var(--mark-身分證)}.mark-手機{background:var(--mark-手機)}.mark-市話{background:var(--mark-市話)}.mark-地址{background:var(--mark-地址)}.mark-電子郵件{background:var(--mark-電子郵件)}.mark-公司{background:var(--mark-公司)}.mark-統編{background:var(--mark-統編)}.mark-識別碼{background:var(--mark-識別碼)}.mark-restored{background:var(--mark-restored)}.cancelled{-webkit-text-decoration:underline dotted var(--danger);text-decoration:underline dotted var(--danger);text-decoration-thickness:2px}.flash{outline:3px solid var(--primary);outline-offset:2px;transition:outline .3s}.badge{white-space:nowrap;color:#384152;background:#e8ebf0;border-radius:999px;justify-content:center;align-items:center;padding:.05rem .5rem;font-size:.75rem;line-height:1.5;display:inline-flex}.badge-姓名{background:var(--mark-姓名)}.badge-身分證{background:var(--mark-身分證)}.badge-手機{background:var(--mark-手機)}.badge-市話{background:var(--mark-市話)}.badge-地址{background:var(--mark-地址)}.badge-電子郵件{background:var(--mark-電子郵件)}.badge-公司{background:var(--mark-公司)}.badge-統編{background:var(--mark-統編)}.badge-識別碼{background:var(--mark-識別碼)}.tag{white-space:nowrap;color:var(--muted);border:1px solid var(--border);border-radius:4px;justify-content:center;align-items:center;padding:0 .35rem;font-size:.72rem;line-height:1.5;display:inline-flex}.item-list{flex-direction:column;gap:.35rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.item{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .6rem;display:flex}.item-cancelled{opacity:.55}.item-main{cursor:pointer;align-items:center;gap:.4rem;min-width:0;display:flex}.item-original{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.item-meta{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.download-box{border-top:1px solid var(--border);padding-top:.75rem}.download-actions{flex-direction:column;gap:.5rem;margin:.5rem 0;display:flex}.notice{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:8px;padding:.5rem .7rem;font-size:.85rem}.notice-warn{margin-bottom:1rem}.code-list{flex-wrap:wrap;gap:.3rem;margin-top:.3rem;display:flex}.code-list code{border:1px solid var(--warn-border);background:#fff;border-radius:4px;padding:0 .3rem}.add-popup{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:10px;max-width:360px;padding:.6rem .75rem;position:absolute;box-shadow:0 8px 24px #0000001f}.add-popup-text{color:var(--muted);margin-bottom:.4rem;font-size:.85rem}.add-popup-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.select,.input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;width:100%;padding:.4rem .55rem;font-size:.9rem}.add-popup .select{width:auto}.field-error{color:var(--danger);min-height:1.1em;margin-top:.2rem;font-size:.8rem}.hits{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.4rem;font-size:.85rem;display:flex}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:1rem;overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:760px;font-size:.9rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.55rem .7rem}.table td.col-center,.table th.col-center{text-align:center}.table td.col-nowrap,.table th.col-nowrap,.table td.col-actions{white-space:nowrap}.table td.col-actions .btn+.btn{margin-left:.3rem}.table th{color:var(--muted);font-size:.8rem;font-weight:600}.row-disabled{opacity:.5}.regex{white-space:nowrap;text-overflow:ellipsis;max-width:420px;display:inline-block;overflow:hidden}.switch input{cursor:pointer;width:1.1rem;height:1.1rem}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem}.form-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.form-grid .span-2{grid-column:span 2}.form-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}@media (max-width:700px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}}.restore-inputs{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}@media (max-width:800px){.restore-inputs{grid-template-columns:1fr}}.restore-slot{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem}.restore-slot .dropzone{padding:1.5rem 1rem}.file-chip{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .7rem;display:flex}.restore-result .preview{max-height:60vh}.toast-host{z-index:50;flex-direction:column;gap:.5rem;max-width:380px;display:flex;position:fixed;bottom:3.6rem;right:1rem}.toast{color:#fff;background:#1f2430;border-radius:8px;padding:.6rem .9rem;font-size:.9rem;box-shadow:0 6px 20px #0003}.toast-error{background:var(--danger)}.toast-success{background:#2e9e5b}.legend{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .6rem;font-size:.82rem;display:flex}.legend-title{color:var(--muted)}.legend-chip{cursor:pointer;font:inherit;color:var(--text);border:1px solid #0000;border-radius:4px;padding:.1rem .55rem;font-size:.82rem}.legend-chip:hover{border-color:#9aa3b2}.legend-chip.legend-off{opacity:.55;text-decoration:line-through;text-decoration-thickness:2px;background:#e8ebf0!important}.legend-toggle{color:var(--muted);cursor:pointer;align-items:center;gap:.3rem;margin-left:auto;display:inline-flex}.has-tip{cursor:help}.tooltip{z-index:60;color:#fff;white-space:pre-wrap;pointer-events:none;background:#1f2430;border-radius:6px;max-width:min(28rem,100vw - 16px);padding:.4rem .6rem;font-size:.8rem;line-height:1.45;position:fixed;box-shadow:0 6px 18px #0000002e}.item-mask{white-space:nowrap;font-size:.8rem}.preview.preview-structured{background:var(--bg);padding:1rem}.preview-plain{white-space:pre-wrap;word-break:break-word}.paste-box{margin-top:1rem}.paste-divider{color:var(--muted);align-items:center;gap:.75rem;margin:.75rem 0;font-size:.85rem;display:flex}.paste-divider:before,.paste-divider:after{content:"";border-top:1px solid var(--border);flex:1}.paste-area{resize:vertical;font-family:inherit;line-height:1.6}.paste-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.legend-toggles{gap:.9rem;margin-left:auto;display:inline-flex}.legend-toggles .legend-toggle{margin-left:0}.doc-page{border:1px solid var(--border);word-break:break-word;background:#fff;border-radius:4px;max-width:820px;margin:0 auto;padding:2.2rem 2.6rem;line-height:1.8;box-shadow:0 2px 10px #0000000f}.doc-p{white-space:pre-wrap;margin:0 0 .35em}.doc-title{text-align:center;margin:.2em 0 .8em;font-size:1.45em;font-weight:700}.doc-heading{margin:1em 0 .35em;font-size:1.1em;font-weight:700}.doc-table{border-collapse:collapse;width:100%;margin:.5em 0 1em;font-size:.92em}.doc-table td{vertical-align:top;border:1px solid #b8bec8;padding:.25em .5em}.doc-table td .doc-p{margin:0}.doc-part{color:#4b5563;border:1px dashed #c3cad6;border-radius:6px;margin:.5rem 0 1rem;padding:.5rem .8rem;font-size:.9em;position:relative}.doc-part-footer{margin:1.5rem 0 0}.doc-part-label{color:var(--muted);background:#fff;padding:0 .4em;font-size:.75rem;position:absolute;top:-.7em;left:.8rem}.sheet-tabs{flex-wrap:wrap;gap:.25rem;margin-bottom:.5rem;display:flex}.sheet-tab{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--muted);border-radius:6px 6px 0 0;padding:.3rem .8rem;font-size:.85rem}.sheet-tab.active{color:var(--text);border-bottom-color:var(--surface);background:#fff;font-weight:600}.sheet-scroll{border:1px solid var(--border);background:#fff;max-width:100%;max-height:62vh;overflow:auto}.sheet-table{border-collapse:collapse;white-space:nowrap;font-size:.85rem}.sheet-table th{color:var(--muted);text-align:center;z-index:1;background:#eef0f4;border:1px solid #d5d9e0;padding:.2rem .5rem;font-weight:600;position:sticky;top:0}.sheet-table tr>th:first-child{z-index:2;position:sticky;left:0}.sheet-table td{text-overflow:ellipsis;border:1px solid #e1e4ea;max-width:24rem;padding:.2rem .5rem;overflow:hidden}.pdf-pages{flex-direction:column;gap:.5rem;display:flex}.pdf-page-label{color:var(--muted);text-align:center;margin-top:.5rem;font-size:.75rem}.pdf-page{border:1px solid var(--border);background:#fff;width:100%;position:relative;overflow:hidden;box-shadow:0 2px 10px #0000000f}.pdf-item{white-space:pre;transform-origin:0 0;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;line-height:1;position:absolute}.pdf-item .mark{padding:0 .15em}.mark-cont{padding:0}.workspace.workspace-with-files{grid-template-columns:240px minmax(0,1fr)}.workspace>*{min-width:0}.workspace.workspace-with-files.workspace-with-list{grid-template-columns:240px minmax(0,2fr) minmax(300px,1fr)}@media (max-width:1100px){.workspace.workspace-with-files,.workspace.workspace-with-files.workspace-with-list{grid-template-columns:1fr}}.file-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.8rem;position:sticky;top:4.5rem}.file-panel-head h3{margin:0 0 .5rem}.file-list{flex-direction:column;gap:.3rem;margin:0 0 .6rem;padding:0;list-style:none;display:flex}.file-item{border:1px solid var(--border);border-radius:8px;align-items:stretch;display:flex;overflow:hidden}.file-item.active{border-color:var(--primary);box-shadow:0 0 0 2px #2f6fed26}.file-item-main{text-align:left;cursor:pointer;min-width:0;font:inherit;color:var(--text);background:0 0;border:0;flex:1;padding:.45rem .55rem}.file-item-main:hover{background:var(--bg)}.file-item.active .file-item-main{background:#eef3ff}.file-item-name{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;display:block;overflow:hidden}.file-item-meta{align-items:center;gap:.3rem;margin-top:.15rem;display:flex}.file-item-remove{border:0;border-left:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;padding:0 .6rem;font-size:1rem}.file-item-remove:hover{color:var(--danger);background:#fff5f5}.tag-done{color:#2e9e5b;border-color:#bfe6cd}.btn-strong{font-weight:600}.samples{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-top:1.5rem;padding:1rem}.sample-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.6rem;display:grid}.sample-card{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .7rem;display:flex}.sample-main{min-width:0}.sample-name{font-size:.92rem;font-weight:600}.sample-actions{flex-wrap:wrap;flex-shrink:0;gap:.35rem;display:flex}a.btn{align-items:center;text-decoration:none;display:inline-flex}.footer{border-top:1px solid var(--border);background:var(--surface);z-index:4;position:sticky;bottom:0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1400px;margin:0 auto;padding:.55rem 1.5rem;font-size:.88rem;display:flex}.footer a{color:var(--primary);text-decoration:none}.footer a:hover{text-decoration:underline}.footer-social{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}#app{flex-direction:column;min-height:100vh;display:flex}.panels{flex:1;width:100%;min-width:0;padding-bottom:4rem}.samples-head{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:.6rem;display:flex}.samples-head h3{margin:0}.sample-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;display:grid}@media (max-width:900px){.sample-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.sample-card{padding:.5rem .6rem}.sample-actions{flex-direction:column;gap:.25rem}.sample-actions .btn{justify-content:center;min-width:3.6rem}.sample-name .badge{margin-right:.15rem}.social-link{border-radius:6px;align-items:center;gap:.35rem;padding:.2rem .45rem;display:inline-flex;color:var(--muted)!important}.social-link:hover{background:var(--bg);color:var(--primary)!important;text-decoration:none!important}.social-link svg{flex-shrink:0}.seo-fallback{max-width:800px;margin:3rem auto;padding:0 1.5rem;line-height:1.7}.tab-link{border-color:var(--border);margin-left:.35rem;text-decoration:none}.tab-link:hover{color:var(--primary)}.busy-overlay{z-index:45;background:#f6f7f9a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.busy-overlay[hidden]{display:none}.busy-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:.7rem;padding:.9rem 1.3rem;font-size:.95rem;display:flex;box-shadow:0 8px 24px #0000001f}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:1.2rem;height:1.2rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#app[inert] .btn,#app[inert] .tab,#app[inert] .dropzone{opacity:.55}.site-info{background:var(--surface);line-height:1.7}.site-info-inner{max-width:960px;margin:0 auto;padding:2.25rem 1.5rem 3rem}.site-info h2{margin-bottom:.75rem;padding-right:2.5rem;font-size:1.25rem}.site-info h3{margin:1.75rem 0 .6rem;font-size:1.05rem}.site-info p{margin:0 0 .6rem}.site-info ol,.site-info ul{margin:0 0 .6rem;padding-left:1.4rem}.site-info li{margin-bottom:.25rem}.site-info table{border-collapse:collapse;border:1px solid var(--border);width:100%;margin-bottom:.6rem;font-size:.9rem}.site-info th,.site-info td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.5rem .7rem}.site-info th{color:var(--muted);background:var(--bg);font-size:.8rem;font-weight:600}.site-info tr:last-child td{border-bottom:0}.site-info a{color:var(--primary)}.faq details{border:1px solid var(--border);background:var(--bg);border-radius:10px;margin-bottom:.5rem;padding:.55rem .9rem}.faq summary{cursor:pointer;font-weight:600}.faq details p{margin:.5rem 0 .2rem}.site-info-dialog{border:1px solid var(--border);background:var(--surface);width:min(780px,92vw);max-height:85vh;color:var(--text);border-radius:12px;padding:0;box-shadow:0 20px 60px #0003}.site-info-dialog[open]{flex-direction:column;display:flex}.site-info-dialog::backdrop{background:#1f243066}.site-info-dialog .site-info{overflow:auto}.site-info-dialog .site-info-inner{padding:1.5rem 1.75rem 2rem}.dialog-close{background:var(--bg);width:2rem;height:2rem;color:var(--muted);cursor:pointer;border:0;border-radius:50%;font-size:1rem;line-height:1;position:absolute;top:.7rem;right:.8rem}.dialog-close:hover{color:var(--text)}body:has(.site-info-dialog[open]){overflow:hidden}.link-btn{color:var(--primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.link-btn:hover{text-decoration:underline}
