
    body {
      font-family: 'Ubuntu', sans-serif;
      background: #fff;
      color: #333;
      padding: 20px;
      max-width: 360px;
      margin: auto;
      line-height: 1.4;
    }

    @media (max-width: 400px) {
      body { padding: 15px; }
    }

    h1 {
      font-size: 24px;
      color: #008351;
      text-align: center;
      margin-bottom: 30px;
    }

    .group {
      margin-bottom: 24px;
      border: 1px solid #008351;
      border-radius: 8px;
      padding: 16px;
    }

    .group-title {
      font-weight: bold;
      font-size: 18px;
      color: #008351;
      margin-bottom: 12px;
    }

    .section-title {
      color: #008351;
      font-size: 16px;
      font-weight: bold;
      margin-bottom: 10px;
      border-bottom: 1px solid #ccc;
      padding-bottom: 5px;
    }

    .group-close {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      margin-top: 16px;
      padding: 8px 0 2px;
      border-top: 1px solid #e0e0e0;
      cursor: pointer;
      user-select: none;
    }
    .group-close-text {
      font-size: 13px;
      color: #666;
    }
    .group-close-icon {
      font-size: 14px;
      color: #666;
      opacity: 0.7;
    }
    .group-close:hover .group-close-text,
    .group-close:hover .group-close-icon {
      color: #008351;
      opacity: 1;
    }

    .section-title:focus-visible,
.group-title:focus-visible,
.group-close:focus-visible,
.warning-message[tabindex]:focus-visible,
.error-message[tabindex]:focus-visible,
label[tabindex]:focus-visible {
  outline: none;
  box-shadow: inset -3px 0 0 0 #c00000;
  transition: all 0.2s ease;
}

    .group-title:focus-visible {
      display: inline-block;
      padding-right: 20px;
    }

    .warning-message[tabindex]:hover {
      background-color: rgba(0, 131, 81, 0.02);
      cursor: pointer;
    }

    .input-group {
      margin-bottom: 16px;
    }

    .input-group:last-child {
      margin-bottom: 0;
    }

    label {
      display: block;
      margin-bottom: 4px;
      font-weight: 420;
    }

    input, select, textarea {
      width: 100%;
      padding: 8px;
      font-size: 16px;
      box-sizing: border-box;
      border: 1px solid #ccc;
      border-radius: 4px;
      font-family: 'Ubuntu', sans-serif;
      transition: border-color 0.2s;
    }

    input:focus, select:focus, textarea:focus {
      outline: none;
      border-color: #008351;
    }

    input:where(:not([type="checkbox"]):not([type="radio"])), select, textarea {
      background: #f2f2f2;
    }
    input:focus, select:focus, textarea:focus {
      background: #fff;
    }

    input:where(:not([type="checkbox"]):not([type="radio"])), select {
      height: 38px;
    }
    input:where(:not([type="checkbox"]):not([type="radio"])):focus, select:focus, textarea:focus {
      box-shadow: 0 0 0 3px rgba(0, 131, 81, 0.15);
    }
    input:where(:not([type="checkbox"]):not([type="radio"])):focus:invalid, select:focus:invalid, textarea:focus:invalid {
      box-shadow: 0 0 0 3px rgba(192, 0, 0, 0.12);
    }
    input::placeholder, textarea::placeholder {
      color: #666;
      opacity: 1;
    }
    input:where(:not([type="checkbox"]):not([type="radio"])):disabled, select:disabled, textarea:disabled {
      background: #fafafa;
      border-color: #e5e5e5;
      color: #999;
    }

    .input-group input:disabled,
    .input-group select:disabled {
      border-color: #e5e5e5;
    }

    select.city-linked,
    .input-group select.city-linked {
      border-color: #008351;
    }

    input:invalid {
      border-color: #c00000;
    }

    .row-pair {
      display: flex;
      gap: 10px;
      margin-top: 12px;
      margin-bottom: 20px;
      flex-wrap: wrap;
    }
    .row-pair label {
      flex: 1;
    }
    .walls-checkbox-container {
      margin-top: 10px;
    }
    .checkbox-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px 20px;
    }
    .checkbox-row label {
      display: flex;
      align-items: center;
      white-space: nowrap;
      font-size: 14px;
      gap: 6px;
    }
    input[type="radio"]:disabled + .gdpr-checkmark,
input[type="checkbox"]:disabled + .gdpr-checkmark {
  opacity: 0.5;
  cursor: not-allowed;
}

