*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;min-width:320px;min-height:100vh}#root{width:100%;height:100vh}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}}.app{display:flex;width:100%;height:100vh;overflow:hidden}.content{flex:1;padding:2rem;overflow-y:auto;background:linear-gradient(135deg,#667eea,#764ba2)}@media(prefers-color-scheme:light){.content{background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}}@media(max-width:768px){.app{flex-direction:column}.content{padding:1rem}}.sidebar{position:relative;width:200px;background-color:#1a1a1a;border-right:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;padding:1.5rem 0;transition:width .3s ease;overflow:hidden}.sidebar.collapsed{width:60px}.sidebar-header{padding:0 1.5rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease;border-radius:8px;margin:0 .5rem;padding:.75rem 1rem}.sidebar-header:hover{background-color:#ffffff0d}.sidebar.collapsed .sidebar-header{padding:.75rem;justify-content:center;margin:0 .25rem}.sidebar-title{font-size:1.25rem;font-weight:600;color:#ffffffe6;margin:0;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.sidebar.collapsed .title-text{display:none}.collapse-indicator{color:#ffffff80;font-size:1.25rem;line-height:1;transition:color .2s ease;flex-shrink:0}.sidebar-header:hover .collapse-indicator{color:#ffffffe6}.sidebar.collapsed .collapse-indicator{display:none}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem 1rem}.sidebar.collapsed .sidebar-nav{padding:1.5rem .5rem}.sidebar-tab{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border:none;border-radius:8px;background-color:transparent;color:#ffffffb3;cursor:pointer;transition:all .2s ease;font-size:1rem;text-align:left}.sidebar-tab:hover{background-color:#ffffff0d;color:#ffffffe6}.sidebar-tab.active{background-color:#667eea33;color:#fff;font-weight:500}.tab-icon{font-size:1.25rem;line-height:1}.tab-label{flex:1;transition:opacity .2s ease}.sidebar.collapsed .tab-label{display:none}.sidebar.collapsed .sidebar-tab{justify-content:center;padding:.875rem .5rem}@media(prefers-color-scheme:light){.sidebar{background-color:#f8f9fa;border-right:1px solid #e0e0e0}.sidebar-header{border-bottom:1px solid #e0e0e0}.sidebar-title{color:#1a1a1a}.sidebar-header:hover{background-color:#0000000d}.collapse-indicator{color:#999}.sidebar-header:hover .collapse-indicator{color:#333}.sidebar-tab{color:#5a5a5a}.sidebar-tab:hover{background-color:#0000000d;color:#1a1a1a}.sidebar-tab.active{background-color:#667eea26;color:#667eea}}@media(max-width:768px){.sidebar{width:100%;flex-direction:row;padding:1rem;border-right:none;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header{padding:0 1rem 0 0;border-bottom:none;border-right:1px solid rgba(255,255,255,.1)}.sidebar-title{font-size:1rem}.sidebar-nav{flex-direction:row;padding:0 1rem}.sidebar-tab{flex-direction:column;gap:.25rem;padding:.5rem;font-size:.875rem}.tab-icon{font-size:1.5rem}}.coding{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;height:100%}.coding-header{margin-bottom:1.5rem}.coding-title{font-size:2rem;font-weight:600;color:#fff;margin:0}.coding-sub-tabs{display:flex;gap:.75rem;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:.5rem}.coding-content{flex:1;background:#fffffff2;border-radius:24px;padding:2rem;box-shadow:0 8px 32px #0000001a;overflow:auto}.coding-sub-tabs::-webkit-scrollbar{height:4px}.coding-sub-tabs::-webkit-scrollbar-track{background:#ffffff1a;border-radius:2px}.coding-sub-tabs::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:2px}.coding-sub-tabs::-webkit-scrollbar-thumb:hover{background:#ffffff80}@media(prefers-color-scheme:light){.coding-title{color:#1a1a1a}.sub-tab{background:#0000000d;color:#666}.sub-tab:hover{background:#0000001a;color:#1a1a1a}.sub-tab.active{background:#667eea;color:#fff;border-color:#5568d3}.coding-sub-tabs::-webkit-scrollbar-track{background:#0000000d}.coding-sub-tabs::-webkit-scrollbar-thumb{background:#0003}.coding-sub-tabs::-webkit-scrollbar-thumb:hover{background:#0000004d}}@media(max-width:768px){.coding-title{font-size:1.5rem}.coding-sub-tabs{gap:.5rem}.sub-tab{padding:.6rem 1.25rem;font-size:.875rem}.sub-tab-icon{font-size:1rem}.coding-content{padding:1.5rem}}.coding-top{transition:all .3s ease;overflow:hidden}.coding-top.hidden{height:0;margin:0;opacity:0;pointer-events:none}.calculator{display:flex;flex-direction:column;align-items:center;padding:1rem 0;gap:1.5rem}.calc-mode-switcher{display:flex;gap:1rem;background:#f8f9fa;padding:.5rem;border-radius:12px}.mode-btn{padding:.75rem 2rem;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;background:#fff;color:#666}.mode-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.mode-btn.active{background:#667eea;color:#fff;box-shadow:0 4px 12px #667eea4d}.calc-container{width:100%;max-width:400px;background:#1e1e1e;border-radius:16px;padding:1rem;box-shadow:0 4px 20px #0000004d}.calc-container.scientific{max-width:850px;padding:1rem;background:#f8f9fa}.calc-container.programmer{max-width:900px;background:#f8f9fa}.calc-display{background:#fff;border-radius:12px;padding:1.25rem;margin-bottom:1rem;text-align:right;font-size:2.5rem;font-weight:600;color:#1a1a1a;min-height:70px;display:flex;align-items:center;justify-content:flex-end;word-wrap:break-word;word-break:break-all;font-family:Segoe UI,system-ui,sans-serif;box-shadow:inset 0 2px 4px #0000000d}.scientific-display{font-size:2rem;min-height:60px}.sci-horizontal-layout{display:grid;grid-template-columns:320px 1fr;gap:1.25rem}.sci-left-panel{display:flex;flex-direction:column;gap:.75rem}.sci-top-row{display:flex;gap:.5rem}.sci-mode-btn{padding:.5rem .75rem;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;background:#e5e7eb;color:#666;transition:all .2s ease}.sci-mode-btn.active{background:#667eea;color:#fff}.sci-mode-btn:hover{background:#d1d5db}.sci-mode-btn.active:hover{background:#5568d3}.sci-functions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.sci-fn-btn{padding:.7rem .5rem;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;background:#fff;color:#1a1a1a;transition:all .2s ease;box-shadow:0 2px 6px #00000014}.sci-fn-btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px #0000001f}.sci-fn-btn:active{transform:translateY(0)}.sci-fn-btn.toggle{background:#e5e7eb;color:#666}.sci-fn-btn.toggle.active{background:#8b5cf6;color:#fff}.sci-fn-btn.const{background:#fef3c7;color:#92400e}.sci-memory-row{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.sci-mem-btn{padding:.5rem .3rem;border:none;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;background:#e5e7eb;color:#666;transition:all .2s ease}.sci-mem-btn:hover:not(:disabled){background:#d1d5db}.sci-mem-btn.disabled,.sci-mem-btn:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.sci-right-panel{display:flex;flex-direction:column}.sci-numpad{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.sci-num-btn{padding:.9rem .6rem;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;background:#fff;color:#1a1a1a;transition:all .2s ease;box-shadow:0 2px 8px #00000014}.sci-num-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.sci-num-btn:active{transform:translateY(0)}.sci-num-btn.digit{background:#fff}.sci-num-btn.operator{background:#667eea;color:#fff}.sci-num-btn.operator:hover{background:#5568d3}.sci-num-btn.func{background:#ef4444;color:#fff}.sci-num-btn.func:hover{background:#dc2626}.sci-num-btn.equals{background:#10b981;color:#fff}.sci-num-btn.equals:hover{background:#059669}.programmer-layout{display:grid;grid-template-columns:400px 1fr;gap:1.25rem}.base-displays{background:#fff;border-radius:10px;padding:.75rem .5rem;box-shadow:inset 0 2px 4px #0000000d;display:flex;flex-direction:column;justify-content:space-around}.base-row{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:6px;transition:all .2s ease}.base-row.active{background:#e0e7ff}.base-label{width:45px;padding:.35rem .5rem;border:none;border-radius:5px;font-size:.75rem;font-weight:700;cursor:pointer;transition:all .2s ease;background:#667eea;color:#fff}.base-row:not(.active) .base-label{background:#9ca3af}.base-label:hover{transform:scale(1.05)}.base-value{flex:1;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8rem;color:#666;overflow-x:auto;white-space:nowrap}.base-row.active .base-value{color:#667eea;font-weight:600}.programmer-display{background:#fff;font-size:1.75rem;min-height:70px;padding:1rem}.programmer-buttons{display:flex;flex-direction:column;gap:.6rem}.bitwise-ops,.hex-row{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}.number-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.prog-btn{padding:.7rem .5rem;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;background:#fff;color:#1a1a1a;box-shadow:0 2px 8px #00000014}.prog-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.prog-btn:active{transform:translateY(0)}.prog-btn.bitwise{background:#8b5cf6;color:#fff;font-size:.8rem;padding:.6rem .4rem}.prog-btn.bitwise:hover{background:#7c3aed}.prog-btn.hex{background:#f59e0b;color:#fff;font-size:1rem;padding:.65rem .5rem}.prog-btn.hex:hover:not(.disabled){background:#d97706}.prog-btn.hex.disabled{opacity:.4;cursor:not-allowed}.prog-btn.disabled,.prog-btn:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;opacity:.5;box-shadow:none}.prog-btn.disabled:hover,.prog-btn:disabled:hover{transform:none;box-shadow:none}.prog-btn.operator{background:#667eea;color:#fff}.prog-btn.operator:hover{background:#5568d3}.prog-btn.equals{background:#10b981;color:#fff}.prog-btn.equals:hover{background:#059669}.prog-btn.function{background:#ef4444;color:#fff}.prog-btn.function:hover{background:#dc2626}@media(max-width:768px){.calc-mode-switcher{width:100%}.mode-btn{flex:1;padding:.6rem 1rem;font-size:.9rem}.calc-container,.calc-container.scientific{max-width:100%}.calc-container.programmer{max-width:100%;background:#f8f9fa}.calc-display{font-size:1.75rem;min-height:55px;padding:1rem}.scientific-display{font-size:1.5rem}.sci-horizontal-layout{grid-template-columns:1fr;gap:.75rem}.sci-left-panel{order:2}.sci-right-panel{order:1}.sci-functions-grid{gap:.35rem}.sci-fn-btn{padding:.6rem .4rem;font-size:.8rem}.sci-numpad{gap:.4rem}.sci-num-btn{padding:.85rem .5rem;font-size:1rem}.sci-mem-btn{font-size:.65rem;padding:.4rem .2rem}.programmer-layout{grid-template-columns:1fr;gap:.75rem}.base-displays{order:2;padding:.5rem}.programmer-buttons{order:1}.programmer-display{font-size:1.5rem;min-height:55px;padding:.875rem}.base-row{padding:.3rem .4rem}.base-label{width:40px;padding:.3rem .4rem;font-size:.7rem}.base-value{font-size:.75rem}.bitwise-ops,.hex-row{grid-template-columns:repeat(3,1fr)}.prog-btn{padding:.875rem .5rem;font-size:.9rem}.prog-btn.hex{font-size:1rem}}.string-tools{height:100%}.string-tools-layout{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;height:100%}.string-section{display:flex;flex-direction:column;height:100%}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-title{font-size:1.125rem;font-weight:600;color:#1a1a1a;margin:0}.clear-btn,.copy-btn{padding:.5rem 1rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.copy-btn{background:#10b981;color:#fff}.copy-btn:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.copy-btn:disabled{opacity:.5;cursor:not-allowed}.line-numbers{background:#f8f9fa;padding:1rem .5rem;text-align:right;font-family:Consolas,Monaco,Courier New,monospace;font-size:.95rem;line-height:1.6;color:#999;-webkit-user-select:none;user-select:none;border-right:1px solid #e5e7eb;min-width:45px}.string-input,.string-output{flex:1;width:100%;padding:1rem;border:none;font-family:Consolas,Monaco,Courier New,monospace;font-size:.95rem;line-height:1.6;resize:none;background:transparent}.string-input:focus,.string-output:focus{outline:none}.string-output{background:#f8f9fa}.string-operations{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;padding:.5rem;min-width:160px}.operation-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border:none;border-radius:10px;background:#f8f9fa;color:#1a1a1a;cursor:pointer;transition:all .2s ease;font-size:.875rem;font-weight:500;text-align:left;white-space:nowrap}.operation-btn:hover{background:#667eea;color:#fff;transform:translate(4px)}.op-icon{font-size:1.125rem;line-height:1}.op-label{line-height:1}.string-operations::-webkit-scrollbar{width:6px}.string-operations::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.string-operations::-webkit-scrollbar-thumb{background:#667eea;border-radius:3px}.string-operations::-webkit-scrollbar-thumb:hover{background:#5568d3}@media(max-width:768px){.string-tools-layout{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:1rem}.string-operations{flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:.5rem 0}.string-operations::-webkit-scrollbar{height:6px}.operation-btn{flex-shrink:0}.string-input,.string-output{min-height:200px}}.json-validator{height:100%}.json-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;height:100%}.json-section{display:flex;flex-direction:column;height:100%}.json-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.json-title{font-size:1.125rem;font-weight:600;color:#1a1a1a;margin:0;display:flex;align-items:center;gap:.5rem}.status-icon{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700}.status-icon.valid{background:#10b981;color:#fff}.status-icon.error{background:#ef4444;color:#fff}.json-actions{display:flex;gap:.5rem;flex-wrap:wrap}.json-btn{padding:.5rem .875rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.sample-btn{background:#8b5cf6;color:#fff}.sample-btn:hover{background:#7c3aed;transform:translateY(-1px)}.format-btn{background:#667eea;color:#fff}.format-btn:hover{background:#5568d3;transform:translateY(-1px)}.minify-btn{background:#f59e0b;color:#fff}.minify-btn:hover{background:#d97706;transform:translateY(-1px)}.clear-btn{background:#ef4444;color:#fff}.clear-btn:hover{background:#dc2626;transform:translateY(-1px)}.json-copy-btn{background:#10b981;color:#fff}.json-copy-btn:hover{background:#059669;transform:translateY(-1px)}.textarea-with-lines{flex:1;display:flex;border:2px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff;transition:border-color .2s ease}.textarea-with-lines:focus-within{border-color:#667eea}.line-numbers{background:#f8f9fa;padding:1rem .75rem;text-align:right;font-family:Consolas,Monaco,Courier New,monospace;font-size:.95rem;line-height:1.6;color:#999;-webkit-user-select:none;user-select:none;border-right:1px solid #e5e7eb;min-width:50px;max-height:600px;overflow-y:auto}.line-number{height:1.6em;font-weight:500}.json-input,.json-output{flex:1;width:100%;padding:1rem;border:none;font-family:Consolas,Monaco,Courier New,monospace;font-size:.95rem;line-height:1.6;resize:none;background:transparent}.json-input:focus,.json-output:focus{outline:none}.json-output{background:#f8f9fa}.json-output.valid{background:#f0fdf4}.textarea-with-lines:has(.json-output.valid){border-color:#10b981}.json-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fef2f2;border:2px solid #fecaca;border-radius:12px;padding:2rem;text-align:center}.error-icon-large{font-size:3rem;margin-bottom:1rem}.error-title{font-size:1.25rem;font-weight:600;color:#dc2626;margin-bottom:.75rem}.error-details{font-family:Consolas,Monaco,Courier New,monospace;font-size:.875rem;color:#991b1b;background:#fff;padding:1rem;border-radius:8px;max-width:100%;word-wrap:break-word}.json-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #d1d5db;border-radius:12px;color:#9ca3af}.placeholder-icon{font-size:4rem;font-weight:300;margin-bottom:1rem;opacity:.5}.placeholder-text{font-size:1rem}.line-numbers{overflow-y:hidden}@media(max-width:768px){.json-layout{grid-template-columns:1fr;gap:1rem}.json-header{flex-direction:column;align-items:flex-start}.json-actions{width:100%;justify-content:flex-start}.json-btn{padding:.4rem .75rem;font-size:.8rem}.textarea-with-lines{min-height:250px}.line-numbers{padding:1rem .5rem;min-width:40px;font-size:.875rem}.json-input,.json-output{font-size:.875rem}.json-error{min-height:250px}.placeholder-icon{font-size:3rem}}.regex-tester{width:100%;height:100%;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;background:#f8f9fa;border-radius:12px;overflow-y:auto}.regex-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.regex-title{font-size:1.5rem;font-weight:700;color:#1a1a1a;margin:0}.regex-clear-btn{padding:.5rem 1rem;border:none;border-radius:8px;background:#ef4444;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.regex-clear-btn:hover{background:#dc2626;transform:translateY(-2px)}.regex-pattern-section{background:#fff;padding:1.25rem;border-radius:10px;box-shadow:0 2px 8px #00000014}.pattern-input-group{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.pattern-delimiter{font-size:1.5rem;font-weight:700;color:#667eea;font-family:Consolas,Monaco,monospace}.pattern-input{flex:1;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:1rem;transition:border-color .2s ease}.pattern-input:focus{outline:none;border-color:#667eea}.flags-group{display:flex;gap:.25rem}.flag-btn{width:32px;height:32px;border:2px solid #e5e7eb;border-radius:6px;background:#fff;color:#6b7280;font-family:Consolas,Monaco,monospace;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s ease}.flag-btn:hover{border-color:#667eea}.flag-btn.active{background:#667eea;color:#fff;border-color:#667eea}.regex-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fef2f2;border-left:4px solid #ef4444;border-radius:6px}.error-icon{font-size:1.2rem}.error-text{color:#dc2626;font-size:.9rem;font-family:Consolas,Monaco,monospace}.regex-success{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#f0fdf4;border-left:4px solid #10b981;border-radius:6px}.success-icon{color:#10b981;font-size:1.2rem;font-weight:700}.success-text{color:#059669;font-size:.9rem;font-weight:600}.regex-examples{background:#fff;padding:1rem;border-radius:10px;box-shadow:0 2px 8px #00000014}.examples-label{font-size:.85rem;font-weight:600;color:#6b7280;margin-bottom:.5rem}.examples-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.example-btn{padding:.4rem .75rem;border:2px solid #e5e7eb;border-radius:6px;background:#fff;color:#4b5563;font-size:.85rem;cursor:pointer;transition:all .2s ease}.example-btn:hover{border-color:#667eea;color:#667eea;transform:translateY(-2px)}.regex-content{display:grid;grid-template-columns:1fr 1fr;gap:1rem;flex:1}.regex-section{background:#fff;padding:1rem;border-radius:10px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;min-height:400px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:2px solid #f3f4f6}.section-title{font-size:1rem;font-weight:600;color:#1a1a1a;margin:0}.section-info{font-size:.8rem;color:#9ca3af}.section-actions{display:flex;gap:.5rem}.toggle-replace-btn{padding:.4rem .75rem;border:2px solid #e5e7eb;border-radius:6px;background:#fff;color:#4b5563;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.toggle-replace-btn:hover{border-color:#667eea;color:#667eea}.toggle-replace-btn.active{background:#667eea;color:#fff;border-color:#667eea}.textarea-with-lines{flex:1;display:flex;border:2px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}.line-numbers{background:#f8f9fa;padding:.75rem .5rem;text-align:right;font-family:Consolas,Monaco,Courier New,monospace;font-size:.85rem;line-height:1.6;color:#9ca3af;-webkit-user-select:none;user-select:none;border-right:1px solid #e5e7eb;min-width:45px}.line-number{height:1.6em}.regex-textarea{flex:1;padding:.75rem;border:none;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.6;resize:none;background:transparent}.regex-textarea:focus{outline:none}.highlighted-text{flex:1;padding:.75rem;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;overflow-y:auto;background:#f8f9fa;border-radius:8px}.match-highlight{background:#fef3c7;border-bottom:2px solid #f59e0b;padding:2px 4px;border-radius:3px;font-weight:600;color:#92400e}.matches-list{margin-top:.75rem;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.match-item{display:flex;gap:.75rem;padding:.75rem;background:#f8f9fa;border-radius:8px;border-left:4px solid #667eea}.match-index{font-size:.75rem;font-weight:700;color:#667eea;min-width:30px}.match-details{flex:1;display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.match-text code,.match-position,.match-groups{color:#4b5563}.match-text code{background:#fff;padding:2px 6px;border-radius:4px;font-family:Consolas,Monaco,monospace;color:#667eea;border:1px solid #e5e7eb}.capture-group{display:inline-block;margin-left:.5rem;margin-right:.5rem}.capture-group code{background:#fef3c7;padding:2px 6px;border-radius:4px;font-family:Consolas,Monaco,monospace;color:#92400e;border:1px solid #fbbf24}.replace-section{background:#fff;padding:1.25rem;border-radius:10px;box-shadow:0 2px 8px #00000014}.replace-input-group{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.replace-label{font-size:.9rem;font-weight:600;color:#4b5563;min-width:70px}.replace-input{flex:1;padding:.65rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;transition:border-color .2s ease}.replace-input:focus{outline:none;border-color:#667eea}.replace-result{margin-top:1rem}.copy-result-btn{padding:.4rem .75rem;border:2px solid #10b981;border-radius:6px;background:#fff;color:#10b981;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.copy-result-btn:hover{background:#10b981;color:#fff}.replace-output{margin-top:.75rem;padding:1rem;background:#f0fdf4;border:2px solid #d1fae5;border-radius:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}@media(max-width:1024px){.regex-content{grid-template-columns:1fr}.examples-buttons{gap:.4rem}.example-btn{font-size:.8rem;padding:.35rem .6rem}}@media(max-width:768px){.regex-tester{padding:1rem}.pattern-input-group{flex-wrap:wrap}.flags-group{width:100%;justify-content:flex-start}.regex-section{min-height:300px}}.shell-translate{display:flex;flex-direction:column;height:100%;background:#f8f9fa;border-radius:12px;overflow:hidden}.config-error{display:flex;gap:1rem;align-items:flex-start;padding:1rem 1.5rem;background:#fef2f2;border-bottom:3px solid #ef4444;color:#991b1b}.config-error .error-icon{font-size:1.5rem;flex-shrink:0}.config-error .error-content{flex:1;font-size:.9rem;line-height:1.6}.config-error code{background:#fee2e2;padding:.2rem .4rem;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:.85rem}.config-error pre{margin-top:.5rem;padding:.75rem;background:#fee2e2;border-radius:6px;border:1px solid #fca5a5;font-family:Consolas,Monaco,monospace;font-size:.85rem;overflow-x:auto}.error-hint{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #fca5a5}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #0000001a}.header-title{display:flex;flex-direction:column;gap:.25rem}.title{font-size:1.25rem;font-weight:700;margin:0}.subtitle{font-size:.75rem;font-weight:400;opacity:.7;margin-left:.5rem}.clear-chat-btn{padding:.5rem 1rem;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:#ffffff1a;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.clear-chat-btn:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-2px)}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.message{display:flex;gap:1rem;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse}.message-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;background:#fff;box-shadow:0 2px 8px #0000001a}.message.user .message-avatar{background:linear-gradient(135deg,#667eea,#764ba2)}.message.assistant .message-avatar{background:linear-gradient(135deg,#f093fb,#f5576c)}.message-content{flex:1;max-width:75%;display:flex;flex-direction:column;gap:.5rem}.message.user .message-content{align-items:flex-end}.message-header{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:#6b7280}.message.user .message-header{flex-direction:row-reverse}.message-role{font-weight:600;color:#4b5563}.message-time{font-size:.75rem;color:#9ca3af}.message-body{background:#fff;color:#1a1a1a;border-radius:12px;padding:1rem 1.25rem;box-shadow:0 2px 8px #00000014}.message.user .message-body{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.text-content p{margin:.25rem 0;line-height:1.6;color:#374151}.message.user .text-content p{color:#fff}.text-content strong{font-weight:700;color:#1a1a1a}.message.user .text-content strong{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.text-content .inline-code{background:#f3f4f6;padding:.15rem .4rem;border-radius:4px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em;color:#667eea;border:1px solid #e5e7eb}.message.user .text-content .inline-code{background:#fff3;color:#fff;border-color:#ffffff4d}.code-block{margin:.75rem 0;border-radius:8px;overflow:hidden;background:#1e293b}.code-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:#0f172a;border-bottom:1px solid #334155}.code-label{font-size:.8rem;color:#94a3b8;font-weight:600}.code-copy-btn{padding:.25rem .75rem;border:1px solid #475569;border-radius:4px;background:#1e293b;color:#94a3b8;font-size:.75rem;cursor:pointer;transition:all .2s ease}.code-copy-btn:hover{background:#334155;color:#e2e8f0}.code-content{margin:0;padding:1rem;overflow-x:auto}.code-content code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.5;color:#e2e8f0}.typing-indicator{display:inline-flex;gap:.35rem;padding:.5rem 0;margin-left:.5rem;vertical-align:middle}.typing-indicator.inline{display:inline-flex;margin-left:.25rem}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:#667eea;animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.chat-input-area{padding:1rem 1.5rem;background:#fff;border-top:1px solid #e5e7eb}.input-wrapper{display:flex;gap:.5rem;align-items:center;background:#f8f9fa;border:2px solid #e5e7eb;border-radius:10px;padding:.4rem .6rem;transition:border-color .2s ease}.input-wrapper:focus-within{border-color:#667eea;background:#fff}.chat-input{flex:1;border:none;background:transparent;color:#1a1a1a;font-size:.95rem;line-height:1.5;resize:none;max-height:150px;outline:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.chat-input::placeholder{color:#9ca3af}.send-btn{width:32px;height:32px;border:none;border-radius:6px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:1rem;cursor:pointer;transition:all .2s ease;flex-shrink:0;display:flex;align-items:center;justify-content:center}.send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.send-btn:disabled{opacity:.5;cursor:not-allowed}.input-hint{margin-top:.5rem;font-size:.75rem;color:#9ca3af;text-align:center}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media(max-width:768px){.chat-header{padding:1rem}.title{font-size:1.1rem}.subtitle{font-size:.75rem}.chat-messages{padding:1rem;gap:1rem}.message-content{max-width:85%}.message-avatar{width:36px;height:36px;font-size:1.3rem}.chat-input-area{padding:.75rem 1rem}.code-content code{font-size:.85rem}}.ip-lookup{display:flex;flex-direction:column;gap:1.5rem;max-width:800px;margin:0 auto}.ip-lookup-header{display:flex;align-items:baseline;gap:1rem}.ip-lookup-header .title{font-size:1.25rem;font-weight:600;margin:0;color:#1a1a1a}.ip-lookup-header .subtitle{font-size:.85rem;color:#666}.ip-lookup-content{display:flex;flex-direction:column;gap:1.25rem}.ip-input-section{display:flex;flex-direction:column;gap:.75rem}.ip-form{display:flex;gap:.75rem}.ip-input{flex:1;padding:.875rem 1rem;border:2px solid #e5e7eb;border-radius:10px;font-size:1rem;transition:all .2s ease;background:#fff}.ip-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.ip-input:disabled{background:#f3f4f6;cursor:not-allowed}.ip-actions{display:flex;gap:.75rem}.ip-btn{padding:.75rem 1.25rem;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.ip-btn:disabled{opacity:.6;cursor:not-allowed}.ip-btn.query{background:#667eea;color:#fff}.ip-btn.query:hover:not(:disabled){background:#5568d3}.ip-btn.my-ip{background:#10b981;color:#fff}.ip-btn.my-ip:hover:not(:disabled){background:#059669}.ip-btn.clear{background:#e5e7eb;color:#666}.ip-btn.clear:hover:not(:disabled){background:#d1d5db}.my-ip-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#e0f2fe;color:#0369a1;border-radius:6px;font-size:.9rem;width:fit-content}.ip-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626}.ip-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:#666}.loading-spinner{width:24px;height:24px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.ip-result{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 12px #00000014}.result-header{display:flex;align-items:center;gap:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb;margin-bottom:1rem}.country-flag{font-size:2.5rem}.result-ip{font-size:1.5rem;font-weight:700;color:#1a1a1a;font-family:Consolas,Monaco,monospace}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.result-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:#f8f9fa;border-radius:8px}.result-item.full-width{grid-column:span 2}.result-item .label{font-size:.8rem;color:#666}.result-item .value{font-size:.95rem;font-weight:500;color:#1a1a1a;word-break:break-all}.map-link{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.view-map-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#f0fdf4;color:#15803d;border-radius:8px;text-decoration:none;font-weight:500;transition:all .2s ease}.view-map-btn:hover{background:#dcfce7}.ip-examples{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:#f8f9fa;border-radius:10px}.examples-title{font-size:.85rem;color:#666;font-weight:500}.examples-list{display:flex;flex-wrap:wrap;gap:.5rem}.example-btn{padding:.5rem 1rem;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font-size:.85rem;color:#1a1a1a;cursor:pointer;transition:all .2s ease}.example-btn:hover{background:#667eea;color:#fff;border-color:#667eea}@media(max-width:768px){.ip-form,.ip-actions{flex-direction:column}.ip-btn{justify-content:center}.result-grid{grid-template-columns:1fr}.result-item.full-width{grid-column:span 1}.examples-list{flex-direction:column}.example-btn{text-align:center}}@media(prefers-color-scheme:dark){.ip-lookup-header .title{color:#f3f4f6}.ip-lookup-header .subtitle{color:#9ca3af}.ip-input{background:#374151;border-color:#4b5563;color:#f3f4f6}.ip-input:focus{border-color:#818cf8;box-shadow:0 0 0 3px #818cf833}.ip-btn.clear{background:#4b5563;color:#d1d5db}.ip-btn.clear:hover:not(:disabled){background:#6b7280}.my-ip-badge{background:#1e3a5f;color:#7dd3fc}.ip-result{background:#1f2937;box-shadow:0 4px 12px #0000004d}.result-ip{color:#f3f4f6}.result-item{background:#374151}.result-item .label{color:#9ca3af}.result-item .value{color:#f3f4f6}.ip-examples{background:#374151}.examples-title{color:#9ca3af}.example-btn{background:#1f2937;border-color:#4b5563;color:#d1d5db}.example-btn:hover{background:#667eea;color:#fff}.view-map-btn{background:#064e3b;color:#6ee7b7}.view-map-btn:hover{background:#065f46}.map-link{border-top-color:#4b5563}.result-header{border-bottom-color:#4b5563}}.image-tools{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;height:100%}.image-header{margin-bottom:1.5rem}.image-title{font-size:2rem;font-weight:600;color:#fff;margin:0}.image-sub-tabs{display:flex;gap:.75rem;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:.5rem}.sub-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:12px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s ease;white-space:nowrap;border:2px solid transparent}.sub-tab:hover{background:#ffffff40;transform:translateY(-2px)}.sub-tab.active{background:#fffffff2;color:#667eea;font-weight:600;border-color:#ffffff4d;box-shadow:0 4px 12px #00000026}.sub-tab-icon{font-size:1.125rem;line-height:1}.sub-tab-label{line-height:1}.image-content{flex:1;background:#fffffff2;border-radius:24px;padding:2rem;box-shadow:0 8px 32px #0000001a;overflow:auto}.image-sub-tabs::-webkit-scrollbar{height:4px}.image-sub-tabs::-webkit-scrollbar-track{background:#ffffff1a;border-radius:2px}.image-sub-tabs::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:2px}.image-sub-tabs::-webkit-scrollbar-thumb:hover{background:#ffffff80}@media(prefers-color-scheme:light){.image-title{color:#1a1a1a}.sub-tab{background:#0000000d;color:#666}.sub-tab:hover{background:#0000001a;color:#1a1a1a}.sub-tab.active{background:#667eea;color:#fff;border-color:#5568d3}.image-sub-tabs::-webkit-scrollbar-track{background:#0000000d}.image-sub-tabs::-webkit-scrollbar-thumb{background:#0003}.image-sub-tabs::-webkit-scrollbar-thumb:hover{background:#0000004d}}@media(max-width:768px){.image-title{font-size:1.5rem}.image-sub-tabs{gap:.5rem}.sub-tab{padding:.6rem 1.25rem;font-size:.875rem}.sub-tab-icon{font-size:1rem}.image-content{padding:1.5rem}}.image-top{transition:all .3s ease;overflow:hidden}.image-top.hidden{height:0;margin:0;opacity:0;pointer-events:none}.collapse-toggle{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.5rem;margin-bottom:.75rem;border:none;border-radius:8px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;font-size:.85rem;transition:all .2s ease}.collapse-toggle:hover{background:#ffffff40}.collapse-icon{font-size:.7rem;transition:transform .3s ease}.collapse-label{font-weight:500}@media(prefers-color-scheme:light){.collapse-toggle{background:#00000014;color:#666}.collapse-toggle:hover{background:#0000001f;color:#1a1a1a}}.image-crop{display:flex;flex-direction:column;gap:2rem}.crop-controls{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;background:#f8f9fa;border-radius:12px;border:2px solid #e5e7eb}.control-group{display:flex;flex-direction:column;gap:.75rem}.control-label{font-size:.95rem;font-weight:600;color:#374151}.aspect-ratio-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.aspect-btn{padding:.5rem 1rem;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.aspect-btn:hover{border-color:#667eea;color:#667eea}.aspect-btn.active{background:#667eea;color:#fff;border-color:#667eea}.transform-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.transform-btn{padding:.5rem 1rem;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.transform-btn:hover{border-color:#667eea;background:#f0f4ff;color:#667eea}.transform-btn.active{background:#667eea;color:#fff;border-color:#667eea}.image-preview-container{position:relative;width:100%;min-height:400px;max-height:600px;border-radius:12px;overflow:hidden;background:#f3f4f6;border:2px solid #e5e7eb;display:flex;align-items:center;justify-content:center;padding:20px}.image-preview-wrapper{position:relative;display:inline-block}.preview-image{max-width:100%;max-height:560px;width:auto;height:auto;object-fit:contain;display:block;transition:transform .3s ease}.image-preview-container.has-image:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:2;pointer-events:none}.crop-overlay{position:absolute;border:2px solid #667eea;background:#667eea1a;cursor:move;z-index:3;box-shadow:0 0 0 9999px #00000080}.crop-box{position:relative;width:100%;height:100%}.crop-handle{position:absolute;width:16px;height:16px;background:#667eea;border:2px solid white;border-radius:50%;z-index:11}.crop-handle-tl{top:-8px;left:-8px;cursor:nwse-resize}.crop-handle-tr{top:-8px;right:-8px;cursor:nesw-resize}.crop-handle-bl{bottom:-8px;left:-8px;cursor:nesw-resize}.crop-handle-br{bottom:-8px;right:-8px;cursor:nwse-resize}.preview-actions{display:flex;justify-content:center;gap:1rem}@media(max-width:768px){.tool-title{font-size:1.5rem}.drop-zone{padding:2rem 1rem}.crop-controls{padding:1rem}.aspect-ratio-buttons,.transform-buttons{flex-direction:column}.aspect-btn,.transform-btn{width:100%}.preview-actions{flex-direction:column}.action-btn{width:100%}.tool-info{flex-direction:column;gap:.5rem}}.remove-background{display:flex;flex-direction:column;gap:2rem}.action-btn:disabled{opacity:.6;cursor:not-allowed}.processing-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;color:#667eea}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.processing-indicator p{margin:0;font-size:.95rem;font-weight:500;color:#374151}.processing-hint{font-size:.875rem!important;color:#9ca3af!important;font-weight:400!important}.error-message{display:flex;align-items:center;gap:.5rem;padding:1rem;background:#fef2f2;border:2px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.95rem}.error-icon{font-size:1.25rem}.remove-watermark{display:flex;flex-direction:column;gap:2rem}.rw-drop-zone{border:2px dashed #cbd5e1;border-radius:16px;padding:3rem;text-align:center;background:#f8f9fa;transition:all .3s ease;cursor:pointer}.rw-drop-zone:hover{border-color:#667eea;background:#f0f4ff}.rw-drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.rw-image-comparison{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.rw-comparison-item{display:flex;flex-direction:column;gap:.75rem;min-width:0}.rw-image-wrapper{width:100%;height:500px;border-radius:12px;background:#f3f4f6;border:2px solid #e5e7eb;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1rem}.rw-content-wrap{position:relative;width:fit-content;height:fit-content;max-width:100%;max-height:100%;line-height:0;box-shadow:0 4px 6px -1px #0000001a}.rw-content-wrap img{display:block;max-width:100%;max-height:460px;width:auto;height:auto;object-fit:contain}.rw-canvas-wrapper{position:relative;line-height:0}.rw-drawing-canvas{position:absolute;top:0;left:0;width:100%;height:100%;cursor:none;touch-action:none;z-index:10}.brush-cursor{position:absolute;pointer-events:none;border:2px solid rgba(255,255,255,.8);background-color:#f003;box-shadow:0 0 2px #000c,inset 0 0 2px #00000080;border-radius:50%;transform:translate(-50%,-50%);z-index:20;display:none}.rw-content-wrap:hover .brush-cursor{display:block}.toolbar{display:flex;justify-content:center;align-items:center;gap:1.5rem;padding:.75rem;background:#f1f5f9;border-radius:8px}.tool-control{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#4b5563}.tool-control input[type=range]{width:120px;cursor:pointer}.action-btn.small{padding:.4rem 1rem;font-size:.85rem}.loading-tag{font-size:.8rem;color:#f59e0b;margin-left:.5rem;font-weight:400}.processing-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666;gap:1rem}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.compress-image{display:flex;flex-direction:column;gap:2rem}.tool-header{text-align:center;margin-bottom:1rem}.tool-title{font-size:1.75rem;font-weight:600;color:#1a1a1a;margin:0 0 .5rem}.tool-description{color:#666;font-size:.95rem;margin:0}.upload-area{min-height:400px}.drop-zone{border:2px dashed #cbd5e1;border-radius:16px;padding:3rem;text-align:center;background:#f8f9fa;transition:all .3s ease;cursor:pointer}.drop-zone:hover{border-color:#667eea;background:#f0f4ff}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-icon{font-size:3rem}.upload-text{font-size:1.125rem;font-weight:500;color:#374151;margin:0}.upload-hint{font-size:.875rem;color:#9ca3af;margin:0}.file-input{display:none}.upload-btn{padding:.75rem 2rem;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.upload-btn:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.preview-container{display:flex;flex-direction:column;gap:1.5rem}.compression-controls{background:#f8f9fa;padding:1.5rem;border-radius:12px;border:2px solid #e5e7eb}.control-item{display:flex;flex-direction:column;gap:.75rem}.control-label{font-size:1rem;font-weight:600;color:#374151}.quality-slider{width:100%;height:8px;border-radius:4px;background:#e5e7eb;outline:none;-webkit-appearance:none}.quality-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#667eea;cursor:pointer;transition:all .2s ease}.quality-slider::-webkit-slider-thumb:hover{background:#5568d3;transform:scale(1.1)}.quality-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#667eea;cursor:pointer;border:none;transition:all .2s ease}.quality-slider::-moz-range-thumb:hover{background:#5568d3;transform:scale(1.1)}.slider-labels{display:flex;justify-content:space-between;font-size:.875rem;color:#9ca3af}.format-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.format-btn{padding:.5rem 1rem;border:2px solid #e5e7eb;background:#fff;color:#374151;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.format-btn:hover{border-color:#667eea;background:#f0f4ff}.format-btn.active{border-color:#667eea;background:#667eea;color:#fff}.format-hint{font-size:.75rem;color:#f59e0b;margin:.25rem 0 0;font-weight:500}.target-size-input-wrapper{display:flex;align-items:center;gap:.5rem}.target-size-input{flex:1;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;font-weight:500;color:#374151;transition:all .2s ease}.target-size-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.target-size-input:disabled{background:#f3f4f6;cursor:not-allowed}.input-unit{font-size:1rem;font-weight:500;color:#374151}.size-hint{display:flex;justify-content:space-between;font-size:.875rem;color:#6b7280;margin-top:.5rem}.target-hint{color:#667eea;font-weight:500}.error-message{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem}.error-icon{font-size:1rem}.image-comparison{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.comparison-item{display:flex;flex-direction:column;gap:.75rem}.comparison-label{font-size:1rem;font-weight:600;color:#374151;margin:0;text-align:center}.image-wrapper{width:100%;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#f3f4f6;border:2px solid #e5e7eb;display:flex;align-items:center;justify-content:center}.image-wrapper img{width:100%;height:100%;object-fit:contain}.size-info{text-align:center;font-size:.875rem;color:#374151;padding:.5rem;background:#f8f9fa;border-radius:8px}.size-label{color:#666}.size-value{font-weight:600;color:#1a1a1a}.size-ratio{color:#10b981;font-weight:600;margin-left:.5rem}.size-success{color:#10b981;font-weight:600;margin-left:.5rem;font-size:.875rem}.size-warning{color:#f59e0b;font-weight:600;margin-left:.5rem;font-size:.875rem}.size-info-text{color:#6b7280;margin-left:.5rem;font-size:.875rem}.quality-info{margin-top:.25rem;font-size:.75rem;color:#9ca3af}.size-placeholder{color:#9ca3af}.placeholder-result{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:#9ca3af;padding:2rem}.placeholder-icon{font-size:2rem}.placeholder-result p{margin:0;font-size:.875rem}.preview-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.action-btn{padding:.75rem 2rem;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.action-btn.primary{background:#667eea;color:#fff}.action-btn.primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.action-btn.secondary{background:#e5e7eb;color:#374151}.action-btn.secondary:hover{background:#d1d5db}.action-btn.success{background:#10b981;color:#fff}.action-btn.success:hover{background:#059669;transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.action-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.action-btn:disabled:hover{transform:none;box-shadow:none}.tool-info{display:flex;justify-content:center;gap:2rem;padding:1rem;background:#f8f9fa;border-radius:12px;flex-wrap:wrap}.info-item{display:flex;gap:.5rem}.info-label{color:#666;font-weight:500}.info-value{color:#1a1a1a}.info-value.highlight{color:#10b981;font-weight:600}@media(max-width:768px){.tool-title{font-size:1.5rem}.drop-zone{padding:2rem 1rem}.image-comparison{grid-template-columns:1fr}.preview-actions{flex-direction:column}.action-btn{width:100%}.tool-info{flex-direction:column;gap:.5rem}}.weather{max-width:1200px;margin:0 auto}.weather-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.weather-title{font-size:2rem;font-weight:600;color:#fff;margin:0}.location-selector-wrapper{display:flex;align-items:center;gap:.75rem}.mock-data-badge{font-size:.75rem;color:#ff9800;font-weight:500;cursor:help}.location-detected-badge{font-size:.75rem;color:#4caf50;font-weight:500;cursor:help;display:flex;align-items:center;gap:.25rem}.loading{display:flex;justify-content:center;align-items:center;height:300px;font-size:1.5rem;color:#fff}.current-weather{background:linear-gradient(135deg,#fffffff2,#ffffffd9);border-radius:24px;padding:2rem;margin-bottom:2rem;box-shadow:0 8px 32px #0000001a;display:flex;gap:2rem;align-items:center}.current-weather-main{display:flex;align-items:center;gap:1.5rem}.weather-icon{font-size:5rem;line-height:1}.temperature-group{display:flex;flex-direction:column;gap:.5rem}.temperature{font-size:4rem;font-weight:700;color:#1a1a1a;line-height:1}.temperature-range{font-size:1.25rem;color:#666;font-weight:500}.current-weather-details{display:flex;flex-direction:column;gap:.5rem}.weather-condition{font-size:1.5rem;font-weight:500;color:#1a1a1a}.weather-meta{display:flex;gap:2rem;margin-top:1rem}.meta-item{display:flex;align-items:center;gap:.5rem;background:#f5f7fa;padding:.5rem 1rem;border-radius:12px}.meta-icon{font-size:1.25rem}.meta-label{font-size:.875rem;color:#999;font-weight:500}.meta-value{font-size:1rem;color:#1a1a1a;font-weight:600}.forecast-section{background:#fffffff2;border-radius:24px;padding:2rem;box-shadow:0 8px 32px #0000001a}.forecast-title{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin:0 0 1.5rem}.forecast-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.forecast-item{background:linear-gradient(135deg,#f5f7fa,#e8ecf1);border-radius:16px;padding:1rem;text-align:center;transition:transform .2s ease}.forecast-item:hover{transform:translateY(-4px);box-shadow:0 4px 16px #0000001a}.forecast-date{font-size:.875rem;font-weight:500;color:#666;margin-bottom:.5rem}.forecast-date .weekday-text{margin-left:.25rem;color:#999}.forecast-icon{font-size:2.5rem;margin:.5rem 0}.forecast-condition{font-size:.875rem;color:#1a1a1a;margin-bottom:.5rem}.forecast-temp{display:flex;justify-content:center;align-items:baseline;gap:.25rem;font-size:1rem;font-weight:600}.temp-high{color:#e74c3c}.temp-low{color:#3498db}.temp-separator{color:#999}.forecast-details{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(0,0,0,.05)}.forecast-detail-item{font-size:.75rem;color:#666;display:flex;align-items:center;justify-content:center}@media(prefers-color-scheme:light){.weather-title,.loading{color:#1a1a1a}}@media(max-width:768px){.weather-header{flex-direction:column;align-items:flex-start}.weather-title{font-size:1.5rem}.current-weather{flex-direction:column;align-items:flex-start;padding:1.5rem}.temperature{font-size:3rem}.weather-icon{font-size:4rem}.weather-meta{flex-wrap:wrap;gap:.75rem}.meta-item{padding:.375rem .75rem;font-size:.875rem}.forecast-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}.forecast-item{padding:.75rem}.forecast-detail-item{font-size:.7rem}}.hourly-forecast{background:#fffffff2;border-radius:24px;padding:2rem;margin-bottom:2rem;box-shadow:0 8px 32px #0000001a}.hourly-title{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin:0 0 1.5rem}.hourly-chart-container{display:flex;flex-direction:column;gap:1rem}.chart-legend{display:flex;gap:2rem;justify-content:center;padding:.75rem;background:#f8f9fa;border-radius:12px}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:#666}.legend-line{width:30px;height:3px;border-radius:2px}.legend-line.temp-line{background:linear-gradient(to right,#e74c3c,#f39c12)}.legend-line.rain-line{background:#3498db;background-image:repeating-linear-gradient(90deg,#3498db,#3498db 5px,transparent 5px,transparent 10px)}.chart-wrapper{width:100%;overflow-x:auto;overflow-y:hidden;border-radius:12px;background:#fff;padding:.5rem}.combined-chart{display:block;height:auto;min-height:280px;background:#fff}.chart-wrapper::-webkit-scrollbar{height:8px}.chart-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.chart-wrapper::-webkit-scrollbar-thumb{background:#667eea;border-radius:4px}.chart-wrapper::-webkit-scrollbar-thumb:hover{background:#5568d3}.chart-wrapper{scrollbar-width:thin;scrollbar-color:#667eea #f1f1f1}@media(max-width:768px){.hourly-forecast{padding:1.5rem}.hourly-title{font-size:1.25rem}.chart-legend{gap:1rem;font-size:.75rem}.legend-line{width:20px;height:2px}.combined-chart{min-height:220px}.chart-wrapper::-webkit-scrollbar{height:6px}}.city-selector{position:relative;display:flex;align-items:center;gap:.5rem;background-color:#ffffffe6;padding:.5rem 1rem;border-radius:24px;box-shadow:0 2px 8px #0000001a}.city-selector label{font-size:1.25rem;cursor:pointer}.city-selector input{border:none;outline:none;background:transparent;font-size:1rem;width:200px;color:#1a1a1a}.city-selector input::placeholder{color:#999}.dropdown-button{border:none;background:transparent;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;color:#666;transition:color .2s ease;outline:none}.dropdown-button:hover{color:#1a1a1a}.dropdown-button:active{transform:scale(.95)}.city-dropdown{position:absolute;top:calc(100% + .5rem);left:0;width:360px;max-width:calc(100vw - 2rem);background-color:#fff;border-radius:12px;box-shadow:0 4px 16px #00000026;max-height:400px;overflow-y:auto;z-index:1000;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.city-section{padding:.75rem 0}.city-section+.city-section{border-top:1px solid #f0f0f0}.city-section-title{font-size:.875rem;font-weight:600;color:#666;padding:.5rem 1rem;margin-bottom:.25rem}.city-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;padding:0 .75rem}.city-item{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border-radius:6px;cursor:pointer;transition:background-color .15s ease;font-size:.875rem;white-space:nowrap;overflow:hidden}.city-item:hover,.city-item.selected{background-color:#f0f7ff}.city-item.selected{background-color:#e3f2fd}.city-name{color:#1a1a1a;font-weight:500;white-space:nowrap;flex-shrink:0;min-width:fit-content}.city-pinyin{color:#999;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.city-dropdown::-webkit-scrollbar{width:6px}.city-dropdown::-webkit-scrollbar-track{background:transparent}.city-dropdown::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.city-dropdown::-webkit-scrollbar-thumb:hover{background-color:#0000004d}@media(max-width:768px){.city-selector input{width:150px}.city-list{grid-template-columns:repeat(2,1fr)}.city-dropdown{max-height:300px}}.calendar{max-width:1000px;margin:0 auto}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.calendar-title{font-size:2rem;font-weight:600;color:#fff;margin:0}.calendar-controls{display:flex;gap:.5rem}.calendar-btn{padding:.5rem 1rem;border:none;border-radius:8px;background-color:#fff3;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease}.calendar-btn:hover{background-color:#ffffff4d;transform:translateY(-1px)}.calendar-btn.today-btn{background-color:#ffffffe6;color:#667eea}.calendar-btn.today-btn:hover{background-color:#fff}.calendar-legend{display:flex;gap:1.5rem;margin-bottom:1.5rem;padding:1rem;background-color:#ffffff1a;border-radius:12px}.legend-item{display:flex;align-items:center;gap:.5rem;color:#fff;font-size:.875rem}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-dot.holiday{background-color:#e74c3c}.legend-dot.workday{background-color:#f39c12}.calendar-grid{background-color:#fffffff2;border-radius:16px;padding:1.5rem;display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;box-shadow:0 8px 32px #0000001a}.calendar-weekday{text-align:center;font-weight:600;color:#1a1a1a;padding:.75rem;font-size:.875rem}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem;border-radius:8px;position:relative;transition:all .2s ease;background-color:#f8f9fa;cursor:pointer}.calendar-day:not(.other-month):hover{background-color:#e8ecf1;transform:scale(1.05)}.calendar-day.selected{background-color:#93c5fd;color:#1e40af;transform:scale(1.08);box-shadow:0 4px 12px #93c5fd4d}.calendar-day.selected .day-number{color:#1e40af;font-weight:600}.calendar-day.selected .day-lunar{color:#3b82f6}.calendar-day.other-month{opacity:.3}.calendar-day.today{background-color:#667eea;color:#fff;font-weight:600}.calendar-day.today .day-number{color:#fff}.calendar-day.today .day-lunar{color:#fffc}.calendar-day.today.selected{background-color:#667eea;color:#fff}.calendar-day.today.selected .day-number{color:#fff}.calendar-day.today.selected .day-lunar{color:#fffc}.calendar-day.holiday{background-color:#ffe5e5}.calendar-day.holiday .day-number{color:#e74c3c;font-weight:700}.calendar-day.holiday .day-lunar{color:#e74c3c;opacity:.7}.calendar-day.workday{background-color:#fff4e5}.calendar-day.workday .day-number{color:#f39c12;font-weight:700}.calendar-day.workday .day-lunar{color:#f39c12;opacity:.7}.day-number{font-size:1.125rem;color:#1a1a1a;font-weight:600}.day-lunar{font-size:.7rem;color:#999;margin-top:.125rem;text-align:center}.calendar-day .day-lunar.jieqi{color:#92400e;font-weight:700;background:linear-gradient(135deg,#fbbf24,#fcd34d);padding:.125rem .5rem;border-radius:8px;box-shadow:0 2px 4px #f59e0b33}.day-label{font-size:.625rem;margin-top:.25rem;font-weight:600;text-align:center;padding:.125rem .375rem;border-radius:4px}.day-label.holiday-label{color:#fff;background-color:#e74c3c}.day-label.workday-label{color:#fff;background-color:#f39c12}@media(prefers-color-scheme:light){.calendar-title{color:#1a1a1a}.calendar-btn{background-color:#0000001a;color:#1a1a1a}.calendar-btn:hover{background-color:#00000026}.calendar-btn.today-btn{background-color:#667eea;color:#fff}.calendar-btn.today-btn:hover{background-color:#5568d3}.calendar-legend{background-color:#0000000d}.legend-item{color:#1a1a1a}}@media(max-width:768px){.calendar-header{flex-direction:column;align-items:flex-start}.calendar-title{font-size:1.5rem}.calendar-legend{flex-direction:column;gap:.5rem}.calendar-grid{padding:1rem;gap:.25rem}.calendar-weekday{padding:.5rem;font-size:.75rem}.calendar-day{padding:.25rem}.day-number{font-size:.875rem}.day-lunar{font-size:.625rem}.day-label{font-size:.5rem;padding:.1rem .25rem}}.almanac-panel{margin-top:2rem;background:#fffffff2;border-radius:24px;padding:2rem;box-shadow:0 8px 32px #0000001a}.almanac-title{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin:0 0 1.5rem;display:flex;align-items:center;gap:.5rem}.almanac-error{text-align:center;padding:2rem;color:#999;font-size:1rem}.almanac-content{display:flex;flex-direction:column;gap:1.5rem}.date-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:1.5rem;color:#fff}.almanac-date-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.solar-date{font-size:1.5rem;font-weight:700}.lunar-date{font-size:1.25rem;font-weight:500;opacity:.9}.almanac-ganZhi{display:flex;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap}.ganZhi-item{display:flex;align-items:center;font-size:.95rem}.ganZhi-label{opacity:.8;margin-right:.25rem}.ganZhi-value{font-weight:600}.almanac-festivals{display:flex;gap:.5rem;flex-wrap:wrap}.festival-tag{background:#ffffff40;padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.festival-tag.jieqi{background:linear-gradient(135deg,#fbbf24,#fcd34d);color:#92400e;font-weight:700;box-shadow:0 2px 8px #f59e0b4d;border:1px solid rgba(146,64,14,.2)}.yi-ji-section{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.yi-section,.ji-section{background:#f8f9fa;border-radius:12px;padding:1.25rem}.section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.125rem;font-weight:600}.yi-header{color:#27ae60}.ji-header{color:#e74c3c}.section-icon{font-size:1.25rem}.section-content{display:flex;flex-wrap:wrap;gap:.5rem}.almanac-tag{padding:.375rem .75rem;border-radius:8px;font-size:.875rem;font-weight:500;transition:transform .2s ease}.almanac-tag:hover{transform:translateY(-2px)}.yi-tag{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.ji-tag{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.detail-section{background:#f8f9fa;border-radius:12px;padding:1.25rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.detail-item{display:flex;align-items:baseline;font-size:.9rem}.detail-label{color:#666;font-weight:500;margin-right:.5rem;white-space:nowrap}.detail-value{color:#1a1a1a;font-weight:500;flex:1}@media(max-width:768px){.almanac-panel{padding:1.5rem;margin-top:1.5rem}.almanac-title{font-size:1.25rem}.almanac-date-header{flex-direction:column;align-items:flex-start;gap:.5rem}.solar-date{font-size:1.25rem}.lunar-date{font-size:1rem}.almanac-ganZhi{gap:1rem;font-size:.875rem}.yi-ji-section{grid-template-columns:1fr;gap:1rem}.section-header{font-size:1rem}.almanac-tag{font-size:.8rem;padding:.3rem .6rem}.detail-grid{grid-template-columns:1fr;gap:.75rem}.detail-item{font-size:.85rem}}@media(prefers-color-scheme:light){.almanac-panel{background:#fffffff2}}.news{max-width:100%;height:100%;display:flex;flex-direction:column}.news-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.news-title-group{display:flex;flex-direction:column;gap:.25rem}.news-title{font-size:2rem;font-weight:600;color:#fff;margin:0}.news-source{font-size:.875rem;color:#ffffffb3;font-weight:500}.news-controls{display:flex;align-items:center;gap:1rem}.last-refresh{font-size:.875rem;color:#fffc;background:#ffffff1a;padding:.5rem 1rem;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.refresh-btn{padding:.5rem 1.25rem;border:none;border-radius:12px;background:#ffffffe6;color:#667eea;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.refresh-btn:hover:not(:disabled){background:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.news-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;z-index:10}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.news-loading p{color:#fff;font-size:1rem;font-weight:500}.news-content-container{flex:1;position:relative;background:#fff;border-radius:24px;overflow:auto;box-shadow:0 8px 32px #0000001a;min-height:600px}.news-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#fff;border-radius:24px;padding:3rem 2rem;box-shadow:0 8px 32px #0000001a;min-height:400px}.error-icon{font-size:3rem;margin:0}.error-message{font-size:1rem;color:#666;margin:0}.retry-btn{padding:.75rem 2rem;border:none;border-radius:12px;background:#667eea;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s ease;margin-top:1rem}.retry-btn:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}@media(prefers-color-scheme:light){.news-title{color:#1a1a1a}.news-source{color:#666}.last-refresh{background:#0000000d;color:#666}.refresh-btn{background:#667eea;color:#fff}.refresh-btn:hover:not(:disabled){background:#5568d3}.news-loading p{color:#1a1a1a}.loading-spinner{border:4px solid rgba(0,0,0,.1);border-top:4px solid #667eea}}@media(max-width:768px){.news-header{flex-direction:column;align-items:flex-start}.news-title{font-size:1.5rem}.news-controls{width:100%;justify-content:space-between}.last-refresh{font-size:.75rem;padding:.4rem .75rem}.refresh-btn{font-size:.8rem;padding:.4rem 1rem}.news-content-container{min-height:500px}.news-error{min-height:300px;padding:2rem 1rem}.error-icon{font-size:2rem}.error-message{font-size:.875rem}.retry-btn{padding:.6rem 1.5rem;font-size:.9rem}}.moyu-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:20px;box-sizing:border-box}.terminal{width:100%;max-width:900px;height:calc(100vh - 80px);max-height:700px;background:#0d0d0d;border-radius:12px;box-shadow:0 0 0 1px #ffffff1a,0 20px 60px #00000080,0 0 100px #00ff881a;display:flex;flex-direction:column;overflow:hidden;font-family:JetBrains Mono,Fira Code,SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.terminal-header{background:linear-gradient(180deg,#3d3d3d,#2d2d2d);padding:10px 14px;display:flex;align-items:center;border-bottom:1px solid #1a1a1a;flex-shrink:0}.terminal-buttons{display:flex;gap:8px}.terminal-buttons span{width:12px;height:12px;border-radius:50%;cursor:pointer;transition:opacity .2s}.terminal-buttons span:hover{opacity:.8}.btn-close{background:#ff5f56}.btn-minimize{background:#ffbd2e}.btn-maximize{background:#27ca3f}.terminal-title{flex:1;text-align:center;color:#999;font-size:13px;font-weight:500;margin-right:60px}.terminal-body{flex:1;padding:16px;overflow-y:auto;overflow-x:hidden;background:#0d0d0d;-webkit-user-select:text;user-select:text;cursor:text}.terminal-body::-webkit-scrollbar{width:8px}.terminal-body::-webkit-scrollbar-track{background:#1a1a1a}.terminal-body::-webkit-scrollbar-thumb{background:#333;border-radius:4px}.terminal-body::-webkit-scrollbar-thumb:hover{background:#444}.terminal-line{font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word;margin-bottom:2px;-webkit-user-select:text;user-select:text}.terminal-line.input{color:#0f8;font-weight:500}.terminal-line.output{color:#e0e0e0}.terminal-line.system{color:#00bfff}.terminal-line.error{color:#ff6b6b}.terminal-line.help{color:#ffd93d}.terminal-line.info{color:#a8e6cf}.terminal-line.game{color:#e0e0e0}.terminal-line.success{color:#0f8}.terminal-line.warning{color:#ffa502}.terminal-input-line{display:flex;align-items:center;margin-top:4px}.prompt{color:#0f8;font-weight:600;margin-right:4px;white-space:nowrap;font-size:14px}.terminal-input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-family:inherit;font-size:14px;caret-color:#0f8;padding:0}.terminal-input::selection{background:#0f8;color:#0d0d0d}.terminal-input:focus{animation:none}.terminal-line.game-numbers{color:#ff79c6;font-size:16px;font-weight:600;letter-spacing:2px}.terminal-line.game-success{color:#50fa7b;font-weight:600}.terminal-line.game-fail{color:#f55}.terminal-line.ascii{color:#bd93f9;line-height:1.2}@media(max-width:768px){.moyu-container{padding:10px}.terminal{height:calc(100vh - 40px);max-height:none;border-radius:8px}.terminal-body{padding:12px}.terminal-line,.prompt,.terminal-input{font-size:12px}.terminal-title{font-size:11px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.terminal-line{animation:fadeIn .1s ease-out}
