@font-face { font-family:Roboto; src:url('../fonts/Roboto.ttf') format('truetype'); font-style:normal; font-weight:100 900; font-display:swap }
:root {
  --ink:#1b2d3d;
  --ink-soft:#42576b;
  --muted:#6c85a1;
  --line:#e7eaed;
  --paper:#fff;
  --bg:#f5f7fb;
  --green:#2f6391;
  --green-dark:#244c74;
  --mint:#e9f1f8;
  --purple:#e9eef8;
  --blue:#e7f0fa;
  --amber:#fff1de;
  --shadow:0 12px 38px rgba(39,74,61,.045)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Roboto,Arial,sans-serif;
  font-size:14px;
  line-height:1.5
}
button,input,select {
  font:inherit
}
button {
  cursor:pointer
}
a {
  color:inherit;
  text-decoration:none
}
h1,h2,h3,p {
  margin-top:0
}
h1,h2,h3,strong {
  font-family:Roboto,Arial,sans-serif
}
input,select {
  width:100%;
  height:43px;
  padding:0 13px;
  border:1px solid #dee1e5;
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  outline:0;
  transition:border-color .2s,box-shadow .2s
}
input:focus,select:focus {
  border-color:#6a83a0;
  box-shadow:0 0 0 3px rgba(48,135,103,.12)
}
input::placeholder {
  color:#aab2bc
}
label {
  display:block;
  font-weight:700;
  color:#3a4a5b;
  font-size:12px;
  letter-spacing:.01em
}
label input,label select {
  display:block;
  margin-top:8px;
  font-weight:500;
  letter-spacing:0
}
label small,.helper-text {
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:500;
  line-height:1.5;
  margin:6px 0 0
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.muted {
  color:var(--muted)
}
.eyebrow {
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  color:#547295;
  margin:0 0 9px
}
.eyebrow--light {
  color:#b4bdc8
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font:700 16px Roboto,Arial,sans-serif;
  letter-spacing:-.05em;
  white-space:nowrap
}
.brand__mark {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:12px;
  background:var(--green);
  color:#fff;
  font-weight:700;
  letter-spacing:-.1em;
  font-size:19px;
  padding-right:4px
}
.brand__dot {
  color:#b8c7d9
}
.brand--large {
  color:#fff;
  font-size:19px
}
.brand--large .brand__mark {
  width:44px;
  height:44px;
  background:#eceff2;
  color:#293d54;
  font-size:22px
}
.brand--large .brand__dot {
  color:#8293a6
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:43px;
  padding:10px 16px;
  border-radius:10px;
  border:1px solid transparent;
  font-weight:700;
  line-height:1.2;
  transition:transform .2s,background .2s,box-shadow .2s;
  text-align:center
}
.button:hover:not(:disabled) {
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(20,80,61,.12)
}
.button:disabled {
  opacity:.48;
  cursor:not-allowed
}
.button--full {
  width:100%
}
.button--primary {
  background:var(--green);
  color:#fff
}
.button--primary:hover:not(:disabled) {
  background:var(--green-dark)
}
.button--secondary {
  background:#eceef1;
  color:#2c425b
}
.button--secondary:hover:not(:disabled) {
  background:#dee3e9
}
.button--dark {
  background:#252e39;
  color:#fff
}
.button--ghost {
  background:#fff;
  color:var(--green);
  border-color:#dde0e4
}
.text-button {
  padding:0;
  border:0;
  background:none;
  color:#44586f;
  font-weight:700;
  text-align:left
}
.text-button:hover {
  text-decoration:underline
}
.text-button--danger {
  color:#b46258
}
.icon-button {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border:0;
  background:transparent;
  color:inherit;
  font-size:20px
}
.flash {
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  margin:0 0 22px;
  border-radius:11px;
  font-weight:600;
  font-size:12px
}
.flash--success {
  background:#e7ebf0;
  color:#2d425a;
  border:1px solid #d1d8e1
}
.flash--error {
  background:#fff0ec;
  color:#a34536;
  border:1px solid #f6d4ca
}
.flash__symbol {
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:currentColor;
  color:#fff;
  font-weight:800
}
.flash--success .flash__symbol {
  background:#48698e
}
.flash--error .flash__symbol {
  background:#ce6d5b
}
.flash__close {
  margin-left:auto
}
.auth-shell {
  display:grid;
  grid-template-columns:minmax(420px,48%) 1fr;
  min-height:100vh
}
.auth-story {
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  padding:45px clamp(35px,5vw,82px);
  overflow:hidden;
  color:#fff;
  background:radial-gradient(circle at 80% 90%,rgba(149,214,175,.22),transparent 30%),radial-gradient(circle at 10% 12%,rgba(201,236,203,.12),transparent 32%),linear-gradient(145deg,#2d4055,#1d2d3f 72%)
}
.auth-story::before,.auth-story::after {
  content:'';
  position:absolute;
  border:1px solid rgba(216,244,225,.15);
  border-radius:50%;
  pointer-events:none
}
.auth-story::before {
  width:740px;
  height:740px;
  right:-390px;
  bottom:-350px
}
.auth-story::after {
  width:500px;
  height:500px;
  right:-240px;
  bottom:-225px
}
.auth-story__content {
  position:relative;
  z-index:1;
  margin:auto 0;
  max-width:570px
}
.auth-story h1 {
  font-size:clamp(43px,4.4vw,70px);
  letter-spacing:-.055em;
  line-height:1.08;
  font-weight:600;
  margin:0 0 25px
}
.auth-story h1 em {
  color:#cfd6df;
  font-style:normal
}
.auth-story__content>p:not(.eyebrow) {
  max-width:400px;
  color:#dde0e4;
  line-height:1.8;
  font-size:15px
}
.auth-points {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:55px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.18)
}
.auth-points span {
  color:#b6bec8;
  font-size:11px;
  letter-spacing:.04em
}
.auth-points strong {
  color:#fff;
  font-size:12px;
  margin-left:7px
}
.auth-story__footer {
  position:relative;
  z-index:1;
  color:#c4cbd2;
  font-size:11px;
  margin-bottom:0
}
.auth-main {
  display:grid;
  place-items:center;
  padding:44px 24px
}
.auth-card {
  width:min(100%,430px);
  padding:22px 0
}
.auth-card__spark {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  margin-bottom:35px;
  border-radius:13px;
  background:#eaedf0;
  color:var(--green);
  font-size:25px
}
.auth-card h2 {
  font-size:36px;
  letter-spacing:-.045em;
  line-height:1.15;
  margin:0 0 10px
}
.auth-card>.muted {
  font-size:14px;
  margin-bottom:32px
}
.form-stack {
  display:grid;
  gap:17px
}
.form-stack .button {
  margin-top:3px
}
.two-fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px
}
.form-divider {
  display:flex;
  align-items:center;
  gap:12px;
  margin:2px 0 -3px;
  color:#8a96a3;
  font-size:11px;
  font-weight:700
}
.form-divider::after {
  content:'';
  height:1px;
  background:var(--line);
  flex:1
}
.app-shell {
  display:flex;
  min-height:100vh
}
.sidebar {
  display:flex;
  flex-direction:column;
  width:246px;
  min-width:246px;
  padding:28px 16px 20px;
  background:#fff;
  border-right:1px solid var(--line);
  position:sticky;
  top:0;
  height:100vh;
  z-index:20
}
.sidebar__top {
  padding:0 11px 39px
}
.sidebar__label {
  color:#9fa9b4;
  font-size:9px;
  font-weight:800;
  letter-spacing:.18em;
  padding:0 12px;
  margin-bottom:15px
}
.sidebar__nav {
  display:grid;
  align-content:start;
  gap:5px;
  min-height:200px
}
.sidebar__link,.sidebar__add,.sidebar__settings {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  border-radius:10px;
  padding:6px 10px;
  color:#4d6279;
  font-weight:700;
  font-size:12px
}
.sidebar__link:hover,.sidebar__settings:hover,.sidebar__add:hover {
  background:#f3f4f6
}
.sidebar__link.is-active,.sidebar__settings.is-active {
  background:#eceef1;
  color:#253d58
}
.sidebar__link-text {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.sidebar__arrow {
  margin-left:auto;
  font-size:14px;
  color:#627c99;
  opacity:0
}
.sidebar__link:hover .sidebar__arrow,.sidebar__link.is-active .sidebar__arrow {
  opacity:1
}
.profile-avatar {
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  min-width:27px;
  border-radius:8px;
  background:#dee3e9;
  color:#3f536a;
  font-size:12px
}
.profile-avatar--1 {
  background:#eee8f8;
  color:#55749b
}
.profile-avatar--2 {
  background:#f9ecdc;
  color:#b67e43
}
.profile-avatar--3 {
  background:#e3eff7;
  color:#537b9e
}
.sidebar__add {
  color:#4c6888;
  font-size:11px;
  padding-left:14px
}
.sidebar__add span {
  font-size:19px;
  font-weight:400
}
.sidebar__bottom {
  margin-top:auto
}
.sidebar-tip {
  padding:17px 15px;
  margin-bottom:18px;
  border-radius:13px;
  background:#eff1f4;
  background-image:radial-gradient(circle at 100% 0%,#e1e5ea,transparent 45%)
}
.sidebar-tip__icon {
  display:block;
  color:#4c6b8f;
  font-size:19px;
  margin-bottom:11px
}
.sidebar-tip strong {
  display:block;
  color:#374658;
  font-size:12px;
  line-height:1.35
}
.sidebar-tip p {
  font-size:10px;
  line-height:1.5;
  color:#637d9a;
  margin:7px 0 0
}
.sidebar__settings {
  padding:10px 13px
}
.sidebar__settings span {
  font-size:17px
}
.app-content {
  min-width:0;
  flex:1
}
.topbar {
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 clamp(22px,3.2vw,52px);
  border-bottom:1px solid var(--line);
  background:#fff
}
.topbar__location {
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  color:#6a839f;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.topbar__right {
  display:flex;
  align-items:center;
  gap:24px
}
.topbar__today {
  font-size:11px;
  color:#8793a1;
  font-weight:700
}
.topbar__logout {
  padding:0;
  border:0;
  background:none;
  color:#384f69;
  font-size:11px;
  font-weight:800
}
.topbar__logout span {
  margin-left:4px
}
.mobile-menu {
  display:none
}
.main-content {
  max-width:1600px;
  margin:auto;
  padding:33px clamp(22px,3.2vw,52px) 64px
}
.page-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:22px;
  margin-bottom:27px
}
.page-heading h1 {
  font-size:clamp(31px,3vw,42px);
  letter-spacing:-.055em;
  line-height:1.12;
  margin:0 0 8px;
  font-weight:650
}
.heading-dot {
  color:#7e90a5
}
.page-heading p:not(.eyebrow) {
  color:#7f8c9b;
  margin:0;
  font-size:12px
}
.month-control {
  display:flex;
  align-items:center;
  gap:10px;
  padding:5px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:11px;
  box-shadow:var(--shadow);
  white-space:nowrap
}
.month-control a {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:7px;
  color:#445972;
  font-size:16px
}
.month-control a:hover {
  background:#eff1f3
}
.month-control span {
  min-width:115px;
  text-align:center;
  font-weight:700;
  font-size:11px
}
.notice-bar {
  padding:12px 16px;
  margin-bottom:18px;
  border-radius:10px;
  background:#fff4df;
  color:#866223;
  font-size:12px;
  font-weight:600
}
.summary-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:15px;
  margin-bottom:19px
}
.summary-card {
  min-height:162px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:15px;
  padding:18px 20px;
  box-shadow:var(--shadow)
}
.summary-card__icon {
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border-radius:9px;
  margin-bottom:14px;
  font-size:16px
}
.summary-card__icon--blue {
  background:#e8f1f8;
  color:#6897b7
}
.summary-card__icon--purple {
  background:#eeeafd;
  color:#9678c1
}
.summary-card__icon--mint {
  background:#e7ebf0;
  color:#617b98
}
.summary-card__icon--white {
  background:rgba(255,255,255,.16);
  color:#fff
}
.summary-card p {
  margin:0 0 3px;
  color:#738aa5;
  font-size:11px;
  font-weight:600
}
.summary-card strong {
  display:block;
  font-size:24px;
  letter-spacing:-.035em;
  line-height:1.15
}
.summary-card small {
  display:block;
  margin-top:7px;
  color:#9aa4b0;
  font-size:10px
}
.summary-card--accent {
  background:#30465f;
  border-color:#30465f;
  color:#fff;
  background-image:radial-gradient(circle at 100% 0,rgba(182,236,193,.17),transparent 50%)
}
.summary-card--accent p,.summary-card--accent small {
  color:#d1d6dc
}
.workspace-grid {
  display:grid;
  grid-template-columns:minmax(0,1.58fr) minmax(290px,.8fr);
  gap:18px;
  align-items:start
}
.surface {
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow)
}
.calendar-card,.day-card,.sessions-card,.credit-card,.closing-card,.settings-card {
  padding:22px
}
.section-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:22px
}
.section-heading h2 {
  font-size:18px;
  letter-spacing:-.035em;
  margin:0;
  font-weight:650
}
.section-heading .eyebrow {
  margin-bottom:4px
}
.section-heading__meta {
  font-size:10px;
  color:#8b97a4;
  margin-top:10px;
  white-space:nowrap
}
.section-icon {
  display:grid;
  place-items:center;
  min-width:31px;
  width:31px;
  height:31px;
  border-radius:9px;
  background:#eceef1;
  color:#627b98;
  font-size:18px
}
.section-icon--mint {
  background:#eceff3
}
.section-icon--amber {
  background:#fff2de;
  color:#be8e49
}
.pill {
  padding:6px 10px;
  border-radius:20px;
  font-size:9px;
  font-weight:800;
  white-space:nowrap
}
.pill--open {
  background:#e9ecf0;
  color:#3c5b7e
}
.pill--closed {
  background:#e9ebf0;
  color:#6f7884
}
.calendar-grid {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:5px
}
.calendar-weekday {
  text-align:center;
  color:#9aa4b0;
  font-size:9px;
  font-weight:800;
  padding:5px 0 10px
}
.calendar-day {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:space-between;
  min-height:63px;
  padding:8px;
  border:1px solid #edeef0;
  border-radius:9px;
  background:#fff;
  transition:background .15s,border-color .15s
}
.calendar-day:hover {
  background:#f2f3f5;
  border-color:#afb8c4
}
.calendar-day.is-selected {
  background:#ebeef1;
  border-color:#8e9baa;
  box-shadow:inset 0 0 0 1px #8e9baa
}
.calendar-day--blank {
  border:0;
  background:#fbfbfc
}
.calendar-day--blank:hover {
  background:#fbfbfc
}
.calendar-day__number {
  font:600 11px Roboto,Arial,sans-serif
}
.calendar-day.is-today .calendar-day__number {
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#37506d;
  color:#fff;
  margin:-4px
}
.calendar-day__dots {
  display:flex;
  gap:3px;
  align-items:center;
  min-height:7px
}
.calendar-day__dots small {
  color:#607996;
  font-size:9px
}
.kind-dot,.legend-dot {
  display:inline-block;
  width:7px;
  height:7px;
  min-width:7px;
  border-radius:50%;
  background:#9dbad1
}
.kind-dot--solo,.legend-dot--solo {
  background:#95afd0
}
.kind-dot--duo,.legend-dot--duo {
  background:#8696a8
}
.legend-dot--selected {
  background:#ebeef1;
  border:1px solid #8e9baa
}
.calendar-legend {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:18px;
  color:#8894a1;
  font-size:10px
}
.calendar-legend span {
  display:flex;
  align-items:center;
  gap:6px
}
.day-card__weekday {
  font:600 12px Roboto,Arial,sans-serif;
  color:#a0aab5;
  margin-left:5px
}
.day-sessions {
  display:grid;
  gap:8px;
  margin-bottom:18px
}
.day-sessions__empty {
  padding:12px;
  background:#f8f9fa;
  border:1px dashed #e1e4e7;
  border-radius:10px;
  color:#98a2ae;
  font-size:11px;
  margin:0
}
.day-session {
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px;
  border-radius:10px;
  background:#f8f9fa
}
.day-session>div {
  min-width:0;
  flex:1
}
.day-session strong {
  display:block;
  font:650 12px Roboto,Arial,sans-serif
}
.day-session small {
  display:block;
  color:#939eab;
  font-size:10px
}
.day-session b {
  font:650 11px Roboto,Arial,sans-serif;
  white-space:nowrap
}
.day-form {
  gap:12px
}
.day-form .form-divider {
  margin:0 0 2px
}
.day-form label {
  font-size:11px
}
.day-form input,.day-form select {
  height:40px
}
.optional {
  color:#a8b0ba;
  font-weight:500;
  font-size:10px
}
.bottom-grid {
  display:grid;
  grid-template-columns:minmax(0,1.58fr) minmax(290px,.8fr);
  gap:18px;
  align-items:start;
  margin-top:18px
}
.side-stack {
  display:grid;
  gap:18px
}
.count-badge {
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:7px;
  margin-left:4px;
  background:#eceef0;
  color:#59708b;
  font:700 10px Roboto,Arial,sans-serif;
  vertical-align:2px
}
.empty-list {
  text-align:center;
  padding:30px 10px;
  color:#8d98a5
}
.empty-list>span {
  display:block;
  font-size:38px;
  line-height:1;
  color:#a9b4c0
}
.empty-list strong {
  display:block;
  color:#47596e;
  margin:7px 0 4px
}
.empty-list p {
  margin:0;
  font-size:11px
}
.session-list {
  display:grid
}
.session-row {
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:12px 0;
  border-top:1px solid #eff0f2
}
.session-row:first-child {
  border-top:0;
  padding-top:0
}
.session-row__date {
  display:grid;
  place-items:center;
  align-content:center;
  width:40px;
  height:44px;
  border-radius:9px;
  background:#f2f3f4
}
.session-row__date strong {
  font-size:16px;
  line-height:1
}
.session-row__date span {
  font-size:9px;
  color:#98a2ae;
  text-transform:uppercase
}
.session-row__main {
  min-width:0
}
.session-row__title {
  display:flex;
  align-items:center;
  gap:6px
}
.session-row__title strong {
  font:650 12px Roboto,Arial,sans-serif
}
.session-row__time {
  font-size:10px;
  color:#939eab
}
.session-row__main p {
  margin:3px 0;
  color:#738aa5;
  font-size:10px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.status-tag {
  display:inline-block;
  margin-top:4px;
  padding:3px 7px;
  border-radius:5px;
  font-size:9px;
  font-weight:700
}
.status-tag--planned {
  background:#f0f2f4;
  color:#7088a3
}
.status-tag--done {
  background:#eaedf1;
  color:#4a6686
}
.status-tag--missed {
  background:#fff0e7;
  color:#bc815b
}
.status-tag--replace {
  background:#eaf0fc;
  color:#6c8cc1
}
.status-tag--discount {
  background:#f1ebfa;
  color:#9176b0
}
.session-row__actions {
  align-self:start;
  text-align:right
}
.session-row__actions>strong {
  display:block;
  font-size:12px;
  white-space:nowrap
}
.session-details {
  margin-top:4px
}
.session-details summary {
  list-style:none;
  font-size:10px;
  color:#586f89;
  font-weight:700;
  cursor:pointer
}
.session-details summary::-webkit-details-marker {
  display:none
}
.session-details__panel {
  position:absolute;
  right:0;
  top:calc(100% - 5px);
  z-index:10;
  width:min(320px,90vw);
  padding:18px;
  border:1px solid #dde1e5;
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 36px rgba(29,68,52,.15);
  text-align:left
}
.session-details__panel .form-stack {
  gap:11px
}
.session-details__panel form+form {
  margin-top:12px
}
.session-details__panel label {
  font-size:10px
}
.session-details__panel input,.session-details__panel select {
  height:37px
}
.session-details__panel .text-button {
  font-size:10px
}
.session-row__status-form {
  grid-column:2/4;
  display:flex;
  gap:6px;
  max-width:300px;
  margin-top:2px
}
.session-row__status-form select {
  height:28px;
  padding:0 7px;
  font-size:10px;
  border-radius:6px
}
.small-button {
  height:28px;
  padding:0 10px;
  border:0;
  border-radius:6px;
  background:#eceef1;
  color:#354d68;
  font-size:10px;
  font-weight:800
}
.credit-card>p,.closing-card>p {
  font-size:11px;
  line-height:1.65;
  color:#8995a2;
  margin:-6px 0 18px
}
.credit-card__balance {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  background:#f1f3f6;
  border-radius:10px;
  padding:13px;
  margin-bottom:17px
}
.credit-card__balance span {
  font-size:10px;
  color:#5e7692
}
.credit-card__balance strong {
  font-size:16px;
  white-space:nowrap
}
.credit-form label {
  font-size:10px
}
.credit-form .button {
  margin-top:10px
}
.closing-card__stats {
  display:grid;
  gap:8px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:13px 0;
  margin:0 0 16px
}
.closing-card__stats span {
  display:flex;
  justify-content:space-between;
  color:#8793a1;
  font-size:10px
}
.closing-card__stats strong {
  color:#394758;
  font-size:11px
}
.closing-card form+form {
  margin-top:8px
}
.closing-card .helper-text {
  margin-top:9px
}
.closed-message {
  padding:11px;
  background:#edeff2;
  color:#4b6480;
  border-radius:8px;
  font-size:11px;
  font-weight:700;
  margin-bottom:10px
}
.settings-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px
}
.settings-card {
  min-height:335px
}
.settings-card>.muted {
  font-size:12px;
  line-height:1.7;
  margin-top:-10px
}
.settings-card .form-stack {
  margin-top:18px
}
.settings-card__footer {
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line)
}
.archived-list {
  padding:21px;
  margin-top:18px
}
.archived-list h2 {
  font-size:17px
}
.archived-list__items {
  display:flex;
  flex-wrap:wrap;
  gap:8px
}
.archived-list__items a {
  padding:8px 10px;
  border-radius:8px;
  background:#f5f6f8;
  font-size:11px;
  color:#47596e;
  font-weight:700
}
.archived-list__items a span {
  margin-left:7px
}
.empty-state {
  max-width:530px;
  padding:40px 0
}
.empty-state h1 {
  font-size:38px
}
.empty-state p {
  color:var(--muted)
}
.account-card {
  padding:22px;
  margin-top:18px
}
.account-card>.muted {
  font-size:11px
}
.account-card__form {
  display:grid;
  grid-template-columns:repeat(3,minmax(150px,1fr)) auto;
  gap:12px;
  align-items:end;
  max-width:1000px
}
.account-card__form .button {
  white-space:nowrap
}
.fatal {
  max-width:500px;
  margin:15vh auto;
  padding:28px
}
.fatal h1 {
  font-size:30px
}
.workspace-grid.workspace-grid--bulk {
  grid-template-columns:minmax(0,1fr)
}
.workspace-grid--bulk .day-card {
  display:none
}
.calendar-modes {
  display:flex;
  gap:5px;
  padding:4px;
  margin:-5px 0 20px;
  border-radius:10px;
  background:#f3f4f5;
  overflow-x:auto
}
.calendar-modes a {
  flex:1;
  min-width:max-content;
  padding:9px 11px;
  border-radius:7px;
  color:#627b98;
  font-size:11px;
  font-weight:700;
  text-align:center
}
.calendar-modes a:hover {
  color:#374f6a
}
.calendar-modes a.is-active {
  background:#fff;
  color:#2d445f;
  box-shadow:0 2px 7px rgba(31,71,50,.08)
}
.bulk-form__intro {
  margin:0 0 17px;
  color:#6e86a2;
  font-size:11px;
  line-height:1.6
}
.bulk-form__fields {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(110px,.6fr) minmax(0,1fr);
  gap:11px;
  align-items:start;
  padding:16px;
  margin-bottom:18px;
  border:1px solid #e8eaed;
  border-radius:11px;
  background:#fbfbfc
}
.bulk-form__fields--review {
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.bulk-form__fields label {
  font-size:10px
}
.bulk-form__fields input,.bulk-form__fields select {
  height:40px
}
.bulk-shortcuts {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
  margin-bottom:13px
}
.bulk-shortcuts span {
  margin-right:5px;
  color:#8d98a5;
  font-size:10px;
  font-weight:700
}
.bulk-shortcuts button {
  min-width:32px;
  padding:5px 7px;
  border:1px solid #dfe2e6;
  border-radius:7px;
  background:#fff;
  color:#4a5e74;
  font-size:10px;
  font-weight:700
}
.bulk-shortcuts button:hover {
  background:#edeff2;
  border-color:#aab4c0
}
.bulk-shortcuts button:disabled {
  opacity:.38;
  cursor:not-allowed
}
.bulk-shortcuts button[aria-pressed="true"] {
  background:#e4e8ec;
  border-color:#8e9cad;
  color:#30445b
}
.bulk-shortcuts .bulk-shortcuts__clear {
  margin-left:auto;
  border-color:transparent;
  color:#7f8c9a
}
.calendar-day--selectable {
  position:relative;
  cursor:pointer;
  user-select:none
}
.calendar-day--selectable:has(.calendar-day__checkbox:checked) {
  background:#e6eaee;
  border-color:#5a7593;
  box-shadow:inset 0 0 0 1px #5a7593
}
.calendar-day__checkbox {
  position:absolute;
  top:6px;
  right:6px;
  width:16px;
  height:16px;
  margin:0;
  accent-color:#395575;
  cursor:pointer
}
.calendar-day--unavailable {
  background:#f8f9fa;
  color:#9ca6b1;
  cursor:not-allowed
}
.calendar-day--unavailable:hover {
  background:#f8f9fa;
  border-color:#edeef0
}
.bulk-form__footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding-top:18px;
  margin-top:17px;
  border-top:1px solid var(--line)
}
.bulk-form__footer>span {
  color:#5b738f;
  font-size:11px;
  font-weight:700
}
@media(max-width:1200px) {
  .sidebar {
    width:214px;
    min-width:214px
  }
  .summary-grid {
    gap:10px
  }
  .summary-card {
    padding:16px
  }
  .summary-card strong {
    font-size:21px
  }
  .workspace-grid,.bottom-grid {
    grid-template-columns:minmax(0,1.3fr) minmax(265px,.8fr)
  }
  .calendar-day {
    min-height:55px
  }
}
@media(max-width:950px) {
  .sidebar {
    width:195px;
    min-width:195px
  }
  .sidebar .brand {
    font-size:13px
  }
  .main-content {
    padding:26px 22px 50px
  }
  .summary-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .workspace-grid,.bottom-grid {
    grid-template-columns:1fr
  }
  .calendar-day {
    min-height:70px
  }
  .day-card {
    max-width:none
  }
  .side-stack {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .account-card__form {
    grid-template-columns:1fr 1fr
  }
  .account-card__form .button {
    grid-column:1/3
  }
}
@media(max-width:700px) {
  .auth-shell {
    grid-template-columns:1fr
  }
  .auth-story {
    min-height:250px;
    padding:25px
  }
  .auth-story__content {
    margin:30px 0 10px
  }
  .auth-story h1 {
    font-size:36px
  }
  .auth-story__content>p:not(.eyebrow) {
    font-size:12px;
    line-height:1.5
  }
  .auth-points,.auth-story__footer {
    display:none
  }
  .auth-main {
    padding:26px
  }
  .auth-card {
    padding:0
  }
  .auth-card__spark {
    display:none
  }
  .auth-card h2 {
    font-size:29px
  }
  .sidebar {
    position:fixed;
    transform:translateX(-100%);
    transition:transform .25s;
    width:250px;
    min-width:250px;
    box-shadow:20px 0 40px rgba(20,50,35,.12)
  }
  .sidebar.is-open {
    transform:translateX(0)
  }
  .mobile-menu {
    display:grid;
    margin-right:10px
  }
  .topbar {
    height:58px;
    padding:0 16px;
    justify-content:flex-start
  }
  .topbar__right {
    margin-left:auto;
    gap:12px
  }
  .topbar__today {
    display:none
  }
  .topbar__location {
    font-size:9px
  }
  .main-content {
    padding:23px 15px 45px
  }
  .page-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:16px
  }
  .page-heading h1 {
    font-size:32px
  }
  .month-control {
    align-self:stretch;
    justify-content:space-between
  }
  .summary-grid {
    gap:9px;
    margin-bottom:13px
  }
  .summary-card {
    min-height:130px;
    padding:13px
  }
  .summary-card__icon {
    margin-bottom:9px
  }
  .summary-card strong {
    font-size:19px
  }
  .summary-card p,.summary-card small {
    font-size:9px
  }
  .workspace-grid,.bottom-grid {
    gap:13px
  }
  .bottom-grid {
    margin-top:13px
  }
  .calendar-card,.day-card,.sessions-card,.credit-card,.closing-card,.settings-card {
    padding:17px
  }
  .calendar-day {
    min-height:58px;
    padding:5px
  }
  .calendar-weekday {
    font-size:8px
  }
  .calendar-grid {
    gap:3px
  }
  .calendar-day__number {
    font-size:10px
  }
  .side-stack,.settings-grid {
    grid-template-columns:1fr
  }
  .section-heading__meta {
    display:none
  }
  .account-card__form {
    grid-template-columns:1fr
  }
  .account-card__form .button {
    grid-column:auto
  }
}
@media(max-width:380px) {
  .two-fields {
    grid-template-columns:1fr
  }
  .calendar-day {
    min-height:47px
  }
  .calendar-card {
    padding:13px
  }
  .calendar-day__dots .kind-dot {
    width:5px;
    height:5px;
    min-width:5px
  }
  .summary-card strong {
    font-size:17px
  }
}

