:root{
  --primary:#1467b3;
  --primary-dark:#0d4378;
  --accent:#37c978;
  --background:#f7f9fc;
  --white:#fff;

  --danger:#ffc5c5;
  --danger-text:#c0392b;

  --border:#e5e7eb;

  --required:#e04b3c;
  --optional:#25be7c;

  --form-required:#1467b3;     /* Institutional blue */
  --form-optional:#d5dae0;     /* Light gray */
  --form-bg-required:#f7fbff;  /* Very light blue */
  --form-bg-optional:#f9f9fb;  /* Very light gray */
}

/* =========================
   Reset & Base
   ========================= */
*{ box-sizing:border-box; }

html, body{
  margin:0;
  min-height:100vh;
}

body{
  font-family:'Segoe UI','Roboto',Arial,sans-serif;
  background:var(--background);
  color:#222;
}

/* =========================
   Fixed Logo
   ========================= */
.fixed-logo{
  position:fixed;
  top:0;
  left:0;
  z-index:250;
  background:var(--white);
  padding:0.3rem 1rem;
  height:68px;
  width:170px;
  display:flex;
  align-items:center;
  box-shadow:0 3px 15px rgba(20,103,179,0.07);
  border-bottom-right-radius:16px;
  border-right:1px solid var(--border);
}
.fixed-logo img{
  height:42px;
  max-width:150px;
  object-fit:contain;
  display:block;
}

/* =========================
   Sidebar
   ========================= */
.sidebar{
  background:var(--primary-dark);
  color:var(--white);
  width:170px;
  min-width:130px;
  max-width:200px;

  position:fixed;
  left:0;
  top:68px;                 /* below logo */
  bottom:0;
  height:calc(100vh - 68px);

  display:flex;
  flex-direction:column;
  padding:0;

  z-index:100;
  border-right:1px solid var(--border);
  transition:transform 0.3s;
}

.sidebar-header{
  padding:1.1rem 1rem 0.7rem 1.2rem;
  font-weight:700;
  font-size:1.09rem;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#fff;
  flex-shrink:0;
}

/* Scrollable menu area */
.menu-nav{
  flex:1 1 auto;
  min-height:0; /* critical for flex scroll */
  overflow-y:auto;

  display:flex;
  flex-direction:column;
  gap:0.15rem;
  padding:0.4rem 0.2rem 1.2rem;

  /* Scrollbar styling */
  scrollbar-width:thin;
  scrollbar-color:#c5daf3 #113458;
}
.menu-nav::-webkit-scrollbar{ width:8px; }
.menu-nav::-webkit-scrollbar-thumb{
  background:#c5daf3;
  border-radius:5px;
}
.menu-nav::-webkit-scrollbar-track{
  background:#113458;
  border-radius:7px;
}

.menuoption{
  display:block;
  background:none;
  color:var(--white) !important;
  padding:0.48rem 1.05rem;
  border-radius:7px;
  font-size:1.02rem;
  font-weight:500;
  text-decoration:none;
  border:none;
  text-align:left;
  margin:0;
  cursor:pointer;
  letter-spacing:0.01em;
  transition:background 0.18s, color 0.14s, transform 0.07s;
}
.menuoption:not(.active):hover{
  background:var(--primary);
  color:var(--accent) !important;
  transform:translateX(3px) scale(1.04);
}
.menuoption.active,
.menuoption.selected{
  background:var(--accent);
  color:var(--primary-dark) !important;
  font-weight:700;
}

/* =========================
   Main Content Layout
   ========================= */
.main-content{
  flex:1;
  padding:2.5rem 2rem;
  background:var(--background);
  min-width:0;
  margin-left:170px; /* match sidebar */
  transition:margin-left 0.3s;
}

/* Hamburger */
.menu-toggle{
  display:none;
  position:fixed;
  top:16px;
  left:15px;
  background:none;
  border:none;
  z-index:300;
  cursor:pointer;
}
.menu-toggle span{
  display:block;
  width:2rem;
  height:0.22rem;
  background:var(--primary-dark);
  margin:0.38rem 0;
  border-radius:2px;
  transition:0.3s;
}

/* =========================
   Header & Working Zone
   ========================= */
.headerZone{
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:center;

  font-size:2.1rem;
  font-weight:700;
  color:var(--primary-dark);
  letter-spacing:0.04em;

  margin-left:170px;
  margin-top:0.9rem;
  margin-bottom:1.8rem;

  text-align:center;
}

