:root{
  --bg:#f5f7fb; --card:#ffffff; --ink:#132033; --muted:#667085; --line:#e6eaf2;
  --primary:#315cf6; --primary2:#12b6a7; --danger:#e5485d; --soft:#eef3ff;
  --shadow:0 18px 48px rgba(16,24,40,.10); --radius:24px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",Arial,sans-serif;color:var(--ink);background:radial-gradient(circle at 8% 0%,rgba(49,92,246,.18),transparent 30rem),radial-gradient(circle at 92% 8%,rgba(18,182,167,.14),transparent 30rem),linear-gradient(180deg,#fbfcff 0%,var(--bg) 100%);min-height:100vh;}
a{color:inherit;text-decoration:none}.shell{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:28px 0 60px}.hero{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:stretch;margin-bottom:18px}.hero-main,.hero-side,.panel,.page{background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);border-radius:var(--radius);backdrop-filter:blur(16px)}.hero-main{padding:34px;position:relative;overflow:hidden}.hero-main:after{content:"";position:absolute;right:-80px;bottom:-110px;width:260px;height:260px;border-radius:50%;background:linear-gradient(135deg,rgba(49,92,246,.18),rgba(18,182,167,.18))}.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;padding:8px 13px;border-radius:999px;background:rgba(49,92,246,.09);color:var(--primary);font-weight:900;font-size:13px;letter-spacing:.02em}.hero h1{margin:0;font-size:clamp(34px,5vw,60px);line-height:1.04;letter-spacing:-.06em}.hero h1 span{display:block;font-size:clamp(17px,2.2vw,24px);letter-spacing:-.03em;color:#344054;margin-top:10px}.hero-text{position:relative;z-index:1;margin:18px 0 0;max-width:760px;color:var(--muted);font-size:17px;line-height:1.7;word-break:keep-all}.hero-side{padding:24px;display:flex;flex-direction:column;gap:14px;justify-content:space-between}.side-title{display:flex;flex-direction:column;gap:6px}.side-title strong{font-size:18px}.side-title span,.small{color:var(--muted);font-size:14px;line-height:1.6}.admin-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px 18px;border-radius:18px;background:linear-gradient(135deg,var(--primary),#6c7cff);color:white;font-weight:950;box-shadow:0 15px 30px rgba(49,92,246,.25);transition:.18s}.admin-button:hover{transform:translateY(-2px);box-shadow:0 20px 38px rgba(49,92,246,.32)}.admin-button.secondary-link{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}.meta-pill{display:inline-flex;padding:9px 12px;border-radius:999px;background:#f2f5fa;color:#475467;font-weight:800;font-size:13px}.panel{padding:24px;margin-bottom:18px}.server-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.global-filter-panel{position:relative;z-index:3}.compact-head{align-items:center;margin-bottom:14px}.global-dept-selector{padding-top:2px}.status{min-height:24px;color:#475467;font-size:14px;line-height:1.6}.tabs{display:flex;gap:10px;padding:8px;margin:16px 0 18px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.85);border-radius:19px;box-shadow:0 10px 30px rgba(16,24,40,.07);position:sticky;top:10px;z-index:20;backdrop-filter:blur(15px);overflow-x:auto}.tab{border:0;background:transparent;color:var(--muted);padding:13px 16px;border-radius:14px;font-weight:900;white-space:nowrap;cursor:pointer}.tab.active{background:var(--ink);color:white}.page{display:none;padding:24px}.page.active{display:block}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi{padding:20px;border-radius:20px;background:linear-gradient(180deg,#fff,#f8faff);border:1px solid var(--line)}.kpi span{display:block;color:var(--muted);font-weight:800;font-size:13px}.kpi strong{display:block;margin-top:7px;font-size:34px;letter-spacing:-.05em}.panel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.panel-head h2{margin:0;font-size:25px;letter-spacing:-.04em}.panel-head p{margin:6px 0 0;color:var(--muted);line-height:1.6}.select-label{font-weight:900;font-size:14px;color:#344054}.select-label select,select,input[type="text"],input[type="time"],input[type="password"],input[type="file"]{margin-top:8px;width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px 13px;font-size:15px;outline:none}input:focus,select:focus{border-color:rgba(49,92,246,.55);box-shadow:0 0 0 4px rgba(49,92,246,.08)}button{border:0;border-radius:14px;padding:12px 15px;font-weight:900;cursor:pointer;background:var(--primary);color:white;transition:.16s}button:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(16,24,40,.14)}button.secondary,.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}button.danger{color:var(--danger);border-color:rgba(229,72,93,.25)}.dept-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.dept-selector{display:flex;gap:8px;flex-wrap:wrap}.dept-check{display:inline-flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:850;font-size:13px}.dept-check input{accent-color:var(--primary)}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.chart-card{padding:18px;border:1px solid var(--line);border-radius:22px;background:#fff}.chart-card h3{margin:0 0 4px;font-size:20px}.chart-canvas-wrap{height:330px;margin-top:10px}.chart-canvas-wrap canvas{display:block}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;margin:14px 0}.table-wrap{max-height:640px;overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff}table{width:100%;min-width:720px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:14px}thead th{position:sticky;top:0;z-index:5;background:#f8faff;color:#344054;text-align:left;padding:10px 9px;border-bottom:1px solid var(--line);font-weight:950;white-space:nowrap}tbody td{padding:8px 7px;border-bottom:1px solid #edf1f7;vertical-align:top;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-dept{width:78px}.col-time{width:70px}.col-patient-no{width:84px}.col-patient-name{width:82px}.col-resident{width:78px}.col-treatment{width:190px}.col-conservative{width:82px}.treatment-cell{max-width:190px;min-width:0;white-space:normal;line-height:1.28;word-break:keep-all;overflow-wrap:anywhere;text-overflow:clip}.list-note{margin:10px 2px 0;color:#667085;font-size:13px;font-weight:800}tbody tr:hover{background:#fbfcff}tbody tr.hit{background:#fff0f2!important;outline:2px solid rgba(229,72,93,.2)}.dept-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--soft);color:var(--primary);font-weight:900}.empty{padding:28px;text-align:center;color:var(--muted);background:#fbfcff;border:1px dashed var(--line);border-radius:18px}.time-input-row{display:flex;gap:10px;align-items:end}.winner-card{padding:24px;border-radius:24px;background:linear-gradient(135deg,#14213d,#263b80);color:#fff;margin-bottom:16px}.winner-card span{opacity:.75;font-weight:900}.winner-card strong{display:block;margin-top:8px;font-size:42px;letter-spacing:-.06em}.winner-card p{margin:8px 0 0;opacity:.88}.rank-list{display:flex;flex-direction:column;gap:10px}.rank-item{display:grid;grid-template-columns:120px minmax(0,1fr) 70px;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:16px;background:#fff}.bar{height:12px;border-radius:999px;background:#edf1f7;overflow:hidden}.bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--primary2))}.upload-card{max-width:980px;margin:0 auto}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.upload-grid .wide{grid-column:1/-1}.file-card{padding:18px;border:1.5px dashed rgba(49,92,246,.35);border-radius:20px;background:#f7f9ff}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.clear-box{padding:18px;border-radius:20px;background:#fff7f8;border:1px solid rgba(229,72,93,.16);margin-top:18px}.as-link{display:inline-flex;align-items:center;justify-content:center;border-radius:14px;padding:12px 15px;font-weight:900}.saved-info{margin-top:12px;padding:12px 14px;border-radius:14px;background:#f2f5fa;color:#475467;font-weight:800}
.list-dept-panel{margin:4px 0 14px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fbfcff}.list-dept-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.list-dept-head strong{display:block;font-size:15px}.list-dept-head span{display:block;margin-top:4px;color:var(--muted);font-size:13px;line-height:1.5}.list-dept-selector{max-height:118px;overflow:auto;padding:2px}
@media (max-width:900px){.shell{width:min(100% - 22px,1240px);padding-top:16px}.hero{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid{grid-template-columns:1fr}.dept-toolbar{display:block}.toolbar-actions{margin-top:10px}.upload-grid{grid-template-columns:1fr}.server-panel{align-items:stretch}.search-row{grid-template-columns:1fr}.rank-item{grid-template-columns:80px 1fr 58px}.hero-main{padding:26px}.page,.panel{padding:18px}}
@media (max-width:520px){.kpi-grid{grid-template-columns:1fr}.hero h1{font-size:34px}.winner-card strong{font-size:32px}.chart-canvas-wrap{height:300px}.tabs{top:0;border-radius:0;margin-left:-11px;margin-right:-11px}.table-wrap{max-height:560px}}

/* v10 refinements */
.sync-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:10px 14px;border:1px solid rgba(255,255,255,.85);border-radius:18px;background:rgba(255,255,255,.68);box-shadow:0 10px 26px rgba(16,24,40,.06);backdrop-filter:blur(14px)}
.sync-strip .status{min-height:auto;font-size:13px;line-height:1.4}
.list-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.list-controls .select-label{min-width:118px}
.remaining-actions{align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}
.tiny-refresh{padding:10px 12px;font-size:12px;border-radius:12px;box-shadow:none;min-width:auto}
.table-wrap.scale-100 table{font-size:14px}.table-wrap.scale-90 table{font-size:12.6px}.table-wrap.scale-80 table{font-size:11.2px}.table-wrap.scale-70 table{font-size:9.8px}
.table-wrap.scale-90 th,.table-wrap.scale-90 td{padding:8px 7px}.table-wrap.scale-80 th,.table-wrap.scale-80 td{padding:7px 6px}.table-wrap.scale-70 th,.table-wrap.scale-70 td{padding:6px 5px}
.table-wrap.scale-70 .dept-pill,.table-wrap.scale-80 .dept-pill{padding:4px 7px}
@media (max-width:620px){.sync-strip{padding:9px 11px}.list-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.remaining-actions{width:100%;display:grid;grid-template-columns:1fr auto auto}.tiny-refresh{padding:10px 10px}.table-wrap{max-height:62vh}.table-wrap table{min-width:720px}}

/* v17 list compactness */
.table-wrap.scale-90 .treatment-cell{max-width:170px}.table-wrap.scale-80 .treatment-cell{max-width:155px}.table-wrap.scale-70 .treatment-cell{max-width:140px}.table-wrap.scale-90 .col-treatment{width:170px}.table-wrap.scale-80 .col-treatment{width:155px}.table-wrap.scale-70 .col-treatment{width:140px}
@media (max-width:620px){table{min-width:620px}.treatment-cell{max-width:160px;min-width:0}.table-wrap.scale-70 .treatment-cell{max-width:120px;min-width:0}.col-patient-no{width:72px}.col-patient-name{width:70px}.col-resident{width:68px}.col-treatment{width:140px}}

/* v21 professor pick page */
.professor-controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.professor-controls .select-label{min-width:180px}
.professor-summary-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 14px}
.professor-table-wrap{max-height:640px}
.professor-table-wrap table{min-width:650px;font-size:9.8px}
.professor-table-wrap th,.professor-table-wrap td{padding:6px 5px}
.professor-table-wrap .col-treatment{width:150px}
.professor-table-wrap .treatment-cell{max-width:150px;white-space:normal;line-height:1.28;word-break:keep-all;overflow-wrap:anywhere;text-overflow:clip}
@media (max-width:620px){.professor-controls{display:grid;grid-template-columns:1fr 1fr;width:100%}.professor-controls .select-label{min-width:0}.professor-table-wrap table{min-width:620px}.professor-table-wrap .col-treatment{width:130px}.professor-table-wrap .treatment-cell{max-width:130px}}

/* v22: 전공의 진료 리스트 모바일 가독성 개선 */
#apptTableWrap table{min-width:520px;}
#apptTableWrap.list-mode-detail table{min-width:560px;}
#apptTableWrap.list-mode-simple table{min-width:430px;}
#apptTableWrap th,#apptTableWrap td{padding:5px 4px;}
#apptTableWrap.scale-70 th,#apptTableWrap.scale-70 td{padding:4px 3px;}
#apptTableWrap .col-dept{width:58px;}
#apptTableWrap .col-time{width:54px;}
#apptTableWrap .col-patient-no{width:58px;}
#apptTableWrap .col-patient-name{width:58px;}
#apptTableWrap .col-resident{width:58px;}
#apptTableWrap .col-conservative{width:58px;}
#apptTableWrap .col-treatment{width:118px;}
#apptTableWrap .treatment-cell{max-width:118px;line-height:1.18;}
#apptTableWrap.list-mode-simple .col-time{width:54px;}
#apptTableWrap.list-mode-simple .col-patient-name{width:68px;}
#apptTableWrap.list-mode-simple .col-resident{width:62px;}
#apptTableWrap.list-mode-simple .col-treatment{width:190px;}
#apptTableWrap.list-mode-simple .treatment-cell{max-width:190px;}
@media (max-width:620px){
  .list-controls{grid-template-columns:1fr 1fr 1fr;}
  #apptTableWrap table{min-width:430px;}
  #apptTableWrap.list-mode-detail table{min-width:540px;}
  #apptTableWrap.list-mode-simple table{min-width:410px;}
  #apptTableWrap .col-treatment{width:105px;}
  #apptTableWrap .treatment-cell{max-width:105px;}
  #apptTableWrap.list-mode-simple .col-treatment{width:185px;}
  #apptTableWrap.list-mode-simple .treatment-cell{max-width:185px;}
}


/* v23: 보존 endo / operative 색상 표시 */
.color-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:#fbfcff}
.color-tools-title{font-size:13px;font-weight:950;color:#344054;margin-right:2px}
.color-action{padding:9px 11px;font-size:12px;border-radius:12px;box-shadow:none}
.color-action.active{transform:none;box-shadow:0 0 0 3px rgba(49,92,246,.10)}
.color-action.color-endo.active{border-color:rgba(49,92,246,.55);color:#1d4ed8;background:#eff6ff}
.color-action.color-operative.active{border-color:rgba(18,183,106,.55);color:#027a48;background:#f0fff6}
#apptTable tbody tr.cons-color-endo td{background:#dbeafe!important;color:#1d4ed8;font-weight:850}
#apptTable tbody tr.cons-color-operative td{background:#dcfae6!important;color:#027a48;font-weight:850}
#apptTable tbody tr.cons-color-endo td.col-treatment,
#apptTable tbody tr.cons-color-endo td.col-conservative,
#apptTable tbody tr.cons-color-operative td.col-treatment,
#apptTable tbody tr.cons-color-operative td.col-conservative{font-weight:950}
#apptTable tbody tr.cons-color-endo.hit td{background:#bfdbfe!important}
#apptTable tbody tr.cons-color-operative.hit td{background:#c7f7d8!important}
@media (max-width:620px){.color-tools{gap:6px;padding:8px}.color-tools-title{width:100%}.color-action{padding:8px 9px;font-size:11px}}


/* v24: 리스트 현재 시각 이후 필터 */
.list-time-panel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:#fff}
.time-filter-action{padding:12px 18px;font-size:13px;border-radius:999px;font-weight:950;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;border:0;box-shadow:0 12px 28px rgba(37,99,235,.28);letter-spacing:-.01em}
.time-filter-action:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(37,99,235,.34)}
.time-filter-action.active{background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;border:0;box-shadow:0 14px 30px rgba(239,68,68,.28)}
@media (max-width:620px){.list-time-panel{padding:8px}.time-filter-action{width:100%;justify-content:center;font-size:13px;padding:13px 14px}}

/* v28: 보철/소치 토탈 환자 표시 */
.total-filter-action.active{background:#344054;color:#fff;border-color:#344054;box-shadow:none}
#apptTable tbody tr.total-dim-row td{opacity:.42;background:#f4f6f8!important;color:#667085!important;font-weight:700}
#apptTable tbody tr.total-dim-row:hover td{opacity:.62}
#apptTable tbody tr.total-dim-row.hit td{background:#fff0f2!important;opacity:.55}

/* v31: 전공의 리스트 과별 페이지 */
.list-page-panel{margin:0 0 12px;padding:12px;border:1px solid var(--line);border-radius:18px;background:#fbfcff}
.resident-dept-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.dept-page-tab{border:1px solid var(--line);background:#fff;color:#344054;border-radius:999px;padding:9px 13px;font-weight:900;font-size:13px;cursor:pointer;box-shadow:0 6px 16px rgba(16,24,40,.05)}
.dept-page-tab.active{background:#162033;color:#fff;border-color:#162033;box-shadow:0 10px 22px rgba(22,32,51,.18)}
.dept-page-tab.all-tab{border-color:rgba(49,92,246,.28);color:#315cf6;background:#f5f7ff}
.dept-page-tab.all-tab.active{background:#315cf6;color:#fff;border-color:#315cf6}
#overallListDeptPanel{display:none}
@media (max-width:620px){.resident-dept-tabs{gap:6px}.dept-page-tab{padding:8px 10px;font-size:12px}.list-page-panel{padding:10px}}


/* v32: 전공의 진료 리스트 더 조밀하게, 과별 페이지에서는 과 칸 숨김 */
#apptTableWrap th,#apptTableWrap td{padding:3px 2px;}
#apptTableWrap.scale-100 th,#apptTableWrap.scale-100 td{padding:4px 3px;}
#apptTableWrap.scale-90 th,#apptTableWrap.scale-90 td{padding:3.5px 2.5px;}
#apptTableWrap.scale-80 th,#apptTableWrap.scale-80 td{padding:3px 2px;}
#apptTableWrap.scale-70 th,#apptTableWrap.scale-70 td{padding:2px 2px;}
#apptTableWrap table{border-spacing:0;font-size:13px;}
#apptTableWrap.scale-90 table{font-size:11.7px;}
#apptTableWrap.scale-80 table{font-size:10.4px;}
#apptTableWrap.scale-70 table{font-size:9px;}
#apptTableWrap.list-mode-detail table{min-width:500px;}
#apptTableWrap.list-mode-simple table{min-width:390px;}
#apptTableWrap .col-time{width:48px;}
#apptTableWrap .col-patient-no{width:52px;}
#apptTableWrap .col-patient-name{width:52px;}
#apptTableWrap .col-resident{width:52px;}
#apptTableWrap .col-conservative{width:52px;}
#apptTableWrap .col-treatment{width:100px;}
#apptTableWrap .treatment-cell{max-width:100px;line-height:1.12;}
#apptTableWrap.list-mode-simple .col-time{width:48px;}
#apptTableWrap.list-mode-simple .col-patient-name{width:60px;}
#apptTableWrap.list-mode-simple .col-resident{width:54px;}
#apptTableWrap.list-mode-simple .col-treatment{width:170px;}
#apptTableWrap.list-mode-simple .treatment-cell{max-width:170px;}
#apptTableWrap .dept-pill{padding:3px 6px;font-size:.92em;}
#apptTableWrap tbody td{line-height:1.14;}
.list-note{font-size:12px;line-height:1.45;margin-top:8px;}
@media (max-width:620px){
  #apptTableWrap.list-mode-detail table{min-width:490px;}
  #apptTableWrap.list-mode-simple table{min-width:380px;}
  #apptTableWrap .col-time{width:45px;}
  #apptTableWrap .col-patient-no{width:48px;}
  #apptTableWrap .col-patient-name{width:50px;}
  #apptTableWrap .col-resident{width:50px;}
  #apptTableWrap .col-treatment{width:95px;}
  #apptTableWrap .treatment-cell{max-width:95px;}
  #apptTableWrap.list-mode-simple .col-treatment{width:165px;}
  #apptTableWrap.list-mode-simple .treatment-cell{max-width:165px;}
}


/* v33: 전공의 진료 리스트 표 디자인 재정리 - compact but polished */
#apptTableWrap{
  border:1px solid rgba(49,92,246,.12);
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
  box-shadow:0 10px 28px rgba(16,24,40,.07);
}
#apptTableWrap table{
  border-collapse:separate;
  border-spacing:0;
  font-size:13px;
  letter-spacing:-.01em;
}
#apptTableWrap thead th{
  background:linear-gradient(180deg,#f7f9ff 0%,#eef3ff 100%);
  color:#263247;
  border-bottom:1px solid rgba(49,92,246,.16);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
  padding:7px 6px;
  font-weight:950;
  line-height:1.25;
}
#apptTableWrap tbody td{
  padding:6px 5px;
  line-height:1.24;
  border-bottom:1px solid rgba(230,234,242,.82);
  color:#263247;
  background:#fff;
}
#apptTableWrap tbody tr:nth-child(even) td{background:#fcfdff;}
#apptTableWrap tbody tr:hover td{background:#f4f7ff;}
#apptTableWrap tbody tr:last-child td{border-bottom:0;}
#apptTableWrap .dept-pill{
  padding:4px 7px;
  border-radius:999px;
  background:#eef4ff;
  color:#315cf6;
  font-size:.9em;
  box-shadow:inset 0 0 0 1px rgba(49,92,246,.08);
}
#apptTableWrap .treatment-cell{
  line-height:1.26;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
#apptTableWrap.scale-100 table{font-size:13px;}
#apptTableWrap.scale-90 table{font-size:12px;}
#apptTableWrap.scale-80 table{font-size:11px;}
#apptTableWrap.scale-70 table{font-size:10px;}
#apptTableWrap.scale-100 th,#apptTableWrap.scale-100 td{padding:7px 6px;}
#apptTableWrap.scale-90 th,#apptTableWrap.scale-90 td{padding:6px 5px;}
#apptTableWrap.scale-80 th,#apptTableWrap.scale-80 td{padding:5px 4px;}
#apptTableWrap.scale-70 th,#apptTableWrap.scale-70 td{padding:4px 3.5px;}
#apptTableWrap .col-time{width:50px;}
#apptTableWrap .col-patient-no{width:56px;}
#apptTableWrap .col-patient-name{width:56px;}
#apptTableWrap .col-resident{width:56px;}
#apptTableWrap .col-conservative{width:56px;}
#apptTableWrap .col-treatment{width:112px;}
#apptTableWrap .treatment-cell{max-width:112px;}
#apptTableWrap.list-mode-detail table{min-width:535px;}
#apptTableWrap.list-mode-simple table{min-width:410px;}
#apptTableWrap.list-mode-simple .col-time{width:52px;}
#apptTableWrap.list-mode-simple .col-patient-name{width:66px;}
#apptTableWrap.list-mode-simple .col-resident{width:60px;}
#apptTableWrap.list-mode-simple .col-treatment{width:185px;}
#apptTableWrap.list-mode-simple .treatment-cell{max-width:185px;}
#apptTableWrap tbody tr.cons-color-endo td{background:#dbeafe!important;color:#1e40af;font-weight:850;}
#apptTableWrap tbody tr.cons-color-operative td{background:#dcfce7!important;color:#166534;font-weight:850;}
#apptTableWrap tbody tr.total-dim-row td{opacity:.48;background:#f3f4f6!important;color:#667085!important;}
#apptTableWrap tbody tr.hit td{background:#fff1f3!important;outline:0;box-shadow:inset 3px 0 0 rgba(229,72,93,.55);}
@media (max-width:620px){
  #apptTableWrap{border-radius:16px;}
  #apptTableWrap thead th{padding:5px 4px;font-size:10px;}
  #apptTableWrap tbody td{padding:4px 3px;line-height:1.22;}
  #apptTableWrap.scale-70 table{font-size:9.5px;}
  #apptTableWrap.list-mode-detail table{min-width:520px;}
  #apptTableWrap.list-mode-simple table{min-width:395px;}
  #apptTableWrap .col-time{width:48px;}
  #apptTableWrap .col-patient-no{width:52px;}
  #apptTableWrap .col-patient-name{width:54px;}
  #apptTableWrap .col-resident{width:54px;}
  #apptTableWrap .col-treatment{width:108px;}
  #apptTableWrap .treatment-cell{max-width:108px;}
  #apptTableWrap.list-mode-simple .col-treatment{width:180px;}
  #apptTableWrap.list-mode-simple .treatment-cell{max-width:180px;}
}


/* v36: 전공의 진료 리스트 글씨 크기 보정 - 모바일 가독성 개선 */
#apptTableWrap table{font-size:14px;}
#apptTableWrap.scale-100 table{font-size:14px;}
#apptTableWrap.scale-90 table{font-size:13px;}
#apptTableWrap.scale-80 table{font-size:12px;}
#apptTableWrap.scale-70 table{font-size:11px;}
#apptTableWrap thead th{font-size:inherit;line-height:1.28;}
#apptTableWrap tbody td{line-height:1.28;}
#apptTableWrap .treatment-cell{line-height:1.32;}
@media (max-width:620px){
  #apptTableWrap table{font-size:13px;}
  #apptTableWrap.scale-100 table{font-size:13px;}
  #apptTableWrap.scale-90 table{font-size:12px;}
  #apptTableWrap.scale-80 table{font-size:11px;}
  #apptTableWrap.scale-70 table{font-size:10.5px;}
  #apptTableWrap thead th{font-size:inherit;}
  #apptTableWrap tbody td{line-height:1.26;}
}

.conservative-count-badge {
  align-items: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(49, 130, 206, 0.10);
  border: 1px solid rgba(49, 130, 206, 0.18);
  color: #1f4f82;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .conservative-count-badge {
    width: 100%;
    justify-content: center;
    white-space: normal;
  }
}
.hint-inline { display:inline-block; margin-left:6px; font-size:12px; font-weight:700; color:#64748b; }

/* 개인 교정 토탈 관리 */
.personal-auth-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.personal-card {
  border: 1px solid rgba(148, 163, 184, .28);
  background: rgba(255,255,255,.86);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
}
.personal-card h3,
.personal-table-head h3 {
  margin: 0 0 12px;
  font-size: 1.05rem;
}
.personal-card label,
.personal-add-grid label {
  display: grid;
  gap: 7px;
  font-weight: 800;
  color: #334155;
  margin-bottom: 12px;
}
.personal-card input,
.personal-add-grid input,
.personal-date-input,
.personal-time-input {
  width: 100%;
  border: 1px solid rgba(148, 163, 184, .45);
  border-radius: 12px;
  padding: 10px 12px;
  background: #fff;
  font: inherit;
}
.personal-app {
  margin-top: 6px;
}
.personal-topbar,
.personal-table-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(239,246,255,.9), rgba(248,250,252,.92));
  border: 1px solid rgba(148, 163, 184, .22);
  margin-bottom: 14px;
}
.personal-topbar div,
.personal-table-head div {
  display: grid;
  gap: 3px;
}
.personal-topbar span,
.personal-table-head p {
  margin: 0;
  font-size: .86rem;
  color: #64748b;
}
.personal-add-grid {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr) 150px auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 16px;
}
.personal-add-grid button {
  min-height: 42px;
}
.personal-table-wrap table {
  font-size: .92rem;
}
.personal-table-wrap th,
.personal-table-wrap td {
  padding: 8px 10px;
}
.personal-status {
  margin-top: 14px;
}
@media (max-width: 760px) {
  .personal-auth-grid,
  .personal-add-grid {
    grid-template-columns: 1fr;
  }
  .personal-topbar,
  .personal-table-head {
    align-items: stretch;
    flex-direction: column;
  }
}

/* v45 개인 교정 토탈 관리 보완 */
.personal-auth-grid.personal-auth-single {
  grid-template-columns: minmax(280px, 520px);
}
.personal-auth-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.personal-register-card {
  border-style: dashed;
  background: rgba(248, 250, 252, .94);
}
.personal-add-grid {
  grid-template-columns: 140px minmax(130px, 1fr) minmax(130px, 1fr) auto;
}
.personal-add-grid select {
  width: 100%;
  border: 1px solid rgba(148, 163, 184, .45);
  border-radius: 12px;
  padding: 10px 12px;
  background: #fff;
  font: inherit;
}
.personal-group-row td {
  background: linear-gradient(135deg, rgba(226, 232, 240, .82), rgba(248, 250, 252, .98));
  color: #0f172a;
  font-weight: 900;
  padding: 10px 12px !important;
  border-top: 1px solid rgba(148, 163, 184, .28);
}
.personal-group-row span {
  color: #64748b;
  font-weight: 800;
  margin-left: 6px;
}
.personal-empty-row td {
  color: #94a3b8;
  font-size: .88rem;
  background: rgba(248, 250, 252, .65);
}
.type-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(37, 99, 235, .09);
  color: #1d4ed8;
  font-size: .82rem;
  font-weight: 900;
  white-space: nowrap;
}
@media (max-width: 760px) {
  .personal-auth-grid.personal-auth-single,
  .personal-add-grid {
    grid-template-columns: 1fr;
  }
}
button.ghost {
  background: transparent;
  color: #475569;
  border: 1px solid rgba(148, 163, 184, .45);
  box-shadow: none;
}
button.ghost:hover { background: rgba(248,250,252,.95); }

