:root{--accent:#c62828;--accent-hover:#b71c1c;--accent-light:#ffebee;--accent-mid:#ef9a9a;--bg:#f4f4f6;--surface:#fff;--surface-raised:#fff;--text-primary:#1a1a1a;--text-secondary:#666;--text-tertiary:#999;--border:#e4e4e7;--border-strong:#d1d1d6;--radius-sm:4px;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 3px #00000014;--shadow:0 2px 8px #0000001a;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);min-height:100vh}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--accent);color:#fff;padding:0 24px}.app-header__inner{align-items:center;gap:20px;max-width:1200px;margin:0 auto;padding:16px 0;display:flex}.app-header__brand{flex-shrink:0;align-items:center;gap:10px;display:flex}.app-header__icon{opacity:.9}.app-header__title{white-space:nowrap;font-size:20px;font-weight:700}.app-header__sub{opacity:.75;font-size:13px;line-height:1.4}.app-main{flex:1;padding:24px}.app-layout{grid-template-columns:1fr 380px;align-items:start;gap:24px;max-width:1200px;margin:0 auto;display:grid}.app-layout__calendar{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.app-layout__sidebar{flex-direction:column;gap:0;display:flex}.app-divider{background:var(--border);height:1px;margin:0 4px}.app-footer{text-align:center;color:var(--text-tertiary);border-top:1px solid var(--border);background:var(--surface);flex-direction:column;align-items:center;gap:8px;padding:16px;font-size:12px;display:flex}.app-footer__source{color:var(--text-secondary);align-items:center;gap:5px;text-decoration:none;display:inline-flex}.app-footer__source:hover{color:var(--accent)}.section-title{color:var(--text-primary);font-size:16px;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:5px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--secondary{color:var(--text-primary);border:1px solid var(--border);background:#f0f0f2}.btn--secondary:hover:not(:disabled){background:#e8e8eb}.btn--ghost{color:var(--text-secondary);background:0 0}.btn--ghost:hover:not(:disabled){color:var(--text-primary);background:#f0f0f2}.btn--danger:hover:not(:disabled){color:var(--accent);background:#fff0f0}.btn--sm{padding:4px 10px;font-size:12px}.btn--full{justify-content:center;width:100%;padding:10px;font-size:14px}.calendar{padding:0}.cal-nav{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:14px 16px;display:flex}.cal-nav__center{flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.cal-nav__title{color:var(--text-primary);letter-spacing:.02em;font-size:16px;font-weight:700}.cal-nav__today{color:var(--accent);background:var(--accent-light);cursor:pointer;border:none;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500}.cal-nav__today:hover{background:var(--accent-mid);color:#fff}.cal-nav__btn{border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.cal-nav__btn:hover{background:var(--bg);color:var(--text-primary)}.cal-dow{border-bottom:1px solid var(--border);background:#fafafa;grid-template-columns:repeat(7,1fr);display:grid}.cal-dow__cell{text-align:center;color:var(--text-secondary);padding:8px 0;font-size:12px;font-weight:500}.cal-dow__cell--weekend{color:var(--accent)}.cal-grid{background:var(--border);grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.cal-cell{background:var(--surface);cursor:pointer;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:64px;padding:8px 4px 6px;transition:background .12s;display:flex}.cal-cell:hover:not(.cal-cell--empty){background:#fafafa}.cal-cell--empty{cursor:default;background:#fafafa}.cal-cell--today{background:var(--accent-light)}.cal-cell--today .cal-cell__solar{color:var(--accent);font-weight:700}.cal-cell--selected{background:var(--accent)}.cal-cell--selected .cal-cell__solar,.cal-cell--selected .cal-cell__lunar{color:#fff!important}.cal-cell--weekend .cal-cell__solar{color:var(--accent)}.cal-cell__solar{color:var(--text-primary);font-size:18px;font-weight:400;line-height:1}.cal-cell__lunar{color:var(--text-tertiary);font-size:11px;line-height:1}.cal-cell__lunar--special{color:var(--accent);font-weight:600}.cal-cell--selected .cal-cell__lunar--special{color:#ffffffe6!important}.cal-footer{color:var(--text-tertiary);border-top:1px solid var(--border);background:#fafafa;justify-content:space-between;padding:10px 16px;font-size:12px;display:flex}.event-form{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:16px;padding:20px;display:flex}.form-hint{color:var(--text-tertiary);border-radius:var(--radius-sm);border:1px dashed var(--border-strong);background:#f8f8fa;padding:8px 10px;font-size:12px}.form-hint--selected{background:var(--accent-light);border-color:var(--accent-mid);color:var(--accent-hover);border-style:solid;align-items:center;gap:6px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-secondary);font-size:12px;font-weight:500}.form-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);background:var(--surface);outline:none;padding:8px 10px;font-family:inherit;font-size:14px;transition:border-color .15s}.form-input:focus{border-color:var(--accent)}.form-input--year{text-align:center;width:80px}.form-select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);background:var(--surface);cursor:pointer;outline:none;flex:1;padding:8px 10px;font-family:inherit;font-size:14px}.form-select:focus{border-color:var(--accent)}.form-row{gap:8px;display:flex}.form-row--year{align-items:center;gap:12px}.form-year-field{align-items:center;gap:6px;display:flex}.form-year-label{color:var(--text-secondary);white-space:nowrap;font-size:13px}.form-checkbox{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;margin-top:4px;font-size:13px;display:flex}.form-checkbox input{accent-color:var(--accent);width:14px;height:14px}.form-preview{flex-wrap:wrap;gap:6px;display:flex}.form-preview__date{background:var(--accent-light);color:var(--accent-hover);border-radius:3px;padding:3px 8px;font-family:SF Mono,Consolas,monospace;font-size:12px}.form-preview__more{color:var(--text-tertiary);padding:3px 0;font-size:12px}.form-error{color:var(--accent);background:var(--accent-light);border-radius:var(--radius-sm);border-left:3px solid var(--accent);padding:8px 10px;font-size:12px}.event-list{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}.event-list__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.event-list__empty{text-align:center;color:var(--text-tertiary);flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.event-list__empty p{font-size:14px}.event-list__empty-hint{font-size:12px}.event-list__items{flex-direction:column;gap:8px;display:flex}.event-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:10px;padding:12px 14px;transition:border-color .15s;display:flex}.event-card:hover{border-color:var(--border-strong)}.event-card__body{flex:1;min-width:0}.event-card__name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.event-card__meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.event-card__badge{background:var(--accent-light);color:var(--accent);border-radius:3px;padding:2px 7px;font-size:12px;font-weight:500}.event-card__range,.event-card__count{color:var(--text-tertiary);font-size:12px}.event-card__actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.event-list__footer{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.event-list__tip{color:var(--text-tertiary);font-size:12px;line-height:1.6}@media (width<=900px){.app-layout{grid-template-columns:1fr}.app-layout__sidebar{order:-1}.app-main{padding:16px}.app-header__inner{flex-direction:column;align-items:flex-start;gap:8px}}
