/* Stili del control plane: componenti condivisi, pagine e adattamenti responsive. */

:root {
  font:17px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#262620;
  background:#f6f6f5;
  --accent:#737260;
  --muted:#666555;
  --line:#e8e8e4;
  --ink:#262620;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
}

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

button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
}

button:disabled {
  cursor:not-allowed;
  opacity:.45;
}

a {
  color:inherit;
  text-decoration:none;
}

a:hover {
  text-decoration:none;
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid #9e9d8a;
  outline-offset:3px;
}

button,.button {
  border:1px solid transparent;
  border-radius:8px;
  padding:9px 14px;
  background:var(--accent);
  color:white;
  font-weight:600;
  display:inline-flex;
  gap:7px;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}

button:hover,.button:hover {
  filter:brightness(.94);
}

button.secondary,.button.secondary {
  background:#fff;
  border-color:#e2e2dc;
  color:#424238;
}

button.quiet,.button.quiet {
  background:transparent;
  color:#5b5b4c;
  padding:7px 9px;
}

button.danger {
  background:#b3443d;
}

button.small,.button.small {
  font-size:14px;
  padding:6px 10px;
}

.icon {
  width:19px;
  height:19px;
  display:inline-block;
  flex-shrink:0;
  vertical-align:middle;
}

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

.sidebar {
  position:sticky;
  top:0;
  height:100dvh;
  background:#24241e;
  color:#c8c8be;
  padding:30px 17px 20px;
  display:flex;
  flex-direction:column;
}

.brand {
  font-weight:750;
  display:flex;
  gap:10px;
  align-items:center;
  color:#fff;
}

.brand small {
  display:block;
  font-size:12px;
  letter-spacing:1.5px;
  color:#a4a392;
  font-weight:500;
  margin-top:1px;
}

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

.nav a {
  padding:11px 12px;
  display:flex;
  align-items:center;
  gap:12px;
  border-radius:8px;
  font-size:15px;
  font-weight:500;
}

.nav a:hover {
  background:#34332b;
  color:#fff;
}

.nav a.active {
  background:#444338;
  color:#f2f2f0;
}

.nav-label {
  font-size:12px;
  letter-spacing:1.5px;
  color:#969682;
  text-transform:uppercase;
  margin:22px 12px 6px;
}

.nav-label:first-child {
  margin-top:0;
}

.nav .counter {
  margin-left:auto;
  font-size:12px;
  background:#686756;
  padding:1px 6px;
  border-radius:5px;
}

.avatar {
  width:32px;
  height:32px;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  background:#efefeb;
  color:#616051;
  font-weight:650;
  flex-shrink:0;
}

.main {
  min-width:0;
}

.content {
  padding:30px 34px 50px;
}

.eyebrow {
  font-size:12px;
  color:#666555;
  letter-spacing:1.5px;
  text-transform:uppercase;
  font-weight:650;
  margin-bottom:5px;
}

h1 {
  font-size:28px;
  letter-spacing:-.8px;
  font-weight:650;
  margin:0;
  line-height:1.3;
}

h2 {
  font-size:18px;
  font-weight:650;
  margin:0 0 7px;
  letter-spacing:-.2px;
}

h3 {
  font-size:16px;
  margin:0 0 7px;
}

p {
  margin:5px 0 14px;
}

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

.sub {
  font-size:14px;
  color:var(--muted);
}

.tiny {
  font-size:13px;
}

.mono {
  font-variant-numeric:tabular-nums;
  font-family:ui-monospace,Consolas,monospace;
  font-size:14px;
}

.actions {
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}

.spaced {
  justify-content:space-between;
}

.stack {
  display:grid;
  gap:16px;
}

.grid {
  display:grid;
  grid-template-columns:minmax(0,1.75fr) minmax(270px,1fr);
  gap:22px;
}

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

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

.card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:23px;
  min-width:0;
}

.card.flush {
  padding:0;
  overflow:hidden;
}

.card-header {
  padding:20px 23px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid var(--line);
}

.card-header h2 {
  margin:0;
}

.metric {
  transition:box-shadow .15s;
}

.metric:hover {
  box-shadow:0 3px 12px #2c2c250b;
}

.metric-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#666555;
  font-size:14px;
}

.metric-icon {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  background:#f5f5f4;
  border-radius:8px;
  color:#666555;
}

.metric-value {
  font-size:32px;
  letter-spacing:-1px;
  font-weight:650;
  margin:13px 0 2px;
  line-height:1.2;
}

.metric-foot {
  font-size:13px;
  color:#666555;
}

.metric.alert .metric-icon {
  background:#fff3df;
  color:#b58027;
}

.metric.alert .metric-value {
  color:#a16c1e;
}

.pill {
  font-size:12px;
  padding:4px 8px;
  border-radius:6px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-weight:600;
  white-space:nowrap;
  background:#f3f3f1;
  color:#666555;
}

.pill:before {
  content:'';
  width:4px;
  height:4px;
  border-radius:50%;
  background:currentColor;
}

.pill.unassigned,.pill.warning {
  background:#fff4e0;
  color:#9a7028;
}

.pill.awaiting_confirmation,.pill.blue {
  background:#edf2fb;
  color:#5578a6;
}

.pill.appointment_confirmed,.pill.green {
  background:#f1f1ee;
  color:#5c5b4c;
}

.pill.executed {
  background:#f2f2ef;
  color:#666555;
}

.pill.error {
  background:#faedeb;
  color:#b55750;
}

.pill.neutral {
  background:#f5f4f2;
  color:#666555;
}

.table-wrap {
  overflow-x:auto;
}

table {
  border-collapse:collapse;
  width:100%;
  white-space:nowrap;
  text-align:left;
}

th {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.7px;
  font-weight:600;
  color:#666555;
  background:#fafafa;
  padding:12px 20px;
  border-bottom:1px solid var(--line);
}

td {
  padding:16px 20px;
  border-bottom:1px solid #f0f0ed;
  font-size:14px;
}

tbody tr:last-child td {
  border-bottom:0;
}

tbody tr:hover {
  background:#fbfbfa;
}

td .sub {
  font-size:13px;
  margin-top:3px;
  display:block;
}

.address {
  font-weight:550;
  font-size:15px;
}

.cell-link {
  display:block;
}

.cell-link:hover {
  color:var(--accent);
}

.table-footer {
  padding:13px 20px;
  background:#fefefd;
  font-size:13px;
  color:#666555;
  border-top:1px solid var(--line);
}

.toolbar {
  display:flex;
  gap:12px;
  margin-bottom:18px;
  align-items:center;
}

.search {
  max-width:330px;
  position:relative;
  flex:1;
}

.search input {
  padding-left:36px;
}

