:root{--ink:#102a23;--muted:#687b75;--forest:#0c4938;--mint:#dcefe7;--cream:#f5f3ec;--line:#dce4df;--white:#fff;--red:#b84343;--shadow:0 24px 70px rgba(17,48,39,.12)}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;min-height:100vh}.grain{position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.topbar{height:76px;display:flex;align-items:center;padding:0 5vw;border-bottom:1px solid rgba(16,42,35,.1);background:rgba(245,243,236,.86);backdrop-filter:blur(14px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,sans-serif;font-weight:800;color:var(--ink);text-decoration:none}.brand.large{font-size:20px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--forest);color:white;border-radius:10px}.topbar nav{display:flex;gap:8px;margin-left:64px}.topbar nav a{padding:10px 15px;text-decoration:none;color:var(--muted);border-radius:10px;font-weight:600}.topbar nav a.active{background:white;color:var(--forest);box-shadow:0 4px 15px rgba(16,42,35,.06)}.account{margin-left:auto;display:flex;align-items:center;gap:10px}.account img,.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--mint);display:grid;place-items:center;font-weight:700;text-transform:uppercase}.account-name{font-size:14px;font-weight:600}.text-button{border:0;background:none;color:var(--muted);cursor:pointer}.page-wrap{max-width:1160px;margin:0 auto;padding:72px 28px}.hero-copy{max-width:680px;margin-bottom:40px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;color:#31715f;margin:0 0 14px}.hero-copy h1,.page-heading h1{font:800 clamp(36px,5vw,60px)/1.05 Manrope,sans-serif;letter-spacing:-.045em;margin:0 0 15px}.hero-copy>p:last-child,.page-heading>div>p:last-child{color:var(--muted);font-size:18px}.rate-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px}.control-card,.result-card,.table-card{background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow);border-radius:24px}.control-card{padding:32px;display:flex;flex-direction:column;gap:22px}.field label,.dialog-form>label{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:14px}.field input,.field select,.dialog-form input{width:100%;padding:14px 15px;border:1px solid var(--line);background:#fbfcfa;border-radius:12px;color:var(--ink);font:inherit;outline:none}.field input:focus,.field select:focus,.dialog-form input:focus{border-color:#57947f;box-shadow:0 0 0 3px rgba(87,148,127,.12)}.primary-button,.secondary-button,.danger-button{border:0;border-radius:12px;padding:15px 18px;font:700 14px 'DM Sans';cursor:pointer}.primary-button{background:var(--forest);color:white;box-shadow:0 10px 25px rgba(12,73,56,.2)}.primary-button:disabled{opacity:.55}.primary-button.compact{padding:12px 18px}.secondary-button{background:#edf1ee;color:var(--ink)}.danger-button{background:#fae7e7;color:var(--red)}.source-note{font-size:12px;color:var(--muted);text-align:center;margin:0}.result-card{min-height:355px;padding:46px;display:grid;align-content:center;position:relative;overflow:hidden}.result-card:after{content:'$';position:absolute;right:-25px;bottom:-80px;font:800 250px Manrope;color:rgba(25,104,81,.045)}.pair{display:flex;align-items:center;gap:13px;font:800 16px Manrope;letter-spacing:.12em}.arrow{color:#6ba18f}.unit{color:var(--muted);margin:32px 0 5px}.big-rate{font:800 clamp(48px,7vw,82px)/1 Manrope;letter-spacing:-.06em;color:var(--forest)}.big-rate small{font-size:.28em;letter-spacing:.04em}.effective{display:flex;align-items:center;gap:8px;margin-top:28px;color:var(--muted);font-size:14px}.status-dot{width:8px;height:8px;background:#37a477;border-radius:50%}.loader{width:36px;height:36px;border:3px solid var(--mint);border-top-color:var(--forest);border-radius:50%;animation:spin .7s linear infinite;margin:auto}.loader[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--red)}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-visual{background:var(--forest);color:white;padding:10vw 8vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-visual:after{content:'';position:absolute;width:500px;height:500px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-230px;top:-170px;box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.02)}.login-visual .eyebrow{color:#9bd3bf}.login-visual h1{font:800 clamp(46px,6vw,78px)/1.02 Manrope;letter-spacing:-.055em;margin:0 0 25px}.login-visual>p:not(.eyebrow){color:#c3d8d0;max-width:520px;font-size:18px;line-height:1.65}.maple{font-size:34px;margin-bottom:50px}.rate-art{margin-top:70px;display:flex;align-items:center;gap:25px;font:700 14px Manrope;letter-spacing:.18em}.rate-art strong{font-size:25px;color:#86c7af}.login-card{background:white;padding:9vw 7vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.login-card h2{font:800 36px Manrope;margin:50px 0 8px;letter-spacing:-.03em}.login-card>p{color:var(--muted);line-height:1.6;margin:0 0 30px}.login-card small{color:var(--muted);margin-top:20px;line-height:1.5}.google-button{width:100%;display:flex;justify-content:center;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);font-weight:700;box-shadow:0 5px 20px rgba(16,42,35,.05)}.google-button svg{width:20px}.alert{padding:13px 16px;border-radius:12px;margin:0 0 20px;font-size:14px}.alert.error{background:#fae7e7;color:#8d2e2e}.alert.success{background:#e2f2eb;color:#25644f}.page-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:35px}.page-heading h1{font-size:48px}.table-card{overflow:hidden}.table-card table{width:100%;border-collapse:collapse}.table-card th{text-align:left;padding:16px 22px;background:#f0f4f1;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.table-card td{padding:18px 22px;border-top:1px solid #edf0ed}.user-cell{display:flex;align-items:center;gap:12px}.user-cell strong,.user-cell small{display:block}.user-cell small{color:var(--muted);margin-top:3px}.badge,.status{font-size:12px;font-weight:700;padding:6px 9px;border-radius:20px;background:#e9eeeb}.status.on{color:#1d7254;background:#def2e9}.status.off{color:#8a5555;background:#f5e5e5}.muted{color:var(--muted)}.icon-button{border:1px solid var(--line);background:white;border-radius:8px;padding:7px 12px;cursor:pointer}dialog{border:0;border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.25);padding:0;width:min(480px,calc(100vw - 30px))}dialog::backdrop{background:rgba(9,32,25,.55);backdrop-filter:blur(4px)}.dialog-form{padding:28px;display:flex;flex-direction:column;gap:18px}.dialog-title{display:flex;justify-content:space-between;align-items:center}.dialog-title h2{margin:0;font:800 25px Manrope}.dialog-title button{font-size:25px;border:0;background:none;cursor:pointer}.dialog-form .check{flex-direction:row;align-items:center}.dialog-form .check input{width:auto}.dialog-actions{display:flex;gap:10px;align-items:center;margin-top:8px}.dialog-actions span{flex:1}
@media(max-width:800px){.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-card{min-height:100vh;padding:35px}.topbar{padding:0 18px}.topbar nav{margin-left:25px}.account-name{display:none}.rate-grid{grid-template-columns:1fr}.page-wrap{padding:45px 18px}.page-heading{align-items:flex-start;gap:20px}.table-card{overflow-x:auto}.table-card table{min-width:760px}.result-card{padding:34px}.hero-copy h1{font-size:42px}}
.chart-card{margin-top:24px;padding:32px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow);border-radius:24px}.chart-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.chart-heading h2{font:800 25px Manrope;margin:0;letter-spacing:-.025em}.chart-heading .eyebrow{margin-bottom:8px}.chart-controls,.custom-dates{display:flex;align-items:flex-end;gap:10px}.chart-controls label,.custom-dates label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.chart-controls select,.custom-dates input{border:1px solid var(--line);background:#fbfcfa;border-radius:10px;padding:10px 12px;color:var(--ink);font:600 13px 'DM Sans'}.chart-wrap{height:350px;position:relative;margin-top:18px}.chart-wrap svg{width:100%;height:100%;overflow:visible}.grid-line{stroke:#e4eae6;stroke-width:1}.axis-label{fill:#73837d;font:12px 'DM Sans'}.area-path{fill:url(#area-fill)}.rate-path{fill:none;stroke:#17634e;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.hover-point{fill:transparent;cursor:crosshair}.hover-point:hover{fill:#17634e;stroke:white;stroke-width:3;r:6}.chart-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 12px));background:var(--ink);color:white;border-radius:9px;padding:9px 11px;pointer-events:none;white-space:nowrap;font-size:12px;z-index:2}.chart-tooltip strong,.chart-tooltip span{display:block}.chart-tooltip span{color:#bcd0c9;margin-top:2px}.chart-summary{display:flex;gap:25px;margin-top:22px;color:var(--muted);font-size:13px;min-height:18px}.chart-summary strong{color:var(--ink)}.chart-summary .positive{color:#25805f}.chart-summary .negative{color:#b84343}
@media(max-width:800px){.chart-heading{align-items:flex-start;flex-direction:column}.chart-controls,.custom-dates{align-items:stretch;flex-wrap:wrap;width:100%}.chart-controls>label{width:100%}.chart-wrap{height:285px}.chart-summary{gap:10px;flex-wrap:wrap;justify-content:space-between}.chart-card{padding:22px 14px}}
.chart-wrap canvas{width:100%!important;height:100%!important}

