*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;color:var(--color-text);background-color:var(--color-background);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6{margin-bottom:1rem;line-height:1.2}a{color:var(--color-accent);text-decoration:none;transition:all .3s ease}a:hover{opacity:.8}button{padding:.5rem 1rem;border-radius:4px;border:1px solid var(--color-border);background:transparent;color:var(--color-text);cursor:pointer;transition:all .3s ease;font-size:.9rem;font-weight:500;font-family:inherit}button:hover:not(:disabled){background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent)}button:disabled{opacity:.6;cursor:not-allowed}button.primary,.api-key-input button,.project-id-input button,.ollama-url-input button{background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent)}button.primary:hover:not(:disabled),.api-key-input button:hover:not(:disabled),.project-id-input button:hover:not(:disabled),.ollama-url-input button:hover:not(:disabled){background:color-mix(in srgb,var(--color-accent) 90%,black)}input,select,textarea{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-background);color:var(--color-text);font-size:.9rem;font-family:inherit;transition:border-color .2s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent)}input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:color-mix(in srgb,var(--color-accent) 30%,var(--color-border))}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}label{display:block;font-weight:500;color:var(--color-muted);margin-bottom:.25rem;font-size:.9rem}input[type=checkbox],input[type=radio]{width:auto;margin-right:.25rem;accent-color:var(--color-accent)}select{cursor:pointer}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--color-background);color:var(--color-text)}@media (min-width: 992px){.app{background-image:radial-gradient(circle at 15% 15%,var(--color-accent) 0%,transparent 25%),radial-gradient(circle at 85% 85%,var(--color-accent) 0%,transparent 25%);background-attachment:fixed;background-blend-mode:soft-light}}.main{flex:1;padding:2rem 0}.container{max-width:992px;margin:0 auto;width:100%;padding:0 1.5rem}.grid{display:grid;gap:2rem}@media (min-width: 992px){.grid{grid-template-columns:300px 1fr;align-items:start}}.grid__sidebar{display:flex;flex-direction:column;gap:1.5rem}.grid__sidebar section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1.5rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s ease;margin-bottom:0}.grid__sidebar section:hover{border-color:color-mix(in srgb,var(--color-accent) 30%,var(--color-border));box-shadow:0 2px 8px #0000001a}.grid__sidebar section h2{color:var(--color-secondary);font-size:1.25rem;font-weight:500;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.grid__sidebar section h2 svg{color:var(--color-accent);font-size:1rem}.grid__main{display:flex;flex-direction:column;gap:2rem}.grid__main section{margin-bottom:0}.header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:100}.header__content{display:flex;align-items:center;justify-content:space-between}.header__logo{display:flex;align-items:center;gap:1rem;color:var(--color-text)}.header__logo h1{margin:0;font-size:1.25rem;font-weight:500}.header__logo svg{color:var(--color-accent)}.header__actions{display:flex;align-items:center;gap:1rem}.file-uploader{background:transparent;border:1px solid var(--color-border);border-radius:8px;padding:2rem;text-align:center;cursor:pointer;transition:border-color .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;position:relative;isolation:isolate}.file-uploader:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:radial-gradient(var(--color-border) 1px,transparent 1px);background-size:8px 8px;pointer-events:none;transition:opacity .2s ease}.file-uploader:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:radial-gradient(circle 150px at var(--mouse-x) var(--mouse-y),var(--color-accent),transparent 100%);-webkit-mask-image:radial-gradient(var(--color-border) 1px,transparent 1px);mask-image:radial-gradient(var(--color-border) 1px,transparent 1px);-webkit-mask-size:8px 8px;mask-size:8px 8px;pointer-events:none;opacity:0;transition:opacity .2s ease}.file-uploader:hover:after,.file-uploader.active:after{opacity:.4}.file-uploader.active{border-color:var(--color-accent)}.file-uploader svg{color:var(--color-accent);margin-bottom:1rem;position:relative}.file-uploader p{margin-bottom:.5rem;color:var(--color-text);position:relative;font-size:1.28rem;font-weight:700}.file-uploader span{font-size:1rem;color:var(--color-secondary);position:relative;font-weight:600}.api-key-form__status{display:flex;flex-direction:column;gap:.5rem;color:var(--color-secondary)}.api-key-form__status .status-content{display:flex;align-items:center;gap:1rem}.api-key-form__input{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.results{background:var(--color-surface);border-radius:8px;box-shadow:0 4px 6px #0000001a;overflow:hidden}.results--loading{padding:2rem;text-align:center;color:var(--color-secondary)}.results--loading p{font-size:1.1rem;margin-top:1rem;color:var(--color-accent)}.results--loading .loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;margin:0 auto 1rem;animation:spin 1s linear infinite;-webkit-animation:spin 1s linear infinite}.results__section{padding:1.5rem;border-bottom:1px solid var(--color-border)}.results__section:last-child{border-bottom:none}.results__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.results__header h3{display:flex;align-items:center;gap:.5rem;margin:0;color:var(--color-secondary)}.results__content{font-size:1rem;line-height:1.6;color:var(--color-text);white-space:pre-wrap}.results__content code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;background:#1e1e1e;color:#dcdcdc;padding:.15rem .35rem;border-radius:4px}.results__content pre code{display:block;padding:.75rem 1rem;overflow-x:auto}.copy-button{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--color-border);border:none;border-radius:4px;color:var(--color-secondary);cursor:pointer;transition:all .3s ease}.copy-button:hover{background:var(--color-accent);color:var(--color-surface)}@keyframes spin{to{transform:rotate(360deg)}}.summary-section{margin-top:1.5rem;background:var(--color-surface);border-radius:8px;padding:1.5rem;border:1px solid var(--color-border)}.summary-section h3{color:var(--color-secondary);margin-bottom:1rem;font-size:1.1rem}.summary-section .summary-content{color:var(--color-text);line-height:1.6;white-space:pre-wrap}.results__actions{margin-top:1.5rem;display:flex;justify-content:flex-end}.summarize-button{display:flex;align-items:center;gap:.25rem;padding:.5rem 1.5rem;background:var(--color-accent);color:var(--color-surface);border:none;border-radius:4px;cursor:pointer;transition:all .3s ease;font-weight:500}.summarize-button:hover{opacity:.9}.summarize-button svg{animation:sparkle 1.5s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.results__markdown{max-width:100%;overflow:hidden;font-size:.95rem;line-height:1.4;word-break:break-word;overflow-wrap:anywhere}.results__markdown h1,.results__markdown h2,.results__markdown h3,.results__markdown h4,.results__markdown h5,.results__markdown h6{font-weight:600;line-height:1.25;margin:1.1em 0 .5em}.results__markdown p,.results__markdown ul,.results__markdown ol,.results__markdown blockquote,.results__markdown table,.results__markdown pre{margin:0 0 .85em;max-width:100%}.results__markdown ul{list-style:none;padding-left:0;margin-left:0}.results__markdown ul li{list-style:none;position:relative;margin:.25rem 0;padding:.45rem .75rem .45rem .85rem;border-left:3px solid color-mix(in srgb,var(--color-accent) 65%,transparent);background:color-mix(in srgb,var(--color-accent) 6%,transparent);border-radius:0 4px 4px 0;line-height:1.4;transition:background .18s ease,border-color .18s ease}.results__markdown ul li:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-left-color:var(--color-accent)}.results__markdown ul li>ul{margin-top:.4rem;margin-left:.35rem;padding-left:0}.results__markdown ul li>p{margin:0}.results__markdown ol{counter-reset:md-ol;list-style:none;padding-left:0;margin-left:0}.results__markdown ol li{counter-increment:md-ol;position:relative;margin:.35rem 0;padding:.45rem .75rem .45rem 2.4rem;background:color-mix(in srgb,var(--color-accent) 6%,transparent);border-radius:4px;line-height:1.4}.results__markdown ol li:before{content:counter(md-ol) ".";position:absolute;left:.9rem;top:50%;transform:translateY(-50%);font-weight:600;color:var(--color-accent);min-width:1.2rem;text-align:right}.results__markdown ol li:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.results__markdown blockquote{border-left:4px solid var(--color-accent, #4a90e2);padding:.4em .9em;background:#0000000a;margin-left:0}.md-code-block{background:#1e1e1e;color:#ddd;padding:.75rem .9rem;border-radius:6px;overflow-x:auto;max-width:100%;box-sizing:border-box;line-height:1.35;font-size:.85rem}.md-inline-code{background:#1e1e1e;color:#e6e6e6;padding:.15rem .4rem;border-radius:4px;font-size:.85rem}.results__markdown pre code{white-space:pre}.results__markdown table{width:100%;border-collapse:collapse;font-size:.85rem}.md-table-wrapper{width:100%;overflow-x:auto}.results__markdown th,.results__markdown td{border:1px solid rgba(0,0,0,.15);padding:.4rem .55rem;text-align:left;vertical-align:top}.results__markdown tr:nth-child(2n){background:#00000009}.results__markdown a{color:var(--color-accent, #2979ff);text-decoration:none;word-break:break-all}.results__markdown a:hover{text-decoration:underline}.results__plain{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;margin:0;font-family:unset}.language-toggle svg{color:var(--color-accent);margin-bottom:1rem}.language-toggle__select-group{display:flex;flex-direction:column;gap:.25rem}.language-toggle__translate-toggle{margin:1rem 0}.language-toggle__translate-toggle .toggle-switch{display:flex;align-items:center;gap:1rem;cursor:pointer}.language-toggle__translate-toggle .toggle-switch input{display:none}.language-toggle__translate-toggle .toggle-switch input:checked+.toggle-slider{background:var(--color-accent)}.language-toggle__translate-toggle .toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.language-toggle__translate-toggle .toggle-switch .toggle-slider{position:relative;width:44px;height:24px;background:var(--color-border);border-radius:12px;transition:all .3s ease}.language-toggle__translate-toggle .toggle-switch .toggle-slider:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--color-surface);border-radius:50%;transition:all .3s ease}.language-toggle__translate-toggle .toggle-switch .toggle-label{color:var(--color-text);font-size:.875rem}.theme-toggle{background:var(--color-surface);color:var(--color-text);border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);border:1px solid var(--color-border)}.theme-toggle:hover{background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent)}.theme-toggle svg{transition:all .3s ease}.ui-language-toggle{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:20px;height:40px;padding:0 1rem;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1)}.ui-language-toggle:hover{background:var(--color-accent);color:var(--color-text);border-color:var(--color-accent)}.ui-language-toggle:hover svg{color:var(--color-text)}.ui-language-toggle svg{color:var(--color-accent);transition:all .4s cubic-bezier(.4,0,.2,1)}.ui-language-toggle span{font-weight:500;font-size:.875rem}.grid__sidebar>section.output-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1.5rem 0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s ease;padding-bottom:0}.grid__sidebar>section.output-section:hover{border-color:color-mix(in srgb,var(--color-accent) 30%,var(--color-border));box-shadow:0 2px 8px #0000001a}.grid__sidebar>section.output-section h2{color:var(--color-secondary);font-size:1.25rem;font-weight:500;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.grid__sidebar>section.output-section h2 svg{color:var(--color-accent);font-size:1rem}.grid__sidebar>section.output-section h2{padding:0 1.5rem}.output-selector{overflow:hidden}.output-selector__categories{border-bottom:1px solid var(--color-border)}.output-selector__categories .category-button{width:100%;padding:0;display:flex;background:none;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;transition:all .3s ease;color:var(--color-text);text-align:left;position:relative;overflow:hidden}.output-selector__categories .category-button:last-child{border-bottom:none}.output-selector__categories .category-button:not(.active):before{content:"";position:absolute;top:0;left:0;width:0;height:100%;background-image:radial-gradient(var(--color-border) 1px,transparent 1px);background-size:8px 8px;transition:width .7s ease;z-index:0}.output-selector__categories .category-button:not(.active):hover:before{width:100%}.output-selector__categories .category-button.active{background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-right:3px solid var(--color-accent);background-image:radial-gradient(var(--color-border) 1px,transparent 1px);background-size:8px 8px}.output-selector__categories .category-button.active:before{display:none}.output-selector__categories .category-button.active .category-button__icon{background-color:color-mix(in srgb,var(--color-surface) 10%,transparent);background-image:radial-gradient(var(--color-border) 1px,transparent 1px);background-size:8px 8px}.output-selector__categories .category-button__container{display:flex;align-items:stretch;width:100%;position:relative;z-index:1}.output-selector__categories .category-button__icon{width:72px;min-height:100%;display:flex;align-items:center;justify-content:center;background-color:color-mix(in srgb,var(--color-surface) 10%,transparent);background-image:radial-gradient(var(--color-border) 1px,transparent 1px);background-size:8px 8px;color:var(--color-accent);flex-shrink:0;margin:0;padding:0;position:absolute;top:0;bottom:0;left:0}.output-selector__categories .category-button__icon svg{width:32px;height:32px}.output-selector__categories .category-button__content{padding:1rem 1rem 1rem 88px;flex:1;display:flex;flex-direction:column;justify-content:center}.output-selector__categories .category-button h3{margin:0;font-size:1rem;font-weight:700}.output-selector__categories .category-button p{margin:0;font-size:.875rem}.output-selector__options{padding:.5rem 1rem}.output-selector__options .option-checkbox{display:flex;align-items:flex-start;gap:1rem;padding:.5rem;cursor:pointer}.output-selector__options .option-checkbox input[type=checkbox]{margin-top:4px;width:auto;accent-color:var(--color-accent)}.output-selector__options .option-checkbox span{font-weight:700}.output-selector__options .option-checkbox p{margin:0;font-size:.875rem}.output-selector .tone-selector{margin-top:1rem;padding:1rem;border-top:1px solid var(--color-border)}.logo-icon{position:relative;width:48px;height:48px}.logo-icon__container,.logo-icon__svg{width:100%;height:100%}.logo-icon__svg .wave{fill:none;stroke:var(--color-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.3}.logo-icon__svg .wave.wave1{animation:wave1 4s ease-in-out infinite;opacity:.8}.logo-icon__svg .wave.wave2{animation:wave2 3.7s ease-in-out infinite;animation-delay:-.6s;opacity:.6}.logo-icon__svg .wave.wave3{animation:wave3 3.4s ease-in-out infinite;animation-delay:-1.2s;opacity:.4}@keyframes wave1{0%,to{d:path("M8,24 Q13,24 16,14 T24,24 T32,29 T40,24")}25%{d:path("M8,24 Q13,24 16,29 T24,19 T32,14 T40,24")}50%{d:path("M8,24 Q13,24 16,19 T24,29 T32,24 T40,24")}75%{d:path("M8,24 Q13,24 16,24 T24,14 T32,29 T40,24")}}@keyframes wave2{0%,to{d:path("M8,24 Q13,24 16,29 T24,19 T40,24")}25%{d:path("M8,24 Q13,24 16,19 T24,29 T40,24")}50%{d:path("M8,24 Q13,24 16,24 T24,14 T40,24")}75%{d:path("M8,24 Q13,24 16,14 T24,24 T40,24")}}@keyframes wave3{0%,to{d:path("M8,24 Q13,24 16,19 T24,29 T32,14 T40,24")}25%{d:path("M8,24 Q13,24 16,29 T24,14 T32,24 T40,24")}50%{d:path("M8,24 Q13,24 16,14 T24,24 T32,29 T40,24")}75%{d:path("M8,24 Q13,24 16,24 T24,29 T32,19 T40,24")}}:root{--color-primary: #18181B;--color-secondary: #27272A;--color-accent: #FF5449;--color-background: #FAFAFA;--color-surface: #ffffff;--color-text: #18181B;--color-border: #E4E4E7;--color-muted: #71717A}:root[data-theme=dark]{--color-primary: #FAFAFA;--color-secondary: #E4E4E7;--color-accent: #FF5449;--color-background: #000000;--color-surface: #18181B;--color-text: #FAFAFA;--color-border: #27272A;--color-muted: #A1A1AA}.service-selector{display:flex;flex-direction:column;gap:1.5rem}.service-type-selector{display:flex;flex-direction:column;gap:.5rem}.google-config,.ollama-url-section{display:flex;flex-direction:column;gap:1rem}.api-key-section,.project-config,.region-config{display:flex;flex-direction:column;gap:.5rem}.api-key-set,.project-id-set,.ollama-url-set{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.2);border-radius:4px;color:#15803d}.api-key-input,.project-id-input,.ollama-url-input{display:flex;flex-direction:column;gap:.5rem}@media (max-width: 768px){.api-key-set,.project-id-set,.ollama-url-set{flex-direction:column;align-items:stretch;gap:.5rem}.api-key-set button,.project-id-set button,.ollama-url-set button{width:100%}}
