:root{--color-primary-50: #eff6ff;--color-primary-100: #dbeafe;--color-primary-200: #bfdbfe;--color-primary-300: #93c5fd;--color-primary-400: #60a5fa;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-700: #1d4ed8;--color-primary-800: #1e40af;--color-primary-900: #1e3a8a;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-success-50: #f0fdf4;--color-success-500: #22c55e;--color-success-600: #16a34a;--color-success-700: #15803d;--color-warning-50: #fffbeb;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-error-50: #fef2f2;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-info-50: #eff6ff;--color-info-500: #3b82f6;--color-info-600: #2563eb;--color-info-700: #1d4ed8}:root,[data-theme=light]{--theme-primary: var(--color-primary-600);--theme-primary-hover: var(--color-primary-700);--theme-primary-light: var(--color-primary-50);--theme-success: var(--color-success-600);--theme-success-light: var(--color-success-50);--theme-warning: var(--color-warning-600);--theme-warning-light: var(--color-warning-50);--theme-error: var(--color-error-600);--theme-error-light: var(--color-error-50);--theme-info: var(--color-info-600);--theme-info-light: var(--color-info-50);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-muted: var(--color-gray-500);--text-disabled: var(--color-gray-400);--text-inverse: #ffffff;--bg-primary: #ffffff;--bg-secondary: var(--color-gray-50);--bg-tertiary: var(--color-gray-100);--bg-hover: var(--color-gray-100);--bg-active: var(--color-gray-200);--bg-disabled: var(--color-gray-100);--bg-overlay: rgba(0, 0, 0, .5);--border-primary: var(--color-gray-200);--border-secondary: var(--color-gray-300);--border-focus: var(--theme-primary);--border-error: var(--theme-error);--border-success: var(--theme-success);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--input-bg: #ffffff;--input-border: var(--border-primary);--input-focus-border: var(--border-focus);--input-placeholder: var(--text-muted);--button-primary-bg: var(--theme-primary);--button-primary-hover: var(--theme-primary-hover);--button-primary-text: #ffffff;--button-secondary-bg: #ffffff;--button-secondary-border: var(--border-primary);--button-secondary-text: var(--text-primary);--button-secondary-hover: var(--bg-hover);--card-bg: #ffffff;--card-border: var(--border-primary);--card-shadow: var(--shadow-sm);--nav-bg: #ffffff;--nav-border: var(--border-primary);--nav-link: var(--text-secondary);--nav-link-hover: var(--text-primary);--nav-link-active: var(--theme-primary);--code-bg: var(--color-gray-50);--code-border: var(--border-primary);--code-text: var(--text-primary)}*{transition:background-color .2s ease,border-color .2s ease,color .2s ease}.syntax-highlight{background:var(--code-bg);border:1px solid var(--code-border);color:var(--code-text)}.syntax-highlight .token.string{color:var(--theme-success)}.syntax-highlight .token.number{color:var(--theme-info)}.syntax-highlight .token.boolean{color:var(--theme-warning)}.syntax-highlight .token.null{color:var(--theme-error)}.syntax-highlight .token.key{color:var(--theme-primary);font-weight:600}.syntax-highlight .token.punctuation{color:var(--text-secondary)}@media (prefers-contrast: high){:root{--border-primary: #000000;--border-secondary: #000000;--text-primary: #000000;--text-secondary: #000000}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}@media print{:root{--bg-primary: #ffffff;--bg-secondary: #ffffff;--text-primary: #000000;--text-secondary: #000000;--border-primary: #000000}}:root{--breakpoint-xs: 320px;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--breakpoint-xxl: 1400px;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-xxl: 3rem;--font-xs: .75rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-xxl: 1.5rem;--container-sm: 540px;--container-md: 720px;--container-lg: 960px;--container-xl: 1140px;--container-xxl: 1320px;--grid-columns: 12;--grid-gap: 1rem}.container,.container-fluid{width:100%;padding-right:var(--space-md);padding-left:var(--space-md);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:var(--container-sm)}}@media (min-width: 768px){.container{max-width:var(--container-md)}}@media (min-width: 992px){.container{max-width:var(--container-lg)}}@media (min-width: 1200px){.container{max-width:var(--container-xl)}}@media (min-width: 1400px){.container{max-width:var(--container-xxl)}}.row{display:flex;flex-wrap:wrap;margin-right:calc(var(--grid-gap) * -.5);margin-left:calc(var(--grid-gap) * -.5)}.col{flex:1 0 0%;padding-right:calc(var(--grid-gap) * .5);padding-left:calc(var(--grid-gap) * .5)}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}@media (min-width: 576px){.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}}@media (min-width: 768px){.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}}@media (min-width: 992px){.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}}.d-none{display:none!important}.d-block{display:block!important}.d-flex{display:flex!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}@media (max-width: 575.98px){.d-xs-none{display:none!important}.d-xs-block{display:block!important}.d-xs-flex{display:flex!important}}@media (min-width: 576px) and (max-width: 767.98px){.d-sm-none{display:none!important}.d-sm-block{display:block!important}.d-sm-flex{display:flex!important}}@media (min-width: 768px) and (max-width: 991.98px){.d-md-none{display:none!important}.d-md-block{display:block!important}.d-md-flex{display:flex!important}}@media (min-width: 992px) and (max-width: 1199.98px){.d-lg-none{display:none!important}.d-lg-block{display:block!important}.d-lg-flex{display:flex!important}}@media (min-width: 1200px){.d-xl-none{display:none!important}.d-xl-block{display:block!important}.d-xl-flex{display:flex!important}}.m-0{margin:0!important}.m-1{margin:var(--space-xs)!important}.m-2{margin:var(--space-sm)!important}.m-3{margin:var(--space-md)!important}.m-4{margin:var(--space-lg)!important}.m-5{margin:var(--space-xl)!important}.p-0{padding:0!important}.p-1{padding:var(--space-xs)!important}.p-2{padding:var(--space-sm)!important}.p-3{padding:var(--space-md)!important}.p-4{padding:var(--space-lg)!important}.p-5{padding:var(--space-xl)!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-xs{font-size:var(--font-xs)!important}.text-sm{font-size:var(--font-sm)!important}.text-md{font-size:var(--font-md)!important}.text-lg{font-size:var(--font-lg)!important}.text-xl{font-size:var(--font-xl)!important}@media (max-width: 767.98px){.text-sm-left{text-align:left!important}.text-sm-center{text-align:center!important}.text-sm-right{text-align:right!important}}@media (min-width: 768px){.text-md-left{text-align:left!important}.text-md-center{text-align:center!important}.text-md-right{text-align:right!important}}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}@media (max-width: 767.98px){.flex-sm-column{flex-direction:column!important}.flex-sm-row{flex-direction:row!important}}@media (min-width: 768px){.flex-md-column{flex-direction:column!important}.flex-md-row{flex-direction:row!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (max-width: 575.98px){.hidden-xs{display:none!important}}@media (min-width: 576px) and (max-width: 767.98px){.hidden-sm{display:none!important}}@media (min-width: 768px) and (max-width: 991.98px){.hidden-md{display:none!important}}@media (min-width: 992px) and (max-width: 1199.98px){.hidden-lg{display:none!important}}@media (min-width: 1200px){.hidden-xl{display:none!important}}: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;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;min-width:320px;min-height:100vh;background:var(--bg-primary);color:var(--text-primary);font-family:inherit;line-height:inherit;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0 0 .5em;font-weight:600;line-height:1.2;color:var(--text-primary)}h1{font-size:var(--font-xxl)}h2{font-size:var(--font-xl)}h3{font-size:var(--font-lg)}h4{font-size:var(--font-md)}h5{font-size:var(--font-sm)}h6{font-size:var(--font-xs)}p{margin:0 0 1em;color:var(--text-primary)}a{color:var(--theme-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--theme-primary-hover);text-decoration:underline}a:focus{outline:2px solid var(--theme-primary);outline-offset:2px}code,pre{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,Courier New,monospace;font-size:.9em}code{background:var(--code-bg);border:1px solid var(--code-border);border-radius:4px;padding:.2em .4em;color:var(--code-text)}pre{background:var(--code-bg);border-radius:6px;padding:1em;overflow-x:auto;color:var(--code-text);line-height:1.4}pre code{background:transparent;border:none;padding:0;font-size:inherit}ul,ol{margin:0 0 1em;padding-left:1.5em}li{margin-bottom:.25em}table{width:100%;border-collapse:collapse;margin-bottom:1em}th,td{padding:.5em;text-align:left;border-bottom:1px solid var(--border-primary)}th{font-weight:600;background:var(--bg-secondary)}input,textarea,select,button{font-family:inherit;font-size:inherit;line-height:inherit}:focus{outline:2px solid var(--theme-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--theme-primary);outline-offset:2px}::selection{background:var(--theme-primary);color:#fff}::-moz-selection{background:var(--theme-primary);color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}*{scrollbar-width:thin;scrollbar-color:var(--border-secondary) var(--bg-secondary)}img{max-width:100%;height:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-40px;left:6px;background:var(--theme-primary);color:#fff;padding:8px;text-decoration:none;border-radius:4px;z-index:1000}.skip-link:focus{top:6px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: high){:root{--border-primary: currentColor;--border-secondary: currentColor}}@media print{*,*:before,*:after{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.navigation{background:var(--nav-bg);border-bottom:1px solid var(--nav-border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm);transition:background-color .2s ease,border-color .2s ease}.nav-container{max-width:1200px;margin:0 auto;padding:0 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;position:relative;gap:16px;min-height:60px}.nav-brand{display:flex;flex-direction:column;gap:2px}.nav-brand h1{margin:0;font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.2}.nav-subtitle{font-size:12px;color:var(--text-secondary);font-weight:400}.nav-controls{display:flex;align-items:center;gap:12px}.mobile-menu-btn{display:none;background:none;border:none;padding:8px;cursor:pointer;border-radius:4px;transition:background-color .2s ease}.mobile-menu-btn:hover{background:var(--bg-hover)}.hamburger{display:flex;flex-direction:column;width:20px;height:16px;justify-content:space-between}.hamburger span{display:block;height:2px;width:100%;background:var(--text-primary);border-radius:1px;transition:all .3s ease}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.nav-tabs{display:flex;gap:4px;align-items:center;justify-content:center}.nav-tab{display:flex;align-items:center;gap:6px;padding:8px 12px;border:none;background:none;color:var(--nav-link);font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s ease;white-space:nowrap;text-decoration:none}.nav-tab:hover{background:var(--bg-hover);color:var(--nav-link-hover)}.nav-tab.active{background:var(--theme-primary);color:#fff}.nav-tab.active:hover{background:var(--theme-primary-hover)}.tab-icon{font-size:14px;line-height:1}.tab-name{line-height:1}.mobile-overlay{display:none}@media (max-width: 768px){.nav-container{padding:12px 16px;display:flex;justify-content:space-between}.nav-brand h1{font-size:18px}.nav-subtitle{font-size:11px}.mobile-menu-btn{display:block}.nav-tabs{position:absolute;top:100%;left:0;right:0;background:var(--nav-bg);border-top:1px solid var(--nav-border);box-shadow:var(--shadow-lg);flex-direction:column;gap:0;padding:8px 0;transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease}.nav-tabs.mobile-open{transform:translateY(0);opacity:1;visibility:visible}.nav-tab{width:100%;justify-content:flex-start;padding:12px 16px;border-radius:0;font-size:14px}.nav-tab:hover{background:var(--bg-hover)}.nav-tab.active{background:var(--theme-primary-light);color:var(--theme-primary);border-left:3px solid var(--theme-primary)}.nav-tab.active:hover{background:var(--theme-primary-light)}.mobile-overlay{display:block;position:fixed;inset:0;background:#0000004d;z-index:-1}}@media (max-width: 480px){.nav-container{padding:10px 12px}.nav-brand h1{font-size:16px}.nav-subtitle{display:none}.tab-icon{font-size:16px}.tab-name{font-size:13px}}.input-panel{display:flex;flex-direction:column;height:100%;border:1px solid #e0e0e0;border-radius:8px;background:#fff}.file-upload-btn,.clear-btn{padding:6px 12px;font-size:12px;border:1px solid #d0d7de;border-radius:4px;background:#fff;color:#24292f;cursor:pointer;transition:all .2s ease}.file-upload-btn:hover,.clear-btn:hover{background:#f3f4f6;border-color:#8c959f}.file-upload-btn:disabled,.clear-btn:disabled{opacity:.6;cursor:not-allowed}.clear-btn{color:#cf222e;border-color:#cf222e}.clear-btn:hover{background:#ffebee}.input-container{position:relative;flex:1;display:flex;flex-direction:column}.input-container.with-line-numbers,.input-container.with-highlight{flex-direction:row}.line-numbers{flex-shrink:0;width:40px;padding:16px 8px 16px 0;background:#f8f9fa;border-right:1px solid #e0e0e0;overflow:hidden;text-align:right;user-select:none}.line-number{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.5;color:#999;height:19.5px}.editor-container{flex:1;position:relative;display:flex;flex-direction:column;overflow:hidden}.highlight-overlay{position:absolute;top:0;left:0;margin:0;padding:16px;overflow:visible;pointer-events:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;background:transparent;color:#24292f;will-change:transform}.highlight-overlay code{font-family:inherit;font-size:inherit;background:transparent;padding:0}.input-textarea{flex:1;padding:16px;border:none;outline:none;resize:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.5;background:transparent;color:#24292f;min-height:200px}.input-textarea.transparent-text{color:transparent!important;caret-color:#24292f;background:transparent!important;-webkit-text-fill-color:transparent}.input-textarea.transparent-text::selection{background:#0069da4d;-webkit-text-fill-color:transparent}.input-textarea.transparent-text::-moz-selection{background:#0069da4d}.input-textarea::placeholder{color:#656d76;font-style:italic}.input-container.drag-over{border-color:#0969da;background:#f6f8fa}.input-container.loading{pointer-events:none}.loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffffffe6;z-index:10}.drag-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0969da1a;border:2px dashed #0969da;border-radius:8px;z-index:5}.drag-message{padding:20px;text-align:center;color:#0969da;font-weight:600}.error-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff8f8;border-top:1px solid #ffcdd2;color:#d32f2f;font-size:13px;border-radius:0 0 8px 8px}.error-icon{font-size:16px}.highlight-overlay .json-key{color:#881391;font-weight:500}.highlight-overlay .json-string{color:#0a7d00}.highlight-overlay .json-number{color:#1750eb}.highlight-overlay .json-boolean{color:#d97706;font-weight:500}.highlight-overlay .json-null{color:#dc2626;font-weight:500}.highlight-overlay .json-punctuation{color:#6b7280}@media (max-width: 768px){.panel-header{padding:10px 12px}.panel-header h3{font-size:13px}.header-actions{gap:6px}.file-upload-btn,.clear-btn{padding:4px 8px;font-size:11px}.input-textarea{padding:12px;font-size:12px}.error-message{padding:10px 12px;font-size:12px}}.output-panel{display:flex;flex-direction:column;height:100%;border:1px solid #e0e0e0;border-radius:8px;background:#fff;position:relative}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e0e0e0;background:#f8f9fa;border-radius:8px 8px 0 0}.header-left{display:flex;align-items:center;gap:12px}.panel-header h3{margin:0;font-size:14px;font-weight:600;color:#333}.file-info{display:flex;gap:8px;font-size:11px;color:#656d76}.line-count,.file-size{padding:2px 6px;background:#e1e4e8;border-radius:3px}.header-actions{display:flex;gap:8px}.copy-btn,.download-btn{padding:6px 12px;font-size:12px;border:1px solid #d0d7de;border-radius:4px;background:#fff;color:#24292f;cursor:pointer;transition:all .2s ease}.copy-btn:hover,.download-btn:hover{background:#f3f4f6;border-color:#8c959f}.copy-btn:disabled,.download-btn:disabled{opacity:.6;cursor:not-allowed}.copy-btn.success{background:#dcfce7;border-color:#16a34a;color:#16a34a}.download-btn{background:#0969da;border-color:#0969da;color:#fff}.download-btn:hover{background:#0860ca}.output-container{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden}.output-content{flex:1;margin:0;padding:16px;overflow:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.5;background:#fff;color:#24292f;white-space:pre-wrap;word-wrap:break-word}.output-content code{font-family:inherit;font-size:inherit;background:transparent;padding:0}.language-json .string{color:#032f62}.language-json .number{color:#005cc5}.language-json .boolean{color:#d73a49}.language-json .null{color:#6f42c1}.language-json .key{color:#22863a;font-weight:600}.language-xml .tag{color:#22863a}.language-xml .attr-name{color:#6f42c1}.language-xml .attr-value{color:#032f62}.language-yaml .key{color:#22863a;font-weight:600}.language-yaml .string{color:#032f62}.language-yaml .number{color:#005cc5}.loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffffff2;z-index:10}.loading-spinner{width:24px;height:24px;border:2px solid #e1e4e8;border-top:2px solid #0969da;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:8px}.loading-overlay span{font-size:14px;color:#656d76}.error-display{display:flex;align-items:center;justify-content:center;flex:1;padding:40px 20px;text-align:center}.error-icon{font-size:48px;margin-bottom:16px}.error-content h4{margin:0 0 8px;color:#d32f2f;font-size:16px}.error-content p{margin:0;color:#656d76;font-size:14px;max-width:400px;line-height:1.5}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:40px 20px;text-align:center;color:#656d76}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:14px}.copy-notification{position:absolute;top:50px;right:16px;background:#dcfce7;border:1px solid #16a34a;border-radius:4px;padding:8px 12px;font-size:12px;color:#16a34a;z-index:20;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (max-width: 768px){.panel-header{padding:10px 12px}.panel-header h3{font-size:13px}.file-info{font-size:10px;gap:6px}.header-actions{gap:6px}.copy-btn,.download-btn{padding:4px 8px;font-size:11px}.output-content{padding:12px;font-size:12px}.error-display,.empty-state{padding:30px 15px}.error-icon,.empty-icon{font-size:36px}.error-content h4{font-size:14px}.error-content p,.empty-state p{font-size:13px}.copy-notification{right:12px;font-size:11px}}.json-key{color:#881391;font-weight:500}.json-string{color:#0a7d00}.json-number{color:#1750eb}.json-boolean{color:#d97706;font-weight:500}.json-null{color:#dc2626;font-weight:500}.json-punctuation{color:#6b7280}.tool-options{background:#fff;border:1px solid #e1e4e8;border-radius:8px;padding:16px;margin-bottom:16px}.options-title{margin:0 0 12px;font-size:14px;font-weight:600;color:#24292f}.options-content{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.option-group{display:flex;flex-direction:column;gap:6px;min-width:120px}.option-label{font-size:12px;font-weight:500;color:#656d76;margin:0;display:flex;align-items:center;gap:6px}.option-buttons{display:flex;gap:4px}.option-btn{padding:6px 12px;border:none;background:#fff;color:#24292f;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;border-right:1px solid #d0d7de}.option-btn:hover{background:#f3f4f6}.option-btn.active{background:#0969da;color:#fff}.option-select{padding:6px 8px;border:1px solid #d0d7de;border-radius:6px;background:#fff;color:#24292f;font-size:12px;cursor:pointer;transition:border-color .2s ease}.option-select:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.option-select:disabled{opacity:.6;cursor:not-allowed;background:#f6f8fa}.option-checkbox{margin:0;cursor:pointer}.option-checkbox:disabled{cursor:not-allowed}.action-btn{padding:8px 16px;border:1px solid transparent;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative;min-width:80px}.action-btn.primary{background:#0969da;color:#fff;border-color:#0969da}.action-btn.primary:hover{background:#0860ca;border-color:#0860ca}.action-btn.secondary{background:#fff;color:#24292f;border-color:#d0d7de}.action-btn.secondary:hover{background:#f3f4f6;border-color:#8c959f}.action-btn.danger{background:#da3633;color:#fff;border-color:#da3633}.action-btn.danger:hover{background:#b62324;border-color:#b62324}.action-btn.small{padding:4px 8px;font-size:12px;min-width:60px}.action-btn.large{padding:12px 24px;font-size:16px;min-width:120px}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-btn.loading{pointer-events:none}.btn-spinner{width:14px;height:14px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.btn-text-hidden{opacity:0}@media (max-width: 768px){.tool-options{padding:12px}.options-content{gap:12px}.option-group{min-width:100px}.option-btn{padding:5px 10px;font-size:11px}.option-select{padding:5px 6px;font-size:11px}.action-btn{padding:6px 12px;font-size:13px;min-width:70px}.action-btn.small{padding:3px 6px;font-size:11px;min-width:50px}.action-btn.large{padding:10px 20px;font-size:15px;min-width:100px}}@media (max-width: 480px){.options-content{flex-direction:column;align-items:stretch}.option-group{min-width:auto}.option-buttons{justify-content:center}.action-btn{width:100%;justify-content:center}}.json-formatter{display:flex;flex-direction:column;gap:1rem;max-width:1200px;margin:0 auto;padding:1rem;height:100%;min-height:0}.formatter-header{text-align:center;margin-bottom:1rem}.formatter-header h2{margin:0 0 .5rem;color:#000;font-size:1.75rem;font-weight:600}.formatter-header p{margin:0;color:var(--text-secondary, #666);font-size:1rem}.formatter-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;padding:1rem;background:var(--bg-secondary, #f8f9fa);border-radius:8px;border:1px solid var(--border-color, #e1e5e9)}.formatter-panels{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:1.5rem;flex:1;min-height:0}.formatter-stats{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #e1e5e9);border-radius:8px;padding:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stat-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.75rem;background:var(--bg-primary, #fff);border-radius:6px;border:1px solid var(--border-light, #f0f0f0)}.stat-label{font-size:.875rem;color:var(--text-secondary, #666);margin-bottom:.25rem}.stat-value{font-size:1.125rem;font-weight:600;color:var(--text-primary, #333)}@media (max-width: 768px){.json-formatter{padding:.5rem;gap:1rem}.formatter-panels{grid-template-columns:1fr;gap:1rem}.formatter-actions{padding:.75rem;gap:.5rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.stat-item{padding:.5rem}.formatter-header h2{font-size:1.5rem}}@media (max-width: 480px){.formatter-actions{flex-direction:column;align-items:stretch}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-contrast: high){.formatter-actions,.formatter-stats,.stat-item{border-width:2px}.stat-value{font-weight:700}}@media (prefers-reduced-motion: reduce){.json-formatter *{transition:none!important;animation:none!important}}.json-validator{display:flex;flex-direction:column;gap:1rem;padding:1rem;max-width:1200px;margin:0 auto;height:100%;min-height:0}.json-validator>*{flex-shrink:0}.validator-header{text-align:center}.validator-header h2{margin:0 0 .5rem;color:#000;font-size:1.75rem;font-weight:600}.validator-header p{margin:0;color:var(--text-secondary, #666);font-size:.9rem}.validator-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:1.5rem;flex:1 1 auto;min-height:0}.input-section{display:flex;flex-direction:column;min-height:0}.results-section{display:flex;flex-direction:column;gap:1rem;overflow:auto;min-height:0}.action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.validation-result{border:1px solid var(--border-color, #e1e5e9);border-radius:8px;padding:1rem;background:var(--bg-secondary, #f8f9fa)}.validation-result.valid{border-color:var(--success-color, #28a745);background:var(--success-bg, #d4edda)}.validation-result.invalid{border-color:var(--error-color, #dc3545);background:var(--error-bg, #f8d7da)}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.result-status{display:flex;align-items:center;gap:.5rem}.status-icon{font-size:1.1rem}.status-icon.success{color:var(--success-color, #28a745)}.status-icon.error{color:var(--error-color, #dc3545)}.status-text{font-weight:600;color:var(--text-primary, #333)}.error-location{font-size:.85rem;color:var(--text-secondary, #666);background:#0000000d;padding:.25rem .5rem;border-radius:4px}.error-details{display:flex;flex-direction:column;gap:.75rem}.error-message{display:flex;flex-direction:column;gap:.25rem}.error-message strong{color:var(--text-primary, #333);font-size:.9rem}.error-message span{color:var(--error-color, #dc3545);font-family:Courier New,monospace;font-size:.85rem;background:#dc35451a;padding:.25rem .5rem;border-radius:4px;border-left:3px solid var(--error-color, #dc3545)}.suggestions{display:flex;flex-direction:column;gap:.5rem}.suggestions strong{color:var(--text-primary, #333);font-size:.9rem}.suggestions ul{margin:0;padding-left:1.25rem;list-style-type:disc}.suggestions li{color:var(--text-secondary, #666);font-size:.85rem;line-height:1.4;margin-bottom:.25rem}.structure-check{border:1px solid var(--border-color, #e1e5e9);border-radius:8px;padding:1rem;background:var(--bg-secondary, #f8f9fa)}.structure-check h4{margin:0 0 .75rem;color:var(--text-primary, #333);font-size:1rem;font-weight:600}.structure-items{display:flex;flex-direction:column;gap:.5rem}.structure-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;border-radius:6px;background:var(--bg-primary, #fff);border:1px solid transparent}.structure-item.valid{border-color:var(--success-color, #28a745);background:var(--success-bg, #d4edda)}.structure-item.invalid{border-color:var(--error-color, #dc3545);background:var(--error-bg, #f8d7da)}.item-icon{font-size:.9rem;flex-shrink:0}.item-label{font-weight:500;color:var(--text-primary, #333);font-size:.9rem;flex-shrink:0}.item-issues{display:flex;flex-direction:column;gap:.25rem;margin-left:auto;text-align:right}.issue{font-size:.8rem;color:var(--error-color, #dc3545);background:#dc35451a;padding:.125rem .375rem;border-radius:3px}.autofix-result{border:1px solid var(--border-color, #e1e5e9);border-radius:8px;padding:1rem;background:var(--bg-secondary, #f8f9fa)}.autofix-result.success{border-color:var(--success-color, #28a745);background:var(--success-bg, #d4edda)}.autofix-result.failed{border-color:var(--warning-color, #ffc107);background:var(--warning-bg, #fff3cd)}.fixes-applied{margin-top:.75rem}.fixes-applied strong{color:var(--text-primary, #333);font-size:.9rem;display:block;margin-bottom:.5rem}.fixes-applied ul{margin:0;padding-left:1.25rem;list-style-type:disc}.fixes-applied li{color:var(--success-color, #28a745);font-size:.85rem;line-height:1.4;margin-bottom:.25rem}@media (max-width: 768px){.validator-content{grid-template-columns:1fr;gap:1rem}.action-buttons{justify-content:center}.result-header{flex-direction:column;align-items:flex-start;gap:.5rem}.error-location{align-self:flex-start}.structure-item{flex-direction:column;align-items:flex-start;gap:.25rem}.item-issues{margin-left:0;text-align:left;width:100%}}.validation-result,.structure-check,.autofix-result{transition:all .3s ease}.validation-result:empty,.structure-check:empty,.autofix-result:empty{opacity:0;transform:translateY(-10px)}.option-checkbox:focus{outline:2px solid var(--primary-color, #007bff);outline-offset:2px}.action-btn:focus{outline:2px solid var(--primary-color, #007bff);outline-offset:2px}.json-converter{display:flex;flex-direction:column;gap:1rem;padding:1rem;max-width:1200px;margin:0 auto;height:100%;min-height:0}.converter-header{text-align:center;flex-shrink:0}.converter-header h2{color:#000;margin:0 0 .5rem;font-size:1.75rem;font-weight:600}.converter-header p{color:var(--text-secondary, #666);margin:0;font-size:.9rem}.action-buttons{display:flex;gap:.75rem;align-items:center}.validation-warnings{background:var(--warning-bg, #fff3cd);border:1px solid var(--warning-border, #ffeaa7);border-radius:6px;padding:1rem;margin:1rem 0}.warning-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:600;color:var(--warning-text, #856404)}.warning-icon{font-size:1.1rem}.warning-list{margin:0;padding-left:1.5rem;color:var(--warning-text, #856404)}.warning-list li{margin-bottom:.25rem;font-size:.9rem}.converter-panels{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:1.5rem;flex:1;min-height:0}@media (max-width: 768px){.json-converter{padding:.75rem;gap:1rem}.converter-panels{grid-template-columns:1fr;gap:1rem}.action-buttons{flex-direction:column;align-items:stretch}.converter-header h2{font-size:1.25rem}.converter-header p{font-size:.85rem}}@media (max-width: 480px){.json-converter{padding:.5rem}.validation-warnings{padding:.75rem}.warning-header{font-size:.9rem}.warning-list li{font-size:.85rem}}.json-converter .loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;background:#ffffffe6;border-radius:6px}.json-converter .loading-spinner{width:24px;height:24px;border:2px solid var(--border-color, #e0e0e0);border-top:2px solid var(--primary-color, #007bff);border-radius:50%;animation:spin 1s linear infinite}.json-converter button:focus-visible{outline:2px solid var(--focus-color, #007bff);outline-offset:2px}.json-converter select:focus-visible{outline:2px solid var(--focus-color, #007bff);outline-offset:2px}.json-diff{display:flex;flex-direction:column;gap:1rem;padding:1rem;max-width:1200px;margin:0 auto;height:100%;min-height:0}.diff-header{text-align:center;margin-bottom:1rem}.diff-header h2{color:#000;margin:0 0 .5rem;font-size:1.75rem;font-weight:600}.diff-header p{color:var(--text-secondary, #7f8c8d);font-size:1rem;margin:0}.diff-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.diff-panels{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0}.diff-input-section{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.diff-input-panel{display:inline-table}.diff-input-panel h3{color:var(--text-primary, #2c3e50);margin-bottom:.5rem;font-size:1.1rem;font-weight:500;text-align:center}.diff-output-section h3{color:var(--text-primary, #2c3e50);margin-bottom:.5rem;font-size:1.1rem;font-weight:500}.diff-stats{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #e9ecef);border-radius:8px;padding:1rem}.diff-stats h3{color:var(--text-primary, #2c3e50);margin-bottom:1rem;font-size:1.1rem;font-weight:500;text-align:center}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.stat-item{display:flex;flex-direction:column;align-items:center;padding:.75rem;background:#fff;border-radius:6px;border:1px solid var(--border-color, #e9ecef);transition:all .2s ease}.stat-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-item.added{border-left:4px solid var(--success-color, #27ae60)}.stat-item.removed{border-left:4px solid var(--error-color, #e74c3c)}.stat-item.modified{border-left:4px solid var(--warning-color, #f39c12)}.stat-item.unchanged{border-left:4px solid var(--info-color, #3498db)}.stat-item.total{border-left:4px solid var(--primary-color, #2c3e50)}.stat-label{font-size:.85rem;color:var(--text-secondary, #7f8c8d);margin-bottom:.25rem;font-weight:500}.stat-value{font-size:1.5rem;font-weight:600;color:var(--text-primary, #2c3e50)}.option-group .option-buttons{display:flex;gap:.5rem}.option-btn{padding:.5rem 1rem;border:1px solid var(--border-color, #e9ecef);background:#fff;color:var(--text-primary, #2c3e50);border-radius:4px;cursor:pointer;transition:all .2s ease;font-size:.9rem}.option-btn:hover{background:var(--bg-hover, #f8f9fa);border-color:var(--primary-color, #2c3e50)}.option-btn.active{background:var(--primary-color, #2c3e50);color:#fff;border-color:var(--primary-color, #2c3e50)}.option-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.json-diff{padding:.5rem;gap:1rem}.diff-input-section{grid-template-columns:1fr}.diff-actions{flex-direction:column;align-items:center}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.diff-header h2{font-size:1.5rem}.diff-header p{font-size:.9rem}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.diff-actions{gap:.5rem}.option-group .option-buttons{flex-direction:column;gap:.25rem}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:400px;padding:40px 20px;background:#fff;border:1px solid #e1e4e8;border-radius:8px;margin:20px 0}.error-boundary-container{max-width:600px;text-align:center}.error-icon{color:#da3633;margin-bottom:24px}.error-icon svg{width:64px;height:64px}.error-title{margin:0 0 16px;font-size:24px;font-weight:600;color:#24292f}.error-message{margin:0 0 24px;font-size:16px;line-height:1.5;color:#656d76}.error-details{margin:24px 0;text-align:left;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:16px}.error-details summary{cursor:pointer;font-weight:600;color:#24292f;margin-bottom:12px}.error-details summary:hover{color:#0969da}.error-stack{margin-top:12px}.error-stack h4{margin:16px 0 8px;font-size:14px;font-weight:600;color:#24292f}.error-stack h4:first-child{margin-top:0}.error-stack pre{background:#fff;border:1px solid #d0d7de;border-radius:4px;padding:12px;font-size:12px;line-height:1.4;color:#da3633;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}.error-actions{display:flex;gap:12px;justify-content:center;margin-bottom:32px}.error-btn{padding:10px 20px;border:1px solid transparent;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.error-btn.primary{background:#0969da;color:#fff;border-color:#0969da}.error-btn.primary:hover{background:#0860ca;border-color:#0860ca}.error-btn.secondary{background:#fff;color:#24292f;border-color:#d0d7de}.error-btn.secondary:hover{background:#f3f4f6;border-color:#8c959f}.error-help{text-align:left;background:#fff8dc;border:1px solid #f1c40f;border-radius:6px;padding:16px}.error-help p{margin:0 0 12px;font-size:14px;font-weight:600;color:#24292f}.error-help ul{margin:0;padding-left:20px}.error-help li{margin-bottom:4px;font-size:14px;color:#656d76}@media (max-width: 768px){.error-boundary{min-height:300px;padding:30px 15px;margin:15px 0}.error-icon svg{width:48px;height:48px}.error-title{font-size:20px}.error-message{font-size:15px}.error-actions{flex-direction:column;align-items:center}.error-btn{width:100%;max-width:200px}.error-details{padding:12px}.error-stack pre{font-size:11px;padding:8px}}@media (max-width: 480px){.error-boundary{min-height:250px;padding:20px 10px}.error-title{font-size:18px}.error-message{font-size:14px}.error-help{padding:12px}.error-help p,.error-help li{font-size:13px}}.notification{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:8px;border:1px solid;background:#fff;box-shadow:0 4px 12px #00000026;margin-bottom:12px;animation:slideIn .3s ease-out;position:relative;max-width:400px;min-width:300px}.notification.exiting{animation:slideOut .3s ease-in forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.notification-icon{flex-shrink:0;margin-top:2px}.notification-content{flex:1;min-width:0}.notification-title{font-size:14px;font-weight:600;margin-bottom:4px;line-height:1.3}.notification-message{font-size:13px;line-height:1.4;margin-bottom:8px}.notification-actions{display:flex;gap:8px;margin-top:12px}.notification-action{padding:4px 8px;border:1px solid transparent;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.notification-action.primary{background:#0969da;color:#fff;border-color:#0969da}.notification-action.primary:hover{background:#0860ca;border-color:#0860ca}.notification-action.secondary{background:transparent;color:inherit;border-color:currentColor}.notification-action.secondary:hover{background:#0000000d}.notification-close{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:inherit;opacity:.6;transition:all .2s ease;margin-top:-2px;margin-right:-4px}.notification-close:hover{opacity:1;background:#0000001a}.notification.success{border-color:#28a745;background:#d4edda;color:#155724}.notification.success .notification-icon{color:#28a745}.notification.error{border-color:#dc3545;background:#f8d7da;color:#721c24}.notification.error .notification-icon{color:#dc3545}.notification.warning{border-color:#ffc107;background:#fff3cd;color:#856404}.notification.warning .notification-icon{color:#ffc107}.notification.info{border-color:#17a2b8;background:#d1ecf1;color:#0c5460}.notification.info .notification-icon{color:#17a2b8}.notification-container{position:fixed;top:20px;right:20px;z-index:1000;pointer-events:none}.notification-container .notification{pointer-events:auto}@media (max-width: 768px){.notification-container{top:10px;right:10px;left:10px}.notification{max-width:none;min-width:auto;margin-bottom:8px}.notification-title{font-size:13px}.notification-message{font-size:12px}.notification-actions{flex-direction:column;gap:6px}.notification-action{width:100%;text-align:center}}@media (max-width: 480px){.notification-container{top:5px;right:5px;left:5px}.notification{padding:12px;gap:10px}.notification-icon svg{width:18px;height:18px}.notification-close svg{width:14px;height:14px}}.progress-bar{width:100%}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.progress-label{font-size:13px;font-weight:500;color:#24292f}.progress-percentage{font-size:12px;color:#656d76;font-weight:500}.progress-track{width:100%;background:#e1e4e8;border-radius:4px;overflow:hidden}.progress-bar.small .progress-track{height:4px}.progress-bar.medium .progress-track{height:8px}.progress-bar.large .progress-track{height:12px}.progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.progress-fill.animated{background-image:linear-gradient(45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:20px 20px;animation:progressStripes 1s linear infinite}@keyframes progressStripes{0%{background-position:0 0}to{background-position:20px 0}}.progress-bar.primary .progress-fill{background:#0969da}.progress-bar.success .progress-fill{background:#28a745}.progress-bar.warning .progress-fill{background:#ffc107}.progress-bar.error .progress-fill{background:#dc3545}.circular-progress{position:relative;display:inline-flex;align-items:center;justify-content:center}.progress-svg{transform:rotate(-90deg)}.progress-track-circle{fill:none;stroke:#e1e4e8}.progress-fill-circle{fill:none;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.circular-progress.primary .progress-fill-circle{stroke:#0969da}.circular-progress.success .progress-fill-circle{stroke:#28a745}.circular-progress.warning .progress-fill-circle{stroke:#ffc107}.circular-progress.error .progress-fill-circle{stroke:#dc3545}.progress-text{position:absolute;font-size:10px;font-weight:600;color:#24292f}.spinner{display:inline-flex;align-items:center;gap:8px}.spinner-circle{border-radius:50%;border:2px solid #e1e4e8;border-top-color:transparent;animation:spin 1s linear infinite}.spinner.small .spinner-circle{width:16px;height:16px}.spinner.medium .spinner-circle{width:24px;height:24px}.spinner.large .spinner-circle{width:32px;height:32px}.spinner.primary .spinner-circle{border-color:#e1e4e8;border-top-color:#0969da}.spinner.success .spinner-circle{border-color:#e1e4e8;border-top-color:#28a745}.spinner.warning .spinner-circle{border-color:#e1e4e8;border-top-color:#ffc107}.spinner.error .spinner-circle{border-color:#e1e4e8;border-top-color:#dc3545}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-label{font-size:13px;color:#656d76}.step-progress{width:100%}.step-list{display:flex;flex-direction:column;gap:16px}.step-item{display:flex;align-items:flex-start;gap:12px;position:relative}.step-marker{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;border:2px solid;background:#fff;z-index:1}.step-item.pending .step-marker{border-color:#d0d7de;color:#656d76}.step-item.active .step-marker{border-color:#0969da;color:#0969da}.step-item.completed .step-marker{border-color:#28a745;background:#28a745;color:#fff}.step-content{flex:1;padding-top:4px}.step-title{font-size:14px;font-weight:600;margin-bottom:4px}.step-item.pending .step-title{color:#656d76}.step-item.active .step-title,.step-item.completed .step-title{color:#24292f}.step-description{font-size:13px;color:#656d76;line-height:1.4}.step-connector{position:absolute;left:15px;top:32px;bottom:-16px;width:2px;background:#d0d7de}.step-connector.completed{background:#28a745}.file-upload-progress{background:#fff;border:1px solid #e1e4e8;border-radius:8px;padding:16px;max-width:500px}.upload-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e1e4e8}.upload-header h3{margin:0;font-size:16px;font-weight:600;color:#24292f}.upload-cancel{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#656d76;transition:all .2s ease}.upload-cancel:hover{background:#f3f4f6;color:#24292f}.upload-files{display:flex;flex-direction:column;gap:12px}.upload-file{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e1e4e8;border-radius:6px;background:#f6f8fa}.upload-file.uploading{border-color:#0969da;background:#f0f6ff}.upload-file.completed{border-color:#28a745;background:#f0fff4}.upload-file.error{border-color:#dc3545;background:#fff5f5}.file-info{flex:1;min-width:0}.file-name{font-size:13px;font-weight:500;color:#24292f;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:11px;color:#656d76}.file-progress{flex-shrink:0;min-width:120px}.file-status{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.file-status.success{color:#28a745}.file-status.error{color:#dc3545}.retry-btn{background:none;border:none;color:#0969da;cursor:pointer;font-size:11px;text-decoration:underline;margin-left:4px}.retry-btn:hover{color:#0860ca}@media (max-width: 768px){.step-list{gap:12px}.step-marker{width:28px;height:28px;font-size:12px}.step-connector{left:13px;top:28px;bottom:-12px}.step-title{font-size:13px}.step-description{font-size:12px}.file-upload-progress{padding:12px}.upload-header h3{font-size:15px}.upload-file{flex-direction:column;align-items:stretch;gap:8px}.file-progress{min-width:auto}}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary);color:var(--text-primary);transition:background-color .2s ease,color .2s ease}.main-content{flex:1;padding:var(--space-md);max-width:var(--container-xxl);margin:0 auto;width:100%;box-sizing:border-box}.coming-soon{display:flex;align-items:center;justify-content:center;min-height:400px;font-size:var(--font-lg);color:var(--text-secondary);background:var(--bg-secondary);border:2px dashed var(--border-primary);border-radius:8px;margin:var(--space-xl);padding:var(--space-xl);text-align:center}.tool-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);height:calc(100vh - 200px);min-height:500px}.tool-layout.single-column{grid-template-columns:1fr}.tool-section{display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;box-shadow:var(--card-shadow);overflow:hidden}.tool-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.tool-title{margin:0;font-size:var(--font-lg);font-weight:600;color:var(--text-primary)}.tool-actions{display:flex;gap:var(--space-sm);align-items:center}.tool-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);font-size:var(--font-sm);font-weight:500;line-height:1.5;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s ease;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.btn-primary:hover:not(:disabled){background:var(--button-primary-hover);border-color:var(--button-primary-hover)}.btn-secondary{background:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--button-secondary-border)}.btn-secondary:hover:not(:disabled){background:var(--button-secondary-hover)}.btn-success{background:var(--theme-success);color:#fff;border-color:var(--theme-success)}.btn-success:hover:not(:disabled){background:var(--color-success-700);border-color:var(--color-success-700)}.btn-danger{background:var(--theme-error);color:#fff;border-color:var(--theme-error)}.btn-danger:hover:not(:disabled){background:var(--color-error-700);border-color:var(--color-error-700)}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs)}.btn-lg{padding:var(--space-md) var(--space-lg);font-size:var(--font-md)}.form-control{display:block;width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--font-sm);line-height:1.5;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.form-control:focus{outline:none;border-color:var(--input-focus-border);box-shadow:0 0 0 3px #3b82f61a}.form-control::placeholder{color:var(--input-placeholder)}.form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right 8px center;background-repeat:no-repeat;background-size:16px 12px;padding-right:40px}.alert{padding:var(--space-md);margin-bottom:var(--space-md);border:1px solid transparent;border-radius:6px}.alert-success{background:var(--theme-success-light);border-color:var(--theme-success);color:var(--color-success-700)}.alert-warning{background:var(--theme-warning-light);border-color:var(--theme-warning);color:var(--color-warning-700)}.alert-error{background:var(--theme-error-light);border-color:var(--theme-error);color:var(--color-error-700)}.alert-info{background:var(--theme-info-light);border-color:var(--theme-info);color:var(--color-info-700)}@media (max-width: 1200px){.main-content{max-width:var(--container-xl)}}@media (max-width: 992px){.main-content{max-width:var(--container-lg)}.tool-layout{gap:var(--space-md)}}@media (max-width: 768px){.main-content{padding:var(--space-sm);max-width:var(--container-md)}.tool-layout{grid-template-columns:1fr;gap:var(--space-md);height:auto;min-height:auto}.tool-section{min-height:300px}.coming-soon{margin:var(--space-md);min-height:300px;font-size:var(--font-md);padding:var(--space-lg)}.tool-header{padding:var(--space-sm) var(--space-md)}.tool-title{font-size:var(--font-md)}.btn{padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs)}}@media (max-width: 576px){.main-content{padding:var(--space-xs);max-width:var(--container-sm)}.tool-layout{gap:var(--space-sm)}.coming-soon{margin:var(--space-sm);padding:var(--space-md);font-size:var(--font-sm)}.tool-header{flex-direction:column;gap:var(--space-sm);align-items:flex-start}.tool-actions{width:100%;justify-content:flex-end}}@media (max-width: 480px){.tool-header{padding:var(--space-sm)}.tool-title{font-size:var(--font-sm)}.btn-sm{padding:2px var(--space-xs);font-size:10px}}@media print{.app{background:#fff;color:#000}.tool-layout{display:block}.tool-section{break-inside:avoid;margin-bottom:var(--space-lg)}.btn,.theme-toggle{display:none}}