/* Cabeçalho e resumo compactos */
.sidebar__link.is-active,.sidebar__settings.is-active {
  background:#dee4e9;
  color:#1d324b;
  box-shadow:inset 3px 0 #334e6d;
  font-weight:800
}
.topbar__location {
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
  overflow:visible;
  letter-spacing:normal
}
.topbar__label { color:#6a839f; font-size:10px; font-weight:800; letter-spacing:.1em; white-space:nowrap }
.topbar__active-name {
  display:block;
  max-width:min(40vw,350px);
  padding:7px 13px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  border:1px solid #b6c0cc;
  border-radius:999px;
  background:#e9ecf0;
  color:#1e354f;
  font-size:13px;
  font-weight:800;
  letter-spacing:0
}
.summary-grid { gap:10px; margin-bottom:14px }
.summary-card { min-height:118px; padding:14px 16px; border-radius:12px }
.summary-card__icon { width:25px; height:25px; margin-bottom:9px; border-radius:7px; font-size:13px }
.summary-card strong { font-size:21px }
.summary-card small { margin-top:4px }
.calendar-card,.day-card,.sessions-card,.credit-card,.closing-card,.settings-card { padding:18px }
.section-heading { margin-bottom:17px }
.section-icon { min-width:27px; width:27px; height:27px; font-size:16px }
.export-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin:-8px 0 15px }
.export-actions>span { margin-right:5px; color:#5b738f; font-size:11px; font-weight:700 }
.export-actions .button { min-height:35px; padding:8px 12px; font-size:11px }
.export-error { max-width:460px; margin:12vh auto; padding:30px }
.export-error h1 { font-size:26px; line-height:1.2 }
.export-error p:not(.eyebrow) { color:var(--ink-soft) }
@media(max-width:700px) {
  .topbar__location { gap:5px }
  .topbar__label { display:none }
  .topbar__active-name { max-width:49vw; padding:6px 10px; font-size:11px }
  .summary-card { min-height:105px; padding:11px 12px }
  .summary-card__icon { width:22px; height:22px; margin-bottom:6px }
  .summary-card strong { font-size:17px }
  .calendar-card,.day-card,.sessions-card,.credit-card,.closing-card,.settings-card { padding:15px }
  .export-actions { justify-content:flex-start; margin:-4px 0 13px }
  .export-actions>span { width:100% }
  .export-error { margin:10vh 16px; padding:24px }
}
@media(max-width:700px) {
  .bulk-form__fields,.bulk-form__fields--review {
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:12px
  }
  .bulk-form__fields label:last-child {
    grid-column:1/-1
  }
  .bulk-shortcuts span {
    width:100%
  }
  .calendar-modes a {
    font-size:10px;
    padding:8px
  }
  .calendar-day__checkbox {
    width:14px;
    height:14px;
    top:5px;
    right:5px
  }
  .bulk-form__footer {
    align-items:stretch;
    flex-direction:column
  }
  .bulk-form__footer .button {
    width:100%
  }
}
@media(max-width:380px) {
  .bulk-form__fields,.bulk-form__fields--review {
    grid-template-columns:1fr
  }
  .bulk-form__footer {
    align-items:stretch;
    flex-direction:column
  }
}

/* Direção visual do produto: hierarquia clara e leitura confortável. */
:root {
  --ink:#1b2d3d;
  --ink-soft:#42576b;
  --muted:#546a83;
  --line:#dfe2e5;
  --bg:#f5f7fb;
  --green:#2f6391;
  --green-dark:#244c74;
  --shadow:0 2px 12px rgba(29,68,43,.035)
}
body { font-size:15px }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid #6985a4;
  outline-offset:3px
}
.sidebar { width:228px; min-width:228px; padding:24px 14px 18px }
.sidebar__top { padding:0 8px 32px }
.sidebar__label { color:#59708a; font-size:11px; letter-spacing:.08em; padding:0 11px; margin-bottom:10px }
.sidebar__nav { min-height:0 }
.sidebar__link,.sidebar__add,.sidebar__settings { min-height:46px; font-size:13px; padding:8px 10px }
.sidebar-tip { padding:16px; background:#f2f4f6; background-image:none }
.sidebar-tip strong { font-size:13px }
.sidebar-tip p { font-size:12px; line-height:1.45 }
.topbar { height:66px }
.main-content { padding:32px clamp(20px,3vw,46px) 64px }
.page-heading--dashboard { align-items:center; margin-bottom:18px }
.page-heading--dashboard h1 { margin-bottom:6px; font-size:clamp(32px,3vw,42px); font-weight:750; letter-spacing:-.045em }
.page-heading--dashboard p:not(.eyebrow) { color:var(--ink-soft); font-size:14px; line-height:1.45; max-width:540px }
.page-heading__actions { display:flex; flex-direction:column; align-items:flex-end; gap:8px }
.month-control { box-shadow:none }
.month-control a { width:35px; height:35px }
.month-control span { font-size:13px; min-width:142px }
.export-actions { align-items:center; margin:0; gap:7px }
.export-actions>span { font-size:12px; color:var(--ink-soft) }
.export-actions .button { min-height:34px; padding:7px 13px; font-size:12px }
.month-overview { display:grid; grid-template-columns:minmax(220px,270px) 1fr; min-height:130px; margin-bottom:18px; overflow:hidden; border:1px solid #d4d9de; border-radius:16px; background:#eceff2 }
.month-overview__total { display:flex; flex-direction:column; justify-content:center; padding:20px 24px; background:var(--green); color:#fff }
.month-overview__total span { font-size:14px; font-weight:650 }
.month-overview__total strong { margin:2px 0; font-size:clamp(29px,2.7vw,36px); line-height:1.1; letter-spacing:-.035em }
.month-overview__total small { color:#dde1e6; font-size:12px }
.month-overview__numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; padding:18px 22px }
.month-overview__numbers>div { display:flex; flex-direction:column; gap:6px; min-width:0; padding:8px 18px; border-left:1px solid #d4d9de }
.month-overview__numbers>div:first-child { border-left:0 }
.month-overview__numbers span { color:var(--ink-soft); font-size:13px; line-height:1.3 }
.month-overview__numbers strong { font-size:clamp(17px,1.6vw,23px); line-height:1.1; white-space:nowrap; letter-spacing:-.025em }
.workflow-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-bottom:18px }
.workflow-guide__step { display:flex; align-items:center; gap:12px; min-width:0; padding:12px 15px; border:1px solid transparent; border-radius:12px; color:var(--ink-soft); transition:background .2s,border-color .2s }
.workflow-guide__step:hover { background:#f0f1f3; border-color:#d6dbe0 }
.workflow-guide__step.is-current { background:#eaedf0; border-color:#c6ced8; color:var(--ink) }
.workflow-guide__number { display:grid; place-items:center; width:31px; height:31px; min-width:31px; border-radius:50%; background:#e1e4e8; color:#2f6391; font-size:14px; font-weight:800 }
.workflow-guide__step.is-current .workflow-guide__number { background:var(--green); color:#fff }
.workflow-guide__step strong { display:block; font-size:15px; line-height:1.2 }
.workflow-guide__step small { display:block; margin-top:3px; color:var(--muted); font-size:12px; line-height:1.3 }
.surface { box-shadow:var(--shadow) }
.calendar-card,.day-card,.sessions-card,.credit-card,.closing-card,.settings-card { padding:20px }
.section-heading { margin-bottom:18px }
.section-heading h2 { font-size:20px; font-weight:700; letter-spacing:-.03em }
.eyebrow { color:#40556d; font-size:11px; letter-spacing:.1em }
.pill { font-size:11px; padding:7px 11px }
.calendar-modes { margin-bottom:20px; padding:4px; background:#f2f3f4 }
.calendar-modes a { min-height:38px; font-size:13px; padding:9px 10px }
.calendar-weekday { color:#576d87; font-size:11px; letter-spacing:.02em; padding:7px 0 9px }
.calendar-grid { gap:6px }
.calendar-day { min-height:89px; padding:9px; border-color:#e2e5e9; border-radius:9px }
.calendar-day__number { font-size:14px; font-weight:700 }
.calendar-day__sessions { display:flex; flex-direction:column; justify-content:center; gap:3px; width:100%; flex:1; padding:4px 0 }
.calendar-day__session { display:flex; flex-direction:column; gap:1px; width:100%; padding:4px 6px; overflow:hidden; border-radius:5px; background:#e7eaee; color:#293d54; font-size:10px; font-weight:750; line-height:1.15; white-space:nowrap; text-overflow:ellipsis }
.calendar-day__session--solo { background:#e6f0f9; color:#385d88 }
.calendar-day__session small,.calendar-day__sessions>small { font-size:9px; font-weight:600 }
.calendar-day__dots { display:none }
.calendar-legend { font-size:12px }
.bulk-form__intro,.credit-card>p,.closing-card>p { color:var(--ink-soft); font-size:14px; line-height:1.5 }
.bulk-form__fields label { font-size:13px }
.bulk-form__fields input,.bulk-form__fields select { height:46px }
.bulk-shortcuts { gap:7px; margin-bottom:17px }
.bulk-shortcuts span { color:var(--ink-soft); font-size:12px }
.bulk-shortcuts button { min-width:39px; min-height:36px; padding:6px 8px; font-size:12px }
.calendar-day__checkbox { width:16px; height:16px }
label { font-size:13px }
input,select { height:46px; font-size:14px }
label small,.helper-text { color:var(--muted); font-size:12px }
.topbar__label,.section-heading__meta { color:var(--muted) }
.status-tag--planned { color:#4b5f75 }
.button { font-size:13px }
.day-sessions__empty { font-size:13px; line-height:1.45 }
.day-card,.closing-card { scroll-margin-top:16px }
.day-session strong,.session-row__title strong { font-size:14px }
.day-session small,.session-row__time { font-size:12px }
.day-session b,.session-row__actions>strong { font-size:13px }
.session-row__date span,.session-row__main p { font-size:11px }
.status-tag { font-size:11px }
.session-row__status-form select { font-size:13px }
.sidebar__link.is-active,.sidebar__settings.is-active { background:#e4e8ec }

@media(max-width:1200px) {
  .sidebar { width:205px; min-width:205px }
  .month-overview { grid-template-columns:220px 1fr }
  .month-overview__numbers { padding:10px }
  .month-overview__numbers>div { padding:7px 10px }
  .calendar-day { min-height:78px }
  .calendar-day__session small { display:none }
}
@media(max-width:950px) {
  .sidebar { width:190px; min-width:190px }
  .page-heading--dashboard { align-items:flex-start }
  .workflow-guide__step { padding:10px }
  .workflow-guide__step small { display:none }
  .month-overview { grid-template-columns:210px 1fr }
  .month-overview__numbers span { font-size:12px }
  .calendar-day { min-height:70px }
  .calendar-day__sessions { display:none }
  .calendar-day__dots { display:flex }
}
@media(max-width:700px) {
  .auth-shell { grid-template-rows:auto 1fr; align-content:start }
  .auth-story { min-height:0; padding:20px 24px 22px }
  .auth-story__content { margin:16px 0 0 }
  .auth-story__content .eyebrow,.auth-story__content>p:not(.eyebrow) { display:none }
  .auth-story h1 { max-width:360px; margin:0; font-size:24px; line-height:1.16 }
  .auth-main { place-items:start center; padding:24px }
  .auth-card h2 { font-size:28px }
  .sidebar { width:250px; min-width:250px }
  .main-content { padding:22px 15px 52px }
  .page-heading--dashboard { gap:14px; margin-bottom:16px }
  .page-heading--dashboard h1 { font-size:31px }
  .page-heading--dashboard p:not(.eyebrow) { font-size:13px }
  .page-heading__actions { width:100%; align-items:stretch }
  .month-control { width:100%; justify-content:space-between }
  .month-control a { width:41px; height:41px }
  .export-actions { justify-content:flex-start; gap:8px }
  .export-actions>span { width:auto; margin-right:auto; font-size:11px }
  .export-actions .button { min-height:40px; padding:9px 10px }
  .month-overview { grid-template-columns:1fr; margin-bottom:12px }
  .month-overview__total { padding:16px 18px }
  .month-overview__total strong { font-size:29px }
  .month-overview__numbers { grid-template-columns:repeat(3,minmax(0,1fr)); padding:8px 4px }
  .month-overview__numbers>div { padding:7px 9px; gap:4px }
  .month-overview__numbers span { min-height:30px; font-size:11px }
  .month-overview__numbers strong { font-size:14px }
  .workflow-guide { gap:5px; margin-bottom:12px }
  .workflow-guide__step { gap:6px; padding:8px 6px; flex-direction:column; align-items:flex-start }
  .workflow-guide__number { width:24px; height:24px; min-width:24px; font-size:12px }
  .workflow-guide__step strong { font-size:12px }
  .calendar-card,.day-card,.sessions-card,.credit-card,.closing-card,.settings-card { padding:16px }
  .section-heading h2 { font-size:18px }
  .calendar-modes a { min-height:39px; font-size:12px; padding:8px 6px }
  .calendar-grid { gap:4px }
  .calendar-weekday { font-size:10px }
  .calendar-day { min-height:59px; padding:6px }
  .calendar-day__number { font-size:12px }
  .calendar-day__sessions { display:none }
  .calendar-day__dots { display:flex; min-height:10px }
  .calendar-day__checkbox { width:16px; height:16px }
  .bulk-form__fields,.bulk-form__fields--review { grid-template-columns:1fr }
  .bulk-form__fields label:last-child { grid-column:auto }
}
@media(max-width:390px) {
  .month-overview__numbers>div { padding:7px 6px }
  .month-overview__numbers strong { font-size:12px }
}
@media(max-width:360px) {
  .month-overview__numbers { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .month-overview__numbers>div:last-child { grid-column:1/-1; border-left:0; border-top:1px solid #d4d9de }
  .month-overview__numbers span { min-height:0 }
  .month-overview__numbers strong { font-size:16px }
}

/* Fluxo compacto e seleção clara das modalidades. */
[hidden] { display:none !important }
:root { --ink:#1b2d3d; --ink-soft:#42576b; --muted:#708296; --line:#dfe7ef; --bg:#f5f7fb; --green:#2f6391; --green-dark:#244c74; --mint:#e9f1f8; --shadow:0 3px 16px rgba(35,64,91,.05) }
input:focus,select:focus { border-color:#6b9bc8; box-shadow:0 0 0 3px rgba(57,111,163,.14) }
.auth-story { background:linear-gradient(145deg,#2a4968,#1c3148 72%) }
.auth-story:before,.auth-story:after,.sidebar-tip { background-image:none }
.topbar { height:56px }
.main-content { padding-top:20px }
.page-heading--dashboard { margin-bottom:14px }
.page-heading--dashboard h1 { font-size:clamp(27px,2.65vw,36px); line-height:1.12; margin-bottom:4px }
.page-heading--dashboard p:not(.eyebrow) { font-size:13px }
.page-heading--dashboard .eyebrow { margin-bottom:5px }
.month-overview { min-height:0; grid-template-columns:minmax(180px,220px) 1fr; margin-bottom:14px; border-color:#dbe6f0; background:#f0f5fa; border-radius:12px }
.month-overview__total { padding:12px 18px }
.month-overview__total span { font-size:12px }
.month-overview__total strong { font-size:clamp(23px,2vw,28px); margin:1px 0 }
.month-overview__total small { font-size:11px }
.month-overview__numbers { padding:7px 10px }
.month-overview__numbers>div { gap:3px; padding:5px 13px; border-color:#dbe6f0 }
.month-overview__numbers span { font-size:11px }
.month-overview__numbers strong { font-size:clamp(15px,1.35vw,19px) }
.workflow-guide { gap:6px; margin-bottom:14px }
.workflow-guide__step { padding:8px 11px; gap:9px }
.workflow-guide__step strong { font-size:13px }
.workflow-guide__step small { font-size:11px; margin-top:1px }
.workflow-guide__number { width:27px; height:27px; min-width:27px; font-size:12px }
.workflow-guide__step:hover { background:#eef4fa; border-color:#d8e4ef }
.workflow-guide__step.is-current { background:#e8f1fa; border-color:#c9dced }
.calendar-day__session { background:#e7f0f8; color:#2a5a82 }
.calendar-day__session--solo { background:#edf1f5; color:#3f5971 }
.choice-fieldset { min-width:0; margin:0; padding:0; border:0 }
.choice-fieldset legend { margin-bottom:9px; color:var(--ink); font-size:13px; font-weight:750 }
.choice-fieldset--prominent { padding:14px; margin:0 0 14px; border:1px solid #d9e5f0; border-radius:12px; background:#f8fbfe }
.choice-fieldset--prominent legend { margin-bottom:0; padding:0 5px; font-size:15px }
.step-label { display:inline-grid; place-items:center; width:22px; height:22px; margin-right:5px; border-radius:50%; background:var(--green); color:#fff; font-size:12px }
.choice-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px }
.choice-card { position:relative; display:flex; align-items:center; gap:10px; min-height:65px; padding:11px 13px; border:1px solid #dce5ee; border-radius:10px; background:#fff; cursor:pointer; transition:border-color .15s,background .15s,box-shadow .15s }
.choice-card:hover { border-color:#9ebcda }
.choice-card:has(input:checked) { border-color:#5d91c0; background:#edf5fc; box-shadow:0 0 0 1px #5d91c0 }
.choice-card:has(input:focus-visible) { outline:2px solid #3672aa; outline-offset:2px }
.choice-card input { flex:none; width:17px; height:17px; margin:0; accent-color:var(--green) }
.choice-card span { display:block; min-width:0 }
.choice-card strong { display:block; font-size:13px; line-height:1.2 }
.choice-card small { display:block; margin-top:3px; color:var(--ink-soft); font-size:11px; line-height:1.25; font-weight:500 }
.bulk-form.is-awaiting-kind .calendar-day--selectable { opacity:.52; cursor:not-allowed }
.bulk-form.is-awaiting-kind .calendar-day--selectable:hover { border-color:var(--line); background:#fff }
.choice-card:only-child { grid-column:1/-1 }
.calendar-day__people { display:block; width:100%; overflow:hidden; color:#315775; font-size:10px; font-weight:700; line-height:1.2; text-overflow:ellipsis; white-space:nowrap }
.calendar-day--selectable .calendar-day__people { padding-right:2px }
.review-intro { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 10px }
.review-intro strong { display:block; color:var(--ink); font-size:15px }
.review-intro p { margin:2px 0 0; color:var(--ink-soft); font-size:12px }
.review-intro .button { flex:none; min-height:34px; padding:7px 11px; font-size:12px }
.review-confirm-all { margin-bottom:14px }
.review-confirm-all .button { width:100%; min-height:43px }
.review-confirmed { margin:0 0 14px; padding:10px 12px; border:1px solid #d6e5f1; border-radius:8px; background:#eef5fb; color:#2a587b; font-size:12px }
.bulk-form__intro { margin-bottom:10px }
@media(max-width:950px) {
  .settings-grid { grid-template-columns:1fr }
  .page-heading--dashboard { align-items:flex-start; flex-direction:column; gap:10px }
  .page-heading__actions { width:100%; flex-direction:row; align-items:center; justify-content:space-between }
  .export-actions>span { display:none }
  .month-overview { grid-template-columns:minmax(160px,195px) 1fr }
  .month-overview__numbers>div { padding:5px 8px }
}
@media(max-width:700px) {
  .topbar { height:52px }
  .main-content { padding-top:15px }
  .page-heading--dashboard { margin-bottom:12px }
  .page-heading--dashboard h1 { font-size:29px }
  .page-heading__actions { flex-direction:row; align-items:center; justify-content:space-between; gap:6px }
  .month-control { width:auto }
  .month-control span { min-width:100px; font-size:11px }
  .month-control a { width:29px; height:32px }
  .export-actions { justify-content:flex-end; gap:4px }
  .export-actions .button { min-height:33px; padding:6px 8px; font-size:11px }
  .month-overview { grid-template-columns:1fr; margin-bottom:11px }
  .month-overview__total { padding:8px 13px }
  .month-overview__total strong { font-size:23px }
  .month-overview__numbers { padding:4px 5px }
  .month-overview__numbers>div { padding:5px 8px }
  .month-overview__numbers span { min-height:0; font-size:10px }
  .month-overview__numbers strong { font-size:13px }
  .workflow-guide { margin-bottom:11px }
  .workflow-guide__step { flex-direction:row; align-items:center; gap:5px; padding:6px 5px }
  .workflow-guide__number { width:22px; height:22px; min-width:22px; font-size:11px }
  .workflow-guide__step strong { font-size:11px }
  .choice-row { grid-template-columns:1fr }
  .choice-card { min-height:56px }
  .review-intro { align-items:flex-start; flex-direction:column }
}

.payment-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 14px;
  padding:12px 16px;
  border:1px solid #d7e4f1;
  border-radius:11px;
  background:#f7fbff;
}
.payment-strip div { display:grid; gap:3px }
.payment-strip strong { color:#203e5c; font-size:13px }
.payment-strip span { color:#58708a; font-size:12px; line-height:1.35 }
.payment-strip form { flex:none }
.payment-strip .button { min-height:36px; font-size:12px }
.export-actions {
  position:relative;
  padding:7px 9px;
  border:1px solid #d6e4f2;
  border-radius:10px;
  background:#f7fbff;
}
.export-actions>span { color:#24466a; font-weight:800 }
.export-actions__hint {
  flex-basis:100%;
  color:#637b94;
  font-size:10px;
  text-align:right;
}
.session-row__context {
  display:block;
  margin-top:5px;
  color:#60768d;
  font-size:11px;
  line-height:1.35;
}
.session-row__context--credit { color:#315f8b; font-weight:700 }
@media(max-width:950px) {
  .bulk-form__fields--review { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .bulk-form__fields--review label:last-child { grid-column:1/-1 }
  .calendar-grid:not(.calendar-grid--bulk) .calendar-day { min-height:82px; padding:5px 3px }
  .calendar-grid:not(.calendar-grid--bulk) .calendar-day__sessions {
    display:flex;
    gap:2px;
    padding:2px 0 0;
    overflow:visible;
  }
  .calendar-grid:not(.calendar-grid--bulk) .calendar-day__session {
    display:block;
    padding:2px;
    font-size:9px;
    line-height:1.14;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .calendar-grid:not(.calendar-grid--bulk) .calendar-day__session small { display:none }
  .calendar-grid--bulk .calendar-day__people {
    display:block;
    max-width:100%;
    font-size:9px;
    line-height:1.15;
    white-space:normal;
    overflow-wrap:anywhere;
  }
}
@media(max-width:700px) {
  .page-heading__intro>p:not(.eyebrow) { display:none }
  .page-heading__actions { flex-wrap:wrap }
  .export-actions { width:100%; justify-content:flex-start; gap:6px }
  .export-actions>span { width:100%; margin:0 }
  .export-actions__hint { text-align:left }
  .export-actions .button { min-height:36px; padding:7px 10px }
  .payment-strip { align-items:center; flex-direction:row; gap:8px; padding:9px 11px }
  .payment-strip div { flex:1 }
  .payment-strip strong { font-size:11px; line-height:1.25 }
  .payment-strip span { display:none }
  .payment-strip form { width:auto; max-width:54% }
  .payment-strip .button { width:auto; min-height:34px; padding:6px 8px; font-size:11px }
  .calendar-grid:not(.calendar-grid--bulk) .calendar-day { min-height:82px; padding:5px 3px }
  .calendar-grid:not(.calendar-grid--bulk) .calendar-day__sessions {
    display:flex;
    gap:2px;
    padding:2px 0 0;
    overflow:visible;
  }
  .calendar-grid:not(.calendar-grid--bulk) .calendar-day__session {
    display:block;
    padding:2px;
    font-size:9px;
    line-height:1.14;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .calendar-grid:not(.calendar-grid--bulk) .calendar-day__session small { display:none }
  .calendar-grid--bulk .calendar-day { min-height:74px; padding:5px 3px }
  .calendar-day__people {
    display:block;
    font-size:9px;
    line-height:1.15;
    white-space:normal;
    overflow-wrap:anywhere;
  }
}

/* Planejamento por pessoa: a escolha acompanha a marcação do calendário. */
.planning-person-picker {
  position:sticky;
  top:8px;
  z-index:8;
  margin:0 0 16px;
  padding:10px 13px 11px;
  border:1px solid #cbdced;
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 20px rgba(32,67,102,.09);
}
.planning-person-picker legend {
  padding:0 6px;
  color:#264765;
  font-size:14px;
  font-weight:800;
}
.planning-person-picker .choice-row { margin-top:6px }
.planning-person-picker .choice-card {
  min-height:52px;
  padding:8px 11px;
  border-color:#d8e4ef;
  background:#f9fbfd;
}
.planning-person-picker .choice-card:has(input:checked) {
  border-color:#4b7cab;
  background:#eaf3fc;
  box-shadow:inset 0 0 0 1px #4b7cab;
}
.planning-person-picker .choice-card strong { font-size:14px }
.planning-person-picker .choice-card small { font-size:11px }
.planning-person-picker__hint {
  margin:8px 0 0;
  color:#4f6e8e;
  font-size:11px;
  line-height:1.35;
}
.planning-calendar-heading { display:grid; gap:4px; margin:0 0 10px }
.planning-calendar-heading strong,.planning-details>strong { color:#294762; font-size:15px }
.planning-calendar-heading small { color:#627b94; font-size:12px; line-height:1.4 }
.planning-form .calendar-day--selectable { justify-content:flex-start; gap:4px }
.planning-form .calendar-day__number { flex:none }
.planning-form .calendar-day__people { flex:none; white-space:normal; overflow-wrap:anywhere; line-height:1.15 }
.planning-form .calendar-day.is-already-attending {
  border-color:#b6d1e9;
  background:#eaf3fc;
}
.planning-form .calendar-day.is-already-attending .calendar-day__people { color:#244f79 }
.planning-form .calendar-day--selectable:has(.calendar-day__checkbox:checked) {
  border-color:#315f8f;
  background:#dcecff;
  box-shadow:inset 0 0 0 1px #315f8f;
}
.planning-details {
  margin-top:18px;
  padding:16px 0 0;
  border-top:1px solid #dce7f1;
}
.planning-details>strong { display:block; margin-bottom:11px }
.planning-details .bulk-form__fields { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:0 }
.planning-details [data-plan-notice-field] { grid-column:1/-1 }
.planning-finish {
  scroll-margin-top:75px;
  margin-top:20px;
  padding:19px;
  border:1px solid #c9dced;
  border-radius:12px;
  background:#eff6fc;
}
.planning-finish__eyebrow { color:#315e88; font-size:11px; font-weight:800; letter-spacing:.08em }
.planning-finish h3 { margin:7px 0; color:#203e5c; font-size:19px }
.planning-finish p { margin:0 0 13px; color:#4b6580; font-size:13px; line-height:1.45 }
.planning-finish__tip { font-size:12px !important }
.planning-finish__share { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 8px }
.planning-finish>small { color:#5a7390; font-size:11px; line-height:1.4 }
@media(max-width:700px) {
  .planning-person-picker { top:8px; padding:9px; margin-bottom:14px }
  .planning-person-picker .choice-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px }
  .planning-person-picker .choice-card { min-height:48px; padding:7px }
  .planning-person-picker .choice-card strong { font-size:12px }
  .planning-person-picker .choice-card small { font-size:10px }
  .planning-person-picker__hint { font-size:10px }
  .planning-details .bulk-form__fields { grid-template-columns:1fr }
  .planning-finish { padding:15px }
  .planning-finish__share .button { flex:1 1 auto; text-align:center }
}

/* Cores por pessoa e ações em lote. A paleta é fixa para manter contraste previsível. */
.person-chip--blue,.person-color-dot--blue,.color-option--blue { --person-ink:#244f79; --person-bg:#e4effa; --person-border:#b8d3ec }
.person-chip--violet,.person-color-dot--violet,.color-option--violet { --person-ink:#614b88; --person-bg:#eee9f8; --person-border:#d5c9ec }
.person-chip--teal,.person-color-dot--teal,.color-option--teal { --person-ink:#17646b; --person-bg:#e2f3f2; --person-border:#b8ddda }
.person-chip--amber,.person-color-dot--amber,.color-option--amber { --person-ink:#795315; --person-bg:#faf0d9; --person-border:#e9d5a5 }
.person-chip--rose,.person-color-dot--rose,.color-option--rose { --person-ink:#8c3e5c; --person-bg:#fae9f0; --person-border:#e9c2d2 }
.person-chip--slate,.person-color-dot--slate,.color-option--slate { --person-ink:#41576d; --person-bg:#eaf0f5; --person-border:#cddbe5 }
.person-chips { display:flex; flex-wrap:wrap; align-items:flex-start; gap:3px; min-width:0; width:100% }
.person-chip { display:inline-block; max-width:100%; overflow:hidden; padding:2px 5px; border:1px solid var(--person-border); border-radius:5px; background:var(--person-bg); color:var(--person-ink); font-size:10px; font-weight:750; line-height:1.2; text-overflow:ellipsis; white-space:nowrap }
.person-chip.is-absent { opacity:.65; text-decoration:line-through }
.calendar-person-legend { margin:0 0 12px }
.calendar-person-legend .person-chips { gap:6px }
.calendar-person-legend .person-chip { padding:4px 7px; font-size:11px }
.person-color-dot { display:inline-block; width:9px; height:9px; margin-right:6px; border-radius:50%; background:var(--person-ink); vertical-align:1px }
.calendar-grid--bulk .person-chips { margin-top:2px }
.calendar-day__session .person-chips { gap:2px }
.calendar-day__session .person-chip { padding:1px 3px; font-size:9px }
.person-color-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px }
.person-color-field { min-width:0; margin:0; padding:0; border:0 }
.person-color-field legend { margin-bottom:7px; color:var(--ink-soft); font-size:12px; font-weight:700 }
.color-options { display:flex; flex-wrap:wrap; gap:6px }
.color-option { position:relative; display:grid; place-items:center; width:28px; height:28px; border:1px solid #d9e3ed; border-radius:8px; background:#fff; cursor:pointer }
.color-option input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer }
.color-option span { width:17px; height:17px; border:1px solid var(--person-border); border-radius:50%; background:var(--person-ink) }
.color-option:has(input:checked) { border-color:var(--person-ink); box-shadow:0 0 0 2px var(--person-border) }
.color-option:has(input:focus-visible) { outline:2px solid #315f8f; outline-offset:3px }
.plan-operation { min-width:0; margin:0 0 15px; padding:0; border:0 }
.plan-operation legend { margin-bottom:8px; color:#425b73; font-size:12px; font-weight:750 }
.plan-operation__choices { display:flex; flex-wrap:wrap; gap:7px }
.plan-operation__choices label { position:relative; display:block; cursor:pointer }
.plan-operation__choices input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer }
.plan-operation__choices span { display:block; min-height:35px; padding:8px 13px; border:1px solid #d5e1ed; border-radius:8px; background:#f8fafc; color:#4b6580; font-size:12px; font-weight:750 }
.plan-operation__choices label:has(input:checked) span { border-color:#6f96ba; background:#e8f2fb; color:#28547d }
.plan-operation__choices label:has(input:disabled) span { opacity:.55; cursor:not-allowed }
.plan-operation__choices label:has(input:focus-visible) span { outline:2px solid #315f8f; outline-offset:2px }
.planning-form .calendar-day--selectable:has(input:disabled),.review-form .calendar-day--selectable:has(input:disabled) { cursor:default }
.planning-form.is-removing .calendar-day--selectable:has(input:checked) { border-color:#5d7287; background:#e7edf3; box-shadow:inset 0 0 0 1px #5d7287 }
.review-form .planning-details { margin-top:18px }
@media(max-width:700px) {
  .person-color-fields { grid-template-columns:1fr; gap:12px }
  .calendar-grid .person-chips { gap:2px }
  .calendar-grid .person-chip { max-width:100%; padding:1px 2px; font-size:8px; overflow-wrap:anywhere; text-overflow:clip; white-space:normal }
  .calendar-grid:not(.calendar-grid--bulk) .person-chip { overflow-wrap:normal; text-overflow:ellipsis; white-space:nowrap }
  .calendar-day__session .person-chip { font-size:8px }
  .plan-operation__choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) }
  .plan-operation__choices label { min-width:0; text-align:center }
  .plan-operation__choices span { padding:8px 5px; font-size:11px }
}
.calendar-grid--bulk .person-chip { max-width:100%; padding:2px; font-size:9px; overflow-wrap:break-word; text-overflow:clip; white-space:normal }
@media(max-width:700px) {
  .calendar-grid--bulk .person-chip { padding:1px; font-size:8px }
}
