:root {
  --ink: #161616;
  --muted: #6c6c6c;
  --paper: #efefed;
  --paper-deep: #e1e1df;
  --line: #d0d0cd;
  --accent: #444444;
  --accent-strong: #2d2d2d;
  --blue: #4a4a4a;
  --rose: #5c5c5c;
  --gold: #777777;
  --white: #ffffff;
  --shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

/* Future v2 workspace */
.shell,.auth-modal{display:none!important}#futureV2{min-height:100vh;background:#f5f5f2;color:#151515;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}#futureV2 *{box-sizing:border-box}#futureV2 button,#futureV2 input,#futureV2 textarea,#futureV2 select{font:inherit}#futureV2 button{cursor:pointer}#futureV2 input,#futureV2 textarea,#futureV2 select{width:100%;min-height:40px;padding:9px 11px;color:#151515;background:#fff;border:1px solid #deded9;border-radius:5px}#futureV2 textarea{min-height:88px;resize:vertical}.future-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.future-side{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:28px 16px 16px;background:#171717;color:#fafafa;overflow:auto}.future-brand{padding:0 10px;font-size:27px}.future-note{margin:7px 10px 30px;color:#969696;font-size:12px}.future-nav{display:grid;gap:3px}.future-nav button{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:9px 10px;color:#cfcfcf;text-align:left;background:transparent;border:0;border-radius:6px}.future-nav button:hover,.future-nav button.active{color:#171717;background:#f1f1ee}.future-nav b{width:20px;text-align:center}.future-sync{display:grid;gap:7px;margin-top:auto;padding:18px 10px 0;border-top:1px solid #333}.future-sync button{min-height:35px;color:#f5f5f5;background:transparent;border:1px solid #5b5b5b;border-radius:5px}.future-sync small{color:#a7a7a7}.future-main{min-width:0;padding-bottom:42px}.future-top{display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid #deded9}.future-top div{display:flex;align-items:center;gap:12px}.future-top .today{color:#737373;font-size:12px}.future-head,.future-tabs,.future-view{width:min(1280px,calc(100% - 48px));margin-left:auto;margin-right:auto}.future-head{padding-top:44px}.future-eyebrow{margin:0 0 8px;color:#777;font-size:11px;font-weight:700;letter-spacing:.12em}.future-head h1{margin:0;font-size:clamp(28px,4vw,42px);line-height:1.1}.future-head>p:last-child{margin:10px 0 0;color:#737373;font-size:15px}.future-tabs{display:flex;gap:3px;min-height:49px;margin-top:27px;padding:5px;overflow:auto;background:#fff;border:1px solid #deded9;border-radius:8px}.future-tabs button{flex:0 0 auto;min-height:37px;padding:0 13px;color:#666;background:transparent;border:0;border-radius:5px}.future-tabs button.active{color:#151515;background:#ecece8;font-weight:700}.future-view{padding-top:20px}.future-grid2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);gap:18px}.future-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.future-stack{display:grid;gap:16px}.future-panel{min-width:0;padding:19px;background:#fff;border:1px solid #deded9;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.05)}.future-panel h2,.future-panel h3,.future-panel h4{margin:0}.future-panel h3{font-size:16px}.future-panel p{color:#737373;line-height:1.65}.future-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.future-btn{min-height:38px;padding:0 13px;color:#fff;background:#171717;border:1px solid #171717;border-radius:5px}.future-btn.alt{color:#151515;background:#fff;border-color:#deded9}.future-btn.small{min-height:30px;padding:0 9px;font-size:12px}.future-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.future-metric{min-height:112px;padding:16px;background:#fff;border:1px solid #deded9;border-radius:8px}.future-metric span,.future-metric small{display:block;color:#737373;font-size:12px}.future-metric strong{display:block;margin:10px 0 4px;font-size:30px;line-height:1}.future-list{display:grid;gap:8px}.future-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #deded9}.future-row:first-child{padding-top:0;border-top:0}.future-row span{display:block;margin-top:4px;color:#737373;font-size:12px}.future-row.done strong{text-decoration:line-through;color:#888}.future-form{display:flex;gap:8px;align-items:center}.future-form .grow{flex:1}.future-callout{padding:16px;background:#f4f4f1;border-left:3px solid #171717}.future-callout strong{display:block;margin-bottom:7px}.future-timer{margin:13px 0 17px;font-size:46px;font-weight:700;font-variant-numeric:tabular-nums}.future-chart{display:flex;align-items:flex-end;gap:6px;height:88px;border-bottom:1px solid #deded9}.future-chart i{display:block;flex:1;min-height:7px;background:#292929;border-radius:3px 3px 0 0}.future-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.future-card{padding:14px;background:#fff;border:1px solid #deded9;border-radius:8px}.future-card h4{margin:0 0 7px}.future-card p{margin:0;color:#737373;font-size:13px}.future-card small{display:block;margin-top:9px;color:#888}.future-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #deded9;border-left:1px solid #deded9}.future-calendar>div{min-height:82px;padding:6px;border-right:1px solid #deded9;border-bottom:1px solid #deded9}.future-calendar .week{min-height:auto;color:#737373;font-size:11px}.future-event{display:block;overflow:hidden;margin-top:5px;padding:2px 4px;background:var(--event,#ddd);border-radius:3px;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.future-table{width:100%;overflow:auto;border:1px solid #deded9;border-radius:8px}.future-table table{width:100%;border-collapse:collapse;font-size:13px}.future-table th,.future-table td{padding:10px;text-align:left;border-bottom:1px solid #deded9;white-space:nowrap}.future-table th{color:#666;background:#f5f5f2;font-size:11px}.future-score{padding:14px;border:1px solid #deded9;border-radius:8px}.future-score-grid{display:grid;grid-template-columns:minmax(110px,1fr) 78px 94px;gap:7px;align-items:center;margin-top:10px}.future-modal[hidden]{display:none}.future-modal{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.48)}.future-modal>section{position:relative;width:min(100%,560px);max-height:calc(100vh - 40px);padding:24px;overflow:auto;background:#fff;border-radius:8px}.future-close{position:absolute;top:12px;right:12px;width:34px;height:34px;background:#fff;border:1px solid #deded9;border-radius:5px;font-size:20px}.future-fields{display:grid;gap:10px}.future-settings-row{display:grid;grid-template-columns:28px minmax(100px,1fr) 90px auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #deded9}.future-settings-row:first-child{border-top:0}.future-actions{display:flex;gap:4px}.future-empty{padding:28px;color:#737373;text-align:center;border:1px dashed #deded9;border-radius:8px}@media(max-width:920px){.future-shell{grid-template-columns:1fr}.future-side{position:fixed;z-index:15;left:0;top:0;width:260px;transform:translateX(-104%);transition:transform .18s}.future-side.open{transform:translateX(0)}.future-menu{display:inline-grid!important}.future-top{padding:0 18px}.future-head,.future-tabs,.future-view{width:calc(100% - 32px)}.future-head{padding-top:30px}.future-grid2,.future-grid3{grid-template-columns:1fr}.future-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:921px){.future-menu{display:none!important}}@media(max-width:560px){.future-top .today{display:none}.future-tabs{margin-top:20px}.future-view{padding-top:14px}.future-panel{padding:14px}.future-form{flex-wrap:wrap;align-items:stretch}.future-form>*{flex:1 1 140px}.future-calendar>div{min-height:62px;padding:4px}.future-score-grid{grid-template-columns:1fr 64px 76px}.future-settings-row{grid-template-columns:26px minmax(0,1fr) auto}.future-settings-row select{display:none}.future-actions{grid-column:2/4}}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background: var(--paper);
  font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
}