.search .icon {
  position:absolute;
  left:11px;
  top:11px;
  color:#666555;
}

.toolbar select {
  width:auto;
  min-width:180px;
}

.notice {
  background:#fff7e9;
  border:1px solid #f1e3c8;
  border-radius:9px;
  padding:14px 16px;
  color:#987337;
  font-size:14px;
  margin-bottom:18px;
}

.notice.error {
  background:#fcf1ef;
  border-color:#efd8d3;
  color:#a65145;
}

.notice.info {
  background:#f4f4f1;
  border-color:#e6e6e2;
  color:#71715f;
}

.notice p {
  margin:4px 0 0;
}

.attention-row {
  padding:17px 22px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  border-bottom:1px solid #f0f0ed;
}

.attention-row:last-child {
  border-bottom:0;
}

.attention-icon {
  background:#fff3df;
  border-radius:7px;
  padding:7px;
  color:#b08536;
}

.attention-row .body {
  flex:1;
}

.attention-row strong {
  font-size:14px;
  font-weight:600;
}

.attention-row p {
  font-size:13px;
  color:#666555;
  margin:3px 0 0;
}

.arrow {
  color:#666555;
  font-size:20px;
}

.appointment-row {
  display:flex;
  gap:14px;
  padding:17px 0;
  border-bottom:1px solid #f0f0ed;
}

.appointment-row:last-child {
  border-bottom:0;
}

.date-tile {
  width:42px;
  text-align:center;
  border:1px solid #e6e6e2;
  border-radius:8px;
  padding:5px 3px;
  height:47px;
  flex-shrink:0;
  font-size:19px;
  line-height:1.2;
  font-weight:650;
}

.date-tile small {
  display:block;
  font-size:11px;
  letter-spacing:.6px;
  color:#666555;
  text-transform:uppercase;
  margin-top:2px;
}

.appointment-row p {
  font-size:13px;
  color:#666555;
  margin:2px 0;
}

.appointment-row strong {
  font-size:14px;
}

.tabs {
  display:flex;
  gap:26px;
  border-bottom:1px solid #e5e5e0;
  margin:0 0 23px;
  overflow-x:auto;
}

.tabs a {
  padding:0 0 12px;
  color:#666555;
  white-space:nowrap;
  font-size:14px;
  border-bottom:2px solid transparent;
}

.tabs a.active {
  border-color:var(--accent);
  color:var(--accent);
  font-weight:600;
}

.stepper {
  display:flex;
  padding:20px 23px;
  margin-bottom:22px;
}

.step {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  color:#666555;
}

.step:not(:last-child):after {
  content:'';
  height:1px;
  background:#e8e8e3;
  margin:0 14px;
  flex:1;
}

.step i {
  font-style:normal;
  width:25px;
  height:25px;
  border-radius:50%;
  border:1px solid #e5e5e0;
  display:grid;
  place-items:center;
  font-size:12px;
  flex-shrink:0;
}

.step.done {
  color:#6c6b5a;
}

.step.done i {
  background:#ecece9;
  border-color:#ecece9;
}

.step.current {
  color:#47473c;
  font-weight:600;
}

.step.current i {
  background:#545346;
  border-color:#545346;
  color:white;
}

.person {
  display:flex;
  gap:12px;
  align-items:center;
}

.person p {
  margin:2px 0 0;
  font-size:13px;
  color:#666555;
}

.person strong {
  font-size:15px;
}

.person-card {
  border:1px solid var(--line);
  border-radius:10px;
  padding:17px;
  margin-top:13px;
}

.person-card.confirmed {
  border-color:#cecec4;
  background:#fdfdfc;
}

.person-card .actions {
  margin-top:14px;
}

.facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:19px 22px;
  margin-top:19px;
}

.fact small {
  display:block;
  font-size:12px;
  color:#666555;
  margin-bottom:4px;
}

.fact div {
  font-size:14px;
  overflow-wrap:anywhere;
}

.admin-card {
  background:#fbfbfb;
}

.admin-card button {
  width:100%;
  justify-content:flex-start;
  margin-top:9px;
}

.admin-card h2 {
  display:flex;
  gap:8px;
  align-items:center;
}

.divider {
  height:1px;
  border:0;
  background:var(--line);
  margin:22px 0;
}

.timeline {
  margin-top:15px;
}

.event {
  border-left:1px solid #e6e5e0;
  margin-left:5px;
  padding:0 0 22px 20px;
  position:relative;
  font-size:14px;
}

.event:before {
  content:'';
  position:absolute;
  top:5px;
  left:-4px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#b8b8ab;
  border:2px solid white;
}

.event:last-child {
  padding-bottom:0;
  border-color:transparent;
}

.event small {
  display:block;
  color:#666555;
  font-size:12px;
  margin-top:4px;
}

.empty {
  padding:35px 20px;
  text-align:center;
  color:#666555;
  font-size:14px;
}

.empty .icon {
  display:block;
  margin:0 auto 10px;
  width:26px;
  height:26px;
  color:#666555;
}

.check-row {
  display:flex;
  align-items:start;
  gap:9px;
  font-size:14px;
  color:#666555;
}

.check-row input {
  width:auto;
  margin-top:3px;
}

.mail {
  border:1px solid var(--line);
  border-radius:9px;
  padding:16px;
  margin-top:12px;
}

.mail summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  cursor:pointer;
}

.mail-body {
  white-space:pre-wrap;
  color:#666555;
  font-size:14px;
  border-top:1px solid var(--line);
  padding-top:14px;
  margin-top:15px;
  overflow-wrap:anywhere;
}

.mail .sub {
  margin-top:4px;
}

.mail footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:12px;
}

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

.field {
  display:grid;
  gap:6px;
}

.field label {
  font-size:13px;
  font-weight:600;
  color:#666555;
}

.field small {
  font-size:12px;
  color:#666555;
}

.full {
  grid-column:1/-1;
}

input,select,textarea {
  width:100%;
  background:white;
  border:1px solid #e3e3dd;
  border-radius:7px;
  color:#47463b;
  padding:9px 11px;
  min-width:0;
}

textarea {
  resize:vertical;
  min-height:88px;
}

input[type=checkbox] {
  accent-color:var(--accent);
}

.form-footer {
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:23px;
}

.settings-group {
  margin-bottom:23px;
}

.settings-group h2 {
  margin-bottom:19px;
}

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

