:root{--bg: #1a1b26;--bg-elev: #1f2335;--bg-surface: #24283b;--border: #3b4261;--border-subtle: #292e42;--text: #c0caf5;--text-dim: #a9b1d6;--text-muted: #565f89;--text-faint: #3b4261;--accent: #7aa2f7;--accent-dim: #5d7ec7;--green: #9ece6a;--purple: #bb9af7;--red: #f7768e;--orange: #ff9e64;--yellow: #e0af68;--cyan: #7dcfff;--cursor: #c0caf5;--selection: rgba(122, 162, 247, .28);--selection-focused: rgba(122, 162, 247, .36);--space-marker: color-mix(in srgb, var(--text-dim) 26%, transparent);--space-dot-gradient: radial-gradient( circle at 50% 55%, var(--space-marker) 0%, var(--space-marker) 48%, transparent 55% );--space-dot-size: .36em .36em;--tab-marker-size: .55em .55em;--radius: 6px;--radius-sm: 4px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Source Code Pro", Consolas, monospace;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4)}[data-theme=light]{--bg: #ffffff;--bg-elev: #f6f8fa;--bg-surface: #eef1f5;--border: #d0d7de;--border-subtle: #e7ebf0;--text: #1f2328;--text-dim: #444d56;--text-muted: #8b949e;--text-faint: #c0c8d0;--accent: #0969da;--accent-dim: #0550ae;--green: #1a7f37;--purple: #8250df;--red: #cf222e;--orange: #bf5700;--yellow: #9a6700;--cyan: #0e7490;--cursor: #1f2328;--selection: rgba(9, 105, 218, .22);--selection-focused: rgba(9, 105, 218, .3);--space-marker: color-mix(in srgb, var(--text-dim) 30%, transparent);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .15)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{display:flex;flex-direction:column;overflow:hidden}svg.icon{width:1em;height:1em;display:inline-block;fill:currentColor;vertical-align:middle}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit;color:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-elev)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.space-dot{background-image:var(--space-dot-gradient);background-size:var(--space-dot-size);background-position:center center;background-repeat:no-repeat}.tab-dot{background-color:var(--space-marker);background-image:none;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 6h6M6 3.5 8.5 6 6 8.5' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 6h6M6 3.5 8.5 6 6 8.5' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-size:var(--tab-marker-size);mask-size:var(--tab-marker-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center center;mask-position:center center}.app-header{display:flex;align-items:center;justify-content:space-between;background:var(--bg-surface);padding:0 var(--space-lg);height:52px;border-bottom:1px solid var(--border);flex-shrink:0}.doc{flex:1;display:flex;flex-direction:column;min-height:0}.section{display:flex;flex-direction:column;background:var(--bg);flex:1 1 0%;min-height:0}.section-header{display:flex;align-items:center;padding:0 var(--space-lg);height:38px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.section-header h1{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.section-article{flex:1;min-height:0;display:flex;flex-direction:column}.section.expression,#expressionRoot{flex:0 0 auto}#textRoot{flex:0 0 50%;display:flex;flex-direction:column;min-height:0}#textRoot>.section.text{flex:1 1 0%;min-height:0}#toolsRoot{flex:1 1 0%;min-height:0;display:flex;flex-direction:column}#toolsRoot>.section.tools{flex:1 1 0%;min-height:0;transition:flex .2s ease}#toolsRoot>.section.tools.minimized{flex:0 0 38px;overflow:hidden}#toolsRoot>.section.tools.minimized .section-article{display:none}.resize-handle{flex:0 0 5px;background:var(--border);cursor:row-resize;position:relative;z-index:10;transition:background .15s}.resize-handle:before{content:"";position:absolute;inset:0 0 -8px}.resize-handle:hover,.resize-handle.dragging{background:var(--accent)}.section.expression .section-header h1{color:var(--accent)}.section.expression .section-header{background:var(--bg-surface)}.flags{display:flex;gap:2px;margin-left:auto}.flag{padding:4px 8px;min-width:28px;text-align:center;font-family:var(--font-mono);font-size:12px;font-weight:600;background:var(--bg-elev);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;transition:all .15s}.flag:first-child{border-radius:4px 0 0 4px}.flag:last-child{border-radius:0 4px 4px 0}.flag:hover{color:var(--text);background:var(--bg-surface)}.flag.on{background:var(--accent);color:var(--bg);border-color:var(--accent)}.flag.on:hover{background:var(--accent-dim)}.expression-bar{display:flex;align-items:center;gap:4px;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border);min-height:44px}.expression-bar .slash{color:var(--accent);font-family:var(--font-mono);font-size:18px;font-weight:700;flex-shrink:0}.expression-input-wrap{flex:1;min-width:0;position:relative}.expression-input{width:100%;font-family:var(--font-mono);font-size:15px;font-weight:400;background:transparent;color:transparent;border:none;outline:none;padding:4px;caret-color:var(--cursor)}.expression-input::placeholder{color:var(--text-faint)}.expression-hl{position:absolute;inset:0;font-family:var(--font-mono);font-size:15px;font-weight:400;pointer-events:none;padding:4px;white-space:pre;overflow:hidden;line-height:normal;box-sizing:border-box}.tk-meta{color:var(--orange);font-weight:600}.tk-class{color:var(--yellow);font-weight:600}.tk-group{color:var(--green);font-weight:600}.tk-quant{color:var(--cyan);font-weight:600}.tk-alt,.tk-anchor{color:var(--purple);font-weight:600}.tk-dot{color:var(--text)}.tk-esc{color:var(--purple);font-weight:600}.tk-char{color:var(--text)}.expression-bar.error{outline:2px solid var(--red);outline-offset:-2px}.expression-error{color:var(--red);font-size:12px;padding:4px 16px 8px;background:var(--bg);border-bottom:1px solid var(--border);display:none}.expression-error.show{display:block}.section.text .section-header h1{flex:0 0 auto;margin-right:auto}.section.text .modelist{display:flex;gap:2px;list-style:none;margin-left:8px}.section.text .modelist li{padding:5px 12px;font-size:12px;font-weight:500;background:var(--bg-elev);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;transition:all .15s}.section.text .modelist li.selected{background:var(--bg-surface);color:var(--text);font-weight:600}.section.text .result{padding:5px 12px;font-size:12px;font-weight:600;background:var(--bg-elev);color:var(--text-muted);border:1px solid var(--border);border-radius:4px;margin-right:8px;display:flex;align-items:center;gap:6px}.section.text .result.pass{background:#9ece6a26;color:var(--green);border-color:#9ece6a4d}.section.text .result .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.text-editor-wrap{flex:1;display:flex;background:var(--bg);overflow:hidden;position:relative}.text-editor-wrap .cm-editor{flex:1;min-width:0;outline:none!important}.text-editor-wrap .cm-content{font-family:var(--font-mono);font-size:15px;color:var(--text-dim);line-height:1.6;caret-color:var(--cursor)}.text-editor-wrap .cm-cursor,.text-editor-wrap .cm-dropCursor{border-left:2px solid var(--cursor)!important;margin-left:-1px;height:24px!important;margin-top:-2px!important}.text-editor-wrap .cm-selectionBackground,.text-editor-wrap .cm-content ::selection{background:var(--selection)!important}.text-editor-wrap .cm-focused .cm-selectionBackground{background:var(--selection-focused)!important}.text-editor-wrap .cm-content ::selection{color:var(--text)}.text-editor-wrap .cm-selectionLayer .cm-selectionBackground{border-radius:0!important;box-shadow:0 -2px 0 0 var(--selection),0 2px 0 0 var(--selection)}.text-editor-wrap .cm-focused .cm-selectionLayer .cm-selectionBackground{box-shadow:0 -2px 0 0 var(--selection-focused),0 2px 0 0 var(--selection-focused)}.text-editor-wrap .cm-gutters{background:var(--bg-elev);color:var(--text-faint);border-right:1px solid var(--border)}.text-editor-wrap .cm-activeLineGutter{background:var(--bg-surface)}.text-editor-wrap .cm-activeLine{background:#7aa2f712}.text-editor-wrap .cm-match{background-color:#7aa2f738;color:var(--accent);border-radius:0;padding:0!important;margin:0!important;border:none!important;outline:none!important;box-decoration-break:clone;-webkit-box-decoration-break:clone;box-shadow:0 -2px #7aa2f738,0 2px #7aa2f738;cursor:pointer;transition:background-color .15s,box-shadow .15s}.text-editor-wrap .cm-match:hover{background-color:#7aa2f752;box-shadow:0 -2px #7aa2f752,0 2px #7aa2f752}.text-editor-wrap .cm-match-selected{background-color:#e0af6852;color:var(--text);box-shadow:0 -2px #e0af6852,0 2px #e0af6852,inset 0 -2px #e0af68d9}.text-editor-wrap .cm-search-match{background-color:#7aa2f733;color:inherit;border-radius:0;padding:0!important;margin:0!important;border:none!important;outline:none!important;box-decoration-break:clone;-webkit-box-decoration-break:clone;box-shadow:0 -2px #7aa2f733,0 2px #7aa2f733;transition:background-color .12s,box-shadow .12s}.text-editor-wrap .cm-search-match-selected{background-color:#e0af6852;color:var(--text);box-shadow:0 -2px #e0af6852,0 2px #e0af6852,inset 0 -2px #e0af68d9}.search-box{position:absolute;top:6px;right:8px;z-index:10;display:flex;align-items:center;gap:2px;padding:2px 4px;width:250px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s ease,transform .15s ease,visibility .15s}.search-box.visible{opacity:1;visibility:visible;transform:translateY(0)}.search-input{flex:1;min-width:0;padding:2px 6px;font-family:var(--font-mono);font-size:13px;color:var(--text);background:var(--bg-elev);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);outline:none;transition:border-color .15s;overflow:hidden;text-overflow:ellipsis}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--text-muted)}.search-count{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);width:40px;text-align:center;white-space:nowrap;flex-shrink:0}.search-count.no-match{color:var(--red)}.search-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:none;color:var(--text-dim);border-radius:var(--radius-sm);cursor:pointer;transition:background .12s,color .12s;flex-shrink:0}.search-btn:hover{background:var(--bg-elev);color:var(--text)}.search-btn:active{background:var(--border-subtle)}.search-close{margin-left:0}.text-editor-wrap .cm-highlightSpace{background-image:var(--space-dot-gradient)!important;background-size:var(--space-dot-size)!important;background-position:center center!important;background-repeat:no-repeat!important}.text-editor-wrap .cm-highlightTab{background-color:var(--space-marker)!important;background-image:none!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 6h6M6 3.5 8.5 6 6 8.5' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 6h6M6 3.5 8.5 6 6 8.5' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;-webkit-mask-size:var(--tab-marker-size)!important;mask-size:var(--tab-marker-size)!important;-webkit-mask-repeat:no-repeat!important;mask-repeat:no-repeat!important;-webkit-mask-position:center center!important;mask-position:center center!important}.text-editor-wrap .cm-line:not(:last-child){position:relative}.text-editor-wrap .cm-line:not(:last-child):after{content:"↵";position:absolute;right:.15em;top:50%;transform:translateY(-50%);font-size:.7em;line-height:1;color:var(--text-muted);opacity:.55;pointer-events:none;user-select:none;font-family:ui-monospace,JetBrains Mono,SF Mono,Menlo,Consolas,monospace}.text-editor-wrap .cm-highlightSpace.cm-selectionMatch{background-color:transparent!important}.section.tools .section-header h1{flex:0 0 auto}.section.tools .section-header{display:flex;align-items:center}.section.tools .segcontrol{display:flex;gap:2px;list-style:none;margin-left:auto}.section.tools .segcontrol li{padding:5px 14px;font-size:12px;font-weight:500;background:var(--bg-elev);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;transition:all .15s}.section.tools .segcontrol li:first-child{border-radius:4px 0 0 4px}.section.tools .segcontrol li:last-child{border-right:none;border-radius:0}.section.tools .segcontrol li:hover{color:var(--text)}.section.tools .segcontrol li.selected{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}.section.tools .minimize-btn{margin-left:12px;padding:5px 10px;font-size:12px;font-weight:500;background:var(--bg-elev);color:var(--text-muted);border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.section.tools .minimize-btn:hover{background:var(--bg-surface);color:var(--text)}.section.tools.minimized .minimize-btn svg{transform:rotate(180deg)}.section.tools .inputtool{display:flex;flex-direction:column;flex:1;min-height:0}.section.tools .inputtool.hide{display:none}.section.tools .inputtool-row{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.section.tools .inputtool-row .label{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;min-width:80px}.section.tools .inputtool-field-wrap{flex:1;min-width:0;position:relative}.section.tools .inputtool-input{width:100%;font-family:var(--font-mono);font-size:15px;font-weight:500;padding:6px 10px;background:var(--bg-elev);border:1px solid var(--border);border-radius:4px;color:transparent;caret-color:var(--cursor);outline:none;transition:border-color .15s}.section.tools .inputtool-input:focus{border-color:var(--accent)}.section.tools .inputtool-hl{position:absolute;inset:0;font-family:var(--font-mono);font-size:15px;font-weight:500;padding:6px 10px;border:1px solid transparent;color:var(--text);pointer-events:none;white-space:pre;overflow:hidden;line-height:normal;box-sizing:border-box;border-radius:4px}.section.tools .inputtool-hl .tpl-ref{color:var(--green)}.section.tools .inputtool-hl .tpl-named{color:var(--cyan)}.section.tools .inputtool-hl .tpl-esc{color:var(--purple)}.section.tools .inputtool-hl .tpl-text{color:var(--text)}.section.tools .inputtool-result{flex:1;padding:12px 16px;font-family:var(--font-mono);font-size:15px;color:var(--text-dim);line-height:1.7;overflow-y:auto;white-space:pre-wrap;user-select:text;outline:none;cursor:text}.section.tools .inputtool-result:focus{background:var(--bg-elev)}.section.tools .details-content{flex:1;overflow-y:auto;padding:16px;user-select:text;outline:none;cursor:text}.section.tools .details-content:focus{background:var(--bg-elev)}.section.tools .details-content.hide{display:none}.section.tools .details-desc{color:var(--text-muted);font-size:12px;margin-bottom:12px}.section.tools .details-desc b{color:var(--text)}.section.tools .match-hint{background:#e0af681a;border:1px solid rgba(224,175,104,.3);border-radius:4px;padding:8px 12px;margin-bottom:12px;font-size:12px;color:var(--yellow);display:flex;align-items:center;gap:8px}.section.tools .match-hint b{color:var(--orange)}.section.tools .match-nav-btn{background:none;border:1px solid rgba(224,175,104,.4);border-radius:3px;color:var(--orange);cursor:pointer;font-size:16px;line-height:1;padding:2px 8px}.section.tools .match-nav-btn:hover:not(:disabled){background:#e0af6833}.section.tools .match-nav-btn:disabled{opacity:.3;cursor:default}.section.tools tr.match-clickable{cursor:pointer}.section.tools tr.match-clickable:hover td{background:#e0af6826!important}.section.tools table{font-family:var(--font-mono);font-size:15px;width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:6px;overflow:hidden}.section.tools td{padding:6px 12px;border-bottom:1px solid var(--border-subtle);vertical-align:top}.section.tools tr:last-child td{border-bottom:none}.section.tools tr.match td{background:var(--bg-surface)}.section.tools tr:nth-child(2n):not(.match) td{background:var(--bg-elev)}.section.tools td:first-child{font-weight:600;color:var(--accent);white-space:nowrap}.section.tools td:nth-child(2){color:var(--text-muted);white-space:nowrap}.section.tools td:nth-child(3){color:var(--text);word-break:break-all}.section.tools .group-0{background:#9ece6a26;color:var(--green);padding:1px 6px;border-radius:3px;display:inline-block}.section.tools .group-1{background:#7aa2f733;color:var(--accent);padding:1px 6px;border-radius:3px;display:inline-block}.section.tools .group-2{background:#bb9af733;color:var(--purple);padding:1px 6px;border-radius:3px;display:inline-block}.section.tools .no-match{color:var(--text-muted);font-style:italic;padding:20px;text-align:center}.app-header .logo-wrap{display:flex;align-items:center;gap:8px;color:var(--accent);font-weight:700;font-size:16px;letter-spacing:-.02em}.app-header .logo{width:22px;height:22px}.app-header .etc{display:flex;gap:12px;align-items:center;list-style:none;color:var(--text-muted);font-size:13px}.app-header .etc li a{color:var(--text-muted);text-decoration:none;transition:color .15s}.app-header .etc li a:hover{color:var(--text)}.app-header .theme-btn{padding:6px;background:var(--bg-elev);border-radius:4px;border:1px solid var(--border);color:var(--accent);transition:all .15s}.app-header .theme-btn:hover{background:var(--bg-surface);border-color:var(--accent)}@media(max-width:768px){.app-header{padding:0 var(--space-md);height:48px}.section-header{padding:0 var(--space-md);height:36px}.expression-bar{padding:8px 12px}.expression-bar .slash{font-size:16px}.expression-input{font-size:13px}.flag{font-size:10px;padding:3px 5px;min-width:22px}.section.text .result{font-size:11px;padding:4px 8px}.text-editor-wrap .cm-content{font-size:12px}.section.tools .segcontrol{margin-left:8px}.section.tools .segcontrol li{padding:4px 8px;font-size:11px}.section.tools .minimize-btn{margin-left:8px;padding:4px 8px}.section.tools .inputtool-row{padding:8px 12px}.section.tools .inputtool-row .label{min-width:60px;font-size:10px}.section.tools .inputtool-input{font-size:12px;padding:5px 8px}.section.tools .inputtool-result{padding:8px 12px;font-size:12px}.section.tools .details-content{padding:12px}.section.tools table{font-size:11px}.section.tools td{padding:4px 8px}}
