:root{--color-primary: #4F46E5;--color-primary-hover: #4338CA;--color-primary-light: #EEF2FF;--color-bg: #F5F5F5;--color-surface: #FFFFFF;--color-text: #1F2937;--color-text-secondary: #6B7280;--color-text-light: #9CA3AF;--color-success: #10B981;--color-success-light: #D1FAE5;--color-error: #EF4444;--color-error-light: #FEE2E2;--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-border: #E5E7EB;--color-border-light: #F3F4F6;--spacing-unit: 8px;--spacing-xs: calc(var(--spacing-unit) * .5);--spacing-sm: var(--spacing-unit);--spacing-md: calc(var(--spacing-unit) * 2);--spacing-lg: calc(var(--spacing-unit) * 3);--spacing-xl: calc(var(--spacing-unit) * 4);--spacing-2xl: calc(var(--spacing-unit) * 6);--spacing-3xl: calc(var(--spacing-unit) * 8);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--radius-card: 16px;--radius-button: 24px;--radius-input: 8px;--shadow-subtle: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--max-width: 1100px;--header-height: 64px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out}[data-theme=dark]{--color-primary: #7C89FF;--color-primary-hover: #99A2FF;--color-primary-light: #1F2748;--color-bg: #0F172A;--color-surface: #111827;--color-text: #E5E7EB;--color-text-secondary: #9CA3AF;--color-text-light: #6B7280;--color-success: #34D399;--color-success-light: #063B2A;--color-error: #F87171;--color-error-light: #3F1A1F;--color-warning: #FBBF24;--color-warning-light: #3A2E09;--color-border: #2B3548;--color-border-light: #1C2536;--shadow-subtle: 0 1px 3px 0 rgba(0, 0, 0, .45), 0 1px 2px -1px rgba(0, 0, 0, .35);--shadow-md: 0 6px 12px -2px rgba(0, 0, 0, .45), 0 3px 6px -2px rgba(0, 0, 0, .35);--shadow-lg: 0 14px 28px -8px rgba(0, 0, 0, .55), 0 6px 14px -6px rgba(0, 0, 0, .45)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;max-width:100%;overflow-x:clip}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:1.6;color:var(--color-text);background-color:var(--color-bg);min-height:100vh;max-width:100%;overflow-x:clip}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:1.2;margin-bottom:var(--spacing-md);color:var(--color-text);border:none;outline:none}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}.hero{border:none;outline:none}p{margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-md)}.container-fluid{width:100%;padding:0 var(--spacing-md)}.grid{display:grid;gap:var(--spacing-lg)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.m-0{margin:0}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mt-2xl{margin-top:var(--spacing-2xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.p-2xl{padding:var(--spacing-2xl)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-secondary{color:var(--color-text-secondary)}.text-light{color:var(--color-text-light)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.card{background:var(--color-surface);border:1px solid transparent;border-radius:var(--radius-card);padding:var(--spacing-lg);box-shadow:var(--shadow-subtle);transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base),background var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}[data-theme=dark] .card{background:linear-gradient(180deg,#172237,#121b2d);border-color:#33455f}[data-theme=dark] .card:hover{border-color:#42597a}[data-theme=dark] .card-clickable:hover{box-shadow:0 18px 28px -14px #020814f2,0 10px 18px -12px #020814bf}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:1.5;text-align:center;border:none;border-radius:var(--radius-button);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{color:var(--color-text);background-color:var(--color-border-light)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border)}.btn-danger{color:var(--color-error);background-color:transparent;border:1px solid var(--color-border)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-light);border-color:var(--color-error)}.btn-outline{color:var(--color-primary);background-color:transparent;border:2px solid var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary-light)}.btn-success{color:#fff;background-color:var(--color-success)}.btn-error{color:#fff;background-color:var(--color-error)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.btn-block{display:flex;width:100%}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-input);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input.valid{border-color:var(--color-success)}.form-input.invalid{border-color:var(--color-error)}.form-textarea{resize:vertical;min-height:100px}.validation-message{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-error)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-input);background-color:var(--color-border-light);color:var(--color-text-secondary)}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-error{background-color:var(--color-error-light);color:var(--color-error)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.progress{width:100%;height:8px;background-color:var(--color-border-light);border-radius:999px;overflow:hidden}.progress-bar{height:100%;background-color:var(--color-primary);transition:width var(--transition-base)}.spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-lg{width:48px;height:48px;border-width:4px}.spinner-sm{width:16px;height:16px;border-width:2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);animation:fadeIn var(--transition-base)}.modal-content{background:var(--color-surface);border-radius:var(--radius-card);padding:var(--spacing-2xl);max-width:500px;width:100%;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-base)}.cookie-consent-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:flex-end;padding:calc(var(--spacing-2xl) + var(--spacing-lg)) var(--spacing-md) var(--spacing-md);background:transparent;z-index:1000;pointer-events:none}.cookie-consent-card{width:min(360px,calc(100vw - (var(--spacing-md) * 2)));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-lg);padding:var(--spacing-lg);pointer-events:auto}.cookie-consent-title{margin-bottom:var(--spacing-sm);font-size:var(--font-size-xl)}.cookie-consent-text{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}.cookie-consent-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;flex-wrap:wrap}@media(max-width:640px){.cookie-consent-overlay{align-items:flex-end;justify-content:center;padding:var(--spacing-sm)}.cookie-consent-card{width:min(100%,100%);padding:var(--spacing-md)}.cookie-consent-actions{justify-content:stretch}.cookie-consent-actions .btn{flex:1 1 auto}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.alert{padding:var(--spacing-md);border-radius:var(--radius-input);margin-bottom:var(--spacing-md)}.alert-success{background-color:var(--color-success-light);color:var(--color-success);border-left:4px solid var(--color-success)}.alert-error{background-color:var(--color-error-light);color:var(--color-error);border-left:4px solid var(--color-error)}.alert-warning{background-color:var(--color-warning-light);color:var(--color-warning);border-left:4px solid var(--color-warning)}.page-layout{display:flex;flex-direction:column;min-height:100vh;max-width:100%;overflow-x:clip}.main-content{flex:1;padding-bottom:var(--spacing-lg)}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-subtle)}.header-content{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0;gap:var(--spacing-md);min-width:0}.header-logo{display:flex;align-items:center}.header-logo-img{height:36px;width:auto;display:block}.header-logo-square{display:none}.header-nav{display:flex;align-items:center;gap:var(--spacing-lg);flex-shrink:0}.header-link{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.header-link:hover{color:var(--color-text)}.footer{margin-top:auto;padding:var(--spacing-lg) 0;background:var(--color-surface);border-top:1px solid var(--color-border)}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-sm) var(--spacing-lg)}.footer-link{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.25}.footer-link:hover{color:var(--color-text)}.footer p{margin-bottom:0}.scroll-actions{position:fixed;right:clamp(1rem,2vw,1.5rem);bottom:calc(clamp(1rem,2vw,1.5rem) + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:40;pointer-events:none}.scroll-action-btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);box-shadow:var(--shadow-md);pointer-events:auto;transition:transform var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.scroll-action-btn:hover{transform:translateY(-1px);color:var(--color-text);border-color:var(--color-primary);background:var(--color-surface-hover);box-shadow:var(--shadow-lg)}.scroll-action-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.scroll-action-icon{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.legal-page{max-width:920px;margin:0 auto;line-height:1.65}.legal-page h1{margin-bottom:var(--spacing-md)}.legal-page h2{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-sm);font-size:var(--font-size-xl)}.legal-page ul{padding-left:var(--spacing-xl)}.legal-page li+li{margin-top:var(--spacing-xs)}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media(max-width:639px){.hide-mobile,.header-logo-inline{display:none}.header-logo-square{display:block;height:32px}.header-nav{gap:var(--spacing-sm)}.header-link{font-size:var(--font-size-sm)}.footer-links{gap:var(--spacing-sm) var(--spacing-md)}}@media(min-width:640px){.show-mobile{display:none}}.upload-card{position:relative}.upload-input-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:5}.upload-input-hidden{display:none}.upload-zone{display:flex;flex-direction:column;gap:var(--spacing-lg);border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);transition:border-color var(--transition-fast),background var(--transition-fast);min-height:220px;justify-content:center;position:relative}.upload-zone.is-drag-active{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}.upload-zone-header{display:flex;justify-content:flex-start;position:relative;z-index:7}.upload-zone-content{flex:1;position:relative;z-index:6}.upload-zone-footer{border-top:1px solid var(--color-border);padding-top:var(--spacing-md);display:flex;justify-content:flex-end;position:relative;z-index:7}.upload-tooltip-wrap{position:relative;display:inline-flex;align-items:center}.upload-tooltip-trigger{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-full);padding:2px var(--spacing-sm)}.upload-tooltip{display:none;position:absolute;z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-md);min-width:220px;font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:normal;text-align:left}.upload-tooltip-top{bottom:calc(100% + 6px);left:0}.upload-tooltip-wrap:hover .upload-tooltip,.upload-tooltip-wrap:focus-within .upload-tooltip{display:block}.upload-tooltip-title{font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-xs)}.upload-tooltip ul{margin:0;padding-left:var(--spacing-lg)}.upload-tooltip li+li{margin-top:var(--spacing-xs)}.upload-security-indicator{font-size:var(--font-size-xs)}.upload-shield-icon{font-size:14px}.upload-legal-note{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.upload-rating-row{gap:var(--spacing-sm);border:none;padding:0}.upload-star-icon{color:var(--color-error)}.upload-rating-value{font-weight:var(--font-weight-semibold)}.upload-files-header{display:flex;align-items:center;justify-content:space-between}.upload-file-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.upload-file-meta{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0;flex:1}.upload-file-text{min-width:0}.upload-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.upload-file-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.result-file-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.result-file-row-primary{position:relative}.result-file-row-primary.is-highlighted{border-color:color-mix(in srgb,var(--color-success) 55%,var(--color-border));background:color-mix(in srgb,var(--color-success) 14%,var(--color-bg));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-success) 18%,transparent);animation:result-file-highlight-fade 3.6s ease-out forwards}@keyframes result-file-highlight-fade{0%{border-color:color-mix(in srgb,var(--color-success) 65%,var(--color-border));background:color-mix(in srgb,var(--color-success) 18%,var(--color-bg));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-success) 24%,transparent)}to{border-color:var(--color-border);background:var(--color-bg);box-shadow:0 0 0 0 transparent}}.result-file-meta{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0;flex:1}.result-file-text{min-width:0}.result-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-size:var(--font-size-sm)}.result-file-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.collapsible-header{display:flex;align-items:center;justify-content:space-between}.icon-btn{width:2.25rem;min-width:2.25rem;height:2.25rem;padding:0;border-radius:var(--radius-md);line-height:1}.button-icon-image{width:1rem;height:1rem;object-fit:contain;display:block}.icon-theme-dark,[data-theme=dark] .icon-theme-light{display:none}[data-theme=dark] .icon-theme-dark{display:block}.rating-block{display:flex;flex-direction:column;align-items:flex-end;text-align:right;padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.rating-title{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.rating-hearts{display:flex;justify-content:flex-end;gap:var(--spacing-xs)}.rating-heart{font-size:1.5rem;background:transparent;border:none;cursor:pointer;padding:2px;line-height:1;transition:transform var(--transition-fast)}.rating-heart:not(:disabled):hover{transform:scale(1.2)}.rating-heart.is-active{color:var(--color-error)}.rating-heart.is-inactive{color:var(--color-text-secondary)}.rating-message{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-success)}.rating-message.is-error{color:var(--color-error)}.result-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.result-footer-left{display:flex;align-items:center;min-height:1px}.result-rating-block{margin-left:auto;border-top:none;padding-top:0}.result-restart-btn{border-radius:var(--radius-input);border:1px solid color-mix(in srgb,var(--color-primary) 45%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));color:var(--color-text);font-weight:var(--font-weight-semibold);min-height:44px;box-shadow:0 10px 24px -18px color-mix(in srgb,var(--color-primary) 60%,transparent)}.result-restart-btn:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 16%,var(--color-surface));border-color:color-mix(in srgb,var(--color-primary) 70%,var(--color-border))}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:500;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md)}.confirm-dialog{max-width:400px;width:100%;padding:var(--spacing-xl)}.confirm-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.donation-modal{max-width:560px}.donation-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:flex-end}.donation-btn{min-width:160px;font-weight:var(--font-weight-semibold);box-shadow:0 8px 20px #2f6bff47}.quick-donation-row{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center}.donation-btn-author{box-shadow:none}.donation-page-card{max-width:560px;margin:0 auto}.donation-form{text-align:left;margin-bottom:var(--spacing-lg)}.donation-page-actions{display:flex;justify-content:center;gap:var(--spacing-sm);flex-wrap:wrap}.donation-pay-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.donation-pay-icon{height:20px;width:auto;display:block}.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--spacing-lg)}.plan-card{display:flex;flex-direction:column;height:100%}.plan-card-body{display:flex;flex:1;flex-direction:column;gap:var(--spacing-md)}.plan-price{color:var(--color-text);display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-lg) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.plan-features{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-sm);padding:0;margin:0 0 var(--spacing-lg);flex:1}.plan-feature{display:flex;align-items:flex-start;gap:var(--spacing-sm);color:var(--color-text-secondary)}.login-benefits-wrap{position:relative;display:flex;align-items:center;gap:var(--spacing-xs)}.login-benefits-trigger{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--color-border);font-size:11px;font-weight:var(--font-weight-bold);color:var(--color-text-secondary);cursor:pointer;background:transparent;line-height:1;padding:0;flex-shrink:0}.login-benefits-tooltip{display:none;position:absolute;top:calc(100% + 8px);left:0;z-index:200;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-md);min-width:200px;font-size:var(--font-size-sm)}.login-benefits-wrap:hover .login-benefits-tooltip,.login-benefits-wrap:focus-within .login-benefits-tooltip{display:block}.login-benefits-title{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm);color:var(--color-text)}.login-benefits-tooltip ul{margin:0;padding-left:var(--spacing-lg);color:var(--color-text-secondary)}.login-benefits-tooltip li+li{margin-top:var(--spacing-xs)}.tool-description-tooltip{display:inline-flex;position:relative;z-index:2}.tool-description-tooltip-abs{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);z-index:10}.tool-description-trigger{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--color-border);font-size:11px;font-style:italic;font-weight:var(--font-weight-bold);color:var(--color-text-secondary);cursor:pointer;background:var(--color-surface);line-height:1;padding:0;flex-shrink:0}.tool-description-content{display:none;position:absolute;top:calc(100% + 6px);right:0;z-index:200;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-sm) var(--spacing-md);min-width:180px;max-width:260px;font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:normal;text-align:left}.tool-page-title{display:inline-flex;align-items:flex-start;gap:var(--spacing-sm)}.tool-description-tooltip:hover .tool-description-content,.tool-description-tooltip:focus-within .tool-description-content{display:block}.tool-card{position:relative;cursor:pointer;overflow:visible}.tool-card-content{padding:var(--spacing-md)}.tool-card-list{width:100%;border-radius:var(--radius-lg)}.tool-card-content-list{align-items:center;min-height:0;padding:0}.tool-card-icon-wrap{display:flex;align-items:center;justify-content:center;width:112px;flex-shrink:0}.tool-icon{width:96px;height:96px;object-fit:contain}.tool-card-copy{min-width:0;flex:1}.tool-card-title{text-align:center;word-break:break-word;margin-bottom:var(--spacing-xs)}.tool-card-title-list{text-align:left;margin-bottom:2px;font-size:var(--font-size-base);line-height:1.25}.tool-card-description{font-size:var(--font-size-sm);line-height:1.35;text-align:center}.tool-card-list .tool-card-description{text-align:left}.tools-toolbar{display:flex;align-items:center;gap:var(--spacing-md)}.tools-search-box{flex:1}.category-description{max-width:760px;margin-top:calc(-1 * var(--spacing-sm));margin-bottom:var(--spacing-lg)}.view-mode-toggle{display:inline-flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.toggle-btn{border-radius:var(--radius-input);border:1px solid var(--color-border);background-color:var(--color-border-light);color:var(--color-text);box-shadow:none}.toggle-btn:hover:not(:disabled){background-color:var(--color-border)}.toggle-btn.is-active{background-color:transparent;color:var(--color-text-secondary);border-color:var(--color-text-secondary)}.toggle-btn.is-active:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-text-secondary) 8%,transparent)}.tool-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.tool-list .tool-card{padding:var(--spacing-sm) var(--spacing-md)}.tool-list .tool-card-cell{min-height:0}.tool-card-cell{position:relative;z-index:0}.tool-card-cell:hover,.tool-card-cell:focus-within{z-index:30}.tool-card:hover,.tool-card:focus-within{z-index:31}.language-switcher-label{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.language-switcher-title{white-space:nowrap}.language-select-wrap{position:relative;display:inline-flex;align-items:center}.language-switcher{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-input);color:var(--color-text);font-size:var(--font-size-sm);padding:3px var(--spacing-lg) 3px var(--spacing-sm);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;max-width:130px}.language-switcher:focus{outline:none;border-color:var(--color-primary)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--color-border);cursor:pointer;background:transparent;color:var(--color-text-secondary);font-size:16px;padding:0;transition:border-color var(--transition-fast),color var(--transition-fast)}.theme-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.header-link-button{background:transparent;border:none;cursor:pointer;padding:0;font-size:inherit;font-family:inherit}.settings-card{padding:var(--spacing-md) var(--spacing-lg)}.settings-title{margin-bottom:var(--spacing-sm)}.settings-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md) var(--spacing-lg)}.settings-field{margin-bottom:0}.settings-field .form-label,.settings-field .text-muted,.settings-field .text-secondary{margin-bottom:var(--spacing-xs)}.settings-actions{margin-top:var(--spacing-lg)}.checkbox-label{display:inline-flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;flex-shrink:0;cursor:pointer}.color-picker-wrapper{display:flex;align-items:center;gap:var(--spacing-sm)}.color-input{width:44px;height:36px;padding:2px;border:1px solid var(--color-border);border-radius:var(--radius-input);cursor:pointer;background:none;flex-shrink:0}@media(min-width:768px){.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.progress-bar-wrap{position:relative;width:100%;height:8px;background:var(--color-border-light);border-radius:999px;overflow:hidden;margin-top:var(--spacing-md)}.progress-bar-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:var(--font-weight-semibold);color:#fff;pointer-events:none;line-height:1}.max-width-container{max-width:920px;margin:0 auto}.container-text-diff{max-width:none}.max-width-container-text-diff{max-width:1240px}.max-width-container-full{max-width:none}.input-mode-toggle{display:flex;justify-content:center;gap:var(--spacing-sm);flex-wrap:wrap}.compare-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-lg)}.text-diff-card,.json-compare-card{width:100%;box-sizing:border-box;overflow:hidden}.text-diff-input-grid,.json-compare-input-grid,.text-diff-result-grid,.json-compare-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-md)}.text-diff-input-grid>*,.json-compare-input-grid>*,.text-diff-result-grid>*,.json-compare-result-grid>*{min-width:0}.text-diff-input-grid .text-input-area,.json-compare-input-grid .text-input-area{width:100%;max-width:100%;box-sizing:border-box}.text-diff-options,.text-diff-actions,.json-compare-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.text-diff-left-tools{border-top:1px dashed var(--color-border);padding-top:.6rem}.text-diff-options .btn,.text-diff-actions .btn,.json-compare-actions .btn{max-width:100%;white-space:normal;word-break:break-word}.text-diff-pane,.json-compare-pane{border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);overflow:hidden}.text-diff-pane-title,.json-compare-pane-title{padding:.6rem .8rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-bottom:1px solid var(--color-border)}.text-diff-line,.json-compare-line{display:grid;grid-template-columns:3rem 1fr;gap:.5rem;padding:.35rem .6rem;border-bottom:1px solid var(--color-border-light);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.86rem;line-height:1.45}.text-diff-line-number,.json-compare-line-number{color:var(--color-text-light);text-align:right;-webkit-user-select:none;user-select:none}.text-diff-line-content,.json-compare-line-content{white-space:pre-wrap;overflow-wrap:anywhere}.text-diff-line-added,.json-compare-line-added{background:#22c55e1f}.text-diff-line-removed,.json-compare-line-removed{background:#ef44441f}.text-diff-line-changed,.json-compare-line-changed{background:#f59e0b1f}.text-diff-added,.json-compare-added{background:#22c55e40;text-decoration:none;padding:0 1px;border-radius:2px}.text-diff-removed,.json-compare-removed{background:#ef444440;padding:0 1px;border-radius:2px}.json-formatter-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.json-formatter-actions .btn{max-width:100%;white-space:normal;word-break:break-word}.json-formatter-processing{display:flex;align-items:center;gap:var(--spacing-sm)}.text-input-area{min-height:220px}.page-content{min-height:calc(100vh - var(--header-height) - 120px);padding-bottom:0}.max-width-sm{max-width:480px}.mx-auto{margin-left:auto;margin-right:auto}.mx-sm{margin-left:var(--spacing-sm);margin-right:var(--spacing-sm)}.auth-card{padding:var(--spacing-2xl)}.google-auth-btn{display:flex;justify-content:center;width:100%}.google-auth-image{display:none;width:min(100%,320px);height:auto}.google-auth-btn .icon-theme-light{display:block}.google-auth-btn .icon-theme-dark,[data-theme=dark] .google-auth-btn .icon-theme-light{display:none}[data-theme=dark] .google-auth-btn .icon-theme-dark{display:block}.auth-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.link{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}.link:hover{color:var(--color-primary-hover);text-decoration:underline}.divider{display:flex;align-items:center;gap:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--color-border)}@media(max-width:480px){.google-auth-image{width:min(100%,280px)}}@media(max-width:900px){.compare-input-grid{grid-template-columns:1fr}.text-diff-card,.json-compare-card{padding:var(--spacing-md)}.text-diff-input-grid,.json-compare-input-grid,.text-diff-result-grid,.json-compare-result-grid{grid-template-columns:1fr}}@media(max-width:720px){.tools-toolbar{flex-direction:column;align-items:stretch}.view-mode-toggle{justify-content:center}.tool-card-content-list{align-items:flex-start}.tool-card-icon-wrap{width:88px}}@media(max-width:420px){.text-diff-card,.json-compare-card{padding:.7rem}.text-diff-line,.json-compare-line{grid-template-columns:2.4rem 1fr;gap:.35rem;padding:.3rem .45rem}}.metadata-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm)}.crop-preview-card{overflow:hidden}.crop-preview-stage{display:flex;justify-content:center;align-items:center;min-height:300px;padding:var(--spacing-lg);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:linear-gradient(180deg,#ffffffeb,#f8fafcfa),radial-gradient(circle at top,rgba(37,99,235,.06),transparent 42%)}.crop-preview-image-shell,.watermark-preview-shell,.rotate-preview-shell{position:relative;display:inline-flex;justify-content:center;align-items:center;overflow:hidden}.crop-preview-image,.watermark-preview-canvas,.rotate-preview-canvas{display:block;width:100%;height:100%;border-radius:var(--radius-md);box-shadow:0 10px 30px #0f172a1f}.watermark-source-image,.rotate-source-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:auto;opacity:0;pointer-events:none}.crop-preview-overlay{position:absolute;border:2px solid rgba(37,99,235,.92);background:#2563eb1f;box-shadow:0 0 0 9999px #0f172a2e;border-radius:var(--radius-sm)}@media(max-width:600px){.metadata-grid{grid-template-columns:1fr}.crop-preview-stage{min-height:220px;padding:var(--spacing-md)}.crop-preview-image,.watermark-preview-canvas,.rotate-preview-canvas{max-width:100%;max-height:360px}}.tool-article{margin-top:var(--spacing-3xl);padding-top:var(--spacing-2xl);border-top:1px solid var(--color-border);max-width:720px;margin-left:auto;margin-right:auto}.tool-article-heading{font-size:1.25rem;font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-lg)}.tool-article-paragraph{font-size:1rem;line-height:1.75;color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.tool-article-paragraph:last-child{margin-bottom:0}.tool-article-collapse{max-height:0;overflow:hidden;transition:max-height .4s ease}.tool-article-collapse.is-expanded{max-height:2000px}.tool-article-collapse .tool-article-paragraph:first-child{margin-top:var(--spacing-md)}.tool-article-toggle{display:flex;align-items:center;justify-content:center;margin:var(--spacing-md) auto 0;padding:var(--spacing-xs);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}.tool-article-toggle:hover{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.tool-article-toggle-icon{display:block;transition:transform .3s ease}.tool-article-toggle-icon.is-expanded{transform:rotate(180deg)}[data-theme=dark] .tool-article{border-top-color:var(--color-border)}[data-theme=dark] .tool-article-paragraph{color:var(--color-text-secondary)}
