/* Clarity Cashplan reference theme for Impakt UI 0.2. */
:root{--iu-sidebar:252px}
.brand,.kpi>strong{font-family:var(--iu-font-display)}
.login-shell{background:var(--iu-surface)}
.login-card{position:relative;background:var(--iu-surface)}
.login-card:before{content:"";position:absolute;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,var(--iu-accent),#8a75ef,var(--iu-success))}
.login-copy h1{max-width:390px;font-size:clamp(34px,4vw,50px);line-height:1.04;letter-spacing:-1.8px}.login-copy p{max-width:360px;color:var(--iu-text-muted);font-size:14px;line-height:1.65}
.login-card form label{gap:7px;color:var(--iu-text-muted);font-size:12px}.login-card form input{min-height:48px;background:var(--iu-surface-soft);font-size:14px}
.login-visual{background:radial-gradient(circle at 76% 18%,color-mix(in srgb,var(--iu-accent) 22%,transparent),transparent 34%),radial-gradient(circle at 16% 82%,color-mix(in srgb,var(--iu-success) 13%,transparent),transparent 34%),linear-gradient(145deg,var(--iu-accent-soft),var(--iu-canvas))}
.preview-card{border:1px solid color-mix(in srgb,var(--iu-border) 72%,transparent);background:color-mix(in srgb,var(--iu-surface) 82%,transparent);box-shadow:0 35px 90px color-mix(in srgb,var(--iu-accent) 18%,transparent)}
[data-theme=dark] .login-shell,[data-theme=dark] .login-card{background:var(--iu-canvas)}[data-theme=dark] .login-visual{background:radial-gradient(circle at 76% 18%,rgba(126,109,255,.25),transparent 34%),radial-gradient(circle at 16% 82%,rgba(38,188,137,.13),transparent 34%),#111426}
.app{grid-template-columns:var(--iu-sidebar) minmax(0,1fr);background:var(--iu-canvas)}
.sidebar{width:var(--iu-sidebar);padding:22px 14px 16px;border-right:1px solid var(--iu-border);background:color-mix(in srgb,var(--iu-surface) 94%,transparent);backdrop-filter:saturate(140%) blur(18px)}
.sidebar>.brand{min-height:48px;margin:0 7px 18px;padding:0 8px;gap:10px;font-size:20px;letter-spacing:-.6px}
.brand .logo{width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,var(--iu-accent),#8275f3);box-shadow:0 8px 18px color-mix(in srgb,var(--iu-accent) 24%,transparent);font:800 17px/34px var(--iu-font-display)}
.sidebar nav{gap:2px}.sidebar nav>p{margin:20px 12px 7px;color:var(--iu-text-muted);font-size:10px;font-weight:800;letter-spacing:.105em;text-transform:uppercase}
.sidebar nav button{min-height:42px;gap:11px;margin:1px 0;padding:0 11px;border-radius:11px;color:var(--iu-text-muted);font-size:13px;font-weight:600;transition:background var(--iu-duration) var(--iu-ease),color var(--iu-duration) var(--iu-ease),transform var(--iu-duration) var(--iu-ease)}
.sidebar nav button>span{width:22px;height:22px;display:grid;place-items:center}.sidebar nav button .iu-icon{width:19px;height:19px}
.sidebar nav button:hover{background:var(--iu-surface-soft);color:var(--iu-text);transform:translateX(2px)}
.sidebar nav button.active{background:var(--iu-accent-soft);color:var(--iu-accent-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--iu-accent) 8%,transparent)}
.sidebar-foot{padding-top:12px;border-top:1px solid var(--iu-border)}.sidebar-foot .utility{border-radius:10px;color:var(--iu-text-muted)}
.sidebar-foot .utility:hover{background:var(--iu-surface-soft);color:var(--iu-text)}
.health-mini{padding:13px;border:1px solid var(--iu-border);border-radius:13px;background:var(--iu-surface-soft)}
.health-mini .progress{height:5px;margin-top:10px;background:var(--iu-border)}.health-mini .progress i{background:linear-gradient(90deg,var(--iu-accent),var(--iu-success))}
.main{min-width:0}.topbar{height:76px;padding:0 clamp(18px,3vw,40px);border-bottom:1px solid color-mix(in srgb,var(--iu-border) 88%,transparent);background:color-mix(in srgb,var(--iu-canvas) 86%,transparent);backdrop-filter:saturate(150%) blur(18px)}
.entity-pill,.period,.currency,.icon-btn{border-color:var(--iu-border);background:var(--iu-surface);box-shadow:0 1px 2px rgba(20,24,40,.025);transition:border-color var(--iu-duration),background var(--iu-duration),transform var(--iu-duration),box-shadow var(--iu-duration)}
.entity-pill:hover,.period:hover,.currency:hover,.icon-btn:hover{border-color:var(--iu-border-strong);background:var(--iu-surface-raised);box-shadow:var(--iu-shadow-sm);transform:translateY(-1px)}
.entity-icon{background:var(--iu-accent-soft);color:var(--iu-accent-strong)}.avatar{background:linear-gradient(145deg,#23263a,#444961);box-shadow:0 0 0 3px var(--iu-surface),0 0 0 4px var(--iu-border)}
.content{width:min(1540px,100%);margin:0 auto;padding:clamp(24px,3vw,44px)}
.page-head{margin-bottom:26px}.page-head h1{margin-bottom:7px;font-size:clamp(25px,2.4vw,34px);font-weight:750;letter-spacing:-1.05px}.page-head p{font-size:13px;color:var(--iu-text-muted)}
.head-actions{gap:9px}.btn{min-height:42px;padding:0 14px;border-color:var(--iu-border);border-radius:10px;background:var(--iu-surface);color:var(--iu-text);font-size:12px;font-weight:700;box-shadow:0 1px 2px rgba(20,24,40,.025);transition:all var(--iu-duration) var(--iu-ease)}
.btn:hover{border-color:var(--iu-border-strong);background:var(--iu-surface-soft);transform:translateY(-1px);box-shadow:var(--iu-shadow-sm)}
.btn.primary{border-color:var(--iu-accent);background:linear-gradient(135deg,var(--iu-accent),var(--iu-accent-strong));color:#fff;box-shadow:0 7px 16px color-mix(in srgb,var(--iu-accent) 23%,transparent)}
.btn.primary:hover{filter:saturate(1.06) brightness(1.03);box-shadow:0 10px 22px color-mix(in srgb,var(--iu-accent) 28%,transparent)}
.card,.kpi{border:1px solid var(--iu-border);border-radius:var(--iu-radius-md);background:var(--iu-surface);box-shadow:var(--iu-shadow-sm)}
.card{overflow:hidden}.card-head{padding:21px 22px 17px}.card-head h2{font-size:15px;letter-spacing:-.2px}.card-head p{margin-top:5px;font-size:11px}
.kpi-grid{gap:14px;margin-bottom:18px}.kpi{position:relative;min-height:142px;padding:19px 20px;overflow:hidden;transition:transform var(--iu-duration) var(--iu-ease),box-shadow var(--iu-duration)}
.kpi:after{content:"";position:absolute;right:-26px;bottom:-42px;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--iu-accent) 10%,transparent),transparent 68%);pointer-events:none}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--iu-shadow-md)}.kpi-top>span{font-size:11px;font-weight:700;color:var(--iu-text-muted)}
.kpi-icon{width:34px;height:34px;border-radius:10px;background:var(--iu-accent-soft);color:var(--iu-accent-strong)}.kpi>strong{margin:18px 0 8px;font-size:clamp(21px,2vw,27px);letter-spacing:-.85px}.trend{font-size:11px}
.grid-main,.bottom-grid{gap:18px}.chart-wrap{min-height:320px}.chart-card-head{gap:18px}.tabs{padding:3px;border:1px solid var(--iu-border);border-radius:10px;background:var(--iu-surface-soft)}.tabs button{min-height:32px;border-radius:7px}.tabs button.active{background:var(--iu-surface);color:var(--iu-accent-strong);box-shadow:var(--iu-shadow-sm)}
.summary-row,.account-row,.upcoming-row{border-color:var(--iu-border)}.score-ring{background:conic-gradient(var(--iu-accent) calc(var(--score)*1%),var(--iu-border) 0)}
.modal-backdrop{background:rgba(11,13,24,.58);backdrop-filter:blur(6px)}.modal-panel{border:1px solid var(--iu-border);border-radius:20px;background:var(--iu-surface-raised);box-shadow:var(--iu-shadow-lg)}
input,select,textarea{border-color:var(--iu-border);border-radius:10px;background:var(--iu-surface-soft);color:var(--iu-text);transition:border-color var(--iu-duration),box-shadow var(--iu-duration),background var(--iu-duration)}
input:hover,select:hover,textarea:hover{border-color:var(--iu-border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--iu-focus);background:var(--iu-surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--iu-focus) 14%,transparent)}
.pill{border-radius:var(--iu-radius-pill)}
@media(max-width:1180px){:root{--iu-sidebar:228px}.content{padding:28px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.app{display:block}.sidebar{width:min(88vw,320px);padding:18px 14px}.topbar{height:66px;padding:0 14px}.content{padding:20px 14px calc(98px + env(safe-area-inset-bottom))}.page-head{align-items:flex-start;flex-direction:column;gap:14px}.page-head h1{font-size:26px}.head-actions{width:100%}.head-actions .btn{flex:1;justify-content:center}.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.kpi{min-height:132px;padding:16px}.kpi>strong{font-size:20px}.grid-main,.bottom-grid{grid-template-columns:1fr}.chart-card-head{align-items:stretch;flex-direction:column}.chart-controls{width:100%;align-items:stretch;flex-direction:column}.chart-controls select{width:100%;min-width:0}.chart-controls .tabs{width:100%}.chart-controls .tabs button{flex:1}.mobile-nav{border-top:1px solid var(--iu-border);background:color-mix(in srgb,var(--iu-surface) 92%,transparent);backdrop-filter:blur(18px)}.mobile-nav button.active{color:var(--iu-accent)}.mobile-nav .mobile-add{background:linear-gradient(135deg,var(--iu-accent),var(--iu-accent-strong));box-shadow:0 8px 20px color-mix(in srgb,var(--iu-accent) 30%,transparent)}.mobile-nav .mobile-add>span{width:28px;height:28px;display:grid;place-items:center;background:transparent;box-shadow:none}.mobile-nav .mobile-add .iu-icon{width:28px;height:28px}.login-card{width:100%;max-width:100vw;overflow-x:hidden}.login-card form,.login-card label,.login-card input,.login-card .btn{width:100%;max-width:100%;min-width:0}}
@media(max-width:480px){.top-actions .period{display:none}.page-head h1{font-size:24px}.card-head{padding:18px 16px 14px}.kpi{min-height:126px;padding:14px}.kpi>strong{font-size:18px}}
@media(max-width:340px){.kpi-grid{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.mobile-nav,.head-actions,.modal{display:none!important}.app{display:block}.content{width:100%;padding:0}.card,.kpi{break-inside:avoid;box-shadow:none}}