.photographers {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.public-shell {
  max-width:550px;
  margin:65px auto;
  padding:0 20px;
}

.public-brand {
  display:flex;
  justify-content:center;
  margin-bottom:30px;
  color:#46453a;
  font-size:25px;
  font-weight:700;
  letter-spacing:-.8px;
}

.public-shell h1 {
  font-size:23px;
}

.public-shell .notice {
  font-size:13px;
}

.public-shell .card {
  padding:30px;
}

.public-foot {
  text-align:center;
  font-size:12px;
  color:#9e9d8a;
  margin-top:20px;
}

.cost-big {
  font-size:44px;
  font-weight:600;
  letter-spacing:-1.5px;
  line-height:1.3;
}

.cost-details {
  display:grid;
  grid-template-columns:1fr auto;
  gap:11px;
  font-size:14px;
  color:#666555;
  margin-top:20px;
}

.cost-details strong {
  color:#545447;
  font-weight:500;
}

.highlight {
  border:1px solid #dad9d2;
  background:#f8f8f7;
  border-radius:9px;
  padding:17px;
  margin:16px 0;
}

.warning-text {
  color:#aa7c37;
}

.link {
  color:var(--accent);
  text-decoration:underline;
}

.reset-card {
  margin-top:24px;
  background:#fcfcfb;
}

dialog {
  border:1px solid #e6e5e0;
  border-radius:15px;
  width:min(620px,calc(100% - 32px));
  padding:0;
  box-shadow:0 24px 90px #1a1a1633;
  color:var(--ink);
  max-height:90dvh;
}

dialog::backdrop {
  background:#21211b65;
  backdrop-filter:blur(3px);
}

.dialog-header {
  padding:22px 27px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
}

.dialog-header h2 {
  font-size:20px;
  margin:0;
}

.dialog-body {
  padding:24px 27px;
}

.dialog-body p {
  color:#666555;
  font-size:14px;
}

.dialog-error {
  color:#ab473e;
  background:#fbeeea;
  padding:10px;
  border-radius:7px;
  font-size:14px;
  margin-bottom:13px;
}

#toast {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  background:#35352d;
  color:#fff;
  border-radius:10px;
  padding:12px 20px;
  box-shadow:0 8px 30px #2c2c2526;
  font-size:14px;
  z-index:10;
  display:none;
  max-width:calc(100vw - 30px);
}

#toast.visible {
  display:block;
}

.breadcrumb {
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:18px;
  font-size:13px;
  color:#666555;
}

.breadcrumb a:hover {
  color:var(--accent);
}

.next-step {
  background:#f8f8f6;
  border-radius:9px;
  padding:15px;
  font-size:14px;
  color:#666555;
  margin-top:18px;
}

.status-dot {
  width:6px;
  height:6px;
  background:#898973;
  border-radius:50%;
  display:inline-block;
  margin-right:5px;
}

.legend {
  padding:16px 22px;
  font-size:13px;
  color:#666555;
  border-top:1px solid var(--line);
}

.overflow {
  overflow:auto;
}

.required {
  color:#a5793e;
}

.nowrap {
  white-space:nowrap;
}

@media(min-width:1600px) {
  .content {
    padding-top:38px;
  }
}

@media(min-width:1600px) {
  .grid {
    gap:26px;
  }
}

@media(min-width:1600px) {
  .card {
    padding:26px;
  }
}

@media(max-width:1100px) {
  .shell {
    grid-template-columns:185px minmax(0,1fr);
  }
}

@media(max-width:1100px) {
  .sidebar {
    padding:25px 12px;
  }
}

@media(max-width:1100px) {
  .brand {
    font-size:21px;
  }
}

@media(max-width:1100px) {
  .content {
    padding:25px 22px;
  }
}

@media(max-width:1100px) {
  .cards {
    gap:10px;
  }
}

@media(max-width:1100px) {
  .metric {
    padding:17px;
  }
}

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

