/* Public pages use quiet, opaque surfaces; private ledger styling stays scoped. */
body:has(.public-shell){background:#fff;background-image:none;color:#1d1d1f}
body:has(.public-shell)::before,body:has(.public-shell)::after{display:none}
.public-shell{display:flex!important;flex-direction:column!important;width:100%;max-width:none!important;min-height:100vh;margin:0!important;padding:0!important;background:#fff!important;box-shadow:none!important;border:0!important;border-radius:0!important}
.public-header{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:28px!important;position:static!important;min-height:58px!important;width:100%;max-width:1120px!important;margin:0 auto!important;padding:8px 28px!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;backdrop-filter:none!important;box-sizing:border-box}
.public-brand{padding:0!important;border:0!important;background:none!important;box-shadow:none!important;min-width:120px}
.public-brand .brand{font-size:17px!important;font-weight:650!important;white-space:nowrap;gap:9px}
.public-brand img{width:25px;height:25px}
/* 3.32 public menu: three separate Liquid Glass pills. The nav itself carries no surface, rim
   or blur (the desktop bar and its ::before rim are switched off here); each button owns its
   material. On white the glass reads through a vertical sheen, a top highlight, a cool bottom
   shade and a hairline edge rather than heavy blur. No pseudo-element sits over the labels. */
.public-nav{display:flex!important;justify-content:flex-end;align-items:center;flex-wrap:nowrap;gap:10px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.public-nav::before,.public-nav button::before{content:none!important}
.public-nav button{display:inline-flex;align-items:center;justify-content:center;font-size:13px!important;font-weight:500!important;letter-spacing:-.01em!important;line-height:1.2!important;min-height:44px!important;padding:0 16px!important;border:0!important;border-radius:999px!important;color:#1d1d1f!important;white-space:nowrap;background:linear-gradient(180deg,rgba(255,255,255,.72) 0%,rgba(250,250,252,.55) 55%,rgba(240,242,246,.5) 100%),rgba(255,255,255,.35)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -1px 0 rgba(170,190,210,.22),inset 0 0 0 1px rgba(60,70,90,.08),0 1px 3px rgba(20,20,30,.06),0 4px 10px rgba(20,20,30,.04)!important;-webkit-backdrop-filter:blur(6px) saturate(140%)!important;backdrop-filter:blur(6px) saturate(140%)!important;transition:background .15s ease,box-shadow .15s ease,transform .1s ease,color .15s ease}
.public-nav button:hover{background:linear-gradient(180deg,rgba(255,255,255,.85) 0%,rgba(252,252,254,.68) 55%,rgba(244,246,250,.62) 100%),rgba(255,255,255,.35)!important;box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(170,190,210,.26),inset 0 0 0 1px rgba(60,70,90,.1),0 2px 5px rgba(20,20,30,.08),0 6px 14px rgba(20,20,30,.05)!important}
.public-nav button:active{transform:scale(.97);background:linear-gradient(180deg,rgba(240,240,244,.75) 0%,rgba(232,234,240,.65) 100%),rgba(255,255,255,.35)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(150,170,195,.3),inset 0 0 0 1px rgba(60,70,90,.12),0 1px 2px rgba(20,20,30,.08)!important}
.public-nav button:focus-visible{outline:3px solid #0071e3;outline-offset:3px}
.public-nav button[aria-current=page]{color:#0071e3!important;font-weight:600!important;background:linear-gradient(180deg,rgba(224,240,255,.8) 0%,rgba(206,230,255,.62) 55%,rgba(196,222,252,.55) 100%),rgba(255,255,255,.35)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(120,170,225,.3),inset 0 0 0 1px rgba(0,113,227,.22),0 1px 3px rgba(0,90,190,.1),0 4px 12px rgba(0,90,190,.07)!important}
.public-nav button[aria-current=page]:hover{background:linear-gradient(180deg,rgba(230,243,255,.9) 0%,rgba(212,234,255,.72) 55%,rgba(202,226,253,.65) 100%),rgba(255,255,255,.35)!important}
@media(prefers-reduced-motion:reduce){.public-nav button{transition:none}.public-nav button:active{transform:none}}
@media(prefers-reduced-transparency:reduce){:where(:root:not([data-glass-appearance=active])) .public-nav button,:where(:root:not([data-glass-appearance=active])) .public-nav button:is(:hover,:active){background:#f2f3f5!important;box-shadow:0 0 0 1px rgba(0,0,0,.12)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}:where(:root:not([data-glass-appearance=active])) .public-nav button:hover{background:#e9ebee!important}:where(:root:not([data-glass-appearance=active])) .public-nav button[aria-current=page],:where(:root:not([data-glass-appearance=active])) .public-nav button[aria-current=page]:is(:hover,:active){background:#d9ecff!important;box-shadow:0 0 0 1px rgba(0,113,227,.35)!important}}
@media(prefers-contrast:more){:where(:root:not([data-glass-appearance=active])) .public-nav button,:where(:root:not([data-glass-appearance=active])) .public-nav button:is(:hover,:active){background:#fff!important;color:#000!important;box-shadow:0 0 0 2px #000!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}:where(:root:not([data-glass-appearance=active])) .public-nav button[aria-current=page],:where(:root:not([data-glass-appearance=active])) .public-nav button[aria-current=page]:is(:hover,:active){background:#fff!important;color:#0040a0!important;box-shadow:0 0 0 2px #0040a0!important}}
@media(forced-colors:active){.public-nav button,.public-nav button:is(:hover,:active){forced-color-adjust:none;background:ButtonFace!important;color:ButtonText!important;border:1px solid ButtonText!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.public-nav button[aria-current=page],.public-nav button[aria-current=page]:is(:hover,:active){background:Highlight!important;color:HighlightText!important;border-color:HighlightText!important}.public-nav button:focus-visible{outline-color:Highlight}}
.public-content{width:100%!important;max-width:1064px!important;margin:0 auto!important;padding:54px 28px 80px!important;box-sizing:border-box;flex:1}
.public-content .page-head{margin:0 0 42px!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
.public-content h1,.login-main>h1{font-size:clamp(26px,3.4vw,38px)!important;font-weight:650!important;letter-spacing:-1.3px!important;line-height:1.25!important;color:#1d1d1f!important}
.public-content .page-head p{margin-top:14px;color:#6e6e73}
.public-content .card{border:1px solid #e8e8ed!important;border-radius:20px!important;box-shadow:none!important;background:#fff!important;backdrop-filter:none!important;padding:26px!important}
.public-content h2{font-size:22px!important;letter-spacing:-.6px}
.public-content input,.public-content select{background:#fff!important;border:1px solid #86868b!important;border-radius:12px!important;color:#1d1d1f!important;min-height:52px}
.public-content button{border-radius:20px;box-shadow:none!important}
.public-content .security-row{border-radius:0!important;border-width:0 0 1px!important;background:#fff!important;box-shadow:none!important}
.public-content .security-summary{padding-block:22px!important}
.public-content .security-expanded{background:#fafafa!important;border-top:1px solid #eee;padding:20px!important}
.public-content .security-evidence{font-size:12px}
.public-content .public-property-metric{background:#f5f5f7;border:0;border-radius:14px}
.public-footer{display:flex!important;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;max-width:1064px;width:100%;margin:0 auto!important;padding:20px 28px!important;border-top:1px solid #e8e8ed;box-sizing:border-box;font-size:12px;color:#6e6e73;background:#fff!important}
.public-footer .actions{gap:16px}.public-footer button{font-size:12px;padding:4px;min-height:30px;background:none;border:0;box-shadow:none;color:#6e6e73}
.login-main{width:100%;max-width:1120px;box-sizing:border-box;margin:0 auto;padding:28px 28px 70px;flex:1}
.login-main>h1{margin:0 0 76px}
.login-panel{width:min(100%,480px)!important;max-width:480px!important;margin:0 auto!important;padding:0!important;min-height:0!important;text-align:center}
.login-panel h2{font-size:25px;letter-spacing:-.7px;margin:0 0 18px;font-weight:600}
.login-description{line-height:1.7;font-size:14px;margin-bottom:30px;color:#6e6e73}
.login-panel .form{margin-top:26px;gap:18px;text-align:left}
.login-panel .field:has(input[type=password]){position:relative;gap:0}
.login-panel .field:has(input[type=password]) .field-label{position:absolute;left:17px;top:9px;z-index:1;font-size:11px;color:#6e6e73;max-width:calc(100% - 34px);line-height:1.25}
.login-panel .field:has(input[type=password]) .help-wrap{display:none}
.login-panel input[type=password]{width:100%;height:62px;padding:18px 17px!important;border:1px solid #86868b!important;background:#fff!important;border-radius:12px!important;font-size:18px;box-shadow:none!important}
.login-panel input:focus{outline:2px solid #0071e3!important;outline-offset:0;border-color:#0071e3!important}
.login-panel .signin-button,.login-panel button.primary{display:block;width:100%;box-sizing:border-box;border-radius:12px!important;min-height:52px;padding:16px!important;background:#0071e3!important;border:0!important;color:white!important;box-shadow:none!important;text-align:center}
.login-panel .signin-button{margin:38px 0 24px;text-decoration:none;font-size:16px}
.login-panel .note{font-size:12px;line-height:1.7;text-align:left;border:0;background:#f5f5f7;border-radius:12px;margin-top:20px}
.login-panel .small{font-size:12px;line-height:1.8}.login-panel .account-signout{margin:0 auto;color:#0071e3;background:none;border:0;font-size:12px}
.login-panel .check{margin:14px 0}.login-policy{max-width:700px;padding:18px 28px;margin:0 auto 18px;text-align:center;font-size:12px;line-height:1.8;color:#6e6e73}.login-policy summary{cursor:pointer}
.required-marker{color:#b4232d!important;font-weight:700;white-space:pre}
.performance-positive{color:#b4232d!important;font-weight:650}.performance-negative{color:#1664af!important;font-weight:650}.performance-neutral{color:#62666c!important}
.market-history{display:grid;gap:14px;margin-top:18px;min-width:0}.chart-intervals{display:flex;flex-wrap:wrap;gap:6px}.chart-intervals button{font-size:12px;min-height:36px;padding:8px 14px;border-radius:18px!important;border:1px solid #d2d2d7;background:#fff;color:#424245}.chart-intervals button[aria-pressed=true]{background:#1d1d1f!important;color:#fff!important;border-color:#1d1d1f}
.market-history-chart{display:block;width:100%;height:auto;min-width:0}.market-chart-body{min-width:0}.market-chart-readout{display:block;font-size:12px;line-height:1.8;padding:10px;background:#f5f5f7;border-radius:10px;font-variant-numeric:tabular-nums}.market-chart-body input[type=range]{width:100%;accent-color:#0071e3;min-height:36px;border:0!important}.market-chart-axis{display:flex;justify-content:space-between;gap:12px}.market-chart-axis p{font-size:11px}.chart-data-table summary{font-size:12px;padding:10px 0;cursor:pointer}.chart-data-table .table-scroll{max-height:260px;overflow:auto}.property-history-wrap{grid-column:1/-1;min-width:0}
.kream-lookup .fields{grid-template-columns:1fr}.kream-lookup .form-footer{position:static}.kream-lookup .kream-main-controls{margin:14px 0}.kream-lookup .kream-main-controls>button{min-height:44px}.kream-lookup .optional-fields{margin:14px 0}.kream-lookup .kream-history-area{min-width:0}.kream-lookup .kream-top-note{font-size:12px;line-height:1.6;color:#6e6e73}.kream-ownership .fields>.field:has([name=name]){grid-column:1/-1}
.kream-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.kream-dialog-header h2{margin:0}.kream-dialog-header button{flex-shrink:0}.kream-lookup .form{gap:14px}.kream-lookup .optional-fields{margin:0}.login-panel .field:has(input[type=password]) .field-label{margin:0!important;top:50%!important;transform:translateY(-50%)!important;pointer-events:none}
/* Keep the associated label available to assistive technology while hiding the visual hint. */
.login-panel .field:has(input[type=password]:focus) .field-label,
.login-panel .field:has(input[type=password]:not(:placeholder-shown)) .field-label{opacity:0}
@media(max-width:640px){.public-header{padding:8px 20px!important;gap:6px!important;flex-wrap:wrap}.public-nav{width:100%;gap:6px!important}.public-nav button{flex:1 1 auto;min-width:0;padding:0 8px!important;font-size:12px!important;letter-spacing:-.015em!important}.public-content{padding:30px 20px 45px!important}.public-content .card{padding:18px!important;border-radius:16px!important}.public-content .page-head{margin-bottom:26px!important}.login-main{padding:34px 24px 60px}.login-main>h1{margin-bottom:60px;font-size:29px!important}.login-panel h2{font-size:22px}.public-content .security-expanded{padding:12px!important}.public-footer{padding:18px 24px!important}.market-chart-readout{font-size:11px}.chart-intervals button{padding-inline:12px}}
@media(forced-colors:active){.required-marker,.performance-positive,.performance-negative{color:CanvasText!important}.chart-intervals button[aria-pressed=true]{border:2px solid Highlight}}
/* 3.33 holdings backtest: a compact form grid; results reuse the shared table and price chart. */
.backtest{display:grid;gap:16px;min-width:0}.backtest-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 16px}.backtest-field{display:grid;gap:6px;min-width:0}.backtest-field input,.backtest-field select{width:100%;min-height:44px;box-sizing:border-box}.backtest-weights,.backtest-result,.backtest-output{display:grid;gap:12px;min-width:0}
/* 3.34 내 펀드: each fund section stacks its setup, targets, track record and backtest. */
.fund-body{display:grid;gap:14px;min-width:0}.fund-body h3{margin:10px 0 0;font-size:16px}.fund-history>summary,.fund-backtest>summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
/* 3.40 brand: the wordmark keeps its aspect ratio wherever the old square icon sat. */
.brand img.brand-logo{width:auto;height:40px;max-width:none}.public-header .brand img.brand-logo{width:auto;height:34px}.topbar .brand img.brand-logo{width:auto;height:32px}
/* 3.37 한눈에 보기: tighter padding and gaps; both summary cards share the row width evenly. */
.content>.home-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.content .home-balance.card{padding:22px 26px}
.home-balance-head{min-height:52px}
.home-balance .value{margin-top:8px}
.home-balance>.actions{margin-top:16px}
.content .home-summary-list{padding:4px 24px}
.home-summary-list>.metric{padding:12px 0}
@media(max-width:900px){.content>.home-summary{grid-template-columns:minmax(0,1fr);gap:12px}.content .home-balance.card{padding:20px 22px}.home-balance-head{min-height:48px}.content .home-summary-list{padding:2px 20px}.home-summary-list>.metric{padding:11px 0}}
@media(max-width:380px){.content .home-balance.card{padding:18px}.content .home-summary-list{padding-inline:16px}}
