    /* CSS domain: controls */
    .controls-page {
      width: 100%;
      min-height: 100vh;
      display: grid;
      grid-template-rows: auto auto auto;
      align-content: start;
      gap: var(--gap);
      background: var(--bg);
      color: var(--text);
      padding: var(--dashboard-page-padding);
    }

    .controls-laundry-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--dashboard-laundry-grid-gap);
    }

    .controls-laundry-card {
      min-height: var(--dashboard-laundry-card-min-height);
      border-radius: var(--dashboard-large-tile-radius);
      padding: var(--dashboard-laundry-card-padding);
      background:
        radial-gradient(circle at top left, rgba(92, 131, 255, 0.12), transparent 42%),
        linear-gradient(180deg, rgba(33,35,42,0.98), rgba(24,25,30,0.98));
      box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.05),
        0 12px 30px rgba(0,0,0,0.18);
      display: grid;
      grid-template-columns: var(--dashboard-laundry-card-icon-column) minmax(0, 1fr);
      gap: var(--dashboard-laundry-card-gap);
      align-items: stretch;
      position: relative;
      overflow: hidden;
    }

    .controls-laundry-card::before {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      box-shadow: var(--dashboard-card-inset);
    }

    .controls-laundry-card.is-active {
      background:
        radial-gradient(circle at top left, rgba(92, 131, 255, 0.18), transparent 44%),
        linear-gradient(180deg, rgba(27,35,53,0.98), rgba(20,25,36,0.98));
      box-shadow:
        inset 0 0 0 1px rgba(111, 145, 255, 0.18),
        0 0 34px rgba(88, 121, 255, 0.14),
        0 14px 30px rgba(0,0,0,0.22);
    }

    .controls-laundry-card.is-off {
      background:
        linear-gradient(180deg, rgba(39,40,45,0.96), rgba(26,27,31,0.98));
      box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.04),
        0 12px 28px rgba(0,0,0,0.16);
    }

    .controls-laundry-icon-wrap {
      display: grid;
      place-items: start;
      align-content: start;
      padding-top: var(--dashboard-laundry-icon-top);
    }

    .controls-laundry-icon {
      width: var(--dashboard-laundry-icon-size);
      height: var(--dashboard-laundry-icon-size);
      color: rgba(124, 157, 255, 0.95);
      filter: drop-shadow(0 0 14px rgba(87, 123, 255, 0.2));
    }

    .controls-laundry-card.is-off .controls-laundry-icon {
      color: rgba(255,255,255,0.28);
      filter: none;
    }

    .controls-laundry-content {
      min-width: 0;
      display: grid;
      grid-template-rows: auto auto auto 1fr auto;
      gap: var(--dashboard-laundry-content-gap);
      align-content: start;
    }

    .controls-laundry-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--dashboard-laundry-top-gap);
    }

    .controls-laundry-name {
      font-size: var(--dashboard-laundry-title-size);
      font-weight: var(--dashboard-controls-title-weight);
      line-height: 1.05;
      letter-spacing: -0.03em;
    }

    .controls-laundry-status {
      display: inline-flex;
      align-items: center;
      gap: var(--dashboard-laundry-status-gap);
      font-size: var(--dashboard-laundry-status-size);
      color: rgba(113, 220, 142, 0.92);
      white-space: nowrap;
    }

    .controls-laundry-status-dot {
      width: var(--dashboard-laundry-status-dot-size);
      height: var(--dashboard-laundry-status-dot-size);
      border-radius: 50%;
      background: currentColor;
      box-shadow: 0 0 18px currentColor;
      flex-shrink: 0;
    }

    .controls-laundry-card.is-off .controls-laundry-status {
      color: rgba(255,255,255,0.34);
    }

    .controls-laundry-time {
      font-size: var(--dashboard-laundry-value-size);
      font-weight: var(--dashboard-controls-value-weight);
      line-height: 0.9;
      letter-spacing: -0.06em;
    }

    .controls-laundry-card.is-off .controls-laundry-time {
      color: rgba(255,255,255,0.56);
    }

    .controls-laundry-program {
      font-size: var(--dashboard-laundry-program-size);
      color: rgba(118, 156, 255, 0.96);
      line-height: 1.08;
      letter-spacing: -0.02em;
      min-height: var(--dashboard-laundry-program-min-height);
    }

    .controls-laundry-card.is-off .controls-laundry-program {
      color: rgba(255,255,255,0.58);
    }

    .controls-laundry-progress {
      align-self: end;
      width: 100%;
      height: var(--dashboard-laundry-progress-height);
      border-radius: var(--dashboard-pill-radius);
      background: rgba(255,255,255,0.08);
      overflow: hidden;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.04);
    }

    .controls-laundry-progress-fill {
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, rgba(96, 137, 255, 0.92), rgba(118, 155, 255, 0.98));
      box-shadow: 0 0 16px rgba(96, 137, 255, 0.3);
      width: 0%;
      transition: width 0.24s ease;
    }

    .controls-laundry-card.is-off .controls-laundry-progress-fill {
      background: rgba(255,255,255,0.14);
      box-shadow: none;
    }

    .controls-laundry-phase {
      font-size: var(--dashboard-laundry-status-size);
      color: rgba(118, 156, 255, 0.92);
      line-height: 1.2;
      min-height: var(--dashboard-laundry-phase-min-height);
    }

    .controls-laundry-card.is-off .controls-laundry-phase {
      color: rgba(255,255,255,0.5);
    }

    .controls-placeholder-note {
      display: none;
    }

    .controls-quick-grid {
      grid-template-columns: repeat(4, 1fr);
    }

    .controls-quick-grid .control-tile {
      min-height: var(--dashboard-controls-zone-tile-min-height);
    }

    .controls-zone-shell {
      position: relative;
      overflow: hidden;
      min-height: 0;
    }

    .controls-zone-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: var(--dashboard-controls-zone-header-gap);
    }

    .controls-zone-copy {
      min-width: 0;
      display: grid;
      gap: var(--dashboard-controls-zone-copy-gap);
    }

    .controls-zone-subtitle {
      font-size: var(--dashboard-meta-size);
      color: rgba(255,255,255,0.62);
      line-height: 1.35;
    }

    .controls-zone-hint {
      font-size: var(--dashboard-note-size);
      color: var(--muted);
      line-height: 1.3;
      text-align: right;
    }

    .controls-zone-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--dashboard-controls-zone-grid-gap);
    }

    .controls-zone-tile {
      position: relative;
      min-height: var(--dashboard-controls-zone-tile-min-height);
      border: 0;
      border-radius: var(--dashboard-tile-radius);
      background:
        linear-gradient(180deg, rgba(42,42,45,0.98), rgba(30,31,35,0.98));
      color: var(--text);
      padding: var(--dashboard-controls-zone-tile-padding);
      display: grid;
      gap: var(--dashboard-controls-zone-card-gap);
      align-content: space-between;
      text-align: left;
      cursor: pointer;
      transition: transform 0.08s ease, background 0.16s ease, box-shadow 0.18s ease;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.05);
      -webkit-tap-highlight-color: transparent;
    }

    .controls-zone-tile:active {
      transform: scale(0.985);
    }

    .controls-zone-tile.is-active {
      background:
        radial-gradient(circle at top left, rgba(98, 130, 255, 0.18), transparent 48%),
        linear-gradient(180deg, rgba(34,38,50,0.98), rgba(24,26,34,0.98));
      box-shadow:
        inset 0 0 0 1px rgba(109, 141, 255, 0.16),
        0 10px 26px rgba(0,0,0,0.18);
    }

    .controls-zone-status-dots {
      display: inline-flex;
      align-items: center;
      gap: var(--dashboard-controls-zone-status-gap);
      min-height: var(--dashboard-controls-zone-dot-size);
    }

    .controls-zone-status-dot {
      width: var(--dashboard-controls-zone-dot-size);
      height: var(--dashboard-controls-zone-dot-size);
      border-radius: 50%;
      background: rgba(255,255,255,0.18);
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
      transition: background 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
    }

    .controls-zone-status-dot.is-on {
      background: rgba(113, 220, 142, 0.96);
      box-shadow: 0 0 14px rgba(113,220,142,0.34);
      transform: scale(1.05);
    }

    .controls-zone-status-dot.is-heater-on {
      background: rgba(255, 105, 97, 0.96);
      box-shadow: 0 0 14px rgba(255,105,97,0.34);
      transform: scale(1.05);
    }

    .controls-zone-title {
      font-size: var(--dashboard-control-title-size);
      font-weight: var(--dashboard-controls-title-weight);
      line-height: 1.08;
      letter-spacing: -0.03em;
      max-width: calc(100% - 24px);
    }

    .controls-zone-meta {
      display: grid;
      gap: var(--dashboard-controls-zone-meta-gap);
    }

    .controls-zone-count {
      font-size: var(--dashboard-meta-size);
      color: rgba(255,255,255,0.88);
      line-height: 1.25;
    }

    .controls-zone-detail {
      font-size: var(--dashboard-note-size);
      color: var(--muted);
      line-height: 1.3;
    }

    .controls-zone-overlay-backdrop {
      position: fixed;
      inset: 0;
      z-index: 10400;
      background: rgba(0,0,0,0.34);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.14s ease, visibility 0.14s ease;
    }

    .controls-zone-overlay-backdrop.is-visible {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }

    .controls-zone-overlay {
      position: fixed;
      top: 50%;
      left: 50%;
      width: min(760px, calc(100vw - 88px));
      max-height: min(66vh, 620px);
      z-index: 10401;
      border-radius: var(--dashboard-controls-zone-overlay-radius);
      padding: var(--dashboard-controls-zone-overlay-padding);
      background:
        radial-gradient(circle at top left, rgba(98, 130, 255, 0.12), transparent 42%),
        linear-gradient(180deg, rgba(31,33,39,0.98), rgba(22,23,28,0.98));
      box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.06),
        0 28px 70px rgba(0,0,0,0.34);
      display: grid;
      gap: var(--dashboard-controls-zone-overlay-gap);
      transform: translate(-50%, -48%);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
      overflow: hidden;
    }

    .controls-zone-overlay.is-visible {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translate(-50%, -50%);
    }

    .controls-zone-overlay-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: var(--dashboard-controls-zone-overlay-header-gap);
    }

    .controls-zone-overlay-title-wrap {
      min-width: 0;
      display: grid;
      gap: var(--dashboard-controls-zone-overlay-title-gap);
    }

    .controls-zone-overlay-title {
      font-size: var(--dashboard-controls-zone-overlay-title-size);
      font-weight: var(--dashboard-controls-title-weight);
      line-height: 1.06;
      letter-spacing: -0.04em;
    }

    .controls-zone-overlay-subtitle {
      font-size: var(--dashboard-meta-size);
      color: var(--muted);
      line-height: 1.35;
    }

    .controls-zone-overlay-close {
      width: var(--dashboard-controls-zone-overlay-close-size);
      height: var(--dashboard-controls-zone-overlay-close-size);
      border: 0;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
      color: rgba(255,255,255,0.88);
      font-size: var(--dashboard-controls-zone-overlay-close-font-size);
      line-height: 1;
      cursor: pointer;
      flex-shrink: 0;
      transition: transform 0.08s ease, background 0.14s ease;
    }

    .controls-zone-overlay-close:active {
      transform: scale(0.96);
    }

    .controls-zone-overlay-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: var(--dashboard-controls-zone-grid-gap);
      min-height: 0;
      overflow: auto;
      padding-right: 2px;
    }

    .controls-zone-overlay-grid .control-tile {
      min-height: var(--dashboard-controls-zone-overlay-grid-tile-min-height);
    }

    .controls-zone-empty {
      border-radius: var(--dashboard-controls-zone-empty-radius);
      background: rgba(255,255,255,0.04);
      padding: var(--dashboard-controls-zone-empty-padding);
      display: grid;
      gap: var(--dashboard-controls-zone-empty-gap);
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.04);
    }

    .controls-zone-empty-title {
      font-size: var(--dashboard-controls-zone-empty-title-size);
      font-weight: var(--dashboard-title-weight);
      line-height: 1.2;
    }

    .controls-zone-empty-note {
      font-size: var(--dashboard-meta-size);
      color: var(--muted);
      line-height: 1.4;
    }

    .controls-zone-overlay-footer {
      display: flex;
      justify-content: center;
    }

    .controls-zone-all-off {
      min-width: var(--dashboard-controls-zone-all-off-width);
      min-height: var(--dashboard-controls-zone-all-off-height);
      border: 0;
      border-radius: var(--dashboard-control-tile-radius);
      background:
        linear-gradient(180deg, rgba(255,255,255,0.11), rgba(255,255,255,0.07));
      color: var(--text);
      padding: var(--dashboard-controls-zone-all-off-padding);
      font-size: var(--dashboard-controls-tile-label-size);
      font-weight: var(--dashboard-controls-tile-label-weight);
      letter-spacing: -0.01em;
      cursor: pointer;
      box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.08),
        0 10px 24px rgba(0,0,0,0.16);
      transition: transform 0.08s ease, background 0.14s ease, opacity 0.14s ease;
    }

    .controls-zone-all-off.is-busy,
    .controls-zone-all-off:disabled {
      opacity: 0.52;
      cursor: not-allowed;
    }

    .controls-zone-all-off:active {
      transform: scale(0.985);
    }