.gdpr-checkbox-container:has(input:disabled) {
  opacity: 0.6;
  cursor: not-allowed;
}
    .value-span {
      color: #c00000;
      font-weight: normal;
      font-size: 14px;
      min-width: 20px;
      display: inline-block;
      text-align: left;
      margin-left: 5px;
    }

    .manual-choice {
      color: #c00000;
    }

    .bnd-formula {
      color: #767676;
      font-size: 12px;
      margin-top: 4px;
    }
    .bnd-formula:empty {
      display: none;
    }

    .bnd-note {
      color: #666;
      font-size: 11px;
      margin-top: 2px;
    }

    .sym {
      color: inherit;
    }

    #requiredPower::placeholder {
      color: #ce0000;
    }

    .cell-off label {
      color: #999;
    }
    .cell-off input,
    .cell-off select {
      color: #999;

      background: #fafafa;
      cursor: default;

      pointer-events: none;
    }

    .cell-off .btn-clear {
      color: #999;
      pointer-events: none;
    }

    .input-group.cell-off input,
    .input-group.cell-off select {
      border-color: #e5e5e5;
    }
    .error-message {
      color: #c00000;
      font-size: 13px;
      margin-top: 3px;
      padding: 6px 8px;
      border-radius: 4px;
      border-left: 3px solid #c00000;
      background: #fdf2f2;
    }
    .error-message:empty {
      display: none;
    }
    .warning-message {
      color: #333;
      font-size: 13px;
      min-height: 18px;
      margin-top: 3px;
      background: #f0f8f5;
      padding: 8px 10px;
      border-radius: 4px;
      border-left: 3px solid #c00000;
    }

    #resultInfo { white-space: pre-line; }

    .state-note {
      color: #008351;
      font-size: 11px;
      line-height: 14px;
      min-height: 14px;
      margin-top: 4px;
    }
    .state-note:empty {
      visibility: hidden;
    }

    #projectGroup .group-close,
    #projectGroup2 .group-close {
      margin-top: 8px;
    }

    .btn {
      background: #008351;
      color: #fff;
      border: none;
      padding: 12px 24px;
      font-size: 16px;
      border-radius: 4px;
      cursor: pointer;
      margin: 4px;
      transition: background 0.2s;
      font-family: 'Ubuntu', sans-serif;
    }

    .btn:hover {
      background: #006741;
    }

    .btn:disabled {
      background: #ccc;
      cursor: not-allowed;
    }

    .group {
      margin-bottom: 16px;
      border: 1px solid #008351;
      border-radius: 8px;
      padding: 16px;
    }

    .group-header {
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 12px 0;
      transition: opacity 0.2s ease;
    }

    .group-header:hover {
      opacity: 0.8;
    }

    .acc-h { margin: 0; padding: 0; font-size: inherit; font-weight: inherit; line-height: inherit; }

    .group-header .group-title {
      color: #008351;
      font-weight: bold;
      font-size: 18px;
      margin: 0;
    }

    .expand-icon {
      color: #666;
      font-size: 14px;
      opacity: 0.7;
      user-select: none;
      transition: transform 0.3s ease, opacity 0.2s ease;
    }

    .expand-icon:hover {
      opacity: 1;
    }

    .group.collapsed .expand-icon {
      transform: rotate(-90deg);
    }

    .group-content {
  transition: opacity 0.3s ease;
  overflow: hidden;
}

    .group.collapsed .group-content {
      max-height: 0;
      opacity: 0;
      padding-top: 0;
      padding-bottom: 0;
    }

    .input-group label {
      display: block;
      margin-bottom: 4px;
      font-weight: 420;
    }

    .input-group input,
    .input-group textarea,
    .input-group select {
      width: 100%;
      padding: 8px;
      border: 1px solid #ccc;
      border-radius: 4px;
      box-sizing: border-box;
      font-family: 'Ubuntu', sans-serif;
      font-size: 16px;
      transition: border-color 0.2s;
    }

    .input-group input:focus,
    .input-group textarea:focus,
    .input-group select:focus {
      outline: none;
      border-color: #008351;
    }

    textarea {
      resize: vertical;
      min-height: 60px;
      line-height: 1.4;
    }

    .gdpr-checkbox-container {
      display: flex;
      align-items: flex-start;
      cursor: pointer;
      font-size: 14px;
      line-height: 1.4;
      margin-top: 12px;
      user-select: none;
    }

   .gdpr-checkbox-container input {
      position: absolute;
      opacity: 0;
      cursor: pointer;
      height: 0;
      width: 0;
    }

    .gdpr-checkmark {
      position: relative;
      height: 18px;
      width: 18px;
      min-width: 18px;
      background-color: #fff;
      border: 2px solid #ddd;
      border-radius: 3px;
      margin-right: 10px;
      margin-top: 1px;
      display: inline-block;
      transition: all 0.2s ease;
    }

    .gdpr-checkbox-container:hover .gdpr-checkmark {
      border-color: #008351;
    }

    .gdpr-checkbox-container input:checked ~ .gdpr-checkmark {
      background-color: #fff;
      border-color: #008351;
    }

    .gdpr-checkbox-container input:checked ~ .gdpr-checkmark:after {
      display: block;
    }

    .gdpr-checkmark:after {
      content: "\2713";
      position: absolute;
      display: none;
      left: 4px;
      top: 0px;
      color: #008351;
      font-size: 14px;
      font-weight: bold;
      transform: none;
    }