/* v46 개인 교정 토탈 관리 UI 개선 */
.personal-auth-grid.personal-auth-wide {
  grid-template-columns: minmax(260px, .9fr) minmax(320px, 1.35fr);
  align-items: stretch;
}
.personal-register-shell {
  min-height: 250px;
  display: grid;
  align-content: center;
  background: linear-gradient(135deg, rgba(239, 246, 255, .96), rgba(255, 255, 255, .94));
  border: 1px solid rgba(37, 99, 235, .18);
}
.personal-register-intro {
  display: grid;
  gap: 12px;
  align-content: center;
  min-height: 210px;
}
.personal-register-intro h3 {
  margin: 0;
  font-size: 1.45rem;
  letter-spacing: -0.03em;
}
.personal-register-intro p {
  margin: 0;
  color: #64748b;
  line-height: 1.55;
}
.register-big-btn {
  min-height: 54px;
  border-radius: 16px;
  font-size: 1.02rem;
  font-weight: 900;
}
.personal-match-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}
.personal-match-card {
  border: 1px solid rgba(220, 38, 38, .22);
  background: linear-gradient(135deg, rgba(254, 226, 226, .98), rgba(255, 241, 242, .96));
  color: #991b1b;
  border-radius: 16px;
  padding: 12px 14px;
  box-shadow: 0 12px 28px rgba(127, 29, 29, .08);
}
.personal-match-card strong {
  display: block;
  font-size: .98rem;
  font-weight: 950;
  margin-bottom: 4px;
}
.personal-match-card strong span {
  color: #b91c1c;
  font-weight: 900;
}
.personal-match-card em {
  display: block;
  font-style: normal;
  font-size: .86rem;
  font-weight: 800;
  color: #b91c1c;
}
.personal-action-cell {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
button.danger {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: #fff;
  border: 0;
  box-shadow: 0 10px 22px rgba(220, 38, 38, .18);
}
button.danger:hover { filter: brightness(.98); transform: translateY(-1px); }
@media (max-width: 760px) {
  .personal-auth-grid.personal-auth-wide {
    grid-template-columns: 1fr;
  }
  .personal-register-shell {
    min-height: auto;
  }
  .personal-register-intro {
    min-height: 150px;
  }
  .personal-action-cell {
    flex-direction: column;
    align-items: stretch;
  }
}

/* v47 개인 토탈 관리: 교정/소치/보철 과별 탭 */
.personal-dept-tabs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 16px;
  padding: 8px;
  border-radius: 18px;
  background: #f5f7fb;
  border: 1px solid rgba(15, 23, 42, 0.08);
}
.personal-dept-tab {
  border: 0;
  border-radius: 999px;
  padding: 10px 18px;
  font-weight: 800;
  background: #ffffff;
  color: #475569;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
.personal-dept-tab.active {
  background: #172554;
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(23, 37, 84, 0.18);
}
.personal-subtitle {
  margin: 18px 0 8px;
  font-size: 1rem;
  color: #0f172a;
}
@media (max-width: 640px) {
  .personal-dept-tabs { gap: 6px; padding: 6px; }
  .personal-dept-tab { flex: 1 1 30%; padding: 9px 10px; }
}

/* v48: 소치/보철 개인 토탈은 본토/진토/구토 구분 없이 표시 */
#personalPatientTable.no-type .personal-type-col { display: none; }

/* v49: 개인 토탈 관리 표만 모바일에서 한눈에 보이도록 축소 */
@media (max-width: 620px) {
  .personal-table-wrap {
    overflow-x: visible;
    max-height: 62vh;
  }
  .personal-table-wrap table {
    width: 100%;
    min-width: 0 !important;
    table-layout: fixed;
    font-size: 10.2px;
  }
  .personal-table-wrap th,
  .personal-table-wrap td {
    padding: 4px 3px;
    line-height: 1.18;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .personal-table-wrap .type-pill {
    min-width: 0;
    padding: 2px 4px;
    font-size: 9px;
  }
  #personalPatientTable:not(.no-type) th:nth-child(1),
  #personalPatientTable:not(.no-type) td:nth-child(1) { width: 34px; }
  #personalPatientTable:not(.no-type) th:nth-child(2),
  #personalPatientTable:not(.no-type) td:nth-child(2) { width: 54px; }
  #personalPatientTable:not(.no-type) th:nth-child(3),
  #personalPatientTable:not(.no-type) td:nth-child(3) { width: 58px; }
  #personalPatientTable:not(.no-type) th:nth-child(4),
  #personalPatientTable:not(.no-type) td:nth-child(4) { width: 78px; }
  #personalPatientTable:not(.no-type) th:nth-child(5),
  #personalPatientTable:not(.no-type) td:nth-child(5) { width: 58px; }
  #personalPatientTable:not(.no-type) th:nth-child(6),
  #personalPatientTable:not(.no-type) td:nth-child(6) { width: 84px; }
  #personalPatientTable.no-type th:nth-child(2),
  #personalPatientTable.no-type td:nth-child(2) { width: 58px; }
  #personalPatientTable.no-type th:nth-child(3),
  #personalPatientTable.no-type td:nth-child(3) { width: 62px; }
  #personalPatientTable.no-type th:nth-child(4),
  #personalPatientTable.no-type td:nth-child(4) { width: 78px; }
  #personalPatientTable.no-type th:nth-child(5),
  #personalPatientTable.no-type td:nth-child(5) { width: 58px; }
  #personalPatientTable.no-type th:nth-child(6),
  #personalPatientTable.no-type td:nth-child(6) { width: 84px; }
  #personalTomorrowTable th:nth-child(1),
  #personalTomorrowTable td:nth-child(1) { width: 50px; }
  #personalTomorrowTable th:nth-child(2),
  #personalTomorrowTable td:nth-child(2) { width: 42px; }
  #personalTomorrowTable th:nth-child(3),
  #personalTomorrowTable td:nth-child(3) { width: 56px; }
  #personalTomorrowTable th:nth-child(4),
  #personalTomorrowTable td:nth-child(4) { width: 62px; }
  #personalTomorrowTable th:nth-child(5),
  #personalTomorrowTable td:nth-child(5) { width: 78px; }
  #personalTomorrowTable th:nth-child(6),
  #personalTomorrowTable td:nth-child(6) { width: 50px; }
  .personal-table-wrap .personal-date-input,
  .personal-table-wrap .personal-time-input {
    padding: 4px 3px;
    border-radius: 7px;
    font-size: 10px;
    min-width: 0;
  }
  .personal-table-wrap .personal-action-cell {
    gap: 3px;
  }
  .personal-table-wrap .personal-action-cell button {
    padding: 5px 4px;
    border-radius: 7px;
    font-size: 9px;
    line-height: 1.1;
    min-height: 0;
  }
  .personal-group-row td {
    padding: 6px 5px !important;
    font-size: 10.5px;
  }
}

/* v52: OCS matched personal total patients */
#personalTomorrowTable tbody tr.personal-today-match-row td {
  background: #fff1f2;
  border-bottom-color: #fecdd3;
}
#personalTomorrowTable tbody tr.personal-today-match-row:hover td {
  background: #ffe4e6;
}

