:root{--wptm-teal:#0ca7a8;--wptm-teal2:#0b9495;--wptm-bg:#f4f6f7;--wptm-text:#222;--wptm-muted:#8b9398;--wptm-line:#e9edef;--wptm-danger:#ef5350;--wptm-orange:#ff9800;--wptm-blue:#29b6f6}
*{box-sizing:border-box}
body.wptm-page{margin:0;background:var(--wptm-bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--wptm-text)}
body.wptm-page.admin-bar{padding-top:0}
.wptm-shell{min-height:100vh;max-width:720px;margin:0 auto;background:#fff;position:relative;box-shadow:0 0 30px rgba(0,0,0,.06)}
.wptm-hero{background:linear-gradient(160deg,var(--wptm-teal),var(--wptm-teal2));color:#fff;padding:18px 18px 14px;position:sticky;top:0;z-index:20;box-shadow:0 3px 10px rgba(0,0,0,.08)}
.admin-bar .wptm-hero{top:32px}
.wptm-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.wptm-brand{font-weight:700;font-size:22px;letter-spacing:.3px}.wptm-top-actions{display:flex;gap:4px}.wptm-icon-btn{appearance:none;border:0;background:transparent;color:#fff;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer;text-decoration:none}.wptm-icon-btn:hover{background:rgba(255,255,255,.12)}.wptm-icon-btn .dashicons{font-size:24px;width:24px;height:24px}.wptm-home-btn{flex-shrink:0}
.wptm-calendar-inline-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 8px}.wptm-inline-time{font-size:14px;opacity:.95;margin-bottom:6px}.wptm-inline-month{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:rgba(255,255,255,.16);padding:4px 10px;font-size:13px;font-weight:600}.wptm-calendar-inline-actions{display:flex;gap:6px}.wptm-inline-mini-btn{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06);color:#fff;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;cursor:pointer}.wptm-inline-mini-btn .dashicons{font-size:18px;width:18px;height:18px}
.wptm-trend{height:65px;margin:2px 0 4px}.wptm-trend svg{width:100%;height:100%}
.wptm-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;text-align:center}.wptm-day{border:0;background:transparent;color:rgba(255,255,255,.68);padding:0;cursor:pointer;border-radius:18px}.wptm-day .name{display:block;font-size:12px;margin-bottom:8px}.wptm-day .num{width:44px;height:44px;margin:0 auto;display:grid;place-items:center;border:2px solid rgba(255,255,255,.15);border-radius:50%;font-size:17px;color:#fff;transition:.18s}.wptm-day.active .num{background:#fff;color:var(--wptm-teal);border-color:#fff;font-weight:700;box-shadow:0 4px 12px rgba(0,0,0,.16)}.wptm-day.has-items .num{border-color:rgba(255,255,255,.35)}
.wptm-inline-calendar{padding:4px 0 2px}.wptm-inline-weekdays,.wptm-inline-grid{display:grid;grid-template-columns:repeat(7,1fr)}.wptm-inline-weekday{text-align:center;font-size:12px;color:rgba(255,255,255,.54);padding-bottom:4px}.wptm-inline-cell{appearance:none;border:0;background:transparent;color:#fff;min-height:58px;padding:4px 2px;border-radius:14px;text-align:center;cursor:pointer;position:relative}.wptm-inline-cell.is-other{opacity:.32}.wptm-inline-cell.is-selected{background:rgba(255,255,255,.14)}.wptm-inline-cell.is-selected::after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:20px;height:2px;border-radius:2px;background:#ffeb3b}.wptm-inline-cell.is-today .wptm-inline-cell-day{width:42px;height:42px;border-radius:50%;margin:0 auto 2px;background:#fff;color:var(--wptm-teal);display:grid;place-items:center;font-weight:700}.wptm-inline-cell-day{display:block;font-size:18px;line-height:1.2}.wptm-inline-lunar{display:block;font-size:10px;opacity:.9;margin-top:2px}.wptm-inline-dots{display:flex;justify-content:center;gap:3px;margin-top:3px;min-height:8px}.wptm-inline-dot{width:4px;height:4px;border-radius:50%;background:#ffd84c}
.wptm-main{padding-bottom:110px;background:#fff}.wptm-list-head{display:flex;align-items:flex-end;justify-content:space-between;padding:18px 20px 10px;background:#fff;border-bottom:1px solid var(--wptm-line)}.wptm-selected-label{font-size:20px;font-weight:700}.wptm-selected-date{margin-top:3px;color:var(--wptm-muted);font-size:13px}.wptm-ghost-btn{border:1px solid #dce5e7;background:#fff;color:var(--wptm-teal);border-radius:18px;padding:7px 13px;cursor:pointer}
.wptm-list{background:#fff}.wptm-item{position:relative;display:grid;grid-template-columns:46px 1fr 54px;gap:4px;align-items:center;min-height:84px;padding:12px 10px 12px 12px;border-bottom:1px solid var(--wptm-line);border-left:4px solid transparent}.wptm-item.priority-high{border-left-color:var(--wptm-orange)}.wptm-item.priority-urgent{border-left-color:var(--wptm-danger)}.wptm-check{width:27px;height:27px;border-radius:4px;border:2px solid var(--wptm-teal);background:#fff;display:grid;place-items:center;cursor:pointer;color:#fff}.wptm-item.completed .wptm-check{background:var(--wptm-teal)}.wptm-check .dashicons{font-size:19px;width:19px;height:19px}.wptm-content{min-width:0}.wptm-title{font-size:17px;line-height:1.35;font-weight:500;overflow-wrap:anywhere}.wptm-item.completed .wptm-title{text-decoration:line-through;color:#9aa0a4}.wptm-meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:7px;color:var(--wptm-teal);font-size:13px}.wptm-meta span{display:inline-flex;align-items:center;gap:4px}.wptm-meta .dashicons{font-size:15px;width:15px;height:15px}.wptm-notes{margin-top:8px;color:#92999d;font-size:13px;line-height:1.45}.wptm-actions{display:flex;flex-direction:column;gap:6px;align-items:center}.wptm-action{border:0;background:#f4f7f8;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#5c6b70;cursor:pointer}.wptm-action:hover{background:#e8f4f4;color:var(--wptm-teal)}.wptm-action.delete:hover{background:#ffeded;color:var(--wptm-danger)}.wptm-action .dashicons{font-size:17px;width:17px;height:17px}
.wptm-empty{text-align:center;padding:60px 20px 80px;color:var(--wptm-muted)}.wptm-empty-icon{margin:0 auto 12px;width:54px;height:54px;border-radius:50%;background:#eaf8f8;color:var(--wptm-teal);display:grid;place-items:center;font-size:28px;font-weight:700}.wptm-empty-title{font-size:17px;color:#5c666a;font-weight:600}.wptm-empty-sub{font-size:13px;margin-top:5px}
.wptm-fab{position:fixed;right:max(24px,calc((100vw - 720px)/2 + 24px));bottom:82px;width:64px;height:64px;border-radius:50%;border:0;background:var(--wptm-teal);color:#fff;font-size:38px;line-height:1;box-shadow:0 8px 20px rgba(0,0,0,.24);cursor:pointer;z-index:30}.wptm-fab:hover{transform:translateY(-2px)}
.wptm-bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(720px,100%);height:68px;background:#fff;border-top:1px solid var(--wptm-line);display:grid;grid-template-columns:repeat(4,1fr);z-index:25}.wptm-bottom-nav button{border:0;background:transparent;color:#9aa0a4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}.wptm-bottom-nav button.active{color:var(--wptm-teal)}.wptm-bottom-nav .dashicons{font-size:24px;width:24px;height:24px}.wptm-bottom-nav em{font-style:normal;font-size:11px}
.wptm-modal[hidden]{display:none}.wptm-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:flex-end;justify-content:center}.wptm-modal-mask{position:absolute;inset:0;background:rgba(0,0,0,.38)}.wptm-modal-card{position:relative;width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;padding:20px 20px 26px;box-shadow:0 -10px 30px rgba(0,0,0,.2)}.wptm-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.wptm-modal-head h2{font-size:21px;margin:0}.wptm-close{border:0;background:#f3f4f5;border-radius:50%;width:36px;height:36px;font-size:24px;cursor:pointer}.wptm-modal-card label{display:block;font-size:13px;color:#687277;margin:13px 0}.wptm-modal-card input,.wptm-modal-card textarea,.wptm-modal-card select{width:100%;border:1px solid #dce3e6;border-radius:10px;padding:12px 13px;margin-top:6px;font:inherit;background:#fff;outline:none}.wptm-modal-card input:focus,.wptm-modal-card textarea:focus,.wptm-modal-card select:focus{border-color:var(--wptm-teal);box-shadow:0 0 0 3px rgba(12,167,168,.09)}.wptm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wptm-save{width:100%;border:0;background:var(--wptm-teal);color:#fff;border-radius:12px;padding:14px 18px;font-size:16px;font-weight:700;cursor:pointer;margin-top:10px}
.wptm-login-card{max-width:460px;margin:12vh auto 0;background:#fff;border-radius:20px;padding:42px 28px;text-align:center;box-shadow:0 15px 40px rgba(0,0,0,.08)}.wptm-login-icon{width:72px;height:72px;border-radius:50%;margin:0 auto 18px;background:#e8f7f7;color:var(--wptm-teal);display:grid;place-items:center;font-size:36px;font-weight:800}.wptm-login-card h1{margin:0 0 10px}.wptm-login-card p{color:var(--wptm-muted);line-height:1.6}.wptm-login-btn{display:inline-block;margin-top:12px;background:var(--wptm-teal);color:#fff;text-decoration:none;padding:12px 24px;border-radius:10px;font-weight:700}
@media(max-width:782px){.admin-bar .wptm-hero{top:46px}}
@media(max-width:520px){.wptm-hero{padding:12px 10px 12px}.wptm-brand{font-size:19px}.wptm-week{gap:2px}.wptm-day .num{width:39px;height:39px}.wptm-trend{height:55px}.wptm-grid2{grid-template-columns:1fr}.wptm-item{grid-template-columns:42px 1fr 44px}.wptm-fab{right:18px;width:58px;height:58px}.wptm-list-head{padding-left:16px;padding-right:16px}.wptm-inline-cell{min-height:54px}.wptm-inline-cell-day{font-size:16px}.wptm-inline-lunar{font-size:9px}.wptm-calendar-inline-head{padding-top:0}.wptm-inline-time{font-size:13px}.wptm-inline-month{font-size:12px;padding:4px 9px}}

/* v1.3 年月切换、节日标记与日期跳转 */
.wptm-inline-month{appearance:none;border:0;color:#fff;cursor:pointer;font:inherit}
.wptm-inline-month .dashicons{font-size:14px;width:14px;height:14px;margin-left:2px;vertical-align:-2px}
.wptm-month-picker[hidden]{display:none}
.wptm-month-picker{margin:0 0 8px;padding:10px;border-radius:14px;background:rgba(0,0,0,.12);backdrop-filter:blur(6px)}
.wptm-month-picker-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:8px}
.wptm-month-picker-head strong{text-align:center;font-size:16px;color:#fff}
.wptm-picker-year-btn{appearance:none;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.wptm-picker-year-btn .dashicons{font-size:17px;width:17px;height:17px}
.wptm-month-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.wptm-picker-month{appearance:none;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);color:#fff;border-radius:9px;padding:8px 4px;cursor:pointer;font-size:12px}
.wptm-picker-month:hover,.wptm-picker-month.active{background:#fff;color:var(--wptm-teal);border-color:#fff;font-weight:700}
.wptm-picker-month.current:not(.active){box-shadow:inset 0 0 0 1px #ffe45c}
.wptm-picker-today{appearance:none;width:100%;border:0;background:transparent;color:#fff;opacity:.86;padding:8px 0 1px;cursor:pointer;font-size:12px}
.wptm-inline-lunar.festival{color:#ffe45c;font-weight:700;opacity:1}
.wptm-inline-dots{position:relative;align-items:center}
.wptm-inline-count{min-width:14px;height:14px;padding:0 3px;border-radius:999px;background:rgba(255,255,255,.2);color:#fff;font-size:9px;line-height:14px;text-align:center}
.wptm-scroll-highlight{animation:wptmFlash 1.3s ease}
@keyframes wptmFlash{0%{background:#fff9d8}45%{background:#e6fbfb}100%{background:#fff}}
@media(max-width:520px){.wptm-month-picker{padding:8px}.wptm-month-picker-grid{gap:4px}.wptm-picker-month{padding:7px 2px;font-size:11px}}

/* v1.4：底部“日历”独立月视图（右上角日历仍使用原来的顶部展开月历） */
.wptm-page-calendar{background:#fff;min-height:calc(100vh - 68px);padding:20px 18px 24px}
.wptm-page-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.wptm-page-calendar-heading{min-width:0}
.wptm-page-calendar-kicker{font-size:18px;font-weight:700;color:#4d555a;line-height:1.2;margin-bottom:6px}
.wptm-page-calendar-month-row{display:flex;align-items:center;gap:4px}
.wptm-page-calendar-month-row strong{font-size:20px;color:#596168;min-width:46px;text-align:center}
.wptm-page-cal-nav{appearance:none;border:0;background:transparent;color:#879096;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.wptm-page-cal-nav:hover{background:#f1f5f6;color:var(--wptm-teal)}
.wptm-page-cal-nav .dashicons{font-size:18px;width:18px;height:18px}
.wptm-page-calendar-actions{display:flex;align-items:center;gap:10px}
.wptm-page-cal-action{appearance:none;border:0;background:transparent;color:#555f64;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;cursor:pointer;font-size:28px;line-height:1}
.wptm-page-cal-action:hover{background:#f2f5f6;color:var(--wptm-teal)}
.wptm-page-cal-more{font-size:19px;letter-spacing:2px;padding-bottom:8px}
.wptm-page-calendar-weekdays,.wptm-page-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.wptm-page-calendar-weekdays{border-top:1px solid #edf0f1;border-left:1px solid #edf0f1}
.wptm-page-cal-weekday{padding:10px 4px;text-align:center;font-size:12px;font-weight:600;color:#309d9c;border-right:1px solid #edf0f1;border-bottom:1px solid #edf0f1;background:#fff}
.wptm-page-calendar-grid{border-left:1px solid #edf0f1}
.wptm-page-cal-cell{appearance:none;border:0;border-right:1px solid #edf0f1;border-bottom:1px solid #edf0f1;background:#fff;min-height:118px;padding:7px 5px;text-align:left;cursor:pointer;overflow:hidden;position:relative;color:#4f595f;font:inherit}
.wptm-page-cal-cell:hover{background:#fbfefe}
.wptm-page-cal-cell.is-other{background:#fbfcfc;color:#bdc4c8}
.wptm-page-cal-cell.is-selected{box-shadow:inset 0 0 0 2px rgba(12,167,168,.72);z-index:2}
.wptm-page-cal-date-line{display:flex;align-items:center;justify-content:center;gap:4px;min-height:28px;margin-bottom:4px;white-space:nowrap}
.wptm-page-cal-day{font-size:13px;color:inherit}
.wptm-page-cal-lunar{font-size:9px;color:#a5adb1;overflow:hidden;text-overflow:ellipsis}
.wptm-page-cal-lunar.festival{color:#e66b70;font-weight:700}
.wptm-page-cal-cell.is-today .wptm-page-cal-day{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#dff4f4;color:var(--wptm-teal);font-weight:700;font-size:14px}
.wptm-page-cal-events{display:flex;flex-direction:column;gap:2px;min-width:0}
.wptm-page-cal-event{display:block;width:100%;border-radius:1px;color:#fff;font-size:9px;line-height:1.25;padding:3px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wptm-page-cal-event b{font-weight:700}
.wptm-page-cal-event.normal{background:#21b6bb}
.wptm-page-cal-event.high{background:#ff8a2a}
.wptm-page-cal-event.urgent{background:#ef6175}
.wptm-page-cal-event.completed{background:#aab2b6;text-decoration:line-through}
.wptm-page-cal-overflow{font-size:10px;color:#6e777c;padding:1px 3px}
body.wptm-page-calendar-mode .wptm-main{padding-bottom:68px}
body.wptm-page-calendar-mode .wptm-shell{background:#fff}

@media(max-width:620px){
  .wptm-page-calendar{padding:14px 8px 16px}
  .wptm-page-calendar-kicker{font-size:16px}
  .wptm-page-calendar-month-row strong{font-size:18px}
  .wptm-page-cal-cell{min-height:94px;padding:5px 3px}
  .wptm-page-cal-weekday{padding:8px 2px;font-size:11px}
  .wptm-page-cal-date-line{gap:2px;min-height:24px}
  .wptm-page-cal-day{font-size:12px}
  .wptm-page-cal-lunar{font-size:8px;max-width:34px}
  .wptm-page-cal-event{font-size:8px;padding:2px 3px}
}
@media(max-width:420px){
  .wptm-page-calendar{padding-left:4px;padding-right:4px}
  .wptm-page-cal-cell{min-height:82px;padding:4px 2px}
  .wptm-page-cal-event{font-size:7px}
  .wptm-page-cal-cell.is-today .wptm-page-cal-day{width:26px;height:26px;font-size:12px}
  .wptm-page-cal-lunar{display:none}
}

/* v1.5 交互性能反馈 */
.wptm-item.pending{opacity:.68}
.wptm-save:disabled{opacity:.68;cursor:wait}
.wptm-toast{position:fixed;left:50%;bottom:154px;transform:translateX(-50%);z-index:100000;background:rgba(27,34,38,.92);color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;line-height:1;box-shadow:0 6px 18px rgba(0,0,0,.2);white-space:nowrap}
.wptm-toast.saving{background:rgba(12,167,168,.95)}
.wptm-toast.error{background:rgba(239,83,80,.96)}
.wptm-toast[hidden]{display:none}