button,
input,
textarea,
select {
  font: inherit;
}

button {
  border: 0;
  cursor: pointer;
}

.shell {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 32px 22px;
  background: #4d4d4d;
  border-right: 1px solid #626262;
}

.brand {
  margin-bottom: 34px;
}

.brand h1 {
  margin: 0;
  color: #ffffff;
  font-size: 30px;
  font-weight: 750;
  letter-spacing: .02em;
}

.brand p,
.section-head p,
.metric small {
  margin: 4px 0 0;
  color: var(--muted);
}

.nav {
  display: grid;
  gap: 8px;
}

.nav-item {
  width: 100%;
  padding: 12px 14px;
  color: #eeeeee;
  text-align: left;
  background: transparent;
  border-radius: 8px;
}

.nav-item:hover,
.nav-item.active {
  background: #ededed;
  color: #303030;
}

.nav-edit {
  width: 100%;
  min-height: 38px;
  margin-top: 14px;
  color: #f4f4f4;
  background: transparent;
  border: 1px solid #747474;
}

.nav-edit:hover {
  background: #606060;
}

.nav-editor {
  display: grid;
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  color: #f2f2f2;
  background: #585858;
  border: 1px solid #707070;
  border-radius: 8px;
}

.nav-editor label {
  font-size: 13px;
}