.personal-schedule-cell{white-space:nowrap;font-weight:850;color:#334155}
.personal-schedule-text{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:6px 9px;border-radius:999px;background:#f8fafc;border:1px solid rgba(148,163,184,.35);color:#334155;font-size:.9em}
.personal-schedule-editor{margin-top:8px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:6px;align-items:center;padding:8px;border-radius:12px;background:#f8fafc;border:1px solid rgba(148,163,184,.24)}
.personal-schedule-editor[hidden]{display:none!important}
.personal-schedule-editor .personal-save-date,
.personal-schedule-editor .personal-cancel-schedule{padding:7px 8px;font-size:12px;border-radius:10px}
.personal-action-cell{min-width:132px}
.personal-action-cell > button{margin:2px}
@media (max-width:720px){.personal-schedule-text{min-width:70px;padding:4px 6px;font-size:11px}.personal-schedule-editor{grid-template-columns:1fr;gap:5px;padding:6px}.personal-action-cell{min-width:96px}.personal-action-cell > button{padding:6px 7px;font-size:11px}}


/* v55 personal total schedule table cleanup */
.personal-table-wrap .personal-action-cell{display:none!important}
.personal-schedule-cell{min-width:116px;max-width:150px;white-space:normal!important;text-align:center}
.personal-schedule-display{display:grid;gap:3px;justify-items:center;line-height:1.18}
.personal-date-line,.personal-time-line{display:block;width:100%;font-weight:850;color:#334155;letter-spacing:-.02em}
.personal-date-line{font-size:12.5px}
.personal-time-line{font-size:12px;color:#64748b}
.personal-schedule-display.is-empty .personal-date-line,.personal-schedule-display.is-empty .personal-time-line{color:#94a3b8;font-weight:750}
.personal-inline-actions{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin-top:6px}
.personal-inline-actions button{padding:5px 7px;font-size:11px;border-radius:9px}
.personal-schedule-editor{margin-top:7px;display:grid;grid-template-columns:1fr;gap:5px;align-items:center;padding:7px;border-radius:12px;background:#f8fafc;border:1px solid rgba(148,163,184,.24)}
.personal-schedule-editor input{font-size:12px;padding:7px 8px;min-height:30px}
.personal-schedule-editor .personal-save-date,.personal-schedule-editor .personal-cancel-schedule{padding:6px 8px;font-size:11px;border-radius:9px}
@media (max-width:720px){.personal-schedule-cell{min-width:88px;max-width:105px}.personal-date-line{font-size:10.5px}.personal-time-line{font-size:10.5px}.personal-inline-actions{gap:3px;margin-top:4px}.personal-inline-actions button{padding:4px 5px;font-size:9.5px}.personal-schedule-editor{padding:5px;gap:4px}.personal-schedule-editor input{font-size:10px;padding:5px 6px;min-height:26px}}


/* v56: personal total schedule layout refinement */
.personal-schedule-cell{
  min-width:180px!important;
  max-width:230px!important;
  padding:7px 8px!important;
}
.personal-schedule-layout{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
}
.personal-schedule-display{
  flex:1 1 auto;
  display:flex!important;
  flex-direction:column;
  align-items:flex-start!important;
  justify-items:start!important;
  gap:4px!important;
  min-width:0;
  text-align:left;
}
.personal-date-line,
.personal-time-line{
  display:inline-flex;
  align-items:center;
  gap:4px;
  max-width:100%;
  border-radius:999px;
  padding:4px 8px;
  font-size:12px;
  line-height:1.1;
  font-weight:850;
  white-space:nowrap;
}
.personal-date-line{
  background:#eef2ff;
  color:#3730a3;
  border:1px solid rgba(99,102,241,.22);
}
.personal-time-line{
  background:#ecfeff;
  color:#155e75;
  border:1px solid rgba(6,182,212,.22);
}
.personal-date-line::before{content:"날짜";font-size:9px;font-weight:900;color:#6366f1;letter-spacing:-.02em}
.personal-time-line::before{content:"시간";font-size:9px;font-weight:900;color:#0891b2;letter-spacing:-.02em}
.personal-schedule-display.is-empty .personal-date-line,
.personal-schedule-display.is-empty .personal-time-line{
  background:#f8fafc;
  color:#94a3b8;
  border-color:rgba(148,163,184,.25);
}
.personal-inline-actions{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-top:0!important;
  align-items:stretch;
}
.personal-inline-actions button{
  white-space:nowrap;
  padding:5px 8px!important;
  font-size:11px!important;
  border-radius:10px!important;
  min-height:26px;
}
.personal-schedule-editor{
  margin-top:7px!important;
  grid-template-columns:1fr 1fr!important;
}
.personal-schedule-editor .personal-save-date,
.personal-schedule-editor .personal-cancel-schedule{
  min-height:28px;
}
@media (max-width:720px){
  .personal-schedule-cell{min-width:142px!important;max-width:170px!important;padding:5px 6px!important}
  .personal-schedule-layout{gap:5px}
  .personal-date-line,.personal-time-line{font-size:10px;padding:3px 6px;gap:3px}
  .personal-date-line::before,.personal-time-line::before{font-size:8px}
  .personal-inline-actions{gap:3px}
  .personal-inline-actions button{padding:4px 5px!important;font-size:9px!important;min-height:23px;border-radius:8px!important}
  .personal-schedule-editor{grid-template-columns:1fr!important;padding:5px!important;gap:4px!important}
  .personal-schedule-editor input{font-size:10px!important;padding:5px 6px!important;min-height:26px!important}
}

/* v57: personal total table header/combined schedule cell cleanup */
#personalPatientTable th:nth-child(4),
#personalPatientTable td.personal-schedule-cell{
  width:220px;
}
.personal-schedule-layout{
  background:#ffffff;
  border:1px solid rgba(148,163,184,.20);
  border-radius:14px;
  padding:6px;
}
.personal-schedule-display{
  padding-right:8px;
  border-right:1px solid rgba(148,163,184,.22);
}
.personal-inline-actions{
  padding-left:0;
}
@media (max-width:720px){
  #personalPatientTable th:nth-child(4),
  #personalPatientTable td.personal-schedule-cell{width:150px!important;min-width:150px!important;max-width:165px!important;}
  .personal-schedule-layout{padding:4px;border-radius:11px;gap:4px;}
  .personal-schedule-display{padding-right:4px;}
}

/* v58: personal total management visual polish */
.personal-add-grid{
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid rgba(99,102,241,.14);
  border-radius:18px;
  padding:14px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:16px;
}
.personal-table-head{
  margin-top:10px;
  padding:13px 14px;
  background:linear-gradient(135deg,#f8fafc,#ffffff);
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
}
.personal-table-wrap{
  border:1px solid rgba(148,163,184,.22);
  border-radius:16px;
  background:#fff;
  box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.personal-table-wrap th{
  background:#f1f5f9!important;
  color:#334155!important;
  font-weight:900!important;
}
.type-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  padding:5px 9px;
  border-radius:999px;
  font-weight:950;
  letter-spacing:-.02em;
  border:1px solid transparent;
}
.type-pill.type-bonto{background:#eef2ff;color:#3730a3;border-color:rgba(99,102,241,.24)}
.type-pill.type-jinto{background:#ecfdf5;color:#047857;border-color:rgba(16,185,129,.25)}
.type-pill.type-guto{background:#fff7ed;color:#c2410c;border-color:rgba(249,115,22,.26)}
.personal-group-row td{
  background:linear-gradient(135deg,#f8fafc,#eef2ff)!important;
  color:#1e293b!important;
  font-size:14px!important;
  padding:11px 14px!important;
  border-top:1px solid rgba(99,102,241,.12)!important;
  border-bottom:1px solid rgba(99,102,241,.12)!important;
}
.personal-schedule-cell{min-width:150px!important;max-width:190px!important;text-align:left!important}
.personal-action-cell{min-width:96px!important;text-align:center!important;white-space:nowrap!important;display:table-cell!important}
.personal-schedule-display{
  display:flex!important;
  flex-direction:column;
  align-items:flex-start!important;
  gap:5px!important;
  padding:0!important;
  border-right:0!important;
}
.personal-date-line,.personal-time-line{
  display:inline-flex;
  align-items:center;
  gap:5px;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  padding:5px 9px;
  font-size:12px;
  line-height:1.1;
  font-weight:900;
  white-space:nowrap;
}
.personal-date-line{background:#eef2ff;color:#3730a3;border:1px solid rgba(99,102,241,.25)}
.personal-time-line{background:#ecfeff;color:#155e75;border:1px solid rgba(6,182,212,.25)}
.personal-date-line::before{content:"날짜";font-size:9px;color:#6366f1;font-weight:950}
.personal-time-line::before{content:"시간";font-size:9px;color:#0891b2;font-weight:950}
.personal-schedule-display.is-empty .personal-date-line,.personal-schedule-display.is-empty .personal-time-line{background:#f8fafc;color:#94a3b8;border-color:rgba(148,163,184,.26)}
.personal-action-cell button{display:block;width:100%;margin:3px 0!important;padding:6px 8px!important;border-radius:10px!important;font-size:11px!important;white-space:nowrap}
.personal-schedule-editor{
  margin-top:0!important;
  display:grid;
  grid-template-columns:1fr!important;
  gap:6px!important;
  padding:8px!important;
  border-radius:12px!important;
  background:#f8fafc!important;
  border:1px solid rgba(148,163,184,.26)!important;
}
.personal-schedule-editor[hidden]{display:none!important}
.personal-editor-field{display:grid;gap:4px;margin:0!important;font-size:11px!important;font-weight:900!important;color:#475569!important}
.personal-editor-field span{font-size:11px;color:#64748b;font-weight:950}
.personal-editor-field input{font-size:12px!important;padding:7px 8px!important;min-height:30px!important;border-radius:10px!important;background:#fff!important}
.personal-schedule-editor .personal-save-date,.personal-schedule-editor .personal-cancel-schedule{padding:6px 8px!important;font-size:11px!important;border-radius:10px!important;min-height:28px!important}
.personal-scheduled-head{margin-top:18px!important;background:linear-gradient(135deg,#fff7ed,#ffffff)!important;border-color:rgba(249,115,22,.18)!important}
#personalScheduledTable tbody tr.personal-scheduled-row td{background:#fffaf0!important}
#personalScheduledTable tbody tr.personal-scheduled-row:nth-child(even) td{background:#fff7ed!important}
.schedule-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-weight:900;font-size:12px;white-space:nowrap;border:1px solid transparent}
.date-badge{background:#eef2ff;color:#3730a3;border-color:rgba(99,102,241,.24)}
.time-badge{background:#ecfeff;color:#155e75;border-color:rgba(6,182,212,.24)}
@media (max-width:720px){
  .personal-add-grid{padding:10px;border-radius:14px;gap:8px}
  .personal-table-head{padding:10px;border-radius:14px}
  .personal-schedule-cell{min-width:112px!important;max-width:132px!important;padding:5px!important}
  .personal-action-cell{min-width:70px!important;padding:5px!important}
  .personal-date-line,.personal-time-line{font-size:9.8px;padding:4px 6px;gap:3px}
  .personal-date-line::before,.personal-time-line::before{font-size:7.8px}
  .personal-action-cell button{padding:4px 5px!important;font-size:9px!important;border-radius:8px!important}
  .personal-editor-field span{font-size:9px}
  .personal-editor-field input{font-size:10px!important;padding:5px 6px!important;min-height:25px!important}
  .personal-schedule-editor{padding:5px!important;gap:4px!important}
  .type-pill{min-width:32px;padding:3px 6px;font-size:10px}
  .schedule-badge{font-size:10px;padding:4px 6px}
}

/* v59 refinements: personal total table layout and resident list conservative column visibility */
#personalPatientTable.no-type{width:100%;table-layout:fixed;}
#personalPatientTable.no-type th.personal-type-col,
#personalPatientTable.no-type td.personal-type-col{display:none!important;width:0!important;padding:0!important;border:0!important;}
#personalPatientTable.no-type th:nth-child(2), #personalPatientTable.no-type td:nth-child(2){width:23%!important;}
#personalPatientTable.no-type th:nth-child(3), #personalPatientTable.no-type td:nth-child(3){width:22%!important;}
#personalPatientTable.no-type th:nth-child(4), #personalPatientTable.no-type td:nth-child(4){width:34%!important;}
#personalPatientTable.no-type th:nth-child(5), #personalPatientTable.no-type td:nth-child(5){width:21%!important;}
#personalPatientTable .personal-action-cell{display:table-cell!important;}
#personalPatientTable .personal-schedule-cell{vertical-align:middle;}
@media (max-width:720px){
  #personalPatientTable.no-type th:nth-child(2), #personalPatientTable.no-type td:nth-child(2){width:22%!important;}
  #personalPatientTable.no-type th:nth-child(3), #personalPatientTable.no-type td:nth-child(3){width:20%!important;}
  #personalPatientTable.no-type th:nth-child(4), #personalPatientTable.no-type td:nth-child(4){width:36%!important;}
  #personalPatientTable.no-type th:nth-child(5), #personalPatientTable.no-type td:nth-child(5){width:22%!important;}
}


/* =========================================================
   v60 SAMPLE DESIGN THEME
   - 기능은 유지하고 표 기반 UI를 더 깔끔하게 보이도록 한 샘플 테마
   ========================================================= */
:root{
  --sample-bg:#f6f8fc;
  --sample-card:#ffffff;
  --sample-card-soft:#fbfdff;
  --sample-line:#e3e8f2;
  --sample-line-strong:#d6deeb;
  --sample-text:#172033;
  --sample-muted:#65728a;
  --sample-primary:#2563eb;
  --sample-primary-soft:#eaf2ff;
  --sample-primary-soft2:#f3f7ff;
  --sample-green:#16a34a;
  --sample-green-soft:#ecfdf3;
  --sample-red:#ef4444;
  --sample-red-soft:#fff1f2;
  --sample-yellow:#f59e0b;
  --sample-yellow-soft:#fff7e6;
  --sample-shadow:0 18px 46px rgba(15,23,42,.08);
  --sample-shadow-sm:0 8px 24px rgba(15,23,42,.06);
}
html{background:var(--sample-bg)}
body{
  background:
    radial-gradient(circle at 8% 2%,rgba(37,99,235,.09),transparent 30%),
    radial-gradient(circle at 92% 0%,rgba(20,184,166,.08),transparent 28%),
    var(--sample-bg)!important;
  color:var(--sample-text)!important;
  letter-spacing:-.01em;
}
.shell{
  max-width:1320px!important;
  padding:26px 22px 34px!important;
}
.hero{
  border:1px solid rgba(37,99,235,.12)!important;
  background:linear-gradient(135deg,#ffffff 0%,#f7fbff 58%,#edf6ff 100%)!important;
  border-radius:26px!important;
  box-shadow:var(--sample-shadow)!important;
  overflow:hidden;
  position:relative;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:7px;
  background:linear-gradient(180deg,#2563eb,#14b8a6);
}
.eyebrow{
  color:var(--sample-primary)!important;
  font-weight:900!important;
  letter-spacing:.12em!important;
}
.hero h1{
  color:#0f172a!important;
  font-size:clamp(30px,4vw,48px)!important;
  line-height:1.04!important;
}
.hero h1 span{
  display:inline-block;
  margin-left:8px;
  color:#64748b!important;
  font-size:.42em!important;
  font-weight:800!important;
  vertical-align:middle;
  background:#fff;
  border:1px solid var(--sample-line);
  border-radius:999px;
  padding:7px 12px;
}
.hero-text{color:var(--sample-muted)!important;max-width:780px!important}
.hero-side{
  border:1px solid rgba(37,99,235,.12)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:var(--sample-shadow-sm)!important;
  backdrop-filter:blur(10px);
}
.side-title strong{color:#0f172a!important}
.side-title span{color:var(--sample-muted)!important}
.admin-button,
button:not(.tab),
input[type="button"],
input[type="submit"]{
  border-radius:14px!important;
  box-shadow:none!important;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}
.admin-button{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  color:#fff!important;
  font-weight:900!important;
  border:0!important;
  box-shadow:0 10px 20px rgba(37,99,235,.22)!important;
}
.admin-button:hover,button:hover{transform:translateY(-1px)}
.tabs{
  padding:8px!important;
  gap:8px!important;
  border:1px solid var(--sample-line)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.74)!important;
  box-shadow:var(--sample-shadow-sm)!important;
  backdrop-filter:blur(10px);
  position:sticky;
  top:12px;
  z-index:20;
}
.tab{
  border-radius:16px!important;
  color:#64748b!important;
  font-weight:900!important;
  border:1px solid transparent!important;
  background:transparent!important;
}
.tab.active{
  color:#fff!important;
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  border-color:rgba(37,99,235,.4)!important;
  box-shadow:0 10px 20px rgba(37,99,235,.20)!important;
}
.page{animation:sampleFade .18s ease both}
@keyframes sampleFade{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
.panel,
.list-dept-panel,
.list-page-panel,
.list-time-panel,
.color-tools,
.winner-card,
.professor-summary-row,
.personal-login-card,
.personal-add-card,
.personal-list-card,
.personal-table-head,
.personal-scheduled-head{
  border:1px solid var(--sample-line)!important;
  background:var(--sample-card)!important;
  border-radius:24px!important;
  box-shadow:var(--sample-shadow-sm)!important;
}
.panel{padding:22px!important}
.panel-head{
  padding-bottom:16px!important;
  border-bottom:1px solid var(--sample-line)!important;
  margin-bottom:18px!important;
}
.panel-head h2{
  color:#0f172a!important;
  font-weight:950!important;
  letter-spacing:-.03em!important;
}
.panel-head p,.list-note,.small{color:var(--sample-muted)!important}
.select-label{
  color:#475569!important;
  font-weight:900!important;
}
select,input,textarea{
  border:1px solid var(--sample-line-strong)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#172033!important;
  box-shadow:0 1px 0 rgba(15,23,42,.02)!important;
}
select:focus,input:focus,textarea:focus{
  outline:3px solid rgba(37,99,235,.12)!important;
  border-color:rgba(37,99,235,.55)!important;
}
button:not(.tab){
  background:#fff!important;
  border:1px solid var(--sample-line-strong)!important;
  color:#334155!important;
  font-weight:900!important;
}
button:not(.tab):not(.secondary){
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  border-color:#1d4ed8!important;
  color:#fff!important;
}
button.secondary{
  background:#f8fafc!important;
  border-color:var(--sample-line)!important;
  color:#334155!important;
}
.time-filter-action{
  background:linear-gradient(135deg,#f97316,#f59e0b)!important;
  border:0!important;
  color:#fff!important;
  box-shadow:0 10px 18px rgba(249,115,22,.22)!important;
}
.time-filter-action[aria-pressed="true"]{
  background:linear-gradient(135deg,#16a34a,#059669)!important;
  box-shadow:0 10px 18px rgba(22,163,74,.22)!important;
}
.search-row{
  background:var(--sample-card-soft)!important;
  border:1px solid var(--sample-line)!important;
  border-radius:20px!important;
  padding:12px!important;
  align-items:center!important;
}
#searchInput{
  min-height:44px!important;
  padding-left:16px!important;
  font-weight:700!important;
}
.color-tools{
  padding:12px!important;
  gap:8px!important;
  background:linear-gradient(135deg,#ffffff,#f8fbff)!important;
}
.color-tools-title{
  color:#0f172a!important;
  background:var(--sample-primary-soft)!important;
  border:1px solid rgba(37,99,235,.14)!important;
  border-radius:999px!important;
  padding:7px 11px!important;
  font-weight:950!important;
}
.color-endo,
tr.row-endo-highlight td{
  background:#eaf4ff!important;
}
.color-operative,
tr.row-operative-highlight td{
  background:#ecfdf3!important;
}
.total-filter-action[aria-pressed="true"],
.total-dim td{
  background:#fff7e6!important;
  color:#8a5a00!important;
}
.table-wrap{
  border:1px solid var(--sample-line)!important;
  border-radius:20px!important;
  overflow:auto!important;
  background:#fff!important;
  box-shadow:0 6px 20px rgba(15,23,42,.04)!important;
}
table{
  border-collapse:separate!important;
  border-spacing:0!important;
  width:100%!important;
  background:#fff!important;
}
th{
  position:sticky;
  top:0;
  z-index:5;
  background:linear-gradient(180deg,#f1f6ff,#eaf2ff)!important;
  color:#1e3a8a!important;
  font-size:13px!important;
  font-weight:950!important;
  text-transform:none!important;
  border-bottom:1px solid #dbeafe!important;
  white-space:nowrap!important;
}
td{
  color:#1f2937!important;
  border-bottom:1px solid #edf1f7!important;
  background:#fff!important;
  vertical-align:middle!important;
}
tbody tr:nth-child(even) td{background:#fbfdff!important}
tbody tr:hover td{background:#f3f7ff!important}
tbody tr.search-hit td{
  background:#fff1f2!important;
  color:#7f1d1d!important;
}
#apptTable td,
#apptTable th,
#professorTable td,
#professorTable th,
#personalPatientTable td,
#personalPatientTable th{
  padding:8px 10px!important;
  line-height:1.35!important;
}
#apptTable .treatment-cell,
.treatment-cell{
  max-width:250px!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
  color:#334155!important;
}
.resident-dept-tabs,
.dept-selector{
  gap:8px!important;
}
.resident-dept-tabs button,
.dept-selector label{
  border-radius:999px!important;
  border:1px solid var(--sample-line)!important;
  background:#fff!important;
  color:#475569!important;
  font-weight:900!important;
  box-shadow:0 2px 8px rgba(15,23,42,.03)!important;
}
.resident-dept-tabs button.active,
.dept-selector label:has(input:checked){
  background:var(--sample-primary-soft)!important;
  border-color:rgba(37,99,235,.35)!important;
  color:#1d4ed8!important;
}
.chart-card,
.chart-box{
  border-radius:20px!important;
  border:1px solid var(--sample-line)!important;
  background:#fff!important;
  box-shadow:var(--sample-shadow-sm)!important;
}
.rank-list .rank-item,
.professor-summary-row .meta-pill,
.meta-pill{
  border-radius:999px!important;
  background:var(--sample-primary-soft)!important;
  color:#1d4ed8!important;
  border:1px solid rgba(37,99,235,.14)!important;
  font-weight:950!important;
}
.winner-card{
  background:linear-gradient(135deg,#eff6ff,#ffffff)!important;
  border-color:rgba(37,99,235,.16)!important;
}
.winner-card strong{color:#1d4ed8!important}
.type-pill{
  border-radius:999px!important;
  font-weight:950!important;
  border:1px solid transparent!important;
  letter-spacing:-.02em;
}
.type-pill.type-bonto{background:#eef2ff!important;color:#3730a3!important;border-color:#c7d2fe!important}
.type-pill.type-jinto{background:#ecfdf3!important;color:#166534!important;border-color:#bbf7d0!important}
.type-pill.type-guto{background:#fff7ed!important;color:#9a3412!important;border-color:#fed7aa!important}
.personal-alert-card,
.personal-match-card{
  border-radius:18px!important;
  border:1px solid rgba(239,68,68,.22)!important;
  background:linear-gradient(135deg,#fff1f2,#fff)!important;
  box-shadow:0 8px 20px rgba(239,68,68,.08)!important;
}
.personal-add-card{
  background:linear-gradient(135deg,#ffffff,#f8fbff)!important;
}
.personal-list-card{
  background:linear-gradient(135deg,#ffffff,#fbfdff)!important;
}
.personal-date-line,.personal-time-line,.date-badge,.time-badge{
  border-radius:999px!important;
  font-weight:950!important;
}
@media (max-width:720px){
  .shell{padding:14px 10px 24px!important}
  .hero{border-radius:20px!important;padding:18px!important}
  .hero h1{font-size:28px!important}
  .hero h1 span{display:block;margin:10px 0 0;width:max-content}
  .tabs{top:6px;overflow-x:auto;flex-wrap:nowrap!important;border-radius:18px!important}
  .tab{white-space:nowrap!important;padding:10px 12px!important;font-size:13px!important}
  .panel{padding:14px!important;border-radius:20px!important}
  .panel-head{gap:12px!important;align-items:flex-start!important}
  .list-controls{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
  .search-row{display:grid!important;grid-template-columns:1fr auto auto;gap:7px!important;padding:8px!important}
  #searchInput{min-height:38px!important;font-size:13px!important}
  .table-wrap{border-radius:16px!important}
  #apptTable td,#apptTable th,#professorTable td,#professorTable th,#personalPatientTable td,#personalPatientTable th{padding:7px 8px!important;font-size:12px!important}
  .treatment-cell{max-width:180px!important}
  .color-tools{border-radius:18px!important;overflow-x:auto;flex-wrap:nowrap!important}
  .color-tools button,.color-tools span{white-space:nowrap!important}
}


/* === v61 pastel sample overrides === */
:root{
  --pastel-blue:#dbeafe;
  --pastel-blue-strong:#93c5fd;
  --pastel-blue-text:#1d4ed8;
  --pastel-mint:#dcfce7;
  --pastel-mint-strong:#86efac;
  --pastel-pink:#ffe4e6;
  --pastel-lavender:#ede9fe;
  --pastel-cream:#fff7ed;
}
/* Top navigation: 기존처럼 무색 바탕 + 선택된 메뉴만 파스텔 강조 */
.tabs{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  gap:8px!important;
  backdrop-filter:none!important;
}
.tab{
  background:transparent!important;
  border:1px solid transparent!important;
  color:#64748b!important;
  box-shadow:none!important;
}
.tab.active{
  background:linear-gradient(135deg,#e0f2fe,#e9d5ff)!important;
  border-color:rgba(147,197,253,.7)!important;
  color:#1e40af!important;
  box-shadow:0 8px 18px rgba(59,130,246,.12)!important;
}
.tab:hover{background:#f8fafc!important;color:#334155!important;box-shadow:none!important}
.tab.active:hover{background:linear-gradient(135deg,#e0f2fe,#e9d5ff)!important;color:#1e40af!important}

/* 개인 토탈 관리 내부 메뉴도 동일한 무색 바탕 + 선택 메뉴 파스텔 */
.personal-dept-tabs{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  gap:8px!important;
}
.personal-dept-tabs button,
.personal-dept-tab{
  background:transparent!important;
  border:1px solid transparent!important;
  color:#64748b!important;
  box-shadow:none!important;
  border-radius:999px!important;
}
.personal-dept-tabs button.active,
.personal-dept-tab.active{
  background:linear-gradient(135deg,#e0f2fe,#dcfce7)!important;
  border-color:rgba(147,197,253,.75)!important;
  color:#1d4ed8!important;
  box-shadow:0 8px 18px rgba(59,130,246,.10)!important;
}
#personalTomorrowTab.active{
  background:linear-gradient(135deg,#fff7ed,#ffe4e6)!important;
  border-color:rgba(251,146,60,.45)!important;
  color:#c2410c!important;
}

/* 현재 남은 진료: 샘플 카드 느낌을 줄이고 기존 버전처럼 명확한 계산/랭킹 UI */
#remaining .panel{
  background:#fff!important;
  border:1px solid #e5e7eb!important;
  box-shadow:0 6px 18px rgba(15,23,42,.06)!important;
}
#remaining .winner-card{
  background:linear-gradient(135deg,#263b80,#14213d)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 14px 32px rgba(38,59,128,.22)!important;
}
#remaining .winner-card span,
#remaining .winner-card p{color:rgba(255,255,255,.82)!important}
#remaining .winner-card strong{color:#fff!important}
#remaining .rank-item{
  background:#fff!important;
  border:1px solid #e5e7eb!important;
  border-radius:16px!important;
  box-shadow:none!important;
}
#remaining .rank-item .bar i{background:linear-gradient(90deg,#315cf6,#12b6a7)!important}

/* 전공의 리스트 표 배율이 실제로 바뀌도록 최종 우선순위 보정 */
#apptTableWrap.scale-100 #apptTable{font-size:14px!important}
#apptTableWrap.scale-90 #apptTable{font-size:12.6px!important}
#apptTableWrap.scale-80 #apptTable{font-size:11.2px!important}
#apptTableWrap.scale-70 #apptTable{font-size:9.8px!important}
#apptTableWrap.scale-100 #apptTable th,#apptTableWrap.scale-100 #apptTable td{padding:7px 6px!important}
#apptTableWrap.scale-90 #apptTable th,#apptTableWrap.scale-90 #apptTable td{padding:6px 5px!important}
#apptTableWrap.scale-80 #apptTable th,#apptTableWrap.scale-80 #apptTable td{padding:5px 4px!important}
#apptTableWrap.scale-70 #apptTable th,#apptTableWrap.scale-70 #apptTable td{padding:4px 3px!important}
#apptTableWrap.scale-100 .treatment-cell{max-width:210px!important}
#apptTableWrap.scale-90 .treatment-cell{max-width:185px!important}
#apptTableWrap.scale-80 .treatment-cell{max-width:160px!important}
#apptTableWrap.scale-70 .treatment-cell{max-width:135px!important}

/* 개인 토탈 표: 모바일에서 진료번호 끝자리 밀림 방지 */
#personalPatientTable td:nth-child(3),
#personalPatientTable th:nth-child(3),
#personalTomorrowTable td:nth-child(4),
#personalTomorrowTable th:nth-child(4),
#personalScheduledTable td:nth-child(4),
#personalScheduledTable th:nth-child(4){
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  font-variant-numeric:tabular-nums!important;
}
#personalPatientTable.no-type th:nth-child(3), #personalPatientTable.no-type td:nth-child(3){width:24%!important;min-width:72px!important}
#personalPatientTable.no-type th:nth-child(2), #personalPatientTable.no-type td:nth-child(2){width:20%!important}
#personalPatientTable.no-type th:nth-child(4), #personalPatientTable.no-type td:nth-child(4){width:34%!important}
#personalPatientTable.no-type th:nth-child(5), #personalPatientTable.no-type td:nth-child(5){width:22%!important}
@media (max-width:720px){
  #personalPatientTable{min-width:520px!important}
  #personalPatientTable:not(.no-type){min-width:600px!important}
  #personalTomorrowTable,#personalScheduledTable{min-width:620px!important}
  #personalPatientTable td:nth-child(3),#personalPatientTable th:nth-child(3){font-size:10.5px!important;letter-spacing:-.02em!important}
}

/* v63 pastel polish */
.tabs{background:rgba(255,255,255,.58)!important;border:1px solid rgba(255,255,255,.72)!important;box-shadow:0 14px 32px rgba(99,114,130,.12)!important;backdrop-filter:blur(22px) saturate(1.15)!important;-webkit-backdrop-filter:blur(22px) saturate(1.15)!important}
.tab{background:rgba(255,255,255,.82)!important;color:#4b5563!important;border:1px solid rgba(229,231,235,.95)!important;box-shadow:none!important}
.tab.active{background:linear-gradient(135deg,#dbeafe,#e0e7ff)!important;color:#1e3a8a!important;border-color:#bfdbfe!important;box-shadow:0 10px 22px rgba(147,197,253,.28)!important}
.clinic-subtabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px;padding:8px;border-radius:18px;background:rgba(255,255,255,.62);border:1px solid rgba(229,231,235,.85)}
.clinic-subtab{background:#fff!important;color:#4b5563!important;border:1px solid #e5e7eb!important;box-shadow:none!important}
.clinic-subtab.active{background:linear-gradient(135deg,#dcfce7,#dbeafe)!important;color:#14532d!important;border-color:#bbf7d0!important;box-shadow:0 10px 22px rgba(134,239,172,.22)!important}
.resident-dept-tabs .dept-page-tab,.personal-dept-tab{background:#fff!important;color:#344054!important;border:1px solid #e5e7eb!important;box-shadow:none!important}
.resident-dept-tabs .dept-page-tab.active,.personal-dept-tab.active{background:linear-gradient(135deg,#fce7f3,#e0f2fe)!important;color:#7c2d12!important;border-color:#fbcfe8!important;box-shadow:0 10px 22px rgba(251,207,232,.25)!important}
.personal-dept-tab:not(.active),.resident-dept-tabs .dept-page-tab:not(.active){background:#fff!important;color:#475467!important}
.time-filter-action{background:linear-gradient(135deg,#fde68a,#bfdbfe)!important;color:#713f12!important;border:1px solid #fcd34d!important;box-shadow:0 10px 22px rgba(253,224,71,.28)!important;font-weight:950!important}
.time-filter-action.active{background:linear-gradient(135deg,#93c5fd,#c4b5fd)!important;color:#172554!important;border-color:#93c5fd!important}
.search-help{display:flex;align-items:center;color:#64748b;background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:10px 12px;font-size:13px;font-weight:800}
.professor-summary-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.professor-summary-row .meta-pill{white-space:normal;max-width:100%;line-height:1.35}
.personal-scheduled-row td,.personal-today-match-row td{padding:6px 6px!important}.personal-table-wrap table{min-width:620px}.personal-table-wrap th,.personal-table-wrap td{font-size:13px!important}.personal-table-wrap .schedule-badge{display:inline-flex;margin:1px 0;white-space:nowrap}
@media (max-width:720px){.tabs{top:6px}.tab{padding:10px 12px}.clinic-subtabs{position:sticky;top:66px;z-index:15}.personal-table-wrap table{min-width:560px}.personal-table-wrap th,.personal-table-wrap td{font-size:12px!important;padding:5px 5px!important}.search-row{grid-template-columns:1fr;}.search-help{grid-column:1/-1}}

/* v65: softer, more natural main menu bar */
.tabs{
  display:flex!important;
  gap:10px!important;
  padding:10px!important;
  margin:18px 0 20px!important;
  border-radius:22px!important;
  background:linear-gradient(135deg,rgba(255,255,255,.64),rgba(246,249,255,.72))!important;
  border:1px solid rgba(226,232,240,.72)!important;
  box-shadow:0 14px 34px rgba(100,116,139,.13), inset 0 1px 0 rgba(255,255,255,.86)!important;
  backdrop-filter:blur(20px) saturate(1.18)!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.18)!important;
  position:sticky!important;
  top:10px!important;
  z-index:30!important;
  overflow-x:auto!important;
}
.tab{
  position:relative!important;
  flex:0 0 auto!important;
  padding:12px 18px!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.74)!important;
  color:#475569!important;
  border:1px solid rgba(226,232,240,.88)!important;
  box-shadow:0 2px 8px rgba(148,163,184,.08)!important;
  font-weight:900!important;
  letter-spacing:-.02em!important;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease,border-color .18s ease!important;
}
.tab:hover{
  transform:translateY(-1px)!important;
  background:rgba(255,255,255,.96)!important;
  color:#334155!important;
  border-color:#cbd5e1!important;
  box-shadow:0 10px 22px rgba(148,163,184,.15)!important;
}
.tab.active{
  color:#1e3a8a!important;
  background:linear-gradient(135deg,#dbeafe 0%,#e0f2fe 46%,#f0f9ff 100%)!important;
  border-color:#bfdbfe!important;
  box-shadow:0 12px 26px rgba(147,197,253,.34), inset 0 1px 0 rgba(255,255,255,.88)!important;
}
.tab.active::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:5px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#93c5fd,#a7f3d0,#ddd6fe);
}
@media (max-width:720px){
  .tabs{
    top:6px!important;
    padding:8px!important;
    border-radius:18px!important;
    gap:8px!important;
  }
  .tab{
    padding:10px 13px!important;
    font-size:13px!important;
    border-radius:14px!important;
  }
  .tab.active::after{left:14px;right:14px;bottom:4px;height:2px;}
}


/* v66: 남은 진료 세부 메뉴와 현재 남은 진료 UI 보정 */
.clinic-subtabs{
  display:flex!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  margin:0 0 18px!important;
  padding:8px!important;
  border-radius:18px!important;
  background:rgba(248,250,252,.72)!important;
  border:1px solid rgba(226,232,240,.82)!important;
  box-shadow:0 8px 22px rgba(148,163,184,.10)!important;
}
.clinic-subtab{
  background:#fff!important;
  color:#475569!important;
  border:1px solid #e5e7eb!important;
  box-shadow:0 2px 8px rgba(148,163,184,.08)!important;
  border-radius:14px!important;
  padding:11px 16px!important;
  font-weight:950!important;
}
.clinic-subtab.active{
  background:linear-gradient(135deg,#dbeafe,#dcfce7)!important;
  color:#1e3a8a!important;
  border-color:#bfdbfe!important;
  box-shadow:0 12px 24px rgba(147,197,253,.26)!important;
}
#clinicRemainingSubpage{
  background:#fff!important;
  border:1px solid #e5e7eb!important;
  box-shadow:0 8px 24px rgba(15,23,42,.06)!important;
  border-radius:22px!important;
}
#clinicRemainingSubpage .winner-card{
  background:linear-gradient(135deg,#263b80,#14213d)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 14px 32px rgba(38,59,128,.22)!important;
}
#clinicRemainingSubpage .winner-card span,
#clinicRemainingSubpage .winner-card p{color:rgba(255,255,255,.84)!important}
#clinicRemainingSubpage .winner-card strong{color:#fff!important}
#clinicRemainingSubpage .rank-list{gap:10px!important}
#clinicRemainingSubpage .rank-item{
  background:#fff!important;
  border:1px solid #e5e7eb!important;
  border-radius:16px!important;
  box-shadow:none!important;
}
#clinicRemainingSubpage .rank-item .bar{background:#edf1f7!important}
#clinicRemainingSubpage .rank-item .bar i{background:linear-gradient(90deg,#315cf6,#12b6a7)!important}
#clinicRemainingSubpage .panel-head h2{color:#111827!important}
#clinicRemainingSubpage .panel-head p{color:#667085!important}

/* v67 personal total refinements */
.personal-list-controls{
  display:inline-flex;
  gap:6px;
  padding:4px;
  border:1px solid rgba(191,203,219,.85);
  border-radius:14px;
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 20px rgba(30,41,59,.06);
}
.personal-view-btn{
  border:1px solid transparent;
  background:#fff;
  color:#475569;
  border-radius:11px;
  padding:8px 13px;
  font-weight:800;
  cursor:pointer;
}
.personal-view-btn.active{
  color:#1d4ed8;
  background:linear-gradient(135deg,#dbeafe,#eef2ff);
  border-color:#bfdbfe;
  box-shadow:0 8px 18px rgba(37,99,235,.12);
}
.prostho-status-summary{
  margin:10px 0 12px;
  padding:10px 12px;
  border:1px solid #fde68a;
  border-radius:16px;
  background:linear-gradient(135deg,#fffbeb,#fff7ed);
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.prostho-count-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:7px 11px;
  background:#fff;
  border:1px solid #fed7aa;
  font-weight:800;
  color:#9a3412;
  box-shadow:0 5px 14px rgba(154,52,18,.07);
}
.personal-compact-table-wrap{font-size:60%;}
.personal-compact-table{table-layout:fixed; width:100%;}
.personal-compact-table th,
.personal-compact-table td{padding:5px 6px; line-height:1.25; vertical-align:middle;}
.personal-compact-table th:nth-child(2), .personal-compact-table td:nth-child(2){width:14%;}
.personal-compact-table th:nth-child(3), .personal-compact-table td:nth-child(3){width:14%; white-space:nowrap;}
.personal-compact-table th:nth-child(4), .personal-compact-table td:nth-child(4){width:9%;}
.personal-compact-table th:nth-child(5), .personal-compact-table td:nth-child(5){width:20%;}
.personal-compact-table th:nth-child(6), .personal-compact-table td:nth-child(6){width:17%;}
.personal-compact-table th:nth-child(7), .personal-compact-table td:nth-child(7){width:20%;}
.personal-compact-table.no-type th.personal-type-col,
.personal-compact-table.no-type td.personal-type-col{display:none;}
.personal-compact-table.no-type th:nth-child(2), .personal-compact-table.no-type td:nth-child(2){width:18%;}
.personal-compact-table.no-type th:nth-child(3), .personal-compact-table.no-type td:nth-child(3){width:16%;}
.personal-compact-table .personal-visit-input,
.personal-visit-input{
  width:4.8em;
  min-width:3.8em;
  padding:5px 6px;
  border:1px solid #dbe4f0;
  border-radius:10px;
  font-weight:800;
  text-align:center;
  background:#fff;
}
.prostho-flag-box{display:flex; flex-wrap:wrap; gap:4px; justify-content:center;}
.prostho-flag{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:4px 6px;
  border:1px solid #e5e7eb;
  background:#fff;
  border-radius:999px;
  font-weight:900;
  color:#64748b;
  cursor:pointer;
  user-select:none;
}
.prostho-flag input{margin:0; width:12px; height:12px;}
.prostho-flag.is-on{background:#fff7ed; border-color:#fdba74; color:#c2410c;}
.muted-dash{color:#cbd5e1; font-weight:700;}
.personal-card-list{margin-top:10px; gap:14px;}
.personal-card-group{border:1px solid #e5eaf2; background:rgba(255,255,255,.82); border-radius:20px; padding:12px; box-shadow:0 10px 26px rgba(15,23,42,.06);}
.personal-card-group-title{display:flex; align-items:center; gap:10px; margin-bottom:10px;}
.personal-card-group-title strong{color:#475569;}
.personal-patient-cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:10px;}
.personal-patient-card{border:1px solid #e5e7eb; border-radius:18px; padding:12px; background:#fff; box-shadow:0 8px 18px rgba(15,23,42,.06); display:grid; gap:9px;}
.personal-patient-card.type-bonto{background:linear-gradient(135deg,#fff,#f8fafc);}
.personal-patient-card.type-jinto{background:linear-gradient(135deg,#fff,#eff6ff); border-color:#bfdbfe;}
.personal-patient-card.type-guto{background:linear-gradient(135deg,#fff,#fff7ed); border-color:#fed7aa;}
.personal-patient-card-top{display:flex; align-items:center; gap:8px; justify-content:space-between;}
.personal-patient-card-top strong{font-size:1.05rem; color:#0f172a;}
.personal-patient-no{font-weight:900; color:#334155; letter-spacing:.02em;}
.personal-card-meta{display:flex; align-items:center; justify-content:space-between; gap:8px; color:#64748b; font-weight:800;}
.personal-card-schedule{display:flex; gap:6px; flex-wrap:wrap;}
.personal-card-actions{display:flex; gap:6px; flex-wrap:wrap;}
.personal-card-actions button{padding:6px 9px; border-radius:10px; font-size:.83rem;}
.personal-empty-card{padding:12px; border:1px dashed #cbd5e1; border-radius:14px; color:#64748b; background:#f8fafc;}
.scheduled-date-time{display:flex; flex-direction:column; gap:4px; align-items:flex-start;}
#personalScheduledTable{font-size:60%; table-layout:fixed;}
#personalScheduledTable th,#personalScheduledTable td{padding:5px 6px; line-height:1.25;}
#personalTomorrowTable{font-size:60%; table-layout:fixed;}
#personalTomorrowTable th,#personalTomorrowTable td{padding:5px 6px; line-height:1.25;}
#personalTomorrowTable .personal-visit-input{font-size:.9em; pointer-events:none; color:#475569; background:#f8fafc;}
@media (max-width:720px){
  .personal-compact-table-wrap{font-size:56%;}
  .personal-compact-table th,.personal-compact-table td{padding:4px 4px;}
  .personal-patient-cards{grid-template-columns:1fr;}
  .personal-list-controls{width:100%; justify-content:center;}
  .personal-view-btn{flex:1;}
  .prostho-status-summary{justify-content:center;}
  #personalTomorrowTable,#personalScheduledTable{font-size:55%;}
}


/* v68: 교정 필터 선택 상태를 더 명확하게 표시 */
.ortho-filter-action.active{
  background:linear-gradient(135deg,#dbeafe,#e0e7ff)!important;
  color:#1e3a8a!important;
  border-color:#93c5fd!important;
  box-shadow:0 10px 22px rgba(147,197,253,.28)!important;
}
#orthoBondingBtn.active{
  background:linear-gradient(135deg,#fef3c7,#fde68a)!important;
  color:#92400e!important;
  border-color:#facc15!important;
}
#clearOrthoFilterBtn.active{
  background:linear-gradient(135deg,#f1f5f9,#e2e8f0)!important;
  color:#334155!important;
  border-color:#cbd5e1!important;
}
/* v68: 개인 토탈 로그인 카드 안정화 */
.personal-auth-grid{align-items:stretch;}
.personal-card input[type=password],.personal-card input[type=text]{min-height:44px;}

/* v74 personal total polish */
.personal-add-card{
  background:linear-gradient(135deg,#f8fbff 0%,#ffffff 55%,#fff9fb 100%)!important;
  border:1px solid #dbeafe!important;
  box-shadow:0 12px 30px rgba(37,99,235,.07)!important;
}
.personal-table-head,
.personal-table-wrap.personal-compact-table-wrap{
  background:linear-gradient(135deg,#ffffff 0%,#fbfdff 100%)!important;
  border:1px solid #e5eaf2!important;
  box-shadow:0 10px 26px rgba(15,23,42,.05)!important;
}
.personal-table-head{margin-top:18px!important;}
.personal-compact-table-wrap{font-size:60%!important; overflow-x:auto;}
.personal-compact-table{width:100%!important; min-width:0!important; table-layout:fixed!important;}
.personal-compact-table th,.personal-compact-table td{
  padding:4px 5px!important;
  line-height:1.22!important;
  vertical-align:middle!important;
}
.personal-compact-table th{background:#f1f6ff!important; color:#334155!important; font-weight:900!important;}
.personal-compact-table tbody tr:nth-child(even):not(.personal-group-row):not(.personal-empty-row){background:#fbfdff!important;}
.personal-compact-table .personal-action-cell{display:table-cell!important;}
.personal-compact-table .personal-action-cell button{padding:4px 6px!important; border-radius:9px!important; font-size:.88em!important; margin:1px!important;}
.personal-compact-table .personal-schedule-cell{min-width:0!important;}
.personal-schedule-display{gap:3px!important; align-items:flex-start!important;}
.personal-date-line,.personal-time-line{display:inline-flex!important; width:max-content; max-width:100%;}
.personal-compact-table:not(.is-prostho) th:nth-child(6),
.personal-compact-table:not(.is-prostho) td.personal-prostho-cell{display:none!important;}
.personal-compact-table.is-prostho th:nth-child(6),
.personal-compact-table.is-prostho td.personal-prostho-cell{display:table-cell!important;}
.personal-compact-table.no-type:not(.is-prostho) th:nth-child(2), .personal-compact-table.no-type:not(.is-prostho) td:nth-child(2){width:18%!important;}
.personal-compact-table.no-type:not(.is-prostho) th:nth-child(3), .personal-compact-table.no-type:not(.is-prostho) td:nth-child(3){width:17%!important;}
.personal-compact-table.no-type:not(.is-prostho) th:nth-child(4), .personal-compact-table.no-type:not(.is-prostho) td:nth-child(4){width:10%!important;}
.personal-compact-table.no-type:not(.is-prostho) th:nth-child(5), .personal-compact-table.no-type:not(.is-prostho) td:nth-child(5){width:28%!important;}
.personal-compact-table.no-type:not(.is-prostho) th:nth-child(7), .personal-compact-table.no-type:not(.is-prostho) td:nth-child(7){width:27%!important;}
.personal-view-btn{background:#fff!important;color:#475569!important;border:1px solid #e5e7eb!important;box-shadow:none!important;}
.personal-view-btn.active{background:linear-gradient(135deg,#dbeafe,#fce7f3)!important;color:#1d4ed8!important;border-color:#bfdbfe!important;box-shadow:0 8px 18px rgba(37,99,235,.15)!important;}
@media (max-width:720px){
  .personal-compact-table-wrap{font-size:60%!important;}
  .personal-compact-table th,.personal-compact-table td{padding:3px 3px!important;}
  .personal-compact-table .personal-action-cell button{font-size:.82em!important;padding:3px 4px!important;}
  .personal-visit-input{width:3.8em!important;min-width:3.4em!important;padding:3px 4px!important;}
  .personal-add-card{padding:12px!important;}
  .personal-table-head{padding:10px!important;}
}

/* v75: intuitive personal total cards and auto-save visit count */
.personal-compact-table:not(.is-prostho) .personal-save-meta{display:none!important;}
.personal-visit-cell{vertical-align:middle;}
.personal-visit-stepper{display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:4px; border:1px solid #e2e8f0; background:#f8fafc; border-radius:14px; box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
.personal-visit-stepper.compact{gap:4px; padding:3px; border-radius:12px;}
.visit-step-btn{width:28px; height:28px; min-width:28px; padding:0; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; border:1px solid #dbe4f0; background:#fff; color:#475569; font-weight:900; line-height:1; box-shadow:0 2px 6px rgba(15,23,42,.04);}
.visit-step-btn:hover{background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe;}
.visit-input-wrap{display:inline-grid; gap:2px; align-items:center; min-width:58px; margin:0; color:#64748b; font-size:.72rem; font-weight:900; text-align:center;}
.visit-input-wrap span{line-height:1;}
.visit-input-wrap input.personal-visit-input,.personal-compact-table .visit-input-wrap input.personal-visit-input{width:4.2em; min-width:4.2em; padding:4px 4px; border:0; background:transparent; box-shadow:none; font-size:1rem; color:#0f172a; font-weight:900; text-align:center; outline:none;}
.auto-save-hint,.auto-save-pill{display:inline-flex; align-items:center; justify-content:center; margin-top:4px; padding:3px 7px; border-radius:999px; background:#eef2ff; color:#475569; font-weight:900; font-size:.72rem; white-space:nowrap;}
.auto-save-pill{margin-top:0; background:#ecfdf5; color:#047857;}
.auto-save-hint.is-saving,.auto-save-pill.is-saving{background:#fff7ed; color:#c2410c;}
.auto-save-hint.is-saved,.auto-save-pill.is-saved{background:#dcfce7; color:#166534;}
.auto-save-hint.is-error,.auto-save-pill.is-error{background:#fee2e2; color:#b91c1c;}
.personal-patient-card{position:relative; overflow:hidden; padding:14px; border-radius:22px; border:1px solid rgba(203,213,225,.9); background:linear-gradient(180deg,#fff 0%,#f8fafc 100%); box-shadow:0 14px 30px rgba(15,23,42,.08);}
.personal-patient-card::before{content:""; position:absolute; inset:0 auto 0 0; width:5px; background:#cbd5e1;}
.personal-patient-card.type-bonto::before{background:#a7f3d0;}
.personal-patient-card.type-jinto::before{background:#bfdbfe;}
.personal-patient-card.type-guto::before{background:#fed7aa;}
.personal-patient-card-top{padding-left:2px;}
.personal-patient-card-top strong{font-size:1.08rem; letter-spacing:-.02em;}
.personal-patient-no{display:inline-flex; width:max-content; padding:5px 10px; border-radius:999px; background:#f1f5f9; color:#334155; font-weight:950; font-size:.92rem;}
.personal-card-schedule-row{display:grid; grid-template-columns:1fr auto; align-items:center; gap:8px; padding:10px; border:1px solid #e5e7eb; border-radius:16px; background:rgba(255,255,255,.78);}
.personal-card-schedule{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
.personal-card-schedule .schedule-badge{display:grid; gap:2px; justify-items:start; padding:8px 10px; border-radius:12px; min-height:48px;}
.personal-card-schedule .schedule-badge b{display:block; font-size:.72rem; color:#64748b; letter-spacing:.02em;}
.personal-card-editor-line{display:grid; grid-template-columns:1fr 1fr auto auto; align-items:end; gap:8px; padding:10px; border:1px solid #bfdbfe; border-radius:16px; background:#eff6ff;}
.personal-card-editor-line .personal-editor-field{display:grid; gap:4px; margin:0; font-size:.78rem; font-weight:900; color:#475569;}
.personal-card-editor-line input{min-height:38px; border:1px solid #cbd5e1; border-radius:10px; padding:6px 8px; background:#fff;}
.personal-card-visit-row{display:grid; grid-template-columns:1fr auto; align-items:center; gap:8px; padding:10px; border:1px solid #dcfce7; border-radius:16px; background:#f0fdf4;}
.personal-card-actions{display:flex; justify-content:flex-end; padding-top:2px;}
.personal-card-actions .danger{background:#fff1f2; color:#be123c; border-color:#fecdd3;}
.personal-card-actions .danger:hover{background:#ffe4e6;}
@media (max-width:720px){
  .personal-patient-cards{grid-template-columns:1fr; gap:12px;}
  .personal-card-schedule-row{grid-template-columns:1fr;}
  .personal-card-schedule-row .personal-edit-schedule{width:100%;}
  .personal-card-editor-line{grid-template-columns:1fr 1fr;}
  .personal-card-editor-line button{min-height:36px;}
  .personal-card-visit-row{grid-template-columns:1fr;}
  .personal-visit-stepper{width:100%; justify-content:space-between; padding:6px;}
  .visit-step-btn{width:34px; height:34px; min-width:34px; font-size:1.1rem;}
  .visit-input-wrap{min-width:72px;}
  .visit-input-wrap input.personal-visit-input{font-size:1.08rem;}
  .auto-save-pill{width:max-content; justify-self:end;}
}

/* v76: 보철 카드형 토탈 UI 정리 */
.personal-list-controls{
  gap:8px;
  flex-wrap:wrap;
}
.personal-view-btn{
  background:#fff!important;
  border:1px solid #dbeafe!important;
  color:#475569!important;
  box-shadow:0 2px 8px rgba(15,23,42,.04);
}
.personal-view-btn.active{
  background:linear-gradient(135deg,#dbeafe,#e0f2fe)!important;
  border-color:#93c5fd!important;
  color:#1d4ed8!important;
  box-shadow:0 8px 18px rgba(37,99,235,.12);
}
.personal-patient-cards{
  grid-template-columns:repeat(auto-fill,minmax(380px,1fr))!important;
  gap:16px!important;
}
.personal-patient-card{
  padding:18px!important;
  border-radius:24px!important;
  gap:12px!important;
}
.personal-card-identity-line{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  padding:2px 0 4px!important;
}
.personal-card-identity-line strong{
  font-size:1.08rem!important;
  color:#0f172a!important;
  letter-spacing:-.02em!important;
}
.personal-card-identity-line .personal-patient-no{
  margin:0!important;
  font-size:.9rem!important;
  background:#eef2ff!important;
  color:#3730a3!important;
  border:1px solid #c7d2fe!important;
}
.personal-card-schedule-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  padding:12px!important;
  background:linear-gradient(135deg,#ffffff,#f8fbff)!important;
  border:1px solid #dbeafe!important;
  border-radius:18px!important;
}
.personal-card-schedule{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
}
.personal-card-schedule .schedule-badge{
  display:grid!important;
  gap:3px!important;
  justify-items:start!important;
  min-height:50px!important;
  padding:9px 11px!important;
  border-radius:14px!important;
  border:1px solid transparent!important;
}
.personal-card-schedule .date-badge{
  background:#eff6ff!important;
  border-color:#bfdbfe!important;
  color:#1e3a8a!important;
}
.personal-card-schedule .time-badge{
  background:#f0fdf4!important;
  border-color:#bbf7d0!important;
  color:#166534!important;
}
.personal-card-schedule .schedule-badge b{
  font-size:.72rem!important;
  color:#64748b!important;
  letter-spacing:.03em!important;
}
.personal-card-editor-line{
  display:grid!important;
  grid-template-columns:1fr 1fr auto!important;
  align-items:end!important;
  gap:8px!important;
  padding:12px!important;
  border-radius:18px!important;
  background:#f8fbff!important;
  border:1px dashed #93c5fd!important;
}
.personal-card-editor-line .personal-editor-field span::after{
  content:" 자동저장";
  color:#2563eb;
  font-weight:800;
  font-size:.7rem;
  margin-left:4px;
}
.personal-card-visit-row{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:12px!important;
  background:linear-gradient(135deg,#f0fdf4,#ffffff)!important;
  border:1px solid #bbf7d0!important;
  border-radius:18px!important;
}
.personal-visit-stepper{
  display:grid!important;
  grid-template-columns:34px minmax(74px,1fr) 34px!important;
  align-items:center!important;
  width:100%;
  max-width:220px;
  gap:0!important;
  padding:4px!important;
  border-radius:999px!important;
  border:1px solid #bfdbfe!important;
  background:#fff!important;
  box-shadow:0 8px 18px rgba(15,23,42,.05)!important;
  overflow:hidden!important;
}
.personal-visit-stepper.compact{
  max-width:160px;
  grid-template-columns:28px minmax(54px,1fr) 28px!important;
}
.visit-step-btn{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  min-width:0!important;
  height:32px!important;
  border:0!important;
  border-radius:999px!important;
  background:#eff6ff!important;
  color:#1d4ed8!important;
  font-weight:950!important;
  box-shadow:none!important;
}
.personal-visit-stepper.compact .visit-step-btn{height:28px!important;}
.visit-input-wrap{
  display:grid!important;
  justify-items:center!important;
  gap:0!important;
  min-width:0!important;
  margin:0!important;
}
.visit-input-wrap span{
  font-size:.62rem!important;
  color:#64748b!important;
  font-weight:900!important;
  line-height:1.1!important;
}
.personal-visit-input{
  min-height:24px!important;
  height:24px!important;
  width:100%!important;
  max-width:64px!important;
  text-align:center!important;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  font-weight:950!important;
  color:#0f172a!important;
  font-size:1rem!important;
}
.personal-card-prostho-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:12px;
  border:1px solid #fed7aa;
  border-radius:18px;
  background:linear-gradient(135deg,#fff7ed,#ffffff);
}
.personal-card-row-label{
  font-size:.78rem;
  font-weight:950;
  color:#9a3412;
  white-space:nowrap;
}
.personal-card-prostho-row .prostho-flag-box{
  justify-content:flex-start;
}
.personal-card-actions{
  justify-content:flex-end!important;
}
@media (max-width:720px){
  .personal-patient-cards{grid-template-columns:1fr!important; gap:12px!important;}
  .personal-patient-card{padding:14px!important;}
  .personal-card-schedule-row{grid-template-columns:1fr!important;}
  .personal-card-schedule-row .personal-edit-schedule{width:100%;}
  .personal-card-editor-line{grid-template-columns:1fr 1fr!important;}
  .personal-card-editor-line .personal-cancel-schedule{grid-column:1 / -1; width:100%;}
  .personal-card-visit-row{display:grid!important; grid-template-columns:1fr auto!important;}
  .personal-visit-stepper{max-width:180px!important; grid-template-columns:34px minmax(58px,1fr) 34px!important;}
  .visit-step-btn{height:34px!important; font-size:1.1rem!important;}
  .personal-card-prostho-row{grid-template-columns:1fr; gap:8px;}
}

/* v78: 교정 토탈 카드형 UI 정리 */
.personal-patient-cards{
  grid-template-columns:repeat(auto-fit,minmax(520px,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.personal-patient-card.ortho-total-card{
  width:100%!important;
  max-width:none!important;
  padding:20px 22px!important;
  gap:14px!important;
}
.personal-patient-card.ortho-total-card .personal-card-identity-line{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  font-size:1rem!important;
  line-height:1.25!important;
}
.personal-patient-card.ortho-total-card .identity-separator{
  color:#94a3b8!important;
  font-weight:900!important;
}
.personal-patient-card.ortho-total-card .type-pill{
  flex:0 0 auto!important;
}
.personal-patient-card.ortho-total-card .personal-patient-no{
  flex:0 0 auto!important;
  white-space:nowrap!important;
}
.personal-patient-card.ortho-total-card .personal-card-schedule-row{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:12px!important;
}
.personal-patient-card.ortho-total-card .personal-card-schedule{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
}
.personal-patient-card.ortho-total-card .personal-card-visit-row{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
}
.personal-patient-card.ortho-total-card .visit-label{
  color:#166534!important;
  min-width:64px!important;
}
.personal-patient-card.ortho-total-card .personal-visit-stepper{
  flex:0 0 190px!important;
  width:190px!important;
  max-width:190px!important;
  display:grid!important;
  grid-template-columns:36px minmax(78px,1fr) 36px!important;
}
.personal-patient-card.ortho-total-card .visit-step-btn{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  width:36px!important;
  min-width:36px!important;
  height:34px!important;
  -webkit-appearance:none!important;
  appearance:none!important;
}
.personal-patient-card.ortho-total-card .personal-card-actions{
  justify-content:flex-end!important;
  border-top:1px dashed #e2e8f0!important;
  padding-top:10px!important;
}
@media (max-width:720px){
  .personal-patient-cards{grid-template-columns:1fr!important; gap:12px!important;}
  .personal-patient-card.ortho-total-card{padding:14px!important; gap:10px!important;}
  .personal-patient-card.ortho-total-card .personal-card-identity-line{gap:6px!important; font-size:.92rem!important;}
  .personal-patient-card.ortho-total-card .personal-card-schedule-row{grid-template-columns:1fr auto!important; align-items:center!important; gap:8px!important; padding:10px!important;}
  .personal-patient-card.ortho-total-card .personal-card-schedule{grid-template-columns:1fr 1fr!important; gap:6px!important;}
  .personal-patient-card.ortho-total-card .personal-card-schedule .schedule-badge{min-height:42px!important; padding:7px 8px!important;}
  .personal-patient-card.ortho-total-card .personal-edit-schedule{width:auto!important; white-space:nowrap!important; padding:8px 10px!important;}
  .personal-patient-card.ortho-total-card .personal-card-visit-row{display:flex!important; flex-wrap:nowrap!important; gap:8px!important; padding:10px!important;}
  .personal-patient-card.ortho-total-card .visit-label{min-width:auto!important; font-size:.78rem!important;}
  .personal-patient-card.ortho-total-card .personal-visit-stepper{flex:0 0 150px!important; width:150px!important; max-width:150px!important; grid-template-columns:32px minmax(58px,1fr) 32px!important;}
  .personal-patient-card.ortho-total-card .visit-step-btn{display:flex!important; width:32px!important; min-width:32px!important; height:32px!important; font-size:1.05rem!important;}
  .personal-patient-card.ortho-total-card .auto-save-pill{font-size:.7rem!important; padding:5px 7px!important; white-space:nowrap!important;}
  .personal-patient-card.ortho-total-card .personal-card-editor-line{grid-template-columns:1fr 1fr auto!important; gap:6px!important; padding:9px!important;}
  .personal-patient-card.ortho-total-card .personal-cancel-schedule{grid-column:auto!important; width:auto!important; white-space:nowrap!important;}
}
@media (max-width:420px){
  .personal-patient-card.ortho-total-card .personal-card-schedule-row{grid-template-columns:1fr!important;}
  .personal-patient-card.ortho-total-card .personal-card-schedule-row .personal-edit-schedule{width:100%!important;}
  .personal-patient-card.ortho-total-card .personal-card-visit-row{justify-content:space-between!important;}
  .personal-patient-card.ortho-total-card .personal-visit-stepper{flex:0 0 142px!important; width:142px!important; max-width:142px!important;}
}


/* v79: 교정 카드형 PC 폭 보정 - 교정 카드에만 적용 */
.personal-patient-cards.ortho-patient-cards{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(620px,100%),1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
@media (min-width:1180px){
  .personal-patient-cards.ortho-patient-cards{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (min-width:721px) and (max-width:1179px){
  .personal-patient-cards.ortho-patient-cards{
    grid-template-columns:1fr!important;
  }
}
.personal-patient-cards.ortho-patient-cards .personal-patient-card.ortho-total-card{
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
  padding:22px 24px!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-identity-line,
.personal-patient-cards.ortho-patient-cards .personal-card-schedule-row,
.personal-patient-cards.ortho-patient-cards .personal-card-visit-row{
  min-width:0!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-identity-line{
  flex-wrap:nowrap!important;
  overflow:hidden!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-identity-line strong{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-schedule-row{
  grid-template-columns:minmax(0,1fr) auto!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-schedule{
  grid-template-columns:minmax(160px,1fr) minmax(120px,1fr)!important;
  min-width:0!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-schedule .schedule-badge{
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-editor-line{
  grid-template-columns:minmax(180px,1fr) minmax(140px,1fr)!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-visit-row{
  flex-wrap:nowrap!important;
}
.personal-patient-cards.ortho-patient-cards .personal-visit-stepper{
  flex:0 0 200px!important;
  width:200px!important;
  max-width:200px!important;
}
.personal-patient-cards.ortho-patient-cards .visit-step-btn{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-actions{
  justify-content:stretch!important;
}
.personal-patient-cards.ortho-patient-cards .personal-card-actions .personal-delete-patient{
  width:100%!important;
  min-height:40px!important;
}
@media (max-width:720px){
  .personal-patient-cards.ortho-patient-cards{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-patient-card.ortho-total-card{
    padding:14px!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-identity-line{
    flex-wrap:wrap!important;
    overflow:visible!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-identity-line strong{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-schedule-row{
    grid-template-columns:1fr auto!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-schedule{
    grid-template-columns:1fr 1fr!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-editor-line{
    grid-template-columns:1fr 1fr!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-visit-row{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-visit-stepper{
    flex:0 0 150px!important;
    width:150px!important;
    max-width:150px!important;
  }
  .personal-patient-cards.ortho-patient-cards .visit-step-btn{
    min-width:32px!important;
    width:32px!important;
    height:32px!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-actions .personal-delete-patient{
    width:100%!important;
  }
}
@media (max-width:420px){
  .personal-patient-cards.ortho-patient-cards .personal-card-schedule-row{
    grid-template-columns:1fr!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-schedule-row .personal-edit-schedule{
    width:100%!important;
  }
  .personal-patient-cards.ortho-patient-cards .personal-card-visit-row{
    justify-content:space-between!important;
  }
}

/* v80: 교정 카드 PC 압축 방지 최종 보정
   - 교정 카드형만 1열 넓은 카드로 고정
   - 부모 grid/section이 내용 폭만큼 줄어드는 현상 방지
   - 모바일은 기존 1열 유지 */
#personalCardList.personal-card-list{
  width:100%!important;
  max-width:none!important;
}
#personalCardList .personal-card-group{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
#personalCardList .personal-patient-cards.ortho-patient-cards{
  width:100%!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:16px!important;
  justify-items:stretch!important;
  align-items:stretch!important;
}
#personalCardList .personal-patient-cards.ortho-patient-cards .personal-patient-card.ortho-total-card{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
  padding:22px 24px!important;
}
@media (min-width:960px){
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-patient-card.ortho-total-card{
    min-height:0!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-identity-line{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    overflow:visible!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-identity-line strong{
    flex:1 1 auto!important;
    min-width:140px!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-schedule-row{
    display:grid!important;
    grid-template-columns:minmax(360px,1fr) auto!important;
    align-items:center!important;
    gap:14px!important;
    width:100%!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-schedule{
    display:grid!important;
    grid-template-columns:minmax(170px,1fr) minmax(130px,1fr)!important;
    gap:10px!important;
    min-width:0!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-edit-schedule{
    min-width:92px!important;
    white-space:nowrap!important;
    writing-mode:horizontal-tb!important;
    word-break:keep-all!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-visit-row{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:14px!important;
    width:100%!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-visit-stepper{
    flex:0 0 210px!important;
    width:210px!important;
    max-width:210px!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .auto-save-pill{
    margin-left:4px!important;
    white-space:nowrap!important;
  }
}
@media (max-width:720px){
  #personalCardList .personal-patient-cards.ortho-patient-cards{
    grid-template-columns:1fr!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-patient-card.ortho-total-card{
    padding:14px!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-identity-line{
    flex-wrap:wrap!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-schedule-row{
    grid-template-columns:1fr auto!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-edit-schedule{
    writing-mode:horizontal-tb!important;
    white-space:normal!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-visit-stepper{
    flex:0 0 150px!important;
    width:150px!important;
    max-width:150px!important;
  }
}

/* v81: PC two-column ortho cards and clearer active/inactive menu states */
#personalManageArea,
#personalCardList,
#personalCardList .personal-card-list,
#personalCardList .personal-card-group{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
#personalCardList .personal-card-group{
  margin-bottom:16px!important;
  padding:16px!important;
}
@media (min-width:900px){
  #personalCardList .personal-patient-cards.ortho-patient-cards{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    width:100%!important;
    justify-items:stretch!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-patient-card.ortho-total-card{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    padding:20px 22px!important;
  }
}
@media (min-width:721px) and (max-width:899px){
  #personalCardList .personal-patient-cards.ortho-patient-cards{grid-template-columns:1fr!important;}
}
#personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-schedule-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  gap:12px!important;
}
#personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-schedule{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
#personalCardList .personal-patient-cards.ortho-patient-cards .personal-edit-schedule{
  min-width:84px!important;
  white-space:nowrap!important;
  writing-mode:horizontal-tb!important;
  word-break:keep-all!important;
  padding:9px 12px!important;
}
#personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-visit-row{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:12px!important;
}
#personalCardList .personal-patient-cards.ortho-patient-cards .personal-visit-stepper{
  flex:0 0 190px!important;
  width:190px!important;
  max-width:190px!important;
}
@media (max-width:720px){
  #personalCardList .personal-patient-cards.ortho-patient-cards{grid-template-columns:1fr!important;}
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-schedule-row{grid-template-columns:1fr auto!important;}
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-visit-stepper{flex:0 0 150px!important;width:150px!important;max-width:150px!important;}
}

/* v81: personal total subject bar - only selected item is colored */
.personal-dept-tabs{
  background:rgba(248,250,252,.65)!important;
  border:1px solid #e5eaf2!important;
  border-radius:18px!important;
  padding:8px!important;
  box-shadow:0 6px 18px rgba(15,23,42,.04)!important;
}
.personal-dept-tabs .personal-dept-tab{
  background:rgba(255,255,255,.78)!important;
  border:1px solid #e5e7eb!important;
  color:#64748b!important;
  opacity:.72!important;
  box-shadow:none!important;
}
.personal-dept-tabs .personal-dept-tab.active{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  border-color:#1d4ed8!important;
  color:#fff!important;
  opacity:1!important;
  box-shadow:0 10px 20px rgba(37,99,235,.20)!important;
}
#personalTomorrowTab.active{
  background:linear-gradient(135deg,#2563eb,#0f766e)!important;
  border-color:#0f766e!important;
  color:#fff!important;
}

/* v81: separate patient add area from patient list area */
#personalAddTitle{
  margin:18px 0 8px!important;
  padding-left:4px!important;
}
#personalPatientForm.personal-add-grid{
  margin:0 0 22px!important;
  padding:18px!important;
  border:1px solid #bfdbfe!important;
  border-radius:22px!important;
  background:linear-gradient(135deg,#f8fbff,#eef6ff)!important;
  box-shadow:0 10px 26px rgba(37,99,235,.08)!important;
}
.personal-table-head{
  margin-top:8px!important;
  padding:18px!important;
  border:1px solid #e5e7eb!important;
  border-radius:22px!important;
  background:linear-gradient(135deg,#ffffff,#f8fafc)!important;
  box-shadow:0 8px 22px rgba(15,23,42,.05)!important;
}

/* v81: remaining-page subtabs - inactive white, active colored */
.clinic-subtabs{
  background:rgba(248,250,252,.72)!important;
  border:1px solid #e5eaf2!important;
}
.clinic-subtabs .clinic-subtab{
  background:rgba(255,255,255,.86)!important;
  color:#64748b!important;
  border:1px solid #e5e7eb!important;
  opacity:.72!important;
  box-shadow:none!important;
}
.clinic-subtabs .clinic-subtab.active{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  color:#fff!important;
  border-color:#1d4ed8!important;
  opacity:1!important;
  box-shadow:0 10px 20px rgba(37,99,235,.20)!important;
}

/* v81: resident list conservative buttons active state */
.color-tools .color-action,
.color-tools .color-endo,
.color-tools .color-operative{
  background:rgba(255,255,255,.86)!important;
  color:#475569!important;
  border:1px solid #e5e7eb!important;
  opacity:.76!important;
  box-shadow:none!important;
}
.color-tools .color-endo.active{
  background:linear-gradient(135deg,#dbeafe,#bfdbfe)!important;
  color:#1e3a8a!important;
  border-color:#93c5fd!important;
  opacity:1!important;
  box-shadow:0 10px 20px rgba(59,130,246,.18)!important;
}
.color-tools .color-operative.active{
  background:linear-gradient(135deg,#dcfce7,#bbf7d0)!important;
  color:#166534!important;
  border-color:#86efac!important;
  opacity:1!important;
  box-shadow:0 10px 20px rgba(34,197,94,.16)!important;
}
.color-tools #clearConservativeColorBtn{
  background:#fff!important;
  color:#64748b!important;
}

/* v81: resident search row - larger search field, shorter right-side guide */
.search-row{
  display:grid!important;
  grid-template-columns:minmax(360px,1fr) auto auto minmax(180px,260px)!important;
  gap:8px!important;
  padding:10px!important;
}
.search-row #searchInput{
  grid-column:1!important;
  grid-row:1!important;
  min-height:50px!important;
  font-size:15px!important;
  margin-top:0!important;
}
.search-row #searchBtn{grid-column:2!important;grid-row:1!important;min-height:50px!important;}
.search-row #resetBtn{grid-column:3!important;grid-row:1!important;min-height:50px!important;}
.search-row .search-help{
  grid-column:4!important;
  grid-row:1!important;
  align-self:center!important;
  justify-self:end!important;
  max-width:250px!important;
  padding:7px 10px!important;
  border-radius:999px!important;
  background:#fff1f2!important;
  border:1px solid #fecdd3!important;
  color:#be123c!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.25!important;
  text-align:center!important;
  white-space:normal!important;
}
@media (max-width:900px){
  .search-row{grid-template-columns:1fr auto auto!important;}
  .search-row .search-help{grid-column:1 / -1!important;grid-row:2!important;justify-self:start!important;max-width:none!important;}
}
@media (max-width:520px){
  .search-row{grid-template-columns:1fr!important;}
  .search-row #searchInput,.search-row #searchBtn,.search-row #resetBtn,.search-row .search-help{grid-column:1!important;grid-row:auto!important;width:100%!important;}
}

/* v82: make inactive menu buttons more transparent for clearer selected state */
.tabs .tab:not(.active){
  background:rgba(255,255,255,.38)!important;
  color:#94a3b8!important;
  border-color:rgba(226,232,240,.52)!important;
  opacity:.48!important;
  box-shadow:none!important;
}
.tabs .tab:not(.active):hover{
  opacity:.78!important;
  background:rgba(255,255,255,.76)!important;
  color:#475569!important;
}
.personal-dept-tabs .personal-dept-tab:not(.active),
.clinic-subtabs .clinic-subtab:not(.active),
.resident-dept-tabs .dept-page-tab:not(.active),
.color-tools .color-action:not(.active),
.color-tools .color-endo:not(.active),
.color-tools .color-operative:not(.active),
.personal-list-controls .personal-view-btn:not(.active),
.ortho-filter-action:not(.active),
.time-filter-action:not(.active){
  background:rgba(255,255,255,.34)!important;
  color:#94a3b8!important;
  border-color:rgba(226,232,240,.48)!important;
  opacity:.42!important;
  box-shadow:none!important;
}
.personal-dept-tabs .personal-dept-tab:not(.active):hover,
.clinic-subtabs .clinic-subtab:not(.active):hover,
.resident-dept-tabs .dept-page-tab:not(.active):hover,
.color-tools .color-action:not(.active):hover,
.color-tools .color-endo:not(.active):hover,
.color-tools .color-operative:not(.active):hover,
.personal-list-controls .personal-view-btn:not(.active):hover,
.ortho-filter-action:not(.active):hover,
.time-filter-action:not(.active):hover{
  opacity:.76!important;
  background:rgba(255,255,255,.78)!important;
  color:#475569!important;
  border-color:#cbd5e1!important;
}
.personal-dept-tabs .personal-dept-tab.active,
.clinic-subtabs .clinic-subtab.active,
.resident-dept-tabs .dept-page-tab.active,
.personal-list-controls .personal-view-btn.active,
.ortho-filter-action.active,
.time-filter-action.active{
  opacity:1!important;
}


/* v83: table/card toggle clarity and default card view */
.personal-list-controls{
  background:rgba(248,250,252,.72)!important;
  border:1px solid rgba(203,213,225,.85)!important;
  padding:5px!important;
}
.personal-list-controls .personal-view-btn:not(.active){
  background:rgba(255,255,255,.16)!important;
  color:#a8b3c4!important;
  border-color:rgba(226,232,240,.34)!important;
  opacity:.24!important;
  box-shadow:none!important;
}
.personal-list-controls .personal-view-btn:not(.active):hover{
  background:rgba(255,255,255,.72)!important;
  color:#64748b!important;
  border-color:#cbd5e1!important;
  opacity:.68!important;
}
.personal-list-controls .personal-view-btn.active{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  border-color:#1d4ed8!important;
  color:#fff!important;
  opacity:1!important;
  box-shadow:0 10px 20px rgba(37,99,235,.22)!important;
}

/* v85: mobile personal-total table schedule readability fix */
.personal-table-wrap.personal-compact-table-wrap{
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
#personalPatientTable.personal-compact-table{
  width:100%!important;
  table-layout:fixed!important;
}
#personalPatientTable.personal-compact-table td,
#personalPatientTable.personal-compact-table th{
  overflow:visible!important;
  text-overflow:clip!important;
}
#personalPatientTable .personal-schedule-cell{
  min-width:150px!important;
  overflow:visible!important;
  white-space:normal!important;
}
#personalPatientTable .personal-schedule-display{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:4px!important;
  min-width:138px!important;
  max-width:none!important;
}
#personalPatientTable .personal-date-line,
#personalPatientTable .personal-time-line{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:92px!important;
  max-width:none!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  letter-spacing:-.01em!important;
}
@media (max-width:720px){
  .personal-table-wrap.personal-compact-table-wrap{
    max-width:100%!important;
    overflow-x:auto!important;
  }
  #personalPatientTable.personal-compact-table{
    min-width:760px!important;
    width:760px!important;
    font-size:12px!important;
  }
  #personalPatientTable.personal-compact-table.is-prostho{
    min-width:860px!important;
    width:860px!important;
  }
  #personalPatientTable.personal-compact-table th,
  #personalPatientTable.personal-compact-table td{
    padding:6px 7px!important;
    line-height:1.28!important;
    font-size:12px!important;
  }
  #personalPatientTable th:nth-child(5),
  #personalPatientTable td.personal-schedule-cell{
    width:165px!important;
    min-width:165px!important;
  }
  #personalPatientTable .personal-schedule-display{
    min-width:150px!important;
  }
  #personalPatientTable .personal-date-line,
  #personalPatientTable .personal-time-line{
    min-width:104px!important;
    font-size:12px!important;
    font-weight:900!important;
  }
  #personalPatientTable .personal-schedule-editor{
    min-width:180px!important;
  }
  #personalPatientTable .personal-date-input,
  #personalPatientTable .personal-time-input{
    min-width:130px!important;
    font-size:12px!important;
  }
}


/* v86 guide entry button and first-visit guide page */
.hero-side .guide-button{
  background:linear-gradient(135deg,#14b8a6,#38bdf8);
  color:#fff;
  box-shadow:0 15px 30px rgba(20,184,166,.23);
}
.hero-side .guide-button:before{content:"✨";font-size:16px}
.guide-body{
  background:radial-gradient(circle at 10% 0%,rgba(49,92,246,.20),transparent 28rem),radial-gradient(circle at 90% 8%,rgba(20,184,166,.18),transparent 30rem),linear-gradient(180deg,#fbfcff 0%,#eef4ff 100%);
}
.guide-shell{width:min(1180px,calc(100% - 34px));margin:0 auto;padding:34px 0 72px}.guide-floating-back{position:fixed;top:18px;left:18px;z-index:50;display:inline-flex;align-items:center;justify-content:center;padding:13px 17px;border-radius:999px;background:rgba(19,32,51,.88);color:#fff;font-weight:950;box-shadow:0 16px 34px rgba(16,24,40,.22);backdrop-filter:blur(12px)}.guide-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) 420px;gap:26px;align-items:stretch;margin-top:46px;padding:36px;border-radius:34px;background:rgba(255,255,255,.84);border:1px solid rgba(255,255,255,.95);box-shadow:0 24px 70px rgba(16,24,40,.12);backdrop-filter:blur(18px)}.guide-hero-copy{position:relative;z-index:2}.guide-hero h1{margin:0;font-size:clamp(42px,7vw,78px);letter-spacing:-.075em;line-height:.98}.guide-hero p{max-width:720px;margin:18px 0 0;color:#475467;font-size:18px;line-height:1.75;word-break:keep-all}.guide-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.guide-hero-actions a,.guide-tips a{display:inline-flex;align-items:center;justify-content:center;padding:15px 18px;border-radius:17px;background:linear-gradient(135deg,var(--primary),#6c7cff);color:white;font-weight:950;box-shadow:0 16px 32px rgba(49,92,246,.24)}.guide-hero-actions a:nth-child(2){background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}.guide-visual{position:relative;min-height:300px;border-radius:30px;background:linear-gradient(145deg,rgba(49,92,246,.10),rgba(20,184,166,.12));overflow:hidden}.guide-phone-card{position:absolute;left:54px;top:42px;width:190px;height:238px;border-radius:28px;background:#fff;box-shadow:0 24px 50px rgba(16,24,40,.18);padding:22px;transform:rotate(-7deg)}.guide-phone-card.second{left:auto;right:42px;top:92px;transform:rotate(8deg);background:#14213d;color:#fff}.guide-phone-card span{display:block;width:54px;height:9px;border-radius:999px;background:#d9e1f2;margin-bottom:34px}.guide-phone-card strong{font-size:28px;line-height:1.15;letter-spacing:-.05em}.guide-phone-card:after{content:"";position:absolute;left:22px;right:22px;bottom:24px;height:62px;border-radius:18px;background:linear-gradient(90deg,rgba(49,92,246,.15),rgba(20,184,166,.15))}.guide-phone-card.second:after{background:rgba(255,255,255,.14)}.guide-orbit{position:absolute;border-radius:50%;filter:blur(.2px);background:linear-gradient(135deg,rgba(49,92,246,.32),rgba(20,184,166,.26))}.guide-orbit.one{width:92px;height:92px;right:24px;top:20px}.guide-orbit.two{width:130px;height:130px;left:16px;bottom:-34px}.guide-section{margin-top:22px;padding:28px;border-radius:30px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.95);box-shadow:0 18px 48px rgba(16,24,40,.08)}.guide-section-head{margin-bottom:18px}.guide-section-head span{display:inline-flex;margin-bottom:10px;padding:7px 11px;border-radius:999px;background:#eef3ff;color:var(--primary);font-weight:950}.guide-section h2{margin:0;font-size:30px;letter-spacing:-.05em}.guide-section-head p,.guide-feature-grid p,.guide-total-grid p,.guide-tips p{color:#667085;line-height:1.7;word-break:keep-all}.guide-step-grid,.guide-feature-grid,.guide-total-grid{display:grid;gap:16px}.guide-step-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-total-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.guide-step-grid article,.guide-feature-grid article,.guide-total-grid article{border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#fff,#f8faff);padding:22px}.guide-step-grid b{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;background:var(--ink);color:white}.guide-section h3{margin:14px 0 8px;font-size:21px;letter-spacing:-.04em}.guide-icon{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#eef3ff;font-size:25px}.guide-feature-grid ul{margin:14px 0 0;padding-left:18px;color:#475467;line-height:1.8}.guide-tips{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#14213d,#263b80);color:#fff}.guide-tips p{color:rgba(255,255,255,.78);margin-bottom:0}.guide-tips a{white-space:nowrap;background:#fff;color:#14213d;box-shadow:none}
@media (max-width:900px){.guide-shell{width:min(100% - 22px,1180px);padding-top:20px}.guide-floating-back{top:auto;left:50%;bottom:18px;transform:translateX(-50%);white-space:nowrap}.guide-hero{grid-template-columns:1fr;margin-top:12px;padding:24px}.guide-visual{min-height:230px}.guide-phone-card{left:28px;top:30px;width:155px;height:196px}.guide-phone-card.second{right:22px;top:70px}.guide-phone-card strong{font-size:22px}.guide-step-grid,.guide-feature-grid,.guide-total-grid{grid-template-columns:1fr}.guide-section{padding:22px}.guide-tips{display:block}.guide-tips a{margin-top:16px}}
@media (max-width:560px){.guide-hero-actions a{width:100%}.guide-visual{display:none}.guide-hero h1{font-size:44px}.guide-hero p{font-size:16px}.guide-section h2{font-size:25px}}

/* v87: OCS 개인 토탈환자 메일 알림 설정 */
.alert-settings-panel {
  margin-top: 18px;
  border: 1px solid rgba(37, 99, 235, .18);
  background: linear-gradient(135deg, rgba(239, 246, 255, .9), rgba(255, 255, 255, .96));
}
.alert-settings-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: end;
}
.alert-settings-grid label {
  min-width: 0;
}
.alert-check-row, .alert-dept-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}
.alert-check-row label, .alert-dept-row label {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, .32);
  background: rgba(255,255,255,.72);
  font-weight: 700;
}
.alert-check-row input, .alert-dept-row input {
  width: auto;
  margin: 0;
}
.alert-settings-note {
  margin: 8px 0 0;
  font-size: .88rem;
  color: #64748b;
  line-height: 1.5;
}
.alert-status-line {
  margin-top: 10px;
  font-weight: 800;
  color: #2563eb;
}
@media (max-width: 760px) {
  .alert-settings-grid { grid-template-columns: 1fr; }
}
/* v89 Gmail API alert settings polish */
input[type="email"]{margin-top:8px;width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px 13px;font-size:15px;outline:none}
.button{display:inline-flex;align-items:center;justify-content:center;border-radius:14px;padding:12px 15px;font-weight:900;cursor:pointer;transition:.16s;text-decoration:none}
.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}
.button.secondary.active{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35);color:#047857}
.alert-settings-note b{word-break:break-all}

/* v90: 토탈관리 메일 알림 설정 페이지 */
.personal-mail-alert-tab{
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#7c3aed,#2563eb) !important;
  color:#fff !important;
  border-color:rgba(37,99,235,.45) !important;
  box-shadow:0 10px 22px rgba(37,99,235,.18);
  opacity:1 !important;
}
.personal-mail-alert-tab:hover{ transform:translateY(-1px); }
.alert-page-shell{ max-width:1080px; }
.alert-hero{ position:relative; overflow:hidden; }
.alert-hero:after{
  content:"";
  position:absolute;
  right:-90px;
  top:-90px;
  width:260px;
  height:260px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(37,99,235,.18),rgba(124,58,237,.06),transparent 70%);
  pointer-events:none;
}
.alert-guide-card{ position:relative; z-index:1; }
.floating-back-btn{
  position:fixed;
  top:18px;
  left:18px;
  z-index:50;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 15px;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(191,219,254,.95);
  color:#1d4ed8;
  text-decoration:none;
  font-weight:900;
  box-shadow:0 14px 34px rgba(15,23,42,.14);
  backdrop-filter:blur(10px);
}
.alert-settings-main-panel{ border-color:rgba(147,197,253,.75); box-shadow:0 18px 48px rgba(15,23,42,.08); }
.alert-settings-page-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.alert-settings-page-grid .wide{ grid-column:1/-1; }
.alert-mini-preview{
  min-width:210px;
  padding:13px 16px;
  border-radius:18px;
  background:linear-gradient(135deg,#eff6ff,#f5f3ff);
  border:1px solid #dbeafe;
  color:#1e3a8a;
}
.alert-mini-preview strong{ display:block; font-size:12px; color:#64748b; margin-bottom:3px; }
.alert-mini-preview span{ font-weight:900; }
.alert-switch-card,.alert-dept-card,.alert-instruction-box{
  border:1px solid #dbeafe;
  background:#f8fbff;
  border-radius:18px;
  padding:15px;
}
.alert-switch-card label{ font-weight:900; color:#1e3a8a; }
.alert-switch-card p{ margin:8px 0 0; color:#64748b; font-size:13px; line-height:1.55; }
.alert-dept-card strong{ display:block; margin-bottom:10px; color:#0f172a; }
.alert-page-actions{ align-items:center; justify-content:flex-start; flex-wrap:wrap; }
.alert-instruction-box{ margin-top:18px; }
.alert-instruction-box h3{ margin:0 0 8px; }
.alert-instruction-box p{ margin:0 0 10px; color:#64748b; }
.alert-instruction-box code{ display:block; padding:12px 14px; border-radius:12px; background:#fff; border:1px solid #c7d2fe; color:#1e40af; overflow:auto; }
body[data-mode="alert-settings"]{ background:linear-gradient(180deg,#eef4ff,#f8fbff 42%,#ffffff); }
@media (max-width: 760px){
  .floating-back-btn{ top:10px; left:10px; padding:9px 12px; font-size:13px; }
  .alert-page-shell{ padding-top:54px; }
  .alert-settings-page-grid{ grid-template-columns:1fr; }
  .alert-mini-preview{ width:100%; }
  .personal-mail-alert-tab{ width:100%; }
}

/* v95: balanced inactive menu opacity + alert settings UI */
.tabs .tab:not(.active){
  background:rgba(255,255,255,.72)!important;
  color:#64748b!important;
  border-color:rgba(203,213,225,.80)!important;
  opacity:.78!important;
}
.tabs .tab:not(.active):hover{opacity:.95!important;color:#334155!important;background:#fff!important;}
.personal-dept-tabs .personal-dept-tab:not(.active),
.clinic-subtabs .clinic-subtab:not(.active),
.resident-dept-tabs .dept-page-tab:not(.active),
.color-tools .color-action:not(.active),
.color-tools .color-endo:not(.active),
.color-tools .color-operative:not(.active),
.ortho-filter-action:not(.active),
.time-filter-action:not(.active){
  background:rgba(255,255,255,.70)!important;
  color:#64748b!important;
  border-color:rgba(203,213,225,.78)!important;
  opacity:.76!important;
  box-shadow:none!important;
}
.personal-list-controls .personal-view-btn:not(.active){
  background:rgba(255,255,255,.66)!important;
  color:#64748b!important;
  border-color:rgba(203,213,225,.78)!important;
  opacity:.74!important;
}
.personal-dept-tabs .personal-dept-tab:not(.active):hover,
.clinic-subtabs .clinic-subtab:not(.active):hover,
.resident-dept-tabs .dept-page-tab:not(.active):hover,
.color-tools .color-action:not(.active):hover,
.color-tools .color-endo:not(.active):hover,
.color-tools .color-operative:not(.active):hover,
.personal-list-controls .personal-view-btn:not(.active):hover,
.ortho-filter-action:not(.active):hover,
.time-filter-action:not(.active):hover{
  opacity:.96!important;
  background:#fff!important;
  color:#334155!important;
  border-color:#94a3b8!important;
}
.personal-mail-alert-tab{font-size:inherit!important;line-height:inherit!important;padding:9px 14px!important;align-items:center!important;}
.upgraded-alert-hero .hero-main{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(239,246,255,.92))!important;}
.alert-side-chip{display:inline-flex;align-items:center;justify-content:center;padding:11px 12px;border-radius:16px;background:#eff6ff;color:#1d4ed8;font-weight:950;border:1px solid #bfdbfe;font-size:13px;}
.upgraded-alert-panel{background:rgba(255,255,255,.94)!important;border:1px solid rgba(191,219,254,.95)!important;}
.alert-toggle-card{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px;padding:18px 18px;border:1px solid #dbeafe;border-radius:20px;background:linear-gradient(135deg,#f8fbff,#eef6ff);}
.alert-toggle-card span{display:flex;flex-direction:column;gap:6px;}
.alert-toggle-card b{font-size:18px;color:#0f172a;}
.alert-toggle-card em{font-style:normal;color:#64748b;font-size:13px;line-height:1.5;}
.alert-toggle-card input[type="checkbox"]{appearance:none;width:58px;height:32px;border-radius:999px;background:#cbd5e1;position:relative;flex:0 0 auto;cursor:pointer;transition:.18s;border:0;}
.alert-toggle-card input[type="checkbox"]:before{content:"";position:absolute;left:4px;top:4px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(15,23,42,.18);transition:.18s;}
.alert-toggle-card input[type="checkbox"]:checked{background:linear-gradient(135deg,#2563eb,#1d4ed8);}
.alert-toggle-card input[type="checkbox"]:checked:before{transform:translateX(26px);}
.alert-explain-box{padding:18px;border-radius:20px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;line-height:1.7;}
.alert-explain-box h3{margin:0 0 10px;color:#0f172a;font-size:18px;}
.alert-explain-box p{margin:8px 0;}
.alert-explain-box code{background:#e0f2fe;color:#075985;border-radius:8px;padding:2px 6px;font-weight:900;}
.alert-page-actions #sendAlertNowBtn{background:#fff!important;color:#1d4ed8!important;border:1px solid #bfdbfe!important;}
.alert-page-actions #sendAlertNowBtn:hover{background:#eff6ff!important;}
@media (max-width:720px){.alert-toggle-card{align-items:flex-start!important;}.alert-toggle-card input[type="checkbox"]{margin-top:2px;}}
.alert-settings-grid input[type="email"]{margin-top:8px;width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px 13px;font-size:15px;outline:none;}
.alert-settings-grid input[type="email"]:focus{border-color:rgba(49,92,246,.55);box-shadow:0 0 0 4px rgba(49,92,246,.08);}


/* v98: alert settings text simplification + mobile total menu stabilization */
.alert-simple-guide{
  border:1px solid rgba(37,99,235,.14)!important;
  background:linear-gradient(135deg,#f8fbff,#eef6ff)!important;
  border-radius:22px!important;
  padding:22px!important;
}
.alert-simple-guide .alert-main-message{
  margin:0 0 12px!important;
  font-size:1.28rem!important;
  line-height:1.45!important;
  font-weight:900!important;
  color:#0f172a!important;
}
.alert-simple-guide .alert-save-message,
.alert-simple-guide .alert-now-message{
  margin:8px 0 0!important;
  font-size:.98rem!important;
  line-height:1.65!important;
  color:#334155!important;
}

/* Keep inactive menus readable, but still visually secondary */
.tabs .tab:not(.active),
.personal-dept-tabs .personal-dept-tab:not(.active),
.clinic-subtabs .clinic-subtab:not(.active),
.resident-dept-tabs .dept-page-tab:not(.active),
.color-tools .color-action:not(.active),
.color-tools .color-endo:not(.active),
.color-tools .color-operative:not(.active),
.personal-list-controls .personal-view-btn:not(.active),
.ortho-filter-action:not(.active),
.time-filter-action:not(.active){
  background:rgba(255,255,255,.76)!important;
  color:#475569!important;
  border-color:rgba(203,213,225,.82)!important;
  opacity:.82!important;
  box-shadow:none!important;
}
.tabs .tab:not(.active):hover,
.personal-dept-tabs .personal-dept-tab:not(.active):hover,
.clinic-subtabs .clinic-subtab:not(.active):hover,
.resident-dept-tabs .dept-page-tab:not(.active):hover,
.color-tools .color-action:not(.active):hover,
.color-tools .color-endo:not(.active):hover,
.color-tools .color-operative:not(.active):hover,
.personal-list-controls .personal-view-btn:not(.active):hover,
.ortho-filter-action:not(.active):hover,
.time-filter-action:not(.active):hover{
  opacity:.98!important;
  background:#fff!important;
  color:#1e293b!important;
}
.personal-dept-tabs .personal-dept-tab,
.personal-dept-tabs button{
  font-size:.92rem!important;
  line-height:1.2!important;
  min-height:40px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  white-space:nowrap!important;
  box-sizing:border-box!important;
}
.personal-mail-alert-tab{font-size:.92rem!important;line-height:1.2!important;}
@media (max-width:720px){
  .personal-dept-tabs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%!important;
  }
  .personal-dept-tabs .personal-dept-tab{
    width:100%!important;
    min-width:0!important;
    padding:9px 7px!important;
    font-size:.82rem!important;
    letter-spacing:-.03em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  #personalTomorrowTab{
    grid-column:1 / -1!important;
    justify-content:center!important;
  }
  .personal-mail-alert-tab{
    grid-column:1 / -1!important;
    justify-content:center!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
}

/* v98: prostho total cleanup */
.personal-card-prostho-row{
  grid-template-columns:1fr!important;
}
.personal-card-prostho-row .personal-card-row-label{
  display:none!important;
}
.personal-card-visit-row .auto-save-pill,
.personal-visit-cell .auto-save-hint{
  display:none!important;
}

/* v99: ortho sign helper page */
.ortho-sign-panel{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,251,255,.92))!important;}
.ortho-sign-card{padding:22px;border:1px solid #dbeafe;border-radius:24px;background:linear-gradient(135deg,#eff6ff,#fff);box-shadow:0 16px 36px rgba(30,64,175,.08);margin-bottom:18px;}
.ortho-sign-controls{display:grid;grid-template-columns:minmax(240px,420px);gap:14px;align-items:end;}
.ortho-sign-result{margin-top:18px;padding:22px 20px;border-radius:22px;background:#fff;border:1px solid #bfdbfe;color:#111827;font-weight:950;font-size:clamp(22px,3vw,34px);letter-spacing:-.04em;line-height:1.35;text-align:center;box-shadow:0 12px 28px rgba(59,130,246,.10);word-break:keep-all;}
.ortho-sign-result strong{color:#1d4ed8;}
.ortho-sign-table-wrap{overflow:auto;border:1px solid #dbeafe;border-radius:22px;background:#fff;}
.ortho-sign-table{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:16px;}
.ortho-sign-table th,.ortho-sign-table td{padding:14px 12px;text-align:center;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;white-space:nowrap;overflow:visible;text-overflow:clip;}
.ortho-sign-table thead th{position:static;background:#dbeafe;color:#111827;font-weight:950;font-size:18px;}
.ortho-sign-table tbody th{background:#f8fafc;color:#334155;font-weight:950;text-align:left;}
.ortho-sign-table tbody td{font-weight:950;font-size:20px;color:#111827;}
.ortho-sign-table tr:last-child th,.ortho-sign-table tr:last-child td{border-bottom:0;}
.ortho-sign-table th:last-child,.ortho-sign-table td:last-child{border-right:0;}
.ortho-sign-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.ortho-sign-legend span{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border-radius:999px;background:#fff;border:1px solid #e5e7eb;font-weight:900;color:#344054;}
.ortho-sign-legend b{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#eff6ff;color:#1d4ed8;}
@media (max-width:720px){
  .ortho-sign-controls{grid-template-columns:1fr;}
  .ortho-sign-card{padding:16px;}
  .ortho-sign-result{text-align:left;font-size:23px;}
  .ortho-sign-table{min-width:640px;font-size:14px;}
  .ortho-sign-table thead th{font-size:15px;}
  .ortho-sign-table tbody td{font-size:17px;}
}

/* v102: ortho sign mobile result visibility fix */
.ortho-sign-result{display:block!important;min-height:88px;visibility:visible!important;opacity:1!important;}
.ortho-sign-month{display:inline-block;margin-bottom:8px;font-size:15px;font-weight:950;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:6px 10px;letter-spacing:-.02em;}
.ortho-sign-muted{font-size:18px;color:#475569;font-weight:900;}
.ortho-sign-table .current-month{background:#eff6ff!important;color:#1d4ed8!important;box-shadow:inset 0 0 0 2px rgba(37,99,235,.18);}
@media (max-width: 720px){
  .ortho-sign-controls{display:block!important;}
  .ortho-sign-controls .select-label{width:100%;display:block;font-size:14px;}
  #orthoSignProfessorSelect{width:100%;min-height:48px;font-size:16px;}
  .ortho-sign-result{margin-top:14px!important;padding:18px 16px!important;font-size:22px!important;line-height:1.45!important;text-align:center!important;word-break:keep-all!important;}
}

/* v108 UI fixes */
.tabs .tab:not(.active){opacity:.68!important;color:#475467!important;background:rgba(255,255,255,.72)!important;}
.tabs .tab:not(.active):hover{opacity:.92!important;}
.personal-dept-tabs .personal-dept-tab:not(.active),
.resident-dept-tabs .dept-page-tab:not(.active),
.clinic-subtabs .clinic-subtab:not(.active){opacity:.68!important;color:#475467!important;background:rgba(255,255,255,.78)!important;}
.personal-dept-tabs .personal-dept-tab.active,
.resident-dept-tabs .dept-page-tab.active,
.clinic-subtabs .clinic-subtab.active{opacity:1!important;}
.personal-dept-tabs{align-items:stretch;}
.personal-dept-tabs .personal-dept-tab{font-size:14px!important;line-height:1.2!important;min-height:42px;display:inline-flex;align-items:center;justify-content:center;text-align:center;}
.personal-attendance-form{display:flex;align-items:center;gap:8px;flex:1 1 360px;min-width:280px;padding:8px 10px;border:1px solid var(--line);border-radius:16px;background:#fff;}
.personal-attendance-form label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900;color:#344054;white-space:nowrap;flex:1;}
.personal-attendance-form input{margin:0!important;width:74px!important;padding:9px 10px!important;border-radius:12px!important;text-align:center;}
.personal-attendance-form button{padding:9px 12px!important;border-radius:12px!important;}
.prostho-jeyo-card textarea{margin-top:10px;width:100%;min-height:140px;border:1px solid var(--line);border-radius:16px;padding:12px 13px;font-size:14px;line-height:1.55;resize:vertical;box-sizing:border-box;}
.personal-card-clinician-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:end;padding:10px 0;border-top:1px dashed #e5e7eb;}
.personal-card-clinician-row label{font-size:13px;font-weight:950;color:#344054;display:flex;flex-direction:column;gap:6px;}
.personal-card-clinician-row select{margin-top:0!important;min-width:0;}
.sign-by-box{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;}
.sign-by-box span{font-size:12px;color:#64748b;font-weight:900;}
.sign-by-box strong{font-size:15px;color:#1d4ed8;font-weight:950;}
.personal-card-actions-split{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;align-items:center!important;justify-content:stretch!important;}
.personal-card-actions-split button{width:100%;}
.noti-copy-message{margin-top:6px;padding:8px 10px;border-radius:12px;background:#ecfdf5;color:#047857;font-weight:900;font-size:13px;text-align:center;}
.personal-action-cell .personal-copy-noti{margin-left:6px;margin-top:6px;}
.personal-action-cell .noti-copy-message{text-align:left;display:inline-block;margin-left:6px;}
#specialToolsTitle:empty{display:none;}
@media(max-width:720px){
  .personal-dept-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px!important;}
  .personal-dept-tabs .personal-dept-tab{width:100%;font-size:13px!important;min-height:40px;padding:9px 8px!important;}
  .personal-mail-alert-tab{grid-column:1 / -1;}
  .personal-attendance-form{grid-column:1 / -1;min-width:0;width:100%;box-sizing:border-box;}
  .personal-attendance-form label{white-space:normal;justify-content:space-between;}
  .personal-card-clinician-row{grid-template-columns:1fr;}
  .personal-card-actions-split{grid-template-columns:1fr 1fr!important;}
}

/* v109: 교정 카드 진료의/싸인 by 한 줄 UI 보정 */
.personal-card-clinician-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  padding:10px 0!important;
  border-top:1px dashed #e5e7eb!important;
}
.personal-card-clinician-row label{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  margin:0!important;
  font-size:13px!important;
  font-weight:900!important;
  color:#344054!important;
  white-space:nowrap!important;
}
.personal-card-clinician-row select.ortho-clinician-select{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:38px!important;
  margin:0!important;
  padding:8px 34px 8px 12px!important;
  border-radius:14px!important;
  border:1px solid #bfdbfe!important;
  background-color:#f8fbff!important;
  box-shadow:0 4px 12px rgba(37,99,235,.06)!important;
  font-size:13px!important;
  font-weight:800!important;
  color:#1e293b!important;
}
.sign-by-box{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-width:126px!important;
  height:38px!important;
  padding:0 12px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#eff6ff,#eef2ff)!important;
  border:1px solid #bfdbfe!important;
  box-shadow:0 5px 14px rgba(37,99,235,.07)!important;
  white-space:nowrap!important;
}
.sign-by-box span{
  font-size:12px!important;
  color:#64748b!important;
  font-weight:900!important;
}
.sign-by-box strong{
  font-size:14px!important;
  color:#1d4ed8!important;
  font-weight:950!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:82px!important;
}
@media(max-width:720px){
  .personal-card-clinician-row{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:7px!important;
    padding:9px 0!important;
  }
  .personal-card-clinician-row label{
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:6px!important;
    font-size:12px!important;
  }
  .personal-card-clinician-row select.ortho-clinician-select{
    height:36px!important;
    padding:7px 28px 7px 9px!important;
    border-radius:12px!important;
    font-size:12px!important;
  }
  .sign-by-box{
    min-width:98px!important;
    height:36px!important;
    padding:0 9px!important;
    gap:4px!important;
  }
  .sign-by-box span{font-size:11px!important;}
  .sign-by-box strong{font-size:12px!important;max-width:58px!important;}
}
@media(max-width:390px){
  .personal-card-clinician-row{gap:5px!important;}
  .personal-card-clinician-row label{font-size:11px!important;gap:5px!important;}
  .personal-card-clinician-row select.ortho-clinician-select{font-size:11px!important;padding-left:7px!important;}
  .sign-by-box{min-width:88px!important;padding:0 7px!important;}
  .sign-by-box strong{max-width:50px!important;}
}

/* v110: 토탈 양식 출석번호 설정을 별도 페이지로 분리 */
.personal-attendance-tab {
  font-size: inherit !important;
  line-height: 1.2;
  white-space: nowrap;
}
.attendance-page-shell .attendance-hero h1 span {
  display: block;
  margin-top: 6px;
  font-size: 0.58em;
  font-weight: 700;
  opacity: 0.76;
}
.attendance-settings-panel {
  border: 1px solid rgba(59, 130, 246, 0.18);
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}
.attendance-settings-form {
  margin-top: 18px;
}
.attendance-big-input input {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-align: center;
  max-width: 240px;
}
.attendance-preview-card {
  background: linear-gradient(135deg, rgba(239, 246, 255, 0.95), rgba(255, 255, 255, 0.96));
  border: 1px solid rgba(96, 165, 250, 0.22);
  border-radius: 18px;
  padding: 16px 18px;
  color: #334155;
}
.attendance-preview-card strong {
  display: block;
  margin-bottom: 8px;
  color: #0f172a;
}
.attendance-preview-card p {
  margin: 7px 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
  word-break: break-all;
}
#attendancePreviewNo,
#attendancePreviewNo2 {
  font-weight: 900;
  color: #2563eb;
}
@media (max-width: 720px) {
  .personal-dept-tabs {
    align-items: stretch;
  }
  .personal-attendance-tab {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  .attendance-big-input input {
    max-width: none;
    width: 100%;
  }
}

/* v111: 진료의 / 싸인 by PC·모바일 한 줄 UI + 선택 옵션 정리 */
.personal-card-clinician-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(96px,auto)!important;
  gap:8px!important;
  align-items:center!important;
  padding:8px 0!important;
  border-top:1px dashed #e5e7eb!important;
  overflow:hidden!important;
}
.personal-card-clinician-row label{
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  align-items:center!important;
  gap:6px!important;
  min-width:0!important;
  margin:0!important;
  white-space:nowrap!important;
}
.personal-card-clinician-row .clinician-label-text,
.personal-card-clinician-row label{
  font-size:12px!important;
  font-weight:900!important;
  color:#344054!important;
}
.personal-card-clinician-row select.ortho-clinician-select{
  width:100%!important;
  min-width:0!important;
  height:34px!important;
  margin:0!important;
  padding:6px 26px 6px 9px!important;
  border-radius:12px!important;
  border:1px solid #bfdbfe!important;
  background-color:#f8fbff!important;
  box-shadow:0 3px 10px rgba(37,99,235,.05)!important;
  font-size:12px!important;
  font-weight:800!important;
  color:#1e293b!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.sign-by-box{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  min-width:96px!important;
  max-width:128px!important;
  height:34px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#eff6ff,#eef2ff)!important;
  border:1px solid #bfdbfe!important;
  box-shadow:0 4px 12px rgba(37,99,235,.06)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
.sign-by-box span{font-size:11px!important;color:#64748b!important;font-weight:900!important;flex:0 0 auto!important;}
.sign-by-box strong{font-size:12px!important;color:#1d4ed8!important;font-weight:950!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:58px!important;display:inline-block!important;}
@media(min-width:721px){
  .personal-card-clinician-row{grid-template-columns:minmax(0,1fr) 118px!important;gap:10px!important;}
  .personal-card-clinician-row label{grid-template-columns:46px minmax(0,1fr)!important;}
  .personal-card-clinician-row select.ortho-clinician-select{font-size:12.5px!important;}
  .sign-by-box{min-width:118px!important;max-width:118px!important;}
  .sign-by-box strong{max-width:68px!important;font-size:12px!important;}
}
@media(max-width:390px){
  .personal-card-clinician-row{grid-template-columns:minmax(0,1fr) 88px!important;gap:5px!important;}
  .personal-card-clinician-row label{grid-template-columns:38px minmax(0,1fr)!important;gap:4px!important;}
  .personal-card-clinician-row .clinician-label-text{font-size:11px!important;}
  .personal-card-clinician-row select.ortho-clinician-select{font-size:11px!important;padding-left:7px!important;padding-right:22px!important;}
  .sign-by-box{min-width:88px!important;max-width:88px!important;padding:0 6px!important;}
  .sign-by-box span{font-size:10px!important;}
  .sign-by-box strong{font-size:11px!important;max-width:48px!important;}
}

/* v113: 교정 카드 진료의 / 싸인 by PC 한 줄 최종 보정 */
.personal-card .personal-card-clinician-row,
.personal-card-clinician-row{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
  padding:9px 0!important;
  border-top:1px dashed #e5e7eb!important;
  overflow:hidden!important;
}
.personal-card .personal-card-clinician-row label,
.personal-card-clinician-row label{
  flex:1 1 auto!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  gap:8px!important;
  margin:0!important;
  white-space:nowrap!important;
  font-size:12px!important;
  font-weight:900!important;
  color:#334155!important;
}
.personal-card-clinician-row .clinician-label-text{
  flex:0 0 auto!important;
  display:inline-flex!important;
  align-items:center!important;
  height:32px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  background:#f1f5f9!important;
  border:1px solid #e2e8f0!important;
  color:#475569!important;
  font-size:12px!important;
  line-height:1!important;
}
.personal-card-clinician-row select.ortho-clinician-select{
  flex:1 1 auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:36px!important;
  margin:0!important;
  padding:7px 30px 7px 11px!important;
  border-radius:14px!important;
  border:1px solid #bfdbfe!important;
  background-color:#f8fbff!important;
  box-shadow:0 4px 12px rgba(37,99,235,.06)!important;
  font-size:12.5px!important;
  font-weight:850!important;
  color:#0f172a!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.personal-card-clinician-row .sign-by-box,
.sign-by-box{
  flex:0 0 132px!important;
  min-width:132px!important;
  max-width:132px!important;
  height:36px!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  padding:0 9px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#eff6ff,#eef2ff)!important;
  border:1px solid #bfdbfe!important;
  box-shadow:0 4px 12px rgba(37,99,235,.07)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
.sign-by-box span{
  flex:0 0 auto!important;
  font-size:11px!important;
  font-weight:900!important;
  color:#64748b!important;
}
.sign-by-box strong,
.sign-by-box .sign-by-name{
  flex:1 1 auto!important;
  min-width:0!important;
  max-width:none!important;
  display:block!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#1d4ed8!important;
  font-size:12.5px!important;
  font-weight:950!important;
  text-align:left!important;
}
@media (min-width: 721px){
  .personal-card-clinician-row{gap:12px!important;}
  .personal-card-clinician-row select.ortho-clinician-select{font-size:12.5px!important;}
}
@media (max-width: 720px){
  .personal-card .personal-card-clinician-row,
  .personal-card-clinician-row{
    gap:6px!important;
    padding:8px 0!important;
  }
  .personal-card-clinician-row label{gap:5px!important;}
  .personal-card-clinician-row .clinician-label-text{
    height:32px!important;
    padding:0 7px!important;
    font-size:11px!important;
  }
  .personal-card-clinician-row select.ortho-clinician-select{
    height:34px!important;
    padding-left:8px!important;
    padding-right:24px!important;
    font-size:11.5px!important;
  }
  .personal-card-clinician-row .sign-by-box,
  .sign-by-box{
    flex-basis:102px!important;
    min-width:102px!important;
    max-width:102px!important;
    height:34px!important;
    padding:0 7px!important;
    gap:3px!important;
  }
  .sign-by-box span{font-size:10px!important;}
  .sign-by-box strong,.sign-by-box .sign-by-name{font-size:11.5px!important;}
}
@media (max-width: 370px){
  .personal-card-clinician-row .clinician-label-text{font-size:10.5px!important;padding:0 5px!important;}
  .personal-card-clinician-row select.ortho-clinician-select{font-size:11px!important;}
  .personal-card-clinician-row .sign-by-box,.sign-by-box{flex-basis:92px!important;min-width:92px!important;max-width:92px!important;}
  .sign-by-box span{font-size:9.5px!important;}
  .sign-by-box strong,.sign-by-box .sign-by-name{font-size:11px!important;}
}

/* v114: prostho resident selector in total management cards/tables */
.prostho-actions-with-resident{
  display:grid!important;
  grid-template-columns:minmax(170px,1.2fr) minmax(72px,.55fr) minmax(126px,.85fr)!important;
  align-items:center!important;
  gap:8px!important;
}
.prostho-resident-wrap{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:7px!important;
  margin:0!important;
  min-width:0!important;
  padding:7px 9px!important;
  border:1px solid rgba(59,130,246,.16)!important;
  border-radius:14px!important;
  background:rgba(59,130,246,.055)!important;
  color:#334155!important;
  font-size:12px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.prostho-resident-wrap span{font-size:11.5px!important;color:#475569!important;letter-spacing:-.02em!important;}
.prostho-resident-select{
  width:100%!important;
  min-width:0!important;
  height:32px!important;
  margin:0!important;
  padding:0 26px 0 9px!important;
  border:1px solid rgba(148,163,184,.45)!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#0f172a!important;
  font-size:12.5px!important;
  font-weight:850!important;
  box-shadow:none!important;
}
.personal-action-cell .prostho-resident-wrap{
  display:inline-grid!important;
  grid-template-columns:auto 112px!important;
  margin-right:6px!important;
  vertical-align:middle!important;
}
.personal-action-cell .prostho-resident-select{height:30px!important;font-size:12px!important;}
@media (max-width:760px){
  .prostho-actions-with-resident{grid-template-columns:minmax(0,1.15fr) .58fr .95fr!important;gap:6px!important;}
  .prostho-resident-wrap{padding:6px 7px!important;gap:5px!important;font-size:11px!important;}
  .prostho-resident-wrap span{font-size:10.5px!important;}
  .prostho-resident-select{height:30px!important;font-size:11.5px!important;padding-left:7px!important;padding-right:22px!important;}
}


/* v115: 출석번호 미설정 안내 배너 */
.personal-attendance-notice{
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:10px 0 12px;
  padding:10px 12px;
  border:1px solid rgba(248,113,113,.36);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(254,242,242,.96),rgba(255,255,255,.98));
  box-shadow:0 10px 24px rgba(239,68,68,.07);
}
.personal-attendance-notice-text{
  color:#b91c1c;
  font-size:13px;
  font-weight:900;
  line-height:1.35;
}
.personal-attendance-notice-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
}
.personal-attendance-notice-link,
.personal-attendance-notice-dismiss{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:7px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
  border:1px solid rgba(248,113,113,.35);
  cursor:pointer;
}
.personal-attendance-notice-link{
  background:#ef4444;
  color:#fff;
  box-shadow:0 8px 16px rgba(239,68,68,.16);
}
.personal-attendance-notice-dismiss{
  background:rgba(255,255,255,.9);
  color:#991b1b;
}
@media(max-width:720px){
  .personal-attendance-notice{
    align-items:flex-start;
    flex-direction:column;
    padding:10px;
    margin-top:8px;
  }
  .personal-attendance-notice-text{font-size:12.5px;}
  .personal-attendance-notice-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;}
  .personal-attendance-notice-link,.personal-attendance-notice-dismiss{width:100%;box-sizing:border-box;}
}

/* v117: PC 카드 UI를 모바일 카드처럼 정리 - 교정 진료의/싸인 by, 보철 전공의 */
#personalCardList .personal-patient-card .personal-card-clinician-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(112px,128px)!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  margin:8px 0 0!important;
  padding:8px!important;
  border:1px solid rgba(59,130,246,.14)!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#f8fbff,#f7f9ff)!important;
  box-shadow:0 6px 16px rgba(15,23,42,.04)!important;
  overflow:hidden!important;
}
#personalCardList .personal-patient-card .personal-card-clinician-row label{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:7px!important;
  min-width:0!important;
  margin:0!important;
  font-size:12px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#personalCardList .personal-card-clinician-row .clinician-label-text{
  height:32px!important;
  min-width:46px!important;
  padding:0 8px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  background:#eef4ff!important;
  border:1px solid rgba(59,130,246,.18)!important;
  color:#315cf6!important;
  font-size:11.5px!important;
  font-weight:950!important;
  letter-spacing:-.03em!important;
}
#personalCardList .personal-card-clinician-row select.ortho-clinician-select{
  width:100%!important;
  min-width:0!important;
  height:32px!important;
  margin:0!important;
  padding:0 25px 0 9px!important;
  border-radius:13px!important;
  border:1px solid rgba(148,163,184,.45)!important;
  background:#fff!important;
  color:#111827!important;
  font-size:12px!important;
  font-weight:850!important;
  box-shadow:none!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#personalCardList .personal-card-clinician-row .sign-by-box{
  height:32px!important;
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
  flex:none!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  background:#fff!important;
  border:1px solid rgba(49,92,246,.18)!important;
  box-shadow:none!important;
  overflow:hidden!important;
  white-space:nowrap!important;
}
#personalCardList .sign-by-box span{
  font-size:10.5px!important;
  font-weight:950!important;
  color:#64748b!important;
  letter-spacing:-.04em!important;
}
#personalCardList .sign-by-box strong,
#personalCardList .sign-by-box .sign-by-name{
  min-width:0!important;
  max-width:none!important;
  display:block!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#1d4ed8!important;
  font-size:11.5px!important;
  font-weight:950!important;
  text-align:left!important;
}

#personalCardList .personal-patient-card .prostho-actions-with-resident{
  display:grid!important;
  grid-template-columns:minmax(0,1.22fr) minmax(66px,.62fr) minmax(108px,1fr)!important;
  align-items:center!important;
  gap:7px!important;
  margin-top:9px!important;
  width:100%!important;
  min-width:0!important;
}
#personalCardList .prostho-actions-with-resident .prostho-resident-wrap{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:7px!important;
  min-width:0!important;
  height:38px!important;
  margin:0!important;
  padding:5px 7px!important;
  border-radius:16px!important;
  border:1px solid rgba(59,130,246,.14)!important;
  background:linear-gradient(180deg,#f8fbff,#f7f9ff)!important;
  box-shadow:0 6px 16px rgba(15,23,42,.04)!important;
  color:#315cf6!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
#personalCardList .prostho-actions-with-resident .prostho-resident-wrap span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:28px!important;
  padding:0 7px!important;
  border-radius:999px!important;
  background:#eef4ff!important;
  border:1px solid rgba(59,130,246,.14)!important;
  color:#315cf6!important;
  font-size:11px!important;
  font-weight:950!important;
  letter-spacing:-.03em!important;
}
#personalCardList .prostho-actions-with-resident .prostho-resident-select{
  width:100%!important;
  min-width:0!important;
  height:28px!important;
  margin:0!important;
  padding:0 23px 0 8px!important;
  border-radius:12px!important;
  border:1px solid rgba(148,163,184,.45)!important;
  background:#fff!important;
  color:#111827!important;
  font-size:11.8px!important;
  font-weight:850!important;
  box-shadow:none!important;
}
#personalCardList .prostho-actions-with-resident button{
  height:38px!important;
  min-width:0!important;
  width:100%!important;
  padding:0 8px!important;
  border-radius:14px!important;
  font-size:12px!important;
  letter-spacing:-.04em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media (max-width:720px){
  #personalCardList .personal-patient-card .personal-card-clinician-row{
    grid-template-columns:minmax(0,1fr) minmax(96px,112px)!important;
    gap:6px!important;
    padding:7px!important;
  }
  #personalCardList .personal-patient-card .personal-card-clinician-row label{gap:5px!important;grid-template-columns:auto minmax(0,1fr)!important;}
  #personalCardList .personal-card-clinician-row .clinician-label-text{height:30px!important;min-width:42px!important;padding:0 6px!important;font-size:10.8px!important;}
  #personalCardList .personal-card-clinician-row select.ortho-clinician-select{height:30px!important;font-size:11.2px!important;padding-left:7px!important;padding-right:22px!important;}
  #personalCardList .personal-card-clinician-row .sign-by-box{height:30px!important;padding:0 6px!important;gap:3px!important;}
  #personalCardList .sign-by-box span{font-size:9.8px!important;}
  #personalCardList .sign-by-box strong,#personalCardList .sign-by-box .sign-by-name{font-size:10.8px!important;}
  #personalCardList .personal-patient-card .prostho-actions-with-resident{grid-template-columns:minmax(0,1.15fr) minmax(58px,.55fr) minmax(96px,.95fr)!important;gap:6px!important;}
  #personalCardList .prostho-actions-with-resident .prostho-resident-wrap{height:36px!important;padding:5px 6px!important;gap:5px!important;}
  #personalCardList .prostho-actions-with-resident .prostho-resident-wrap span{height:26px!important;padding:0 6px!important;font-size:10.5px!important;}
  #personalCardList .prostho-actions-with-resident .prostho-resident-select{height:26px!important;font-size:11px!important;padding-left:7px!important;padding-right:21px!important;}
  #personalCardList .prostho-actions-with-resident button{height:36px!important;font-size:11.2px!important;padding:0 6px!important;}
}


/* v118: 출석번호 안내 배너를 한 줄 빨간 안내문으로 정리 */
#personalAttendanceNotice.personal-attendance-notice{
  display:none;
  box-sizing:border-box;
  width:100%;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  margin:10px 0 12px;
  padding:8px 10px;
  border:0;
  border-radius:12px;
  background:rgba(254,242,242,.96);
  box-shadow:none;
  white-space:nowrap;
  overflow:hidden;
}
#personalAttendanceNotice .personal-attendance-notice-text{
  flex:1 1 auto;
  min-width:0;
  color:#dc2626;
  font-size:12.5px;
  font-weight:900;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
}
#personalAttendanceNotice .personal-attendance-notice-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:6px;
  width:auto;
}
#personalAttendanceNotice .personal-attendance-notice-link,
#personalAttendanceNotice .personal-attendance-notice-dismiss{
  height:28px;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  font-size:11.5px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  box-sizing:border-box;
}
#personalAttendanceNotice .personal-attendance-notice-link{
  border:1px solid rgba(220,38,38,.28);
  background:#dc2626;
  color:#fff;
  box-shadow:0 5px 12px rgba(220,38,38,.14);
}
#personalAttendanceNotice .personal-attendance-notice-dismiss{
  border:1px solid rgba(220,38,38,.2);
  background:#fff;
  color:#dc2626;
}
@media(max-width:720px){
  #personalAttendanceNotice.personal-attendance-notice{
    flex-direction:row!important;
    align-items:center!important;
    padding:7px 8px;
    gap:6px;
  }
  #personalAttendanceNotice .personal-attendance-notice-text{font-size:11.5px;}
  #personalAttendanceNotice .personal-attendance-notice-actions{
    display:flex!important;
    grid-template-columns:none!important;
    width:auto!important;
    gap:5px;
  }
  #personalAttendanceNotice .personal-attendance-notice-link,
  #personalAttendanceNotice .personal-attendance-notice-dismiss{
    width:auto!important;
    min-width:auto!important;
    height:26px;
    min-height:26px;
    padding:0 8px;
    font-size:10.5px;
  }
}

/* v119: personal total page simplification */
.personal-head-actions{
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.personal-head-logout{
  min-height:34px!important;
  padding:8px 14px!important;
  border-radius:999px!important;
  font-size:13px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.personal-manage-modebar{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:16px 0 12px;
}
.personal-big-mode-btn{
  border:1px solid rgba(37,99,235,.20)!important;
  background:rgba(255,255,255,.88)!important;
  color:#1d4ed8!important;
  border-radius:18px!important;
  padding:17px 16px!important;
  min-height:58px!important;
  font-size:16px!important;
  font-weight:900!important;
  box-shadow:0 10px 26px rgba(37,99,235,.08)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
}
.personal-big-mode-btn.active{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  color:#fff!important;
  border-color:rgba(37,99,235,.75)!important;
  box-shadow:0 14px 32px rgba(37,99,235,.20)!important;
}
.personal-section-card{
  border:1px solid rgba(37,99,235,.13);
  background:rgba(255,255,255,.84);
  border-radius:22px;
  padding:16px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.personal-add-section .personal-subtitle,
.personal-list-section .personal-table-head h3{
  margin-top:0!important;
}
.personal-list-section .personal-table-head{
  margin-top:0!important;
  background:linear-gradient(180deg,rgba(248,251,255,.95),rgba(255,255,255,.92));
  border:1px solid rgba(37,99,235,.12);
}
.personal-list-controls{display:none!important;}
@media (max-width:720px){
  .personal-head-actions{width:100%;justify-content:flex-start;margin-top:8px;}
  .personal-manage-modebar{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 10px;}
  .personal-big-mode-btn{font-size:13px!important;min-height:48px!important;padding:12px 8px!important;border-radius:14px!important;}
  .personal-section-card{padding:12px;border-radius:18px;}
}

/* v121: personal total page polish - pastel mode buttons, cleaner card actions */
.personal-head-actions{
  gap:14px!important;
  margin-left:auto!important;
  padding-left:14px!important;
}
#personalLoginBadge.meta-pill{
  background:rgba(239,246,255,.78)!important;
  border:1px solid rgba(147,197,253,.55)!important;
  color:#334155!important;
  font-weight:850!important;
  padding:8px 12px!important;
}
.personal-head-logout{
  margin-left:2px!important;
  background:rgba(255,255,255,.9)!important;
  border:1px solid rgba(148,163,184,.36)!important;
  color:#475569!important;
  box-shadow:0 8px 18px rgba(15,23,42,.06)!important;
}
.personal-manage-modebar{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px!important;
  margin:18px 0 16px!important;
}
.personal-big-mode-btn{
  position:relative!important;
  min-height:72px!important;
  padding:18px 18px!important;
  border-radius:24px!important;
  border:1px solid rgba(125,211,252,.42)!important;
  background:linear-gradient(135deg,rgba(240,249,255,.96),rgba(245,243,255,.96))!important;
  color:#334155!important;
  font-size:17px!important;
  font-weight:950!important;
  letter-spacing:-.035em!important;
  box-shadow:0 14px 32px rgba(15,23,42,.07)!important;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease!important;
}
.personal-big-mode-btn::before{
  content:"";
  width:30px;
  height:30px;
  border-radius:12px;
  margin-right:10px;
  display:inline-block;
  background:rgba(255,255,255,.75);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:inset 0 0 0 1px rgba(125,211,252,.22);
}
#personalShowAddBtn::before{content:"＋";display:inline-flex;align-items:center;justify-content:center;color:#0f766e;font-size:20px;font-weight:1000;background:rgba(204,251,241,.78)!important;}
#personalShowListBtn::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;color:#7c3aed;font-size:18px;font-weight:1000;background:rgba(237,233,254,.82)!important;}
.personal-big-mode-btn:hover{transform:translateY(-1px);box-shadow:0 18px 38px rgba(15,23,42,.10)!important;}
.personal-big-mode-btn.active{
  background:linear-gradient(135deg,#dbeafe,#e9d5ff)!important;
  color:#1e293b!important;
  border-color:rgba(129,140,248,.46)!important;
  box-shadow:0 18px 42px rgba(99,102,241,.16)!important;
}
.personal-big-mode-btn.active::after{
  content:"현재 선택됨";
  position:absolute;
  right:14px;
  top:12px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:#6366f1;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:-.04em;
}
.personal-section-card{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
}
.personal-list-section .personal-table-head{
  display:none!important;
}
.personal-card-group{margin-top:10px!important;}

/* Make desktop personal cards use the cleaner mobile-like control style */
#personalCardList .personal-patient-card{
  border-radius:22px!important;
  border:1px solid rgba(203,213,225,.75)!important;
  background:linear-gradient(180deg,#ffffff,#fbfdff)!important;
  box-shadow:0 14px 34px rgba(15,23,42,.08)!important;
}
#personalCardList .personal-patient-card .personal-card-clinician-row{
  grid-template-columns:minmax(0,1fr) minmax(94px,108px)!important;
  gap:6px!important;
  padding:7px!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#f0fdfa,#eef2ff)!important;
  border-color:rgba(94,234,212,.35)!important;
}
#personalCardList .personal-patient-card .personal-card-clinician-row label{
  gap:5px!important;
  grid-template-columns:auto minmax(0,1fr)!important;
}
#personalCardList .personal-card-clinician-row .clinician-label-text{
  height:30px!important;
  min-width:42px!important;
  padding:0 7px!important;
  font-size:10.8px!important;
  background:rgba(255,255,255,.68)!important;
  border-color:rgba(99,102,241,.16)!important;
  color:#4f46e5!important;
}
#personalCardList .personal-card-clinician-row select.ortho-clinician-select{
  height:30px!important;
  font-size:11.2px!important;
  padding-left:8px!important;
  padding-right:22px!important;
  border-radius:13px!important;
}
#personalCardList .personal-card-clinician-row .sign-by-box{
  height:30px!important;
  padding:0 6px!important;
  gap:3px!important;
  border-color:rgba(99,102,241,.16)!important;
}
#personalCardList .sign-by-box span{font-size:9.8px!important;}
#personalCardList .sign-by-box strong,
#personalCardList .sign-by-box .sign-by-name{font-size:10.8px!important;color:#4f46e5!important;}

#personalCardList .personal-patient-card .prostho-actions-with-resident{
  grid-template-columns:minmax(0,1.15fr) minmax(62px,.58fr) minmax(98px,.95fr)!important;
  gap:6px!important;
  align-items:center!important;
}
#personalCardList .prostho-actions-with-resident .prostho-resident-wrap{
  height:36px!important;
  padding:5px 6px!important;
  gap:5px!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#f0fdfa,#eef2ff)!important;
  border-color:rgba(94,234,212,.35)!important;
}
#personalCardList .prostho-actions-with-resident .prostho-resident-wrap span{
  height:26px!important;
  padding:0 6px!important;
  font-size:10.5px!important;
  color:#4f46e5!important;
  background:rgba(255,255,255,.68)!important;
}
#personalCardList .prostho-actions-with-resident .prostho-resident-select{
  height:26px!important;
  font-size:11px!important;
  padding-left:7px!important;
  padding-right:21px!important;
  border-radius:12px!important;
}
#personalCardList .prostho-actions-with-resident button,
#personalCardList .personal-card-actions-split button{
  height:36px!important;
  border-radius:14px!important;
  font-size:11.2px!important;
  padding:0 6px!important;
  box-shadow:none!important;
}
#personalCardList .personal-card-actions-split .personal-delete-patient,
#personalCardList .personal-card-actions-split button.danger{
  background:#fff1f2!important;
  color:#be123c!important;
  border:1px solid #fecdd3!important;
}
#personalCardList .personal-card-actions-split .personal-copy-noti,
#personalCardList .personal-card-actions-split button.secondary{
  background:#f0fdfa!important;
  color:#0f766e!important;
  border:1px solid #99f6e4!important;
  font-weight:950!important;
}
@media (max-width:720px){
  .personal-head-actions{width:100%;justify-content:flex-start!important;margin-top:10px!important;padding-left:0!important;gap:8px!important;}
  #personalLoginBadge.meta-pill{padding:7px 10px!important;font-size:12px!important;}
  .personal-head-logout{padding:7px 12px!important;font-size:12px!important;}
  .personal-manage-modebar{grid-template-columns:1fr 1fr!important;gap:9px!important;margin:13px 0 12px!important;}
  .personal-big-mode-btn{min-height:58px!important;font-size:13.2px!important;padding:14px 8px!important;border-radius:18px!important;}
  .personal-big-mode-btn::before{width:24px;height:24px;border-radius:10px;margin-right:6px;}
  .personal-big-mode-btn.active::after{display:none;}
}

/* v122: personal total page outer shell removal and wider mobile-like cards */
#personal.page{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  padding:0!important;
}
#personal .personal-panel{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  padding:0!important;
  margin-bottom:0!important;
}
#personal .panel-head{
  background:rgba(255,255,255,.92)!important;
  border:1px solid rgba(203,213,225,.74)!important;
  border-radius:24px!important;
  box-shadow:0 16px 42px rgba(15,23,42,.08)!important;
  padding:22px 24px!important;
  margin:0 0 14px!important;
}
#personal .personal-app{
  width:100%!important;
  margin-top:0!important;
}
#personal .personal-dept-tabs{
  background:rgba(255,255,255,.86)!important;
  border:1px solid rgba(203,213,225,.72)!important;
  border-radius:22px!important;
  box-shadow:0 10px 26px rgba(15,23,42,.05)!important;
  padding:10px!important;
}
#personal .personal-manage-modebar{
  background:rgba(255,255,255,.62)!important;
  border:1px solid rgba(226,232,240,.75)!important;
  border-radius:24px!important;
  padding:10px!important;
  box-shadow:0 12px 30px rgba(15,23,42,.045)!important;
}
#personal #personalListSection,
#personal #personalAddSection{
  width:100%!important;
}
#personal #personalCardList.personal-card-list{
  margin-top:12px!important;
}
#personalCardList .personal-patient-card{
  width:100%!important;
}
@media (min-width:721px){
  #personalCardList.personal-card-list{
    grid-template-columns:repeat(2,minmax(360px,1fr))!important;
    gap:18px!important;
  }
}
@media (max-width:720px){
  .shell{width:min(100% - 14px,1240px)!important;}
  #personal .panel-head{
    padding:17px 16px!important;
    border-radius:22px!important;
    margin-bottom:12px!important;
  }
  #personal .panel-head h2{font-size:22px!important;}
  #personal .panel-head p{font-size:13px!important;line-height:1.45!important;}
  #personal .personal-dept-tabs{
    border-radius:20px!important;
    padding:8px!important;
  }
  #personal .personal-manage-modebar{
    border-radius:20px!important;
    padding:8px!important;
  }
  #personalCardList.personal-card-list{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
}

/* v123: upload progress + simplified top hero */
.hero-upload-side{
  justify-content:center!important;
  align-items:stretch!important;
  gap:0!important;
  min-height:100%!important;
}
.top-upload-button{
  min-height:74px!important;
  border-radius:24px!important;
  background:linear-gradient(135deg,#dff7f2 0%,#e8ecff 48%,#fff1dc 100%)!important;
  color:#243047!important;
  border:1px solid rgba(132,151,176,.28)!important;
  box-shadow:0 18px 40px rgba(67,86,126,.13)!important;
  font-size:17px!important;
  letter-spacing:-.02em!important;
}
.top-upload-button:before{content:"업로드";display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.78);color:#4560a8;font-size:12px;font-weight:950;border:1px solid rgba(69,96,168,.14)}
.top-upload-button:hover{transform:translateY(-2px)!important;box-shadow:0 24px 50px rgba(67,86,126,.18)!important;filter:saturate(1.04)}
body[data-mode="viewer"] .hero-main{padding-bottom:30px!important}
body[data-mode="viewer"] .hero-text{display:none!important}
body[data-mode="viewer"] .guide-button{display:none!important}
.upload-progress-box{margin-top:16px;padding:16px;border-radius:22px;background:linear-gradient(180deg,#ffffff,#f7fbff);border:1px solid rgba(155,176,210,.35);box-shadow:0 14px 34px rgba(16,24,40,.08)}
.upload-progress-track{height:12px;border-radius:999px;background:#edf2f7;overflow:hidden;border:1px solid rgba(155,176,210,.35)}
.upload-progress-track span{display:block;height:100%;width:16%;border-radius:999px;background:linear-gradient(90deg,#bfe7ff,#c4f5df,#ffe4b8);transition:width .35s ease, background .2s ease}
.upload-progress-track span.stage-uploading{width:38%;background:linear-gradient(90deg,#bfdbfe,#c7d2fe)}
.upload-progress-track span.stage-calculating{width:72%;background:linear-gradient(90deg,#c7f9cc,#d8b4fe)}
.upload-progress-track span.stage-done{width:100%;background:linear-gradient(90deg,#bbf7d0,#a7f3d0)}
.upload-progress-track span.stage-error{width:100%;background:linear-gradient(90deg,#fecaca,#fed7aa)}
.upload-progress-text{margin-top:11px;color:#344054;font-size:14px;line-height:1.55;font-weight:900;word-break:keep-all}
#uploadBtn:disabled{opacity:.72;cursor:wait;transform:none!important;box-shadow:none!important}
@media (max-width:900px){
  .hero-upload-side{min-height:unset!important;padding:16px!important}
  .top-upload-button{min-height:58px!important;font-size:15px!important;border-radius:20px!important}
}

/* v124: personal total UI polish requested */
.top-upload-button{
  min-height:52px!important;
  width:auto!important;
  max-width:190px!important;
  padding:12px 18px!important;
  border-radius:18px!important;
  font-size:14px!important;
  align-self:center!important;
}
.top-upload-button:before{display:none!important;}
.hero-upload-side{align-items:flex-end!important;justify-content:center!important;padding:18px!important;}

#personal .personal-subject-tabs,
#personal .personal-utility-tabs{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:9px!important;
  align-items:center!important;
  padding:10px!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.88)!important;
  border:1px solid rgba(203,213,225,.72)!important;
  box-shadow:0 10px 26px rgba(15,23,42,.05)!important;
}
#personal .personal-subject-tabs{margin-bottom:8px!important;}
#personal .personal-utility-tabs{margin-bottom:12px!important;}
#personal .personal-subject-tabs .personal-dept-tab,
#personal .personal-utility-tabs .personal-dept-tab{
  min-height:42px!important;
  padding:0 17px!important;
  border-radius:999px!important;
  font-size:13px!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
}
#personal .personal-attendance-tab{min-width:182px!important;}
#personal .personal-mail-alert-tab{min-width:154px!important;}
#personal .personal-tomorrow-tab{min-width:174px!important;}

#personal .personal-manage-modebar{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:12px!important;
  padding:10px!important;
  background:rgba(255,255,255,.58)!important;
  border:1px solid rgba(226,232,240,.86)!important;
}
#personal .personal-big-mode-btn{
  min-height:64px!important;
  border-radius:22px!important;
  border:1px solid rgba(148,163,184,.32)!important;
  background:rgba(255,255,255,.82)!important;
  color:#64748b!important;
  box-shadow:0 10px 22px rgba(15,23,42,.045)!important;
  font-size:14px!important;
  letter-spacing:-.02em!important;
}
#personal .personal-big-mode-btn:hover{
  background:#fff!important;
  color:#334155!important;
}
#personal .personal-big-mode-btn.active{
  background:linear-gradient(135deg,#e0f2fe,#f0fdfa 55%,#fff7ed)!important;
  color:#0f172a!important;
  border-color:rgba(56,189,248,.34)!important;
  box-shadow:0 16px 34px rgba(14,165,233,.12)!important;
  outline:3px solid rgba(125,211,252,.24)!important;
}
#personal .personal-big-mode-btn.active::after{
  content:"선택됨"!important;
  display:inline-flex!important;
  margin-left:8px!important;
  padding:4px 8px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.78)!important;
  color:#0369a1!important;
  font-size:10.5px!important;
  font-weight:950!important;
}
#personal .personal-big-mode-btn:not(.active){filter:grayscale(.22) saturate(.72);}

#personalCardList .personal-card-group{
  border:1.5px solid rgba(148,163,184,.48)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.92))!important;
  box-shadow:0 16px 36px rgba(15,23,42,.095)!important;
}
#personalCardList .personal-patient-card{
  border:1.6px solid rgba(100,116,139,.34)!important;
  background:linear-gradient(180deg,#ffffff,#fbfdff)!important;
  box-shadow:0 14px 34px rgba(15,23,42,.11)!important;
}
#personalCardList .personal-patient-card:hover{
  border-color:rgba(59,130,246,.35)!important;
  box-shadow:0 18px 42px rgba(15,23,42,.14)!important;
}

#personalCardList .prostho-visit-resident-row{
  grid-template-columns:auto minmax(145px,.72fr) minmax(220px,1fr)!important;
  gap:9px!important;
}
#personalCardList .prostho-visit-resident-row .prostho-resident-wrap{
  min-width:0!important;
  height:40px!important;
  padding:5px 7px!important;
  border-radius:18px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:6px!important;
  background:linear-gradient(135deg,#f0fdfa,#eef2ff)!important;
  border:1px solid rgba(94,234,212,.35)!important;
}
#personalCardList .prostho-visit-resident-row .prostho-resident-wrap span{
  font-size:11px!important;
  font-weight:950!important;
  color:#4f46e5!important;
  white-space:nowrap!important;
  padding:0 7px!important;
  height:28px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.72)!important;
}
#personalCardList .prostho-visit-resident-row .prostho-resident-select{
  margin:0!important;
  min-width:0!important;
  width:100%!important;
  height:28px!important;
  min-height:28px!important;
  padding:0 24px 0 8px!important;
  border-radius:12px!important;
  font-size:11.5px!important;
  font-weight:900!important;
  background:rgba(255,255,255,.92)!important;
}
#personalCardList .personal-card-actions.prostho-actions-no-resident{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
}

@media (max-width:900px){
  .hero-upload-side{align-items:stretch!important;padding:14px!important;}
  .top-upload-button{max-width:none!important;width:100%!important;min-height:48px!important;}
}
@media (max-width:720px){
  #personal .personal-subject-tabs,
  #personal .personal-utility-tabs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  #personal .personal-subject-tabs .personal-dept-tab,
  #personal .personal-utility-tabs .personal-dept-tab{
    width:100%!important;
    min-width:0!important;
    padding:0 10px!important;
    font-size:12.3px!important;
  }
  #personal .personal-utility-tabs .personal-tomorrow-tab,
  #personal .personal-utility-tabs .personal-attendance-tab{
    grid-column:1 / -1!important;
  }
  #personal .personal-big-mode-btn{min-height:60px!important;font-size:13px!important;}
  #personalCardList .prostho-visit-resident-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  #personalCardList .prostho-visit-resident-row .visit-label{display:none!important;}
  #personalCardList .prostho-visit-resident-row .personal-visit-stepper{width:100%!important;max-width:none!important;}
  #personalCardList .prostho-visit-resident-row .prostho-resident-wrap{width:100%!important;}
}

/* v125: wider personal total cards on PC + patient search */
#personalPatientSearchBar.personal-patient-searchbar{
  display:grid;
  grid-template-columns:auto minmax(260px,1fr) auto auto minmax(140px,auto);
  align-items:center;
  gap:10px;
  margin:10px 0 14px;
  padding:12px 14px;
  border-radius:24px;
  border:1px solid rgba(203,213,225,.82);
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(248,250,252,.86));
  box-shadow:0 12px 30px rgba(15,23,42,.055);
}
#personalPatientSearchBar label{
  font-size:13px;
  font-weight:950;
  color:#334155;
  white-space:nowrap;
}
#personalPatientSearchBar input{
  width:100%;
  min-height:42px;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.42);
  background:#fff;
  padding:0 14px;
  font-size:14px;
  font-weight:800;
}
#personalPatientSearchBar button{
  min-height:42px;
  border-radius:16px;
  padding:0 18px;
  white-space:nowrap;
}
.personal-patient-search-msg{
  font-size:12px;
  font-weight:850;
  color:#64748b;
  white-space:nowrap;
}
#personalCardList .personal-patient-cards{
  grid-template-columns:repeat(2,minmax(440px,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
#personalCardList .personal-patient-card{
  width:100%!important;
  min-width:0!important;
  padding:18px!important;
  gap:12px!important;
}
#personalCardList .personal-card-group{
  padding:16px!important;
}
#personalCardList .personal-patient-card.search-match,
#personalPatientTable tbody tr.search-match{
  border-color:#ef4444!important;
  box-shadow:0 0 0 4px rgba(239,68,68,.15), 0 20px 46px rgba(239,68,68,.13)!important;
  background:linear-gradient(180deg,#fff,#fff7f7)!important;
}
#personalCardList .personal-patient-card.search-match::before{background:#ef4444!important;}
@media (max-width:1180px){
  #personalCardList .personal-patient-cards{grid-template-columns:1fr!important;}
}
@media (max-width:720px){
  #personalPatientSearchBar.personal-patient-searchbar{
    grid-template-columns:1fr;
    gap:8px;
    padding:12px;
    border-radius:20px;
  }
  #personalPatientSearchBar label{font-size:12.5px;}
  #personalPatientSearchBar button{width:100%;}
  .personal-patient-search-msg{white-space:normal;text-align:center;}
  #personalCardList .personal-card-group{padding:10px!important;}
  #personalCardList .personal-patient-card{padding:14px!important;}
}

/* v126: PC 교정 토탈 카드 압축 방지 최종 보정
   - 교정 카드는 PC에서도 본토/진토/구토 그룹 내부 폭을 꽉 쓰는 1열 카드로 표시
   - 카드 내부 행이 잘리지 않도록 폭, 줄바꿈, 버튼 크기 보정 */
@media (min-width:721px){
  #personalCardList,
  #personalCardList .personal-card-list,
  #personalCardList .personal-card-group,
  #personalCardList .personal-patient-cards.ortho-patient-cards{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
    justify-items:stretch!important;
    align-items:stretch!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-patient-card.ortho-total-card,
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-patient-card{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    box-sizing:border-box!important;
    padding:22px 24px!important;
    border-radius:24px!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-identity-line{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    overflow:visible!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-identity-line strong{
    flex:0 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    font-size:1.08rem!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-schedule-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:12px!important;
    width:100%!important;
    align-items:center!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-schedule{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(150px,1fr))!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-edit-schedule{
    min-width:96px!important;
    writing-mode:horizontal-tb!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-visit-row{
    display:grid!important;
    grid-template-columns:auto minmax(190px,220px) minmax(0,1fr)!important;
    align-items:center!important;
    gap:12px!important;
    width:100%!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-visit-stepper{
    width:100%!important;
    max-width:220px!important;
    min-width:190px!important;
    flex:none!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-clinician-row{
    width:100%!important;
    max-width:none!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    width:100%!important;
  }
  #personalCardList .personal-patient-cards.ortho-patient-cards .personal-card-actions button{
    width:100%!important;
  }
}
@media (min-width:1180px){
  /* 이전 v125의 2열 강제 규칙을 교정 카드에 한해 무력화 */
  #personalCardList .personal-patient-cards.ortho-patient-cards{
    grid-template-columns:1fr!important;
  }
}


/* v128: 로그인 오류 표시 + 모바일 환자 검색 플로팅 한줄 UI */
.personal-login-title-row{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin:0 0 12px!important;
}
.personal-login-title-row h3{margin:0!important;}
.personal-login-error{
  align-items:center!important;
  max-width:58%!important;
  padding:7px 11px!important;
  border-radius:999px!important;
  background:#fff1f2!important;
  color:#e11d48!important;
  border:1px solid rgba(225,29,72,.28)!important;
  font-size:12px!important;
  font-weight:950!important;
  line-height:1.25!important;
  white-space:normal!important;
  box-shadow:0 8px 18px rgba(225,29,72,.08)!important;
}
@media (max-width:720px){
  .personal-login-title-row{align-items:flex-start!important;}
  .personal-login-error{max-width:62%!important;font-size:11.5px!important;padding:6px 9px!important;}
  #personalPatientSearchBar.personal-patient-searchbar{
    position:sticky!important;
    top:8px!important;
    z-index:80!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
    align-items:center!important;
    gap:6px!important;
    margin:10px 0 12px!important;
    padding:8px!important;
    border-radius:18px!important;
    border:1px solid rgba(148,163,184,.36)!important;
    background:rgba(255,255,255,.94)!important;
    box-shadow:0 12px 28px rgba(15,23,42,.13)!important;
    backdrop-filter:blur(14px)!important;
  }
  #personalPatientSearchBar label{display:none!important;}
  #personalPatientSearchBar input{
    grid-column:1!important;
    min-width:0!important;
    min-height:38px!important;
    margin:0!important;
    padding:0 10px!important;
    border-radius:14px!important;
    font-size:13px!important;
  }
  #personalPatientSearchBar #personalPatientSearchBtn,
  #personalPatientSearchBar #personalPatientSearchResetBtn{
    grid-row:1!important;
    width:auto!important;
    min-height:38px!important;
    margin:0!important;
    padding:0 10px!important;
    border-radius:14px!important;
    font-size:12px!important;
    white-space:nowrap!important;
  }
  #personalPatientSearchBar #personalPatientSearchBtn{grid-column:2!important;}
  #personalPatientSearchBar #personalPatientSearchResetBtn{grid-column:3!important;}
  #personalPatientSearchBar .personal-patient-search-msg{
    grid-column:1 / -1!important;
    font-size:11px!important;
    line-height:1.25!important;
    min-height:14px!important;
    text-align:left!important;
    padding:0 2px!important;
  }
}

/* v130: 모바일 토탈 환자 검색 플로팅바가 메인 메뉴바와 겹치지 않도록 위치 보정 */
@media (max-width:720px){
  #personalPatientSearchBar.personal-patient-searchbar{
    top:72px!important;
    z-index:18!important;
    margin-top:8px!important;
  }
  .tabs{
    z-index:30!important;
  }
}
@media (max-width:520px){
  #personalPatientSearchBar.personal-patient-searchbar{
    top:66px!important;
  }
}

/* v132: mobile personal total tab rows */
@media (max-width:720px){
  #personal .personal-subject-tabs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    padding:7px!important;
  }
  #personal .personal-subject-tabs .personal-dept-tab{
    width:100%!important;
    min-width:0!important;
    min-height:38px!important;
    padding:0 4px!important;
    font-size:12.5px!important;
    line-height:1.05!important;
    white-space:nowrap!important;
    letter-spacing:-.03em!important;
  }
  #personal .personal-utility-tabs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    padding:7px!important;
  }
  #personal .personal-utility-tabs .personal-dept-tab{
    width:100%!important;
    min-width:0!important;
    min-height:40px!important;
    padding:0 6px!important;
    font-size:12.2px!important;
    line-height:1.12!important;
    letter-spacing:-.045em!important;
    white-space:nowrap!important;
  }
  #personal .personal-utility-tabs .personal-tomorrow-tab{
    grid-column:1 / -1!important;
    font-size:12.6px!important;
  }
  #personal .personal-utility-tabs .personal-mail-alert-tab,
  #personal .personal-utility-tabs .personal-attendance-tab{
    grid-column:auto!important;
  }
}
@media (max-width:390px){
  #personal .personal-subject-tabs .personal-dept-tab{font-size:12px!important;padding:0 3px!important;}
  #personal .personal-utility-tabs .personal-dept-tab{font-size:11.2px!important;padding:0 4px!important;}
}


/* v133: requested personal total / resident list UI cleanup */
#personalDeptDesc,
#personalListNote{
  display:none!important;
}
#personal .panel-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  flex-wrap:nowrap!important;
}
#personal .panel-head h2{
  margin:0!important;
}
#personal .personal-head-actions{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex:0 0 auto!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}
#personalLoginBadge.meta-pill,
.personal-head-logout{
  white-space:nowrap!important;
  flex:0 0 auto!important;
}

/* Make add/list mode buttons thinner, cleaner, and remove the selected text */
#personal .personal-manage-modebar{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  padding:6px!important;
  margin:8px 0 6px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.42)!important;
  box-shadow:none!important;
}
#personal .personal-big-mode-btn{
  min-height:40px!important;
  height:40px!important;
  padding:0 12px!important;
  border-radius:15px!important;
  background:rgba(255,255,255,.72)!important;
  border:1px solid rgba(148,163,184,.36)!important;
  color:#64748b!important;
  font-size:13px!important;
  font-weight:950!important;
  box-shadow:none!important;
  letter-spacing:-.035em!important;
}
#personal .personal-big-mode-btn::before,
#personal .personal-big-mode-btn::after,
#personal .personal-big-mode-btn.active::after{
  display:none!important;
  content:none!important;
}
#personal .personal-big-mode-btn.active{
  background:linear-gradient(135deg,rgba(254,243,199,.92),rgba(220,252,231,.92),rgba(224,242,254,.92))!important;
  border-color:rgba(45,212,191,.55)!important;
  color:#0f172a!important;
  outline:2px solid rgba(45,212,191,.18)!important;
  box-shadow:0 8px 18px rgba(15,23,42,.055)!important;
}
#personal .personal-big-mode-btn:not(.active){
  filter:grayscale(.85) saturate(.55)!important;
  opacity:.82!important;
}

/* Slim patient search bar with little bottom whitespace */
#personalPatientSearchBar.personal-patient-searchbar{
  margin:4px 0 4px!important;
  padding:7px 9px!important;
  border-radius:16px!important;
  gap:7px!important;
  box-shadow:0 7px 18px rgba(15,23,42,.045)!important;
}
#personalPatientSearchBar label{
  font-size:12px!important;
}
#personalPatientSearchBar input{
  min-height:34px!important;
  height:34px!important;
  border-radius:12px!important;
  font-size:13px!important;
  padding:0 10px!important;
}
#personalPatientSearchBar button{
  min-height:34px!important;
  height:34px!important;
  border-radius:12px!important;
  padding:0 12px!important;
  font-size:12px!important;
}
#personalPatientSearchBar .personal-patient-search-msg{
  font-size:11px!important;
  min-height:0!important;
}
#personal #personalCardList.personal-card-list{
  margin-top:6px!important;
}

/* Resident list total filter text/style cleanup */
#listSpecialTools + .search-row + .color-tools .color-tools-title,
.color-tools-title#specialToolsTitle{
  display:none!important;
}
#totalDimBtn.total-filter-action{
  border:1.5px solid rgba(148,163,184,.45)!important;
  background:rgba(255,255,255,.78)!important;
  color:#475569!important;
  font-weight:950!important;
}
#totalDimBtn.total-filter-action.active,
#totalDimBtn.total-filter-action[aria-pressed="true"]{
  border:3px solid rgba(244,114,182,.72)!important;
  background:rgba(255,241,242,.94)!important;
  color:#be123c!important;
  box-shadow:0 0 0 3px rgba(244,114,182,.12)!important;
}

@media (max-width:720px){
  #personal .panel-head{
    align-items:center!important;
    gap:8px!important;
  }
  #personal .panel-head h2{
    font-size:19px!important;
    flex:1 1 auto!important;
    min-width:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  #personal .personal-head-actions{
    gap:6px!important;
    flex:0 0 auto!important;
  }
  #personalLoginBadge.meta-pill{
    padding:6px 8px!important;
    font-size:11px!important;
  }
  .personal-head-logout{
    padding:6px 8px!important;
    font-size:11px!important;
  }
  #personal .personal-manage-modebar{
    margin:7px 0 5px!important;
    padding:5px!important;
    gap:6px!important;
  }
  #personal .personal-big-mode-btn{
    min-height:36px!important;
    height:36px!important;
    border-radius:13px!important;
    font-size:12px!important;
    padding:0 6px!important;
  }
  #personalPatientSearchBar.personal-patient-searchbar{
    top:66px!important;
    margin:3px 0 4px!important;
    padding:6px!important;
    gap:5px!important;
    border-radius:15px!important;
  }
  #personalPatientSearchBar input,
  #personalPatientSearchBar #personalPatientSearchBtn,
  #personalPatientSearchBar #personalPatientSearchResetBtn{
    min-height:34px!important;
    height:34px!important;
    border-radius:12px!important;
    font-size:12px!important;
  }
  #personalPatientSearchBar #personalPatientSearchBtn,
  #personalPatientSearchBar #personalPatientSearchResetBtn{
    padding:0 8px!important;
  }
  #personalPatientSearchBar .personal-patient-search-msg{
    display:none!important;
  }
}

/* v134: 전공의 진료 리스트 설명/표옵션 제거 및 검색 한줄 정리 */
#list .panel-head > div:first-child p,
#list .list-note,
#list .list-note-inline{display:none!important;}
#list .list-controls{display:flex!important;align-items:flex-end;gap:10px;flex-wrap:nowrap;}
#list .list-controls .select-label{min-width:128px;}
#list .list-page-panel .list-dept-head span{display:none!important;}
#list .search-row{display:grid!important;grid-template-columns:minmax(220px,1fr) auto auto!important;align-items:center!important;gap:8px!important;margin:10px 0 12px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;}
#list .search-row .search-help{display:none!important;}
#list .search-row #searchInput{grid-column:1!important;grid-row:1!important;margin-top:0!important;min-height:42px!important;}
#list .search-row #searchBtn{grid-column:2!important;grid-row:1!important;min-height:42px!important;white-space:nowrap!important;}
#list .search-row #resetBtn{grid-column:3!important;grid-row:1!important;min-height:42px!important;white-space:nowrap!important;}
#apptTableWrap{font-size:70%;}
#apptTableWrap.scale-70{font-size:70%;}
@media (max-width:720px){
  #list .search-row{grid-template-columns:minmax(0,1fr) auto auto!important;gap:6px!important;}
  #list .search-row #searchInput{font-size:14px!important;padding:10px 11px!important;min-width:0!important;}
  #list .search-row #searchBtn,#list .search-row #resetBtn{padding:10px 11px!important;font-size:13px!important;min-height:40px!important;}
}

/* v135 resident list layout cleanup: flat separated cards */
#list.page{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  padding:0!important;
}
#list > .panel{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
}
#list .panel-head,
#list .list-page-panel,
#list #overallListDeptPanel,
#list #listSpecialTools,
#list .search-row,
#list .color-tools,
#list #apptTableWrap{
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(203,213,225,.95)!important;
  box-shadow:0 12px 28px rgba(15,23,42,.06)!important;
  border-radius:22px!important;
  margin:0 0 12px!important;
}
#list .panel-head{
  padding:18px 20px!important;
  align-items:center!important;
}
#list .panel-head h2{font-size:25px!important;margin:0!important;}
#list .list-controls{display:flex!important;align-items:center!important;gap:10px!important;}
#list .list-controls .select-label{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin:0!important;
  white-space:nowrap!important;
}
#list .list-controls select{margin-top:0!important;min-width:110px!important;padding:10px 34px 10px 12px!important;}
#list .list-page-panel,
#list #overallListDeptPanel{padding:16px 18px!important;}
#list #listSpecialTools{padding:14px 16px!important;display:flex!important;align-items:center!important;gap:10px!important;}
#list .search-row{padding:14px 16px!important;}
#list .color-tools{padding:14px 16px!important;display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;}
#list #apptTableWrap{overflow:auto!important;}
#list .list-dept-head{margin-bottom:10px!important;}
#list .list-dept-head strong{font-size:16px!important;letter-spacing:-.02em!important;}
#list .resident-dept-tabs{padding-top:2px!important;}
#list .time-filter-action{
  background:#fff!important;
  color:#334155!important;
  border:1.5px solid rgba(148,163,184,.8)!important;
  box-shadow:none!important;
}
#list .time-filter-action[aria-pressed="true"],
#list .total-filter-action[aria-pressed="true"]{
  border-width:2px!important;
  background:#fff7ed!important;
  border-color:#fb923c!important;
  color:#9a3412!important;
}
@media (max-width:720px){
  #list .panel-head{padding:14px!important;display:flex!important;gap:10px!important;}
  #list .panel-head h2{font-size:21px!important;}
  #list .list-controls{width:100%!important;}
  #list .list-controls .select-label{width:100%!important;justify-content:space-between!important;}
  #list .list-controls select{width:auto!important;min-width:120px!important;}
  #list .list-page-panel,
  #list #overallListDeptPanel,
  #list #listSpecialTools,
  #list .search-row,
  #list .color-tools{padding:12px!important;border-radius:18px!important;}
}

/* v136 medicine/surgery total cards */
.personal-subdept-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 12px;padding:8px;border:1px solid rgba(148,163,184,.22);background:rgba(255,255,255,.72);border-radius:18px}
.personal-subdept-tab{appearance:none;border:1px solid rgba(148,163,184,.38);background:rgba(255,255,255,.86);color:#334155;border-radius:999px;padding:9px 18px;font-weight:900;cursor:pointer;box-shadow:0 4px 12px rgba(15,23,42,.05)}
.personal-subdept-tab.active{background:linear-gradient(135deg,#f5d0fe,#bae6fd);border-color:rgba(14,165,233,.45);color:#0f172a;box-shadow:0 8px 20px rgba(14,165,233,.14)}
.medicine-patient-cards,.surgery-patient-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:16px}
.medicine-card,.surgery-card{border:2px solid rgba(100,116,139,.22);background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.95));box-shadow:0 12px 28px rgba(15,23,42,.09)}
.medicine-pill{background:#fef3c7;color:#92400e;border:1px solid #fde68a}
.surgery-pill{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.surgery-stage-pill.first{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.surgery-stage-pill.second{background:#fef3c7;color:#92400e;border-color:#fde68a}.surgery-stage-pill.final{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.medicine-one-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:10px;padding:10px;border-radius:16px;background:rgba(248,250,252,.95);border:1px solid rgba(148,163,184,.24)}
.medicine-one-line label{display:flex;align-items:center;gap:8px;min-width:0;margin:0}.medicine-one-line select{min-width:0;width:100%;height:38px;border-radius:12px;border:1px solid rgba(148,163,184,.45);background:white;font-weight:850;color:#0f172a;padding:0 10px}.medicine-one-line .sign-by-box{white-space:nowrap;margin:0}
.always-open[hidden]{display:block!important}.always-open{display:block!important;margin-top:10px}.always-open .personal-card-editor-line{display:grid;grid-template-columns:1fr;gap:8px}
.surgery-actions{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))!important}.surgery-prev-stage{background:#f8fafc!important;color:#334155!important;border:1px solid #cbd5e1!important}.surgery-next-stage{background:#dcfce7!important;color:#166534!important;border:1px solid #86efac!important}
@media (max-width: 760px){.medicine-patient-cards,.surgery-patient-cards{grid-template-columns:1fr}.medicine-one-line{grid-template-columns:1fr auto;gap:6px;padding:8px}.medicine-one-line label{gap:5px}.medicine-one-line select{font-size:12px;height:34px}.personal-subdept-tabs{flex-wrap:nowrap;overflow-x:auto}.personal-subdept-tab{flex:1 0 auto;padding:8px 12px;font-size:13px}}

/* v137: derived sub menu for medicine/surgery and clearer active state */
#personal .personal-subdept-tabs{
  position:relative!important;
  display:flex!important;
  width:fit-content!important;
  max-width:100%!important;
  gap:8px!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  margin:0 0 14px 18px!important;
  padding:8px!important;
  border-radius:18px!important;
  border:1px solid rgba(203,213,225,.8)!important;
  background:linear-gradient(180deg,rgba(248,250,252,.96),rgba(255,255,255,.94))!important;
  box-shadow:0 10px 24px rgba(15,23,42,.06)!important;
}
#personal .personal-subdept-tabs::before{
  content:"";
  position:absolute;
  left:20px;
  top:-15px;
  width:2px;
  height:15px;
  background:rgba(148,163,184,.55);
}
#personal .personal-subdept-tabs::after{
  content:"하위 선택";
  position:absolute;
  left:34px;
  top:-26px;
  padding:2px 8px;
  border-radius:999px;
  background:rgba(241,245,249,.96);
  border:1px solid rgba(203,213,225,.7);
  color:#64748b;
  font-size:11px;
  font-weight:900;
  letter-spacing:-.02em;
}
#personal .personal-subdept-tab{
  flex:0 0 auto!important;
  min-width:108px!important;
  height:38px!important;
  padding:0 18px!important;
  border-radius:999px!important;
  border:1px solid rgba(203,213,225,.95)!important;
  background:rgba(248,250,252,.88)!important;
  color:#64748b!important;
  box-shadow:none!important;
  font-size:13px!important;
  font-weight:900!important;
  opacity:.72!important;
}
#personal .personal-subdept-tab.active{
  opacity:1!important;
  color:#0f172a!important;
  border-color:rgba(251,191,36,.8)!important;
  background:linear-gradient(135deg,#fef3c7,#fce7f3)!important;
  box-shadow:0 10px 24px rgba(251,191,36,.18)!important;
  transform:translateY(-1px);
}
#personal .personal-subdept-tab:not(.active):hover{
  opacity:.92!important;
  background:#fff!important;
  color:#334155!important;
}
@media (max-width:760px){
  #personal .personal-subdept-tabs{
    width:100%!important;
    margin:0 0 12px 0!important;
    padding:7px!important;
    overflow:visible!important;
  }
  #personal .personal-subdept-tabs::before{left:18px;top:-12px;height:12px;}
  #personal .personal-subdept-tabs::after{display:none;}
  #personal .personal-subdept-tab{
    flex:1 1 0!important;
    min-width:0!important;
    height:36px!important;
    padding:0 8px!important;
    font-size:12.5px!important;
  }
}


/* v138: personal total nested panel, subdept under active dept, pastel ortho groups */
#personal #personalAppArea.personal-app{
  margin-top:14px!important;
  padding:16px!important;
  border:1px solid rgba(203,213,225,.72)!important;
  border-radius:26px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(248,250,252,.86))!important;
  box-shadow:0 18px 44px rgba(15,23,42,.08)!important;
}
#personal .personal-subject-tabs,
#personal .personal-utility-tabs,
#personal #personalManageModeBar,
#personal #personalPatientSearchBar{
  border:1px solid rgba(226,232,240,.9)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:0 8px 20px rgba(15,23,42,.04)!important;
  padding:10px!important;
  margin-bottom:10px!important;
}
#personal .personal-subdept-tabs::after{display:none!important;content:""!important;}
#personal .personal-subdept-tabs{
  position:relative!important;
  max-width:min(420px, 100%)!important;
  width:max-content!important;
  padding:7px!important;
  margin-top:-2px!important;
  margin-bottom:14px!important;
  border-radius:999px!important;
  border:1px solid rgba(226,232,240,.95)!important;
  background:rgba(248,250,252,.88)!important;
  box-shadow:0 10px 24px rgba(15,23,42,.05)!important;
}
#personal .personal-subdept-tabs.is-medicine{margin-left:calc(60% + 4px)!important;transform:translateX(-50%)!important;}
#personal .personal-subdept-tabs.is-surgery{margin-left:calc(80% + 4px)!important;transform:translateX(-50%)!important;}
#personal .personal-subdept-tabs::before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:-12px!important;
  width:2px!important;
  height:12px!important;
  background:rgba(148,163,184,.5)!important;
}
#personal .personal-subdept-tab{
  min-width:112px!important;
  height:36px!important;
  border-radius:999px!important;
  background:rgba(241,245,249,.88)!important;
  border:1px solid rgba(203,213,225,.9)!important;
  color:#64748b!important;
  opacity:1!important;
}
#personal .personal-subdept-tab.active{
  color:#172554!important;
  border-color:rgba(125,211,252,.9)!important;
  background:linear-gradient(135deg,#dbeafe,#fce7f3)!important;
  box-shadow:0 10px 24px rgba(59,130,246,.14)!important;
}
#personal .personal-card-group:has(.type-bonto),
#personal .personal-card-group:has(.type-jinto),
#personal .personal-card-group:has(.type-guto){
  border-radius:24px!important;
  padding:12px!important;
  border:1px solid rgba(226,232,240,.9)!important;
}
#personal .personal-card-group:has(.type-bonto){background:linear-gradient(180deg,rgba(219,234,254,.48),rgba(255,255,255,.9))!important;}
#personal .personal-card-group:has(.type-jinto){background:linear-gradient(180deg,rgba(252,231,243,.52),rgba(255,255,255,.9))!important;}
#personal .personal-card-group:has(.type-guto){background:linear-gradient(180deg,rgba(220,252,231,.52),rgba(255,255,255,.9))!important;}
#personal .type-pill.type-bonto{background:#dbeafe!important;color:#1d4ed8!important;border-color:#bfdbfe!important;}
#personal .type-pill.type-jinto{background:#fce7f3!important;color:#be185d!important;border-color:#fbcfe8!important;}
#personal .type-pill.type-guto{background:#dcfce7!important;color:#166534!important;border-color:#bbf7d0!important;}
@media (max-width:760px){
  #personal #personalAppArea.personal-app{padding:10px!important;border-radius:20px!important;}
  #personal .personal-subdept-tabs.is-medicine,
  #personal .personal-subdept-tabs.is-surgery{margin-left:0!important;transform:none!important;width:100%!important;max-width:100%!important;}
  #personal .personal-subdept-tabs::before{left:22px!important;}
  #personal .personal-subdept-tab{min-width:0!important;flex:1 1 0!important;}
}

/* v139: personal total layout cleanup and subdept trace/login polish */
#personal #personalAppArea.personal-app{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#personal .personal-subject-tabs,
#personal .personal-utility-tabs{
  border:1px solid rgba(226,232,240,.92)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:0 8px 22px rgba(15,23,42,.05)!important;
  padding:10px!important;
}
#personal #personalManageModeBar,
#personal #personalPatientSearchBar,
#personal .personal-section-card,
#personal .personal-match-grid{
  border:1px solid rgba(226,232,240,.92)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.86)!important;
  box-shadow:0 10px 24px rgba(15,23,42,.05)!important;
  padding:12px!important;
  margin-top:12px!important;
}
#personal .personal-subject-tabs{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  align-items:start!important;
}
#personal .personal-subject-tabs > .personal-dept-tab{
  width:100%!important;
}
#personal .personal-subdept-tabs{
  position:relative!important;
  grid-row:2!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  transform:none!important;
  padding:6px!important;
  border-radius:16px!important;
  background:rgba(248,250,252,.9)!important;
  border:1px solid rgba(226,232,240,.95)!important;
  box-shadow:0 8px 18px rgba(15,23,42,.04)!important;
  gap:6px!important;
}
#personal .personal-subdept-tabs.is-medicine{
  grid-column:4 / 5!important;
  margin-left:0!important;
  transform:none!important;
}
#personal .personal-subdept-tabs.is-surgery{
  grid-column:5 / 6!important;
  margin-left:0!important;
  transform:none!important;
}
#personal .personal-subdept-tabs::before,
#personal .personal-subdept-tabs::after,
#personal .personal-subdept-tabs:empty::before,
#personal .personal-subdept-tabs:empty::after,
#personal .personal-subdept-tabs[style*="display: none"]::before,
#personal .personal-subdept-tabs[style*="display: none"]::after{
  display:none!important;
  content:""!important;
}
#personal .personal-subdept-tab{
  min-width:0!important;
  flex:1 1 0!important;
  height:34px!important;
  padding:0 10px!important;
  font-size:12px!important;
}
#personal .personal-login-error{
  padding:7px 12px!important;
  border-radius:999px!important;
  background:#fee2e2!important;
  border:1px solid #fecaca!important;
  color:#b91c1c!important;
  font-weight:900!important;
  font-size:12px!important;
  box-shadow:0 8px 18px rgba(239,68,68,.10)!important;
}
@media (max-width:760px){
  #personal .personal-subject-tabs{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:5px!important;
    padding:8px!important;
  }
  #personal .personal-subdept-tabs.is-medicine{
    grid-column:4 / 6!important;
  }
  #personal .personal-subdept-tabs.is-surgery{
    grid-column:4 / 6!important;
  }
  #personal .personal-subdept-tab{font-size:12px!important;height:32px!important;padding:0 6px!important;}
}

/* v140: surgery final visit report topic memo */
.surgery-report-topic-row{
  display:flex;
  align-items:flex-end;
  gap:10px;
  padding:10px 12px;
  border:1px solid rgba(134,239,172,.8);
  background:linear-gradient(135deg,rgba(240,253,244,.96),rgba(255,255,255,.98));
  border-radius:16px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 6px 14px rgba(15,23,42,.04);
}
.surgery-report-topic-row label{
  flex:1 1 auto;
  min-width:0;
  display:grid;
  gap:6px;
  margin:0;
}
.surgery-report-topic-row label span{
  font-size:.76rem;
  font-weight:900;
  color:#166534;
  letter-spacing:-.02em;
}
.surgery-report-topic-input{
  width:100%;
  min-height:42px;
  resize:vertical;
  border:1px solid rgba(187,247,208,.95);
  border-radius:13px;
  background:#fff;
  color:#0f172a;
  font-weight:800;
  font-size:.9rem;
  line-height:1.35;
  padding:9px 11px;
  outline:none;
  box-shadow:0 2px 8px rgba(15,23,42,.04);
}
.surgery-report-topic-input:focus{
  border-color:#86efac;
  box-shadow:0 0 0 3px rgba(34,197,94,.14), 0 4px 12px rgba(15,23,42,.06);
}
.surgery-report-topic-hint{
  flex:0 0 auto;
  white-space:nowrap;
  font-size:.74rem;
  font-weight:900;
  color:#16a34a;
  background:#dcfce7;
  border:1px solid #bbf7d0;
  border-radius:999px;
  padding:6px 9px;
  margin-bottom:3px;
}
@media (max-width:760px){
  .surgery-report-topic-row{padding:9px;gap:7px;align-items:center;}
  .surgery-report-topic-input{font-size:.84rem;min-height:38px;padding:8px 9px;}
  .surgery-report-topic-hint{font-size:.68rem;padding:5px 7px;}
}


/* v142: 핸드폰 캘린더 연동 */
.personal-calendar-tab { white-space: nowrap; }
.calendar-settings-panel { overflow: hidden; }
.calendar-url-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(125, 151, 190, .26);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(235,247,255,.9));
  box-shadow: 0 14px 36px rgba(91, 120, 170, .11);
}
.calendar-url-card label { display: grid; gap: 8px; font-weight: 800; color: #24304a; }
.calendar-url-card textarea {
  width: 100%;
  min-height: 86px;
  resize: vertical;
  border: 1px solid rgba(125, 151, 190, .34);
  border-radius: 18px;
  padding: 14px;
  font-size: 13px;
  line-height: 1.55;
  color: #14213d;
  background: rgba(255,255,255,.9);
  box-sizing: border-box;
}
.calendar-page-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.calendar-page-actions .button,
.calendar-page-actions button { min-height: 40px; border-radius: 999px; }
.calendar-guide-box {
  margin-top: 16px;
  padding: 18px;
  border: 1px solid rgba(125, 151, 190, .2);
  border-radius: 22px;
  background: rgba(255,255,255,.72);
}
.calendar-guide-box h3 { margin: 0 0 10px; font-size: 17px; }
.calendar-guide-box p { margin: 7px 0; color: #506079; line-height: 1.65; }
.calendar-guide-box .calendar-note { color: #2f5f8f; font-weight: 800; }
@media (max-width: 720px) {
  .calendar-page-actions { display: grid; grid-template-columns: 1fr; }
  .calendar-page-actions .button,
  .calendar-page-actions button { width: 100%; justify-content: center; }
  .calendar-url-card { padding: 14px; border-radius: 20px; }
}

/* v144: personal total top controls grouped into one polished shell */
#personal .personal-top-shell{
  display:grid!important;
  gap:12px!important;
  margin:0 0 14px!important;
  padding:14px!important;
  border:1px solid rgba(203,213,225,.92)!important;
  border-radius:26px!important;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(248,250,252,.90))!important;
  box-shadow:0 14px 34px rgba(15,23,42,.07)!important;
}
#personal .personal-top-shell > .personal-head,
#personal .personal-top-shell > .personal-subject-tabs,
#personal .personal-top-shell > .personal-utility-tabs{
  margin:0!important;
  border:1px solid rgba(226,232,240,.98)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.86)!important;
  box-shadow:0 6px 16px rgba(15,23,42,.035)!important;
  padding:10px!important;
}
#personal .personal-top-shell > .personal-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:14px 16px!important;
}
#personal .personal-top-shell > .personal-head::after{display:none!important;content:none!important;}
#personal .personal-top-shell > .personal-head h2{margin:0!important;}
#personal .personal-top-shell > .personal-head p{display:none!important;}
#personal .personal-top-shell > .personal-subject-tabs{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  align-items:start!important;
}
#personal .personal-top-shell > .personal-utility-tabs{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
}
#personal .personal-top-shell .personal-utility-tabs .personal-dept-tab{
  flex:0 1 auto!important;
  min-width:max-content!important;
}
#personal .personal-subdept-tabs:not(.is-medicine):not(.is-surgery),
#personal .personal-subdept-tabs:empty{
  display:none!important;
  width:0!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  overflow:hidden!important;
}
#personal .personal-subdept-tabs:not(.is-medicine):not(.is-surgery)::before,
#personal .personal-subdept-tabs:not(.is-medicine):not(.is-surgery)::after,
#personal .personal-subdept-tabs:empty::before,
#personal .personal-subdept-tabs:empty::after{
  display:none!important;
  content:none!important;
}
#personal .personal-manage-modebar,
#personal #personalPatientSearchBar,
#personal .personal-section-card,
#personal .personal-match-grid{
  margin-top:12px!important;
}
@media (max-width:760px){
  #personal .personal-top-shell{padding:10px!important;border-radius:22px!important;gap:9px!important;}
  #personal .personal-top-shell > .personal-head{padding:12px!important;align-items:flex-start!important;}
  #personal .personal-top-shell > .personal-subject-tabs{gap:5px!important;padding:8px!important;}
  #personal .personal-top-shell > .personal-utility-tabs{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;padding:8px!important;}
  #personal .personal-top-shell .personal-utility-tabs .personal-dept-tab{min-width:0!important;width:100%!important;font-size:11px!important;padding:8px 6px!important;}
}


/* v146: personal total top three bars in one grouped shell */
#personal #personalTopShell.personal-top-shell{
  display:grid!important;
  gap:12px!important;
  margin:0 0 16px!important;
  padding:14px!important;
  border:1px solid rgba(186,199,218,.92)!important;
  border-radius:28px!important;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(241,247,255,.90))!important;
  box-shadow:0 18px 46px rgba(15,23,42,.09)!important;
}
#personal #personalTopShell > .personal-head,
#personal #personalTopShell > .personal-subject-tabs,
#personal #personalTopShell > .personal-utility-tabs,
#personal #personalTopShell > .personal-subdept-tabs{
  margin:0!important;
  border:1px solid rgba(219,226,237,.98)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:0 8px 20px rgba(15,23,42,.045)!important;
  padding:10px!important;
}
#personal #personalTopShell > .personal-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  padding:16px 18px!important;
}
#personal #personalTopShell > .personal-head h2{margin:0!important;}
#personal #personalTopShell > .personal-head p{display:none!important;}
#personal #personalTopShell > .personal-subject-tabs{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
}
#personal #personalTopShell > .personal-subject-tabs .personal-dept-tab,
#personal #personalTopShell > .personal-utility-tabs .personal-dept-tab{
  min-height:42px!important;
  white-space:nowrap!important;
}
#personal #personalTopShell > .personal-utility-tabs{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
}
#personal #personalTopShell > .personal-utility-tabs .personal-dept-tab{
  flex:0 1 auto!important;
}
#personal #personalTopShell > .personal-subdept-tabs{
  width:100%!important;
  max-width:100%!important;
  transform:none!important;
  margin:0!important;
  justify-content:center!important;
}
#personal #personalTopShell > .personal-subdept-tabs:not(.is-medicine):not(.is-surgery),
#personal #personalTopShell > .personal-subdept-tabs:empty,
#personal #personalTopShell > .personal-subdept-tabs[style*="display: none"]{
  display:none!important;
  border:0!important;
  padding:0!important;
  height:0!important;
  min-height:0!important;
  overflow:hidden!important;
  box-shadow:none!important;
  background:transparent!important;
}
#personal #personalTopShell > .personal-subdept-tabs::before,
#personal #personalTopShell > .personal-subdept-tabs::after{display:none!important;content:none!important;}
#personal #personalManageModeBar,
#personal #personalPatientSearchBar,
#personal .personal-section-card,
#personal .personal-match-grid{margin-top:12px!important;}
@media (max-width:760px){
  #personal #personalTopShell.personal-top-shell{padding:10px!important;border-radius:23px!important;gap:9px!important;}
  #personal #personalTopShell > .personal-head{padding:13px 12px!important;align-items:center!important;}
  #personal #personalTopShell > .personal-subject-tabs{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important;padding:8px!important;}
  #personal #personalTopShell > .personal-subject-tabs .personal-dept-tab{font-size:12px!important;padding:0 4px!important;min-height:38px!important;}
  #personal #personalTopShell > .personal-utility-tabs{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;padding:8px!important;}
  #personal #personalTopShell > .personal-utility-tabs .personal-dept-tab{width:100%!important;min-width:0!important;font-size:11px!important;padding:8px 5px!important;}
}

/* v148: hard mobile layout reset for medicine/surgery subdept tabs */
@media (max-width: 760px){
  #personal #personalTopShell.personal-top-shell{
    display:flex!important;
    flex-direction:column!important;
    gap:9px!important;
    overflow:hidden!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #personal #personalTopShell > .personal-head,
  #personal #personalTopShell > .personal-subject-tabs,
  #personal #personalTopShell > .personal-subdept-tabs,
  #personal #personalTopShell > .personal-utility-tabs{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    float:none!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    margin:0!important;
  }
  #personal #personalTopShell > .personal-subject-tabs{
    order:2!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    align-items:stretch!important;
    gap:5px!important;
    overflow:hidden!important;
  }
  #personal #personalTopShell > .personal-subject-tabs .personal-dept-tab{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    padding:0 3px!important;
    font-size:11.5px!important;
    letter-spacing:-.06em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    order:3!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:stretch!important;
    gap:6px!important;
    padding:7px!important;
    border-radius:18px!important;
    overflow:hidden!important;
    grid-column:auto!important;
    grid-row:auto!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs[style*="display: none"],
  #personal #personalTopShell > .personal-subdept-tabs:not(.is-medicine):not(.is-surgery),
  #personal #personalTopShell > .personal-subdept-tabs:empty{
    display:none!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs::before,
  #personal #personalTopShell > .personal-subdept-tabs::after{
    display:none!important;
    content:none!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    flex:1 1 0!important;
    min-width:0!important;
    max-width:none!important;
    width:auto!important;
    height:36px!important;
    padding:0 4px!important;
    font-size:12px!important;
    letter-spacing:-.04em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  #personal #personalTopShell > .personal-utility-tabs{
    order:4!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
    overflow:hidden!important;
  }
  #personal #personalTopShell > .personal-utility-tabs .personal-dept-tab{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    font-size:10.8px!important;
    letter-spacing:-.06em!important;
    padding:8px 4px!important;
  }
  #personal #personalTopShell > .personal-head{order:1!important;}
}

/* v149: personal utility menu inactive/active state cleanup
   - OCS match list is colored only when actually active
   - Settings links use the same neutral style as other inactive utility buttons */
#personal #personalTopShell > .personal-utility-tabs .personal-dept-tab,
#personal .personal-utility-tabs .personal-dept-tab,
#personal .personal-utility-tabs a.personal-dept-tab,
#personal .personal-utility-tabs button.personal-dept-tab{
  background:rgba(255,255,255,.88)!important;
  color:#475569!important;
  border:1px solid rgba(203,213,225,.86)!important;
  box-shadow:0 6px 14px rgba(15,23,42,.035)!important;
  opacity:1!important;
  text-decoration:none!important;
}
#personal #personalTopShell > .personal-utility-tabs .personal-dept-tab:not(.active),
#personal .personal-utility-tabs .personal-dept-tab:not(.active),
#personal .personal-utility-tabs a.personal-dept-tab:not(.active),
#personal .personal-utility-tabs button.personal-dept-tab:not(.active){
  background:rgba(255,255,255,.9)!important;
  color:#475569!important;
  border-color:rgba(203,213,225,.86)!important;
  box-shadow:0 6px 14px rgba(15,23,42,.035)!important;
}
#personal #personalTopShell > .personal-utility-tabs #personalTomorrowTab.active,
#personal .personal-utility-tabs #personalTomorrowTab.active{
  background:linear-gradient(135deg,#dbeafe,#e0f2fe)!important;
  color:#1d4ed8!important;
  border-color:rgba(147,197,253,.95)!important;
  box-shadow:0 10px 22px rgba(59,130,246,.14)!important;
}
#personal #personalTopShell > .personal-utility-tabs .personal-mail-alert-tab,
#personal #personalTopShell > .personal-utility-tabs .personal-attendance-tab,
#personal #personalTopShell > .personal-utility-tabs .personal-calendar-tab,
#personal .personal-utility-tabs .personal-mail-alert-tab,
#personal .personal-utility-tabs .personal-attendance-tab,
#personal .personal-utility-tabs .personal-calendar-tab{
  background:rgba(255,255,255,.9)!important;
  color:#475569!important;
  border:1px solid rgba(203,213,225,.86)!important;
  box-shadow:0 6px 14px rgba(15,23,42,.035)!important;
}
#personal #personalTopShell > .personal-utility-tabs .personal-dept-tab:hover,
#personal .personal-utility-tabs .personal-dept-tab:hover{
  background:rgba(248,250,252,.96)!important;
  border-color:rgba(148,163,184,.72)!important;
  transform:translateY(-1px)!important;
}

/* v150: fix medicine/surgery sub tabs breaking the personal top menu */
#personal #personalTopShell.personal-top-shell{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:12px!important;
  overflow:visible!important;
}
#personal #personalTopShell > .personal-head,
#personal #personalTopShell > .personal-subject-tabs,
#personal #personalTopShell > .personal-subdept-tabs,
#personal #personalTopShell > .personal-utility-tabs{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  margin:0!important;
  transform:none!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
}
#personal #personalTopShell > .personal-subject-tabs{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  overflow:hidden!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine,
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  display:flex!important;
  flex-direction:row!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:8px!important;
  padding:10px!important;
  border:1px solid rgba(219,226,237,.98)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:0 8px 20px rgba(15,23,42,.045)!important;
  overflow:visible!important;
}
#personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
  flex:0 1 180px!important;
  min-width:120px!important;
  max-width:220px!important;
  height:40px!important;
  border-radius:999px!important;
  white-space:nowrap!important;
}
#personal #personalTopShell > .personal-subdept-tabs:not(.is-medicine):not(.is-surgery),
#personal #personalTopShell > .personal-subdept-tabs:empty,
#personal #personalTopShell > .personal-subdept-tabs[style*="display: none"]{
  display:none!important;
  height:0!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  margin:0!important;
  overflow:hidden!important;
  background:transparent!important;
  box-shadow:none!important;
}
#personal #personalTopShell > .personal-subdept-tabs::before,
#personal #personalTopShell > .personal-subdept-tabs::after{
  display:none!important;
  content:none!important;
}
@media (max-width:760px){
  #personal #personalTopShell.personal-top-shell{gap:9px!important;padding:10px!important;overflow:hidden!important;}
  #personal #personalTopShell > .personal-head{order:1!important;}
  #personal #personalTopShell > .personal-subject-tabs{order:2!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important;padding:8px!important;}
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{order:3!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;padding:8px!important;overflow:hidden!important;}
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{width:100%!important;min-width:0!important;max-width:none!important;flex:none!important;height:36px!important;font-size:12px!important;padding:0 6px!important;}
  #personal #personalTopShell > .personal-utility-tabs{order:4!important;}
}

/* v151: subject-derived subdept placement + utility order fix */
#personal #personalTopShell{
  align-items:stretch!important;
}
#personal #personalTopShell > .personal-subject-tabs{
  order:2!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine,
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  order:3!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:6px!important;
  width:calc(20% - 6.4px)!important;
  max-width:calc(20% - 6.4px)!important;
  min-width:0!important;
  margin-top:-4px!important;
  margin-bottom:2px!important;
  padding:8px!important;
  box-sizing:border-box!important;
  transform:none!important;
  border-radius:18px!important;
  overflow:visible!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine{margin-left:calc(60% + 4.8px)!important;}
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{margin-left:calc(80% + 6.4px)!important;}
#personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
  width:100%!important;
  min-width:0!important;
  height:34px!important;
  padding:0 6px!important;
  font-size:12px!important;
  border-radius:14px!important;
  white-space:normal!important;
  line-height:1.08!important;
}
#personal #personalTopShell > .personal-subdept-tabs:not(.is-medicine):not(.is-surgery),
#personal #personalTopShell > .personal-subdept-tabs:empty,
#personal #personalTopShell > .personal-subdept-tabs[style*="display: none"]{
  display:none!important;
  width:0!important;
  max-width:0!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  overflow:hidden!important;
}
#personal #personalTopShell > .personal-utility-tabs{
  order:4!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  align-items:center!important;
}
#personal #personalTopShell > .personal-utility-tabs .personal-mail-alert-tab,
#personal #personalTopShell > .personal-utility-tabs .personal-attendance-tab,
#personal #personalTopShell > .personal-utility-tabs .personal-calendar-tab{
  order:1!important;
}
#personal #personalTopShell > .personal-utility-tabs #personalTomorrowTab{
  order:2!important;
  flex:0 0 100%!important;
  width:max-content!important;
  max-width:100%!important;
  align-self:flex-start!important;
}
@media (max-width:760px){
  #personal #personalTopShell > .personal-subject-tabs{
    order:2!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:5px!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    order:3!important;
    flex-direction:column!important;
    width:calc(20% - 4px)!important;
    max-width:calc(20% - 4px)!important;
    min-width:0!important;
    padding:6px!important;
    gap:5px!important;
    margin-top:-3px!important;
    margin-bottom:0!important;
    border-radius:16px!important;
    overflow:visible!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{margin-left:calc(60% + 3px)!important;}
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{margin-left:calc(80% + 4px)!important;}
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    height:32px!important;
    font-size:10.5px!important;
    padding:0 2px!important;
    letter-spacing:-.08em!important;
    white-space:normal!important;
    line-height:1.05!important;
  }
  #personal #personalTopShell > .personal-utility-tabs{
    order:4!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
  }
  #personal #personalTopShell > .personal-utility-tabs #personalTomorrowTab{
    grid-column:1 / -1!important;
    width:100%!important;
    flex:auto!important;
    justify-self:stretch!important;
  }
}

