:root{--bg: #f1f5f9;--bg-grad-1: #eef2ff;--bg-grad-2: #f1f5f9;--card: #ffffff;--text: #0f172a;--text-dim: #64748b;--text-faint: #94a3b8;--border: #e2e8f0;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--accent: #4f46e5;--double: #0d9488;--double-bg: #ccfbf1;--double-soft: #f0fdfa;--single: #d97706;--single-bg: #fef3c7;--single-soft: #fffbeb;--holiday: #dc2626;--holiday-bg: #fee2e2;--makeup: #ea580c;--makeup-bg: #ffedd5;--rest: #0d9488;--work: #475569;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:var(--text);background:linear-gradient(160deg,var(--bg-grad-1),var(--bg-grad-2));background-attachment:fixed;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.app{max-width:560px;margin:0 auto;padding:20px 14px 40px}.app-header{text-align:center;margin-bottom:18px}.app-header h1{margin:0;font-size:26px;font-weight:800;letter-spacing:1px}.app-sub{margin:6px 0 0;font-size:12.5px;color:var(--text-dim)}.app-main{display:flex;flex-direction:column;gap:14px}.card{background:var(--card);border-radius:18px;box-shadow:var(--shadow);border:1px solid var(--border)}.query-card{padding:16px 16px 14px}.query-top{display:flex;justify-content:flex-end}.query-date-label{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-dim)}.query-date-input{border:1px solid var(--border);border-radius:10px;padding:6px 10px;font-size:14px;color:var(--text);background:#fff}.query-body{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.query-dateline{font-size:21px;font-weight:700;display:flex;align-items:baseline;gap:8px}.query-weekday{font-size:14px;font-weight:600;color:var(--text-dim)}.query-lunar{margin-top:4px;font-size:13px;color:var(--text-dim)}.query-holiday{color:var(--holiday);font-weight:600;margin-left:4px}.big-badge{flex-shrink:0;padding:12px 18px;border-radius:14px;font-size:20px;font-weight:800;letter-spacing:1px;text-align:center}.big-badge.rest-double{background:var(--double-bg);color:var(--double)}.big-badge.rest-single{background:var(--single-bg);color:var(--single)}.query-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.stat{background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:10px 8px;text-align:center}.stat-k{display:block;font-size:11px;color:var(--text-faint)}.stat-v{display:block;font-size:17px;font-weight:700;margin:2px 0}.stat-sub{display:block;font-size:10.5px;color:var(--text-dim)}.stat.status-rest .stat-v{color:var(--rest)}.stat.status-work .stat-v{color:var(--makeup)}.settings{overflow:hidden}.settings-summary{width:100%;display:flex;align-items:center;gap:10px;padding:13px 16px;background:transparent;border:none;text-align:left;font-size:13px;color:var(--text)}.settings-icon{font-size:16px}.settings-text{flex:1;color:var(--text-dim)}.inline-type{margin-left:4px;font-weight:800}.inline-type.rest-double{color:var(--double)}.inline-type.rest-single{color:var(--single)}.settings-caret{font-size:12px;color:var(--accent);font-weight:600}.settings-body{padding:0 16px 16px;border-top:1px dashed var(--border)}.settings-hint{font-size:12px;color:var(--text-dim);margin:12px 0;line-height:1.6}.settings-row{display:flex;gap:14px;flex-wrap:wrap}.settings-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-dim)}.settings-field input[type=date]{border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:14px;color:var(--text);background:#fff}.type-toggle{display:flex;gap:8px}.type-btn{padding:8px 18px;border-radius:10px;border:1.5px solid var(--border);background:#fff;font-size:14px;font-weight:700;color:var(--text-dim)}.type-btn.rest-double.active{border-color:var(--double);background:var(--double-bg);color:var(--double)}.type-btn.rest-single.active{border-color:var(--single);background:var(--single-bg);color:var(--single)}.calendar{padding:12px 10px 14px}.cal-header{display:flex;align-items:center;gap:8px;padding:2px 6px 12px}.cal-title{display:flex;align-items:baseline;gap:6px}.cal-year{font-size:14px;color:var(--text-dim)}.cal-month{font-size:22px;font-weight:800}.nav-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:#fff;font-size:20px;line-height:1;color:var(--text)}.nav-btn:active{background:#f1f5f9}.cal-header .cal-title{flex:1;justify-content:center}.today-btn{padding:7px 12px;border-radius:10px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:13px;font-weight:600}.cal-grid{display:flex;flex-direction:column;gap:4px}.cal-row{display:grid;grid-template-columns:34px repeat(7,1fr);gap:4px}.cal-weekdays{margin-bottom:2px}.weekday{text-align:center;font-size:12px;color:var(--text-dim);padding:4px 0}.weekday.is-weekend{color:var(--holiday)}.week-label{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;font-size:11px;font-weight:700;line-height:1.25}.week-label.rest-double{background:var(--double-bg);color:var(--double)}.week-label.rest-single{background:var(--single-bg);color:var(--single)}.week-label-count{font-size:9.5px;opacity:.8;font-weight:600}.day-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:54px;padding:4px 2px;border-radius:10px;border:1.5px solid transparent;background:#fff;color:var(--text);transition:transform .05s ease}.day-cell:active{transform:scale(.95)}.day-num{font-size:16px;font-weight:600;line-height:1.1}.day-sub{font-size:9.5px;color:var(--text-faint);max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.day-sub.holiday{color:var(--holiday);font-weight:700}.day-sub.term{color:var(--double)}.day-tag{position:absolute;top:3px;right:3px;font-size:9px;font-weight:800;width:14px;height:14px;display:flex;align-items:center;justify-content:center;border-radius:5px;color:#fff}.tag-rest{background:var(--rest)}.tag-work{background:var(--makeup)}.day-cell.reason-saturday-rest,.day-cell.reason-sunday{background:var(--double-soft)}.day-cell.reason-saturday-work{background:var(--single-soft)}.day-cell.reason-holiday{background:var(--holiday-bg)}.day-cell.reason-holiday .day-num{color:var(--holiday)}.day-cell.reason-makeup{background:var(--makeup-bg)}.day-cell.reason-makeup .day-num{color:var(--makeup)}.day-cell.is-outside{opacity:.4}.day-cell.is-today{border-color:var(--accent)}.day-cell.is-today .day-num{color:var(--accent);font-weight:800}.day-cell.is-selected{border-color:var(--text);box-shadow:0 0 0 2px #0f172a14}.legend{display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:center;padding:4px 8px}.legend-item{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-dim)}.legend-swatch{width:14px;height:14px;border-radius:5px;border:1px solid var(--border)}.legend-swatch.reason-saturday-rest{background:var(--double-soft);border-color:var(--double)}.legend-swatch.reason-saturday-work{background:var(--single-soft);border-color:var(--single)}.legend-swatch.reason-holiday{background:var(--holiday-bg);border-color:var(--holiday)}.legend-swatch.reason-makeup{background:var(--makeup-bg);border-color:var(--makeup)}.legend-swatch.reason-sunday{background:var(--double-soft);border-color:var(--double)}.app-footer{text-align:center;font-size:11px;color:var(--text-faint);margin-top:22px}@media (max-width: 380px){.cal-row{grid-template-columns:28px repeat(7,1fr);gap:3px}.day-cell{min-height:48px}.query-dateline{font-size:18px}.big-badge{font-size:17px;padding:10px 12px}}