.nav-add-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
}

.nav-add-row input {
  height: 38px;
}

.nav-add-row button,
.nav-editor-row button {
  min-height: 32px;
  padding: 0 8px;
  font-size: 12px;
}

.nav-editor-list {
  display: grid;
  gap: 7px;
}

.nav-editor-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding-top: 7px;
  border-top: 1px solid #707070;
  font-size: 12px;
}

.nav-editor-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nav-editor-row div {
  display: flex;
  gap: 4px;
}

.side-note {
  position: absolute;
  right: 22px;
  bottom: 24px;
  left: 22px;
  display: grid;
  gap: 6px;
  padding: 14px;
  color: #ffffff;
  background: #5a5a5a;
  border: 1px solid #6d6d6d;
  border-radius: 8px;
}

.side-note span {
  color: #e0e0e0;
  font-size: 13px;
}

.side-note small {
  color: #d7d7d7;
  font-size: 12px;
}

.sync-button {
  min-height: 34px;
  padding: 0 10px;
  color: #f4f4f4;
  background: transparent;
  border: 1px solid #818181;
  font-size: 13px;
}

.sync-button:hover {
  background: #666666;
}

.auth-modal[hidden] {
  display: none;
}

.auth-modal {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(24, 24, 24, .5);
}

.auth-panel {
  position: relative;
  display: grid;
  gap: 12px;
  width: min(100%, 420px);
  padding: 24px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 18px 52px rgba(0, 0, 0, .2);
}

.auth-panel h2 {
  font-size: 26px;
}

.auth-panel p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.auth-panel label {
  color: var(--muted);
  font-size: 13px;
}

.auth-panel .auth-message {
  min-height: 1.6em;
  color: var(--accent-strong);
  font-size: 13px;
}

.modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  min-height: 34px;
  padding: 0;
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--line);
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
}

.modal-close:hover {
  color: var(--white);
}

.main {
  padding: 28px clamp(18px, 4vw, 54px) 54px;
}

.topbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  gap: 16px;
  margin-bottom: 28px;
}

.goal-box,
.date-card,
.panel,
.metric {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.goal-box {
  padding: 16px;
}

.goal-box label {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
}

.goal-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 112px 142px 88px;
  gap: 10px;
}

input,
textarea,
select {
  width: 100%;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  outline: 0;
}

input,
select {
  height: 44px;
  padding: 0 12px;
}

textarea {
  min-height: 132px;
  padding: 12px;
  resize: vertical;
  line-height: 1.65;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .12);
}

button {
  min-height: 42px;
  padding: 0 16px;
  color: var(--white);
  background: var(--accent);
  border-radius: 8px;
  font-weight: 700;
}

button:hover {
  background: var(--accent-strong);
}

.secondary {
  color: var(--ink);
  background: #e4e4e2;
}

.ghost {
  min-height: 32px;
  color: var(--accent-strong);
  background: transparent;
  border: 1px solid var(--line);
}

.date-card {
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 16px;
}

.date-card span {
  color: var(--muted);
  font-size: 14px;
}

.view {
  display: none;
}

.view.active {
  display: block;
}

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  margin-bottom: 18px;
}

h2 {
  margin: 0;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: 0;
}

h3 {
  margin: 0 0 12px;
  font-size: 18px;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.metric {
  padding: 16px;
}

.metric span {
  color: var(--muted);
}

.metric strong {
  display: block;
  margin-top: 8px;
  font-size: 32px;
}

.two-col,
.columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.columns {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.panel {
  padding: 16px;
  margin-bottom: 16px;
}

.panel-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.subtle {
  color: var(--muted);
  font-size: 13px;
}

.form-grid {
  display: grid;
  grid-template-columns: 1.1fr .8fr 1.2fr .7fr;
  gap: 10px;
  margin-bottom: 10px;
}

.form-grid.five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.toolbar {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}

.todo-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 148px 86px;
  gap: 10px;
  margin-bottom: 12px;
}

.todo-item {
  display: grid;
  gap: 8px;
}

.todo-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
}

