:root {
  --ink: #173f3b;
  --ink-2: #48625f;
  --paper: #f7f4ed;
  --card: #fffefb;
  --line: #e8e3d8;
  --mint: #dcebe3;
  --green: #2d766c;
  --orange: #e98253;
  --yellow: #e6b85c;
  --red: #b95449;
  --shadow: 0 12px 35px rgba(27, 61, 56, .07);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif; }
button, input, select { font: inherit; }
button { color: inherit; }
.app-shell { display: grid; grid-template-columns: 238px 1fr; min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 238px; padding: 30px 20px 22px; display: flex; flex-direction: column; background: var(--ink); color: #fff; z-index: 20; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 7px 38px; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; background: #f0c779; color: var(--ink); font-weight: 900; font-family: serif; }
.brand strong, .brand span { display: block; }.brand strong { font-size: 18px; letter-spacing: 2px; }.brand span { margin-top: 3px; font-size: 10px; color: #9eb8b3; }
nav { display: grid; gap: 7px; }.nav-item { border: 0; padding: 13px 15px; border-radius: 12px; text-align: left; color: #b9cfcb; background: transparent; cursor: pointer; transition: .2s; }.nav-item span { display: inline-block; width: 28px; font-size: 18px; }.nav-item:hover, .nav-item.active { color: #fff; background: rgba(255,255,255,.1); }.nav-item.active { box-shadow: inset 3px 0 #efc36f; }
.sidebar-foot { margin-top: auto; display: grid; gap: 8px; }.privacy-note { display: flex; gap: 10px; align-items: center; margin-bottom: 11px; padding: 12px; border-radius: 12px; background: rgba(255,255,255,.06); }.privacy-note > span { color: #f0c779; }.privacy-note b,.privacy-note small { display:block; }.privacy-note b { font-size: 12px; }.privacy-note small { color:#94aea9;font-size:10px;margin-top:2px; }
main { grid-column: 2; padding: 0 42px 60px; min-width: 0; }.topbar { height: 118px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); margin-bottom: 30px; }.topbar h1 { margin: 4px 0 0; font: 700 29px/1.2 Georgia,"Microsoft YaHei",serif; }.eyebrow { margin: 0; color: #77908c; font-size: 10px; letter-spacing: 2px; font-weight: 800; }.month-picker { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--ink-2); }.month-picker input, .filter-group input, .filter-group select { border:1px solid var(--line); background:var(--card); color:var(--ink); border-radius:10px; padding:9px 12px; outline:none; }.menu-btn { display:none; border:0;background:transparent;font-size:24px; }
.view { display: none; animation: fade .25s ease; }.view.active { display:block; }@keyframes fade{from{opacity:.2;transform:translateY(3px)}to{opacity:1;transform:none}}
.hero-card { position:relative; overflow:hidden; min-height:180px; display:flex; align-items:center; padding:35px 42px; color:#fff; border-radius:24px; background:linear-gradient(125deg,#1d554f,#2c756a); box-shadow:var(--shadow); }.hero-card p { margin:0 0 7px;color:#bdd3ce;font-size:13px; }.hero-card strong { display:block;font:700 46px Georgia,serif;letter-spacing:1px; }.hero-card span { display:block;margin-top:10px;color:#cfe0dd;font-size:12px; }.hero-decoration { position:absolute; right:8%; top:20%; width:220px; height:140px; }.hero-decoration i { position:absolute;display:block;border-radius:50%;border:1px solid rgba(255,255,255,.23); }.hero-decoration i:nth-child(1){width:140px;height:140px;right:0}.hero-decoration i:nth-child(2){width:95px;height:95px;right:80px;top:22px}.hero-decoration i:nth-child(3){width:32px;height:32px;right:60px;top:55px;background:#efc36f;border:0}
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:20px 0; }.stat-card { display:flex;align-items:center;gap:15px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:0 4px 15px rgba(27,61,56,.025); }.stat-icon { width:44px;height:44px;display:grid;place-items:center;border-radius:14px;font-size:20px; }.income-color{background:#dfeee7;color:var(--green)}.expense-color{background:#f8e6de;color:var(--orange)}.budget-color{background:#f7eccd;color:#a5781f}.stat-card p{margin:0 0 4px;color:var(--ink-2);font-size:11px}.stat-card strong{display:block;font:700 21px Georgia,serif}.stat-card small{display:block;margin-top:3px;color:#92a39f;font-size:10px}
.dashboard-grid { display:grid;grid-template-columns:1.35fr 1fr;gap:20px; }.panel { border:1px solid var(--line);border-radius:20px;background:var(--card);box-shadow:var(--shadow); }.dashboard-grid .panel,.recent-panel{padding:25px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.panel h2,.section-intro h2,.dialog-head h2{margin:4px 0 0;font:700 22px Georgia,"Microsoft YaHei",serif}.text-button,.icon-button{border:0;background:transparent;color:var(--green);cursor:pointer;font-size:11px}.icon-button{width:34px;height:34px;border-radius:10px;background:var(--paper);font-size:16px}.income-row{display:grid;grid-template-columns:105px 1fr 75px;gap:12px;align-items:center;margin:16px 0}.income-label{display:flex;align-items:center;gap:8px;font-size:12px}.dot{width:8px;height:8px;border-radius:50%}.bar-track{height:8px;border-radius:8px;background:#edf0eb;overflow:hidden}.bar-fill{height:100%;min-width:0;border-radius:8px;transition:.4s}.income-row strong{text-align:right;font-size:12px}.empty-state{text-align:center;color:#8da09c;padding:25px 10px;font-size:12px}.empty-state b{display:block;color:var(--ink);font-size:13px;margin-bottom:5px}
.budget-row{margin:18px 0}.budget-row-top{display:flex;justify-content:space-between;font-size:12px;margin-bottom:8px}.budget-row-top span:last-child{font-weight:700}.budget-tip{margin-top:20px;padding:12px;border-radius:12px;background:#f3efe5;color:#758783;font-size:11px;line-height:1.6}.recent-panel{margin-top:20px}.recent-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.recent-item{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:13px;background:#faf8f2}.recent-item-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#f4e6dd}.recent-item b,.recent-item small{display:block}.recent-item b{font-size:11px}.recent-item small{font-size:9px;color:#91a09d;margin-top:3px}.recent-item strong{font-size:12px;color:var(--red)}
.section-intro{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}.section-intro h2{font-size:28px}.section-intro>div>p:last-child{margin:9px 0 0;color:#778985;font-size:12px}.month-income-box{text-align:right}.month-income-box span{display:block;color:#79908b;font-size:11px}.month-income-box strong{font:700 28px Georgia,serif}.primary-button,.ghost-button{border:0;border-radius:11px;padding:10px 17px;cursor:pointer}.primary-button{background:var(--ink);color:#fff;box-shadow:0 5px 15px rgba(23,63,59,.15)}.ghost-button{border:1px solid var(--line);background:transparent}.sidebar .ghost-button{border-color:rgba(255,255,255,.16);color:#d6e2df}.full{width:100%;text-align:center;font-size:11px}.file-button input{display:none}.table-panel{overflow:hidden}.table-scroll{overflow:auto}.income-table,.detail-table{width:100%;border-collapse:collapse;font-size:12px}.income-table th,.income-table td,.detail-table th,.detail-table td{padding:13px 14px;border-bottom:1px solid #eeeae0;text-align:left;white-space:nowrap}.income-table th,.detail-table th{background:#faf8f2;color:#718581;font-size:10px;letter-spacing:.4px;position:sticky;top:0;z-index:2}.income-table td:not(:first-child),.income-table th:not(:first-child){text-align:right}.income-table tbody tr:hover{background:#fbfaf5}.income-table input{width:78px;border:1px solid transparent;border-radius:8px;background:transparent;padding:7px;text-align:right;color:var(--ink);outline:none}.income-table input:hover,.income-table input:focus{border-color:#c9dcd7;background:#fff}.income-table tfoot td{font-weight:800;background:#f1f5ef;position:sticky;bottom:0}.today-row{background:#f5f8f2}.day-label b{display:block}.day-label small{color:#96a6a2}.number{text-align:right!important}.positive{color:var(--green)}.negative{color:var(--red)}
.expense-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.category-card{padding:16px;border-radius:15px;background:var(--card);border:1px solid var(--line)}.category-card span{display:block;font-size:10px;color:#82928f}.category-card strong{display:block;margin-top:5px;font:700 16px Georgia,serif}.table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.table-toolbar h3{margin:0;font-size:14px}.filter-group{display:flex;gap:8px}.filter-group input,.filter-group select{padding:7px 10px;font-size:11px}.delete-button{border:0;background:transparent;color:#b58d87;cursor:pointer;font-size:16px}.category-pill{display:inline-flex;padding:5px 9px;border-radius:12px;background:#f2eee5;color:#536a66;font-size:10px}.ledger-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.ledger-card{padding:20px;border-radius:17px;background:var(--card);border:1px solid var(--line)}.ledger-card span{font-size:11px;color:#78908b}.ledger-card strong{display:block;margin-top:7px;font:700 24px Georgia,serif}.year-select{display:flex;align-items:center;gap:14px}.year-select button{border:1px solid var(--line);background:var(--card);border-radius:9px;width:32px;height:32px;cursor:pointer}.ledger-table tbody tr{cursor:pointer}.ledger-table tbody tr:hover{background:#f8f7f1}.status-pill{padding:4px 8px;border-radius:10px;font-size:9px;background:#eef2ec;color:#637974}.status-pill.loss{background:#f9e9e3;color:#a65b4e}
dialog{width:min(450px,calc(100% - 30px));border:0;border-radius:20px;padding:0;background:var(--card);color:var(--ink);box-shadow:0 25px 80px rgba(16,43,39,.25)}dialog::backdrop{background:rgba(18,41,38,.55);backdrop-filter:blur(3px)}dialog form{padding:27px}.dialog-head{display:flex;justify-content:space-between;margin-bottom:22px}.close-button{border:0;background:transparent;font-size:25px;cursor:pointer;color:#78908b}dialog label{display:block;margin:14px 0;color:var(--ink-2);font-size:11px}dialog input,dialog select{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:11px;background:#faf9f5;color:var(--ink);outline:none}dialog input:focus,dialog select:focus{border-color:#7bab9f}.form-note{padding:10px;border-radius:10px;background:#f6f1e5;color:#768682;font-size:10px;line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}#toast{position:fixed;right:24px;bottom:24px;padding:11px 18px;border-radius:10px;background:var(--ink);color:#fff;font-size:11px;opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s;z-index:100}#toast.show{opacity:1;transform:none}
@media(max-width:950px){.app-shell{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.sidebar.open::after{content:"";position:fixed;inset:0 0 0 238px;background:rgba(0,0,0,.25)}main{grid-column:1;padding:0 22px 50px}.menu-btn{display:block}.topbar>div:first-of-type{flex:1;margin-left:10px}.stat-grid,.dashboard-grid{grid-template-columns:1fr}.recent-list{grid-template-columns:1fr 1fr}.expense-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){main{padding:0 14px 40px}.topbar{height:96px;margin-bottom:20px}.topbar h1{font-size:22px}.month-picker{display:block}.month-picker span{display:none}.month-picker input{width:135px}.hero-card{min-height:155px;padding:28px 24px}.hero-card strong{font-size:34px}.hero-decoration{opacity:.5;right:-40px}.stat-grid{gap:10px}.stat-card{padding:16px}.section-intro{align-items:flex-start;gap:15px}.section-intro h2{font-size:23px}.section-intro>div>p:last-child{display:none}.recent-list,.expense-summary,.ledger-cards{grid-template-columns:1fr 1fr}.filter-group input{width:120px}.table-toolbar{align-items:flex-start;gap:10px;flex-direction:column}.income-table th,.income-table td{padding:10px 8px}}

/* 清新果蔬主题 */
:root{--ink:#385936;--ink-2:#658163;--paper:#f7faef;--card:#fffdfa;--line:#e2ead8;--mint:#e1efd7;--green:#78a85b;--green-dark:#557f43;--pink:#f4cbd0;--pink-soft:#fcedee;--orange:#e99b6c;--yellow:#f2ce73;--red:#c86d77;--shadow:0 12px 35px rgba(76,110,64,.09)}
.sidebar{background:linear-gradient(180deg,#78aa5c 0%,#67984f 58%,#5b8849 100%);overflow:hidden}
.sidebar::before,.sidebar::after{content:"";position:absolute;border-radius:100% 0 100% 0;background:rgba(255,255,255,.1);transform:rotate(28deg);pointer-events:none}.sidebar::before{width:120px;height:55px;right:-55px;top:120px}.sidebar::after{width:95px;height:42px;left:-48px;bottom:235px}
.brand{position:relative;z-index:1}.brand-mark{position:relative;width:48px;height:48px;flex:0 0 48px;border-radius:52% 48% 50% 46%;background:linear-gradient(145deg,#fff1a7,#f7d36e);color:#5d7838;box-shadow:inset -4px -5px 0 rgba(215,172,53,.12)}.brand-mark span{position:relative;z-index:1}.brand-mark i{position:absolute;width:17px;height:10px;border-radius:100% 0 100% 0;background:#d9efbd;right:-5px;top:-3px;transform:rotate(-20deg);border:2px solid #6a984c}.brand strong{font-size:16px;letter-spacing:1px;white-space:nowrap}.brand>div>span{color:#edf7e7}
.nav-item{color:#eff7e9}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.15)}.nav-item.active{box-shadow:inset 3px 0 #f8c9cf}.privacy-note{background:rgba(255,255,255,.1)}.privacy-note small{color:#e1efd9}
.hero-card{background:linear-gradient(125deg,#82b665,#a6cb80)}.hero-card::before{content:"";position:absolute;right:-35px;bottom:-60px;width:250px;height:150px;border-radius:50%;background:rgba(252,214,218,.55);transform:rotate(-12deg)}.hero-card p,.hero-card>div:first-child>span{color:#f5fbef}
.hero-decoration{right:7%;top:12%;width:230px;height:145px}.hero-decoration .fruit{position:absolute;display:grid;place-items:center;margin:0;border-radius:50%;font:bold 16px Georgia,serif;color:#75873c;box-shadow:inset -7px -8px 0 rgba(217,165,67,.12),0 7px 15px rgba(78,112,59,.08)}.hero-decoration .pomelo{width:88px;height:82px;right:15px;top:35px;background:#ffe68a}.hero-decoration .peach{width:55px;height:53px;right:105px;top:67px;background:#f8cbd0;color:#b86f70}.hero-leaf{position:absolute;display:block;width:55px;height:25px;border-radius:100% 0 100% 0;background:#5f944e}.leaf-one{right:56px;top:15px;transform:rotate(-17deg)}.leaf-two{right:112px;top:38px;transform:rotate(32deg);background:#76a95c}
.income-color{background:#e3f0d8;color:var(--green-dark)}.expense-color{background:#fcebed;color:var(--red)}.budget-color{background:#fff1cb;color:#a5781f}.stat-card{box-shadow:0 4px 15px rgba(76,110,64,.04)}
.panel{position:relative}.budget-tip{background:#f9e9eb}.botanical-corner{position:absolute;right:17px;bottom:10px;display:flex;align-items:flex-end;gap:2px;opacity:.22;filter:saturate(.75);pointer-events:none}.botanical-corner span:first-child{font-size:38px;transform:rotate(-18deg)}.botanical-corner span:last-child{font-size:24px}.veggie-row{position:absolute;right:20px;bottom:18px;display:flex;gap:4px;opacity:.2;pointer-events:none}.veggie-row span{font-size:19px}.veggie-row span:nth-child(2){transform:translateY(-5px)}
.recent-item{background:#f6f9ef}.recent-item-icon{background:#f9e4e6}.primary-button{background:var(--green-dark);box-shadow:0 5px 15px rgba(85,127,67,.18)}.income-table th,.detail-table th{background:#f4f8ed}.income-table tfoot td{background:#eaf3df}.today-row{background:#fff0f1}.category-pill{background:#f9e8e9;color:#6b7770}.status-pill{background:#eaf3df;color:#59754d}.status-pill.loss{background:#f9e5e7;color:#ad626a}
dialog{box-shadow:0 25px 80px rgba(71,101,61,.25)}dialog::backdrop{background:rgba(59,82,52,.45)}dialog input:focus,dialog select:focus{border-color:#8eb874}.form-note{background:#f5f7e9}#toast{background:var(--green-dark)}
.income-table{width:100%;min-width:0;table-layout:fixed}.income-table col.date-column{width:7%}.income-table col.account-column{width:8.5%}.income-table col.source-column{width:10.5%}.income-table col.total-column{width:15%}.income-table thead th{vertical-align:middle;overflow:hidden;text-overflow:ellipsis}.income-table .group-head{text-align:center!important;background:#e4f0d9;border-bottom-color:#d4e4c6}.income-table .account-head th{text-align:center!important;background:#eff6e8;color:#60805a;font-weight:700}.income-table thead th[rowspan="2"]{vertical-align:middle}.income-table input{width:100%;max-width:74px}.income-table th,.income-table td{padding-left:7px;padding-right:7px}.income-table td:last-child,.income-table th:last-child{padding-right:10px}
.year-select button:disabled{opacity:.35;cursor:not-allowed;background:#eef2e8}
.actual-expense-block{margin-top:22px;padding:15px 16px;border:1px solid #f1dadd;border-radius:14px;background:linear-gradient(135deg,#fff4f5,#fbedee)}.actual-expense-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.actual-expense-head span,.actual-expense-head small{display:block}.actual-expense-head span{font-size:12px;font-weight:700;color:#6f655f}.actual-expense-head small{margin-top:3px;font-size:9px;color:#a28e8b}.actual-expense-head strong{font:700 18px Georgia,serif;color:var(--red)}.actual-track{margin-top:11px;background:#f5dfe1}.actual-track .bar-fill{background:linear-gradient(90deg,#e6a0a7,#ca707b)}.actual-expense-block p{margin:8px 0 0;text-align:right;font-size:9px;color:#7d9871}.actual-expense-block p.over-budget{color:var(--red);font-weight:700}
.budget-panel .veggie-row{top:22px;right:65px;bottom:auto}
.actual-item-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:12px 0}.actual-item-grid div{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px dashed #ecdadd}.actual-item-grid span{font-size:9px;color:#987f7e}.actual-item-grid b{font-size:9px;color:#765f5d}.dialog-head #budgetDialogMonth{display:block;margin-top:6px;color:#88a17e;font-size:10px}.form-section{margin:18px 0;padding:15px;border:1px solid var(--line);border-radius:14px;background:#f8faF3}.form-section.actual-form-section{border-color:#f0dadd;background:#fff5f6}.form-section h3{margin:0 0 4px;font-size:12px}.amount-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.amount-grid label{margin:10px 0 0}#budgetDialog{max-height:calc(100vh - 30px);overflow:auto}#budgetDialog form{padding-bottom:20px}@media(max-width:520px){.amount-grid{grid-template-columns:1fr}.actual-item-grid{grid-template-columns:1fr}}
@media(max-width:760px){.income-table{min-width:850px;table-layout:fixed}}
.income-table .scheduled-cell{background:#f5f7f1}.income-table input:disabled{color:#aab4a6;cursor:not-allowed;font-size:9px}.income-table input:disabled::placeholder{color:#b3bcb0;opacity:1}
.quick-category{display:flex;flex-wrap:wrap;gap:6px;margin:-5px 0 12px}.quick-category>span{display:flex;align-items:center;margin-right:2px;color:#8a9b87;font-size:9px}.quick-category button{border:1px solid #dfe9d7;border-radius:999px;padding:5px 9px;background:#f5f9ef;color:#577052;font-size:9px;cursor:pointer}.quick-category button:hover,.quick-category button:focus{border-color:#90b878;background:#e8f2df;outline:none}
.expense-day-row td{padding:0!important;background:#f1f6ea;border-bottom-color:#dfe8d7!important}.expense-day-toggle{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.expense-day-toggle:hover{background:#eaf2e2}.expense-day-toggle:focus-visible{outline:2px solid #88b36d;outline-offset:-2px}.expense-day-summary{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:16px;padding:12px 18px;border-left:4px solid #88b36d}.day-title{display:flex;align-items:center;gap:9px}.day-title i{width:18px;color:#73a159;font:700 20px/1 Georgia,serif;text-align:center;transition:.2s}.expense-day-summary b,.expense-day-summary small{display:block}.expense-day-summary b{font-size:12px}.expense-day-summary small{margin-top:3px;color:#8a9b87;font-size:9px}.expense-day-summary>strong{font:700 13px Georgia,serif;color:var(--red);white-space:nowrap}.day-category-breakdown{display:flex;flex-wrap:wrap;gap:5px}.day-category-breakdown span{padding:4px 7px;border-radius:10px;background:#fffdfa;color:#6d8069;font-size:9px}.expense-entry-row[hidden]{display:none}.expense-entry-row td:first-child{padding-left:25px}.detail-date{color:#93a18f;font-size:10px}.row-actions{display:flex;justify-content:flex-end;gap:4px}.edit-button,.delete-button{width:28px;height:28px;border:0;border-radius:8px;background:transparent;cursor:pointer}.edit-button{color:#709564}.edit-button:hover{background:#e8f2df}.delete-button:hover{background:#fae9ea}.expense-detail-table th:last-child{width:85px;text-align:right}@media(max-width:760px){.expense-day-summary{grid-template-columns:1fr auto}.day-category-breakdown{grid-column:1/-1;grid-row:2}.detail-date{display:none}.expense-entry-row td:first-child{padding-left:10px}}

/* 账号与管理后台 */
.auth-pending .app-shell{visibility:hidden}.user-chip{display:flex;align-items:center;gap:9px;padding:10px 11px;border-radius:12px;background:rgba(255,255,255,.08);min-width:0}.user-chip .user-avatar{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:#f0c779;color:var(--ink);font:bold 12px Georgia,serif}.user-chip div{min-width:0}.user-chip b,.user-chip small{display:block}.user-chip b{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.user-chip small{margin-top:2px;color:#94aea9;font-size:8px}.ghost-button{text-decoration:none}
.account-page{min-height:100vh;background:#f4f1e9}.account-shell{grid-column:auto;display:grid;grid-template-columns:minmax(360px,46%) minmax(0,1fr);min-width:0;min-height:100vh;padding:0}.account-visual{position:relative;overflow:hidden;padding:42px 7vw;color:#fff;background:linear-gradient(145deg,#173f3b,#2d766c)}.account-brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.account-brand .brand-mark{flex:0 0 42px}.account-brand b,.account-brand small{display:block}.account-brand b{font-size:17px;letter-spacing:2px}.account-brand small{margin-top:4px;color:#a8c3bd;font-size:10px}.account-brand.dark{color:var(--ink)}.account-brand.dark small{color:#82938f}.account-copy{position:relative;z-index:2;margin-top:22vh}.account-copy .eyebrow{color:#efc36f}.account-copy h1{margin:12px 0 20px;font:700 clamp(32px,4vw,54px)/1.35 Georgia,"Microsoft YaHei",serif;letter-spacing:2px}.account-copy>p:last-child{max-width:430px;color:#c5d8d4;font-size:13px;line-height:1.9}.account-fruit{position:absolute;right:-40px;bottom:-55px;width:320px;height:300px}.account-fruit span{position:absolute;right:55px;bottom:55px;width:170px;height:160px;display:grid;place-items:center;border-radius:48% 52% 50% 50%;background:#ffe58b;color:#799448;font:bold 34px Georgia,serif;box-shadow:inset -22px -20px rgba(217,165,67,.15)}.account-fruit i{position:absolute;width:105px;height:46px;border-radius:100% 0 100% 0;background:#78a85b}.account-fruit i:nth-child(2){right:58px;bottom:205px;transform:rotate(-20deg)}.account-fruit i:nth-child(3){right:145px;bottom:195px;transform:rotate(40deg);background:#5f944e}.account-panel{display:grid;place-items:center;min-width:0;padding:40px}.auth-card{width:100%;max-width:430px;min-width:0;padding:34px 38px;border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:0 24px 70px rgba(35,72,64,.1)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:28px;padding:4px;border-radius:13px;background:#edf2e8}.auth-tabs button{padding:9px;border:0;border-radius:10px;background:transparent;color:#7d8d89;cursor:pointer}.auth-tabs button.active{background:#fff;color:var(--ink);font-weight:700;box-shadow:0 3px 12px rgba(44,81,70,.08)}.auth-form{display:none}.auth-form.active{display:grid;gap:17px}.auth-form h2{margin:5px 0;font:700 27px Georgia,"Microsoft YaHei",serif}.auth-form>div>span{color:#83928f;font-size:11px}.auth-form label,.settings-form label{display:grid;gap:7px;color:#60726e;font-size:11px;font-weight:700}.auth-form input,.settings-form input,.settings-form select{width:100%;border:1px solid var(--line);border-radius:11px;background:#fbfaf5;color:var(--ink);padding:11px 12px;outline:none}.auth-form input:focus,.settings-form input:focus,.settings-form select:focus{border-color:#8eb874;box-shadow:0 0 0 3px rgba(120,168,91,.1)}.auth-submit{width:100%;padding:12px;margin-top:3px}.code-field{display:grid;grid-template-columns:1fr auto;gap:8px}.code-field button{border:1px solid #dce7d6;border-radius:10px;padding:0 13px;background:#edf4e8;color:#56764c;font-size:10px;cursor:pointer}.check-row{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:7px!important;font-weight:400!important;line-height:1.6}.check-row input{width:auto;margin-top:3px}.form-message{display:none;margin:15px 0 0;padding:10px 12px;border-radius:10px;font-size:11px;line-height:1.5}.form-message.show{display:block;background:#f9e7e8;color:#a54f59}.form-message.success{background:#e7f1df;color:#55784a}.admin-entry{display:block;margin-top:17px;color:#86938f;text-align:center;text-decoration:none;font-size:10px}.primary-button:disabled,.ghost-button:disabled,.code-field button:disabled{opacity:.55;cursor:not-allowed}
.admin-page{background:var(--paper)}.admin-shell{display:grid;grid-template-columns:238px 1fr;min-height:100vh}.admin-sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:238px;height:100vh;display:flex;flex-direction:column;padding:30px 20px 22px;background:var(--ink);color:#fff}.admin-sidebar .account-brand{padding:0 7px 38px}.admin-sidebar nav{margin-top:20px}.admin-main{grid-column:2;padding:0 42px 60px;min-width:0}.admin-view{display:none}.admin-view.active{display:block;animation:fade .25s ease}.admin-hero{min-height:205px}.admin-hero strong{font-size:36px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-top:20px}.admin-stats .stat-card{min-height:112px}.admin-stats strong{font-size:30px}.admin-identity{max-width:260px;overflow:hidden;text-overflow:ellipsis;padding:8px 12px;border-radius:999px;background:#edf3e8;color:#60745b;font-size:10px;white-space:nowrap}.settings-panel{max-width:880px;padding:28px}.settings-form{display:grid;gap:24px}.settings-form section{padding-bottom:22px;border-bottom:1px solid var(--line)}.settings-form h2{margin:0 0 6px;font:700 21px Georgia,"Microsoft YaHei",serif}.section-title p{margin:0;color:#82938f;font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.field-help{color:#96a49f;font-size:9px;font-weight:400}.switch-row{display:flex!important;align-items:center;gap:10px!important;padding:13px 15px;border-radius:12px;background:#f5f7ed}.switch-row input{width:auto}.switch-row b,.switch-row small{display:block}.switch-row small{margin-top:3px;color:#8c9995;font-weight:400}.setup-screen{min-height:100vh;padding:45px 20px;background:linear-gradient(145deg,#edf3e8,#f9f0e5)}.setup-card{width:min(850px,100%);margin:auto;padding:34px;border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:0 24px 70px rgba(35,72,64,.12)}.setup-card .account-brand{margin-bottom:30px}.fatal-state{width:min(480px,calc(100% - 40px));margin:20vh auto;padding:30px;border:1px solid var(--line);border-radius:20px;background:#fff;text-align:center}
@media(max-width:980px){.account-shell{grid-template-columns:minmax(0,1fr)}.account-visual{min-height:300px;padding:30px}.account-copy{margin-top:65px}.account-copy h1{font-size:34px}.account-fruit{transform:scale(.65);transform-origin:right bottom}.admin-stats{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.account-panel{padding:20px}.auth-card{padding:25px 22px}.admin-shell{display:block}.admin-sidebar{transform:translateX(-100%);transition:.25s}.admin-sidebar.open{transform:none}.admin-main{padding:0 16px 40px}.admin-main .topbar{height:92px}.admin-main .menu-btn{display:block}.admin-identity{max-width:135px}.form-grid{grid-template-columns:1fr}.settings-panel{padding:20px}.setup-card{padding:24px 20px}}
@media(max-width:520px){.account-visual{min-height:245px}.account-copy{margin-top:42px}.account-copy h1{font-size:27px}.account-copy>p:last-child{display:none}.account-fruit{opacity:.55}.admin-stats{grid-template-columns:1fr}}
