/*@3.DASC.1*/

/*@3.DASC.2*/
.dash { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.dash-body { flex: 1; display: flex; gap: 0; max-width: 1500px; width: 100%; margin: 0 auto; }
.dash-main { flex: 1; min-width: 0; padding: 1.75rem 2rem 5rem; }

/*@3.DASC.3*/
.dash-top {
  position: sticky; top: 0; z-index: 100;
  display: flex; align-items: center; gap: 1rem;
  padding: 0 1.5rem; height: calc(64px + var(--sa-t));
  padding-block-start: var(--sa-t);
  background: color-mix(in srgb, var(--bg-surface) 90%, transparent);
  backdrop-filter: blur(14px) saturate(150%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  border-bottom: 1px solid var(--border-color);
}
.dash-logo {
  display: flex; align-items: center; gap: 0.55rem;
  font-weight: 800; font-size: 0.95rem; color: var(--text-primary);
  text-decoration: none; flex-shrink: 0;
}
.dash-logo-mark { font-size: 1.25rem; }
.dash-logo-text { white-space: nowrap; }

/*@3.DASC.4*/
.dash-top-actions { display: flex; align-items: center; gap: 0.4rem; flex-shrink: 0; }

/*@3.DASC.5*/
.dash-side {
  width: 208px; flex-shrink: 0;
  padding: 1.5rem 0.75rem;
  border-inline-end: 1px solid var(--border-color);
  position: sticky; inset-block-start: calc(64px + var(--sa-t));
  height: calc(100vh - 64px - var(--sa-t));
  height: calc(100dvh - 64px - var(--sa-t)); overflow-y: auto;
  overscroll-behavior: contain;
}
.dash-side::-webkit-scrollbar { width: 5px; }
.dash-side::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 9999px; }
.dash-side-group { margin-bottom: 1.25rem; }
.dash-side-label {
  font-size: 0.66rem; font-weight: 800; letter-spacing: 0.06em;
  color: var(--text-muted); text-transform: uppercase;
  padding: 0 0.75rem; margin-bottom: 0.4rem;
}
.dash-side-item {
  display: flex; align-items: center; gap: 0.6rem;
  width: 100%; padding: 0.5rem 0.75rem; margin-bottom: 2px;
  border: none; background: none; cursor: pointer;
  border-radius: var(--radius-md);
  font-family: inherit; font-size: 0.84rem; font-weight: 700;
  color: var(--text-secondary); text-decoration: none;
  text-align: start;
}
.dash-side-item i { width: 16px; text-align: center; font-size: 0.8rem; flex-shrink: 0; }
.dash-side-item:hover { background: rgba(167,139,250,0.07); color: #a78bfa; }
.dash-side-item.active { background: rgba(167,139,250,0.1); color: #a78bfa; }
.dash-side-badge {
  margin-inline-start: auto; font-size: 0.66rem; font-weight: 800;
  background: rgba(244,63,94,0.15); color: #f43f5e;
  border-radius: var(--radius-pill); padding: 1px 6px;
}

/*@3.DASC.6*/
.dash-view { display: none; }
.dash-view.active { display: block; }

.dash-section-head {
  display: flex; align-items: center; gap: 0.75rem;
  margin: 0 0 1rem;
}
.dash-section-head h2 { font-size: 1.15rem; font-weight: 800; margin: 0; }
.dash-section-head .dash-section-actions { margin-inline-start: auto; display: flex; gap: 0.4rem; }

.widgets-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}

.widget {
  position: relative;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  padding: 1.15rem 1.25rem;
  min-height: 118px;
  display: flex; flex-direction: column;
  /*@3.DASC.72*/
  min-inline-size: 0;
}
.widget[hidden] { display: none; }

.widget-head {
  display: flex; align-items: center; gap: 0.45rem;
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.03em;
  color: var(--text-muted); margin-bottom: 0.6rem;
}
.widget-head .widget-icon { font-size: 0.9rem; }
.widget-link {
  margin-inline-start: auto; color: var(--text-muted);
  text-decoration: none; font-size: 0.7rem; font-weight: 700;
}
.widget-link:hover { color: var(--st-accent); }
.widget-body { flex: 1; display: flex; flex-direction: column; justify-content: center; }

.widget-metric { font-size: 1.9rem; font-weight: 900; line-height: 1.1; color: var(--text-primary); }
.widget-sub { font-size: 0.76rem; color: var(--text-secondary); margin-top: 0.2rem; }

.widget-bar { height: 6px; border-radius: var(--radius-pill); background: var(--bg-elevated); overflow: hidden; margin-top: 0.6rem; }
.widget-bar-fill { height: 100%; border-radius: var(--radius-pill); background: linear-gradient(90deg, #a78bfa, #7c3aed); width: 0; transition: width 0.6s var(--skin-ease, ease); }

/*@3.DASC.7*/
.widget-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.45rem; text-align: center; flex: 1; padding: 0.35rem 0;
}
.widget-empty-icon { font-size: 1.4rem; opacity: 0.55; }
.widget-empty-text { font-size: 0.76rem; color: var(--text-muted); line-height: 1.5; }
.widget-empty-cta {
  font-family: inherit; font-size: 0.74rem; font-weight: 800;
  color: #a78bfa; background: rgba(167,139,250,0.1);
  border: 1px dashed rgba(167,139,250,0.35); border-radius: var(--radius-pill);
  padding: 0.28rem 0.75rem; cursor: pointer; text-decoration: none;
}
.widget-empty-cta:hover { background: rgba(167,139,250,0.18); }

/*@3.DASC.8*/
.widget-ring { display: flex; align-items: center; gap: 0.9rem; }
.widget-ring svg { width: 68px; height: 68px; flex-shrink: 0; transform: rotate(-90deg); }
.widget-ring-bg { fill: none; stroke: var(--bg-elevated); stroke-width: 7; }
.widget-ring-fill { fill: none; stroke: url(#dashRingGrad); stroke-width: 7; stroke-linecap: round; transition: stroke-dashoffset 0.7s var(--skin-ease, ease); }

/*@3.DASC.9*/
.widget-list { display: flex; flex-direction: column; gap: 0.35rem; }
.widget-item {
  display: flex; align-items: center; gap: 0.5rem;
  font-size: 0.78rem; color: var(--text-secondary);
  padding: 0.3rem 0.45rem; border-radius: var(--radius-sm);
  text-decoration: none; background: var(--bg-elevated);
}
.widget-item:hover { color: var(--text-primary); }
/*@3.DASC.10*/
button.widget-item { inline-size: 100%; font: inherit; font-size: .78rem; border: 0; text-align: start; cursor: pointer; }
button.widget-metric { display: block; }
.widget-item-time { font-family: 'JetBrains Mono', monospace; font-size: 0.68rem; color: var(--text-muted); flex-shrink: 0; }
.widget-item-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.widget-item-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }

/*@3.DASC.74*/
.widget-item--act { padding: 0; background: transparent; gap: 0; align-items: stretch; }
.widget-item--act > .widget-item-go {
  display: flex; align-items: center; gap: 0.5rem; flex: 1; min-inline-size: 0;
  padding: 0.3rem 0.45rem; border-start-start-radius: var(--radius-sm);
  border-end-start-radius: var(--radius-sm);
  color: inherit; text-decoration: none; background: var(--bg-elevated);
}
.widget-item--act > .widget-item-go:hover { color: var(--text-primary); }
.widget-item-check {
  flex-shrink: 0; inline-size: 34px; min-block-size: 34px;
  display: flex; align-items: center; justify-content: center;
  border: 0; cursor: pointer; font-size: .72rem;
  color: var(--text-muted); background: var(--bg-elevated);
  border-start-end-radius: var(--radius-sm); border-end-end-radius: var(--radius-sm);
  border-inline-start: 1px solid color-mix(in srgb, var(--text-muted) 22%, transparent);
}
.widget-item--act.is-spill > .widget-item-go {
  border-inline-start: 2px solid color-mix(in srgb, var(--text-muted) 45%, transparent);
}
.widget-item-cont { flex-shrink: 0; font-size: .6rem; color: var(--text-muted); }
.widget-item-check:hover, .widget-item-check:focus-visible {
  color: var(--st-ok); background: color-mix(in srgb, var(--st-ok) 14%, var(--bg-elevated));
}

/*@3.DASC.11*/
.dash-due-metric { display: flex; align-items: center; gap: .75rem; margin-block-end: .7rem; }
.dash-due-count { display: flex; flex-direction: column; min-inline-size: 0; }
.dash-due-count b {
  font-size: 2.05rem; font-weight: 900; line-height: 1;
  color: var(--st-warn); font-variant-numeric: tabular-nums;
}
.dash-due-count small {
  font-size: .72rem; font-weight: 700; color: var(--text-muted);
  margin-block-start: .22rem; line-height: 1.3;
}

/*@3.DASC.12*/
.dash-due-stack { position: relative; inline-size: 32px; block-size: 40px; flex: 0 0 auto; }
.dash-due-stack i {
  position: absolute; inline-size: 24px; block-size: 32px;
  border-radius: 5px;
  background: var(--card-base); border: 1px solid var(--card-edge);
}
.dash-due-stack i:nth-child(1) { inset-block-start: 0;   inset-inline-start: 0;   opacity: .45; }
.dash-due-stack i:nth-child(2) { inset-block-start: 4px; inset-inline-start: 4px; opacity: .7; }
.dash-due-stack i:nth-child(3) {
  inset-block-start: 8px; inset-inline-start: 8px;
  border-color: color-mix(in srgb, var(--st-warn) 45%, var(--card-edge));
  box-shadow: 0 2px 8px rgba(0, 0, 0, .10);
  /*@3.DASC.13*/
  background:
    linear-gradient(var(--card-rule) 1px, transparent 1px) 0 9px / 100% 7px,
    /*@3.DASC.14*/
    color-mix(in srgb, var(--st-warn) 7%, var(--card-base));
}

.dash-due-row { gap: .4rem; }
.dash-due-row:hover { background: color-mix(in srgb, var(--st-warn) 9%, var(--bg-elevated)); }
.dash-due-code {
  font-family: 'JetBrains Mono', monospace; font-size: .62rem; font-weight: 800;
  direction: ltr; unicode-bidi: isolate;   /*@3.DASC.15*/
  color: var(--text-muted); border: 1px solid var(--border-color);
  border-radius: var(--radius-pill); padding: .05rem .32rem;
  flex: 0 0 auto; line-height: 1.5;
}
.dash-due-n {
  font-weight: 800; font-size: .78rem; color: var(--st-warn);
  font-variant-numeric: tabular-nums; flex: 0 0 auto;
}
.dash-due-more { margin-block-start: .3rem; text-align: center; }

.dash-due-cta {
  display: flex; align-items: center; justify-content: center; gap: .4rem;
  inline-size: 100%; margin-block-start: .6rem;
  font-family: inherit; font-size: .76rem; font-weight: 800;
  color: var(--st-warn);
  background: color-mix(in srgb, var(--st-warn) 11%, transparent);
  border: 1px solid color-mix(in srgb, var(--st-warn) 30%, transparent);
  border-radius: var(--radius-pill);
  padding: .38rem .8rem; cursor: pointer;
  transition: background .18s var(--skin-ease, ease);
}
.dash-due-cta:hover { background: color-mix(in srgb, var(--st-warn) 20%, transparent); }
.dash-due-cta i { font-size: .68rem; }

/*@3.DASC.16*/
.dash-xam {
  --xam: var(--st-warn);
  display: flex; align-items: center; gap: .85rem;
  margin-block-end: 1rem; padding: .7rem .95rem;
  border: 1px solid color-mix(in srgb, var(--xam) 32%, transparent);
  background: color-mix(in srgb, var(--xam) 9%, var(--bg-surface));
  border-radius: var(--radius-lg);
  text-decoration: none; color: inherit;
  transition: background .18s var(--skin-ease, ease), border-color .18s var(--skin-ease, ease);
}
.dash-xam[data-tone="danger"] { --xam: var(--st-danger); }
.dash-xam:hover {
  background: color-mix(in srgb, var(--xam) 16%, var(--bg-surface));
  border-color: color-mix(in srgb, var(--xam) 50%, transparent);
}

/*@3.DASC.17*/
.dash-xam-num {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-inline-size: 3.1rem; flex: 0 0 auto; line-height: 1;
}
.dash-xam-num > b {
  font-size: 1.75rem; font-weight: 900; color: var(--xam);
  font-variant-numeric: tabular-nums;
}
/*@3.DASC.18*/
.dash-xam-num > b:not(:has(+ span)) { font-size: 1.05rem; }
.dash-xam-num > span {
  font-size: .66rem; font-weight: 700; color: var(--text-muted);
  margin-block-start: .22rem;
}

.dash-xam-txt { display: flex; flex-direction: column; min-inline-size: 0; flex: 1; }
.dash-xam-t { font-size: .92rem; font-weight: 800; color: var(--text-primary); }
.dash-xam-s {
  font-size: .74rem; font-weight: 600; color: var(--text-muted);
  margin-block-start: .2rem;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dash-xam-go { font-size: .9rem; color: var(--xam); flex: 0 0 auto; }

@media (max-width: 480px) {
  .dash-xam { gap: .6rem; padding: .6rem .7rem; }
  .dash-xam-num { min-inline-size: 2.5rem; }
  .dash-xam-num > b { font-size: 1.45rem; }
  .dash-xam-s { white-space: normal; }
}

/*@3.DASC.19*/
.widget-notes-input {
  width: 100%; resize: none; min-height: 62px;
  border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: var(--bg-elevated); color: var(--text-primary);
  font-family: inherit; font-size: 0.78rem; line-height: 1.6; padding: 0.45rem 0.6rem;
}
.widget-notes-saved { font-size: 0.66rem; color: var(--text-muted); margin-top: 0.3rem; min-height: 1em; }

/*@3.DASC.20*/
.wn-list { display: flex; flex-direction: column; gap: 0.35rem; }
.wn-item {
  display: flex; align-items: center; gap: 0.4rem; width: 100%; text-align: start;
  padding: 0.45rem 0.55rem; border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: var(--bg-elevated); color: var(--text-primary); cursor: pointer;
  font-family: inherit; font-size: 0.76rem; transition: border-color 0.15s;
}
.wn-item:hover { border-color: color-mix(in srgb, var(--brand-500, #a78bfa) 55%, var(--border-color)); }
.wn-body { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wn-rem { flex-shrink: 0; font-size: 0.66rem; color: var(--st-accent, #a78bfa); font-weight: 700; }
.wn-foot { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
.wn-add, .wn-all {
  font-family: inherit; font-size: 0.74rem; font-weight: 700; cursor: pointer;
  padding: 0.35rem 0.7rem; border-radius: var(--radius-md); border: 1px solid var(--border-color);
  background: transparent; color: var(--text-secondary);
}
.wn-add:hover, .wn-all:hover { border-color: var(--brand-500, #a78bfa); color: var(--text-primary); }
.wn-all { margin-inline-start: auto; }

/*@3.DASC.21*/
.nl-body { display: flex; flex-direction: column; gap: 0.35rem; max-height: 55vh; overflow-y: auto; margin: 0.5rem 0; }
.nl-row { display: flex; align-items: center; gap: 0.4rem; }
.nl-row.is-arch { opacity: 0.6; }
.nl-text {
  flex: 1; min-width: 0; text-align: start; cursor: pointer;
  padding: 0.5rem 0.6rem; border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: var(--bg-elevated); color: var(--text-primary); font-family: inherit; font-size: 0.78rem;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.nl-acts { display: flex; gap: 0.2rem; flex-shrink: 0; }
.nl-acts button {
  width: 30px; height: 30px; border: 1px solid var(--border-color); border-radius: var(--radius-sm);
  background: transparent; cursor: pointer; color: var(--text-secondary); font-size: 0.85rem;
}
.nl-acts button:hover { background: var(--bg-elevated); color: var(--text-primary); }
.nl-sep { font-size: 0.72rem; font-weight: 800; color: var(--text-muted); margin: 0.6rem 0 0.2rem; }

/*@3.DASC.22*/
.widget[role="link"] { cursor: pointer; }
.widget[role="link"]:focus-visible { outline: 2px solid var(--st-accent, #a78bfa); outline-offset: 2px; }
.dash-customizing .widget[role="link"] { cursor: grab; }
.dash-customizing .widget { cursor: grab; border-style: dashed; position: relative; }
.dash-customizing .widget.dragging { opacity: 0.45; cursor: grabbing; }
.dash-customizing .widget.drop-target { border-color: #a78bfa; }
/*@3.DASC.23*/
.dash-customizing .widget::after {
  content: "58e";           /*@3.DASC.24*/
  font-family: "Font Awesome 6 Free";
  font-weight: 900; position: absolute; inset-block-start: 0.5rem; inset-inline-start: 0.5rem;
  font-size: 0.95rem; color: var(--text-muted); opacity: 0.75; pointer-events: none; z-index: 1;
}
.widget-cust {
  position: absolute; inset-block-start: 0.4rem; inset-inline-end: 0.4rem;
  display: none; gap: 0.2rem; z-index: 2;
}
.dash-customizing .widget-cust { display: flex; }
.widget-cust button {
  width: 24px; height: 24px; padding: 0; cursor: pointer;
  border: 1px solid var(--border-color); border-radius: var(--radius-sm);
  background: var(--bg-elevated); color: var(--text-secondary);
  font-size: 0.62rem; font-family: inherit; line-height: 1;
}
.widget-cust button:hover { color: #a78bfa; border-color: #a78bfa; }
.widget.is-hidden-widget { opacity: 0.4; }

/*@3.DASC.25*/
.widget-eye {
  position: absolute; inset-block-start: 0.55rem; inset-inline-end: 0.6rem;
  width: 26px; height: 26px; display: grid; place-items: center;
  padding: 0; cursor: pointer; z-index: 3;
  border: 1px solid transparent; border-radius: var(--radius-sm);
  background: transparent; color: var(--text-muted);
  font-size: 0.76rem; line-height: 1; opacity: 0.5;
  transition: opacity 0.2s, color 0.2s, background 0.2s, border-color 0.2s;
}
.widget-eye:hover, .widget-eye:focus-visible {
  opacity: 1; color: var(--text-primary);
  background: var(--bg-elevated); border-color: var(--border-color);
}
.dash-customizing .widget-eye { display: none; }

/*@3.DASC.26*/

/*@3.DASC.27*/
.dash-courses-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem; margin-bottom: 2rem;
}
/*@3.DASC.28*/
.dash-course-card {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; gap: 0.6rem;
  padding: 1.15rem 1.25rem; min-height: 118px;
  background: var(--bg-card); border: 1px solid var(--border-color);
  border-block-start: 2px solid color-mix(in srgb, var(--course-color, #a78bfa) 50%, var(--border-color));
  border-radius: var(--radius-xl); text-decoration: none; color: inherit;
  transition: border-block-start-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.dash-course-card > * { position: relative; }
.dash-course-card { cursor: pointer; }
/*@3.DASC.29*/
.dash-course-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px -18px color-mix(in srgb, var(--course-color, #a78bfa) 55%, transparent);
  border-block-start-color: color-mix(in srgb, var(--course-color, #a78bfa) 85%, var(--border-color));
}
/*@3.DASC.30*/
.dash-course-card a.dash-course-code,
.dash-course-card a.dash-course-code:hover { color: var(--course-color, var(--st-accent, #a78bfa)); }
.dash-course-card a.dash-course-name,
.dash-course-card a.dash-course-name:hover { color: var(--text-primary); }
.dash-course-card:hover .dash-course-icon {
  transform: scale(1.12);
  color: var(--course-color, #a78bfa);
  border-color: color-mix(in srgb, var(--course-color, #a78bfa) 45%, var(--border-color));
  background: color-mix(in srgb, var(--course-color, #a78bfa) 12%, transparent);
}
.dash-course-card:focus-visible { outline: 2px solid var(--course-color, #a78bfa); outline-offset: 2px; }
/*@3.DASC.31*/
.dash-course-card a { cursor: pointer; }
.dash-course-top { display: flex; align-items: center; gap: 0.45rem; min-width: 0; }
/*@3.DASC.32*/
.dash-course-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; flex-shrink: 0; border-radius: var(--radius-md);
  border: 1px solid var(--border-color); background: var(--bg-elevated);
  color: var(--text-secondary); font-size: 0.78rem;
  transition: transform 0.2s, color 0.2s, border-color 0.2s, background 0.2s;
}
.dash-course-style {
  margin-inline-start: auto; width: 32px; height: 32px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-color); border-radius: var(--radius-pill);
  background: var(--bg-elevated); color: var(--text-muted);
  cursor: pointer; font-family: inherit; font-size: 0.75rem; transition: color 0.2s, border-color 0.2s;
}
.dash-course-style:hover { color: var(--course-color, #a78bfa); border-color: var(--course-color, #a78bfa); }
/*@3.DASC.33*/
.dash-style-row { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-bottom: 1rem; }
.dash-style-color {
  width: 34px; height: 34px; border-radius: 50%; cursor: pointer;
  border: 2px solid transparent; box-shadow: 0 0 0 1px var(--border-color);
}
.dash-style-color.active { border-color: var(--bg-card); box-shadow: 0 0 0 2px var(--text-primary); }
.dash-style-icon {
  width: 38px; height: 38px; border-radius: var(--radius-md); cursor: pointer;
  border: 1px solid var(--border-color); background: var(--bg-elevated);
  color: var(--text-secondary); font-size: 0.85rem;
}
.dash-style-icon.active { border-color: var(--text-primary); color: var(--text-primary); }
/*@3.DASC.34*/
.dash-cust-bar {
  display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap;
  padding: 0.7rem 0.9rem; margin-bottom: 0.9rem;
  background: var(--bg-card); border: 1px dashed var(--border-hover); border-radius: var(--radius-md);
  font-size: 0.8rem; color: var(--text-secondary);
}
/*@3.DASC.35*/
.dash-cust-bar[hidden] { display: none !important; }
.dash-cust-toggle { display: inline-flex; align-items: center; gap: 0.4rem; cursor: pointer; font-weight: 700; color: var(--text-primary); margin-inline-start: auto; }
.dash-cust-toggle input { width: 16px; height: 16px; cursor: pointer; accent-color: var(--brand-500, #a78bfa); }

.dash-course-code { font-family: 'JetBrains Mono', monospace; font-size: 0.72rem; font-weight: 700; color: var(--course-color, #a78bfa); text-decoration: none; }
.dash-course-custom { font-family: inherit; padding: 0.05rem 0.4rem; border-radius: 9999px; background: color-mix(in srgb, var(--course-color, #64748b) 16%, transparent); color: var(--course-color, #64748b); }
/*@3.DASC.36*/
.dash-course-info {
  margin-inline-start: auto; display: inline-flex; align-items: center; min-height: 32px;
  padding: 0.2rem 0.6rem; border-radius: var(--radius-pill, 9999px);
  font-size: 0.7rem; font-weight: 700; white-space: nowrap; text-decoration: none;
  color: var(--text-muted);
  background: transparent;
  border: 1px solid var(--border-color);
  transition: color 0.2s, border-color 0.2s, background-color 0.2s;
}
/*@3.DASC.37*/
.dash-course-card:hover .dash-course-info,
.dash-course-info:hover {
  color: var(--course-color, var(--st-accent, #a78bfa));
  border-color: color-mix(in srgb, var(--course-color, #a78bfa) 45%, var(--border-color));
  background: color-mix(in srgb, var(--course-color, #a78bfa) 10%, transparent);
}
/*@3.DASC.38*/
.dash-course-body { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 0.25rem; min-width: 0; }
/*@3.DASC.39*/
.dash-course-name {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
  overflow: hidden;
  font-size: 0.98rem; font-weight: 800; line-height: 1.4;
  color: var(--text-primary); text-decoration: none;
}
.dash-course-card:hover .dash-course-name { color: var(--text-primary); }

/*@3.DASC.40*/
.dash-course-desc {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
  overflow: hidden;
  min-height: 2.5rem;
  font-size: 0.78rem; line-height: 1.6; color: var(--text-muted);
}
/*@3.DASC.41*/
.dash-course-meta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 0.2rem 0.5rem;
  font-size: 0.74rem; color: var(--text-muted); min-height: 1.15rem;
}
.dash-course-st { display: inline-flex; align-items: center; gap: 0.28rem; font-weight: 700; }
.dash-course-st i { font-size: 0.7rem; }
.dash-course-st.is-done { color: var(--st-ok); }

/*@3.DASC.42*/
.dash-course-prog { display: flex; align-items: center; gap: 0.55rem; }
.dash-course-bar { flex: 1; height: 6px; border-radius: var(--radius-pill); background: var(--bg-elevated); overflow: hidden; }
.dash-course-fill { display: block; height: 100%; background: var(--course-color, #a78bfa); border-radius: var(--radius-pill); transition: width 0.6s var(--skin-ease, ease); }
.dash-course-pct {
  font-family: 'JetBrains Mono', monospace; font-size: 0.72rem; font-weight: 700;
  color: var(--text-secondary); font-variant-numeric: tabular-nums; flex-shrink: 0;
}
.dash-course-due { color: var(--st-warn); font-weight: 800; }

/*@3.DASC.43*/
.dash-levels-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0.85rem; margin-bottom: 1.5rem; }
.dash-level-card {
  display: flex; align-items: center; gap: 0.7rem;
  padding: 0.9rem 1rem; background: var(--bg-card);
  border: 1px solid var(--border-color); border-radius: var(--radius-lg);
  text-decoration: none; color: inherit;
}
/*@3.DASC.44*/
.dash-level-card { transition: border-color 0.2s, transform 0.2s; }
.dash-level-card:hover {
  border-color: color-mix(in srgb, var(--level-color, #a78bfa) 55%, var(--border-color));
  transform: translateY(-2px);
}
.dash-level-card:hover .dash-level-num { transform: scale(1.08); }
.dash-level-num { transition: transform 0.2s; }
.dash-level-card.is-collection { border-style: dashed; }
.dash-level-num {
  width: 34px; height: 34px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius-md);
  background: var(--level-color, #a78bfa); color: #fff;
  font-family: 'JetBrains Mono', monospace; font-weight: 800; font-size: 0.85rem;
}
.dash-level-info { min-width: 0; display: flex; flex-direction: column; }
.dash-level-title { font-size: 0.84rem; font-weight: 800; display: block; }
.dash-level-meta { font-size: 0.68rem; color: var(--text-muted); display: block; }

/*@3.DASC.45*/
.dash-fab {
  position: fixed; inset-block-end: calc(1.5rem + var(--sa-b)); inset-inline-end: 1.5rem;
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  padding: 0; cursor: pointer; z-index: 90;
  background: var(--bg-elevated);
  border: 1px solid rgba(167,139,250,0.45);
  color: #a78bfa;
  font-family: inherit; font-size: 1.5rem; font-weight: 400; line-height: 1;
  box-shadow: 0 10px 26px -10px var(--shadow-base);
  transition: background-color .18s, border-color .18s;
}
.dash-fab:hover { background: rgba(167,139,250,0.1); border-color: #a78bfa; }
.dash-fab-menu {
  position: fixed; inset-block-end: calc(5.25rem + var(--sa-b)); inset-inline-end: 1.5rem;
  z-index: 91; display: none; flex-direction: column; gap: 2px;
  min-width: 190px; padding: 0.4rem;
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  border-radius: var(--radius-lg); box-shadow: 0 12px 32px -8px var(--shadow-base);
}
.dash-fab-menu.open { display: flex; }
.dash-fab-menu button {
  display: flex; align-items: center; gap: 0.55rem;
  padding: 0.5rem 0.6rem; border: none; background: none; cursor: pointer;
  border-radius: var(--radius-md); text-align: start;
  font-family: inherit; font-size: 0.8rem; font-weight: 700; color: var(--text-secondary);
}
.dash-fab-menu button:hover { background: var(--bg-card); color: var(--text-primary); }

/*@3.DASC.46*/
.dash-settings {
  --set-top: calc(64px + var(--sa-t));
  max-width: 1180px;
  margin-inline: auto;
  display: block;
}

/*@3.DASC.47*/
/*@3.DASC.69*/
.dash-set-top {
  display: flex; align-items: stretch; gap: .6rem;
  margin-bottom: .9rem; flex-wrap: wrap;
}
.dash-set-top > .dash-full-set { flex: 1 1 18rem; margin-bottom: 0; }

.dash-wiz-btn {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  padding: .8rem 1.15rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--st-accent);
  background: color-mix(in oklab, var(--st-accent) 15%, transparent);
  color: var(--st-accent);
  font-family: inherit; font-size: .84rem; font-weight: 800;
  cursor: pointer; white-space: nowrap;
  transition: background-color .2s, transform .2s;
}
.dash-wiz-btn:hover {
  background: color-mix(in oklab, var(--st-accent) 24%, transparent);
  transform: translateY(-1px);
}
.dash-wiz-btn:focus-visible { outline: 2px solid var(--st-accent); outline-offset: 2px; }

@media (max-width: 640px) {
  .dash-set-top { flex-direction: column; }
  /*@3.DASC.70*/
  .dash-set-top > .dash-full-set { flex: 0 0 auto; }
  .dash-wiz-btn { inline-size: 100%; }
}

.dash-full-set {
  display: flex; align-items: center; gap: .7rem;
  padding: .8rem .9rem; margin-bottom: .9rem;
  border: 1px dashed var(--border-color);
  border-radius: var(--radius-lg);
  text-decoration: none;
  transition: border-color .2s, background-color .2s, transform .2s;
}
html[data-tour-seen="1"] #dash-tour-promo,
#dash-tour-promo[hidden] { display: none; }
.dash-full-set:hover {
  border-color: var(--st-accent, #a78bfa);
  background: color-mix(in srgb, var(--st-accent, #a78bfa) 7%, transparent);
  transform: translateY(-1px);
}
.dash-full-set-ic {
  flex: none; width: 34px; height: 34px;
  display: grid; place-items: center;
  border-radius: var(--radius-md);
  background: var(--bg-elevated);
  color: var(--text-muted);
  font-size: .88rem;
  transition: color .2s;
}
.dash-full-set:hover .dash-full-set-ic { color: var(--st-accent, #a78bfa); }
.dash-full-set-t { flex: 1 1 auto; min-width: 0; display: grid; gap: .1rem; }
.dash-full-set-n { font-size: .88rem; font-weight: 800; color: var(--text-primary); }
.dash-full-set-d { font-size: .72rem; color: var(--text-muted); line-height: 1.5; }
.dash-full-set-go { flex: none; color: var(--text-muted); font-size: .8rem; transition: transform .2s, color .2s; }
.dash-full-set:hover .dash-full-set-go { color: var(--st-accent, #a78bfa); transform: translateX(-3px); }
[dir="ltr"] .dash-full-set:hover .dash-full-set-go { transform: translateX(3px); }
.dash-field { margin-bottom: 1.1rem; }
.dash-field label { display: block; font-size: 0.78rem; font-weight: 700; color: var(--text-secondary); margin-bottom: 0.35rem; }
.dash-input, .dash-select {
  width: 100%; height: 38px; padding: 0 0.7rem;
  border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: var(--bg-elevated); color: var(--text-primary);
  font-family: inherit; font-size: 0.84rem;
}
.dash-btn {
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.5rem 1rem; cursor: pointer;
  border-radius: var(--radius-md); font-family: inherit;
  font-size: 0.8rem; font-weight: 800;
  border: 1px solid var(--border-color); background: var(--bg-elevated); color: var(--text-secondary);
}
.dash-btn:hover { color: var(--text-primary); border-color: color-mix(in srgb, var(--brand-500, #a78bfa) 55%, var(--border-color)); }
.dash-btn-primary { background: #a78bfa; border-color: #a78bfa; color: #fff; }
.dash-btn-primary:hover { background: #9167f5; color: #fff; }
.dash-hint { font-size: 0.72rem; color: var(--text-muted); line-height: 1.6; margin-top: 0.3rem; }

/*@3.DASC.48*/
.tk-filters {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem;
  margin-bottom: 1rem;
}
.tk-filter {
  padding: 0.35rem 0.9rem; cursor: pointer;
  border: 1px solid var(--border-color); border-radius: var(--radius-pill);
  background: var(--bg-elevated); color: var(--text-secondary);
  font-family: inherit; font-size: 0.76rem; font-weight: 700;
}
.tk-filter:hover { color: var(--text-primary); border-color: color-mix(in srgb, var(--brand-500, #a78bfa) 55%, var(--border-color)); }
.tk-filter.active { background: color-mix(in srgb, var(--st-accent) 15%, transparent); border-color: var(--st-accent); color: var(--st-accent); }
.tk-group-toggle {
  display: inline-flex; align-items: center; gap: 0.35rem;
  margin-inline-start: auto; cursor: pointer;
  font-size: 0.74rem; font-weight: 700; color: var(--text-muted);
}

.tk-list { display: flex; flex-direction: column; gap: 0.5rem; }
.tk-item {
  display: flex; align-items: center; gap: 0.7rem;
  padding: 0.75rem 0.9rem;
  background: var(--bg-card); border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  border-inline-start: 3px solid var(--border-color);
}
.tk-item.is-late { border-inline-start-color: var(--st-danger); }
.tk-item.is-soon { border-inline-start-color: var(--st-warn); }
.tk-item.is-done { border-inline-start-color: var(--st-ok); opacity: 0.6; }
.tk-item.is-done .tk-title { text-decoration: line-through; }

.tk-check {
  flex-shrink: 0; width: 20px; height: 20px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-color); border-radius: var(--radius-sm);
  background: none; color: var(--st-ok); font-size: 0.7rem; font-weight: 800;
}
.tk-check:hover { border-color: var(--st-ok); }
.tk-check-locked { cursor: default; border-style: dashed; font-size: 0.66rem; }

/*@3.DASC.49*/
.tk-main {
  flex: 1; min-width: 0;
  border: 0; background: none; padding: 0; margin: 0;
  text-align: start; cursor: pointer;
  font-family: inherit; color: inherit;
  border-radius: var(--radius-sm);
}
.tk-main:hover .tk-title { color: var(--st-accent); }
.tk-main:focus-visible { outline: 2px solid var(--st-accent); outline-offset: 3px; }
.tk-title { font-size: 0.86rem; font-weight: 700; color: var(--text-primary); }
.tk-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; margin-top: 0.25rem; }
.tk-chip {
  padding: 0.1rem 0.45rem; border-radius: var(--radius-pill);
  background: var(--bg-elevated); color: var(--text-muted);
  font-size: 0.64rem; font-weight: 700;
}
.tk-chip-src { background: color-mix(in srgb, var(--st-accent) 12%, transparent); color: var(--st-accent); }
.tk-chip-pend { background: color-mix(in srgb, var(--st-warn) 14%, transparent); color: var(--st-warn); }
.tk-note { font-size: 0.66rem; color: var(--text-muted); }
.tk-due { flex-shrink: 0; font-size: 0.72rem; font-weight: 800; white-space: nowrap; }
.tk-actions { display: flex; gap: 0.2rem; flex-shrink: 0; }
.tk-act {
  width: 26px; height: 26px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  border: none; border-radius: var(--radius-sm);
  background: none; color: var(--text-muted); font-size: 0.72rem;
  text-decoration: none;
}
.tk-act:hover { background: var(--bg-elevated); color: var(--text-primary); }

.tk-group { margin-bottom: 1.1rem; }
.tk-group-head {
  display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.45rem;
  padding-inline-start: 0.5rem; border-inline-start: 3px solid var(--g-color, #a78bfa);
}
.tk-group-name { font-size: 0.8rem; font-weight: 800; color: var(--text-primary); }
.tk-group-count {
  padding: 0.05rem 0.4rem; border-radius: var(--radius-pill);
  background: var(--bg-elevated); color: var(--text-muted);
  font-size: 0.64rem; font-weight: 800;
}

/*@3.DASC.50*/
.dash-acc { border-top: 1px solid var(--border-color); }
.dash-acc:first-child { border-top: none; }
.dash-acc-head {
  display: flex; align-items: center; gap: 0.6rem; width: 100%;
  padding: 0.85rem 0.15rem; border: none; background: none; cursor: pointer;
  color: var(--text-primary); font-family: inherit; font-size: 0.88rem; font-weight: 800;
  text-align: start;
}
.dash-acc-head:hover { color: var(--st-accent, #a78bfa); }
.dash-acc-title { flex-shrink: 0; }
.dash-acc-sum {
  flex: 1; min-width: 0; text-align: end;
  font-size: 0.72rem; font-weight: 600; color: var(--text-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  transition: opacity 0.2s;
}
.dash-acc-caret { flex-shrink: 0; font-size: 0.7rem; color: var(--text-muted); transition: transform 0.25s ease; }
.dash-acc.is-open .dash-acc-caret { transform: rotate(180deg); }
.dash-acc.is-open .dash-acc-sum { opacity: 0; }
.dash-acc-body { display: none; padding-block-end: 1rem; }
.dash-acc.is-open .dash-acc-body { display: block; animation: dashAccIn 0.22s ease; }
@keyframes dashAccIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .dash-acc.is-open .dash-acc-body { animation: none; }
  .dash-acc-caret { transition: none; }
}
/*@3.DASC.51*/
.dash-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
@media (max-width: 560px) { .dash-row2 { grid-template-columns: 1fr; } }
.dash-acc-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-block-start: 0.4rem; }

/*@3.DASC.52*/
.dash-acc[hidden] { display: none; }
.lg-facts { list-style: none; margin: 0 0 0.6rem; padding: 0; display: grid; gap: 0.3rem; }
.lg-facts li {
  display: flex; align-items: center; gap: 0.5rem;
  font-size: 0.8rem; font-weight: 700; color: var(--text-secondary);
}
.lg-facts li i { color: var(--st-ok, #10b981); font-size: 0.72rem; flex-shrink: 0; }
.lg-meta { margin-block-end: 0.2rem; }
/*@3.DASC.53*/
.dash-btn.lg-primary { background: #a78bfa; border-color: #a78bfa; color: #fff; }
.dash-btn.lg-primary:hover { background: #9167f5; color: #fff; }
.dash-btn.lg-danger { color: #ef4444; border-color: color-mix(in srgb, #ef4444 35%, var(--border-color)); }
.dash-btn.lg-danger:hover { color: #ef4444; border-color: #ef4444; background: rgba(239, 68, 68, 0.08); }

.tk-modal {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center; padding: max(1rem, var(--sa-t)) max(1rem, var(--sa-r)) max(1rem, var(--sa-b)) max(1rem, var(--sa-l));
  background: rgba(0, 0, 0, 0.5); backdrop-filter: blur(3px);
}
.tk-modal[hidden] { display: none; }
/*@3.DASC.54*/
#note-modal { z-index: 210; }
.tk-hint {
  font-size: 0.7rem; line-height: 1.6; color: var(--text-muted);
  margin: -0.1rem 0 0.6rem; padding-inline-start: 0.55rem;
  border-inline-start: 2px solid var(--border-color);
}
.tk-modal-box {
  width: 100%; max-width: 440px; padding: 1.35rem;
  background: var(--bg-card); border: 1px solid var(--border-color);
  border-radius: var(--radius-xl); box-shadow: 0 20px 40px var(--shadow-base);
  max-height: 90vh; overflow-y: auto;
}
.tk-modal-box h3 { font-size: 1rem; font-weight: 800; margin-bottom: 1rem; }
.tk-label { display: block; font-size: 0.74rem; font-weight: 700; color: var(--text-secondary); margin-bottom: 0.3rem; }
.tk-input {
  width: 100%; padding: 0.5rem 0.7rem; margin-bottom: 0.8rem;
  border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: var(--bg-elevated); color: var(--text-primary);
  font-family: inherit; font-size: 0.82rem;
}
textarea.tk-input { resize: vertical; }
.tk-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.tk-modal-actions { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 0.4rem; }
.tk-btn {
  padding: 0.5rem 1.2rem; cursor: pointer;
  border-radius: var(--radius-md); border: 1px solid var(--border-color);
  font-family: inherit; font-size: 0.8rem; font-weight: 800;
}
.tk-btn-ghost { background: var(--bg-elevated); color: var(--text-secondary); }
.tk-btn-ghost:hover { color: var(--text-primary); }
.tk-btn-primary { background: #a78bfa; border-color: #a78bfa; color: #fff; }
.tk-btn-primary:hover { background: #9167f5; }

/*@3.DASC.55*/
.tk-sheet-box {
  --ev-color: var(--st-accent);
  width: 100%; max-width: 460px;
  background: var(--bg-card); border: 1px solid var(--border-color);
  border-block-start: 3px solid var(--ev-color);
  border-radius: var(--radius-xl); box-shadow: 0 20px 40px var(--shadow-base);
  max-height: 90vh; overflow-y: auto;
}
.tk-sheet-head { padding: 1.1rem 1.25rem .8rem; }
.tk-sheet-kind {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .14rem .55rem; border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--ev-color) 14%, transparent);
  color: var(--ev-color); font-size: .68rem; font-weight: 800;
}
.tk-sheet-t { font-size: 1.02rem; font-weight: 800; line-height: 1.5; margin: .5rem 0 0; }
.tk-sheet-course { font-size: .78rem; color: var(--text-muted); margin: .2rem 0 0; }
.tk-sheet-course[hidden] { display: none; }
.tk-sheet-body { padding: 0 1.25rem; }
.tk-sheet-row {
  display: flex; align-items: center; gap: .6rem;
  padding-block: .6rem;
  border-block-start: 1px solid var(--border-color);
  font-size: .82rem;
}
.tk-sheet-row > i { flex: none; inline-size: 1rem; text-align: center; color: var(--text-muted); font-size: .8rem; }
.tk-sheet-l { color: var(--text-muted); font-size: .76rem; }
.tk-sheet-v { margin-inline-start: auto; font-weight: 700; color: var(--text-primary); text-align: end; }
/*@3.DASC.56*/
.tk-sheet-v.mono { font-family: 'JetBrains Mono', monospace; direction: ltr; unicode-bidi: isolate; }
.tk-sheet-note {
  margin: .7rem 0 0; padding: .6rem .75rem;
  border-radius: var(--radius-md); background: var(--bg-elevated);
  font-size: .78rem; line-height: 1.75; color: var(--text-secondary);
}
.tk-sheet-acts {
  display: flex; flex-wrap: wrap; gap: .45rem;
  padding: .9rem 1.25rem 1.15rem; margin-block-start: .6rem;
  border-block-start: 1px solid var(--border-color);
}
.tk-sheet-acts .tk-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding-inline: .95rem; text-decoration: none;
  background: var(--bg-elevated); color: var(--text-secondary);
}
.tk-sheet-acts .tk-btn:hover { color: var(--text-primary); border-color: var(--text-secondary); }
.tk-sheet-acts .tk-btn-primary { background: #a78bfa; border-color: #a78bfa; color: #fff; }
.tk-sheet-acts .tk-btn-primary:hover { background: #9167f5; color: #fff; }
/*@3.DASC.57*/
.tk-sheet-acts .tk-btn-danger {
  color: var(--st-danger); background: none;
  border-color: color-mix(in srgb, var(--st-danger) 35%, var(--border-color));
  margin-inline-start: auto;
}
.tk-sheet-acts .tk-btn-danger:hover {
  color: var(--st-danger); border-color: var(--st-danger);
  background: color-mix(in srgb, var(--st-danger) 8%, transparent);
}
.tk-sheet-acts .tk-btn-ghost { margin-inline-start: 0; }

/*@3.DASC.58*/

/*@3.DASC.59*/
.dash-mobile-tabs { display: none; }

/*@3.DASC.75*/
.dash-today-foot {
  display: flex; align-items: center; gap: .5rem;
  margin-block-start: .25rem; min-block-size: 1.5rem;
}
.dash-today-cnt {
  flex: 1 1 auto; min-inline-size: 0;
  font-size: .76rem; color: var(--text-secondary);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dash-today-more {
  flex: none; margin-inline-start: auto;
  font-family: inherit; font-size: .72rem; font-weight: 800;
  color: var(--text-secondary); background: transparent;
  border: 1px solid var(--border-color); border-radius: var(--radius-pill);
  padding: .12rem .62rem; cursor: pointer;
  transition: color .18s var(--skin-ease, ease), border-color .18s var(--skin-ease, ease);
}
.dash-today-more:hover, .dash-today-more:focus-visible {
  color: var(--st-accent);
  border-color: color-mix(in srgb, var(--st-accent) 40%, transparent);
}

.dash-day-box {
  display: flex; flex-direction: column;
  width: 100%; max-width: 520px; max-height: 90vh; min-height: 0;
  background: var(--bg-card); border: 1px solid var(--border-color);
  border-radius: var(--radius-xl); box-shadow: 0 20px 40px var(--shadow-base);
  overflow: hidden;
}
.dash-day-head {
  flex: none; display: flex; align-items: flex-start; gap: .6rem;
  padding: 1.1rem 1.25rem 0;
}
.dash-day-h-b { flex: 1 1 auto; min-inline-size: 0; }
.dash-day-t { font-size: 1.02rem; font-weight: 800; line-height: 1.5; margin: 0; }
.dash-day-s { font-size: .78rem; color: var(--text-muted); margin: .25rem 0 0; }
.dash-day-x {
  flex: none; inline-size: 2rem; block-size: 2rem;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-color); border-radius: 50%;
  background: transparent; color: var(--text-muted); cursor: pointer;
  transition: color .18s var(--skin-ease, ease), border-color .18s var(--skin-ease, ease);
}
.dash-day-x:hover, .dash-day-x:focus-visible { color: var(--text-primary); border-color: var(--text-muted); }

.dash-day-seg {
  flex: none; display: flex; gap: .25rem; inline-size: fit-content;
  margin: .75rem 1.25rem 0; padding: .18rem;
  background: var(--bg-elevated); border-radius: var(--radius-pill);
}
.dash-day-seg > button {
  font-family: inherit; font-size: .72rem; font-weight: 800;
  color: var(--text-muted); background: none; border: 0;
  border-radius: var(--radius-pill); padding: .25rem .75rem; cursor: pointer;
}
.dash-day-seg > button[aria-pressed="true"] { background: var(--bg-card); color: var(--text-primary); }

.dash-day-body {
  flex: 1 1 auto; min-block-size: 0; overflow-y: auto; overscroll-behavior: contain;
  padding: .75rem 1.25rem 1.15rem;
}

.dash-day-r { display: flex; gap: .6rem; align-items: stretch; }
.dash-day-h { flex: none; inline-size: 2.75rem; padding-block-start: .6rem; }
.dash-day-h > b {
  font-family: 'JetBrains Mono', monospace; font-size: .7rem; font-weight: 600;
  color: var(--text-muted); direction: ltr; unicode-bidi: isolate;
}
.dash-day-l {
  flex: none; inline-size: 2px; border-radius: 2px; position: relative;
  background: color-mix(in srgb, var(--ev-color, var(--st-accent)) 38%, transparent);
  color: var(--ev-color, var(--st-accent));
}
.dash-day-l::before {
  content: ''; position: absolute; inset-block-start: .95rem; inset-inline-start: -3px;
  inline-size: 8px; block-size: 8px; border-radius: 50%; background: currentColor;
}
.dash-day-c { flex: 1 1 auto; min-inline-size: 0; padding-block-end: .45rem; }
.dash-day-card {
  display: flex; align-items: stretch; gap: .5rem;
  background: var(--bg-elevated); border-radius: var(--radius-md);
  padding-inline-start: .65rem;
}
.dash-day-b {
  flex: 1 1 auto; min-inline-size: 0; padding-block: .5rem;
  display: flex; flex-direction: column; gap: .12rem;
}
.dash-day-n {
  font-size: .82rem; font-weight: 700; color: var(--text-primary);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dash-day-m {
  display: flex; align-items: center; gap: .4rem; flex-wrap: wrap;
  font-size: .72rem; color: var(--text-muted); min-inline-size: 0;
}
.dash-day-m > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-day-tag {
  flex: none; font-size: .65rem; font-weight: 700; padding: .05rem .45rem;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--text-muted) 14%, transparent);
}
.dash-day-x2 {
  flex: none; inline-size: 2.5rem; align-self: stretch;
  display: flex; align-items: center; justify-content: center;
  border: 0; border-inline-start: 1px solid color-mix(in srgb, var(--text-muted) 18%, transparent);
  background: transparent; color: var(--text-muted); cursor: pointer; font-size: .74rem;
}
.dash-day-x2:hover, .dash-day-x2:focus-visible {
  color: var(--st-ok); background: color-mix(in srgb, var(--st-ok) 12%, transparent);
}
.dash-day-r.is-off .dash-day-card { opacity: .5; }
.dash-day-r.is-done .dash-day-n { text-decoration: line-through; text-decoration-thickness: 1px; }
.dash-day-r.is-done .dash-day-x2 { color: var(--st-ok); opacity: 1; }

.dash-day-gap { display: flex; gap: .6rem; align-items: center; padding-block: .1rem; }
.dash-day-gap > span { flex: none; inline-size: 2.75rem; }
.dash-day-gap > b {
  font-size: .68rem; font-weight: 600; color: var(--text-muted); padding-block: .3rem;
}
.dash-day-gap > i { flex: 1 1 auto; border-block-start: 1px dashed var(--border-color); }

.dash-day-now { display: flex; gap: .6rem; align-items: center; margin-block: .15rem .5rem; }
.dash-day-now > b {
  flex: none; inline-size: 2.75rem;
  font-family: 'JetBrains Mono', monospace; font-size: .66rem; font-weight: 800;
  color: var(--st-danger); direction: ltr; unicode-bidi: isolate;
}
.dash-day-now > i {
  flex: 1 1 auto; block-size: 1px; position: relative;
  background: color-mix(in srgb, var(--st-danger) 55%, transparent);
}
.dash-day-now > i::before {
  content: ''; position: absolute; inset-block-start: -3px; inset-inline-start: -1px;
  inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--st-danger);
}
.dash-day-none { font-size: .78rem; color: var(--text-muted); text-align: center; padding-block: 1.2rem; }

.dash-day-foot {
  flex: none; display: flex; gap: .45rem; justify-content: flex-end;
  padding: .85rem 1.25rem; border-block-start: 1px solid var(--border-color);
}
.dash-day-foot .tk-btn {
  display: inline-flex; align-items: center; text-decoration: none;
  background: var(--bg-elevated); color: var(--text-secondary);
}
.dash-day-foot .tk-btn:hover { color: var(--text-primary); border-color: var(--text-secondary); }

@media (max-width: 640px) {
  .dash-today-more { position: relative; }
  .dash-today-more::after {
    content: ''; position: absolute; inset-block: -.5rem; inset-inline: -.35rem;
  }
  .dash-day-box { max-height: 88vh; }
  .dash-day-h, .dash-day-gap > span, .dash-day-now > b { inline-size: 2.4rem; }
}


@media (max-width: 1024px) {
  .dash-side { display: none; }
  .dash-main { padding: 1.25rem 1rem 5.5rem; }

  /*@3.DASC.68*/
  .dash-mobile-tabs {
    display: flex; gap: 0.35rem;
    position: sticky; inset-block-start: 0; z-index: 50;
    margin: -1.25rem -1rem 1rem;
    padding: 0.5rem 0.6rem;
    background: var(--bg-primary);
    border-block-end: 1px solid var(--border-color);
  }

  .dash-mtab {
    flex: 1 1 0; min-inline-size: 0;
    display: inline-flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 3px;
    padding: 0.4rem 0.2rem; cursor: pointer;
    border-radius: var(--radius-md, 10px);
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-muted);
    font-family: inherit; font-size: 0.66rem; font-weight: 700;
    line-height: 1.15;
    transition: color .18s, background-color .18s, border-color .18s;
  }
  .dash-mtab i { font-size: 1rem; }
  .dash-mtab span {
    inline-size: 100%;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center;
  }
  .dash-mtab:hover { color: var(--text-secondary); }
  .dash-mtab.active {
    color: var(--st-accent);
    border-color: color-mix(in oklab, var(--st-accent) 32%, transparent);
    background: color-mix(in oklab, var(--st-accent) 12%, transparent);
  }
}
@media (max-width: 640px) {
  .dash-top { padding: 0 0.85rem; gap: 0.5rem; }
  .dash-logo-text { display: none; }
  .widgets-grid { grid-template-columns: 1fr; }
}

/*@3.DASC.60*/
@media (max-width: 768px) {
  .dash-fab { inset-block-end: calc(56px + 1rem + var(--sa-b)); }
  .dash-fab-menu { inset-block-end: calc(56px + 4.75rem + var(--sa-b)); }
}

/*@3.DASC.61*/

/*@3.DASC.62*/
.dash-sync-row { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8rem; }
.dash-sync-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
  background: var(--text-muted);
}
.dash-sync-dot.is-on { background: var(--st-ok); }
.dash-sync-state { font-weight: 700; color: var(--text-secondary); }
.dash-sync-last { margin-inline-start: auto; font-size: 0.72rem; color: var(--text-muted); }
.dash-sync-key { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; }
.dash-sync-keyval {
  font-family: 'JetBrains Mono', monospace; font-size: 0.75rem;
  padding: 0.25rem 0.5rem; border-radius: var(--radius-sm);
  background: var(--bg-elevated); border: 1px solid var(--border-color);
  color: var(--text-secondary); direction: ltr;
}

/*@3.DASC.63*/
.widget-head i, .widget-title i, .dash-empty i, .widget-empty i { color: var(--text-muted); }
.dash-empty i, .widget-empty i { font-size: 1.5rem; display: block; margin-bottom: 0.5rem; }
/*@3.DASC.64*/
.dash-level-num i { color: #fff; }
.tk-act i, .dash-note-act i, .widget-head .widget-icon i { color: var(--text-muted); font-size: 0.8rem; }
.tk-act:hover i { color: var(--text-primary); }

/*@3.DASC.65*/
.widget[data-widget="community"] { --cm-chat: #37aee2; --cm-archive: #ffffff; }
[data-theme="dim"] .widget[data-widget="community"] { --cm-archive: #f8fafc; }
[data-theme="light"] .widget[data-widget="community"] { --cm-chat: #229ed9; --cm-archive: #0f172a; }
/*@3.DASC.66*/
.widget[data-widget="community"] .widget-head { padding-inline-end: 2.25rem; }

.cm-body { justify-content: flex-start; }
.cm-title { font-size: 0.95rem; font-weight: 800; color: var(--text-primary); line-height: 1.5; }
.cm-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.85rem; }
/*@3.DASC.67*/
.cm-btn {
  flex: 1 1 auto; white-space: nowrap;
  display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
  padding: 0.45rem 0.9rem; border-radius: var(--radius-pill);
  border: 1px solid var(--border-color); background: var(--bg-elevated);
  color: var(--text-primary); text-decoration: none;
  font-size: 0.78rem; font-weight: 800; line-height: 1;
  transition: transform 0.2s, background 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.cm-btn i { font-size: 1.05rem; line-height: 1; }
.cm-btn:hover { transform: translateY(-1px); }
.cm-btn--chat {
  background: color-mix(in srgb, var(--cm-chat) 12%, transparent);
  border-color: color-mix(in srgb, var(--cm-chat) 38%, transparent);
}
.cm-btn--chat i { color: var(--cm-chat); }
.cm-btn--chat:hover {
  background: color-mix(in srgb, var(--cm-chat) 18%, transparent);
  border-color: var(--cm-chat);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--cm-chat) 24%, transparent);
}
.cm-btn--archive i { color: var(--cm-archive); }
.cm-btn--archive:hover {
  border-color: color-mix(in srgb, var(--cm-archive) 55%, var(--border-color));
  box-shadow: 0 6px 16px var(--shadow-base);
}
@media (prefers-reduced-motion: reduce) {
  .cm-btn:hover { transform: none; }
}

/*@3.DASC.71*/
.dash-greet {
  appearance: none; -webkit-appearance: none;
  background: none; border: 0; padding: 0; margin: 0;
  font: inherit; color: inherit; text-align: start; cursor: pointer;
  align-items: flex-start; gap: .18rem;
  border-radius: var(--radius-md);
}
.dash-greet-n {
  font-size: 1.05rem; font-weight: 800; color: var(--text-primary);
  transition: color .18s;
}
.dash-greet:hover .dash-greet-n,
.dash-greet:focus-visible .dash-greet-n { color: #a78bfa; }
.dash-greet:focus-visible {
  outline: 2px solid #a78bfa; outline-offset: 3px;
}
.dash-greet-cta {
  display: inline-flex; align-items: center; gap: .35rem;
  align-self: flex-start; margin-block-start: .5rem;
  font-size: .74rem; font-weight: 800;
  color: #a78bfa;
  background: rgba(167,139,250,0.1);
  border: 1px dashed rgba(167,139,250,0.35);
  border-radius: var(--radius-pill); padding: .28rem .75rem;
}
.dash-greet:hover .dash-greet-cta {
  background: rgba(167,139,250,0.18);
}
