 :root {
     font-family:
         Inter,
         ui-sans-serif,
         system-ui,
         -apple-system,
         sans-serif;
     color: #18312e;
     background: #f5f7f4;
     font-synthesis: none;
 }

 * {
     box-sizing: border-box;
 }

 body {
     margin: 0;
 }

 header {
     max-width: 1040px;
     margin: auto;
     padding: 32px 28px;
     display: flex;
     align-items: center;
     gap: 10px;
     font-weight: 750;
     letter-spacing: -0.5px;
 }

 .mark {
     display: grid;
     place-items: center;
     width: 32px;
     height: 32px;
     border-radius: 10px;
     background: #174f43;
     color: white;
     font-size: 21px;
 }

 header span:last-child {
     margin-left: auto;
     font-size: 12px;
     letter-spacing: 1px;
     color: #74817b;
     font-weight: 500;
 }

 main {
     max-width: 860px;
     margin: 55px auto;
     padding: 0 24px;
 }

 .eyebrow {
     font-size: 12px;
     letter-spacing: 2px;
     font-weight: 700;
     color: #45816d;
 }

 h1 {
     font-size: clamp(32px, 5vw, 48px);
     letter-spacing: -2px;
     line-height: 1.12;
     margin: 16px 0;
 }

 p {
     color: #6a7872;
     line-height: 1.6;
 }

 .intro {
     margin-bottom: 34px;
 }

 .panel {
     background: white;
     border: 1px solid #dfe6df;
     border-radius: 20px;
     overflow: hidden;
     box-shadow: 0 12px 40px #21392c06;
 }

 .form {
     padding: 28px;
 }

 .topline {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 16px;
     margin-bottom: 24px;
 }

 h2 {
     font-size: 16px;
     margin: 0;
     letter-spacing: -0.3px;
 }

 button {
     font: inherit;
     cursor: pointer;
     border: 1px solid #dbe4dc;
     background: white;
     border-radius: 9px;
     padding: 10px 14px;
     color: #275447;
     font-size: 13px;
     font-weight: 600;
 }

 button:hover {
     background: #edf4ee;
 }

 button:focus-visible,
 input:focus-visible,
 select:focus-visible {
     outline: 3px solid #93c8b3;
     outline-offset: 3px;
 }

 .now {
     border: 0;
     background: #edf5ef;
 }

 .fields {
     display: grid;
     grid-template-columns: 1.2fr 1fr;
     gap: 20px;
 }

 label {
     display: block;
     font-size: 13px;
     font-weight: 600;
     margin-bottom: 9px;
 }

 input,
 select {
     width: 100%;
     font: inherit;
     background: #fafcf9;
     border: 1px solid #dbe3db;
     border-radius: 10px;
     padding: 13px;
     color: #243d34;
     min-height: 49px;
 }

 select {
     margin-top: 0;
 }

 .zone {
     margin-top: 20px;
 }

 .hint {
     font-size: 12px;
     margin: 10px 0 0;
 }

 .results {
     padding: 28px;
     background: #eef4ee;
     border-top: 1px solid #dfe6df;
 }

 .result {
     display: flex;
     justify-content: space-between;
     align-items: center;
     gap: 16px;
     background: #fff;
     border: 1px solid #dce6db;
     padding: 20px;
     border-radius: 12px;
     margin-bottom: 12px;
 }

 .result.primary {
     background: #164f43;
     color: white;
     border: 0;
 }

 .result label {
     font-weight: 500;
     font-size: 12px;
     color: #698074;
 }

 .primary label {
     color: #b1d5c5;
 }

 .value {
     font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
     font-size: clamp(20px, 4vw, 28px);
     letter-spacing: -0.7px;
     overflow-wrap: anywhere;
 }

 .primary button {
     background: #ffffff12;
     border-color: #ffffff35;
     color: white;
 }

 .primary button:hover {
     background: #ffffff24;
 }

 .iso .value {
     font-size: 15px;
     letter-spacing: 0;
 }

 .iso {
     margin-bottom: 0;
 }

 .status {
     font-size: 12px;
     color: #567767;
     min-height: 20px;
     margin-top: 14px;
 }

 .error {
     color: #a13535;
     font-size: 13px;
     margin: 12px 0 0;
 }

 .foot {
     display: flex;
     gap: 12px;
     align-items: flex-start;
     margin: 24px 4px;
     font-size: 12px;
     line-height: 1.7;
     color: #7a857e;
 }

 .foot strong {
     color: #52675b;
     font-weight: 600;
 }

 button:disabled {
     opacity: 0.45;
     cursor: not-allowed;
 }

 @media (max-width: 540px) {
     main {
         margin: 28px auto;
     }

     .fields {
         grid-template-columns: 1fr;
     }

     .form,
     .results {
         padding: 20px;
     }

     .result {
         padding: 16px;
         gap: 10px;
     }

     .result button {
         padding: 9px 10px;
     }

     .topline {
         gap: 8px;
     }

     header span:last-child {
         display: none;
     }

     .iso {
         align-items: flex-start;
     }

     .iso .value {
         font-size: 12px;
     }

     h1 {
         letter-spacing: -1.2px;
     }
 }