*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #4a90d9;--color-primary-dark: #357abd;--color-bg: #f5f7fa;--color-surface: #ffffff;--color-text: #2c3e50;--color-text-light: #6c7a89;--color-border: #dce1e8;--color-error: #e74c3c;--color-success: #27ae60;--color-warning: #f39c12;--radius: 8px;--shadow: 0 1px 4px rgba(0, 0, 0, .08);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh}.app-container{max-width:640px;margin:0 auto;padding:1rem;min-height:100vh}.app-container.loading{display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-text{color:var(--color-text-light);margin-top:.5rem}.app-header{text-align:center;padding:1.5rem 0 1rem}.app-header h1{font-size:1.6rem;font-weight:700}.subtitle{color:var(--color-text-light);font-size:.9rem;margin-top:.25rem}.error-banner{background:#fdecea;color:var(--color-error);padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem;border:1px solid #f5c6cb}.app-content{display:flex;flex-direction:column;gap:1rem;padding-bottom:5rem}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.card h2{font-size:1.05rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.config-form{display:flex;flex-direction:column;gap:1rem}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-field>span{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-field input[type=text],.form-field input[type=number],.form-field input[type=email],.form-field input[type=url],.form-field select{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;font-family:var(--font);color:var(--color-text);background:var(--color-surface);transition:border-color .15s}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a90d926}.form-field input[type=range]{width:100%;margin:.25rem 0;accent-color:var(--color-primary)}.form-field input:disabled,.form-field select:disabled{opacity:.5;cursor:not-allowed}.range-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-text-light)}.sort-selector label{display:flex;flex-direction:column;gap:.35rem}.sort-selector span{font-size:.875rem;font-weight:500}.sort-selector select{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;font-family:var(--font);color:var(--color-text);background:var(--color-surface)}.section-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.checkbox-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.95rem}.checkbox-label input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--color-primary)}.checkbox-label.future{opacity:.5}.future-badge{font-size:.8rem;color:var(--color-text-light);font-style:normal}.notification-settings{display:flex;flex-direction:column;gap:1rem}.test-notification{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.test-status{font-size:.85rem;color:var(--color-text-light)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.25rem;border:none;border-radius:var(--radius);font-size:.95rem;font-weight:600;font-family:var(--font);cursor:pointer;transition:background .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-secondary{background:#ecf0f1;color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:#d5dbdb}.save-bar{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 -2px 8px #0000000f;z-index:10}.save-bar .btn-primary{flex-shrink:0}.save-message{color:var(--color-success);font-size:.875rem;font-weight:500}.save-hint{color:var(--color-warning);font-size:.8rem}@media (min-width: 640px){.app-container{padding:2rem 1.5rem}.save-bar{max-width:640px;left:50%;transform:translate(-50%);border-radius:var(--radius) var(--radius) 0 0}}