.workingZone{
  margin-left:200px;
  margin-top:1.2rem;
  max-width:960px;
}

.table-form{ width:100%; }

/* =========================
   Buttons
   ========================= */
.delete-button,
.class-buttonLink{
  display:inline-block;
  background:var(--primary);
  color:var(--white) !important;
  padding:0.8rem 2rem;
  border-radius:8px;
  font-size:1.09rem;
  font-weight:600;
  border:none;
  margin:0.3rem 0.8rem 0.3rem 0;
  text-align:center;
  text-decoration:none;
  box-shadow:0 2px 8px rgba(20,103,179,0.04);
  cursor:pointer;
  transition:background 0.15s, color 0.15s, transform 0.07s;
  letter-spacing:0.02em;
  min-width:130px;
}

.delete-button{
  background:var(--danger);
  color:var(--danger-text) !important;
  border:1.5px solid #f8b0b0;
}
.delete-button:hover{
  background:#f6eeee;
  color:#b02a19 !important;
  border-color:#eabcbc;
}

.class-buttonLink:hover{
  background:var(--accent);
  color:var(--primary-dark) !important;
  transform:translateY(-2px) scale(1.03);
}

/* "Link as button" */
.button-link{
  display:inline-block;
  background:#e7e7e7;
  color:#444 !important;
  font-size:1.04rem;
  font-weight:500;
  border:none;
  border-radius:7px;
  padding:0.60rem 1.4rem;
  margin:0.3rem 0;
  text-align:center;
  text-decoration:none;
  box-shadow:0 1px 3px rgba(130,130,130,0.03);
  cursor:pointer;
  transition:background 0.13s, color 0.13s, box-shadow 0.12s;
}
.button-link:hover,
.button-link:focus{
  background:#f4f4f6;
  color:var(--primary-dark) !important;
  text-decoration:none;
  box-shadow:0 2px 8px rgba(20,103,179,0.04);
}

/* Back + primary action */
.back-button{
  display:inline-block;
  background:#ececec;
  color:var(--primary-dark) !important;
  font-size:1.03rem;
  font-weight:600;
  padding:0.56rem 1.4rem;
  border-radius:7px;
  border:1.5px solid #d3dbe3;
  margin:0.35rem 0.2rem 0.35rem 0;
  text-decoration:none;
  letter-spacing:0.02em;
  transition:background 0.14s, color 0.14s, border 0.15s;
}
.back-button:hover{
  background:#e3eef8;
  color:var(--primary);
  border-color:var(--primary);
}

.send-button{
  display:inline-block;
  background:var(--primary);
  color:#fff !important;
  font-size:1.25rem;
  font-weight:700;
  padding:1.15rem 3.8rem;
  border-radius:7px;
  border:none;
  margin:0.55rem 0.2rem 0.55rem 0.4rem;
  text-align:center;
  box-shadow:0 2px 14px rgba(20,103,179,0.10);
  letter-spacing:0.04em;
  cursor:pointer;
  transition:background 0.14s, color 0.14s, box-shadow 0.13s;
}
.send-button:hover{
  background:var(--accent);
  color:var(--primary-dark) !important;
  box-shadow:0 4px 24px rgba(55,201,120,0.15);
}

/* Small utility buttons */
.clear-button,
.sendSearch-button{
  display:inline-block;
  background:#e7e7e7;
  color:var(--primary-dark) !important;
  font-size:0.97rem;
  font-weight:500;
  padding:0.28rem 1.05rem;
  border-radius:6px;
  border:1px solid #dadada;
  height:36px;
  cursor:pointer;
  transition:background 0.14s, color 0.13s;
  text-decoration:none;
}
.clear-button:hover,
.sendSearch-button:hover{
  background:#f6fafd;
  color:var(--primary);
}

/* =========================
   Searchbar Row
   ========================= */
.searchbar-row{
  display:flex;
  align-items:center;
  gap:0.7rem;
  margin-bottom:0.9rem;
  flex-wrap:nowrap; /* never wrap on desktop */
}

.searchControl{
  flex:1 1 220px;
  min-width:60px;
  max-width:350px;
  height:38px;
  font-size:1.04rem;
  padding:0 1rem;
  border:1.5px solid var(--border);
  border-radius:7px;
  background:#fff;
  color:#222;
  appearance:none;
  outline:none;
}

.rppControl{
  width:90px;
  height:38px;
}

/* =========================
   Form Required / Optional
   ========================= */
