    [hidden]{ display:none !important; }

    .builder-btn{
      border:none;
      border-radius:999px;
      background:#e8f0ff;
      color:#003f91;
      padding:calc(14px * var(--top-control-scale, 1)) calc(20px * var(--top-control-scale, 1));
      font-size:calc(18px * var(--top-control-scale, 1));
      font-weight:900;
      cursor:pointer;
      box-shadow:0 2px 6px rgba(0,0,0,0.05);
      min-height:calc(46px * var(--top-control-scale, 1));
      line-height:1;
    }
    .resize-mode-btn,
    .fit-mode-btn{
      border:none;
      border-radius:999px;
      background:#fff;
      color:#25364a;
      padding:calc(14px * var(--top-control-scale, 1)) calc(20px * var(--top-control-scale, 1));
      font-size:calc(18px * var(--top-control-scale, 1));
      font-weight:900;
      cursor:pointer;
      box-shadow:0 2px 6px rgba(0,0,0,0.05);
      border:1px solid #d7e0ea;
      min-height:calc(46px * var(--top-control-scale, 1));
      line-height:1;
    }
    .resize-mode-btn.on,
    .fit-mode-btn.on{
      background:#eaffea;
      color:#086b2b;
      outline:3px solid #00c853;
    }
    .builder-overlay{
      position:fixed;
      inset:0;
      z-index:3000;
      background:rgba(15,23,42,0.48);
      display:flex;
      align-items:center;
      justify-content:center;
      padding:clamp(12px, 1.6vw, 32px);
      pointer-events:auto;
    }
    body.board-builder-window{
      margin:0;
      background:#f8fafc;
    }
    body.board-builder-window .builder-overlay{
      position:fixed;
      inset:0;
      background:#f8fafc;
      padding:0;
      align-items:stretch;
      justify-content:stretch;
    }
    body.board-builder-window .builder-panel{
      width:100vw;
      height:100vh;
      border-radius:0;
      box-shadow:none;
    }
    .reauth-overlay{
      position:fixed;
      inset:0;
      z-index:3200;
      background:rgba(15,23,42,0.48);
      display:flex;
      align-items:center;
      justify-content:center;
      padding:clamp(24px, 4vw, 72px);
      pointer-events:auto;
      box-sizing:border-box;
    }
    .reauth-panel{
      width:min(760px, 100%);
      max-height:calc(100vh - clamp(48px, 8vw, 144px));
      box-sizing:border-box;
      background:#fff;
      border:1px solid #dfe6ef;
      border-radius:14px;
      box-shadow:0 20px 60px rgba(15,23,42,0.35);
      padding:clamp(40px, 5vw, 64px);
      display:flex;
      flex-direction:column;
      gap:clamp(22px, 2.4vw, 34px);
      overflow:auto;
    }
    .reauth-panel h3{ margin:0; font-size:clamp(42px, 3.8vw, 58px); line-height:1.12; color:#002f6c; }
    .reauth-panel p{ margin:0; color:#536171; font-size:clamp(24px, 2vw, 34px); line-height:1.3; font-weight:700; overflow-wrap:anywhere; }
    .reauth-panel label{ display:flex; flex-direction:column; gap:clamp(12px, 1.2vw, 18px); font-size:clamp(26px, 2.1vw, 36px); line-height:1.25; font-weight:900; color:#25364a; }
    .reauth-panel input{
      width:100%;
      box-sizing:border-box;
      border:3px solid #d8e0ea;
      border-radius:12px;
      padding:clamp(24px, 2vw, 34px) clamp(26px, 2.4vw, 40px);
      min-height:clamp(84px, 7vw, 112px);
      font-size:clamp(30px, 2.4vw, 40px);
      line-height:1.2;
    }
    .reauth-message{ min-height:clamp(32px, 2.4vw, 48px); color:#536171; font-size:clamp(22px, 1.8vw, 30px); line-height:1.35; font-weight:700; }
    .reauth-message.error{ color:#b42318; }
    .reauth-actions{
      display:flex;
      justify-content:flex-end;
      gap:clamp(16px, 1.6vw, 26px);
      margin-top:clamp(8px, 1.2vw, 20px);
      flex-wrap:wrap;
    }
    .reauth-actions .builder-action,
    .reauth-actions .builder-secondary{
      display:flex;
      align-items:center;
      justify-content:center;
      min-width:clamp(150px, 14vw, 220px);
      min-height:clamp(78px, 6vw, 104px);
      font-size:clamp(28px, 2.2vw, 38px);
      line-height:1;
      padding:clamp(22px, 1.9vw, 32px) clamp(34px, 2.8vw, 52px);
      text-align:center;
      white-space:nowrap;
    }
    .reauth-actions button[disabled]{ opacity:.6; cursor:not-allowed; }
    .builder-panel{
      width:92vw;
      height:88vh;
      max-width:none;
      max-height:none;
      background:#f8fafc;
      border-radius:8px;
      box-shadow:0 20px 60px rgba(15,23,42,0.35);
      display:flex;
      flex-direction:column;
      overflow:hidden;
      pointer-events:auto;
    }
    #uiSettingsOverlay.builder-overlay{
      display:block;
      background:transparent;
      padding:0;
      pointer-events:none;
    }
    .ui-settings-panel{
      position:fixed;
      width:min(1240px, 96vw);
      max-width:1240px;
      height:88vh;
      max-height:88vh;
      left:0;
      top:0;
      transform:none;
      pointer-events:auto;
    }
    .ui-settings-panel .builder-header{
      cursor:grab;
      touch-action:none;
      user-select:none;
    }
    .ui-settings-panel.dragging .builder-header{
      cursor:grabbing;
    }
    .ui-settings-panel .builder-header .builder-close{
      cursor:pointer;
      touch-action:auto;
      user-select:auto;
    }
    .ui-settings-panel .builder-content{
      padding:clamp(34px, 2.8vw, 58px) clamp(38px, 3.2vw, 72px);
      gap:clamp(32px, 2.6vw, 56px);
    }
    .ui-settings-panel .builder-footer{
      padding:clamp(20px, 1.6vw, 34px) clamp(38px, 3.2vw, 72px);
    }
    .ui-settings-section{
      margin-bottom:clamp(30px, 2.2vw, 48px);
      border-bottom:2px solid #d9e3ee;
      padding-bottom:clamp(28px, 2vw, 42px);
    }
    .ui-settings-section h4{
      margin:0 0 clamp(22px, 1.6vw, 34px);
      color:#003b78;
      font-size:clamp(34px, 2.35vw, 46px);
      line-height:1.18;
      font-weight:900;
    }
    .ui-settings-panel .ui-settings-row{
      display:grid;
      grid-template-columns:minmax(300px, 390px) minmax(300px, 1fr);
      gap:clamp(24px, 2vw, 42px);
      align-items:center;
      margin:clamp(14px, 1.15vw, 24px) 0;
      padding:clamp(10px, .85vw, 18px) 0;
      font-size:clamp(28px, 1.95vw, 38px);
      line-height:1.22;
      font-weight:900;
      color:#25364a;
    }
    .ui-settings-panel .ui-settings-row > span{
      font-size:clamp(28px, 1.95vw, 38px);
      line-height:1.22;
      font-weight:900;
    }
    .ui-settings-panel .builder-input,
    .ui-settings-panel .builder-select{
      border:3px solid #cfdbe8;
      border-radius:12px;
      min-height:clamp(78px, 5vw, 98px);
      padding:clamp(20px, 1.5vw, 30px) clamp(24px, 1.9vw, 38px);
      font-size:clamp(30px, 2.05vw, 40px);
      line-height:1.2;
      font-weight:800;
    }
    .ui-settings-panel input[type="checkbox"]{
      width:clamp(48px, 3.2vw, 64px);
      height:clamp(48px, 3.2vw, 64px);
      justify-self:start;
    }
    .ui-settings-panel .builder-secondary{
      min-height:clamp(76px, 5vw, 96px);
      padding:clamp(20px, 1.6vw, 30px) clamp(40px, 3vw, 64px);
      font-size:clamp(30px, 2vw, 40px);
    }
    @media (max-width: 820px){
      .ui-settings-panel .ui-settings-row{
        grid-template-columns:1fr;
        gap:clamp(12px, 2.8vw, 22px);
      }
    }
    .builder-header,
    .builder-footer{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding:clamp(16px, 1.2vw, 40px) clamp(20px, 1.6vw, 52px);
      background:#fff;
      border-bottom:1px solid #dde5ef;
      flex:0 0 auto;
      z-index:2;
    }
    .builder-footer{
      border-top:1px solid #dde5ef;
      border-bottom:none;
      justify-content:flex-end;
    }
    .builder-header h3{ margin:0; font-size:clamp(42px, 3vw, 96px); line-height:1.16; color:#002f6c; }
    .builder-header .builder-message{ flex:1 1 auto; }
    .builder-close{
      border:none;
      border-radius:8px;
      background:#eef4fb;
      color:#25364a;
      width:clamp(56px, 3vw, 96px);
      height:clamp(56px, 3vw, 96px);
      font-size:clamp(32px, 1.8vw, 64px);
      line-height:1;
      font-weight:900;
      cursor:pointer;
      flex:0 0 auto;
    }
    .builder-close:hover{ background:#ffecec; color:#9b1c1c; }
    .builder-content{
      padding:clamp(18px, 1.3vw, 44px) clamp(20px, 1.6vw, 52px);
      overflow-y:auto;
      overflow-x:hidden;
      display:grid;
      gap:clamp(26px, 1.8vw, 56px);
      flex:1 1 auto;
      align-content:start;
    }
    .builder-tabs{
      display:flex;
      flex-wrap:wrap;
      gap:clamp(12px, .8vw, 28px);
      padding:clamp(12px, 1vw, 30px) clamp(20px, 1.6vw, 52px) 0;
      background:#f8fafc;
      flex:0 0 auto;
      z-index:2;
    }
    .builder-tab{
      border:none;
      border-radius:8px 8px 0 0;
      padding:clamp(16px, 1.15vw, 38px) clamp(24px, 1.6vw, 54px);
      font-size:clamp(26px, 1.8vw, 60px);
      min-height:clamp(70px, 4vw, 120px);
      font-weight:900;
      cursor:pointer;
      background:#e9eef5;
      color:#25364a;
    }
    .builder-tab.on{ background:#fff; color:#003f91; outline:2px solid #cfe0ff; }
    .builder-section{
      background:#fff;
      border:1px solid #dde5ef;
      border-radius:8px;
      padding:clamp(24px, 1.7vw, 56px);
    }
    .builder-section h4{ margin:0 0 clamp(20px, 1.25vw, 42px); font-size:clamp(32px, 2.1vw, 72px); line-height:1.18; color:#25364a; }
    .builder-section h5{ margin:clamp(22px, 1.35vw, 44px) 0 14px; font-size:clamp(26px, 1.6vw, 56px); line-height:1.2; color:#3d4f63; }
    .builder-subsection{ margin-top:16px; }
    .builder-subsection h5{ margin:0 0 10px; font-size:18px; color:#3d4f63; }
    .builder-grid{
      display:grid;
      grid-template-columns: minmax(160px, 1fr) minmax(120px, 150px) minmax(110px, 130px);
      gap:clamp(16px, 1vw, 34px);
      align-items:center;
      margin-bottom:clamp(16px, 1vw, 34px);
      font-size:clamp(24px, 1.35vw, 52px);
      line-height:1.3;
    }
    .builder-grid > *{ min-width:0; }
    .builder-grid.cols{
      grid-template-columns:minmax(260px, 1fr) clamp(150px, 7vw, 320px) clamp(140px, 6vw, 260px) clamp(160px, 7vw, 320px) clamp(120px, 5vw, 220px) clamp(130px, 5vw, 220px);
      gap:clamp(14px, .9vw, 30px);
    }
    .builder-grid.weekend-cols{
      grid-template-columns:minmax(260px, 1fr) clamp(180px, 8vw, 360px) clamp(120px, 5vw, 220px) clamp(160px, 7vw, 320px) clamp(140px, 6vw, 260px);
    }
    .builder-grid.depts{
      grid-template-columns:minmax(260px, 1fr) clamp(180px, 8vw, 360px) clamp(150px, 7vw, 320px) clamp(120px, 5vw, 220px) clamp(130px, 5vw, 220px);
      gap:clamp(14px, .9vw, 30px);
    }
    .builder-grid.beds{
      grid-template-columns:minmax(280px, 1fr) clamp(120px, 5vw, 220px) clamp(130px, 5vw, 220px);
    }
    .builder-grid.deleted{
      grid-template-columns:minmax(220px, clamp(300px, 12vw, 520px)) minmax(280px, 1fr) clamp(130px, 5vw, 220px);
    }
    .builder-grid.features{
      grid-template-columns:minmax(280px, 1fr) minmax(280px, clamp(360px, 22vw, 560px));
      max-width:min(980px, 86vw);
    }
    .builder-grid.call-colors{
      grid-template-columns:minmax(280px, 1fr) clamp(150px, 7vw, 320px) clamp(140px, 6vw, 260px);
      max-width:min(1080px, 88vw);
    }
    .call-color-label{
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .builder-grid.call-colors .builder-secondary{
      width:100%;
      min-height:clamp(68px, 4vw, 104px);
      padding:clamp(14px, .9vw, 28px) clamp(18px, 1.1vw, 36px);
    }
    .builder-grid.special-setting{
      grid-template-columns:minmax(260px, 1fr) minmax(280px, clamp(360px, 22vw, 560px));
      max-width:min(980px, 86vw);
    }
    .builder-grid.special-setting.special-time-setting{
      grid-template-columns:minmax(160px, 190px) max-content;
      max-width:100%;
    }
    .builder-grid.layout{
      grid-template-columns:minmax(260px, 1fr) clamp(200px, 9vw, 400px) clamp(160px, 7vw, 320px);
      max-width:min(1160px, 88vw);
    }
    .builder-grid.layout.patient{
      grid-template-columns:minmax(260px, 1fr) clamp(200px, 9vw, 400px) clamp(260px, 12vw, 520px);
    }
    .builder-grid.floors{
      grid-template-columns:minmax(280px, 1fr) clamp(130px, 5vw, 220px) clamp(130px, 5vw, 220px);
      max-width:min(900px, 82vw);
    }
    .doctor-treatment-matrix{
      display:grid;
      gap:0;
      overflow-x:auto;
      border:1px solid #dde5ef;
      border-radius:8px;
      background:#fff;
      max-width:100%;
    }
    .doctor-treatment-head,
    .doctor-treatment-doctor,
    .doctor-treatment-check{
      min-height:clamp(72px, 4vw, 120px);
      padding:clamp(14px, .9vw, 30px);
      border-right:1px solid #dde5ef;
      border-bottom:1px solid #dde5ef;
      display:flex;
      align-items:center;
      box-sizing:border-box;
      font-size:clamp(24px, 1.25vw, 48px);
      font-weight:900;
    }
    .doctor-treatment-head{
      justify-content:center;
      background:#eef4fb;
      color:#25364a;
    }
    .doctor-treatment-doctor{
      justify-content:flex-start;
      color:#25364a;
    }
    .doctor-treatment-check{
      justify-content:center;
    }
    .builder-grid.header{
      color:#536171;
      font-weight:900;
      font-size:clamp(22px, 1.12vw, 42px);
      margin-bottom:12px;
    }
    .builder-input,
    .builder-select{
      width:100%;
      box-sizing:border-box;
      border:2px solid #d8e0ea;
      border-radius:8px;
      padding:clamp(18px, 1vw, 34px) clamp(20px, 1.15vw, 40px);
      min-height:clamp(72px, 4vw, 120px);
      font-size:clamp(26px, 1.35vw, 52px);
      line-height:1.25;
      background:#fff;
    }
    .builder-grid.cols .builder-input,
    .builder-grid.cols .builder-select,
    .builder-grid.depts .builder-input,
    .builder-grid.depts .builder-select{
      padding:clamp(18px, 1vw, 34px) clamp(20px, 1.15vw, 40px);
      font-size:clamp(26px, 1.35vw, 52px);
    }
    .builder-input[type="color"]{
      padding:4px;
      height:clamp(72px, 4vw, 120px);
    }
    .builder-check{
      width:clamp(46px, 2.2vw, 78px);
      height:clamp(46px, 2.2vw, 78px);
    }
    .special-toggle{
      border:none;
      border-radius:8px;
      min-height:clamp(72px, 4vw, 120px);
      padding:0 clamp(26px, 1.35vw, 52px);
      font-size:clamp(26px, 1.35vw, 52px);
      font-weight:900;
      background:#e9eef5;
      color:#536171;
      cursor:pointer;
    }
    .special-toggle.on{
      background:#0d6efd;
      color:#fff;
    }
    .special-time-range{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      column-gap:18px;
      row-gap:12px;
    }
    .special-number-control{
      display:grid;
      grid-template-columns:1fr auto 1fr;
      gap:clamp(18px, 1vw, 34px);
      align-items:center;
    }
    .special-time-range select,
    .builder-grid.special-time-setting select,
    .special-time-select{
      flex:0 0 320px !important;
      width:320px !important;
      min-width:320px !important;
      height:112px !important;
      min-height:112px !important;
      padding:0 72px 0 42px !important;
      font-size:44px !important;
      font-weight:700;
      line-height:1.2;
      font-variant-numeric:tabular-nums;
    }
    .special-time-separator{
      flex:0 0 auto;
      width:26px;
      text-align:center;
      line-height:1;
    }
    .special-number-control{
      grid-template-columns:minmax(160px, 1fr) auto;
    }
    .special-number-control span{
      font-size:clamp(24px, 1.25vw, 48px);
      font-weight:900;
      color:#536171;
    }
    .special-time-range .special-time-separator{
      font-size:44px;
      font-weight:700;
      color:#536171;
    }
    .special-department-list{
      display:flex;
      flex-direction:column;
      gap:12px;
      width:100%;
      max-width:100%;
      overflow-x:auto;
    }
    .special-department-row{
      display:flex;
      flex-wrap:nowrap;
      gap:12px;
      align-items:center;
      justify-content:flex-start;
      min-width:max-content;
    }
    .special-department-list label,
    .special-department-item{
      display:flex;
      align-items:center;
      gap:18px !important;
      flex:0 0 200px !important;
      width:200px !important;
      min-width:200px !important;
      height:104px !important;
      min-height:104px !important;
      padding:0 28px !important;
      border:1px solid #dde5ef;
      border-radius:8px;
      box-sizing:border-box;
      font-size:38px !important;
      font-weight:700;
      color:#25364a;
      background:#fff;
      white-space:nowrap;
    }
    .special-department-list input[type="checkbox"],
    .special-department-item .builder-check{
      flex:0 0 44px !important;
      width:44px !important;
      height:44px !important;
    }
    .special-department-item span{
      font-size:38px !important;
      font-weight:700;
      white-space:nowrap;
    }
    @media (max-width: 760px){
      .builder-grid.special-setting{
        grid-template-columns:1fr;
        max-width:100%;
      }
      .special-department-list{
        max-width:100%;
      }
      .special-department-row{
        flex-wrap:wrap;
        min-width:0;
      }
    }
    .builder-add{
      display:grid;
      grid-template-columns:minmax(280px, 1fr) clamp(170px, 7vw, 320px) clamp(160px, 7vw, 300px) clamp(170px, 7vw, 320px) clamp(220px, 9vw, 420px);
      gap:clamp(16px, 1vw, 34px);
      margin-top:clamp(20px, 1.2vw, 42px);
      align-items:center;
    }
    .builder-add.bed-add{
      grid-template-columns: auto;
      justify-content:start;
    }
    .builder-add.floor-add{
      grid-template-columns:minmax(280px, 1fr) clamp(220px, 9vw, 420px);
      max-width:min(900px, 82vw);
    }
    .builder-action,
    .builder-secondary{
      border:none;
      border-radius:8px;
      padding:clamp(18px, 1vw, 34px) clamp(24px, 1.35vw, 46px);
      min-height:clamp(72px, 4vw, 120px);
      font-size:clamp(25px, 1.3vw, 50px);
      line-height:1.2;
      font-weight:900;
      cursor:pointer;
    }
    .builder-action{ background:#0d6efd; color:#fff; }
    .builder-secondary{ background:#e9eef5; color:#25364a; }
    .builder-secondary:disabled{
      opacity:.55;
      cursor:not-allowed;
    }
    .builder-reorder{
      display:flex;
      gap:clamp(8px, .55vw, 18px);
      align-items:center;
    }
    .builder-icon-btn{
      border:none;
      border-radius:8px;
      background:#e9eef5;
      color:#25364a;
      width:clamp(66px, 3.2vw, 110px);
      height:clamp(66px, 3.2vw, 110px);
      font-size:clamp(32px, 1.6vw, 60px);
      font-weight:900;
      cursor:pointer;
    }
    .builder-icon-btn:disabled{
      opacity:.45;
      cursor:not-allowed;
    }
    .builder-inline-notice{
      margin-top:8px;
      min-height:28px;
      color:#137333;
      font-size:clamp(22px, 1.12vw, 42px);
      font-weight:800;
    }
    .builder-message{
      min-height:32px;
      font-weight:900;
      color:#536171;
      font-size:clamp(22px, 1.15vw, 44px);
      line-height:1.3;
    }
    .builder-message.error{ color:#b42318; }
    .builder-message.ok{ color:#137333; }
    .builder-note{
      margin:0;
      color:#536171;
      font-size:clamp(22px, 1.12vw, 42px);
      line-height:1.35;
      font-weight:700;
    }
    .builder-danger{
      border:none;
      border-radius:8px;
      padding:clamp(18px, 1vw, 34px) clamp(16px, .9vw, 32px);
      min-height:clamp(70px, 3.8vw, 116px);
      font-size:clamp(24px, 1.25vw, 48px);
      line-height:1.2;
      font-weight:900;
      cursor:pointer;
      background:#ffecec;
      color:#9b1c1c;
      width:100%;
    }
    .builder-restore{
      border:none;
      border-radius:8px;
      padding:clamp(18px, 1vw, 34px) clamp(16px, .9vw, 32px);
      min-height:clamp(70px, 3.8vw, 116px);
      font-size:clamp(24px, 1.25vw, 48px);
      line-height:1.2;
      font-weight:900;
      cursor:pointer;
      background:#e8f0ff;
      color:#003f91;
      width:100%;
    }
    .builder-floor-card{
      border:1px solid #dde5ef;
      border-radius:8px;
      background:#fbfdff;
      margin-top:clamp(18px, 1vw, 36px);
      overflow:hidden;
    }
    .builder-floor-toggle{
      width:100%;
      border:none;
      background:#eef4fb;
      color:#25364a;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:clamp(22px, 1.35vw, 46px) clamp(24px, 1.5vw, 52px);
      font-size:clamp(28px, 1.6vw, 58px);
      line-height:1.25;
      font-weight:900;
      cursor:pointer;
      text-align:left;
    }
    .builder-floor-toggle span:last-child{
      color:#607083;
      font-size:clamp(22px, 1.1vw, 42px);
    }
    .builder-floor-body{
      padding:clamp(22px, 1.35vw, 46px) clamp(24px, 1.5vw, 52px) clamp(24px, 1.5vw, 52px);
    }
