:root{--ink:#14283c;--muted:#76879a;--line:#e6edf2;--bg:#f4f7fa;--white:#fff;--blue:#2479e8;--blue-soft:#eaf3ff;--green:#14a980;--green-soft:#e9f8f3;--amber:#d88b12;--shadow:0 8px 24px rgba(24,55,82,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}.app-shell{width:min(100%,560px);margin:0 auto;padding:10px 16px 98px}.topbar{display:flex;align-items:center;gap:11px;padding:10px 1px 16px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#173d68,#267ae5);color:#fff;font-size:20px;box-shadow:0 5px 14px #2174dd38}.brand-copy{flex:1}.brand-copy h1{font:800 20px Manrope,sans-serif;margin:0;letter-spacing:-.5px}.brand-copy p{margin:2px 0 0;color:var(--muted);font-size:12px}.person-button,.period-button,.filter-button{border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:13px;min-height:44px;display:flex;align-items:center;gap:8px;padding:0 11px;font:600 13px 'DM Sans',sans-serif;box-shadow:0 2px 4px #132c4010}.person-button{padding:0 9px 0 6px}.avatar{width:29px;height:29px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:700}.chevron{color:#8a9bad;font-size:17px;margin-left:2px}.control-row{display:flex;gap:8px;margin:0 0 12px}.period-button{flex:1;justify-content:flex-start}.period-button span:first-child{font-size:16px;color:var(--blue)}.filter-button{padding-inline:12px}.filter-button span:first-child{font-size:17px}.filter-count{background:var(--blue);color:white;border-radius:20px;min-width:18px;height:18px;display:grid;place-items:center;font-size:11px}.hidden{display:none!important}.summary-card{position:relative;background:linear-gradient(135deg,#173d68 0%,#1e5d99 100%);color:white;border-radius:22px;padding:19px 18px 16px;box-shadow:0 14px 28px #194b7a22;margin-bottom:14px;overflow:hidden}.summary-card:after{content:"";position:absolute;width:170px;height:170px;border:1px solid #ffffff14;border-radius:50%;right:-54px;top:-91px;box-shadow:0 0 0 22px #ffffff08,0 0 0 44px #ffffff06}.summary-top{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-weight:600;color:#d7e7f7;font-size:13px}.summary-icon{font-size:17px;color:#b7d6f5}.total-value{font:800 36px Manrope,sans-serif;letter-spacing:-1.2px;margin:2px 0 15px}.cost-breakdown{border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20;padding:10px 0;display:grid;gap:9px}.cost-breakdown>div{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;font-size:12px;color:#e4eff9}.cost-breakdown strong{font-size:13px;color:#fff}.cost-breakdown small{color:#b9d1e8;font-size:10px}.dot{width:8px;height:8px;border-radius:50%}.dot-blue{background:#72b5ff}.dot-green{background:#55dfb7}.summary-stats{display:grid;grid-template-columns:1fr 1fr;padding-top:13px}.summary-stats>div{display:grid;gap:1px}.summary-stats>div+div{border-left:1px solid #ffffff22;padding-left:15px}.summary-stats strong{font:700 17px Manrope,sans-serif}.summary-stats span{font-size:11px;color:#c8dced}.incomplete-note{font-size:11px;background:#ffffff16;padding:8px 10px;border-radius:10px;margin:12px 0 0;color:#fff2d9}.panel{background:var(--white);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:17px 15px;margin-bottom:22px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}.section-heading h2{font:700 17px Manrope,sans-serif;margin:0;letter-spacing:-.3px}.section-heading p{font-size:11px;color:var(--muted);margin:3px 0 0}.segmented{display:flex;background:#f0f4f7;padding:3px;border-radius:10px;gap:2px}.segment{border:0;background:transparent;color:#6d7e90;font:600 11px 'DM Sans',sans-serif;border-radius:8px;padding:8px 10px}.segment.active{background:#fff;color:var(--blue);box-shadow:0 1px 3px #182f4419}.chart-wrap{height:144px;display:grid;grid-template-columns:42px 1fr;gap:5px}.chart-ylabels{display:flex;flex-direction:column;justify-content:space-between;padding:2px 0 4px;color:#91a0ae;font-size:9px;text-align:right}.chart{position:relative;display:flex;align-items:flex-end;gap:3px;padding:4px 0 0;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 46px,#eff3f6 47px,#eff3f6 48px)}.bar{flex:1;min-width:3px;border-radius:4px 4px 1px 1px;background:linear-gradient(180deg,#55a8ff,#2878e8);position:relative;transition:height .25s}.bar.tomorrow{background:linear-gradient(180deg,#51d7b0,#10a881)}.bar:active{filter:brightness(.88)}.bar-tip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#13283b;color:#fff;font-size:9px;padding:4px 6px;border-radius:6px;white-space:nowrap;display:none;z-index:3}.bar:hover .bar-tip{display:block}.chart-xlabels{margin:5px 0 0 47px;display:flex;justify-content:space-between;color:#91a0ae;font-size:9px}.chart-caption{text-align:center;font-size:10px;color:var(--muted);margin:11px 0 0}.sessions-section{margin-top:2px}.session-heading{margin:0 2px 11px}.text-button{border:0;background:transparent;color:var(--blue);font:600 11px 'DM Sans',sans-serif;padding:7px 0}.session-list{display:grid;gap:9px}.session-card{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}.session-main{width:100%;display:grid;grid-template-columns:39px 1fr auto;gap:10px;align-items:center;text-align:left;border:0;background:transparent;padding:13px 13px;color:var(--ink);font:inherit}.session-icon{height:38px;width:38px;border-radius:12px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-size:16px}.session-card.incomplete .session-icon{background:#fff5df;color:var(--amber)}.session-info{min-width:0}.session-title{display:flex;align-items:center;gap:7px;font-weight:700;font-size:13px}.session-sub{color:var(--muted);font-size:10px;margin-top:4px}.session-total{font:700 15px Manrope,sans-serif;white-space:nowrap;text-align:right}.session-breakdown{display:flex;gap:6px;align-items:center;justify-content:flex-end;color:#8190a0;font-size:9px;margin-top:4px}.status-pill{font-size:9px;font-weight:600;border-radius:20px;padding:4px 7px;background:var(--green-soft);color:#108968;white-space:nowrap}.incomplete .status-pill{background:#fff4dc;color:#a86600}.expand-mark{color:#9aabba;font-size:14px;margin-left:3px}.hour-details{border-top:1px solid var(--line);padding:0 13px 7px 62px}.hour-row{display:grid;grid-template-columns:44px 1fr auto;gap:7px;align-items:center;padding:9px 0;border-bottom:1px solid #f0f3f6;font-size:10px}.hour-row:last-child{border:0}.hour-time{font-weight:700;color:#50677d}.hour-description{color:#718195;line-height:1.5}.hour-total{font-weight:700;color:#284258;white-space:nowrap}.hour-contribution{color:var(--green);font-size:9px}.empty-state{text-align:center;background:#fff;border:1px dashed #d5e0e8;border-radius:18px;padding:28px 18px;color:var(--muted)}.empty-state>span{font-size:25px}.empty-state strong{display:block;color:var(--ink);margin-top:7px}.empty-state p{font-size:12px;margin-bottom:0}.bottom-nav{position:fixed;z-index:10;left:50%;transform:translateX(-50%);bottom:0;width:min(100%,560px);padding:8px 20px calc(8px + env(safe-area-inset-bottom));background:#ffffffed;backdrop-filter:blur(14px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}.nav-item{border:0;background:transparent;display:grid;justify-items:center;gap:2px;color:#8a99a9;font-family:inherit}.nav-item span{font-size:19px;line-height:21px}.nav-item small{font-size:9px;font-weight:600}.nav-item.active{color:var(--blue)}.demo-banner{display:none;position:fixed;z-index:20;top:0;left:50%;transform:translateX(-50%);width:min(100%,560px);background:#fff5da;color:#895900;text-align:center;font-size:11px;padding:6px}.demo-banner.visible{display:block}.sheet-dialog{border:0;border-radius:22px 22px 0 0;width:min(100%,560px);max-width:none;margin:auto auto 0;padding:12px 20px calc(20px + env(safe-area-inset-bottom));color:var(--ink);box-shadow:0 -15px 45px #112b421f}.sheet-dialog::backdrop{background:#12283e5e}.sheet-handle{width:38px;height:4px;border-radius:5px;background:#d9e1e8;margin:0 auto 18px}.sheet-dialog h2{font:700 17px Manrope,sans-serif;margin:0 0 15px}.choice-list{display:grid;gap:7px}.choice{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left;color:var(--ink);font:600 13px 'DM Sans',sans-serif}.choice.selected{border-color:#9fc8fb;background:var(--blue-soft);color:#1766c2}.sheet-close{width:100%;border:0;border-radius:13px;background:var(--blue);color:white;font:700 14px 'DM Sans',sans-serif;padding:14px;margin-top:15px}.field-label{display:grid;gap:7px;font-size:12px;font-weight:600;margin:13px 0}.field-label select,.custom-period input{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;color:var(--ink);font:500 13px 'DM Sans',sans-serif}.filter-help{font-size:11px;color:var(--muted);line-height:1.5}.custom-period{display:flex;gap:8px;margin-top:12px}.custom-period label{flex:1;display:grid;gap:6px;font-size:11px;color:var(--muted)}.desktop-note{display:none}
@media (min-width:700px){body{padding:26px 0}.app-shell{background:var(--bg);width:min(100%,1020px);padding:18px 28px 40px;display:grid;grid-template-columns:1.08fr .92fr;gap:0 18px}.topbar,.control-row{grid-column:1/-1}.topbar{padding-bottom:18px}.brand-copy h1{font-size:23px}.summary-card{grid-column:1;grid-row:3/span 1;margin-bottom:18px}.price-panel{grid-column:2;grid-row:3/span 1;margin-bottom:18px}.sessions-section{grid-column:1/-1}.bottom-nav{display:none}.demo-banner{position:fixed;top:auto;bottom:8px;border-radius:10px;width:auto;padding:7px 16px}.session-list{grid-template-columns:repeat(2,minmax(0,1fr))}.sheet-dialog{margin:auto;border-radius:22px}.chart-wrap{height:175px}}
.account-logout{margin-left:8px}
.account-logout button{border:1px solid #42516b;border-radius:12px;padding:9px 11px;background:#151d30;color:#c6d4e8;font:inherit;font-size:13px;cursor:pointer}