.todo-label input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
}

.todo-item.is-done .todo-label span {
  color: var(--muted);
  text-decoration: line-through;
}

.todo-item .item-head {
  margin: 0;
  align-items: center;
}

.list {
  display: grid;
  gap: 10px;
}

.empty {
  color: var(--muted);
}

.item,
.mini-card {
  padding: 12px;
  background: #fafafa;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.item-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.tag {
  padding: 4px 8px;
  color: #333333;
  background: #e7e7e5;
  border-radius: 999px;
  font-size: 12px;
}

.tag.urgent {
  color: #111111;
  background: #ccccca;
}

.tag.gold {
  color: #111111;
  background: #d8d8d6;
}

.card-list {
  display: grid;
  gap: 10px;
}

.curriculum-groups {
  display: grid;
  gap: 16px;
}

.curriculum-note {
  margin: 0 0 14px;
  padding: 10px 12px;
  color: var(--muted);
  background: #f0f0ee;
  border-left: 3px solid var(--gold);
  line-height: 1.6;
}

.course-score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.annual-plan-panel {
  padding: 20px;
}

.annual-card-list {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.baoyan-panel .annual-card-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.score-card {
  padding: 14px;
  background: #fafafa;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.score-card p {
  margin: 0 0 10px;
  color: var(--muted);
  line-height: 1.6;
}

.study-tip {
  color: var(--accent-strong) !important;
}

.score-table {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 76px 98px;
  gap: 7px 8px;
  align-items: center;
  margin: 12px 0;
}

.score-table > span {
  color: var(--muted);
  font-size: 13px;
}

.score-table label {
  font-size: 14px;
}

.score-table input {
  height: 36px;
  padding: 0 8px;
}

.score-result {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--line);
  color: var(--muted);
  font-size: 13px;
}

.score-result strong {
  color: var(--accent-strong);
}

.score-card small {
  display: block;
  margin-top: 10px;
  color: var(--muted);
}

.curriculum-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.curriculum-heading span {
  color: var(--muted);
  font-size: 13px;
}

.compact-table table {
  min-width: 920px;
}

.mini-card strong {
  display: block;
  margin-bottom: 6px;
}