/* v152: make medicine/surgery sub buttons thin, small, and positioned under the selected department */
#personal #personalTopShell > .personal-subdept-tabs.is-medicine,
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  order:3!important;
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:6px!important;
  width:auto!important;
  max-width:max-content!important;
  min-width:0!important;
  margin-top:-6px!important;
  margin-bottom:2px!important;
  padding:4px 6px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.72)!important;
  border:1px solid rgba(203,213,225,.7)!important;
  box-shadow:0 6px 16px rgba(15,23,42,.055)!important;
  box-sizing:border-box!important;
  transform:none!important;
  overflow:visible!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine{
  margin-left:calc(60% + 6px)!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  margin-left:calc(80% + 6px)!important;
}
#personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:54px!important;
  max-width:none!important;
  height:28px!important;
  padding:0 10px!important;
  border-radius:999px!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab.active{
  border-width:1.5px!important;
}
@media (max-width: 760px){
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    display:inline-flex!important;
    flex-direction:row!important;
    width:auto!important;
    max-width:calc(100% - 20px)!important;
    padding:4px 6px!important;
    gap:5px!important;
    overflow-x:auto!important;
    margin-top:-4px!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{
    margin-left:calc(60% + 2px)!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    margin-left:calc(80% + 2px)!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    width:auto!important;
    min-width:48px!important;
    height:26px!important;
    padding:0 8px!important;
    font-size:10.5px!important;
  }
}
@media (max-width: 480px){
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    margin-left:0!important;
    justify-self:start!important;
    align-self:start!important;
  }
}

