:root{--color-brand:#14b8a6;--color-brand-dark:#0d9488;--color-brand-strong:#0f766e;--color-brand-light:#5eead4;--color-brand-on-dark:#2dd4bf;--brand:#14b8a6;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--text-heading:#1e293b;--text-body:#475569;--text-white:#fff;--bg-body:#fafafa;--bg-surface:#fff;--bg-elevated:#fff;--bg-footer:#f1f5f9;--bg-brand-light:#f0fdfa;--bg-secondary:#f8fafc;--bg-soft:#fafafa;--bg-subtle:#f8fafc;--bg-accent-soft:#f0fdfa;--bg-holiday-soft:#fef2f2;--bg-workday-soft:#fefce8;--bg-calendar-hover:#f8fafc;--bg-holiday-badge:#fecaca;--bg-workday-badge:#fef08a;--bg-warning-soft:#fffbeb;--text-accent:#0f766e;--text-on-accent-soft:#0f766e;--text-soft-on-light:#64748b;--text-holiday:#dc2626;--text-workday:#a16207;--text-warning:#b45309;--color-solar-term:#0d9488;--border-color:#e2e8f0;--border-color-light:#f1f5f9;--border-hover:#cbd5e1;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--font-family-base:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-family-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--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 -2px rgba(0,0,0,.1);--shadow-brand-hover:0 4px 12px rgba(20,184,166,.08);--z-navbar:1000;--z-tooltip:1001;--z-modal:2000}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--text-primary:hsla(0,0%,100%,.9);--text-secondary:hsla(0,0%,100%,.6);--text-muted:hsla(0,0%,100%,.4);--brand:#2dd4bf;--text-heading:#f1f5f9;--text-body:hsla(0,0%,100%,.6);--bg-body:#0f1219;--bg-surface:#1a1e28;--bg-elevated:#242834;--bg-footer:#0f1219;--bg-brand-light:rgba(20,184,166,.1);--bg-secondary:#2b3140;--bg-soft:#242834;--bg-subtle:#2b3140;--bg-accent-soft:rgba(20,184,166,.14);--bg-holiday-soft:rgba(239,68,68,.16);--bg-workday-soft:rgba(245,158,11,.16);--bg-calendar-hover:hsla(0,0%,100%,.06);--bg-holiday-badge:rgba(239,68,68,.24);--bg-workday-badge:rgba(245,158,11,.24);--bg-warning-soft:rgba(245,158,11,.14);--text-accent:#5eead4;--text-on-accent-soft:#99f6e4;--text-soft-on-light:hsla(0,0%,100%,.68);--text-holiday:#fca5a5;--text-workday:#fcd34d;--text-warning:#fbbf24;--color-solar-term:#2dd4bf;--border-color-light:hsla(0,0%,100%,.04);--border-hover:hsla(0,0%,100%,.14);--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -2px rgba(0,0,0,.3);--shadow-brand-hover:0 4px 16px rgba(45,212,191,.1)}}[data-theme=dark]{--text-primary:hsla(0,0%,100%,.9);--text-secondary:hsla(0,0%,100%,.6);--text-muted:hsla(0,0%,100%,.4);--brand:#2dd4bf;--text-heading:#f1f5f9;--text-body:hsla(0,0%,100%,.6);--bg-body:#0f1219;--bg-surface:#1a1e28;--bg-elevated:#242834;--bg-footer:#0f1219;--bg-brand-light:rgba(20,184,166,.1);--bg-secondary:#2b3140;--bg-soft:#242834;--bg-subtle:#2b3140;--bg-accent-soft:rgba(20,184,166,.14);--bg-holiday-soft:rgba(239,68,68,.16);--bg-workday-soft:rgba(245,158,11,.16);--bg-calendar-hover:hsla(0,0%,100%,.06);--bg-holiday-badge:rgba(239,68,68,.24);--bg-workday-badge:rgba(245,158,11,.24);--bg-warning-soft:rgba(245,158,11,.14);--text-accent:#5eead4;--text-on-accent-soft:#99f6e4;--text-soft-on-light:hsla(0,0%,100%,.68);--text-holiday:#fca5a5;--text-workday:#fcd34d;--text-warning:#fbbf24;--border-color:hsla(0,0%,100%,.08);--border-color-light:hsla(0,0%,100%,.04);--border-hover:hsla(0,0%,100%,.14);--shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -2px rgba(0,0,0,.3);--shadow-brand-hover:0 4px 16px rgba(45,212,191,.1)}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--bg-body);color:var(--text-primary);font-family:var(--font-family-base);line-height:1.6;margin:0;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}.container{margin:0 auto;max-width:1200px;padding:0 var(--spacing-lg)}h1{font-size:22px;margin:0 0 4px}h1,h2{color:var(--text-primary);font-weight:600}h2{font-size:16px;margin:16px 0 8px}h3{color:var(--text-secondary);font-size:14px;font-weight:600;margin:12px 0 6px}.subtitle{color:var(--text-muted);font-size:13px;margin:0}.btn{align-items:center;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:4px;justify-content:center;padding:7px 14px;transition:all .15s;white-space:nowrap}.btn:hover{background:#f8fafc;border-color:#cbd5e1}.btn-primary{background:#1e293b;border-color:#1e293b;color:#fff}.btn-primary:hover{background:#334155;border-color:#334155}.btn-sm{font-size:12px;padding:4px 10px}.select-sm{color:var(--text-primary);padding:6px 10px}.select-sm,.textarea-field{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:13px}.textarea-field{color:var(--json-io-text-color,var(--text-primary));font-family:var(--font-family-mono);line-height:1.5;padding:var(--spacing-md);resize:vertical;transition:border-color .15s;width:100%}.json-tool-page{--json-io-text-color:#ac1817}.json-tool-page .ace_editor .ace_text-layer,.json-tool-page .ace_editor .ace_text-layer .ace_line,.json-tool-page .ace_editor .ace_text-layer .ace_line span{color:var(--json-io-text-color)!important}.textarea-field:focus{border-color:var(--color-brand);outline:none}.editor-container{display:grid;gap:16px;grid-template-columns:1fr 1fr}@media(max-width:768px){.editor-container{grid-template-columns:1fr}}.editor-panel{display:flex;flex-direction:column}.panel-header{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;font-weight:500;justify-content:space-between;margin-bottom:6px}.panel-link{color:var(--color-brand);cursor:pointer;font-size:12px}.panel-link:hover{color:var(--color-brand-dark)}.action-bar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.status{border-radius:var(--radius-sm);bottom:24px;font-size:13px;font-weight:500;left:50%;opacity:0;padding:10px 20px;pointer-events:none;position:fixed;transform:translate(-50%) translateY(80px);transition:all .3s;z-index:var(--z-tooltip)}.status.show{opacity:1;transform:translate(-50%) translateY(0)}.status.success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.status.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.status.info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.tool-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);display:block;padding:14px 16px;text-decoration:none;transition:all .2s}.tool-card:hover{border-color:var(--color-brand);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tool-card h3{color:#0d9488;font-size:14px;margin:0 0 4px;transition:color .2s ease}.tool-card:hover h3{color:#0f766e}.tool-card p{color:var(--text-muted);font-size:12px;margin:0}.section-tip{margin-top:32px;padding:16px 0}.section-tip-h{font-size:15px;font-weight:600;margin:0 0 8px}.para-sm,.section-tip p{color:var(--text-secondary);font-size:13px;line-height:1.8;margin:6px 0}.text-link{color:#2563eb;text-decoration:none}.text-link:hover{text-decoration:underline}.related-tools{margin-top:24px}.tag-link{background:var(--bg-brand-light);border-radius:var(--radius-full);color:var(--color-brand-dark);display:inline-block;font-size:12px;padding:4px 12px;text-decoration:none;transition:background .15s}.tag-link:hover{background:#ccfbf1}.stats-text{color:var(--text-muted);font-size:11px;margin-top:4px}.navbar{background:var(--bg-surface);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:var(--z-navbar)}.navbar-inner{align-items:center;display:flex;gap:4px;height:52px}.navbar-logo{color:var(--color-brand);font-size:16px;font-weight:700;margin-right:16px}.nav-item,.navbar-logo{text-decoration:none;white-space:nowrap}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:13px;padding:6px 10px;position:relative;transition:all .15s ease}.nav-item:hover{background:var(--bg-brand-light);color:var(--color-brand-dark);font-weight:600}.nav-item.active{color:var(--color-brand);font-weight:600}.nav-dropdown{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:grid;gap:2px;grid-template-columns:repeat(2,1fr);left:0;max-height:70vh;min-width:280px;overflow-y:auto;padding:8px 0;position:absolute;top:calc(100% - 2px);z-index:var(--z-tooltip)}.nav-dropdown a{border-radius:var(--radius-sm);color:var(--text-primary);display:block;font-size:13px;font-weight:500;margin:0 4px;padding:7px 12px;text-decoration:none}.nav-dropdown a:hover{background:var(--bg-brand-light);color:var(--color-brand-dark);font-weight:600}.app-footer{background:var(--bg-footer);border-top:1px solid var(--border-color);margin-top:48px;padding:32px 0 20px}.footer-links{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.footer-links a{color:var(--text-muted);font-size:12px;text-decoration:none}.footer-links a:hover{color:var(--color-brand)}.footer-copyright{align-items:center;display:flex;gap:8px;margin-top:16px}.footer-copyright,.footer-copyright a{color:var(--text-muted);font-size:12px}.footer-copyright a{text-decoration:none}.footer-copyright a:hover{color:var(--color-brand)}.footer-police-icon{height:14px;width:14px}.tools-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.category-section{margin-top:28px}.category-title{border-left:3px solid var(--color-brand);color:var(--text-primary);font-size:15px;font-weight:600;margin:0 0 12px;padding-left:10px}[data-theme=dark] .btn:hover{background:var(--bg-elevated,#242834);border-color:var(--border-hover,hsla(0,0%,100%,.14))}[data-theme=dark] .btn-primary{background:#14b8a6;border-color:#14b8a6}[data-theme=dark] .btn-primary:hover{background:#0d9488;border-color:#0d9488}[data-theme=dark] .status.success{background:#064e3b;border-color:#065f46;color:#a7f3d0}[data-theme=dark] .status.error{background:#450a0a;border-color:#991b1b;color:#fecaca}[data-theme=dark] .status.info{background:#1e3a5f;border-color:#1e40af;color:#bfdbfe}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff26}
