@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#0b1020;--panel:#121a2b;--panel2:#151f32;--line:#253047;--text:#edf2fb;--muted:#8995aa;--green:#3fcf9b;--red:#f76877;--blue:#8b9cff}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 12% 0%,#16223c 0%,var(--bg) 42%);color:var(--text);font:14px 'DM Sans',sans-serif;min-height:100vh}.topbar{height:76px;border-bottom:1px solid rgba(150,166,195,.12);display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100vw - 1400px)/2),32px);gap:20px}.brand{font:800 19px Manrope,sans-serif;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:10px;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#7488ff,#9c72ff);color:white}.brand-sub{font:600 9px 'DM Sans';letter-spacing:1.2px;margin-left:7px}.topbar nav{display:flex;align-items:center;gap:22px}.topbar nav a,.nav-logout{font-size:12px;color:#aeb8ca;text-decoration:none;background:none;border:0;cursor:pointer}.topbar nav a:hover,.nav-logout:hover,.text-link:hover{color:white}.inline{display:inline}.container{max-width:1400px;margin:0 auto;padding:38px 32px 55px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{color:#9ba8ff;font-size:10px;font-weight:700;letter-spacing:1.8px;margin-bottom:9px}h1,h2,h3,p{margin-top:0}h1{font:700 32px Manrope,sans-serif;letter-spacing:-1px;margin-bottom:7px}h2{font:700 18px Manrope;margin-bottom:7px}h3{font:700 14px Manrope;margin-bottom:18px}.muted{color:var(--muted)}.page-heading p{margin-bottom:0;font-size:13px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:42px}.stat-card,.panel{background:linear-gradient(145deg,rgba(22,32,51,.97),rgba(16,24,40,.97));border:1px solid rgba(145,160,190,.15);border-radius:14px;box-shadow:0 12px 35px rgba(0,0,0,.08)}.stat-card{padding:19px 20px;min-height:105px}.stat-label{font-size:11px;color:#9aa7bd;font-weight:500;margin-bottom:14px}.stat-value{font:700 25px Manrope,sans-serif;letter-spacing:-.6px;white-space:nowrap}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:5px 0 17px}.section-heading h2{margin-bottom:5px}.section-heading p{font-size:12px;margin:0}.charts-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:16px;margin-bottom:38px}.panel{padding:22px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between}.panel-title h3{margin-bottom:14px}.pill{font-size:9px;font-weight:700;letter-spacing:1px;border:1px solid #34405b;border-radius:5px;padding:5px 7px;color:#aeb8cb}.chart-box{height:260px;position:relative}.chart-box.doughnut{height:220px;max-width:260px;margin:auto}.legend-row{display:flex;gap:15px;justify-content:center;color:#aab4c7;font-size:11px}.legend-row span{display:flex;align-items:center;gap:6px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%}.dot.win{background:var(--green)}.dot.loss{background:var(--red)}.dot.flat{background:#8792a5}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:38px}.analysis-grid .panel{padding:21px}.chart-box.compact{height:220px;margin-bottom:14px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th{text-align:left;color:#8190a8;font-size:9px;letter-spacing:.7px;text-transform:uppercase;font-weight:700;padding:11px 10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid rgba(145,160,190,.09);color:#d0d8e6}tbody tr:last-child td{border-bottom:0}.table-panel{padding:5px 18px}.empty-state{text-align:center;padding:28px!important;color:var(--muted)}.text-link{font-size:12px;color:#a8b5ff;text-decoration:none}.method-note,.note{margin-top:18px;border:1px solid rgba(139,156,255,.2);background:rgba(139,156,255,.06);padding:15px 17px;border-radius:10px;color:#aab5ca;font-size:11px;line-height:1.7}.method-note strong,.note strong{color:#dbe2ff}.primary,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:8px;padding:12px 16px;background:linear-gradient(135deg,#7388ff,#8d76f6);color:white;text-decoration:none;font-weight:700;font-size:12px;cursor:pointer}.primary:hover{filter:brightness(1.08)}.link-button{white-space:nowrap}.auth-card{max-width:420px;margin:55px auto;background:rgba(18,26,43,.94);border:1px solid var(--line);border-radius:16px;padding:35px;box-shadow:0 22px 60px rgba(0,0,0,.2)}.auth-card h1{font-size:27px}.auth-card>p{font-size:12px;line-height:1.6}.stack{display:flex;flex-direction:column;gap:17px;margin-top:25px}.stack label{display:flex;flex-direction:column;gap:8px;color:#cdd5e4;font-size:12px;font-weight:600}.stack input{width:100%;border:1px solid #303c54;background:#0d1424;border-radius:8px;padding:12px;color:white;font:14px 'DM Sans';outline:none}.stack input:focus{border-color:#8b9cff}.stack button{width:100%;margin-top:4px}.auth-bottom{margin-top:24px!important;text-align:center}.auth-bottom a{color:#a7b4ff;text-decoration:none}.flash-list{display:grid;gap:8px;margin-bottom:18px}.flash{padding:12px 14px;border-radius:8px;font-size:12px}.flash.success{background:rgba(63,207,155,.1);border:1px solid rgba(63,207,155,.25);color:#72e1b6}.flash.error{background:rgba(247,104,119,.1);border:1px solid rgba(247,104,119,.25);color:#ff9ba5}.import-panel{max-width:720px;margin-bottom:18px}.import-panel .stack{max-width:480px}.small{font-size:11px}.secondary-button{margin-top:15px;background:#202b42;border:1px solid #35415a}.narrow{max-width:600px}code{color:#b5c0ff;background:#0b1221;padding:3px 5px;border-radius:4px;font-size:11px}footer{text-align:center;padding:25px 15px 35px;color:#58667d;font-size:10px;border-top:1px solid rgba(150,166,195,.08)}
@media(max-width:1000px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.charts-grid{grid-template-columns:1fr}.analysis-grid{grid-template-columns:1fr}.topbar{padding:0 22px}.container{padding:28px 22px 40px}}
@media(max-width:650px){.topbar{height:auto;align-items:flex-start;flex-direction:column;padding:17px 16px;gap:14px}.topbar nav{width:100%;gap:14px;flex-wrap:wrap}.brand-sub{display:none}.container{padding:24px 14px 35px}.page-heading{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-card{padding:15px;min-height:90px}.stat-value{font-size:20px}.stat-label{font-size:10px;margin-bottom:11px}.panel{padding:16px}.chart-box{height:230px}h1{font-size:27px}.auth-card{margin:25px auto;padding:25px}.section-heading{align-items:flex-start;gap:10px;flex-direction:column}}

.stack select,.filter-form select{width:100%;border:1px solid #303c54;background:#0d1424;border-radius:8px;padding:12px;color:white;font:14px 'DM Sans';outline:none}.stack select:focus,.filter-form select:focus{border-color:#8b9cff}.account-filter{margin:-10px 0 28px;padding:16px 20px}.filter-form{display:flex;align-items:end;gap:12px}.filter-form label{display:flex;flex-direction:column;gap:8px;color:#cdd5e4;font-size:12px;font-weight:600;max-width:560px;width:100%}.account-filter p{margin:10px 0 0}.account-filter .filter-form select{max-width:560px}@media(max-width:650px){.filter-form{align-items:stretch;flex-direction:column}}

/* Monthly calendar: uses the existing TradeScope palette and typography. */
.calendar-toolbar{display:flex;align-items:center;gap:22px;justify-content:space-between;margin-bottom:18px;padding:16px 18px}.calendar-month-nav{display:flex;align-items:center;gap:14px;min-width:max-content}.calendar-month-nav h2{margin:0;min-width:155px;text-align:center;font-size:19px}.month-arrow{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(63,207,155,.4);border-radius:9px;color:var(--green);font-size:25px;text-decoration:none;line-height:1}.month-arrow:hover{background:rgba(63,207,155,.1)}.calendar-top-stats{display:flex;align-items:center;gap:18px}.calendar-top-stats>div{display:flex;flex-direction:column;gap:5px}.calendar-top-stats strong{font:700 18px Manrope,sans-serif;white-space:nowrap}.calendar-filter{min-width:220px}.calendar-filter label{display:flex;flex-direction:column;gap:6px;color:#cdd5e4;font-size:11px;font-weight:600}.calendar-filter select{max-width:300px;width:100%;border:1px solid #303c54;background:#0d1424;border-radius:8px;padding:10px;color:white;font:12px 'DM Sans';outline:none}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:16px;align-items:start}.calendar-main{padding:10px}.calendar-weekdays,.calendar-week-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays{margin-bottom:8px}.calendar-weekdays div{display:grid;place-items:center;min-height:38px;background:#202c41;border:1px solid #34415a;border-radius:6px;color:#d4dcec;font-size:11px;font-weight:700}.calendar-week-row{margin-bottom:8px}.calendar-day{min-width:0;min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 4px;background:#1a2538;border:1px solid #2b3850;border-radius:9px;text-decoration:none;color:var(--text);position:relative}.calendar-day:hover{border-color:#8b9cff;transform:translateY(-1px)}.calendar-day-number{font:700 15px Manrope,sans-serif;color:#d9e2f2}.calendar-day.has-profit{background:rgba(26,115,94,.25);border-color:var(--green)}.calendar-day.has-loss{background:rgba(133,42,59,.24);border-color:var(--red)}.calendar-day.has-trades .calendar-day-number{position:absolute;right:8px;top:7px;font-size:10px;color:#8291a9;font-weight:500}.calendar-day-pnl{font:700 16px Manrope,sans-serif;margin-top:8px;white-space:nowrap}.calendar-day-count{font-size:11px;color:#c6d1e2}.calendar-day-winrate{font-size:10px;color:var(--green)}.calendar-day.has-loss .calendar-day-winrate{color:var(--red)}.calendar-day.outside-month{background:rgba(13,20,36,.42);border-color:rgba(43,56,80,.5);color:#46536b}.calendar-day.outside-month .calendar-day-number{color:#46536b}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;padding:8px 5px 2px;color:var(--muted);font-size:10px}.calendar-legend span{display:flex;align-items:center;gap:6px}.legend-swatch{width:9px;height:9px;border:1px solid #526078;border-radius:3px;display:inline-block}.profit-swatch{background:rgba(26,115,94,.5);border-color:var(--green)}.loss-swatch{background:rgba(133,42,59,.5);border-color:var(--red)}.calendar-weeks{display:flex;flex-direction:column;gap:9px}.calendar-weeks h2{font-size:15px;margin:3px 0 4px}.week-summary{border:1px solid #34415a;border-radius:10px;padding:12px 10px;background:#172237;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.week-summary.week-profit{background:rgba(26,115,94,.22);border-color:var(--green)}.week-summary.week-loss{background:rgba(133,42,59,.22);border-color:var(--red)}.week-title{font-size:11px;color:#d6deed}.week-summary strong{font:700 18px Manrope,sans-serif}.week-summary>span{font-size:10px;color:#b6c2d5}.calendar-heading{margin-bottom:20px}
@media(max-width:1100px){.calendar-toolbar{flex-wrap:wrap}.calendar-layout{grid-template-columns:minmax(0,1fr) 175px}.calendar-weekdays,.calendar-week-row{gap:5px}.calendar-day{min-height:85px}.calendar-day-pnl{font-size:13px}.calendar-top-stats{margin-left:auto}}
@media(max-width:760px){.calendar-layout{grid-template-columns:1fr}.calendar-weeks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-weeks h2{grid-column:1/-1}.calendar-toolbar{align-items:flex-start}.calendar-top-stats{margin-left:0;flex-wrap:wrap}.calendar-filter{width:100%}.calendar-filter select{max-width:none}.calendar-day{min-height:74px;padding:5px 2px;gap:4px}.calendar-day-pnl{font-size:11px;margin-top:8px}.calendar-day-count{font-size:9px}.calendar-day-winrate{font-size:9px}.calendar-weekdays div{font-size:10px}.calendar-day-number{font-size:13px}}
@media(max-width:480px){.calendar-weekdays,.calendar-week-row{gap:3px}.calendar-day{min-height:65px;border-radius:6px}.calendar-day-pnl{font-size:9px}.calendar-day-count,.calendar-day-winrate{font-size:8px}.calendar-day.has-trades .calendar-day-number{right:4px;top:4px;font-size:8px}.calendar-month-nav h2{min-width:130px;font-size:17px}.calendar-top-stats strong{font-size:15px}}

/* Align weekly summaries with the calendar rows */
@media (min-width: 761px) {
    .calendar-weeks {
        padding-top: 56px;
        gap: 8px;
    }

    .calendar-weeks h2 {
        position: absolute;
        margin-top: -53px;
    }

    .week-summary {
        min-height: 96px;
        box-sizing: border-box;
        justify-content: center;
    }
}

@media (min-width: 761px) {
    .calendar-weeks {
        gap: 8px;
    }

    .week-summary {
        height: 114px;
        min-height: 114px;
        padding: 8px;
        box-sizing: border-box;
    }
}

@media (min-width: 761px) {
    .week-summary {
        height: 111px;
        min-height: 111px;
        margin: 0;
    }

    .calendar-weeks {
        gap: 8px;
    }
}

/* Final calendar alignment */
@media (min-width: 761px) {
    .calendar-week-row {
        grid-auto-rows: 111px;
    }

    .calendar-day {
        height: 111px;
        min-height: 111px;
        box-sizing: border-box;
    }

    .calendar-weeks h2 {
        position: static;
        margin: 3px 0 4px;
        text-align: center;
    }

    .calendar-weeks {
        padding-top: 0;
        gap: 8px;
    }

    .calendar-weeks .week-summary {
        height: 111px;
        min-height: 111px;
        margin: 0;
        box-sizing: border-box;
    }
}

/* Synchronized calendar and weekly-summary rows */
@media (min-width: 761px) {
    .calendar-layout {
        grid-template-rows: 46px repeat(5, minmax(111px, auto)) auto;
        align-items: stretch;
    }

    .calendar-main {
        grid-row: 1 / span 7;
        display: grid;
        grid-template-rows: subgrid;
        row-gap: 0;
        padding: 10px;
    }

    .calendar-weekdays {
        margin-bottom: 8px;
    }

    .calendar-week-row {
        grid-auto-rows: 1fr;
        margin-bottom: 8px;
    }

    .calendar-day {
        height: auto;
        min-height: 0;
    }

    .calendar-weeks {
        grid-row: 1 / span 6;
        display: grid;
        grid-template-rows: subgrid;
        gap: 0;
        padding-top: 10px;
    }

    .calendar-weeks h2 {
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        margin: 0;
    }

    .calendar-weeks .week-summary {
        height: auto;
        min-height: 0;
        margin: 0 0 8px;
        justify-content: center;
    }
}

/* Calendar: support both five- and six-week months */
@media (min-width: 761px) {
    .calendar-layout {
        grid-template-rows: auto;
        align-items: start;
    }

    .calendar-main {
        grid-row: auto;
        display: block;
        padding: 10px;
    }

    .calendar-weekdays,
    .calendar-week-row {
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 8px;
    }

    .calendar-week-row {
        grid-auto-rows: 111px;
        margin-bottom: 8px;
    }

    .calendar-day {
        height: 111px;
        min-height: 0;
        box-sizing: border-box;
    }

    .calendar-weeks {
        grid-row: auto;
        display: grid;
        grid-template-rows: 46px repeat(6, 111px);
        gap: 8px;
        padding-top: 10px;
    }

    .calendar-weeks h2 {
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        margin: 0;
    }

    .calendar-weeks .week-summary {
        height: 111px;
        min-height: 0;
        margin: 0;
        box-sizing: border-box;
        justify-content: center;
    }

    .calendar-legend {
        margin-top: 8px;
    }
}

/* Align weekly heading and cards precisely with calendar rows */
@media (min-width: 761px) {
    .calendar-layout {
        align-items: start;
    }

    .calendar-main {
        padding: 10px;
    }

    .calendar-weeks {
        padding-top: 10px;
        grid-template-rows: 38px repeat(6, 111px);
        gap: 8px;
    }

    .calendar-weeks h2 {
        height: 38px;
        margin: 0;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .calendar-weeks .week-summary {
        height: 111px;
        min-height: 111px;
        margin: 0;
        padding: 8px;
        box-sizing: border-box;
    }
}