/* v153: slightly larger medicine/surgery sub buttons and keep them directly under the active subject button */
#personal #personalTopShell.personal-top-shell{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  align-items:start!important;
  gap:10px!important;
  overflow:visible!important;
}
#personal #personalTopShell > .personal-head,
#personal #personalTopShell > .personal-subject-tabs,
#personal #personalTopShell > .personal-utility-tabs{
  grid-column:1 / -1!important;
}
#personal #personalTopShell > .personal-subject-tabs{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine,
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  order:initial!important;
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:center!important;
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  margin: -6px 0 0 0!important;
  padding:5px 7px!important;
  gap:6px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.82)!important;
  border:1px solid rgba(203,213,225,.82)!important;
  box-shadow:0 8px 18px rgba(15,23,42,.06)!important;
  overflow:visible!important;
  transform:none!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine{grid-column:4 / 5!important;}
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{grid-column:5 / 6!important;}
#personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:62px!important;
  height:30px!important;
  padding:0 11px!important;
  font-size:11.5px!important;
  line-height:1!important;
  letter-spacing:-.02em!important;
  white-space:nowrap!important;
  border-radius:999px!important;
}
#personal #personalTopShell > .personal-subdept-tabs:not(.is-medicine):not(.is-surgery),
#personal #personalTopShell > .personal-subdept-tabs:empty,
#personal #personalTopShell > .personal-subdept-tabs[style*="display: none"]{
  display:none!important;
}
@media (max-width:760px){
  #personal #personalTopShell.personal-top-shell{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:8px!important;
    overflow:visible!important;
  }
  #personal #personalTopShell > .personal-head,
  #personal #personalTopShell > .personal-subject-tabs,
  #personal #personalTopShell > .personal-utility-tabs{
    grid-column:1 / -1!important;
    width:100%!important;
    max-width:100%!important;
  }
  #personal #personalTopShell > .personal-subject-tabs{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:5px!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    order:initial!important;
    display:inline-flex!important;
    flex-direction:row!important;
    justify-self:center!important;
    align-self:start!important;
    width:auto!important;
    max-width:calc(100vw - 28px)!important;
    min-width:0!important;
    margin:-5px 0 0 0!important;
    padding:5px 6px!important;
    gap:5px!important;
    overflow:visible!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{grid-column:4 / 5!important;}
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{grid-column:5 / 6!important;}
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    min-width:56px!important;
    height:30px!important;
    padding:0 9px!important;
    font-size:11px!important;
    letter-spacing:-.04em!important;
    white-space:nowrap!important;
  }
}
@media (max-width:380px){
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{grid-column:3 / 5!important;justify-self:end!important;}
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{grid-column:4 / 6!important;justify-self:end!important;}
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{min-width:52px!important;padding:0 7px!important;font-size:10.5px!important;}
}

