:root{--bg: #f3f5f9;--card: #fff;--text: #17233b;--primary: #0f766e;--danger: #b42318;--line: #dbe2ea}*{box-sizing:border-box}body{margin:0;font-family:PingFang SC,Noto Sans SC,sans-serif;color:var(--text);background:radial-gradient(circle at top right,#d6f3ef 0%,var(--bg) 48%,#e8eef8 100%)}h1,h2,h3,p{margin:0 0 12px}.mobile-shell,.web-shell{min-height:100vh;display:flex;justify-content:center;padding:20px}.card{background:var(--card);border-radius:16px;padding:18px;width:min(100%,420px);box-shadow:0 10px 30px #11182714}.card.wide{width:min(100%,1140px)}.input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 10px;background:#fff}.btn{border:0;border-radius:10px;padding:9px 12px;cursor:pointer}.btn.primary{background:var(--primary);color:#fff}.btn.danger{background:var(--danger);color:#fff}.mobile-header,.web-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.composer{display:flex;gap:8px;margin:12px 0}.list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.list li{border:1px solid var(--line);border-radius:10px;padding:10px}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:8px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.chip{border:1px solid var(--line);background:#fff;padding:6px 10px;border-radius:999px;cursor:pointer}.chip.active{border-color:var(--primary);color:var(--primary)}.error{color:#b42318;margin-top:10px}.m-login-page{min-height:100vh;padding:28px 16px;background:linear-gradient(160deg,#edf9f6 0%,#eef4ff 55%,#f7fbff 100%)}.m-login-card{max-width:520px;margin:30px auto 0;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:18px;padding:22px 16px 18px;box-shadow:0 16px 40px #091e421f}.m-login-head h1{font-size:28px;margin-bottom:6px}.m-login-head p{color:#526079;font-size:14px;margin-bottom:16px}.m-login-form{display:grid;gap:10px}.m-input{width:100%;border:1px solid #d7e0ef;border-radius:12px;padding:12px 14px;font-size:16px;background:#fff}.m-btn{border:0;border-radius:12px;min-height:42px;font-size:15px;padding:0 14px;cursor:pointer}.m-btn-primary{background:linear-gradient(135deg,#0f8a75 0%,#1466d8 100%);color:#fff}.m-btn-ghost{background:#f2f6fc;color:#2b3c5a}.m-error{color:#b42318;margin-top:10px;font-size:13px}.m-page{min-height:100vh;background:linear-gradient(180deg,#edf9f6 0%,#f8fbff 100%);padding-bottom:calc(72px + env(safe-area-inset-bottom))}.m-topbar{position:sticky;top:0;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;background:rgba(248,252,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #e7edf6}.m-topbar-title h1{font-size:20px;margin:0 0 3px}.m-topbar-title p{margin:0;color:#5a6b88;font-size:13px}.m-title-row{display:flex;align-items:center;gap:8px;margin-bottom:2px}.m-title-icon{width:22px;height:22px;border-radius:7px;box-shadow:0 4px 12px #18438633}.m-switch-btn{border:0;border-radius:999px;padding:8px 10px;background:#ffffff;color:#1f3352;box-shadow:0 6px 18px #13264b24;max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.m-switch-icon{width:16px;height:16px;flex:none}.m-content{padding:14px;max-width:680px;margin:0 auto}.m-composer-card{background:#fff;border-radius:16px;padding:12px;box-shadow:0 10px 22px #142d5514;display:grid;gap:10px;margin-bottom:12px}.m-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.m-list-item{background:#fff;border-radius:14px;padding:12px;box-shadow:0 8px 18px #11182714}.m-list-content{margin-bottom:8px;line-height:1.5;font-size:15px;color:#1e2d46}.m-list-item small{color:#6c7a93;font-size:12px;display:block;line-height:1.45}.m-empty{background:rgba(255,255,255,.7);border:1px dashed #d9e4f5;color:#6c7a93;border-radius:14px;padding:24px 12px;text-align:center}.m-profile-card{background:#fff;border-radius:16px;padding:14px;box-shadow:0 10px 24px #142d5517;display:grid;gap:10px}.m-profile-line{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf1f7;padding-bottom:8px}.m-profile-line span{color:#6b7a95;font-size:13px}.m-profile-line strong{color:#1f3455;font-size:14px}.m-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:grid;grid-template-columns:1fr 72px 1fr;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #e1e9f5;padding-bottom:env(safe-area-inset-bottom)}.m-tab-btn{border:0;background:transparent;min-height:54px;color:#647491;font-size:14px;cursor:pointer;display:grid;align-content:center;justify-items:center;gap:2px}.m-tab-icon{width:18px;height:18px}.m-tab-btn.active{color:#0e6fd0;font-weight:600}.m-plus-btn{border:0;background:transparent;min-height:54px;cursor:pointer;display:grid;place-items:center}.m-plus-icon{width:34px;height:34px;filter:drop-shadow(0 8px 16px rgba(20,77,153,.35))}.m-sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:rgba(18,28,45,.36);display:flex;align-items:flex-end}.m-sheet{width:100%;background:#fff;border-radius:16px 16px 0 0;padding:12px 12px calc(12px + env(safe-area-inset-bottom));max-height:86vh;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.m-sheet-title{font-size:15px;color:#4f6282;margin-bottom:10px}.m-sheet-list{display:grid;gap:8px}.m-sheet-item{border:1px solid #e3ebf8;background:#f8fbff;color:#1c304f;border-radius:12px;padding:10px 12px;text-align:left;font-size:14px;cursor:pointer}.m-sheet-item.active{border-color:#2b80dc;background:#edf5ff;color:#145dba}.m-add-form{display:grid;gap:10px}.m-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.m-top-note-stack{display:grid;gap:8px;margin-bottom:10px}.m-note-preview-card{border:1px solid #dce7f7;background:#ffffff;border-radius:14px;padding:10px 12px;text-align:left;width:100%;cursor:pointer}.m-note-preview-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#4f6382;margin-bottom:4px}.m-note-preview-head em{font-style:normal;color:#285f9f}.m-note-preview-body{color:#1d2f4b;line-height:1.45;font-size:14px;margin-bottom:4px;max-height:40px;overflow:hidden}.m-kpi-card{background:#fff;border-radius:14px;padding:10px 12px;box-shadow:0 8px 18px #11182714;position:relative}.m-kpi-click{border:0;text-align:left;cursor:pointer}.m-kpi-card span{display:block;color:#60718f;font-size:12px;margin-bottom:6px}.m-kpi-label{display:inline-flex!important;align-items:center;gap:4px}.m-kpi-label img{width:14px;height:14px}.m-kpi-card strong{color:#1e3254;font-size:18px}.m-kpi-sub{display:block;margin-top:4px;font-size:12px;color:#6e7f9a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-link-mini{display:inline-block;margin-top:6px;color:#1d67c5;font-size:12px}.m-kpi-split{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:10px}.m-kpi-mini{min-height:92px}.m-kpi-split-card{display:grid;grid-template-rows:1fr 1fr;gap:6px;padding:8px}.m-kpi-split-item{border:0;border-radius:10px;background:#f6f9ff;padding:6px 8px;text-align:left;position:relative}.m-kpi-split-item span{margin-bottom:2px}.m-kpi-split-item strong{font-size:15px}.m-kpi-badge{position:absolute;right:8px;bottom:8px;font-style:normal;font-size:14px}.m-profit-up{color:#c91f37!important}.m-profit-down{color:#167a3f!important}.m-profit-flat{color:#5f7090!important}.m-capital-card{margin-bottom:10px;background:linear-gradient(135deg,#0f8a75 0%,#1466d8 100%);color:#fff;border-radius:16px;padding:14px 16px;box-shadow:0 12px 24px #0f4d8c38}.m-capital-card span{display:block;font-size:12px;opacity:.9;margin-bottom:6px}.m-capital-card strong{font-size:28px;line-height:1}.m-hint-card{background:#fff7ed;color:#8a5b0a;border:1px solid #fde7c7;border-radius:14px;padding:10px 12px;font-size:13px;display:grid;gap:6px;margin-bottom:10px}.m-repay-hint-card{display:grid;gap:8px;margin-bottom:10px}.m-repay-block{border-radius:14px;padding:10px 12px;border:1px solid #e4ecf9;background:#fff}.m-repay-today{border-color:#cde7ff;background:#f4faff}.m-repay-next{border-color:#d7f1e2;background:#f4fcf8}.m-repay-tag{font-size:12px;color:#60718f;margin-bottom:4px}.m-repay-main{font-size:15px;color:#1f3252;font-weight:600}.m-repay-sub{margin-top:4px;color:#5f7090;font-size:12px}.m-loan-row-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.m-loan-days{font-size:12px;color:#265d9f;background:#ecf4ff;border:1px solid #d8e7ff;border-radius:999px;padding:2px 8px}.m-task-toggle{border:1px solid #d7e3f4;background:#f7fbff;color:#2b5f9b;border-radius:999px;padding:4px 10px;font-size:12px}.m-task-toggle.on{background:#ebfff3;border-color:#bfe9cf;color:#1e7f43}.m-task-actions{display:inline-flex;align-items:center;gap:6px}.m-task-refresh{border:1px solid #d7e3f4;background:#f7fbff;color:#2b5f9b;border-radius:999px;padding:4px 10px;font-size:12px}.m-log-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.m-log-item small{display:block;word-break:break-all}.m-log-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.m-log-status{border-radius:999px;padding:2px 8px;font-size:11px;line-height:1.4}.m-log-success{color:#1d8f4f;background:#eafaf1}.m-log-failed{color:#ce334a;background:#fff1f3}.m-log-skipped{color:#6d7a90;background:#f1f4f9}.m-section-card{background:#fff;border-radius:16px;padding:12px;box-shadow:0 10px 24px #142d5517;margin-bottom:10px}.m-section-title{font-size:15px;font-weight:600;margin-bottom:8px}.m-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.m-section-icon-title{width:28px;height:28px;border-radius:9px;background:#f3f7ff;border:1px solid #e2eaf8;display:grid;place-items:center;flex:none}.m-section-icon-title img{width:18px;height:18px;display:block}.m-inline-tools{display:flex;align-items:center;gap:8px}.m-calendar-toolbar{flex:1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.m-calendar-toolbar .m-month{grid-column:2}.m-calendar-toolbar .m-seg,.m-calendar-toolbar .m-toggle-one-btn{grid-column:3;justify-self:end}.m-seg{display:inline-flex;border:1px solid #d7e3f4;border-radius:10px;overflow:hidden;background:#fff}.m-seg-btn{border:0;background:transparent;padding:6px 10px;font-size:12px;color:#60718f}.m-seg-btn.active{background:#eaf3ff;color:#165fbe}.m-month{border:1px solid #d7e0ef;border-radius:10px;padding:7px 10px;background:#fff;min-width:132px;text-align:center}.m-toggle-one-btn{border:0;background:transparent;padding:4px;width:28px;height:28px;display:grid;place-items:center;cursor:pointer}.m-toggle-one-btn img{width:20px;height:20px;display:block}.m-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;grid-auto-rows:46px}.m-week-header{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;padding:0 2px}.m-week-header span{text-align:center;font-size:10px;color:#7284a1;padding:1px 0}.m-calendar-tip{margin-bottom:8px;padding:7px 10px;border-radius:10px;background:#eef4ff;color:#244a86;font-size:12px}.m-day-cell{border-radius:10px;height:46px;padding:2px 5px;display:grid;align-content:space-between;overflow:hidden;cursor:pointer}.m-calendar-wrap{border:1px solid #e2e9f6;border-radius:12px;padding:6px;background:#fbfdff}.m-day-pad{background:transparent;box-shadow:none;pointer-events:none}.m-day-cell span{font-size:11px}.m-day-cell small{font-size:9px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-day-cell small.m-cell-percent{font-size:10px;letter-spacing:-.1px;white-space:normal;overflow:visible;text-overflow:clip}.m-flat{background:#f5f7fb;color:#6b7890}.m-small-gain{background:#ffe8ea;color:#b8323d}.m-big-gain{background:#ffced3;color:#8f111c}.m-small-loss{background:#e4f3e7;color:#2f7f46}.m-big-loss{background:#cce7d2;color:#1b6231}.m-empty-day{background:#f8fafc;color:#b1bbcb}.m-loan-due{background:#e7f0ff;color:#1d4f9f}.m-past-day{position:relative;opacity:.66}.m-past-day:after{content:"";position:absolute;top:5px;left:5px;width:6px;height:6px;border-radius:999px;background:rgba(72,88,112,.65)}.m-today-day{box-shadow:inset 0 0 0 2px #1673de}.m-toggle-more{margin-top:8px;width:100%;border:1px dashed #c9d7ef;background:#f6faff;color:#2e5f9d;border-radius:10px;min-height:34px}.m-month-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.m-month-item{background:#f7faff;border:1px solid #e4ecf9;border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center}.m-month-item-head{background:#eef4ff;border-color:#d4e2fb}.m-fit-lighter{background:#e6f6ea;color:#1f7a3e}.m-fit-heavier{background:#ffe8ea;color:#b8323d}.m-fit-same{background:#f1f5fb;color:#50617d}.m-check-row{display:flex;align-items:center;gap:8px;background:#f8fbff;border:1px solid #e1e9f7;border-radius:10px;padding:10px 12px;color:#2c3d5a}.m-plan-grid{display:grid;gap:10px}.m-plan-row{display:grid;gap:6px}.m-plan-row span{color:#526581;font-size:13px}.m-plan-diet-row{border:1px solid #e4ecf9;border-radius:12px;padding:10px;background:#f9fbff;display:grid;gap:8px}.m-plan-title{color:#304765;font-weight:600;font-size:13px}.m-note{font-size:12px;color:#6a7690;background:#f4f7fc;border:1px dashed #d6dfef;border-radius:10px;padding:8px 10px}.m-textarea{resize:vertical}.m-note-meta{color:#6c7a93;font-size:12px;margin-bottom:6px}.m-note-content{white-space:pre-wrap;line-height:1.6;margin-bottom:10px}.m-note-actions{display:flex;gap:8px}@media (max-width: 900px){.grid.two{grid-template-columns:1fr}}
