/* V1.4 homepage dashboard */
.v14-grid{display:grid;grid-template-columns:1fr;gap:14px;margin:14px 0}.v14-card{background:linear-gradient(150deg,#19293c,#131e2d);border:1px solid #29415b;border-radius:18px;padding:17px;min-width:0}.v14-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.v14-head h2{font-size:17px;margin:0}.v14-switch{display:flex;gap:4px;flex-wrap:wrap}.v14-switch button{background:#23354a;border:1px solid transparent;border-radius:9px;padding:7px 11px;color:#a9bbd1;font-size:12px}.v14-switch button.sel{background:#2063bb;color:#fff}.v14-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.v14-day{min-height:54px;border-radius:7px;background:#102031;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px;color:#afc1d8;overflow:hidden}.v14-day b{font-size:10px;white-space:nowrap}.v14-day.positive{background:#382a35}.v14-day.positive b{color:#ff929e}.v14-day.negative{background:#143e3b}.v14-day.negative b{color:#61e3c1}.v14-day.today{outline:1px solid #67adff}.v14-day.empty{background:transparent}.v14-day.weekday{min-height:24px;background:transparent;color:#718eae}.v14-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.v14-stat{border:1px solid #2a4056;border-radius:10px;padding:10px;min-width:0}.v14-stat span{font-size:12px;color:#9fb5cd}.v14-stat strong{display:block;font-size:17px;margin-top:6px;font-variant-numeric:tabular-nums}.v14-chart{width:100%;height:auto;min-height:160px}.v14-muted{font-size:12px;color:#99acc4;line-height:1.65}.v14-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.v14-actions button{background:#263b53;color:#e3efff;border:0;border-radius:9px;padding:8px 10px;font-size:12px}.v14-big{font-size:27px;font-weight:750;margin:8px 0}.v14-index-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.v14-index-meta strong{font-size:15px}.v14-linekey{display:flex;align-items:center;gap:8px;color:#a7b8cc;font-size:12px;margin:9px 0}.v14-dot{width:8px;height:8px;border-radius:50%;background:#67adff}.v14-note{border-top:1px solid #293d54;padding-top:10px;margin-top:12px}.v14-privacy{filter:blur(6px);user-select:none}@media(min-width:730px){.v14-grid{grid-template-columns:1fr 1fr}.v14-market{grid-column:2}.v14-day{min-height:61px}}

/* V1.4 six-feature integrated mobile refinements */
.v14-day{overflow:visible;min-width:0;padding:2px 0}.v14-day b{font-size:clamp(7px,1.65vw,10px);font-weight:650;letter-spacing:-.4px;white-space:nowrap;max-width:100%;transform-origin:center;font-variant-numeric:tabular-nums}.v14-day.positive b,.v14-day.negative b{font-size:clamp(7px,1.65vw,10px)}.v14-day[data-v14-date]{cursor:pointer}.v14-stat strong{overflow-wrap:anywhere;font-size:clamp(13px,3.7vw,17px)}.v14-holding{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:12px 0;border-bottom:1px solid #2b4057}.v14-holding strong{display:block;color:#e8f1ff;font-size:13px}.v14-holding small{display:block;font-size:11px;color:#93aac5;margin-top:5px}.v14-holding-money{text-align:right}.v14-holding-money strong.v14-red{color:#ff838d}.v14-holding-money strong.v14-green{color:#55d4b0}.v14-progress{grid-column:1/-1;height:4px;border-radius:4px;background:#22354b;overflow:hidden}.v14-progress i{display:block;height:100%;background:#65aaff;border-radius:4px}.v14-risk-item{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #2b4057;padding:10px 0}.v14-risk-item strong{color:#e7f1ff}.v14-risk-item+p{margin-top:14px}.v14-card p{line-height:1.7}.v14-day.positive,.v14-day.negative{border:1px solid transparent}

/* V1.4 visual clarity and small-screen fixes */
.top,.brand,.brand h1,.brand .small,.logo {filter:none!important;-webkit-filter:none!important;opacity:1!important;transform:none!important;text-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.brand h1{color:#f7faff;font-weight:750;letter-spacing:0;line-height:1.3;-webkit-font-smoothing:antialiased}
.brand .small{color:#c1d0e5;font-size:13px;line-height:1.55}
.v14-card,.card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.v14-muted,.v14-holding small,.v14-stat span,.label,.small{color:#b7c8df}
.v14-day{overflow:hidden;min-width:0;gap:4px;padding:5px 1px;min-height:66px}
.v14-day b{font-size:10px!important;letter-spacing:-.2px;line-height:1.15;white-space:normal;overflow-wrap:anywhere;text-align:center;max-width:100%;font-variant-numeric:tabular-nums}
.v14-day .v14-day-num{font-size:12px}
.v14-day .v14-day-amount{font-size:10px;line-height:1.15;display:block;max-width:100%;overflow-wrap:anywhere}
.v14-day.weekday{min-height:26px}
.v14-sort{width:auto;max-width:120px;margin:0;padding:7px 8px;font-size:12px;border-radius:9px;background:#23354a;color:#e5efff}
.v14-holding{grid-template-columns:minmax(0,1fr) minmax(100px,auto)}
.v14-holding strong{overflow-wrap:anywhere;line-height:1.5}
.v14-holding-money{min-width:0}
.v14-holding-money strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.v14-point-info{font-size:12px;color:#d4e3f7;background:#102438;border:1px solid #2b4b68;border-radius:9px;padding:10px;margin:8px 0}
.v14-chart circle{cursor:pointer;touch-action:manipulation}
.nav{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#111b28!important}
.shell{padding-bottom:calc(125px + env(safe-area-inset-bottom,0px))}
@media(max-width:390px){.v14-card{padding:13px}.v14-cal{gap:2px}.v14-day{min-height:70px}.v14-day b{font-size:9px!important}.v14-head h2{font-size:15px}.brand h1{font-size:20px}}

/* V1.4.1: sharp, opaque, non-composited app header on iOS Safari/PWA */
header.top{position:relative!important;isolation:isolate;overflow:visible!important;filter:none!important;-webkit-filter:none!important;opacity:1!important;transform:none!important;will-change:auto!important;}
header.top .brand,header.top .brand>div,header.top .brand h1,header.top .brand .small,header.top .logo,header.top .iconbtn{filter:none!important;-webkit-filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;text-shadow:none!important;opacity:1!important;transform:none!important;will-change:auto!important;mix-blend-mode:normal!important;}
header.top .brand>div{min-width:0;flex:1;}
header.top h1.app-title-crisp{display:block!important;position:relative!important;color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;font-size:clamp(18px,5.2vw,22px)!important;font-weight:800!important;line-height:1.35!important;letter-spacing:0!important;-webkit-font-smoothing:auto!important;text-rendering:optimizeLegibility!important;white-space:nowrap;}
header.top .brand .small{color:#c8d6e8!important;-webkit-text-fill-color:#c8d6e8!important;}
header.top .logo{flex:0 0 46px;color:#75b9ff!important;}
header.top .iconbtn{flex:0 0 42px;color:#ffffff!important;}
@media(max-width:380px){header.top{gap:8px}header.top .brand{gap:9px}header.top h1.app-title-crisp{font-size:18px!important}}

/* V1.4.2: fix over-broad flex selector and rebuild header layout */
header.top{display:grid!important;grid-template-columns:minmax(0,1fr) 42px!important;gap:12px!important;align-items:center!important}
header.top .brand{display:grid!important;grid-template-columns:46px minmax(0,1fr)!important;gap:12px!important;min-width:0!important;width:100%!important;align-items:center!important}
header.top .brand>.logo{width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;flex:none!important;display:grid!important;place-items:center!important;padding:0!important;overflow:hidden!important}
header.top .brand>.brand-copy{min-width:0!important;width:auto!important;flex:none!important;display:block!important}
header.top .brand-copy h1{margin:0!important;filter:none!important;-webkit-filter:none!important;text-shadow:none!important;opacity:1!important;font-size:clamp(18px,4.8vw,22px)!important;line-height:1.4!important;white-space:normal!important}
header.top .brand-copy .small{margin-top:3px!important;overflow-wrap:anywhere!important}
header.top>.iconbtn{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;justify-self:end!important}