/* v154: keep medicine/surgery sub buttons BELOW their parent subject button, not above it */
#personal #personalTopShell.personal-top-shell{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  align-items:start!important;
  row-gap:8px!important;
  column-gap:8px!important;
  overflow:visible!important;
}
#personal #personalTopShell > .personal-subject-tabs{
  grid-column:1 / -1!important;
  order:2!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine,
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  order:3!important;
  margin:0!important;
  margin-top:0!important;
  transform:none!important;
  align-self:start!important;
  justify-self:center!important;
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  width:max-content!important;
  max-width:100%!important;
  min-width:0!important;
  padding:6px 8px!important;
  gap:6px!important;
  border-radius:999px!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine{grid-column:4 / 5!important;}
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{grid-column:5 / 6!important;}
#personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
  min-width:64px!important;
  height:32px!important;
  padding:0 12px!important;
  font-size:11.5px!important;
  white-space:nowrap!important;
}
#personal #personalTopShell > .personal-utility-tabs{grid-column:1 / -1!important;order:4!important;}
@media (max-width:760px){
  #personal #personalTopShell.personal-top-shell{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    row-gap:7px!important;
    column-gap:5px!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    margin:0!important;
    margin-top:0!important;
    padding:5px 7px!important;
    gap:5px!important;
    max-width:calc(100vw - 34px)!important;
    overflow:visible!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{
    grid-column:4 / 5!important;
    justify-self:center!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    grid-column:5 / 6!important;
    justify-self:center!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    min-width:58px!important;
    height:31px!important;
    padding:0 9px!important;
    font-size:10.8px!important;
    letter-spacing:-.03em!important;
  }
}
@media (max-width:380px){
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{
    grid-column:4 / 5!important;
    justify-self:center!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    grid-column:5 / 6!important;
    justify-self:center!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    min-width:54px!important;
    height:30px!important;
    padding:0 7px!important;
    font-size:10.4px!important;
  }
}

