/* All calendar and editor rules stay within the journal's own namespace. */
.ic-journal, .j-entry-dialog {
  --j-accent:#b9a5ef; --j-accent-ink:#d8cafa; --j-accent-fill:rgba(149,118,207,.09);
  --j-green:#6dd8b3; --j-green-bg:#122b28; --j-green-line:#244c40;
  --j-red:#ee9aae; --j-red-bg:#30212b; --j-red-line:#5b3444;
  --j-muted:#a5b1c6; --j-ink:#eef3fc; --j-line:#283044;
  color:var(--ic-ink,var(--j-ink)); min-width:0;
}
body.ic-light .ic-journal, body.ic-light .j-entry-dialog {
  --j-accent:#75609a; --j-accent-ink:#63498c; --j-accent-fill:rgba(117,96,154,.065);
  --j-green:#197650; --j-green-bg:#e8f4ee; --j-green-line:#bbddca;
  --j-red:#a64060; --j-red-bg:#f9eaf0; --j-red-line:#edc8d5;
  --j-muted:#55617a; --j-ink:#141b29; --j-line:#dbe3ef;
}
.ic-journal *, .j-entry-dialog * { box-sizing:border-box; }
.ic-journal .j-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 30px; }
.ic-journal .j-eyebrow { margin:0 0 10px; font-size:10px; font-weight:700; letter-spacing:1.7px; color:var(--j-accent-ink); }
.ic-journal .j-heading h1 { margin:0; font-size:clamp(25px,3vw,36px); line-height:1.2; font-weight:650; letter-spacing:-1px; color:var(--ic-ink); }
.ic-journal .j-subtitle { margin:10px 0 0; font-size:13px; line-height:1.5; color:var(--ic-ink3); }
.ic-journal .j-period { flex-shrink:0; padding:8px 11px; border:1px solid var(--ic-line4); border-radius:30px; color:var(--ic-ink3); letter-spacing:1.2px; font-size:9px; font-weight:700; }
.ic-journal .j-button, .j-entry-dialog .j-button { display:inline-flex; align-items:center; justify-content:center; gap:13px; border:1px solid var(--j-line); border-radius:10px; padding:11px 16px; min-height:42px; font:inherit; font-size:12px; font-weight:650; line-height:1.4; text-decoration:none; transition:background .15s,border-color .15s; }
.ic-journal .j-primary, .j-entry-dialog .j-primary { background:var(--j-accent); border-color:var(--j-accent); color:#151020; }
body.ic-light .ic-journal .j-primary, body.ic-light .j-entry-dialog .j-primary { color:#fff; }
.ic-journal .j-primary:hover, .j-entry-dialog .j-primary:hover { filter:brightness(1.07); }
.ic-journal .j-secondary, .j-entry-dialog .j-secondary { background:var(--j-accent-fill); color:var(--j-accent-ink); border-color:var(--j-line); }
.ic-journal .j-secondary:hover, .j-entry-dialog .j-secondary:hover { border-color:var(--j-accent); }
.ic-journal .j-text-button, .j-entry-dialog .j-text-button { display:inline; border:0; background:none; color:var(--j-accent-ink); padding:4px 0; font:inherit; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.ic-journal .j-state { border:1px solid var(--ic-line); border-radius:18px; background:var(--ic-top); padding:38px 26px; text-align:center; color:var(--ic-ink3); font-size:14px; line-height:1.6; }
.ic-journal .j-state p { margin:0 0 14px; }
.ic-journal .j-state p:last-child { margin-bottom:0; }
.ic-journal .j-loading-dot { display:block; width:9px; height:9px; background:var(--j-accent); border-radius:50%; margin:0 auto 20px; box-shadow:0 0 0 7px var(--j-accent-fill); }
.ic-journal .j-start-card { position:relative; overflow:hidden; border:1px solid var(--ic-line4); border-radius:22px; padding:48px; background:radial-gradient(ellipse at 100% 0%,var(--j-accent-fill),transparent 65%),var(--ic-top); }
.ic-journal .j-start-card h2 { margin:0; font-size:clamp(31px,4vw,47px); font-weight:600; letter-spacing:-1.6px; line-height:1.14; }
.ic-journal .j-start-copy { max-width:370px; font-size:15px; line-height:1.75; color:var(--ic-ink3); margin:20px 0 27px; }
.ic-journal .j-start-help { max-width:370px; font-size:11px; line-height:1.7; color:var(--ic-ink4); margin:16px 0 0; }
.ic-journal .j-start-art { display:flex; align-items:flex-end; gap:8px; height:65px; margin:0 0 35px; }
.ic-journal .j-start-art span { display:block; width:30px; height:27px; border:1px solid var(--j-green-line); border-radius:5px; background:var(--j-green-bg); }
.ic-journal .j-start-art span:nth-child(2) { height:35px; }
.ic-journal .j-start-art span:nth-child(3) { height:24px; background:var(--j-red-bg); border-color:var(--j-red-line); }
.ic-journal .j-start-art span:nth-child(4) { height:43px; }
.ic-journal .j-start-art span:nth-child(5) { height:52px; }
.ic-journal .j-start-art span:nth-child(6) { height:44px; background:var(--j-red-bg); border-color:var(--j-red-line); }
.ic-journal .j-start-art span:nth-child(7) { height:65px; }
.ic-journal .j-overview { display:grid; grid-template-columns:1.2fr repeat(3,minmax(0,1fr)); gap:24px; padding:25px 26px; margin:0 0 18px; border:1px solid var(--ic-line4); border-radius:16px; background:linear-gradient(110deg,var(--j-accent-fill),transparent),var(--ic-top); }
.ic-journal .j-metric { min-width:0; }
.ic-journal .j-metric dt { font-size:11px; line-height:1.5; color:var(--ic-ink3); }
.ic-journal .j-metric dt span { color:var(--ic-ink4); font-size:9px; padding-left:4px; }
.ic-journal .j-number { font-variant-numeric:tabular-nums; margin:10px 0 0; font-size:clamp(21px,2.3vw,28px); font-weight:550; letter-spacing:-.7px; line-height:1.25; overflow-wrap:anywhere; }
.ic-journal .j-metric-total .j-number { font-size:clamp(25px,2.7vw,33px); }
.ic-journal .j-positive { color:var(--j-green); }
.ic-journal .j-negative { color:var(--j-red); }
.ic-journal .j-progress-line { display:flex; align-items:center; gap:15px; margin:0 1px 23px; color:var(--ic-ink3); font-size:11px; }
.ic-journal .j-progress-line > span { flex-shrink:0; }
.ic-journal .j-progress-track { flex:1; height:4px; overflow:hidden; background:var(--ic-line4); border-radius:8px; }
.ic-journal .j-progress-track span { display:block; height:100%; border-radius:inherit; background:var(--j-accent); }
.ic-journal .j-calendar { background:var(--ic-top); border:1px solid var(--ic-line); border-radius:17px; overflow:hidden; }
.ic-journal .j-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:22px 20px 14px; }
.ic-journal .j-calendar-head h2 { font-size:16px; line-height:1.3; font-weight:600; margin:0; }
.ic-journal .j-calendar-head p { font-size:11px; color:var(--ic-ink4); line-height:1.5; margin:5px 0 0; }
.ic-journal .j-calendar-head .j-button { min-height:38px; padding:8px 12px; font-size:11px; }
.ic-journal .j-weekdays, .ic-journal .j-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; padding:0 13px; }
.ic-journal .j-weekdays span { padding:9px 10px 12px; font-size:9px; font-weight:600; letter-spacing:.7px; text-transform:uppercase; color:var(--ic-ink4); }
.ic-journal .j-days { padding-bottom:13px; }
.ic-journal .j-day { position:relative; display:flex; flex-direction:column; align-items:stretch; min-width:0; min-height:106px; border:1px solid transparent; border-radius:9px; background:var(--ic-bot); color:var(--ic-ink); text-align:left; padding:10px; font:inherit; transition:border-color .15s,background .15s; }
.ic-journal button.j-day:hover { border-color:var(--ic-lineHi); background:var(--ic-hover); }
.ic-journal .j-day-outside { background:transparent; }
.ic-journal .j-day-future { opacity:.47; }
.ic-journal .j-day-today { border-color:var(--j-accent); background:var(--j-accent-fill); }
.ic-journal .j-day-top { display:flex; align-items:center; justify-content:space-between; gap:3px; }
.ic-journal .j-day-number { font-size:11px; font-weight:550; font-variant-numeric:tabular-nums; color:var(--ic-ink3); }
.ic-journal .j-day-month { font-size:8px; color:var(--ic-ink4); }
.ic-journal .j-day-today .j-day-number { color:var(--j-accent-ink); }
.ic-journal .j-day-today-label { font-size:8px; color:var(--j-accent-ink); margin-top:2px; }
.ic-journal .j-day-result { min-width:0; font-variant-numeric:tabular-nums; font-size:16px; font-weight:600; letter-spacing:-.55px; line-height:1.35; margin-top:auto; padding-top:12px; white-space:nowrap; }
.ic-journal .j-mobile-amount { display:none; }
.ic-journal .j-day-detail { min-height:13px; font-size:8px; color:var(--ic-ink4); margin-top:3px; }
.ic-journal .j-day-profit { background:var(--j-green-bg); }
.ic-journal .j-day-profit .j-day-result { color:var(--j-green); }
.ic-journal button.j-day-profit:hover { background:var(--j-green-bg); border-color:var(--j-green-line); }
.ic-journal .j-day-loss { background:var(--j-red-bg); }
.ic-journal .j-day-loss .j-day-result { color:var(--j-red); }
.ic-journal button.j-day-loss:hover { background:var(--j-red-bg); border-color:var(--j-red-line); }
.ic-journal .j-day-flat, .ic-journal .j-day-no-trade { background:var(--ic-shot); }
.ic-journal .j-no-trade-text { color:var(--ic-ink3); font-size:11px; font-weight:500; letter-spacing:0; }
.ic-journal .j-calendar-footer { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:center; padding:16px 20px; border-top:1px solid var(--ic-line); color:var(--ic-ink3); font-size:9px; line-height:1.6; }
.ic-journal .j-legend { display:flex; flex-wrap:wrap; gap:14px; }
.ic-journal .j-legend span { display:inline-flex; align-items:center; gap:6px; }
.ic-journal .j-legend i { display:inline-block; width:6px; height:6px; border-radius:2px; }
.ic-journal .j-swatch-profit { background:var(--j-green); }
.ic-journal .j-swatch-loss { background:var(--j-red); }
.ic-journal .j-swatch-flat { background:var(--ic-ink4); }
.ic-journal .j-foot { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; padding:16px 2px 0; color:var(--ic-ink4); font-size:10px; line-height:1.5; }
.ic-journal .j-save-status { display:flex; align-items:center; gap:6px; }
.ic-journal .j-save-status::before { content:""; width:4px; height:4px; border-radius:50%; background:var(--j-accent); flex-shrink:0; }
.ic-journal .j-projection-note { color:var(--ic-ink4); font-size:10px; line-height:1.75; max-width:810px; margin:18px 2px 0; }
.ic-journal .j-refresh-error { border:1px solid var(--j-red-line); border-radius:10px; padding:12px 16px; margin:0 0 18px; color:var(--j-red); font-size:12px; line-height:1.6; }
.ic-journal .j-refresh-error .j-text-button { margin-left:8px; }
.ic-journal .j-error, .j-entry-dialog .j-error { color:var(--j-red); font-size:12px; line-height:1.6; margin:17px 0 0; }
.ic-dialog.j-entry-dialog { width:min(480px,100%); }
.j-entry-dialog .j-entry-form { font-size:13px; }
.j-entry-dialog .j-entry-intro { margin:0 0 20px; color:var(--j-muted); font-size:12px; line-height:1.65; }
.j-entry-dialog .j-field-label { display:block; margin:0 0 8px; font-size:12px; line-height:1.5; color:var(--j-ink); }
.j-entry-dialog .j-field-label span { font-size:10px; color:var(--j-muted); margin-left:6px; }
.j-entry-dialog .j-amount-wrap { display:flex; align-items:center; gap:10px; padding:8px 14px; border:1px solid var(--j-accent); border-radius:12px; background:var(--j-accent-fill); }
.j-entry-dialog .j-amount-wrap > span { font-size:28px; color:var(--j-accent); }
.j-entry-dialog .j-amount-wrap .j-amount-input { min-width:0; width:100%; border:0; border-radius:0; padding:5px 0; background:transparent; font-size:32px; font-weight:550; line-height:1.3; letter-spacing:-.8px; font-variant-numeric:tabular-nums; }
.j-entry-dialog .j-amount-input::placeholder { color:var(--j-muted); opacity:.65; }
.j-entry-dialog .j-amount-input:disabled { opacity:.45; }
.j-entry-dialog .j-amount-help { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:8px 0 20px; }
.j-entry-dialog .j-amount-help p { margin:0; font-size:10px; line-height:1.6; color:var(--j-muted); }
.j-entry-dialog .j-amount-help .j-text-button { font-size:10px; flex-shrink:0; }
.j-entry-dialog .j-no-trade-label { display:flex; align-items:center; gap:9px; margin:0 0 24px; color:var(--j-ink); font-size:12px; cursor:pointer; }
.j-entry-dialog .j-no-trade-label input { width:16px; height:16px; margin:0; accent-color:var(--j-accent); }
.j-entry-dialog .j-note-input { resize:vertical; font-size:13px; line-height:1.6; }
.j-entry-dialog .j-editor-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:23px; }
.j-entry-dialog .j-editor-actions .j-primary { margin-left:auto; min-width:115px; }
.j-entry-dialog .j-danger { color:var(--j-red); background:none; border-color:transparent; padding-left:0; }
.j-entry-dialog .j-entry-status { margin:12px 0 0; color:var(--j-muted); font-size:11px; line-height:1.6; }
.j-entry-dialog .j-entry-status:empty { display:none; }
@media(max-width:1200px) {
  .ic-journal .j-overview { grid-template-columns:repeat(2,minmax(0,1fr)); gap:23px 28px; }
  .ic-journal .j-number { font-size:27px; }
  .ic-journal .j-metric-total .j-number { font-size:30px; }
  .ic-journal .j-day-result { font-size:14px; }
  .ic-journal .j-day { padding:9px 7px; }
}
@media(max-width:900px) and (min-width:701px) {
  .ic-journal .j-day-result { font-size:10px; letter-spacing:-.4px; }
  .ic-journal .j-day { min-height:94px; padding:8px 4px; }
  .ic-journal .j-day-detail { font-size:7px; }
}
@media(max-width:700px) {
  .ic-journal .j-heading { gap:10px; margin-bottom:23px; }
  .ic-journal .j-heading h1 { font-size:27px; letter-spacing:-.8px; }
  .ic-journal .j-eyebrow { font-size:8px; letter-spacing:1.25px; }
  .ic-journal .j-period { padding:7px 8px; font-size:8px; letter-spacing:.8px; }
  .ic-journal .j-subtitle { font-size:11px; }
  .ic-journal .j-overview { padding:20px; gap:21px 22px; }
  .ic-journal .j-metric dt { font-size:10px; }
  .ic-journal .j-number { font-size:26px; }
  .ic-journal .j-metric-total .j-number { font-size:28px; }
  .ic-journal .j-start-card { padding:30px 26px; border-radius:17px; }
  .ic-journal .j-start-card h2 { font-size:37px; }
  .ic-journal .j-start-copy { font-size:14px; }
  .ic-journal .j-start-art { margin-bottom:27px; }
  .ic-journal .j-calendar { border-radius:13px; }
  .ic-journal .j-calendar-head { padding:16px 12px 12px; }
  .ic-journal .j-calendar-head h2 { font-size:14px; }
  .ic-journal .j-calendar-head p { font-size:10px; }
  .ic-journal .j-weekdays, .ic-journal .j-days { gap:4px; padding-left:7px; padding-right:7px; }
  .ic-journal .j-weekdays span { padding:7px 0 9px; font-size:8px; text-align:center; letter-spacing:.3px; }
  .ic-journal .j-days { padding-bottom:7px; }
  .ic-journal .j-day { min-height:82px; border-radius:6px; padding:8px 3px; }
  .ic-journal .j-day-top { justify-content:center; flex-wrap:wrap; gap:3px; }
  .ic-journal .j-day-number { font-size:10px; }
  .ic-journal .j-day-month { font-size:7px; }
  .ic-journal .j-day-today-label { text-align:center; font-size:7px; }
  .ic-journal .j-day-result { text-align:center; font-size:11px; letter-spacing:-.65px; padding-top:10px; }
  .ic-journal .j-day-detail { display:none; }
  .ic-journal .j-desktop-amount { display:none; }
  .ic-journal .j-mobile-amount { display:inline; }
  .ic-journal .j-no-trade-text { white-space:normal; font-size:9px; }
  .ic-journal .j-calendar-footer { padding:12px; gap:8px; font-size:8px; }
  .ic-journal .j-legend { gap:12px; }
  .ic-journal .j-projection-note { font-size:9px; }
}
@media(max-width:380px) {
  .ic-journal .j-heading h1 { font-size:24px; }
  .ic-journal .j-period { display:none; }
  .ic-journal .j-start-card { padding:25px 21px; }
  .ic-journal .j-start-card h2 { font-size:32px; }
  .ic-journal .j-overview { padding:17px 15px; gap:20px 14px; }
  .ic-journal .j-number, .ic-journal .j-metric-total .j-number { font-size:22px; }
  .ic-journal .j-weekdays, .ic-journal .j-days { gap:3px; padding-left:5px; padding-right:5px; }
  .ic-journal .j-day { min-height:75px; padding:7px 1px; }
  .ic-journal .j-day-result { font-size:10px; letter-spacing:-.6px; }
  .ic-journal .j-day-month { font-size:6px; }
  .ic-journal .j-no-trade-text { font-size:8px; }
  .ic-journal .j-progress-line { font-size:10px; gap:10px; }
}
