*{box-sizing:border-box}body{margin:0;font-family:Arial,Noto Sans TC,sans-serif;background:#f3f6fa;color:#24344d}button,input{font:inherit}button{cursor:pointer}.login-page{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:24px;background:linear-gradient(135deg,#17365d,#315b83)}.login-card{width:100%;max-width:440px;padding:42px 34px;border-radius:20px;background:#fff;box-shadow:0 18px 55px #0000002e}.brand-mark{width:58px;height:58px;display:grid;place-items:center;border-radius:16px;background:#17365d;color:#fff;font-size:28px;font-weight:700}.eyebrow{margin-top:25px;color:#66809e;font-size:11px;letter-spacing:2px}.login-card h1{margin-bottom:8px;color:#17365d;font-size:27px}.subtitle{color:#718096;margin-bottom:30px}.login-card label{display:block;margin:18px 0 8px;font-weight:600;font-size:14px}.login-card input{width:100%;padding:14px;border:1px solid #d7e0eb;border-radius:9px;outline:none}.login-card input:focus,.fund-search:focus{border-color:#315b83;box-shadow:0 0 0 3px #315b831a}.login-card button,.logout{border:none;border-radius:9px;padding:14px;background:#17365d;color:#fff}.login-card form>button{width:100%;margin-top:25px;font-weight:700}.login-card button:disabled{opacity:.6;cursor:wait}.forgot-row{text-align:right;margin:8px 0}.login-card .text-button{background:none;border:none;color:#1d4ed8;padding:0}.login-note{margin-top:25px;text-align:center;color:#8795a7;font-size:12px}.error{color:#c0392b;font-size:13px;overflow-wrap:anywhere}.success{color:#287b58;font-size:13px}.dashboard{min-height:100vh;padding:28px;max-width:1160px;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:24px;border-bottom:1px solid #dce4ed}.topbar h1{color:#17365d;margin-bottom:5px}.topbar p{color:#718096;margin:0}.logout{min-width:64px}.welcome,.summary{background:#fff;border-radius:15px;padding:25px;margin-top:24px;box-shadow:0 4px 15px #1e37500d}.welcome h2{color:#17365d}.welcome span{color:#287b58;font-weight:700}.fund-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.fund-heading h2{color:#17365d;margin-top:0;margin-bottom:8px}.fund-heading p{color:#718096}.fund-search{width:min(100%,340px);padding:12px 14px;border:1px solid #d7e0eb;border-radius:9px;outline:none}.fund-category{margin-top:30px}.fund-category h3{color:#17365d;padding-bottom:12px;border-bottom:1px solid #e4eaf1}.fund-category h3 span{color:#718096;font-size:14px}.fund-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.fund-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding:18px;text-align:left;color:#24344d;background:#fff;border:1px solid #dce4ed;border-radius:12px;transition:border-color .2s,box-shadow .2s,transform .2s}.fund-card:hover{border-color:#315b83;box-shadow:0 5px 16px #1e37501a;transform:translateY(-2px)}.fund-card strong{color:#17365d;font-size:16px;line-height:1.5}.fund-card span{color:#66788e;font-size:13px}.fund-card small{margin-top:6px;color:#1d4ed8}.admin-panel{margin-top:30px;padding:20px;border-radius:12px;background:#edf3f9}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:#0c1c3094;overflow-y:auto}.fund-modal{position:relative;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;padding:30px;border-radius:16px;background:#fff;box-shadow:0 18px 55px #0003}.fund-modal h2{padding-right:30px;color:#17365d;line-height:1.5}.modal-subtitle{color:#718096}.modal-close{position:absolute;top:14px;right:16px;border:none;background:transparent;color:#53657a;font-size:30px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.detail-grid>div{padding:14px;border-radius:9px;background:#f3f6fa;min-width:0}.detail-grid label,.detail-features label{display:block;margin-bottom:7px;color:#718096;font-size:12px}.detail-grid strong{color:#17365d;overflow-wrap:anywhere}.detail-features{margin-top:20px;line-height:1.7}.source-link{display:inline-block;margin-top:18px;padding:12px 16px;border-radius:9px;background:#17365d;color:#fff;text-decoration:none}@media(max-width:600px){.login-card{padding:30px 22px}.login-card h1{font-size:23px}.dashboard{padding:16px}.topbar{align-items:flex-start}.welcome,.summary{padding:18px}.fund-grid{grid-template-columns:1fr}.fund-modal{padding:22px 18px}.detail-grid{grid-template-columns:1fr}}
