:root{--ink:#202033;--muted:#687086;--line:#e5e7f0;--paper:#fbfbfe;--accent:#5d4fc4;--accent-dark:#40339a;--accent-soft:#eeeaff;--blue-soft:#edf2ff;--orange:#f0ad61;--red:#b84b42}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-family:Inter,"Noto Sans HK",system-ui,sans-serif;color:var(--ink)}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:linear-gradient(165deg,#37308b,#5144af);color:#f8f7ff;padding:28px 16px;display:flex;flex-direction:column}.brand{font-size:20px;font-weight:750;display:flex;align-items:center;gap:11px;padding:0 10px 38px}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:.1em;opacity:.72;margin-top:2px}.brand-mark{background:white;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;overflow:hidden;box-shadow:0 3px 11px #1714514a}.brand-mark img{width:100%;height:100%;object-fit:cover}nav{display:grid;gap:4px}nav button,.text-btn{border:0;background:transparent;color:inherit;text-align:left;padding:12px 13px;border-radius:9px;font-size:14px;cursor:pointer}nav button:hover,nav .active{background:#ffffff2b;color:#fff}.side-bottom{margin-top:auto;border-top:1px solid #ffffff42;padding-top:14px;display:grid;gap:2px}.text-btn{font-size:12px;color:#ecebff;padding:8px 10px}main{margin-left:242px;max-width:1400px;padding:42px 5.5vw 64px}header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.back-btn{border:0;background:transparent;color:var(--accent);font-size:13px;font-weight:700;padding:0 0 12px;cursor:pointer}.eyebrow{margin:0 0 6px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}h1{font-size:32px;line-height:1.12;margin:0;font-weight:760;letter-spacing:-.04em}h2{margin:0;font-size:21px;letter-spacing:-.025em}.sub{color:var(--muted);margin:9px 0 0;font-size:14px}.primary,.secondary,.delete-btn{border:0;border-radius:9px;padding:11px 16px;font-weight:700;cursor:pointer;font-size:14px}.primary{background:var(--accent);color:white;box-shadow:0 3px 0 var(--accent-dark)}.primary:hover{background:var(--accent-dark)}.secondary{background:#f1f1f7;color:#384052}.delete-btn{background:transparent;color:var(--red);padding-left:0}.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(4,1fr)}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px}.card.editable,.record-row.editable{cursor:pointer}.card.editable:hover,.record-row.editable:hover{border-color:#bbb4e7;background:#fdfcff}.stat-label{font-size:12px;color:var(--muted);font-weight:650}.stat-value{margin-top:9px;font-size:26px;font-weight:760;letter-spacing:-.04em}.stat-foot{font-size:12px;color:var(--muted);margin-top:6px}.positive{color:var(--accent)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:36px 0 14px}.section-head h2{font-size:18px}.link-btn{border:0;background:transparent;color:var(--accent);font-weight:700;cursor:pointer}.two-col{grid-template-columns:1.15fr .85fr}.currency-list{display:grid;gap:0}.currency-row,.record-row{display:grid;grid-template-columns:1.3fr 1fr 1fr 36px;gap:10px;align-items:center;padding:15px 2px;border-bottom:1px solid var(--line);font-size:14px}.currency-row:last-child,.record-row:last-child{border:0}.currency-name{font-weight:700}.tag{font-size:10px;background:#f0eff8;color:#535069;border-radius:99px;padding:4px 7px;font-weight:700;display:inline-block}.amount{font-variant-numeric:tabular-nums;font-weight:650;text-align:right}.small{font-size:12px;color:var(--muted)}.bar-row{margin:16px 0}.bar-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:7px}.bar{height:8px;background:#eeeeF6;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);border-radius:99px}.trip-card{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}.trip-card:last-child{border:0}.trip-card h3{margin:0 0 5px;font-size:15px}.trip-card p{margin:0;color:var(--muted);font-size:12px}.empty{text-align:center;border:1px dashed #cbc9e0;border-radius:14px;padding:52px 20px;background:#fff}.empty>div{font-size:31px;color:var(--accent)}.empty h3{margin:13px 0 5px}.empty p{color:var(--muted);font-size:13px;margin:0 0 17px}.toolbar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}.filter,select,input,textarea{border:1px solid #d9dbe7;background:white;border-radius:8px;padding:10px;font:inherit;color:var(--ink)}.filter{font-size:13px;min-width:130px}.page-section{margin-top:25px}.record-row{grid-template-columns:34px 1.15fr 1fr .9fr .75fr 32px;padding:13px 4px}.record-row.selectable{grid-template-columns:22px 34px 1.15fr 1fr .9fr .75fr 32px}.record-row input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.record-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:800}.record-main b{display:block;font-size:13px}.record-main span{font-size:11px;color:var(--muted)}.menu{border:0;background:transparent;font-size:19px;cursor:pointer;color:var(--muted)}dialog{border:0;border-radius:16px;box-shadow:0 20px 70px #1b174a52;padding:0;width:min(580px,calc(100vw - 28px);background:white}dialog::backdrop{background:#1b174a52}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:23px 24px 17px;border-bottom:1px solid var(--line)}.icon{border:0;background:#f0f0f7;width:29px;height:29px;border-radius:50%;font-size:21px;line-height:1;cursor:pointer}.form-grid{padding:21px 24px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:grid;gap:6px}.field.wide{grid-column:span 2}.field label{font-size:12px;font-weight:700;color:#555a70}.field input,.field select,.field textarea{width:100%;font-size:14px}.field textarea{resize:vertical;min-height:68px}.rate-display{grid-column:span 2;background:var(--blue-soft);border-radius:8px;padding:12px 13px;color:#3f4770;font-size:13px;font-weight:700}.form-actions{display:flex;justify-content:flex-end;gap:9px;padding:17px 24px;border-top:1px solid var(--line)}.form-actions span{flex:1}.choices{padding:14px 18px 20px;display:grid;gap:7px}.choices button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:14px;text-align:left;display:flex;align-items:center;gap:13px;cursor:pointer}.choices button:hover{border-color:#afa9de;background:#faf9ff}.choices b{background:var(--accent-soft);color:var(--accent);border-radius:8px;width:33px;height:33px;display:grid;place-items:center}.choices span{font-weight:700;font-size:14px}.choices small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.notice{display:none}.actions{display:flex;gap:8px}.danger{color:var(--red)}@media(max-width:820px){.sidebar{display:none}.side-bottom{display:none}main{margin:0;padding:25px 18px 45px}header{margin-bottom:25px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat-value{font-size:21px}.two-col{grid-template-columns:1fr}.record-row{grid-template-columns:32px 1fr auto 26px}.record-row.selectable{grid-template-columns:22px 32px 1fr auto 26px}.record-row .hide-mobile{display:none}.currency-row{grid-template-columns:1fr 1fr 32px}header .primary{font-size:12px;padding:10px}.form-grid{grid-template-columns:1fr}.field.wide,.rate-display{grid-column:span 1}.form-actions{flex-wrap:wrap}.form-actions span{display:none}}