@media(max-width:1100px) {
  .photographers {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:1100px) {
  .settings-group .form-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:1100px) {
  .step {
    font-size:12px;
  }
}

@media(max-width:1100px) {
  .step:not(:last-child):after {
    margin:0 8px;
  }
}

@media(max-width:720px) {
  .shell {
    display:block;
  }
}

@media(max-width:720px) {
  .sidebar {
    position:static;
    height:auto;
    padding:17px 16px;
  }
}

@media(max-width:720px) {
  .brand small {
    display:none;
  }
}

@media(max-width:720px) {
  .nav {
    display:flex;
    gap:3px;
  }
}

@media(max-width:720px) {
  .nav a {
    padding:8px 10px;
    font-size:14px;
  }
}

@media(max-width:720px) {
  .nav .icon,.nav-label,.nav .counter {
    display:none;
  }
}

@media(max-width:720px) {
  .content {
    padding:23px 16px;
  }
}

@media(max-width:720px) {
  .cards {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
}

@media(max-width:720px) {
  .metric-value {
    font-size:29px;
  }
}

@media(max-width:720px) {
  h1 {
    font-size:25px;
  }
}

@media(max-width:720px) {
  .card {
    padding:19px;
  }
}

@media(max-width:720px) {
  .card-header {
    padding:17px;
  }
}

@media(max-width:720px) {
  .toolbar {
    flex-wrap:wrap;
  }
}

@media(max-width:720px) {
  .toolbar select {
    flex:1;
    min-width:150px;
  }
}

@media(max-width:720px) {
  .search {
    max-width:none;
    min-width:100%;
  }
}

@media(max-width:720px) {
  .stepper {
    padding:15px 10px;
  }
}

@media(max-width:720px) {
  .step {
    flex-direction:column;
    gap:6px;
    text-align:center;
  }
}

@media(max-width:720px) {
  .step:not(:last-child):after {
    display:none;
  }
}

@media(max-width:720px) {
  .grid.equal,.photographers {
    grid-template-columns:1fr;
  }
}

@media(max-width:720px) {
  .settings-group .form-grid,.form-grid {
    grid-template-columns:1fr;
  }
}

@media(max-width:720px) {
  .full {
    grid-column:auto;
  }
}

@media(max-width:720px) {
  .dialog-header,.dialog-body {
    padding:20px;
  }
}

@media(max-width:720px) {
  .public-shell {
    margin:30px auto;
  }
}

@media(max-width:720px) {
  .public-shell .card {
    padding:24px;
  }
}

.brand {
  font-size:21px;
  letter-spacing:-.5px;
  line-height:1.25;
}

.brand-title {
  display:block;
}

.top-path {
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  min-width:0;
}

.top-path a:hover {
  text-decoration:underline;
}

.top-path [aria-current=page] {
  color:#535246;
  font-weight:600;
}

.photographer-table td {
  white-space:normal;
}

.photographer-table .actions {
  min-width:125px;
}

.photographer-table .sub {
  overflow-wrap:anywhere;
}

@media(max-width:720px) {
  .nav {
    flex-wrap:wrap;
    overflow:visible;
  }
}

@media(max-width:720px) {
  .nav a {
    white-space:normal;
  }
}

@media(max-width:720px) {
  .tabs {
    flex-wrap:wrap;
    overflow:visible;
    gap:12px 21px;
  }
}

@media(max-width:720px) {
  .top-path {
    font-size:13px;
  }
}

@media(max-width:720px) {
  .brand {
    font-size:21px;
  }
}

@media(min-width:721px) and (max-width:900px) {
  .cards {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

.account-menu {
  position:relative;
  flex-shrink:0;
}

.account-menu>summary {
  cursor:pointer;
  list-style:none;
  border:1px solid #deddd4;
}

.account-menu>summary::-webkit-details-marker {
  display:none;
}

.account-dropdown {
  position:absolute;
  right:0;
  top:43px;
  z-index:30;
  width:280px;
  padding:20px;
  background:#fff;
  border:1px solid #e5e4dc;
  border-radius:11px;
  box-shadow:0 12px 40px #29291e22;
  color:#454537;
}

.account-dropdown strong {
  font-size:16px;
}

.account-dropdown p {
  font-size:14px;
  margin:5px 0 12px;
  overflow-wrap:anywhere;
}

.account-dropdown .divider {
  margin:15px 0;
}

.account-dropdown>a,.account-dropdown>button {
  display:flex;
  width:100%;
  justify-content:flex-start;
  padding:10px;
  border-radius:6px;
  font-size:15px;
  color:#555544;
}

.account-dropdown>a:hover {
  background:#f5f5f0;
}

.account-dropdown .pill {
  display:inline-flex!important;
}

.account-page {
  max-width:920px;
}

.account-page>.actions {
  margin-top:20px;
}

.account-page .highlight {
  margin-top:22px;
}

.gmail-card {
  margin-bottom:24px;
  max-width:520px;
}

.gmail-card>.sub {
  margin-top:15px;
  margin-bottom:0;
}

.filtered-table {
  table-layout:fixed;
  min-width:850px;
}

.filtered-table.photographers {
  display:table;
  min-width:900px;
}

.filtered-table th:last-child {
  width:140px;
}

.filtered-table td {
  white-space:normal;
  overflow-wrap:anywhere;
  padding:16px;
}

.filtered-table th {
  padding:11px 13px;
  height:53px;
}

.filtered-table .actions {
  gap:6px;
}

.column-title {
  background:transparent;
  color:#666555;
  border:0;
  border-radius:0;
  padding:0;
  font:inherit;
  text-transform:inherit;
  letter-spacing:inherit;
  white-space:normal;
  justify-content:flex-start;
  text-align:left;
  width:100%;
  gap:7px;
}

.column-title:hover {
  color:#525140;
  filter:none;
}

.column-title .icon {
  width:12px;
  height:12px;
  opacity:.5;
}

.column-filter {
  display:flex;
  align-items:center;
  gap:2px;
}

.column-filter input {
  min-width:0;
  font-size:14px;
  letter-spacing:0;
  padding:7px;
  background:white;
}

.column-filter button {
  flex-shrink:0;
  padding:3px 5px;
  font-size:19px;
}

.pagination {
  padding:14px 18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  font-size:13px;
  color:#666555;
  border-top:1px solid #e6e5dc;
}

.pagination label {
  display:flex;
  gap:8px;
  align-items:center;
}

.pagination select {
  width:70px;
  padding:5px 8px;
}

.pagination .actions {
  font-size:13px;
}

.filter-summary {
  margin-bottom:15px;
  font-size:14px;
}

.account-menu:focus-within {
  z-index:31;
}

@media(max-width:720px) {
  .account-dropdown {
    width:min(280px,calc(100vw - 32px));
  }
}

@media(max-width:720px) {
  .pagination {
    gap:12px;
  }
}

@media(max-width:720px) {
  .pagination>.actions {
    width:100%;
    justify-content:space-between;
  }
}

@media(max-width:720px) {
  .account-page>.actions {
    align-items:stretch;
  }
}

@media(max-width:720px) {
  .account-page>.actions>* {
    white-space:normal;
  }
}

.filtered-table.users th:last-child {
  width:340px;
}

.filtered-table.users td:last-child .actions,.user-actions {
  flex-wrap:nowrap;
}

.user-actions>*,.filtered-table.users td:last-child .actions>* {
  white-space:nowrap;
  flex-shrink:0;
}

.filtered-table.services th:first-child,.service-summary th:first-child {
  width:108px;
  max-width:108px;
}

.filtered-table.services td:first-child,.service-summary td:first-child {
  width:108px;
  white-space:nowrap;
  overflow-wrap:normal;
}

.filtered-table.services th:last-child {
  width:44px;
}

.filtered-table.services th:first-child .column-filter input {
  padding:7px 3px;
}

.gmail-controls {
  border:0;
  padding:0;
  margin:0;
  min-width:0;
}

.gmail-controls:disabled button {
  opacity:.45;
  cursor:not-allowed;
}

.stepper {
  justify-content:space-between;
  gap:18px;
}

.step {
  flex:0 1 auto;
}

.step:not(:last-child):after {
  display:none;
}

.step:last-child {
  justify-content:flex-end;
}

.service-overview {
  align-items:start;
}

.service-overview>.stack {
  align-content:start;
}

.service-link-actions,.service-admin-actions {
  display:grid;
  gap:10px;
}

.service-link-actions>.button,.service-admin-actions>.button,.service-admin-actions>button {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  margin:0;
  min-height:40px;
  white-space:normal;
  text-align:left;
}

.service-admin-actions {
  margin-top:18px;
}

.service-admin-actions .notice {
  margin:0;
}

.selected-photographers .table-wrap {
  margin-top:12px;
}

.selected-photographers th,.selected-photographers td {
  padding:12px 8px;
}

.selected-photographers th:first-child,.selected-photographers td:first-child {
  padding-left:0;
}

.selected-photographers th:last-child,.selected-photographers td:last-child {
  padding-right:0;
}

.selected-photographers td {
  vertical-align:middle;
}

.selected-photographers th {
  background:transparent;
}

.selected-photographers .sub {
  margin-top:3px;
}

@media(max-width:600px) {
  .stepper {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }
}

@media(max-width:600px) {
  .step,.step:last-child {
    justify-content:flex-start;
  }
}

@media(max-width:600px) {
  .selected-photographers table {
    white-space:normal;
  }
}

@media(max-width:600px) {
  .selected-photographers td .sub {
    overflow-wrap:anywhere;
  }
}

@media(max-width:600px) {
  .selected-photographers .button {
    white-space:normal;
  }
}

.selected-photographers table {
  table-layout:fixed;
  white-space:normal;
}

.selected-photographers th:nth-child(1) {
  width:35%;
}

.selected-photographers th:nth-child(2) {
  width:20%;
}

.selected-photographers th:nth-child(3) {
  width:21%;
}

.selected-photographers th:nth-child(4) {
  width:24%;
}

.selected-photographers td .sub {
  overflow-wrap:anywhere;
}

.selected-photographers .button {
  white-space:normal;
  padding:8px;
  max-width:100%;
}

.selected-photographers .button .icon {
  flex-shrink:0;
}

.service-link-actions {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:12px;
}

.service-link-actions>.button {
  width:auto;
  min-height:0;
  padding:6px 9px;
  font-size:13px;
  white-space:nowrap;
  justify-content:center;
}

.service-console {
  padding:0;
  overflow:hidden;
}

.service-created {
  font-size:13px;
  color:var(--muted);
  margin:8px 22px 20px;
}

.service-agent {
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:0 22px 20px;
  font-size:14px;
  overflow-wrap:anywhere;
}

.service-agent strong {
  font-size:16px;
  margin-top:2px;
}

.service-agent .service-link-actions {
  margin-top:10px;
}

.service-console-info {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
}

.service-console-info h2 {
  font-size:21px;
  margin:3px 0 0;
}

.service-console-info .service-created {
  margin:8px 0 16px;
}

.service-console-info .service-agent {
  padding:0;
  gap:3px;
  margin-top:auto;
}

.service-console-controls {
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
  min-width:0;
}

.service-compact-actions {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  width:100%;
  max-width:390px;
}

.service-compact-actions>.button,.service-compact-actions>button {
  font-size:13px;
  padding:6px 8px;
  min-height:28px;
  line-height:1.2;
  width:100%;
  margin:0;
  justify-content:center;
  white-space:normal;
  text-align:center;
}

.service-compact-actions>button:last-child:nth-child(odd) {
  grid-column:1/-1;
  justify-self:end;
  width:auto;
}

@media(max-width:600px) {
  .service-console-controls {
    align-items:flex-start;
  }
}

@media(max-width:600px) {
  .service-compact-actions {
    max-width:none;
  }
}

.service-console-side {
  padding:20px 22px;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:16px;
  align-self:start;
}

.service-console-side .service-console-controls {
  align-items:flex-end;
}

.service-console-side .service-compact-actions {
  max-width:none;
}

.service-console-side .service-console-info .service-created {
  margin-bottom:14px;
}

.service-console-side .service-console-info {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:16px;
  align-items:start;
}

.service-console-side .service-console-info>.sub,.service-console-side .service-console-info>h2,.service-console-side .service-console-info>.service-created {
  grid-column:1;
}

.service-console-side .service-console-info>.service-agent {
  grid-column:2;
  grid-row:1/4;
  margin:0;
}

.service-console-side .service-console-info>.service-created {
  margin:8px 0 0;
}

.service-console-side .service-agent strong {
  font-size:15px;
}

.service-console-side .service-agent {
  font-size:13px;
}

.content {
  width:100%;
  max-width:none;
  margin:0;
  padding-left:12px;
  padding-right:12px;
}

.content .account-page,.content .gmail-card {
  width:100%;
  max-width:none;
}

@media(max-width:720px) {
  .content {
    padding-left:10px;
    padding-right:10px;
  }
}

.service-title h1 {
  min-width:0;
}

.service-title-date {
  font-size:19px;
  font-weight:500;
  color:#000;
  white-space:nowrap;
  flex-shrink:0;
}

@media(max-width:720px) {
  .service-title h1 {
    overflow-wrap:anywhere;
  }
}

@media(max-width:720px) {
  .service-title-date {
    font-size:16px;
  }
}

.cal-time-head {
  display:grid;
  grid-template-columns:52px repeat(7,minmax(0,1fr));
  border-bottom:1px solid var(--line);
  padding:8px 0;
}

.cal-time-head.day-view {
  grid-template-columns:52px 1fr;
}

.cal-time-head button {
  font-size:13px;
  white-space:normal;
  padding:6px 2px;
}

.cal-time-scroll {
  overflow:auto;
  overscroll-behavior:contain;
}

.cal-month {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
}

.cal-weekday {
  padding:10px;
  text-align:center;
  font-size:13px;
  color:var(--muted);
  border-bottom:1px solid var(--line);
}

.cal-month-cell {
  min-height:125px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:6px;
  min-width:0;
}

.cal-month-cell.outside {
  color:#666555;
}

.cal-day-number {
  font-size:14px!important;
  padding:4px 7px!important;
}

.cal-month-cell.today .cal-day-number {
  background:#737260;
  color:#fff;
  border-radius:6px;
}

.cal-month-event {
  display:block;
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:left;
  background:#efefe8;
  color:#424237;
  border-left:3px solid #737260;
  border-radius:4px;
}

.cal-month-cell>.small {
  font-size:12px;
  white-space:normal;
}

@media(max-width:720px) {
  .cal-month-cell {
    min-height:100px;
    padding:3px;
  }
}

@media(max-width:720px) {
  .cal-weekday {
    padding:8px 2px;
  }
}

body:has(.interactive-calendar) .shell {
  height:100dvh;
  min-height:0;
  overflow:hidden;
}

body:has(.interactive-calendar) .main {
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}

body:has(.interactive-calendar) .content {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  padding-top:18px;
  padding-bottom:12px;
}

.interactive-calendar {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
}

.cal-time-head {
  flex-shrink:0;
}

.cal-time-scroll {
  flex:1;
  height:auto;
  min-height:0;
  max-height:none;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable;
}

.cal-time-board {
  display:grid;
  grid-template-columns:52px repeat(7,minmax(0,1fr));
  height:1536px;
  min-width:0;
}

.cal-time-board.day-view {
  grid-template-columns:52px minmax(0,1fr);
}

.cal-hour-axis,.cal-day-track {
  position:relative;
  min-width:0;
}

.cal-day-track {
  overflow:hidden;
  border-left:1px solid var(--line);
  background:repeating-linear-gradient(to bottom,transparent 0,transparent 63px,#e8e8e4 63px,#e8e8e4 64px);
}

.cal-hour-marker {
  position:absolute;
  left:5px;
  font-size:12px;
  color:var(--muted);
  line-height:20px;
}

.cal-timed-event {
  position:absolute;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:1px;
  overflow:hidden;
  padding:4px 0;
  border-radius:5px;
  border:0;
  box-shadow:inset 2px 0 #737260;
  background:#eeeee5;
  color:#34342b;
  text-align:left;
  min-width:0;
  font-size:12px;
  font-weight:400;
  line-height:16px;
}

.cal-timed-event strong,.cal-timed-event span {
  padding:0 5px;
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  min-height:16px;
}

.cal-timed-event:hover,.cal-timed-event:focus-visible {
  z-index:2;
  background:#dedecd;
}

.interactive-calendar>.cal-month {
  flex:1;
  min-height:0;
  grid-template-rows:34px repeat(6,minmax(0,1fr));
  overflow:hidden;
}

.interactive-calendar>.cal-month>.cal-month-cell {
  min-height:0;
}

.cal-month-event {
  line-height:16px;
}

@media(max-width:720px) {
  body:has(.interactive-calendar) .shell {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr);
  }
}

@media(max-width:720px) {
  body:has(.interactive-calendar) .sidebar {
    gap:8px;
    padding-top:10px;
    padding-bottom:10px;
  }
}

@media(max-width:720px) {
  body:has(.interactive-calendar) .nav a {
    padding:4px 7px;
  }
}

@media(max-width:720px) {
  body:has(.interactive-calendar) .brand {
    font-size:18px;
  }
}

@media(max-width:720px) {
  .cal-time-head button {
    font-size:11px;
  }
}

.cal-group-more {
  position:absolute;
  left:2px;
  right:2px;
  padding:2px;
  font-size:12px;
  line-height:20px;
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  background:#737260;
  color:white;
  border:0;
  border-radius:4px;
}

.cal-time-scroll {
  scrollbar-width:none;
}

.cal-time-scroll::-webkit-scrollbar {
  display:none;
}

.cal-time-head {
  padding-right:0;
}

.interactive-calendar>.cal-month>.cal-month-cell {
  overflow:hidden;
}

.cal-month-cell.outside {
  background:white;
}

.cal-day-number {
  display:block;
  margin:0 auto 3px;
}

.cal-month-event {
  margin:0 0 3px;
}

.cal-month-event strong,.cal-month-event span {
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:16px;
}

.cal-month-more {
  display:block;
  width:100%;
  padding:2px;
  font-size:12px;
  line-height:20px;
  text-align:center;
  white-space:nowrap;
}

.cal-month-event[hidden],.cal-month-more[hidden] {
  display:none;
}

.cal-event-list {
  display:grid;
}

.cal-event-list>button {
  display:block;
  text-align:left;
  min-width:0;
}

.cal-event-list strong,.cal-event-list span {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cal-controls {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
}

.cal-controls>.actions {
  gap:5px;
}

.cal-controls button {
  padding:6px 10px;
}

.cal-month-event {
  white-space:nowrap;
}

.cal-month-event {
  font-size:11px;
  height:19px;
  min-height:19px;
  padding:1px 4px;
  margin-bottom:2px;
}

.cal-month-event strong {
  line-height:15px;
  font-weight:500;
}

dialog:has(.cal-event-list) {
  height:fit-content;
  min-height:0;
  overflow:hidden;
}

.dialog-body:has(.cal-event-list) {
  max-height:calc(90dvh - 92px);
  overflow:auto;
  scrollbar-width:none;
}

.dialog-body:has(.cal-event-list)::-webkit-scrollbar {
  display:none;
}

.cal-event-list {
  gap:4px;
}

.cal-event-list>button {
  padding:6px 10px;
  font-size:14px;
  line-height:18px;
}

.filtered-table.photographers td:first-child {
  width:85px;
  min-width:85px;
  max-width:85px;
  white-space:nowrap;
}

.filtered-table.photographers td:nth-child(2) {
  white-space:normal;
  overflow-wrap:normal;
}

.filtered-table.photographers td:nth-child(3) {
  overflow-wrap:anywhere;
}

.state-column-filter {
  width:100%;
  min-width:150px;
  padding:6px 8px;
  font:inherit;
  color:inherit;
  background:transparent;
  border:1px solid var(--line);
  border-radius:6px;
}

.main input::placeholder,.main textarea::placeholder,dialog input::placeholder,dialog textarea::placeholder {
  color:#737260;
  opacity:1;
}

.filtered-table.services {
  table-layout:fixed;
  min-width:974px;
}

.filtered-table.services td:first-child {
  width:auto;
  max-width:none;
}

.filtered-table.services td:nth-child(2),.filtered-table.services td:nth-child(3) {
  white-space:normal;
  overflow-wrap:anywhere;
}

.dashboard-totals {
  display:flex;
  align-items:center;
}

.dashboard-totals {
  color:#666555;
  font-size:15px;
}

.dashboard-totals span {
  white-space:nowrap;
}

.dashboard-totals strong {
  color:var(--ink);
}

.dashboard-overview {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:20px;
  align-items:start;
}

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

.dashboard-metrics .metric {
  padding:20px;
}

.dashboard-metrics .metric-top {
  gap:8px;
  min-height:30px;
}

.dashboard-metrics .metric-foot {
  font-size:13px;
}

@media(max-width:900px) {
  .dashboard-overview {
    grid-template-columns:minmax(0,1fr);
  }
}

@media(max-width:900px) {
  .dashboard-totals {
    gap:12px;
  }
}

.dashboard-totals label {
  display:flex;
  align-items:center;
}

.dashboard-totals select {
  width:auto;
  border-radius:6px;
  color:#666555;
  font:inherit;
  text-transform:capitalize;
}

.sidebar .brand {
  justify-content:center;
  text-align:center;
  width:100%;
}

.sidebar {
  gap:18px;
}

.sidebar-account {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:0;
}

.sidebar-account time {
  font-size:12px;
  color:#deded5;
  line-height:1.35;
}

.sidebar-account .avatar {
  flex-shrink:0;
}

.sidebar-account .account-dropdown {
  left:0;
  right:auto;
}

.content {
  padding-top:16px;
}

.sidebar .nav-label:first-child {
  margin-top:8px;
}

@media(max-width:720px) {
  .sidebar-account {
    justify-content:center;
  }
}

@media(max-width:720px) {
  .sidebar-account time {
    font-size:13px;
  }
}

@media(max-width:720px) {
  .sidebar {
    gap:12px;
  }
}

.dashboard-totals label {
  border-radius:20px;
  background:#eeeee8;
  gap:5px;
}

.dashboard-totals select {
  border:0;
  background:transparent;
  font-weight:500;
  cursor:pointer;
}

.dashboard-totals strong {
  font-size:18px;
  margin-left:2px;
}

.filtered-table.services .state-column-filter {
  min-width:0;
  padding:6px 3px;
}

.calculator-layout {
  width:min(680px,100%);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:20px;
}

.dashboard-totals {
  gap:8px;
  flex-wrap:wrap;
  min-width:0;
  max-width:100%;
}

.dashboard-totals select {
  appearance:none;
  -webkit-appearance:none;
  background-image:none;
  padding:3px 4px;
}

.dashboard-totals label {
  padding:5px 8px;
}

.dashboard-totals select::-ms-expand {
  display:none;
}

@media(max-width:1100px) {
  .dashboard-totals {
    gap:5px;
    font-size:13px;
  }
}

@media(max-width:1100px) {
  .dashboard-totals strong {
    font-size:17px;
  }
}

.heading-actions .create-compact {
  font-size:13px;
  line-height:18px;
  padding:6px 9px;
  border-radius:6px;
  gap:5px;
  min-height:32px;
}

.heading-actions .create-compact .icon {
  width:15px;
  height:15px;
}

/* Intestazioni centrate con pulsanti a destra e selettori del periodo a sinistra. */
.content > .heading, .dashboard-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:16px;
  padding:0;
  margin-bottom:24px;
  min-width:0;
  text-align:center;
}
.content > .heading h1, .dashboard-heading h1 { grid-column:2; grid-row:1; margin:0; min-width:0; overflow-wrap:anywhere; }
.heading-actions, .dashboard-command-row { grid-row:1; display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-width:0; }
.heading-actions { grid-column:3; justify-content:flex-end; }
.dashboard-command-row { grid-column:1; }
.heading-actions > .actions { justify-content:flex-end; }
.service-title-date { white-space:normal; flex-shrink:1; overflow-wrap:anywhere; }

/* Evita variazioni di spazio quando un filtro elimina lo scorrimento verticale. */
html { scrollbar-gutter:stable; }

/* Colonne brevi fisse; lo spazio restante va ai dati anagrafici, senza variazioni al filtro. */
.filtered-table th, .filtered-table td, .service-summary th, .service-summary td { padding-left:12px; padding-right:12px; }
.filtered-table.services, .service-summary { table-layout:fixed; min-width:1150px; }
.filtered-table.services th:nth-child(1), .service-summary th:nth-child(1) { width:108px; }
.filtered-table.services th:nth-child(2), .service-summary th:nth-child(2) { width:auto; }
.filtered-table.services th:nth-child(3), .service-summary th:nth-child(3) { width:185px; }
.filtered-table.services th:nth-child(4), .service-summary th:nth-child(4) { width:185px; }
.filtered-table.services th:nth-child(5), .service-summary th:nth-child(5) { width:214px; }
.filtered-table.services th:nth-child(6), .service-summary th:nth-child(6) { width:180px; }
.filtered-table.services th:nth-child(7), .service-summary th:nth-child(7) { width:70px; }
.service-summary td { white-space:normal; overflow-wrap:anywhere; }
.filtered-table.photographers { min-width:1100px; }
.filtered-table.photographers th:nth-child(1) { width:90px; }
.filtered-table.photographers th:nth-child(2) { width:190px; }
.filtered-table.photographers th:nth-child(3) { width:245px; }
.filtered-table.photographers th:nth-child(4) { width:168px; }
.filtered-table.photographers th:nth-child(5) { width:auto; }
.filtered-table.photographers th:nth-child(6) { width:120px; }
.filtered-table.photographers th:nth-child(7) { width:124px; }
.filtered-table.photographers td:first-child { min-width:0; max-width:none; width:auto; }
.filtered-table.photographers td:nth-child(4), .filtered-table.photographers td:nth-child(6) { white-space:nowrap; font-variant-numeric:tabular-nums; }
.filtered-table.photographers .cell-link { font-weight:600; }
.filtered-table.users { min-width:1100px; }
.filtered-table.users th:nth-child(1) { width:190px; }
.filtered-table.users th:nth-child(2) { width:auto; }
.filtered-table.users th:nth-child(3) { width:160px; }
.filtered-table.users th:nth-child(4) { width:120px; }
.filtered-table.users th:nth-child(5) { width:340px; }
.selected-photographers table { min-width:600px; }
.selected-photographers th:nth-child(1) { width:auto; }
.selected-photographers th:nth-child(2) { width:120px; }
.selected-photographers th:nth-child(3) { width:140px; }
.selected-photographers th:nth-child(4) { width:112px; }
.matching-table { table-layout:fixed; min-width:900px; }
.matching-table th:nth-child(1) { width:84px; }
.matching-table th:nth-child(2) { width:auto; }
.matching-table th:nth-child(3) { width:130px; }
.matching-table th:nth-child(4), .matching-table th:nth-child(5) { width:124px; }
.matching-table th:nth-child(6) { width:150px; }
.matching-table th:nth-child(7) { width:108px; }
.matching-table td { white-space:normal; overflow-wrap:anywhere; }

/* Barra calendario: centrata su desktop, su una riga compatta negli schermi stretti. */
.cal-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:16px; padding:12px 16px; flex-shrink:0; }
.cal-toolbar h2 { grid-column:2; margin:0; align-self:center; text-transform:capitalize; }
.cal-toolbar .cal-controls { grid-column:3; min-width:0; justify-content:flex-end; margin-left:auto; }
.cal-period-short { display:none; }
@media(max-width:1100px) {
  .cal-toolbar { display:flex; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:6px; padding:10px 6px; }
  .cal-toolbar h2 { min-width:0; font-size:14px; white-space:nowrap; }
  .cal-period-full { display:none; }
  .cal-period-short { display:inline; }
  .cal-controls, .cal-controls > .actions { flex-wrap:nowrap; gap:3px; }
  .cal-controls button { font-size:11px; padding:5px 4px; }
}
@media(max-width:720px) {
  .content > .heading, .dashboard-heading { gap:12px; padding-left:0; }
  .content > .heading h1, .dashboard-heading h1 { font-size:23px; }
  .heading-actions { flex-wrap:wrap; }
  .heading-actions button { white-space:normal; }
  .sidebar-account .account-dropdown { position:fixed; left:16px; top:100px; width:calc(100vw - 32px); }
  .selected-photographers th, .selected-photographers td { padding:8px 3px; font-size:11px; overflow-wrap:anywhere; }
  .selected-photographers .pill { white-space:normal; padding:4px; }
}
@media(max-width:400px) {
  .cal-toolbar h2 { font-size:12px; }
  .cal-controls button { font-size:10px; padding:5px 3px; }
  .cal-controls, .cal-controls > .actions { gap:2px; }
}

/* Raggruppa le sezioni e centra la navigazione secondaria delle impostazioni. */
.nav-group{display:grid;gap:5px}.settings-tabs{justify-content:center}.service-title-date{grid-column:3;grid-row:1;text-align:left}
@media(max-width:720px){
 .nav{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;overflow:visible}
 .nav-group{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:3px;min-width:0}
 .nav-group .nav-label{display:none}
 .nav .nav-group a{padding:6px 4px;font-size:12px;white-space:nowrap;justify-content:center}
 .content>.heading,.dashboard-heading{column-gap:8px}
 .dashboard-totals{flex-wrap:wrap;gap:4px}
 .heading-actions .create-compact{font-size:11px;padding:5px;white-space:normal}
 .service-title-date{grid-column:1/-1;grid-row:2;text-align:center}
 .service-title h1{grid-column:1/-1!important}
}
@media(max-width:380px){.nav .nav-group a{font-size:11px;padding:5px 3px}}

/* Segnala nella navigazione le situazioni aperte della panoramica. */
.nav-alert { display:inline-flex; align-items:center; color:#e7b859; flex-shrink:0; }
.nav-alert .icon { width:15px; height:15px; }

/* Separa data e ora nei collegamenti pubblici, anche sugli schermi piccoli. */
.appointment-fields { display:grid; grid-template-columns:minmax(0, 1.5fr) minmax(0, 1fr); gap:24px; margin:24px 0; }
.appointment-fields label { display:flex; flex-direction:column; gap:8px; min-width:0; }
.appointment-fields input { width:100%; min-width:0; box-sizing:border-box; }
@media(max-width:420px) { .appointment-fields { grid-template-columns:1fr; gap:16px; } }

/* Mantiene il comando di ripresa dentro la segnalazione, con spazio per il testo. */
.notice-action { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }

/* Evidenzia la correzione richiesta e centra l’appuntamento sopra i pannelli operativi. */
.address-error { color:#b42318; font-weight:600; margin:12px 0; }
.appointment-summary { text-align:center; margin-bottom:22px; color:#171717; }
.appointment-summary h2 { margin:0 0 8px; }
.appointment-summary time { font-size:20px; }

/* Accesso e area personale: stessi componenti del gestionale, senza navigazione amministrativa. */
.auth {min-height:100dvh;display:grid;place-items:center;padding:32px 20px;background:#f6f6f5;}
.auth-box {width:100%;max-width:440px;}
.auth-brand {display:block;text-align:center;font-size:23px;font-weight:750;color:var(--accent);margin-bottom:28px;}
.auth .card {padding:32px;border-radius:14px;box-shadow:0 12px 36px #26262008;}
.auth h1 {text-align:center;font-size:26px;margin:0 0 26px;}
.auth form {display:grid;gap:18px;}
.auth .field {margin:0;}
.auth label,.personal-portal label {display:block;margin-bottom:8px;font-weight:600;}
.auth input,.personal-portal input,.personal-portal textarea {width:100%;min-width:0;}
.auth button {width:100%;}
.auth .links {margin-top:20px;text-align:right;font-size:15px;}
.auth .hint,.personal-portal .hint {font-size:14px;color:var(--muted);}
.auth .notice {margin-bottom:18px;}
.personal-portal .brand {justify-content:center;text-align:center;font-size:20px;line-height:1.3;}
.personal-identity {display:flex;align-items:center;justify-content:center;gap:12px;margin:22px 0 30px;font-size:14px;}
.personal-menu {position:relative;}
.personal-menu summary {cursor:pointer;list-style:none;}
.personal-menu summary::-webkit-details-marker {display:none;}
.personal-menu .avatar {display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent);color:white;font-weight:700;}
.personal-menu-content {position:absolute;top:48px;left:0;width:270px;max-width:calc(100vw - 40px);background:white;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 25px #0002;z-index:20;padding:18px;display:grid;gap:12px;overflow-wrap:anywhere;}
.personal-menu-content form {margin:0;}
.personal-portal .content {padding:28px 24px 40px;}
.personal-portal .page-heading {display:block;text-align:center;margin:0 0 28px;}
.personal-portal .page-heading h1 {font-size:28px;}
.personal-portal .account-card {max-width:980px;margin:auto;}
.personal-portal .account-overview {display:flex;justify-content:space-between;gap:24px;}
.personal-portal .account-overview h2 {margin:0 0 6px;font-size:21px;}
.personal-portal .account-meta {text-align:right;flex-shrink:0;}
.personal-portal .tag {display:inline-block;border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:14px;}
.personal-portal .account-contacts {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px;}
.personal-portal .account-contacts p {margin:0;overflow-wrap:anywhere;}
.personal-portal .account-contacts p:last-child {grid-column:1/-1;}
.personal-portal .account-tools {display:flex;gap:10px;flex-wrap:wrap;margin-top:26px;}
.personal-portal .account-tools form {margin:0;}
.personal-portal .account-tools button,.personal-portal .account-tools .button {font-size:14px;padding:8px 12px;}
.personal-portal .account-editor {margin-top:26px;padding-top:24px;border-top:1px solid var(--line);}
.personal-portal .field {margin-bottom:20px;}
.personal-portal .split {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.personal-portal .actions {display:flex;flex-wrap:wrap;gap:10px;}
.personal-service-list {display:grid;gap:18px;}
.personal-service-heading {display:flex;justify-content:space-between;align-items:start;gap:20px;}
.personal-service-heading h2 {font-size:20px;margin:0;overflow-wrap:anywhere;}
.personal-appointment {background:#f6f6f3;border-radius:8px;padding:12px 16px;display:flex;gap:12px;flex-wrap:wrap;}
.personal-agent {display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:22px 0;overflow-wrap:anywhere;}
.personal-agent a {overflow-wrap:anywhere;min-width:0;}
.personal-action summary {list-style:none;cursor:pointer;}
.personal-action summary::-webkit-details-marker {display:none;}
.personal-action form {max-width:650px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);}
.personal-portal .notice.error {color:#a3302a;background:#fff0ee;border-color:#ebc9c4;}
@media(max-width:900px){.personal-portal .sidebar{height:auto;position:static;}.personal-portal .nav{display:flex;justify-content:center;flex-wrap:wrap;}.personal-identity{margin:16px 0;}.personal-portal .content{padding:22px 16px;}}
@media(max-width:540px){.auth .card{padding:24px;}.personal-portal .account-overview,.personal-service-heading{flex-direction:column;gap:14px;}.personal-portal .account-meta{text-align:left;}.personal-portal .split,.personal-portal .account-contacts{grid-template-columns:1fr;}.personal-portal .account-contacts p:last-child{grid-column:auto;}.personal-agent{gap:14px;}.personal-service{padding:18px;}}

/* Campo motivazione nel modulo pubblico di cambio fotografo. */
.public-shell textarea[name="note"] {display:block;width:100%;margin-top:12px;height:120px;min-height:120px;max-height:120px;resize:none;}

/* Mantiene il campo motivo nel normale flusso sopra alle azioni del modulo. */
.public-shell .change-reason {display:block;}