/* v155: sub-department buttons should appear in a thin row BELOW the medicine/surgery tab.
   The combined width of the two sub buttons matches one subject tab width on PC and mobile. */
#personal #personalTopShell.personal-top-shell{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:10px!important;
  overflow:visible!important;
}
#personal #personalTopShell > .personal-head{order:1!important;width:100%!important;}
#personal #personalTopShell > .personal-subject-tabs{
  order:2!important;
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine,
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  order:3!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  width:calc((100% - 32px) / 5)!important;
  max-width:calc((100% - 32px) / 5)!important;
  min-width:0!important;
  margin-top:-4px!important;
  margin-bottom:0!important;
  padding:4px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.78)!important;
  border:1px solid rgba(203,213,225,.76)!important;
  box-shadow:0 6px 15px rgba(15,23,42,.045)!important;
  transform:none!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine{
  margin-left:calc(((100% - 32px) / 5) * 3 + 24px)!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  margin-left:calc(((100% - 32px) / 5) * 4 + 32px)!important;
}
#personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
  flex:1 1 0!important;
  width:50%!important;
  min-width:0!important;
  max-width:none!important;
  height:30px!important;
  padding:0 4px!important;
  border-radius:999px!important;
  font-size:11px!important;
  line-height:1!important;
  letter-spacing:-.04em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
