*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-success: #10b981;--color-error: #ef4444;--color-bg: #f3f4f6;--color-surface: #ffffff;--color-text: #1f2937;--color-text-secondary: #6b7280;--color-border: #d1d5db;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .06)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}#root{width:100%}.app-container{max-width:900px;margin:0 auto;padding:24px 16px;min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;display:flex;flex-direction:column;gap:28px}.tool-section{display:flex;flex-direction:column;gap:20px}.app-header{text-align:center;margin-bottom:24px}.app-header h1{font-size:2rem;font-weight:700;color:var(--color-primary);margin-bottom:4px}.app-header p{color:var(--color-text-secondary);font-size:.95rem}.app-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:2px solid var(--color-border)}.app-tab{padding:10px 28px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:1rem;font-weight:500;color:var(--color-text-secondary);transition:all .2s}.app-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.app-tab:hover:not(.active){color:var(--color-text)}.options-panel{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:20px}.options-panel h2{font-size:1.1rem;font-weight:600;margin-bottom:16px;color:var(--color-text)}.options-grid{display:flex;gap:24px;margin-bottom:20px}.option-group{flex:1}.number-inputs{display:flex;flex-direction:column;gap:12px}.option-label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;font-weight:500;color:var(--color-text-secondary)}.option-label input[type=number],.option-label select{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;color:var(--color-text);outline:none;transition:border-color .2s;width:100%;background:#fff}.option-label input[type=number]:focus,.option-label select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f626}.checkbox-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(--color-text);cursor:pointer;padding:4px 0}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.generate-btn{width:100%;padding:12px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.generate-btn:hover:not(:disabled){background:var(--color-primary-hover)}.generate-btn:disabled{opacity:.6;cursor:not-allowed}.regex-section{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.regex-toggle{margin-bottom:8px}.regex-input-group{margin-top:8px}.regex-input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font-family:Cascadia Code,Fira Code,Consolas,Monaco,monospace;font-size:.9rem;color:var(--color-text);outline:none;transition:border-color .2s;box-sizing:border-box}.regex-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f626}.regex-hint{margin-top:6px;font-size:.78rem;color:var(--color-text-secondary);line-height:1.5}.regex-hint code{background:var(--color-bg);padding:1px 5px;border-radius:3px;font-size:.76rem;margin:0 2px}.disabled-section{opacity:.45;pointer-events:none}.cron-field-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);margin-bottom:0}.cron-field-tab{padding:8px 18px;background:var(--color-bg);border:1px solid var(--color-border);border-bottom:none;border-radius:6px 6px 0 0;cursor:pointer;font-size:.9rem;color:var(--color-text-secondary);transition:all .2s;margin-right:-1px}.cron-field-tab.active{background:var(--color-surface);color:var(--color-primary);font-weight:600;border-bottom:1px solid var(--color-surface);position:relative;z-index:1}.cron-field-tab:hover:not(.active){background:#e9ecef;color:var(--color-text)}.cron-tab-content{border:1px solid var(--color-border);border-top:none;padding:16px 20px;background:var(--color-surface);border-radius:0 0 6px 6px;margin-bottom:20px}.cron-radio-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:.9rem;color:var(--color-text);cursor:pointer}.cron-radio-row input[type=radio]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.cron-inline-input{width:70px;padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;font-size:.9rem;color:var(--color-text);outline:none;text-align:center;transition:border-color .2s}.cron-inline-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f626}.cron-checkbox-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px 8px;padding:8px 0 4px 24px}.cron-checkbox-item{display:flex;align-items:center;gap:4px;font-size:.82rem;color:var(--color-text);cursor:pointer;white-space:nowrap}.cron-checkbox-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.cron-expression-fieldset{border:1px solid var(--color-border);border-radius:6px;padding:16px 20px;margin:0}.cron-expression-fieldset legend{font-size:.9rem;font-weight:500;color:var(--color-text-secondary);padding:0 8px}.cron-expression-content{display:flex;flex-direction:column;gap:10px}.cron-expr-header{display:grid;grid-template-columns:80px repeat(7,1fr);gap:8px;align-items:center}.cron-expr-col-header{text-align:center;font-size:.82rem;font-weight:600;color:var(--color-text-secondary)}.cron-expr-row{display:grid;grid-template-columns:80px repeat(7,1fr);gap:8px;align-items:center}.cron-expr-row:last-child{grid-template-columns:80px 1fr auto}.cron-expr-label{font-size:.82rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.cron-field-input{width:100%;padding:6px 8px;border:1px solid var(--color-border);border-radius:4px;font-size:.85rem;font-family:Cascadia Code,Fira Code,Consolas,Monaco,monospace;color:var(--color-text);background:var(--color-bg);text-align:center;outline:none;box-sizing:border-box}.cron-full-input{width:100%;padding:6px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:.9rem;font-family:Cascadia Code,Fira Code,Consolas,Monaco,monospace;color:var(--color-text);outline:none;transition:border-color .2s;box-sizing:border-box}.cron-full-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f626}.cron-parse-btn{padding:6px 14px;background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.cron-parse-btn:hover{background:var(--color-primary);color:#fff}.cron-action-buttons{display:flex;gap:12px;margin-top:16px}.cron-action-buttons .generate-btn{flex:1}.cron-next-btn{background:var(--color-surface)!important;color:var(--color-primary)!important;border:1px solid var(--color-primary)!important}.cron-next-btn:hover{background:var(--color-primary)!important;color:#fff!important}.cron-next-times{margin-top:16px;background:var(--color-bg);border-radius:6px;padding:16px 20px}.cron-next-times h3{font-size:.9rem;font-weight:600;color:var(--color-text);margin-bottom:10px}.cron-next-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.cron-next-list li{padding:8px 12px;background:var(--color-surface);border-radius:4px;font-family:Cascadia Code,Fira Code,Consolas,Monaco,monospace;font-size:.9rem;color:var(--color-text);counter-increment:exec-counter}.cron-next-list li:before{content:counter(exec-counter) ". ";color:var(--color-text-secondary);font-weight:500}.cron-next-list{counter-reset:exec-counter}.cron-next-empty{font-size:.88rem;color:var(--color-text-secondary)}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);padding:12px 16px;margin-bottom:20px;color:var(--color-error);font-size:.9rem}.password-display{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.password-display.empty{text-align:center;color:var(--color-text-secondary);padding:48px 24px}.display-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.display-header h2{font-size:1.1rem;font-weight:600}.display-actions{display:flex;gap:8px}.copy-all-btn{padding:6px 16px;background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.copy-all-btn:hover{background:var(--color-primary);color:#fff}.mask-btn{padding:6px 16px;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.mask-btn:hover{border-color:var(--color-text-secondary);color:var(--color-text)}.password-list{display:flex;flex-direction:column;gap:8px;max-height:682px;overflow-y:auto}.password-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:var(--color-bg);border-radius:6px;transition:background-color .15s}.password-item:hover{background:#e5e7eb}.password-text{font-family:Cascadia Code,Fira Code,Consolas,Monaco,monospace;font-size:.95rem;word-break:break-all;flex:1;color:var(--color-text)}.copy-btn{padding:4px 14px;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.copy-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.copy-btn.copied{background:var(--color-success);color:#fff;border-color:var(--color-success)}@media(max-width:768px){.app-container{padding:16px 12px}.app-header h1{font-size:1.6rem}.app-tabs{margin-bottom:16px}.app-tab{padding:8px 18px;font-size:.9rem}.options-grid{flex-direction:column;gap:16px}.checkbox-inputs{grid-template-columns:1fr}.display-header{flex-direction:column;align-items:flex-start;gap:8px}.display-actions{width:100%}.copy-all-btn,.mask-btn{flex:1;text-align:center}.cron-field-tabs{flex-wrap:wrap}.cron-field-tab{padding:6px 12px;font-size:.82rem}.cron-checkbox-grid{grid-template-columns:repeat(5,1fr)}.cron-expr-header,.cron-expr-row{grid-template-columns:70px repeat(7,1fr);gap:4px}.cron-expr-row:last-child{grid-template-columns:70px 1fr auto}.cron-field-input,.cron-full-input{font-size:.78rem;padding:4px}.cron-expr-label{font-size:.75rem}}@media(max-width:480px){.password-item{flex-direction:column;align-items:stretch;gap:6px}.copy-btn{width:100%;text-align:center;padding:6px 14px}.cron-checkbox-grid{grid-template-columns:repeat(4,1fr)}.cron-expr-header{display:none}.cron-expr-row{grid-template-columns:1fr;gap:4px}.cron-expr-row:last-child{grid-template-columns:1fr}.cron-parse-btn{width:100%;text-align:center}}.app-footer{display:flex;justify-content:center;align-items:center;padding:24px 0 8px;margin-top:32px;font-size:.8rem;color:var(--color-text-secondary)}.app-footer a{display:inline-flex;align-items:center;gap:6px;color:var(--color-text-secondary);text-decoration:none;transition:color .2s}.beian-icon{width:16px;height:16px;vertical-align:middle}.app-footer a:hover{color:var(--color-primary)}.footer-divider{margin:0 8px;color:var(--color-border)}
