*{box-sizing:border-box;margin:0;padding:0}*{-webkit-font-feature-settings:"kern" 1,"liga" 0,"calt" 0;font-feature-settings:"kern" 1,"liga" 0,"calt" 0;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%}html,body,#root{height:100%;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-touch-callout:none}@supports (-webkit-touch-callout: none){html,body,#root{height:-webkit-fill-available;overflow:auto}}:root{--vh: 1vh}.app{-webkit-user-select:none;user-select:none}.cli-history,.cli-input,.editor-content,.config-content,.cm-content,.cm-editor{-webkit-user-select:text;user-select:text}.cli-history,.editor-content,.config-content,.tool-section,.log-content{-webkit-overflow-scrolling:touch;overflow-y:auto}@supports (-webkit-touch-callout: none){.cli-history,.editor-content,.editor-codemirror .cm-scroller{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-overflow-scrolling:touch;min-height:0}}@media screen and (max-device-width: 768px){.app,.cli-container,.editor-container{height:calc(var(--vh, 1vh) * 100)}}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Zen Hei,Segoe UI,Roboto,sans-serif;background:#000;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;word-break:break-word;overflow-wrap:break-word}.app{height:100vh;height:-webkit-fill-available;min-height:0;display:flex;flex-direction:column;background:#000;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.cli-container{display:flex;flex-direction:column;height:100vh;height:-webkit-fill-available;min-height:0;background:#000;color:#fff;overflow:hidden}.cli-history{flex:1;overflow-y:auto;padding:1rem;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Consolas,Courier New,monospace;font-size:14px;line-height:1.6;scroll-behavior:smooth;word-break:break-word;overflow-wrap:break-word;-webkit-overflow-scrolling:touch}.cli-line{margin:.25rem 0;white-space:pre-wrap;word-wrap:break-word}.cli-line.processing{color:#888;animation:pulse 1.5s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.6}to{opacity:1}}.cli-input-form{padding:1rem;border-top:1px solid #333;background:#111}.cli-input{width:100%;background:transparent;border:none;color:#fff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Zen Hei,sans-serif;font-size:16px;outline:none;padding:.75rem;border-radius:4px;border:1px solid #333;ime-mode:auto;composition-mode:auto;-webkit-appearance:none;-webkit-border-radius:4px}.cli-input:focus{border-color:#0969da}.cli-input:disabled{opacity:.5;cursor:not-allowed}.editor-container{display:flex;flex-direction:column;height:100vh;height:-webkit-fill-available;min-height:0;background:#0d1117}.editor-status-bar{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:#21262d;border-bottom:1px solid #30363d;font-size:12px;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace}.status-left{display:flex;align-items:center;gap:1rem}.status-center{display:flex;align-items:center}.status-right{display:flex;align-items:center;gap:.5rem}.branch-info{color:#7c3aed;font-weight:500}.path-info{color:#6b7280}.dirty-flag{color:#f59e0b;font-weight:700}.diff-mode-btn{background:#30363d;color:#f0f6fc;border:1px solid #484f58;padding:.25rem .75rem;border-radius:4px;font-size:11px;cursor:pointer}.diff-mode-btn:hover{background:#484f58}.theme-btn,.mode-btn{background:transparent;color:#f0f6fc;border:1px solid #484f58;padding:.25rem .5rem;border-radius:4px;font-size:11px;cursor:pointer}.theme-btn:hover,.mode-btn:hover{background:#30363d}.editor-content{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;min-height:0}.editor-codemirror{height:100%!important;overflow:hidden}.editor-codemirror .cm-editor{height:100%!important}.editor-codemirror .cm-scroller{font-family:SF Pro Text,SF Mono,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Microsoft YaHei,WenQuanYi Zen Hei,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace!important;font-size:14px;line-height:1.6;-webkit-overflow-scrolling:touch;overflow-y:auto;height:100%!important;max-height:none;touch-action:pan-y;overscroll-behavior-y:contain}@supports (height: 100dvh){.app,.cli-container,.editor-container{height:100dvh}}.editor-codemirror .cm-content,.editor-codemirror .cm-editor,.editor-codemirror .cm-line{font-family:SF Pro Text,SF Mono,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,Microsoft YaHei,WenQuanYi Zen Hei,Helvetica Neue,Arial,sans-serif!important;font-feature-settings:normal!important;word-break:break-word;overflow-wrap:break-word;unicode-bidi:normal;text-orientation:mixed}.editor-codemirror .cm-content{white-space:pre-wrap!important;word-spacing:normal;letter-spacing:normal}.editor-codemirror{font-variant-ligatures:none;font-variant-numeric:normal}.diff-view .cm-content{white-space:pre}.diff-legend{position:absolute;bottom:1rem;right:1rem;background:#21262d;border:1px solid #30363d;border-radius:4px;padding:.5rem;font-size:11px;z-index:10}.diff-legend-item{display:flex;align-items:center;gap:.5rem;margin:.25rem 0}.diff-added{color:#238636;font-weight:700}.diff-removed{color:#da3633;font-weight:700}.config-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1rem}.config-modal{background:#0d1117;border:1px solid #30363d;border-radius:8px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.config-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #30363d;background:#161b22}.config-header h2{color:#f0f6fc;font-size:1.25rem;font-weight:600}.config-close{background:none;border:none;color:#8b949e;font-size:1.5rem;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px}.config-close:hover{background:#30363d;color:#f0f6fc}.config-content{flex:1;overflow-y:auto;padding:1rem}.config-section{margin-bottom:2rem}.config-section h3{color:#f0f6fc;font-size:1rem;font-weight:600;margin-bottom:1rem;border-bottom:1px solid #30363d;padding-bottom:.5rem}.config-field{margin-bottom:1rem}.config-field label{display:block;color:#f0f6fc;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.config-field input,.config-field select{width:100%;background:#21262d;border:1px solid #30363d;color:#f0f6fc;padding:.75rem;border-radius:4px;font-size:.875rem}.config-field input:focus,.config-field select:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da4d}.config-field small{color:#8b949e;font-size:.75rem;margin-top:.25rem;display:block}.config-field input[type=checkbox]{width:auto;margin-right:.5rem}.config-actions{display:flex;gap:.5rem;margin-top:1rem}.config-action-btn{background:#21262d;color:#f0f6fc;border:1px solid #30363d;padding:.5rem 1rem;border-radius:4px;font-size:.75rem;cursor:pointer}.config-action-btn:hover{background:#30363d}.config-action-btn.danger{background:#da3633;border-color:#da3633}.config-action-btn.danger:hover{background:#c93026}.config-help{background:#0c2128;border:1px solid #164328;border-radius:4px;padding:1rem;margin-top:1rem}.config-help h4{color:#7ee787;font-size:.875rem;margin-bottom:.5rem}.config-help ul{list-style:none;color:#8b949e;font-size:.75rem}.config-help li{margin:.25rem 0;padding-left:1rem;position:relative}.config-help li:before{content:"•";color:#7ee787;position:absolute;left:0}.config-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem;border-top:1px solid #30363d;background:#161b22}.config-btn{padding:.5rem 1.5rem;border-radius:4px;font-size:.875rem;cursor:pointer;font-weight:500}.config-btn.secondary{background:#21262d;color:#f0f6fc;border:1px solid #30363d}.config-btn.secondary:hover{background:#30363d}.config-btn.primary{background:#238636;color:#fff;border:1px solid #238636}.config-btn.primary:hover{background:#2ea043}.cm-image-preview{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}.cm-image-preview img{max-width:100%;height:auto;border:1px solid #30363d;border-radius:6px;background:#0d1117}@media (max-width: 768px){.cli-history{font-size:13px;padding:.75rem}.cli-input{font-size:16px;padding:1rem}.editor-status-bar{padding:.5rem;font-size:11px}.status-left,.status-center,.status-right{gap:.5rem}.editor-codemirror .cm-scroller{font-size:13px}.config-overlay{padding:.5rem}.config-modal{max-height:95vh}.config-content{padding:.75rem}.config-footer{padding:.75rem;flex-direction:column}.config-btn{width:100%;padding:.75rem}}@media (hover: none) and (pointer: coarse){.cli-input,.config-field input,.config-field select{padding:1rem;font-size:16px}.diff-mode-btn,.theme-btn,.mode-btn{padding:.5rem;min-height:44px;min-width:44px}.config-close{min-height:44px;min-width:44px;font-size:1.25rem}}.tool-container{display:flex;flex-direction:column;height:100vh;background:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Zen Hei,Segoe UI,Roboto,sans-serif}.tool-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#111;border-bottom:1px solid #333;flex-shrink:0}.tool-header h2{font-size:1.2rem;margin:0}.tool-mode-switch{display:flex;gap:.5rem}.tool-mode-switch button{padding:.5rem 1rem;background:#333;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.tool-mode-switch button:hover{background:#444}.tool-mode-switch button.active{background:#007acc}.back-btn{padding:.5rem 1rem;background:#666;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.back-btn:hover{background:#777}.tool-section{flex:1;overflow-y:auto;padding:1rem}.tool-section h3{margin-bottom:1rem;font-size:1.1rem;color:#fff}.upload-section,.download-section{background:#111;border:1px solid #333;border-radius:6px;padding:1rem;margin-bottom:1rem}.upload-section h4,.download-section h4{margin-bottom:.75rem;font-size:1rem;color:#ccc}.form-group{margin-bottom:.75rem}.form-group label{display:block;margin-bottom:.25rem;color:#ccc;font-size:.9rem}.file-input,.text-input{width:100%;padding:.5rem;background:#222;border:1px solid #444;border-radius:4px;color:#fff;font-size:.9rem;font-family:inherit}.file-input:focus,.text-input:focus{outline:none;border-color:#007acc}.file-input:disabled,.text-input:disabled{background:#1a1a1a;border-color:#333;color:#666;cursor:not-allowed}.upload-btn,.download-btn{width:100%;padding:.75rem;background:#007acc;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:600;transition:background-color .2s}.upload-btn:hover,.download-btn:hover{background:#005a9e}.upload-btn:disabled,.download-btn:disabled{background:#333;cursor:not-allowed}.ws-status{margin-bottom:1rem;padding:.5rem;background:#111;border:1px solid #333;border-radius:4px;font-size:.9rem}.ws-status .connected{color:#4ade80}.ws-status .disconnected{color:#f87171}.ws-url{margin-left:.5rem;color:#888;font-size:.8rem}.tool-log{background:#111;border-top:1px solid #333;padding:1rem;flex-shrink:0;max-height:200px;display:flex;flex-direction:column}.tool-log h4{margin-bottom:.5rem;font-size:.9rem;color:#ccc}.log-content{flex:1;overflow-y:auto;background:#000;border:1px solid #333;border-radius:4px;padding:.5rem;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.8rem;line-height:1.4;max-height:120px}.log-entry{margin-bottom:.25rem;color:#ccc}.log-empty{color:#666;font-style:italic;text-align:center;padding:1rem 0}.clear-log-btn{margin-top:.5rem;padding:.25rem .5rem;background:#333;color:#ccc;border:none;border-radius:3px;cursor:pointer;font-size:.8rem;align-self:flex-start}.clear-log-btn:hover{background:#444}@media (max-width: 768px){.tool-header{padding:.75rem;flex-wrap:wrap;gap:.5rem}.tool-header h2{font-size:1rem}.tool-mode-switch{order:3;flex-basis:100%;justify-content:center}.upload-section,.download-section{padding:.75rem}.tool-log{max-height:150px}.log-content{max-height:80px}}@media (prefers-color-scheme: dark){.app{background:#0d1117}}