.combo-list { display: none; position: fixed; z-index: 1000;
  background: #fff; border: 1px solid #ccc; border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); max-height: 240px; overflow-y: auto; }

.combo-item { padding: 4px 10px; cursor: pointer; font-size: 15px;
  font-family: 'Segoe UI', system-ui, Arial, sans-serif; line-height: 1.5; }
.combo-item:hover, .combo-item.active { background: #f0f7f4; }
.combo-item.current { color: #008351; font-weight: bold; }

.combo-group { padding: 4px 10px; font-size: 15px; font-weight: bold;
  font-family: 'Segoe UI', system-ui, Arial, sans-serif; line-height: 1.5; cursor: default; }
.combo-grouped .combo-item { padding-left: 24px; }

.group-header:focus { outline: none; }
.group-header:focus-visible, [data-act="toggleCoefficientsSection"]:focus-visible {
  outline: none;
  box-shadow: inset -3px 0 0 0 #c00000;
  transition: all 0.2s ease; }

.topbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 16px; }
.topbar-back { color: #008351; text-decoration: none; font-size: 14px; }
.topbar-back:hover { text-decoration: underline; }
.topbar-share { background: #fff; border: 1px solid #008351; color: #008351; border-radius: 6px; padding: 6px 10px; font-size: 13px; cursor: pointer; }

.input-clear { display: flex; gap: 5px; }
.input-clear input, .input-clear select { flex: 1; min-width: 0; }
.btn-clear { padding: 8px 12px; background: #fff; border: 1px solid #ccc; border-radius: 4px; cursor: pointer; color: #666; }

.notice { font-size: 13px; margin-top: 4px; padding: 6px 8px; border-radius: 4px; border-left: 3px solid; }
.notice.info { color: #008351; background: #f0f8f5; border-left-color: #008351; }
.notice.warning { color: #333; background: #f0f8f5; border-left-color: #c00000; }
.notice.error { color: #c00000; background: #fdf2f2; border-left-color: #c00000; }

.power-help a { color: inherit; text-decoration: underline; }
#requiredPower:not(:placeholder-shown) ~ .power-help { display: none; }

.btn-stack { display: flex; flex-direction: column; gap: 10px; }
.btn-stack .btn { flex: none; width: 100%; margin: 0; }

.btn-stack .btn.btn-enquiry { background: #fff; color: #008351; border: 1px solid #008351; }
.btn-stack .btn.btn-enquiry:hover { background: #eaf5ef; }
.btn-stack .btn.btn-enquiry:disabled { color: #999; border-color: #ccc; background: #f5f5f5; }

details.syshelp > summary { cursor: pointer; list-style: none; color: #008351; font-weight: 600; padding: 8px 0; }
details.syshelp > summary::-webkit-details-marker { display: none; }
details.syshelp > summary::before { content: "+ "; font-weight: bold; }
details.syshelp[open] > summary::before { content: "– "; }
details.syshelp > summary:focus-visible { outline: 2px solid #008351; outline-offset: 2px; }

.syshelp-close { cursor: pointer; color: #008351; font-weight: 600; padding: 10px 0 6px; }
.syshelp-close::before { content: "– "; font-weight: bold; }
.syshelp-close:focus-visible { outline: 2px solid #008351; outline-offset: 2px; }

.syshelp-h { color: #008351; font-size: 14px; font-weight: 600; margin: 12px 0 4px; }

.syshelp .notice ul.syshelp-list { margin: 4px 0 0; padding-left: 18px; }
.syshelp .notice ul.syshelp-list li { margin: 2px 0; }

.syshelp .notice a { color: inherit; text-decoration: underline; }