.mini-card p,
.item p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.table-wrap {
  overflow: auto;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

th,
td {
  padding: 12px;
  text-align: left;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}

th {
  background: #eaf0eb;
}

.check-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.habit {
  display: grid;
  gap: 12px;
  padding: 16px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.habit button.done {
  background: var(--blue);
}

@media (max-width: 960px) {
  .shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    height: auto;
  }

  .side-note {
    position: static;
    margin-top: 18px;
  }

  .nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nav-editor-row {
    grid-template-columns: 1fr;
  }

  .topbar,
  .two-col,
  .columns,
  .metric-grid,
  .check-grid,
  .form-grid,
  .form-grid.five {
    grid-template-columns: 1fr;
  }

  .goal-row,
  .todo-form {
    grid-template-columns: 1fr;
  }

  .course-score-grid {
    grid-template-columns: 1fr;
  }

  .annual-card-list,
  .baoyan-panel .annual-card-list {
    grid-template-columns: 1fr;
  }
}

/* Calendar views and entry forms. */
.future-calendar-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.future-date-picker{width:160px;margin-left:auto}
.future-title{align-items:center;flex-wrap:wrap}
.future-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.future-calendar-day{display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:96px;padding:8px;text-align:left;color:#151515;background:#fff;border:0;border-right:1px solid #deded9;border-bottom:1px solid #deded9;border-radius:0}
.future-calendar-day:hover{background:#f5f5f2}
.future-calendar-day.is-today>b{color:#167c70}
.future-calendar-day.is-selected{background:#edf4f3}
.future-calendar-day:focus-visible{outline:2px solid #167c70;outline-offset:-2px}
.future-event{min-width:0;background:#e3efed}
.future-event.is-done,.future-timed-event.is-done{text-decoration:line-through;color:#777}
.future-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px}
.future-year-month{min-width:0}
.future-year-month h4{margin-bottom:10px}
.future-year-month h4 button{padding:4px 0;color:#151515;background:transparent;font-weight:700;text-align:left}
.future-mini-calendar .future-calendar-day,.future-mini-calendar>div:not(.week){height:36px;min-height:36px;padding:5px;font-size:12px;position:relative}
.future-mini-calendar .week{padding:5px 2px;text-align:center;font-size:10px}
.future-mini-calendar .future-calendar-day{align-items:center;text-align:center}
#futureV2 .future-mini-calendar .future-calendar-day{font-size:12px}
.future-day-dot{width:4px;height:4px;margin-top:2px;background:#167c70;border-radius:50%}
.future-all-day{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:start;padding:12px 0 18px;border-bottom:1px solid #deded9;font-size:12px}
.future-all-day .future-event{margin-top:0;margin-bottom:5px;white-space:normal;overflow-wrap:anywhere;font-size:12px}
.future-note-inline{color:#737373}
.future-hour{display:grid;grid-template-columns:52px minmax(0,1fr) 32px;gap:12px;align-items:start;min-height:68px;padding:12px 0;border-bottom:1px solid #e8e8e3}
.future-hour time{color:#737373;font-size:12px;font-variant-numeric:tabular-nums}
.future-hour-add{width:30px;opacity:.6}
.future-hour:hover .future-hour-add,.future-hour-add:focus-visible{opacity:1}
.future-timed-event{display:grid;gap:5px;margin-bottom:6px;padding:8px 10px;color:#1a4942;background:#e3efed;border-left:3px solid #167c70;border-radius:3px;font-size:12px;overflow-wrap:anywhere}
.future-timed-event span{color:#596c67}
.future-table table{min-width:600px}
.future-table .future-course-group th{background:#e3efed;color:#1a4942;font-size:13px}
.future-course-group span{margin-left:12px;color:#596c67;font-size:11px;font-weight:400}
.future-modal h2{margin:0 0 20px;padding-right:40px;font-size:22px}
.future-close{display:grid;place-items:center;padding:0;color:#151515}
.future-fields label{display:grid;gap:6px;font-size:13px}
.future-fields .future-checkbox{display:flex;align-items:center;gap:8px}
#futureV2 .future-checkbox input{width:18px;min-height:18px;height:18px;padding:0;accent-color:#167c70}
.future-time-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.future-time-fields[hidden]{display:none}
#futureV2 [hidden]{display:none!important}
#futureV2 button:disabled{cursor:default;opacity:.5}
.future-reward-list{grid-template-columns:minmax(0,1fr);gap:0}
.future-reward-row{display:flex;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid #e4e4de}
.future-reward-row:last-child{border-bottom:0}
.future-reward-label{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:pointer}
#futureV2 .future-reward-label input{flex:0 0 20px;width:20px;height:20px;min-height:20px;padding:0;accent-color:#167c70}
.future-reward-label>span{min-width:0;overflow-wrap:anywhere}
.future-reward-label strong{display:block;font-size:15px;line-height:1.5}
.future-reward-note,.future-reward-label time{display:block;color:#737373;font-size:13px;margin-top:4px;white-space:pre-wrap}
.future-reward-row.is-done strong{text-decoration:line-through;color:#777}
.future-focus-fields{display:grid;gap:14px}
.future-focus-fields label{display:grid;gap:6px;font-size:13px}
.future-mode{display:flex;width:fit-content;max-width:100%;background:#f2f2ee;padding:3px;border:1px solid #deded9;border-radius:5px}
.future-mode button{min-height:34px;padding:0 18px;border:0;border-radius:3px;background:transparent;color:#666}
.future-mode button[aria-pressed="true"]{background:#fff;color:#151515;box-shadow:0 1px 3px #0001}
.future-focus-actions,.future-data-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.future-focus-actions .future-btn,.future-data-actions .future-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.future-focus-status{min-height:22px;margin:0 0 12px;font-size:13px}
.future-timer{min-height:56px;line-height:1.2;letter-spacing:0}
.future-focus-total{display:grid;gap:8px;padding:10px 0 22px;border-bottom:1px solid #e4e4de}
.future-focus-total strong{font-size:32px;font-variant-numeric:tabular-nums}
.future-focus-total span{color:#737373;font-size:13px}
.future-focus-history>div,.future-backup-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid #e4e4de}
.future-focus-history strong{min-width:0;overflow-wrap:anywhere;font-size:14px}
.future-focus-history time{flex-shrink:0;font-variant-numeric:tabular-nums;color:#167c70}
.future-import-label{position:relative;cursor:pointer}
#futureV2 .future-import-label input{position:absolute;width:1px;height:1px;min-height:1px;padding:0;opacity:0;overflow:hidden}
.future-backup-list time{font-size:13px;color:#666}
.future-backup-list button{flex-shrink:0}
.future-data-status{min-height:22px;font-size:13px}
.future-undated{margin-top:20px;padding-top:18px;border-top:1px solid #deded9}
.future-undated h4{margin-bottom:12px}
@media(max-width:560px){.future-focus-actions .future-btn{font-size:13px;padding:0 10px}.future-backup-list>div{flex-wrap:wrap}}
.future-row>div:first-child,.future-card{min-width:0;overflow-wrap:anywhere}
.future-row>div:last-child{display:flex;flex-wrap:wrap;gap:5px;align-items:start}
@media(max-width:1100px){.future-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.future-year-grid{grid-template-columns:1fr}.future-calendar-day{min-height:76px;padding:4px;font-size:12px}.future-calendar-day .future-event{font-size:9px;padding:2px}.future-date-picker{width:145px}.future-calendar-toolbar{gap:5px}.future-hour{grid-template-columns:43px minmax(0,1fr) 30px;gap:8px}.future-modal{padding:12px}.future-modal>section{padding:20px;max-height:calc(100dvh - 24px)}}

/* Editable events and supplied course rules. */
.future-icon{width:16px;height:16px;display:block;flex:none}
.future-event{background:var(--event,#e3efed);border-left:2px solid var(--event-color,#167c70)}
.future-schedule-entry{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;color:#151515;background:var(--event-bg,#e3efed);border-left:3px solid var(--event-color,#167c70);white-space:normal;overflow:visible}
#futureV2 .future-entry-content{display:grid;flex:1;min-width:0;gap:5px;margin:0;padding:0;color:inherit;background:transparent;text-align:left;border:0;border-radius:0;font-size:12px;overflow-wrap:anywhere}
.future-entry-content span{color:#595959}
.future-event-tools{display:flex;flex:none;gap:4px}
.future-icon-btn{display:grid;place-items:center;width:30px;height:30px;padding:0;color:#424242;background:#ffffffaa;border:1px solid #00000015;border-radius:4px}
.future-icon-btn:hover{background:#fff;color:#151515}
.future-entry-content:hover strong{text-decoration:underline}
.future-colors{min-width:0;margin:0;padding:0;border:0}
.future-colors legend{margin-bottom:8px;font-size:13px}
.future-color-options{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:3px}
#futureV2 .future-color-swatch{width:28px;height:28px;min-height:28px;padding:0;border:1px solid #00000015;border-radius:50%;background:var(--swatch)}
.future-color-swatch[aria-pressed="true"]{outline:2px solid #151515;outline-offset:2px}
.future-fields .future-custom-color{display:flex;align-items:center;gap:8px;margin-left:4px;font-size:12px}
#futureV2 .future-custom-color input{width:44px;min-height:30px;height:30px;padding:2px;border-radius:4px;cursor:pointer}
.future-grade-course{padding:24px 0;border-top:1px solid #deded9;overflow-wrap:anywhere}
.future-grade-course:first-child{padding-top:0;border-top:0}
.future-grade-course:last-child{padding-bottom:0}
.future-grade-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.future-grade-heading h4{font-size:17px}
.future-rule-status{color:#875a11;font-size:12px}
.future-grade-details,.future-course-syllabus ul{padding-left:20px;color:#595959;font-size:13px;line-height:1.8}
.future-grade-course .future-score-grid{grid-template-columns:minmax(0,1fr) 110px 120px;gap:12px}
.future-grade-course .future-score-grid input{min-width:0}
.future-grade-course .future-score-grid label{font-size:13px}
.future-score-head{margin-top:20px;color:#737373;font-size:12px}
.future-grade-result{display:block;margin-top:14px;font-size:13px;color:#167c70;font-weight:700}
.future-course-syllabus{margin-top:16px;color:#595959;font-size:13px}
.future-course-syllabus summary{cursor:pointer}
@media(max-width:600px){.future-grade-course .future-score-grid{grid-template-columns:minmax(0,1fr) 65px 82px;gap:8px}.future-schedule-entry{flex-wrap:wrap;padding:8px}.future-all-day{grid-template-columns:48px minmax(0,1fr);gap:8px}.future-color-options{gap:8px}.future-event-tools{margin-left:auto}}
