.dashboard{min-height:100vh;padding:24px 32px 60px;position:relative;overflow:hidden}@media (max-width:640px){.dashboard{padding-bottom:90px}}.dashboard__greeting{font-family:var(--font-heading);color:var(--color-text);margin-bottom:8px;font-size:1.8rem}.dashboard__tour-link{font-family:var(--font-body);color:var(--color-accent-text);margin-bottom:16px;font-size:.85rem;font-weight:700;text-decoration:underline;display:inline-block}.dashboard__dday-strip{gap:10px;margin:16px 0;padding-bottom:4px;display:flex;overflow-x:auto}.dashboard__dday-card{background:var(--color-surface-alt);border:1.5px solid var(--color-border);text-align:center;min-width:90px;box-shadow:var(--shadow-card);border-radius:16px;flex-shrink:0;padding:10px 14px;position:relative}.dashboard__dday-number{font-family:var(--font-numeric);color:var(--color-accent-text);font-size:1.1rem;font-weight:800}.dashboard__dday-label{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:100px;margin-top:2px;font-size:.75rem;overflow:hidden}.dashboard__dday-remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-size:.9rem;position:absolute;top:2px;right:6px}.dashboard__dday-empty-btn,.dashboard__dday-add-btn{background:var(--color-surface-alt);border:2px solid var(--color-border-dashed);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;border-radius:16px;padding:10px 16px;font-size:.85rem;font-weight:700}.dashboard__dday-form{align-items:center;gap:6px;display:flex}.dashboard__dday-input{border:1.5px solid var(--color-border);background:var(--color-surface);font-family:var(--font-body);color:var(--color-text);border-radius:10px;padding:8px 10px;font-size:.85rem}.dashboard__dday-save,.dashboard__dday-cancel{cursor:pointer;border:none;border-radius:10px;padding:8px 12px;font-size:.85rem;font-weight:700}.dashboard__dday-save{background:var(--color-accent-strong);color:var(--color-on-accent-strong)}.dashboard__dday-cancel{color:var(--color-text-secondary);background:0 0}@media (max-width:900px){.dashboard__main{grid-template-columns:1fr}}.dashboard__companion-side{text-align:center;flex-direction:column;align-items:center;display:flex;position:sticky;top:24px}.dashboard__companion-wrap{width:100%;max-width:240px;margin:0 auto}.dashboard__companion-wrap img,.dashboard__companion-wrap svg{width:100%;height:auto;display:block}.dashboard__companion-side .keycap{margin-top:16px}.dashboard__companion-side .dashboard__section{text-align:left;width:100%;margin-top:20px}.dashboard__subject-picker{background:var(--color-surface-alt);border:1.5px solid var(--color-border);width:100%;max-width:340px;box-shadow:var(--shadow-card);border-radius:20px;margin-top:16px;padding:16px}.dashboard__subject-picker-title{color:var(--color-text);margin-bottom:10px;font-weight:700}.dashboard__subject-options{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:10px;display:flex}.dashboard__subject-chip{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-accent-text);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.82rem;font-weight:700}.dashboard__subject-custom-row{gap:6px;margin-bottom:10px;display:flex}.dashboard__subject-input{border:1.5px solid var(--color-border);background:var(--color-surface);font-family:var(--font-body);color:var(--color-text);border-radius:12px;flex:1;padding:8px 10px}.dashboard__subject-go{background:var(--color-accent-strong);color:var(--color-on-accent-strong);cursor:pointer;border:none;border-radius:12px;padding:8px 14px;font-weight:700}.dashboard__subject-skip{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-size:.82rem;text-decoration:underline}.dashboard__info-side{flex-direction:column;gap:20px;display:flex}.dashboard__quote{color:var(--color-text-secondary);font-size:.95rem;font-style:italic}.dashboard__section{background:var(--color-surface-alt);border:1.5px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:16px;padding:16px 18px}.dashboard__section-heading{font-family:var(--font-heading);color:var(--color-text);align-items:center;gap:8px;margin-bottom:10px;font-size:1.05rem;display:flex}.dashboard__mood-logged{color:var(--color-text);border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700}.dashboard__mood-options{flex-wrap:wrap;gap:8px;display:flex}.dashboard__mood-btn{border:2px solid var(--mood-color);background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:.85rem;font-weight:700;transition:background .15s,transform .15s}.dashboard__mood-btn:hover{transform:translateY(-2px)}.dashboard__mood-btn--selected{background:var(--mood-color)}.dashboard__next-slot{border-left:4px solid var(--color-accent-strong);background:var(--color-surface-alt);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.dashboard__next-time{color:var(--color-accent-text);font-weight:800}.dashboard__next-subject{color:var(--color-text);font-weight:600}.dashboard__plan-empty{color:var(--color-text-secondary);font-size:.9rem}.dashboard__plan-list{flex-direction:column;gap:8px;display:flex}.dashboard__plan-slot{color:var(--color-text);border-radius:10px;justify-content:space-between;padding:8px 12px;font-size:.9rem;font-weight:600;display:flex}.dashboard__todo-list{flex-direction:column;gap:8px;display:flex}.dashboard__todo-item{color:var(--color-text);align-items:center;gap:8px;font-size:.9rem;display:flex}.dashboard__todo-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dashboard__todo-text{flex:1}.dashboard__todo-due{color:var(--color-text-secondary);font-size:.78rem}.dashboard__stats-col{gap:12px;display:flex}.dashboard__stat-card{background:var(--color-surface-alt);border:1.5px solid var(--color-border);text-align:center;border-radius:14px;flex:1;padding:14px}.dashboard__stat-value{font-family:var(--font-numeric);color:var(--color-accent-text);font-size:1.4rem;font-weight:800}.dashboard__stat-label{color:var(--color-text-secondary);margin-top:2px;font-size:.78rem}.dashboard__goal-progress-pill{background:var(--color-accent);color:var(--color-accent-text);border-radius:999px;margin-left:auto;padding:3px 10px;font-size:.72rem;font-weight:700}.dashboard__goal-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.dashboard__goal-card{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;transition:opacity .15s;display:flex}.dashboard__goal-card--done{opacity:.55}.dashboard__goal-checkbox{border:2px solid var(--color-accent-strong);width:22px;height:22px;color:var(--color-accent-text);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:800;display:flex}.dashboard__goal-info{flex-direction:column;flex:1;min-width:0;display:flex}.dashboard__goal-subject{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;font-weight:700;overflow:hidden}.dashboard__goal-duration{color:var(--color-text-secondary);font-size:.78rem}.dashboard__goal-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.dashboard__goal-start{background:var(--color-accent-strong);color:var(--color-on-accent-strong);cursor:pointer;border:none;border-radius:999px;padding:6px 14px;font-size:.78rem;font-weight:700}.dashboard__goal-remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:1rem}.dashboard__goal-add-btn{background:var(--color-surface-alt);border:2px solid var(--color-border-dashed);width:100%;color:var(--color-text-secondary);cursor:pointer;border-radius:12px;padding:10px;font-size:.85rem;font-weight:700}.dashboard__goal-form{flex-direction:column;gap:10px;display:flex}.dashboard__goal-input{border:1.5px solid var(--color-border);background:var(--color-surface);font-family:var(--font-body);color:var(--color-text);border-radius:12px;outline:none;padding:10px 14px;font-size:.92rem}.dashboard__goal-input::placeholder{color:var(--color-text-faint)}.dashboard__goal-input:focus{border-color:var(--color-accent-strong)}.dashboard__goal-duration-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dashboard__goal-duration-chip{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-accent-text);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:700}.dashboard__goal-duration-chip--selected{background:var(--color-accent-strong);color:var(--color-on-accent-strong);border-color:var(--color-accent-strong)}.dashboard__goal-duration-input{border:1.5px solid var(--color-border);background:var(--color-surface);width:64px;font-family:var(--font-body);color:var(--color-text);border-radius:10px;padding:6px 8px;font-size:.85rem}.dashboard__goal-form-label{color:var(--color-text-secondary);margin:2px 0 -2px;font-size:.78rem;font-weight:700}.dashboard__goal-color-row{gap:8px;display:flex}.dashboard__goal-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:26px;height:26px}.dashboard__goal-color-swatch--active{border-color:var(--color-accent-strong);box-shadow:0 0 0 2px var(--color-accent)}.dashboard__goal-repeat-row{flex-wrap:wrap;gap:6px;display:flex}.dashboard__goal-repeat-chip{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-accent-text);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:700}.dashboard__goal-repeat-chip--selected{background:var(--color-accent-strong);color:var(--color-on-accent-strong);border-color:var(--color-accent-strong)}.dashboard__goal-days-row{flex-wrap:wrap;gap:6px;display:flex}.dashboard__goal-day-chip{border:1.5px solid var(--color-border);background:var(--color-surface);width:40px;color:var(--color-accent-text);cursor:pointer;text-align:center;border-radius:10px;padding:6px 0;font-size:.75rem;font-weight:700}.dashboard__goal-day-chip--selected{background:var(--color-accent-strong);color:var(--color-on-accent-strong);border-color:var(--color-accent-strong)}.dashboard__goal-date-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dashboard__goal-date-label{color:var(--color-text-secondary);flex-direction:column;gap:4px;font-size:.78rem;font-weight:700;display:flex}.dashboard__goal-date-input{border:1.5px solid var(--color-border);background:var(--color-surface);font-family:var(--font-body);color:var(--color-text);border-radius:10px;padding:7px 10px;font-size:.82rem}.dashboard__goal-end-toggle{color:var(--color-text-secondary);align-items:center;gap:6px;font-size:.82rem;font-weight:600;display:flex}.dashboard__goal-form-actions{gap:8px;display:flex}.dashboard__goal-save{background:var(--color-accent-strong);color:var(--color-on-accent-strong);cursor:pointer;border:none;border-radius:10px;padding:8px 16px;font-size:.85rem;font-weight:700}.dashboard__goal-cancel{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 16px;font-size:.85rem;font-weight:700}.dashboard__report-chart{justify-content:space-between;align-items:flex-end;gap:4px;height:100px;margin-bottom:12px;display:flex}.dashboard__report-bar-col{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.dashboard__report-bar{background:linear-gradient(180deg, var(--color-primary), var(--color-accent-strong));border-radius:6px 6px 2px 2px;width:60%;max-width:22px}.dashboard__report-bar-label{color:var(--color-text-secondary);font-size:.68rem;font-weight:700}.dashboard__report-subjects{border-top:1px solid var(--color-border);flex-direction:column;gap:6px;padding-top:10px;display:flex}.dashboard__report-subject-row{justify-content:space-between;font-size:.85rem;display:flex}.dashboard__report-subject-name{color:var(--color-text);font-weight:600}.dashboard__report-subject-time{color:var(--color-accent-text);font-weight:700}.dashboard{max-width:1080px;margin:0 auto;padding:48px 24px 64px}.dashboard__greeting{text-align:left;margin:0}.dashboard__status{color:var(--color-text-secondary);flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:8px 0 32px;font-size:14px;line-height:20px;display:flex}.dashboard__status .streak-banner{display:contents}.dashboard__status .streak-banner__pill{font:inherit;color:inherit;background:0 0;border:none;margin:0;padding:0}.dashboard__status .dashboard__dday-strip{flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;display:flex}.dashboard__status .dashboard__dday-empty-btn{font:inherit;color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--color-link-underline,currentColor);text-decoration-color:var(--color-link-underline,currentColor);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:0}.dashboard__status .dashboard__dday-card{background:0 0;border:none;align-items:baseline;gap:4px;padding:0;display:inline-flex}.dashboard__status .dashboard__dday-number{color:var(--color-text);font-size:14px;font-weight:500}.dashboard__status .dashboard__dday-label{color:var(--color-text-secondary);font-size:14px}.dashboard__status .dashboard__tour-link{color:var(--color-text-secondary);text-decoration:underline;-webkit-text-decoration-color:var(--color-link-underline,currentColor);text-decoration-color:var(--color-link-underline,currentColor);text-underline-offset:3px;font-size:14px;font-weight:400}.dashboard__main{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:24px;display:grid}.dashboard__companion-side{background:var(--color-tile);border-radius:12px;flex-direction:column;grid-column:1/span 4;align-items:center;gap:16px;padding:24px;display:flex;position:sticky;top:88px}.dashboard__companion-wrap img,.dashboard__companion-wrap .companion-float{width:100%;height:auto}.dashboard__companion-side .dashboard__quote{color:var(--color-text-secondary);text-align:center;margin:0;font-size:14px;font-style:italic;line-height:20px}.dashboard__info-side{flex-direction:column;grid-column:5/span 8;display:flex}.dashboard__info-side>.dashboard__section:first-child{border-top:none;padding-top:0}.dashboard__pair{border-top:1px solid var(--color-line-faint);grid-template-columns:1fr 1fr;gap:24px;padding-block:20px;display:grid}.dashboard__pair>.dashboard__section{border-top:none;padding:0}.dashboard__pair .bread-basket,.dashboard__pair>.dashboard__section+*{background:var(--color-tile);border-radius:12px;padding:16px}.dashboard__report-chart{height:80px}@media (max-width:900px){.dashboard{padding:24px 16px 48px}.dashboard__companion-side,.dashboard__info-side{grid-column:1/-1;position:static}.dashboard__companion-wrap{width:160px}.dashboard__pair{grid-template-columns:1fr}}.dashboard{max-width:calc(var(--page-max) + 2 * var(--page-gutter));margin-inline:auto}.dashboard__main{grid-template-columns:var(--cat-size) minmax(0, 720px);justify-content:start;column-gap:40px}.dashboard__companion-side{background:0 0;border-radius:0;grid-column:1;align-items:flex-start;padding:0}.dashboard__companion-wrap{width:var(--cat-size);max-width:100%}.dashboard__companion-side .dashboard__quote{text-align:left}.dashboard__info-side{grid-column:2}@media (max-width:900px){.dashboard__main{grid-template-columns:minmax(0,1fr)}.dashboard__companion-side,.dashboard__info-side{grid-column:1}.dashboard__companion-side{align-items:center}.dashboard__companion-wrap{width:200px}.dashboard__companion-side .dashboard__quote{text-align:center}}@media (min-width:901px){.dashboard__main{grid-template-columns:var(--cat-col) minmax(0, 720px);column-gap:32px}.dashboard__companion-wrap{width:var(--cat-size);max-width:none;margin-inline:var(--cat-overhang)}.dashboard__companion-side .keycap{align-self:stretch}.dashboard__main{grid-template-columns:var(--cat-col) minmax(0, 1fr)}.dashboard__companion-side .keycap{max-width:var(--cat-col);align-self:center}}.dashboard .dashboard__goal-add-btn{text-align:left;margin:8px 0 0;display:block}.dashboard .mood__picker{justify-content:flex-start;gap:4px}.dashboard .mood__option{padding:4px 8px}