.field-required th label:after{
  content:" *";
  color:var(--form-required);
  font-weight:700;
  margin-left:2px;
}
.field-required th,
.field-required th label{
  font-weight:600;
  color:var(--primary-dark);
}
.field-required input,
.field-required select,
.field-required textarea{
  border-left:3px solid var(--form-required);
  background:var(--form-bg-required);
}

.field-optional th label:after{ content:""; }
.field-optional th,
.field-optional th label{
  color:#7e8693;
  font-weight:500;
}
.field-optional input,
.field-optional select,
.field-optional textarea{
  border-left:3px solid var(--form-optional);
  background:var(--form-bg-optional);
}

/* Inputs */
input[type="text"],
input[type="email"],
input[type="password"],
input[list],
select,
textarea{
  width:97%;
  padding:0.52rem 0.8rem;
  border:1.5px solid var(--border);
  border-radius:6px;
  font-size:1.04rem;
  background:#fcfdff;
  color:#212529;
  outline:none;
  transition:border 0.2s, background 0.2s;
  margin-top:0.05rem;
}
input:focus,
select:focus,
textarea:focus{
  border-color:var(--primary);
  background:#fff;
}
input[disabled],
select[disabled],
textarea[disabled]{
  background:#f2f2f2;
  color:#aaa;
  border-style:dashed;
}

/* File input button */
input[type="file"]::file-selector-button{
  background-color:var(--primary);
  color:white;
  border:none;
  padding:8px 16px;
  border-radius:6px;
  cursor:pointer;
  font-weight:700;
}
input[type="file"]::file-selector-button:hover{
  background-color:var(--primary-dark);
}

/* =========================
   Login
   ========================= */
.login-container{
  margin-left:190px;
  margin-top:80px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:320px;
}

.login-form-table{
  background:#fff;
  padding:2.2rem 2.3rem 1.5rem;
  border-radius:12px;
  box-shadow:0 2px 16px rgba(20,103,179,0.07);
  min-width:340px;
  max-width:99vw;
}

.login-form-table th{
  font-size:1.07rem;
  font-weight:500;
  color:var(--primary-dark);
  text-align:left;
  padding-bottom:0.33rem;
}
.login-form-table td{ padding-bottom:0.82rem; }

.login-form-table input[type="text"],
.login-form-table input[type="password"]{
  width:100%;
  font-size:1.04rem;
  padding:0.55rem 1.0rem;
  border-radius:7px;
  border:1.5px solid var(--border);
  background:#fafcff;
}
.login-form-table input:focus{
  border-color:var(--primary);
  background:#fff;
}

.login-form-table button[type="submit"]{
  background:var(--primary);
  color:#fff;
  font-weight:600;
  font-size:1.09rem;
  border:none;
  border-radius:8px;
  padding:0.64rem 2.1rem;
  margin-top:0.6rem;
  margin-bottom:0.3rem;
  cursor:pointer;
  transition:background 0.15s, color 0.15s;
  box-shadow:0 2px 8px rgba(20,103,179,0.08);
}
.login-form-table button[type="submit"]:hover{
  background:var(--accent);
  color:var(--primary-dark);
}

.login-form-table .recover-button{
  display:inline-block;
  background:#e7e7e7;
  color:#656a71 !important;
  font-size:1.04rem;
  font-weight:500;
  border:none;
  border-radius:7px;
  padding:0.58rem 1.2rem;
  margin-top:0.4rem;
  margin-bottom:0.2rem;
  text-decoration:none;
  box-shadow:0 1px 3px rgba(130,130,130,0.03);
  cursor:pointer;
  transition:background 0.13s, color 0.13s;
}
.login-form-table .recover-button:hover{
  background:#f4f4f6;
  color:var(--primary-dark) !important;
  text-decoration:none;
}

/* =========================
   Recover Form (modern)
   ========================= */
.recover-form{
  max-width:400px;
  margin:0 auto;
  background:transparent;
  padding:0;
  border-radius:12px;
  display:flex;
  flex-direction:column;
  gap:1.6rem;
}
.form-group{
  display:flex;
  flex-direction:column;
  gap:0.49rem;
}
.form-label{
  font-weight:600;
  color:var(--primary-dark);
  font-size:1.09rem;
  letter-spacing:0.02em;
}
.form-input{
  padding:0.62rem 0.9rem;
  border:1.5px solid var(--border);
  border-radius:7px;
  font-size:1.04rem;
  background:#fcfdff;
  color:#212529;
  outline:none;
  transition:border 0.2s, background 0.2s;
}
.form-input:focus{
  border-color:var(--primary);
  background:#fff;
}
.form-actions{
  display:flex;
  gap:1.2rem;
  justify-content:flex-start;
  align-items:center;
}

