:root{--brand:#7c9eff;--brand-deep:#5a7fd6;--pink:#ff9eb5;--mint:#6fcf97;--sun:#ffd166;--bg:#f6f8ff;--ink:#2c3e50;--ink-soft:#6b7a99;--card:#fff;--border:#7c9eff1f;--sider-bg:#ffffffbf;--header-bg:#ffffffb3;--radius:16px;--shadow:0 8px 24px #7c9eff1f;--shadow-lg:0 16px 48px #7c9eff2e;--heat-empty:#f0f3fb;--heat-empty-text:#8a97b3;--gradient-text-a:#7c9eff;--gradient-text-b:#ff9eb5;--body-glow-a:#ff9eb52e;--body-glow-b:#7c9eff2e;--logo-text:#fff;--bg-image:none;--bg-overlay:#f6f8ff8c;--font-family:"PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100vh;color:var(--ink);font-family:var(--font-family);margin:0;padding:0}#root{background:0 0}body.has-bg-image .ant-layout,body.has-bg-image .ant-layout-content{background:0 0!important}body{background-color:var(--bg);background-image:linear-gradient(var(--bg-overlay), var(--bg-overlay)), radial-gradient(1200px 600px at 100% -10%, var(--body-glow-a), transparent 60%), radial-gradient(1000px 500px at -10% 10%, var(--body-glow-b), transparent 55%), var(--bg-image);background-position:50%,50%,50%,50%;background-repeat:no-repeat,no-repeat,no-repeat,no-repeat;background-size:cover,auto,auto,cover;background-attachment:fixed,fixed,fixed,fixed;transition:background-color .3s,color .3s}body.has-bg-image .stat-card,body.has-bg-image .ant-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}a{color:var(--brand-deep);text-decoration:none}.app-logo{background:linear-gradient(135deg, var(--brand), var(--pink));width:32px;height:32px;color:var(--logo-text);border-radius:9px;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:inline-flex}.page-container{max-width:1280px;margin:0 auto;padding:24px}.page-title{color:var(--ink);margin:0 0 4px;font-size:24px;font-weight:700}.page-subtitle{color:var(--ink-soft);margin-bottom:24px}.stat-card{border-radius:var(--radius);background:var(--card);overflow:hidden}.stat-card .ant-statistic-title{color:var(--ink-soft)}.gradient-text{background:linear-gradient(135deg, var(--gradient-text-a), var(--gradient-text-b));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.tag-soft{border-radius:999px;padding:2px 10px;font-size:12px}.heat-cell{aspect-ratio:1;color:var(--heat-empty-text);background:var(--heat-empty);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;justify-content:center;align-items:center;font-size:12px;transition:transform .15s;display:flex}.heat-cell:hover{transform:scale(1.08)}.heat-cell.done{background:linear-gradient(135deg, var(--brand), #a78bfa);color:#fff;font-weight:600}.heat-cell.today{outline:2px solid var(--sun);outline-offset:1px}.empty-cta{text-align:center;color:var(--ink-soft);padding:48px 16px}.dashboard-avatar{object-fit:cover;width:72px;height:72px;box-shadow:var(--shadow);border:3px solid #fff;border-radius:50%;flex-shrink:0}.dashboard-avatar--fallback{color:#fff;background:linear-gradient(135deg, var(--brand), var(--pink));letter-spacing:0;-webkit-user-select:none;user-select:none;place-items:center;font-size:30px;font-weight:600;display:grid}.avatar-uploader{outline:none;flex-direction:column;align-items:center;margin-bottom:20px;display:flex}.avatar-uploader__ring{background:linear-gradient(135deg, var(--brand), var(--pink));cursor:pointer;border-radius:50%;width:96px;height:96px;padding:3px;transition:transform .2s,box-shadow .2s;position:relative;box-shadow:0 6px 18px #7c9eff40}.avatar-uploader__ring:hover{transform:scale(1.04);box-shadow:0 10px 26px #7c9eff59}.avatar-uploader__ring:focus-visible{outline-offset:2px;outline:3px solid #7c9eff66}.avatar-uploader__img{object-fit:cover;background:var(--card);border-radius:50%;width:100%;height:100%;display:block}.avatar-uploader__placeholder{color:#fff;background:#ffffff40;border-radius:50%;place-items:center;width:100%;height:100%;font-size:40px;display:grid}.avatar-uploader__mask{color:#fff;opacity:0;background:#1e293b8c;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;transition:opacity .2s;display:flex;position:absolute;inset:3px}.avatar-uploader__mask .anticon{font-size:20px}.avatar-uploader__ring:hover .avatar-uploader__mask{opacity:1}body.theme-dark .ant-layout,body.theme-dark .ant-layout-content{background:0 0!important}body.theme-dark .ant-card{background:var(--card);border-color:var(--border)}body.theme-dark .ant-modal-content,body.theme-dark .ant-modal-header{background:var(--card)}body.theme-dark .ant-input,body.theme-dark .ant-input-number,body.theme-dark .ant-picker,body.theme-dark .ant-select-selector{border-color:var(--border)!important;color:var(--ink)!important;background:#ffffff0a!important}body.theme-dark .ant-table{background:0 0}body.theme-dark .ant-table-thead>tr>th{color:var(--ink-soft)!important;border-bottom-color:var(--border)!important;background:#ffffff08!important}body.theme-dark .ant-table-tbody>tr>td{border-bottom-color:var(--border)!important}body.theme-dark .ant-table-tbody>tr:hover>td{background:#ffffff08!important}body.theme-dark .ant-tabs-tab,body.theme-dark .ant-empty-description{color:var(--ink-soft)}body.theme-dark .ant-divider{border-color:var(--border)}body.theme-anime .app-logo{border-radius:12px;box-shadow:0 4px 12px #ff6fae66}body.theme-anime .ant-card{border-radius:22px}body.theme-anime .ant-card-head{border-bottom-color:var(--border)}body.theme-anime:before{content:"🌸";opacity:.35;pointer-events:none;z-index:0;font-size:40px;animation:6s ease-in-out infinite fw-float;position:fixed;top:80px;right:24px}body.theme-anime:after{content:"✨";opacity:.3;pointer-events:none;z-index:0;font-size:28px;animation:8s ease-in-out infinite reverse fw-float;position:fixed;bottom:40px;left:260px}@keyframes fw-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-14px)rotate(8deg)}}body.theme-anime .ant-btn-primary{box-shadow:0 6px 16px #ff6fae59}body.theme-anime .page-title{letter-spacing:.5px}body.theme-anime .avatar-uploader__ring{border-radius:28%;box-shadow:0 8px 20px #ff6fae66}body.theme-anime .avatar-uploader__img,body.theme-anime .avatar-uploader__mask,body.theme-anime .avatar-uploader__placeholder{border-radius:26%}body.theme-dark .avatar-uploader__placeholder{background:#ffffff1f}.theme-picker-card{cursor:pointer;border:2px solid #0000;border-radius:16px;padding:16px;transition:all .2s;position:relative;overflow:hidden}.theme-picker-card:hover{transform:translateY(-2px)}.theme-picker-card.active{border-color:var(--brand);box-shadow:var(--shadow)}.theme-picker-card .theme-preview{border-radius:12px;justify-content:center;align-items:center;height:56px;margin-bottom:10px;font-size:24px;display:flex}.bg-setting{align-items:flex-start;gap:20px;display:flex}.bg-setting__preview{background-position:50%;background-size:cover;background-color:var(--heat-empty);border:1px solid var(--border);border-radius:14px;flex-shrink:0;width:220px;height:132px;position:relative;overflow:hidden}.bg-setting__empty{color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex;position:absolute;inset:0}.bg-setting__empty .anticon{font-size:28px}.bg-setting__colors{background:#0000006b;border-radius:999px;gap:6px;padding:5px 8px;display:flex;position:absolute;bottom:10px;left:10px}.bg-setting__colors span{border:2px solid #ffffffb3;border-radius:50%;width:16px;height:16px}.bg-setting__actions{flex:1;min-width:0}@media (width<=600px){.bg-setting{flex-direction:column}.bg-setting__preview{width:100%}}.welcome-modal .ant-modal-content{border-radius:20px;overflow:hidden;padding:0!important}.welcome-modal__hero{background:linear-gradient(135deg, var(--gradient-text-a), var(--gradient-text-b));color:#fff;text-align:center;padding:28px 32px 22px}.welcome-modal__logo{background:#ffffff38;border:2px solid #ffffff80;border-radius:16px;place-items:center;width:56px;height:56px;margin-bottom:8px;font-size:28px;font-weight:700;display:inline-grid}.welcome-modal__hero h2{color:#fff;margin:4px 0 2px;font-size:22px}.welcome-modal__hero p{opacity:.92;margin:0;font-size:13px}.welcome-modal .ant-modal-body{padding:20px 28px 24px}.welcome-modal__list{color:var(--ink);margin:8px 0 16px;padding-left:20px;line-height:1.9}.app-footer{text-align:center;color:var(--ink-soft);margin-top:32px;font-size:12px;line-height:1.9}.app-footer a{color:var(--brand-deep);margin:0 6px}.app-footer__author{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;display:flex}.app-footer__dot{margin:0 2px}@media (width<=768px){.page-container{padding:16px}body.theme-anime:after{left:24px}}