#personal #personalTopShell > .personal-subdept-tabs:not(.is-medicine):not(.is-surgery),
#personal #personalTopShell > .personal-subdept-tabs:empty,
#personal #personalTopShell > .personal-subdept-tabs[style*="display: none"]{
  display:none!important;
  height:0!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  overflow:hidden!important;
}
#personal #personalTopShell > .personal-subdept-tabs::before,
#personal #personalTopShell > .personal-subdept-tabs::after{display:none!important;content:none!important;}
#personal #personalTopShell > .personal-utility-tabs{order:4!important;width:100%!important;}

@media (max-width:760px){
  #personal #personalTopShell.personal-top-shell{gap:8px!important;padding:10px!important;overflow:visible!important;}
  #personal #personalTopShell > .personal-subject-tabs{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:5px!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    width:calc((100% - 20px) / 5)!important;
    max-width:calc((100% - 20px) / 5)!important;
    padding:3px!important;
    gap:3px!important;
    margin-top:-3px!important;
    overflow:hidden!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{
    margin-left:calc(((100% - 20px) / 5) * 3 + 15px)!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    margin-left:calc(((100% - 20px) / 5) * 4 + 20px)!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    height:28px!important;
    padding:0 2px!important;
    font-size:10px!important;
    letter-spacing:-.08em!important;
  }
}

/* v156: PC personal total card group containment fix
   Keep total groups full-width, then lay cards inside the group so they never spill outside. */
@media (min-width:721px){
  #personal #personalCardList.personal-card-list{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-top:12px!important;
  }
  #personal #personalCardList .personal-card-group{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    padding:18px!important;
    margin:0 0 18px!important;
  }
  #personal #personalCardList .personal-patient-cards{
    display:grid!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    align-items:stretch!important;
    justify-items:stretch!important;
  }
  #personal #personalCardList .personal-patient-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  #personal #personalCardList .personal-patient-card > *{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #personal #personalCardList .personal-card-schedule,
  #personal #personalCardList .personal-card-visit-row,
  #personal #personalCardList .personal-card-prostho-row,
  #personal #personalCardList .personal-card-actions{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
}
@media (min-width:721px) and (max-width:1050px){
  #personal #personalCardList .personal-patient-cards{
    grid-template-columns:1fr!important;
  }
}
@media (min-width:721px){
  #personal #personalCardList .personal-patient-cards.ortho-patient-cards{
    grid-template-columns:1fr!important;
  }
}

/* v157: mobile/desktop subdept buttons: keep under medicine/surgery without forced width matching */
#personal #personalTopShell > .personal-subdept-tabs.is-medicine,
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  order:3!important;
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  width:max-content!important;
  max-width:calc(100% - 16px)!important;
  min-width:max-content!important;
  padding:6px 8px!important;
  margin-top:-2px!important;
  margin-bottom:2px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.86)!important;
  border:1px solid rgba(203,213,225,.82)!important;
  box-shadow:0 8px 18px rgba(15,23,42,.055)!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  transform:none!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-medicine{
  margin-left:calc(70% - 4px)!important;
  margin-right:0!important;
  transform:translateX(-50%)!important;
}
#personal #personalTopShell > .personal-subdept-tabs.is-surgery{
  margin-left:auto!important;
  margin-right:0!important;
  transform:none!important;
}
#personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:82px!important;
  max-width:none!important;
  height:34px!important;
  padding:0 14px!important;
  border-radius:999px!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:-.02em!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
@media (max-width:760px){
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine,
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    width:max-content!important;
    max-width:calc(100vw - 28px)!important;
    min-width:max-content!important;
    padding:6px 8px!important;
    gap:7px!important;
    margin-top:-1px!important;
    overflow:visible!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{
    margin-left:calc(70% - 2px)!important;
    margin-right:0!important;
    transform:translateX(-50%)!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs.is-surgery{
    margin-left:auto!important;
    margin-right:0!important;
    transform:none!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    min-width:72px!important;
    height:32px!important;
    padding:0 12px!important;
    font-size:11.5px!important;
    letter-spacing:-.03em!important;
    white-space:nowrap!important;
  }
}
@media (max-width:380px){
  #personal #personalTopShell > .personal-subdept-tabs.is-medicine{
    margin-left:calc(70% - 3px)!important;
    transform:translateX(-50%)!important;
  }
  #personal #personalTopShell > .personal-subdept-tabs .personal-subdept-tab{
    min-width:68px!important;
    height:31px!important;
    padding:0 10px!important;
    font-size:11px!important;
  }
}

/* v158: restore personal calendar button and neutral utility-tab states */
#personal #personalTopShell > .personal-utility-tabs,
#personal .personal-utility-tabs{
  overflow:visible!important;
}
#personal #personalTopShell > .personal-utility-tabs .personal-calendar-tab,
#personal .personal-utility-tabs .personal-calendar-tab{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  text-decoration:none!important;
}
/* Utility links are navigation links, not selected tabs: keep them neutral. */
#personal #personalTopShell > .personal-utility-tabs .personal-mail-alert-tab,
#personal #personalTopShell > .personal-utility-tabs .personal-attendance-tab,
#personal #personalTopShell > .personal-utility-tabs .personal-calendar-tab,
#personal .personal-utility-tabs .personal-mail-alert-tab,
#personal .personal-utility-tabs .personal-attendance-tab,
#personal .personal-utility-tabs .personal-calendar-tab{
  background:rgba(255,255,255,.92)!important;
  color:#475569!important;
  border:1px solid rgba(203,213,225,.9)!important;
  box-shadow:0 5px 13px rgba(15,23,42,.035)!important;
  outline:none!important;
}
#personal #personalTopShell > .personal-utility-tabs .personal-mail-alert-tab:focus,
#personal #personalTopShell > .personal-utility-tabs .personal-mail-alert-tab:focus-visible,
#personal .personal-utility-tabs .personal-mail-alert-tab:focus,
#personal .personal-utility-tabs .personal-mail-alert-tab:focus-visible{
  border-color:rgba(203,213,225,.9)!important;
  box-shadow:0 5px 13px rgba(15,23,42,.035)!important;
  outline:none!important;
}
/* OCS match button is neutral until the page is actually selected. */
#personal #personalTopShell > .personal-utility-tabs #personalTomorrowTab:not(.active),
#personal .personal-utility-tabs #personalTomorrowTab:not(.active){
  background:rgba(255,255,255,.92)!important;
  color:#475569!important;
  border:1px solid rgba(203,213,225,.9)!important;
  box-shadow:0 5px 13px rgba(15,23,42,.035)!important;
}
#personal #personalTopShell > .personal-utility-tabs #personalTomorrowTab.active,
#personal .personal-utility-tabs #personalTomorrowTab.active{
  background:linear-gradient(135deg,#dbeafe,#e0f2fe)!important;
  color:#1d4ed8!important;
  border-color:rgba(147,197,253,.95)!important;
  box-shadow:0 10px 22px rgba(59,130,246,.14)!important;
}
@media (max-width:760px){
  #personal #personalTopShell > .personal-utility-tabs,
  #personal .personal-utility-tabs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    overflow:visible!important;
  }
  #personal #personalTopShell > .personal-utility-tabs .personal-dept-tab,
  #personal .personal-utility-tabs .personal-dept-tab{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    min-height:38px!important;
    padding:8px 5px!important;
    font-size:10.8px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
  }
  #personal #personalTopShell > .personal-utility-tabs #personalTomorrowTab,
  #personal .personal-utility-tabs #personalTomorrowTab{
    grid-column:1 / -1!important;
  }
}


/* v160: Gmail alert test send button */
.alert-page-actions .alert-test-send-btn{
  background:linear-gradient(135deg,#fff7ed,#ffedd5)!important;
  color:#9a3412!important;
  border:1px solid #fdba74!important;
}
.alert-page-actions .alert-test-send-btn:hover{
  background:#ffedd5!important;
  border-color:#fb923c!important;
}