/* =========================
   Error Box
   ========================= */
.error-div{
  background:#ffeaea;
  color:#b01414;
  border:2px solid #f27676;
  border-radius:8px;
  font-size:1.11rem;
  font-weight:800;
  padding:1rem 1.5rem;
  margin:1.1rem 0 1.5rem;
  box-shadow:0 2px 12px rgba(220,0,0,0.07);
  text-align:center;
  letter-spacing:0.04em;
}
.error-div:before{
  content:"⚠ ";
  font-size:1.22rem;
  vertical-align:middle;
}

/* =========================
   Footer
   ========================= */
.footerClass{
  width:100%;
  box-sizing:border-box;
  border-top:1px solid #d0d0d0;

  display:flex;
  gap:16px;
  justify-content:center;
  align-items:center;

  padding:12px 16px;
  text-align:center;
}
.footerColum1,
.footerColum2{
  flex:0 1 320px;
  display:flex;
  justify-content:center;
}
.footerClass a{
  display:inline-block;
  text-decoration:none;
  font-size:14px;
}

/* =========================
   WorkingZone: status + statics + buttons row
   ========================= */
.workingZone .form-table tr:first-child td{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.2rem;
}
.workingZone .showStatus{ flex:0 0 auto; }
.workingZone .showStatics{
  flex:1 1 auto;
  display:flex;
  justify-content:flex-end;
}
.workingZone .showStatics .main-panel{
  width:100%;
  max-width:560px;
}

/* Button row distribution */
.workingZone .form-table tr.buttonRow td{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:0.8rem;
}
.workingZone .buttonFirstColumn,
.workingZone .buttonSecondColumn,
.workingZone .buttonThirdColumn,
.workingZone .buttonFourtColumn,
.workingZone .buttonFifhtColumn{
  flex:1 1 0;
  display:flex;
}
.workingZone .buttonFirstColumn a,
.workingZone .buttonSecondColumn a,
.workingZone .buttonThirdColumn a,
.workingZone .buttonFourtColumn a,
.workingZone .buttonFifhtColumn a{
  width:100%;
  text-align:center;
}

/* Keep status text readable on desktop */
@media (min-width:769px){
  .workingZone .showStatus{
    flex:0 1 40%;
    max-width:40%;
    min-width:260px;
  }
  .workingZone .showStatus,
  .workingZone .showStatus *{
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
}

/* =========================
   Stats table: prevent "stacked cells" bug
   ========================= */
.main-panel{
  border-collapse:collapse;
  table-layout:auto;
}
.main-panel tr{ display:table-row !important; }
.main-panel th,
.main-panel td{ display:table-cell !important; }
.main-panel thead{ display:table-header-group !important; }
.main-panel tbody{ display:table-row-group !important; }

.main-panel th,
.main-panel td{
  padding:6px 10px;
  text-align:center;
  white-space:nowrap;
}
.main-panel th:first-child,
.main-panel td:first-child{
  text-align:left;
}

/* =========================
   Demo/Test Mode Highlight
   ========================= */
.demoSpecial{
  display:block;
  padding:14px 16px;
  margin:12px 0;
  border:1px solid rgba(245,158,11,.55);
  border-left:6px solid #f59e0b;
  border-radius:10px;
  background:linear-gradient(180deg, rgba(245,158,11,.14), rgba(245,158,11,.06));
  color:#1f2937;
  font-size:0.98rem;
  line-height:1.35;
  box-shadow:0 6px 18px rgba(17,24,39,.08);
}
.demoSpecial::before{
  content:"⚠️  TEST MODE";
  display:inline-block;
  font-weight:800;
  letter-spacing:.4px;
  font-size:.78rem;
  padding:4px 10px;
  margin-bottom:10px;
  border-radius:999px;
  background:rgba(245,158,11,.22);
  color:#92400e;
}
.demoSpecial a{
  color:#92400e;
  font-weight:700;
  text-decoration:underline;
}

/* =========================
   Navigate Buttons
   ========================= */
.navigate-buttons{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:0.7rem;

  margin:2.2rem 0 1.2rem;
  padding:0.75rem 1rem;
  border-radius:14px;
  background:linear-gradient(90deg, #f7fbff 70%, #eaf3fc 100%);
  box-shadow:0 2px 10px rgba(20,103,179,0.07);
  font-size:1.10rem;
  font-weight:500;
  border:1.5px solid #e2eaf2;
}
.navigate-buttons a{
  display:inline-block;
  padding:0.34rem 1.15rem;
  background:var(--primary);
  color:#fff !important;
  border-radius:8px;
  font-size:1.05rem;
  font-weight:600;
  text-decoration:none;
  box-shadow:0 1px 6px rgba(20,103,179,0.10);
  transition:background 0.17s, color 0.14s, box-shadow 0.12s, transform 0.08s;
}
.navigate-buttons a:hover,
.navigate-buttons a:focus{
  background:var(--accent);
  color:var(--primary-dark) !important;
  box-shadow:0 3px 18px rgba(55,201,120,0.11);
  transform:translateY(-1.5px) scale(1.04);
}
.navigate-buttons .current,
.navigate-buttons span{
  color:var(--primary-dark);
  font-weight:700;
  background:none;
  padding:0 0.7rem;
  font-size:1.09rem;
}

/* =========================
   Browse Table (clean + compact checkbox + NO horizontal overflow)
   ========================= */

/* Space between header bar and table */
.browseframe .table-responsive{
  margin-top:14px;
  width:100%;
  max-width:100%;
  overflow-x:hidden; /* final policy: no horizontal scroll */
  overflow-y:visible;
}

/* Table container */
.browseframe table.browse.showData{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  table-layout:fixed !important;

  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 2px 14px rgba(20,103,179,0.06);
}

/* Header cells */
.browseframe table.browse.showData thead th{
  padding:12px 14px;
  font-size:0.98rem;
  font-weight:700;
  color:var(--primary-dark);
  background:linear-gradient(180deg, #f7fbff 0%, #eef6ff 100%);
  border-bottom:1px solid #dbe7f5;

  white-space:normal !important;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.15;
  text-align:center;
  vertical-align:middle;
}

/* Body cells */
.browseframe table.browse.showData tbody td{
  padding:12px 14px;
  border-bottom:1px solid #f0f3f7;
  vertical-align:middle;

  overflow:hidden;
  text-overflow:ellipsis; /* avoid expanding the table */
}

/* Hover */
.browseframe table.browse.showData tbody tr:hover td{
  background:#f7fbff;
}

/* Checkbox column compact */
.browseframe table.browse.showData thead th:first-child,
.browseframe table.browse.showData tbody td:first-child{
  width:54px !important;
  padding-left:8px !important;
  padding-right:8px !important;
  text-align:center;
  white-space:nowrap !important;
}
.browseframe table.browse.showData tbody td:first-child input[type="checkbox"]{
  width:16px;
  height:16px;
  vertical-align:middle;
}

/* =========================
   Admin table header (if used)
   ========================= */
.adminseal-table-header{
  font-size:1.4rem;
  font-weight:700;
  text-align:center;
  padding:8px;
  background-color:#2c3e50;
  color:#ffffff;
  border:1px solid #1f2d3a;
  border-bottom:3px solid #1abc9c;
  letter-spacing:1px;
}

/* =========================
   Responsive
   ========================= */

/* <= 900px: collapsible sidebar + smaller logo + overlay */
@media (max-width:900px){
  .fixed-logo{
    height:56px;
    width:120px;
    padding:0.2rem 0.6rem 0.2rem 0.7rem;
    border-bottom-right-radius:10px;
  }
  .fixed-logo img{
    height:32px;
    max-width:90px;
  }

  .sidebar{
    width:70vw;
    min-width:120px;
    max-width:230px;
    top:56px;
    height:calc(100vh - 56px);
    transform:translateX(-100%);
    box-shadow:2px 0 18px rgba(20,103,179,0.07);
  }
  .sidebar.open{ transform:translateX(0); }

  .main-content{
    margin-left:0;
    padding:1.2rem 0.6rem;
  }
  .menu-toggle{ display:block; }

  .headerZone{
    margin-left:0;
    font-size:1.25rem;
    min-height:48px;
    padding:0.6rem 0.5rem;
  }
  .workingZone{
    margin-left:0.6rem;
    max-width:99vw;
    margin-top:1.0rem;
  }

  /* Click-outside overlay */
  .sidebar.open ~ .main-content:before{
    content:'';
    position:fixed;
    inset:0;
    z-index:90;
    background:rgba(0,0,0,0.07);
    display:block;
  }
}

/* <= 768px: workingZone stacks + buttons vertical + stats smaller */
@media (max-width:768px){
  .workingZone .form-table tr:first-child td{
    flex-direction:column;
    align-items:stretch;
  }
  .workingZone .showStatics{ justify-content:stretch; }

  .workingZone .form-table tr.buttonRow td{
    flex-direction:column;
    align-items:stretch;
    gap:0.7rem;
  }
  .workingZone .buttonFirstColumn,
  .workingZone .buttonSecondColumn,
  .workingZone .buttonThirdColumn,
  .workingZone .buttonFourtColumn,
  .workingZone .buttonFifhtColumn{
    width:80%;
    margin-left:10%;
    margin-right:10%;
  }
  .workingZone a.button-link{
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    display:inline-block;
  }

  /* Stats table: fit better on small screens */
  table.main-panel{
    width:100%;
    table-layout:auto;
    font-size:12px;
  }
  table.main-panel th,
  table.main-panel td{
    padding:6px 6px;
    white-space:nowrap;
  }
  table.main-panel tr:first-child th{
    font-size:12px;
    letter-spacing:2px;
  }
  table.main-panel th:first-child{ font-size:12px; }

  /* Footer becomes column */
  .footerClass{
    flex-direction:column;
    gap:10px;
  }
  .footerColum1,
  .footerColum2{
    width:100%;
    flex:0 1 auto;
  }
}

/* <= 600px: mobile ergonomics */
@media (max-width:600px){
  html, body{ overflow-x:hidden; }

  /* Logo moves to the right on mobile */
  .fixed-logo{
    left:auto;
    right:0;
    top:0;
    border-bottom-right-radius:0;
    border-bottom-left-radius:16px;
    border-right:none;
    border-left:1px solid var(--border);
  }
  .menu-toggle{
    left:10px;
    right:auto;
  }

  /* Give content some top spacing (logo overlap protection) */
  .main-content,
  .browseframe{
    margin-top:25px !important;
  }

  /* Searchbar stacks */
  .searchbar-row{
    flex-direction:column;
    align-items:stretch;
    gap:0.45rem;
    width:100%;
  }
  .searchControl{
    width:100%;
    min-width:0;
    max-width:100%;
    font-size:1.1rem;
    padding:0.7rem 0.8rem;
    margin:0;
    flex:none;
  }
  .rppControl,
  .clear-button,
  .sendSearch-button{
    width:100%;
    min-width:0;
    margin:0.3rem 0;
  }

  /* Forms / buttons better touch targets */
  .table-form, form, .table-form tr, .table-form td{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    display:block;
    padding:0;
  }
  .table-form input[type="text"],
  .table-form input[type="password"]{
    font-size:1.15rem;
    width:100%;
    padding:1rem;
    margin-bottom:0.7rem;
  }
  .send-button{
    width:100%;
    min-width:0;
    font-size:1.18rem;
    padding:1.2rem 0;
    margin:0.7rem 0 0.9rem;
  }
  .button-link{
    width:48%;
    min-width:100px;
    margin:0.3rem 1%;
    padding:0.7rem 0;
    font-size:1.09rem;
    display:inline-block;
  }
  .table-form tr:last-child td{
    display:flex;
    gap:0.4rem;
    justify-content:space-between;
    padding:0;
  }

  /* Recover form actions stack */
  .recover-form{
    max-width:99vw;
    gap:1.15rem;
  }
  .form-actions{
    flex-direction:column;
    gap:0.6rem;
    align-items:stretch;
  }
  .form-actions .button-link,
  .form-actions .send-button{
    width:100%;
    margin:0;
  }

  /* DemoSpecial compact */
  .demoSpecial{
    padding:12px 14px;
    border-radius:12px;
    font-size:.95rem;
  }
}

.form-acceptance{
    margin: 14px 0 6px 0;
}

.acceptance-label{
    display:flex;
    align-items:flex-start;
    gap:8px;
    font-size:0.95rem;
    line-height:1.4;
    color:#333;
}

.acceptance-checkbox{
    margin-top:2px;
    transform:scale(1.1);
    cursor:pointer;
}

.send-button:disabled{
    opacity:.55;
    cursor:not-allowed;
    filter:grayscale(.3);
}

.form-acceptance a{
    color:#1467b3;
    text-decoration:underline;
}

.form-acceptance a:hover{
    color:#0d4378;
}