:root{
  --navy:#071a34;
  --navy-2:#0d2749;
  --blue:#2f6bd8;
  --blue-2:#1f56bd;
  --blue-soft:#eef5ff;
  --sky:#dceaff;
  --bg:#f3f6fb;
  --card:#ffffff;
  --line:#dbe3ef;
  --line-2:#e9eef5;
  --text:#172033;
  --muted:#64748b;
  --danger:#dc2626;
  --danger-soft:#fff1f2;
  --warning:#d97706;
  --warning-soft:#fff7ed;
  --success:#15803d;
  --success-soft:#ecfdf3;
  --shadow:0 14px 36px rgba(15,39,73,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.muted{color:var(--muted)}
.eyebrow{margin:0 0 7px;color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}

/* Authentication */
.auth-body{min-height:100vh;background:#081b35}
.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.1fr) minmax(420px,.9fr)}
.auth-visual{padding:52px clamp(40px,7vw,110px);color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;background:linear-gradient(145deg,#071a34 0%,#0b2d59 58%,#164a8d 100%)}
.auth-visual:before,.auth-visual:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.12)}
.auth-visual:before{width:580px;height:580px;right:-240px;top:-160px}
.auth-visual:after{width:360px;height:360px;left:-170px;bottom:-180px}
.auth-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.auth-brand strong{font-size:20px}
.brand-mark{width:46px;height:46px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#4e82e2,#2f6bd8);color:white;font-weight:950;box-shadow:0 12px 28px rgba(0,0,0,.2)}
.auth-visual h1{margin:0 0 20px;font-size:clamp(38px,5vw,72px);line-height:1.12;letter-spacing:-.055em;position:relative;z-index:1}.auth-visual>div>p:not(.eyebrow){max-width:640px;color:#d8e6fb;font-size:18px;line-height:1.8;position:relative;z-index:1}
.auth-role-list{display:flex;flex-wrap:wrap;gap:8px;position:relative;z-index:1}.auth-role-list span{padding:8px 13px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.07);font-size:12px;font-weight:800}
.auth-card-wrap{display:flex;align-items:center;justify-content:center;padding:32px;background:#f5f7fb}
.auth-card{width:min(460px,100%);padding:42px;background:white;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.auth-card h2{font-size:32px;margin:0 0 5px;letter-spacing:-.04em}.auth-card .muted{margin:0 0 28px}
.stack-form{display:grid;gap:16px}.stack-form label,.form-grid label,.wide-select,.inline-filter label,.client-search-form label{display:grid;gap:7px;color:#334155;font-size:13px;font-weight:800}
.stack-form input,.stack-form select,.form-grid input,.form-grid select,.form-grid textarea,.wide-select select,.inline-filter input,.inline-filter select,.client-search-form input,.client-search-form select{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;color:#172033;outline:none;padding:11px 13px;transition:.18s border-color,.18s box-shadow}.stack-form input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.wide-select select:focus,.client-search-form input:focus,.client-search-form select:focus{border-color:#7ba5ef;box-shadow:0 0 0 4px rgba(47,107,216,.11)}
.primary-btn,.secondary-btn,.table-btn,.topbar button,.calendar-controls button{border:0;border-radius:10px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.16s transform,.16s background,.16s box-shadow}
.primary-btn{background:var(--blue);color:#fff;padding:11px 18px;box-shadow:0 8px 20px rgba(47,107,216,.22)}.primary-btn:hover{background:var(--blue-2);transform:translateY(-1px)}
.secondary-btn{background:#fff;color:var(--navy-2);padding:10px 16px;border:1px solid var(--line)}.secondary-btn:hover{background:#f8fafc;border-color:#b9c7d8}
.full-btn{width:100%;height:48px}.small-btn{padding:7px 10px;font-size:12px;border-radius:9px}
.auth-links{display:flex;justify-content:center;gap:7px;margin-top:22px;font-size:13px;color:var(--muted)}.auth-links a{color:var(--blue);font-weight:900}
.security-note,.notice-box,.alert-box{border-radius:12px;padding:13px 15px;font-size:13px;line-height:1.65}.security-note{margin-top:22px;background:#f7f9fc;color:#64748b;border:1px solid var(--line-2)}
.register-body{background:var(--bg)}.register-shell{max-width:1180px;margin:0 auto;padding:34px 22px 60px}.back-link{display:inline-block;margin-bottom:16px;color:var(--blue);font-weight:800}.register-card{background:white;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}
.register-card h1,.section-heading h1{font-size:30px;letter-spacing:-.045em;margin:0 0 6px}.section-heading>div>p:last-child,.section-heading>p{margin:0;color:var(--muted)}
.role-selector{border:0;padding:0;margin:28px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.role-selector legend{font-size:13px;font-weight:900;margin-bottom:10px}.role-selector label{position:relative}.role-selector input{position:absolute;opacity:0}.role-selector span{height:100%;display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer}.role-selector span strong{font-size:15px}.role-selector span small{color:var(--muted)}.role-selector input:checked+span{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 3px rgba(47,107,216,.1)}
.role-fields{margin:24px 0;padding:22px;background:#f8fafc;border:1px solid var(--line-2);border-radius:16px}.role-fields h3{margin:0 0 16px}

/* Main application */
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#071a34 0%,#0b2444 100%);color:#dce7f6;padding:22px 16px;display:flex;flex-direction:column;z-index:50;overflow-y:auto}
.brand{display:flex;align-items:center;gap:11px;padding:0 7px 20px}.brand strong{display:block;color:#fff;font-size:17px}.brand small{display:block;color:#9db2cd;font-size:10px;margin-top:2px}.brand .brand-mark{width:40px;height:40px;border-radius:12px}
.role-chip{margin:0 7px 18px;padding:8px 11px;border-radius:10px;background:rgba(80,139,235,.17);border:1px solid rgba(133,174,238,.2);color:#cfe1ff;font-size:12px;font-weight:900;text-align:center}
.side-nav{display:grid;gap:5px}.side-nav-section{margin:15px 10px 4px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);color:#7790b2;font-size:10px;font-weight:900;letter-spacing:.12em}.side-nav-section:first-child{margin-top:2px;padding-top:0;border-top:0}.side-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:#b9c8dc;font-size:13px;font-weight:750}.side-nav a span{width:20px;text-align:center;color:#8fb3ee}.side-nav a:hover{background:rgba(255,255,255,.06);color:#fff}.side-nav a.active{background:linear-gradient(90deg,rgba(58,113,211,.36),rgba(58,113,211,.12));color:#fff;box-shadow:inset 3px 0 0 #70a1ff}
.sidebar-foot{margin-top:auto;padding:18px 8px 0;border-top:1px solid rgba(255,255,255,.1);display:grid;gap:12px}.sidebar-foot small{color:#8297b3;font-size:10px;line-height:1.6}.sidebar-foot a{color:#fff;font-size:12px;font-weight:900}
.main-area{min-width:0}.topbar{height:72px;position:sticky;top:0;z-index:40;background:rgba(255,255,255,.93);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 28px}.menu-toggle{display:none;background:#fff;border:1px solid var(--line);width:40px;height:40px}.topbar-title{display:flex;align-items:center;gap:12px;min-width:260px;white-space:nowrap}.topbar-title strong{font-size:21px;line-height:1.2;letter-spacing:-.35px}.topbar-date-team{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border:1px solid #cfe0f5;border-radius:10px;background:#f5f9ff;color:#173f73;font-size:14px;font-weight:850;line-height:1}.global-search{margin-left:auto;display:flex;gap:7px;max-width:420px;flex:1}.global-search input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px 12px;outline:none}.global-search button{padding:9px 14px;background:var(--navy-2);color:#fff}.profile-box{margin-left:auto;display:flex;align-items:center;gap:9px}.global-search+.profile-box{margin-left:0}.avatar{width:38px;height:38px;border-radius:12px;background:var(--blue-soft);color:var(--blue);font-weight:950;display:inline-flex;align-items:center;justify-content:center}.profile-box span:last-child{display:flex;flex-direction:column}.profile-box strong{font-size:13px}.profile-box small{font-size:10px;color:var(--muted)}
.content-wrap{padding:28px;max-width:1680px;margin:0 auto}
.section-heading{margin-bottom:20px}.split-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.heading-actions,.hero-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.section-heading h1 small{font-size:13px;color:var(--muted);font-weight:700;margin-left:8px;letter-spacing:0}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(15,23,42,.025);padding:22px;margin-bottom:20px}.compact-panel{padding:19px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.panel-head h2{margin:0;font-size:18px;letter-spacing:-.03em}.panel-head>a{color:var(--blue);font-size:12px;font-weight:900}.count-label{font-size:12px;color:var(--muted);font-weight:800}.empty-panel{text-align:center;padding:50px 26px}.empty-panel h2{margin:0 0 8px}.empty-panel p{color:var(--muted);margin:0 0 20px}.empty-state,.empty-cell{color:var(--muted);text-align:center;padding:28px!important}
.hero-panel{border-radius:22px;padding:30px 32px;margin-bottom:20px;background:linear-gradient(120deg,#0b2b56 0%,#174b91 65%,#2f6bd8 100%);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:22px;box-shadow:var(--shadow)}.hero-panel h1{font-size:28px;margin:0 0 8px;letter-spacing:-.045em}.hero-panel p:last-child{margin:0;color:#dbe8fb}.hero-panel .eyebrow{color:#aecdff}.hero-panel .secondary-btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;display:grid;gap:2px}.stat-card span{color:var(--muted);font-size:12px;font-weight:800}.stat-card strong{font-size:30px;letter-spacing:-.04em;color:var(--navy-2)}.stat-card small{color:#94a3b8;font-size:10px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);gap:20px}.calendar-panel,.upcoming-panel{margin-bottom:0}.calendar-controls{display:flex;align-items:center;gap:10px}.calendar-controls button{width:32px;height:32px;background:#f1f5f9;color:var(--navy-2)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{text-align:center;padding:8px;color:var(--muted);font-size:11px;font-weight:900}.calendar-grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-day{min-height:108px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;background:#fff;overflow:hidden}.calendar-day.outside{background:#f8fafc;color:#a8b3c2}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--blue)}.calendar-day{cursor:pointer}.calendar-day.selected{box-shadow:inset 0 0 0 3px #0f5ec7;background:#f4f8ff}.calendar-day.today.selected{box-shadow:inset 0 0 0 3px #0f5ec7}.selected-schedule-date{margin:-2px 0 12px;color:var(--navy-2);font-size:12px;font-weight:900}.upcoming-date.schedule-time{width:58px;font-size:12px}.upcoming-date.schedule-time small{font-size:8px}.calendar-day-number{font-size:11px;font-weight:900;margin-bottom:5px}.calendar-event{display:block;width:100%;padding:4px 6px;margin:3px 0;border:0;border-radius:6px;background:#eaf2ff;color:#184b98;font-size:10px;font-weight:800;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.status-completed{background:#eef2f7;color:#64748b}.upcoming-list{display:grid;gap:9px}.upcoming-item{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line-2);border-radius:12px}.upcoming-date{width:48px;height:48px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:950}.upcoming-date small{font-size:9px}.upcoming-item>span:last-child{display:flex;flex-direction:column;min-width:0}.upcoming-item strong{font-size:13px}.upcoming-item small{color:var(--muted);font-size:10px}

/* Forms */
.form-grid{display:grid;gap:15px}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid .full{grid-column:1/-1}.form-grid .span-2{grid-column:span 2}.form-grid textarea{resize:vertical;min-height:46px}.form-grid label small{color:var(--muted);font-weight:500}.compact-fields{gap:12px}.plain-fieldset{border:0;padding:0;margin:0;min-width:0}.plain-fieldset:disabled{opacity:.86}.plain-fieldset:disabled input,.plain-fieldset:disabled select,.plain-fieldset:disabled textarea{background:#f8fafc;color:#475569}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.form-status{min-height:20px;margin-top:9px;font-size:12px;font-weight:800}.form-status.ok{color:var(--success)}.form-status.error{color:var(--danger)}
.notice-box{background:var(--blue-soft);border:1px solid #c8ddff;color:#294a79;margin:16px 0}.alert-box{display:flex;gap:12px;align-items:flex-start;margin-bottom:20px}.urgent-alert{background:var(--danger-soft);border:1px solid #fecdd3;color:#9f1239}.urgent-alert strong{white-space:nowrap}.urgent-alert span{color:#7f1d1d}
.flash{padding:12px 15px;border-radius:11px;margin-bottom:16px;font-size:13px;font-weight:800}.flash-success{background:var(--success-soft);color:var(--success);border:1px solid #bbf7d0}.flash-error{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca}.flash-warning{background:var(--warning-soft);color:var(--warning);border:1px solid #fed7aa}
.client-search-form{display:grid;grid-template-columns:2fr 1.2fr 1fr auto;gap:12px;align-items:end}.search-panel{padding:17px}.client-search-form button{height:43px}.search-field{position:relative}
.inline-filter{display:flex;align-items:end;gap:10px}.inline-filter label{min-width:240px}.selector-panel{padding:15px 18px}.wide-select{max-width:620px;margin:auto}.wide-select select{height:46px}
.file-field input{padding:9px;background:#f8fafc}
.check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:18px 0}.check-grid label{display:flex;align-items:center;gap:8px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px;font-weight:800}.check-grid input{accent-color:var(--blue)}.review-block{margin-top:22px;padding:20px;border-radius:14px;background:#f8fafc;border:1px solid var(--line)}.review-block h3{margin:0 0 14px}
.sticky-form-actions{position:sticky;bottom:0;z-index:20;margin:24px -28px -28px;padding:13px 28px;background:rgba(243,246,251,.96);border-top:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;gap:9px}.sticky-form-actions .form-status{margin-right:auto}

/* Tables and records */
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:880px}.data-table th,.data-table td{padding:12px 13px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:middle;font-size:12px}.data-table th{background:#f7f9fc;color:#526077;font-size:10px;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap}.data-table tbody tr:hover{background:#fbfdff}.data-table td strong{display:block;font-size:12px}.data-table td small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.action-cell{white-space:nowrap}.table-btn{background:#fff;color:var(--blue-2);border:1px solid #cbdaf3;padding:6px 8px;font-size:10px;margin:1px}.table-btn:hover{background:var(--blue-soft)}.table-btn.danger{color:var(--danger);border-color:#fecaca;background:#fff}.table-select{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:11px;background:#fff}.truncate-cell{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-remove{border:1px solid #fecaca;background:#fff;color:var(--danger);padding:6px 8px;border-radius:8px;font-size:10px}.permission-badge,.status-badge,.risk-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;white-space:nowrap}.permission-edit{background:var(--blue-soft);color:var(--blue-2)}.permission-view{background:#f1f5f9;color:#64748b}.status-requested,.status-pending,.status-submitted,.status-assigned,.status-requested{background:#fff7ed;color:#b45309}.status-active,.status-confirmed,.status-completed,.status-reviewed,.status-available{background:var(--success-soft);color:var(--success)}.status-suspended,.status-withdrawn,.status-cancelled,.status-rejected,.status-unavailable{background:var(--danger-soft);color:var(--danger)}.status-draft{background:#f1f5f9;color:#64748b}.status-requested{background:#fef3c7;color:#92400e}.risk-none,.risk-low{background:var(--success-soft);color:var(--success)}.risk-watch,.risk-medium,.risk-unreviewed{background:var(--warning-soft);color:var(--warning)}.risk-high{background:#fff1f2;color:#be123c}.risk-urgent{background:#dc2626;color:#fff}
.record-tabs{display:flex;gap:5px;overflow-x:auto;margin-bottom:18px;padding:6px;background:#eaf0f8;border-radius:13px}.record-tabs a{padding:8px 13px;border-radius:9px;color:#526077;font-size:12px;font-weight:850;white-space:nowrap}.record-tabs a.active{background:#fff;color:var(--blue-2);box-shadow:0 2px 8px rgba(15,39,73,.08)}
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}.profile-side{display:grid;align-content:start;gap:0}.assignment-name{font-size:19px;font-weight:950;margin:10px 0 16px}.summary-list{margin:0}.summary-list div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--line-2)}.summary-list dt{color:var(--muted);font-size:11px}.summary-list dd{margin:0;font-size:11px;font-weight:800;text-align:right}
.session-list{display:grid;gap:13px}.session-card{border:1px solid var(--line);border-radius:14px;padding:17px}.session-card-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:12px}.session-card-head>div{display:flex;flex-direction:column}.session-card-head span,.session-card-head time{font-size:10px;color:var(--muted)}.session-card dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.session-card dl div{padding:12px;background:#f8fafc;border-radius:10px}.session-card dt{font-size:10px;color:var(--muted);font-weight:900;margin-bottom:5px}.session-card dd{margin:0;font-size:12px}
.test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.test-card{border:1px solid var(--line);border-radius:15px;padding:17px}.test-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.test-card-head>div{display:flex;gap:10px}.test-icon{width:38px;height:38px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:inline-flex;align-items:center;justify-content:center;font-size:20px}.test-card-head strong{display:block}.test-card-head small{display:block;color:var(--muted);font-size:10px}.test-card dl{margin:15px 0 0;display:grid;gap:10px}.test-card dl div{padding:11px;background:#f8fafc;border-radius:10px}.test-card dt{font-size:10px;color:var(--muted);font-weight:900}.test-card dd{margin:4px 0 0;font-size:12px}.test-card footer{margin-top:12px;color:var(--muted);font-size:10px}

/* Intake form reused/refined from uploaded UI */
.intake-form{padding-bottom:4px}.intake-basic-card{padding:0;overflow:hidden}.basic-table{width:100%;border-collapse:collapse}.basic-table th,.basic-table td{border-bottom:1px solid var(--line)}.basic-table th{width:96px;padding:12px 13px;background:#f6f9fd;color:var(--navy);text-align:left;font-size:12px;white-space:nowrap}.basic-table td{padding:0}.basic-table input,.basic-table select{width:100%;height:44px;border:0;outline:none;padding:0 13px;background:#fff;color:#334155;font-weight:700;font-size:12px}.intake-section{margin-top:22px}.family-table,.question-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:900px}.family-table th,.question-table th{background:#f6f9fd;color:var(--navy);font-size:11px;font-weight:900;text-align:center;padding:11px;border-bottom:1px solid var(--line)}.family-table td,.question-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0}.family-table input{width:100%;height:42px;border:0;outline:none;padding:0 9px;background:#fff;font-size:12px;text-align:center}.family-table th:nth-child(7){width:30%}.family-table th:last-child{width:55px}.referral-area label{display:grid;gap:8px;font-weight:900;font-size:13px}.referral-area textarea,.question-table textarea{width:100%;border:0;outline:none;padding:12px 14px;background:#fff;resize:vertical;font-size:12px}.referral-area textarea{border:1px solid var(--line);border-radius:10px}.intake-category-title{margin:0 0 8px;padding:11px 14px;border:1px solid var(--line);border-radius:11px;background:var(--blue-soft);color:var(--navy);font-size:14px}.question-table .no-col{width:58px}.question-table .question-col{width:37%}.question-table .question-cell{text-align:center;font-weight:850;color:var(--navy);background:#f8fafc;padding:11px}.question-table .question-text{line-height:1.55}

/* Dialogs and toasts */
.app-dialog{border:0;padding:0;background:transparent;width:min(760px,calc(100vw - 28px));max-height:90vh}.app-dialog::backdrop{background:rgba(7,26,52,.58);backdrop-filter:blur(2px)}.dialog-card{background:#fff;border-radius:20px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.24);max-height:90vh;overflow:auto}.dialog-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:20px}.dialog-head h2{margin:0}.icon-btn{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:20px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.toast-region{position:fixed;right:20px;bottom:20px;z-index:1000;display:grid;gap:9px}.toast{min-width:260px;max-width:420px;padding:13px 15px;border-radius:12px;background:#0f2742;color:#fff;box-shadow:var(--shadow);font-size:12px;font-weight:800;animation:toastIn .2s ease}.toast.error{background:#991b1b}.toast.success{background:#166534}@keyframes toastIn{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}

@media(max-width:1180px){
  .app-shell{grid-template-columns:220px minmax(0,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.upcoming-panel{margin-bottom:20px}.profile-layout{grid-template-columns:1fr}.profile-side{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.role-selector{grid-template-columns:repeat(2,1fr)}.check-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:860px){
  .auth-layout{grid-template-columns:1fr}.auth-visual{min-height:340px;padding:34px}.auth-visual h1{font-size:40px}.auth-card-wrap{padding:18px}.auth-card{padding:28px}.app-shell{display:block}.sidebar{position:fixed;left:-280px;width:260px;transition:left .2s}.sidebar.open{left:0;box-shadow:20px 0 50px rgba(0,0,0,.25)}.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.topbar{padding:0 14px}.global-search{display:none}.content-wrap{padding:18px}.split-heading,.hero-panel{align-items:flex-start;flex-direction:column}.hero-panel{padding:24px}.form-grid.three-col{grid-template-columns:repeat(2,minmax(0,1fr))}.check-grid{grid-template-columns:repeat(2,1fr)}.test-grid{grid-template-columns:1fr}.client-search-form{grid-template-columns:1fr 1fr}.client-search-form .search-field{grid-column:1/-1}.client-search-form button{width:100%}.calendar-day{min-height:88px}.calendar-event{font-size:0;height:6px;padding:0}.profile-side{grid-template-columns:1fr}.sticky-form-actions{margin:20px -18px -18px;padding:12px 18px}
}
@media(max-width:620px){
  .register-shell{padding:18px 10px 40px}.register-card{padding:20px;border-radius:18px}.role-selector{grid-template-columns:1fr}.form-grid.two-col,.form-grid.three-col{grid-template-columns:1fr}.form-grid .span-2{grid-column:1}.stat-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:14px}.stat-card strong{font-size:25px}.topbar-date-team{font-size:12px;padding:6px 8px}.profile-box span:last-child{display:none}.panel{padding:16px;border-radius:15px}.calendar-panel{padding:12px}.calendar-day{min-height:62px;padding:4px}.calendar-day-number{font-size:9px}.calendar-weekdays span{padding:5px;font-size:9px}.check-grid{grid-template-columns:1fr}.session-card dl{grid-template-columns:1fr}.basic-table,.basic-table tbody,.basic-table tr,.basic-table th,.basic-table td{display:block;width:100%}.basic-table tr{border-bottom:1px solid var(--line)}.basic-table th{border:0;padding:10px 12px 3px}.basic-table td{border:0;padding:0 10px 9px}.basic-table input,.basic-table select{border:1px solid var(--line);border-radius:9px}.question-table,.question-table tbody,.question-table tr,.question-table td{display:block;min-width:0;width:100%}.question-table thead{display:none}.question-table tr{border-bottom:1px solid var(--line)}.question-table td{border:0}.question-table .question-cell{width:100%;text-align:left;padding:9px 12px}.question-table .question-cell:first-child{display:none}.question-table textarea{border:1px solid var(--line);border-radius:9px;margin:0 10px 10px;width:calc(100% - 20px);min-height:100px}.family-table{min-width:760px}.sticky-form-actions{flex-wrap:wrap}.sticky-form-actions .form-status{width:100%;order:-1}.urgent-alert{flex-direction:column}.role-fields{padding:16px}
}

/* Registration specialty controls */
.subsection-title{margin-top:24px!important}.subsection-title small{font-size:13px;color:var(--muted);font-weight:700;margin-left:6px}
.specialty-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}
.check-item{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line-2);border-radius:11px;background:#fff;font-weight:750;cursor:pointer}
.check-item input{width:auto;min-height:auto;margin:0}
@media(max-width:760px){.specialty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.specialty-grid{grid-template-columns:1fr}}

.intake-share-panel{display:grid;grid-template-columns:1fr auto;gap:14px 20px;align-items:center;padding:18px 20px;margin-bottom:16px}.intake-share-panel h2{margin:2px 0 6px;font-size:18px}.intake-share-panel p{margin:0;color:#64748b;font-size:12px}.intake-share-actions{display:flex;gap:8px;align-items:center}.intake-share-panel .form-status{grid-column:1/-1}.form-status.success{color:#15803d}.form-status.error{color:#dc2626}@media(max-width:760px){.intake-share-panel{grid-template-columns:1fr}.intake-share-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.intake-share-panel .primary-btn,.intake-share-panel .secondary-btn{width:100%}}

/* Counseling log — structured clinical record */
.counseling-log-panel{padding:18px 20px}.counseling-log-titlebar{display:grid;grid-template-columns:auto auto 1fr;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}.counseling-log-titlebar h2{margin:0;font-size:19px}.counseling-log-titlebar p{margin:2px 0 0;color:var(--muted);font-size:11px}.log-step{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#17375e;color:#fff;font-size:11px;font-weight:900}.client-mini-summary{justify-self:end;display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:8px;width:min(620px,100%);padding:9px 14px;border-radius:11px;background:#e8eef7;font-size:11px}.client-mini-summary span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.counseling-log-form{display:grid;gap:12px;margin-top:14px}.log-inline-grid{display:grid;gap:10px}.log-meta-grid{grid-template-columns:1.2fr .65fr .9fr .9fr .8fr}.log-inline-grid label,.log-block>label{display:grid;gap:6px;font-size:11px;font-weight:900}.log-block{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.log-block h3{margin:0 0 9px;font-size:12px;color:#0f2742}.compact-choice-block{display:grid;grid-template-columns:115px 1fr;align-items:start}.compact-choice-block h3{margin:8px 0 0}.choice-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.check-pill{position:relative}.check-pill input{position:absolute;opacity:0;pointer-events:none}.check-pill span{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border:1px solid #d5dfeb;border-radius:8px;background:#fff;color:#334155;font-size:10px;font-weight:800;cursor:pointer}.check-pill input:checked+span{border-color:#2f6fd7;background:#eaf2ff;color:#174fa7}.inline-other{flex:1;min-width:160px;max-width:300px}.complaint-matrix{border:1px solid #aeb9c8}.complaint-group{display:grid;grid-template-columns:92px 1fr;border-bottom:1px solid #aeb9c8}.complaint-group:last-child{border-bottom:0}.complaint-group>strong{display:grid;place-items:center;padding:10px;background:#f5f7fa;border-right:1px solid #aeb9c8;font-size:11px}.complaint-group>div+div{border-top:1px solid #aeb9c8}.complaint-row{display:grid;grid-template-columns:170px repeat(5,minmax(110px,1fr));align-items:center;min-height:36px}.complaint-row>b{align-self:stretch;display:flex;align-items:center;justify-content:center;padding:7px;border-right:1px solid #aeb9c8;background:#fbfcfe;font-size:10px;text-align:center}.complaint-row label{padding:7px;font-size:9px;white-space:nowrap}.complaint-row>input{margin:5px 8px;grid-column:2/-1}.log-three-blocks{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:10px}.log-three-blocks .log-block{display:block}.log-three-blocks .log-block h3{margin:0 0 8px}.optional-clinical-details{border:1px solid var(--line);border-radius:12px;padding:11px 13px}.optional-clinical-details summary{cursor:pointer;font-weight:900;font-size:12px}.optional-clinical-details[open] summary{margin-bottom:12px}.counseling-history-panel{padding:18px}.table-wrap{overflow:auto}.session-history-table{min-width:1450px;border-collapse:collapse}.session-history-table th{background:#4778c6;color:#fff;padding:9px 7px;border:1px solid #fff;font-size:10px;line-height:1.2;text-align:center}.session-history-table td{padding:9px 7px;border:1px solid #fff;background:#e2e8f4;font-size:10px;vertical-align:top;max-width:180px;white-space:normal;word-break:keep-all}.session-history-table tr:nth-child(even) td{background:#d5deef}.session-history-table td small{display:block;color:#64748b;margin-top:3px}.session-history-table .content-cell{min-width:240px}.session-status{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-weight:900}.status-종결{background:#f1f5f9;color:#475569}.status-예약{background:#fff7ed;color:#c2410c}.status-취소{background:#fef2f2;color:#b91c1c}
@media(max-width:1100px){.client-mini-summary{grid-template-columns:1fr}.log-meta-grid{grid-template-columns:repeat(2,1fr)}.compact-choice-block{grid-template-columns:1fr}.compact-choice-block h3{margin:0 0 8px}.log-three-blocks{grid-template-columns:1fr}.complaint-row{grid-template-columns:150px repeat(2,minmax(130px,1fr))}.complaint-row label{white-space:normal}}
@media(max-width:700px){.counseling-log-panel{padding:13px}.counseling-log-titlebar{grid-template-columns:auto 1fr}.client-mini-summary{grid-column:1/-1;justify-self:stretch}.log-meta-grid{grid-template-columns:1fr}.complaint-group{grid-template-columns:1fr}.complaint-group>strong{border-right:0;border-bottom:1px solid #aeb9c8}.complaint-row{grid-template-columns:1fr}.complaint-row>b{border-right:0;border-bottom:1px solid #e2e8f0;justify-content:flex-start}.complaint-row>input{grid-column:auto}.check-pill span{font-size:11px}.session-history-table{min-width:1200px}}

/* 2026-07-19 상담일지 UI 개선 */
.counseling-log-panel{
  padding:26px;
  border-radius:22px;
  background:#f7faff;
  border:1px solid #dbe5f2;
  box-shadow:0 14px 36px rgba(15,39,66,.07);
}
.counseling-log-titlebar{
  display:grid;
  grid-template-columns:auto minmax(220px,auto) 1fr;
  gap:16px;
  align-items:center;
  padding:0 0 20px;
  border-bottom:1px solid #dbe5f2;
}
.counseling-log-titlebar h2{margin:0;font-size:27px;letter-spacing:-.045em;color:#0b1f3a}
.counseling-log-titlebar p{margin:5px 0 0;color:#64748b;font-size:13px;font-weight:700}
.log-step{
  width:42px;height:42px;border-radius:14px;
  background:linear-gradient(145deg,#12345b,#2563a8);
  box-shadow:0 8px 18px rgba(31,78,134,.24);
  font-size:13px;
}
.client-mini-summary{
  justify-self:end;
  display:grid;
  grid-template-columns:repeat(3,minmax(130px,1fr));
  gap:0;
  width:min(680px,100%);
  padding:0;
  border:1px solid #d8e3f1;
  border-radius:14px;
  background:#eef4fb;
  overflow:hidden;
}
.client-mini-summary span{padding:12px 14px;border-right:1px solid #d8e3f1;font-size:12px;color:#475569}
.client-mini-summary span:last-child{border-right:0}
.client-mini-summary b{color:#0f2742}
.counseling-log-form{display:grid;gap:16px;margin-top:20px}
.log-inline-grid{display:grid;gap:12px}
.log-meta-grid{
  grid-template-columns:1.2fr .7fr 1fr 1fr .85fr;
  padding:16px;
  background:#fff;
  border:1px solid #dbe5f2;
  border-radius:16px;
  box-shadow:0 5px 18px rgba(23,55,94,.045);
}
.log-inline-grid label,.log-block>label{display:grid;gap:8px;font-size:12px;font-weight:900;color:#243b5a}
.log-inline-grid input,.log-inline-grid select,
.log-block input[type="text"],.log-block input:not([type]),.log-block select,.log-block textarea,
.optional-clinical-details textarea{
  border:1px solid #cfdbeb;
  border-radius:11px;
  background:#fff;
  min-height:43px;
  padding:10px 12px;
  color:#142b48;
  transition:.18s ease;
}
.log-inline-grid input:focus,.log-inline-grid select:focus,.log-block input:focus,.log-block select:focus,.log-block textarea:focus,.optional-clinical-details textarea:focus{
  outline:none;border-color:#2f6fd7;box-shadow:0 0 0 3px rgba(47,111,215,.12)
}
.log-block{
  border:1px solid #dbe5f2;
  border-radius:16px;
  background:#fff;
  padding:18px;
  box-shadow:0 5px 18px rgba(23,55,94,.04);
}
.log-block h3{
  margin:0 0 14px;
  font-size:15px;
  color:#0f2742;
  letter-spacing:-.02em;
  display:flex;
  align-items:center;
  gap:9px;
}
.log-block h3:before{content:"";width:5px;height:18px;border-radius:999px;background:#2f6fd7;display:inline-block}
.compact-choice-block{display:block}
.compact-choice-block h3{margin:0 0 14px}
.choice-row{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.check-pill{position:relative}
.check-pill input{position:absolute;opacity:0;pointer-events:none}
.check-pill span{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:38px;padding:8px 14px;
  border:1px solid #d4dfed;border-radius:999px;
  background:#f9fbfe;color:#425673;
  font-size:12px;font-weight:850;cursor:pointer;
  transition:.16s ease;
}
.check-pill span:hover{border-color:#9cb9e4;background:#f1f6fd}
.check-pill input:checked+span{border-color:#2f6fd7;background:#eaf2ff;color:#174fa7;box-shadow:0 4px 10px rgba(47,111,215,.10)}
.inline-other{flex:1;min-width:220px;max-width:440px;min-height:40px}

.complaint-matrix{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  border:0;
}
.complaint-group{
  display:block;
  border:1px solid #dbe5f2 !important;
  border-radius:14px;
  overflow:hidden;
  background:#fbfdff;
}
.complaint-group>strong{
  display:flex;align-items:center;justify-content:flex-start;
  padding:13px 15px;
  background:linear-gradient(135deg,#edf4ff,#f7faff);
  border-right:0;border-bottom:1px solid #dbe5f2;
  font-size:13px;color:#174a86;
}
.complaint-group>div+div{border-top:1px solid #e5edf7}
.complaint-row{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  min-height:auto;padding:12px 14px;
}
.complaint-row>b{
  flex:0 0 100%;align-self:auto;display:block;
  padding:0;border:0;background:transparent;
  font-size:11px;text-align:left;color:#64748b;
}
.complaint-row label{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 10px;border:1px solid #d8e3f0;border-radius:10px;
  background:#fff;font-size:11px;white-space:normal;color:#334155;
}
.complaint-row label:has(input:checked){border-color:#2f6fd7;background:#eaf2ff;color:#174fa7}
.complaint-row input[type="checkbox"]{accent-color:#2f6fd7}
.complaint-row>input{margin:0;grid-column:auto;width:100%;min-height:42px}

.log-three-blocks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.log-three-blocks .log-block{display:block;min-height:100%}
.log-three-blocks .log-block h3{margin:0 0 14px}
.log-block textarea[name="counseling_content"]{min-height:180px;resize:vertical;line-height:1.7}
.optional-clinical-details{
  border:1px dashed #b8c9df;border-radius:16px;padding:14px 16px;background:#fbfdff
}
.optional-clinical-details summary{cursor:pointer;font-weight:900;font-size:13px;color:#23466e}
.optional-clinical-details[open] summary{margin-bottom:14px}
.counseling-log-form .form-actions{display:flex;justify-content:flex-end;margin-top:2px}
.counseling-log-form .primary-btn{min-width:116px;height:44px;border-radius:12px;box-shadow:0 8px 18px rgba(37,99,235,.20)}

.counseling-history-panel{padding:22px;border-radius:20px;box-shadow:0 10px 30px rgba(15,39,66,.06)}
.session-history-table th{background:#315f9e;padding:11px 8px;font-size:10px}
.session-history-table td{padding:11px 8px;background:#edf3fb;font-size:10px;border-color:#fff}
.session-history-table tr:nth-child(even) td{background:#e2ebf7}

@media(max-width:1100px){
  .counseling-log-titlebar{grid-template-columns:auto 1fr}.client-mini-summary{grid-column:1/-1;justify-self:stretch}
  .log-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .complaint-matrix{grid-template-columns:1fr}
  .log-three-blocks{grid-template-columns:1fr}
}
@media(max-width:700px){
  .counseling-log-panel{padding:14px;border-radius:16px}
  .counseling-log-titlebar{grid-template-columns:auto 1fr}
  .counseling-log-titlebar h2{font-size:22px}
  .client-mini-summary{grid-template-columns:1fr}
  .client-mini-summary span{border-right:0;border-bottom:1px solid #d8e3f1}.client-mini-summary span:last-child{border-bottom:0}
  .log-meta-grid{grid-template-columns:1fr;padding:13px}
  .log-block{padding:14px}
  .check-pill span{font-size:11px;padding:7px 11px}
  .inline-other{min-width:100%;max-width:none}
  .complaint-row label{width:100%}
  .session-history-table{min-width:1200px}
}
.client-search-form.client-search-expanded{grid-template-columns:minmax(260px,2.5fr) minmax(150px,1.25fr) minmax(190px,1.55fr) minmax(105px,.8fr) minmax(155px,1.2fr) minmax(92px,.7fr);gap:12px;align-items:end}
.client-counselor-select{min-width:170px;width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 10px;font:inherit;color:#172033}
.client-counselor-select:disabled{background:#f4f7fb;color:#64748b}
@media(max-width:1100px){.client-search-form.client-search-expanded{grid-template-columns:repeat(3,minmax(0,1fr))}.client-search-form.client-search-expanded .search-field{grid-column:1/-1}}
@media(max-width:720px){.client-search-form.client-search-expanded{grid-template-columns:1fr}}

/* 내담자 사례관리군 표시 */
.client-name-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.case-group-badge{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:900;line-height:1;border:1px solid transparent;vertical-align:middle;white-space:nowrap}
.case-group-general{background:#edf7f0;color:#18723b;border-color:#b8dfc5}
.case-group-needs-management{background:#fff7e6;color:#9a5a00;border-color:#f2cf88}
.case-group-high-risk{background:#fff0f1;color:#b4232f;border-color:#efb2b8}

/* 내담자 목록 헤더 필터 */
.client-filter-row th{padding:7px 5px;background:#f8fafc;vertical-align:top}
.client-filter-row input,.client-filter-row select{width:100%;min-width:78px;height:34px;border:1px solid #d9e1ec;border-radius:7px;background:#fff;padding:5px 7px;color:#26354a;font-size:12px;outline:none}
.client-filter-row input:focus,.client-filter-row select:focus{border-color:#7ba5ef;box-shadow:0 0 0 3px rgba(47,107,216,.1)}
.client-filter-row input[type="date"]{min-width:128px;padding-left:5px;padding-right:3px}
.client-filter-row .filter-stack{display:grid;gap:5px;min-width:150px}
.table-filter-reset{width:100%;min-width:56px;height:34px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#475569;font-size:11px;font-weight:800;cursor:pointer}
.table-filter-reset:hover{background:#f1f5f9}
.client-search-actions{display:flex;gap:8px;align-items:end}
.client-search-actions button{min-width:72px}
@media(max-width:900px){.client-filter-row input,.client-filter-row select{min-width:95px}.client-table{min-width:1780px}.client-search-actions{grid-column:1/-1}}


/* 내담자 목록 행 전체 기본정보 링크 */
.client-row-link{cursor:pointer;transition:background-color .15s ease}
.client-row-link:hover td{background:#f5f9ff}
.client-row-link:focus{outline:3px solid rgba(47,107,216,.2);outline-offset:-3px}
.client-row-link .client-counselor-select{cursor:default}

/* 사례관리·주호소·위험수준·위험태그 20/30/20/30 */
.client-risk-layout{display:grid;grid-template-columns:minmax(0,20fr) minmax(0,30fr) minmax(0,20fr) minmax(0,30fr);gap:15px;align-items:start}
.client-risk-layout>label{display:grid;gap:7px;min-width:0;color:#334155;font-size:13px;font-weight:800}
.risk-tag-multiselect{position:relative;min-width:0}
.risk-tag-multiselect summary{display:flex;align-items:center;min-height:43px;width:100%;padding:10px 36px 10px 13px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#172033;cursor:pointer;list-style:none;position:relative;font-weight:500;overflow:hidden}
.risk-tag-multiselect summary::-webkit-details-marker{display:none}
.risk-tag-multiselect summary::after{content:'⌄';position:absolute;right:13px;top:50%;transform:translateY(-52%);font-size:18px;color:#475569}
.risk-tag-multiselect[open] summary{border-color:#7ba5ef;box-shadow:0 0 0 4px rgba(47,107,216,.11)}
.risk-tag-multiselect [data-risk-tag-summary]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.risk-tag-menu{position:absolute;z-index:40;top:calc(100% + 6px);left:0;right:0;max-height:360px;overflow:auto;padding:10px;border:1px solid #cbd8e8;border-radius:12px;background:#fff;box-shadow:0 16px 35px rgba(15,39,66,.18)}
.risk-tag-option{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px!important;padding:8px 9px;border-radius:8px;color:#26354a!important;font-size:13px!important;font-weight:700!important;cursor:pointer}
.risk-tag-option:hover{background:#f1f6fd}
.risk-tag-option input{width:16px!important;height:16px!important;margin:0;flex:0 0 auto;padding:0!important;box-shadow:none!important}
.risk-tag-other-input{margin-top:7px!important}
@media(max-width:1000px){.client-risk-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.client-risk-layout{grid-template-columns:1fr}}


/* 통합 대시보드 핵심 현황 카드 */
.integrated-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.integrated-stat-card{min-width:0;min-height:176px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 19px;text-decoration:none;color:var(--navy-2);display:flex;flex-direction:column;gap:9px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.integrated-stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,45,80,.10);border-color:#9db8d8}

.integrated-case-card:hover{transform:none;box-shadow:none;border-color:var(--line)}
.case-filter-links{gap:7px}
.case-filter-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid transparent;border-radius:9px;color:inherit;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.case-filter-links a:hover,.case-filter-links a:focus-visible{background:#f3f7fc;border-color:#b8cae0;transform:translateX(2px);outline:none}
.case-filter-links a.danger-line:hover,.case-filter-links a.danger-line:focus-visible{background:#fff3f3;border-color:#efb2b2}
.integrated-card-title{font-size:13px;font-weight:900;color:#385d87}
.integrated-main-number{font-size:34px;line-height:1;font-weight:950;letter-spacing:-.04em}.integrated-main-number.compact{font-size:27px}.integrated-main-number small{font-size:13px;margin-left:3px;color:#64748b}
.integrated-card-note{margin-top:auto;font-size:11px;color:#94a3b8}
.integrated-list{display:grid;gap:8px;margin-top:2px}.integrated-list span{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf2f7;padding-bottom:6px}.integrated-list em,.recent-dispatch em{font-style:normal;color:#64748b;font-size:12px}.integrated-list b{font-size:16px}.integrated-list .danger-line b{color:#c62828}
.integrated-tag-list{display:flex;gap:6px;flex-wrap:wrap}.integrated-tag-list span{background:#f0f5fb;border:1px solid #dce7f3;border-radius:999px;padding:5px 8px;font-size:11px;color:#405b79}.integrated-tag-list b{margin-left:3px;color:#173f70}
.recent-dispatch{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 8px;padding-bottom:8px;border-bottom:1px solid #e8eef5}.recent-dispatch b{font-size:21px}.recent-dispatch small{grid-column:1/-1;font-size:10px;color:#94a3b8}
.monitor-row{display:grid;grid-template-columns:40px repeat(4,auto);gap:5px;align-items:center;font-size:10px;white-space:nowrap}.monitor-row strong{font-size:11px}.monitor-row span{padding:3px 4px;border-radius:5px;background:#f3f6fa;color:#52677f}.monitor-row .stable{background:#edf9f1;color:#16723b}.monitor-row .watch{background:#fff7e7;color:#9a6700}.monitor-row .high{background:#fff0f1;color:#b4232d}
@media(max-width:1180px){.integrated-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.integrated-stat-grid{grid-template-columns:1fr}.integrated-stat-card{min-height:auto}.monitor-row{grid-template-columns:42px repeat(4,1fr);white-space:normal}}

/* 상담 신청서 사전질문: 1~6번을 2열로 배치하고 NO./질문/작성내용 폭 최적화 */
.intake-question-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;margin-top:22px}
.intake-question-grid .intake-section{margin-top:0;min-width:0}
.intake-question-grid .question-table{width:100%;min-width:0;table-layout:fixed}
.intake-question-grid .question-table .no-col{width:40px}
.intake-question-grid .question-table .question-col{width:calc((100% - 40px) * .30)}
.intake-question-grid .question-table .answer-col{width:calc((100% - 40px) * .70)}
.intake-question-grid .question-table textarea{min-height:52px;height:52px;padding:9px 12px;line-height:1.45;overflow-y:auto}
@media(max-width:1100px){.intake-question-grid{grid-template-columns:1fr}}
@media(max-width:760px){.intake-question-grid{grid-template-columns:1fr;gap:14px}.intake-question-grid .question-table .no-col,.intake-question-grid .question-table .question-col,.intake-question-grid .question-table .answer-col{width:100%}}

/* 상담신청서 사전질문 글자 크기 및 정렬 통일 */
.intake-question-grid .question-table th,
.intake-question-grid .question-table td,
.intake-question-grid .question-table .question-cell,
.intake-question-grid .question-table .question-text,
.intake-question-grid .question-table textarea{
  font-size:12px;
}
.intake-question-grid .question-table .question-text{
  text-align:left;
  font-weight:700;
}
.intake-question-grid .question-table tbody td:first-child{
  font-size:12px;
  font-weight:700;
}

/* 내담자 목록 열 너비 및 최근 상담일 */
.client-table{table-layout:auto}
.client-table th:nth-child(1),.client-table td:nth-child(1){width:92px;min-width:92px;max-width:105px;white-space:nowrap}
.client-table th:nth-child(9),.client-table td:nth-child(9){width:130px;min-width:130px;max-width:145px}
.client-table th:nth-child(10),.client-table td:nth-child(10){width:116px;min-width:116px;max-width:125px;white-space:nowrap;text-align:center}
.client-table .client-counselor-select{min-width:118px;width:100%;padding-left:7px;padding-right:7px}
.client-table .client-last-session{font-variant-numeric:tabular-nums;color:#334155;font-weight:700}
.client-filter-row input[type="month"]{min-width:112px;padding-left:5px;padding-right:3px}
@media(max-width:900px){.client-table{min-width:1850px}}

/* 상담 일정 목록 필터 */
.appointment-table{min-width:1180px}
.appointment-filter-row th{padding:7px 5px;background:#f8fafc;vertical-align:top}
.appointment-filter-row input,.appointment-filter-row select{width:100%;min-width:105px;height:34px;border:1px solid #d9e1ec;border-radius:7px;background:#fff;padding:5px 7px;color:#26354a;font-size:12px;outline:none}
.appointment-filter-row input:focus,.appointment-filter-row select:focus{border-color:#7ba5ef;box-shadow:0 0 0 3px rgba(47,107,216,.1)}
.appointment-filter-row input[type="month"]{min-width:125px;padding-left:5px;padding-right:3px}
.appointment-filter-row .filter-fixed{display:flex;align-items:center;height:34px;padding:0 9px;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc;color:#64748b;font-size:12px;font-weight:700}
.table-filter-submit{width:100%;min-width:58px;height:34px;border:0;border-radius:7px;background:#0f2b50;color:#fff;font-size:12px;font-weight:850;cursor:pointer}
.table-filter-submit:hover{background:#163b6b}

.appointment-datetime-parts{display:grid;grid-template-columns:minmax(145px,1.6fr) minmax(82px,.7fr) minmax(82px,.7fr);gap:8px;margin-top:7px}.appointment-datetime-parts input,.appointment-datetime-parts select{width:100%;min-width:0}@media(max-width:700px){.appointment-datetime-parts{grid-template-columns:1fr 1fr}.appointment-datetime-parts input[type="date"]{grid-column:1/-1}}

/* 상담자 배정·일정 확정: 시작·종료 각각 날짜/시간/분 한 줄 배치 */
#editAppointmentDialog .appointment-time-card{display:block;grid-column:1/-1;padding:13px 14px 14px;border:1px solid var(--line-2);border-radius:14px;background:#fbfdff}
#editAppointmentDialog .appointment-time-title{display:block;margin-bottom:9px;font-size:12px;font-weight:900;color:var(--muted)}
#editAppointmentDialog .appointment-datetime-parts{display:grid;grid-template-columns:minmax(210px,1fr) minmax(90px,120px) minmax(90px,120px);gap:8px;align-items:center;margin-top:0}
#editAppointmentDialog .appointment-datetime-parts input,
#editAppointmentDialog .appointment-datetime-parts select{width:100%;min-width:0;height:42px}
#editAppointmentDialog .appointment-date-input{width:100%;min-width:0;grid-column:auto}
@media(max-width:520px){
  #editAppointmentDialog .appointment-time-card{padding:11px}
  #editAppointmentDialog .appointment-datetime-parts{grid-template-columns:minmax(150px,1fr) minmax(72px,88px) minmax(72px,88px);gap:5px}
  #editAppointmentDialog .appointment-datetime-parts input,
  #editAppointmentDialog .appointment-datetime-parts select{height:40px;padding-left:8px;padding-right:6px;font-size:12px}
}



/* 상담자 배정 일정: 날짜 | 시간 | 분 강제 가로 배열 */
#editAppointmentDialog .appointment-datetime-parts{display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;align-items:center !important;gap:8px !important;width:100% !important;grid-template-columns:none !important}
#editAppointmentDialog .appointment-datetime-parts .appointment-date-input{flex:1 1 auto !important;width:auto !important;min-width:180px !important;grid-column:auto !important}
#editAppointmentDialog .appointment-datetime-parts select{flex:0 0 105px !important;width:105px !important;min-width:0 !important}
@media(max-width:560px){#editAppointmentDialog .appointment-datetime-parts{gap:5px !important}#editAppointmentDialog .appointment-datetime-parts .appointment-date-input{min-width:135px !important}#editAppointmentDialog .appointment-datetime-parts select{flex-basis:76px !important;width:76px !important}}

/* 상담 신청 희망일정 2개: 날짜·시·분 선택 및 관리자 표시 */
.preferred-time-card{display:block;grid-column:1/-1;padding:13px 14px 14px;border:1px solid var(--line-2);border-radius:14px;background:#fbfdff}
.preferred-datetime-parts{display:grid;grid-template-columns:minmax(210px,1fr) minmax(90px,120px) minmax(90px,120px);gap:8px;align-items:center;margin-top:7px}
.preferred-datetime-parts input,.preferred-datetime-parts select{width:100%;min-width:0;height:42px}
.preferred-schedule-list{display:flex;flex-direction:column;gap:4px;min-width:170px;white-space:nowrap}
.preferred-schedule-list span{display:block;font-size:12px;line-height:1.45}
.preferred-schedule-list b{display:inline-block;min-width:42px;color:var(--muted)}
.preferred-schedule-list .confirmed-schedule{padding-top:4px;margin-top:2px;border-top:1px dashed var(--line-2);color:var(--navy)}
.preferred-summary-box{padding:12px 14px;border:1px solid var(--line-2);border-radius:14px;background:#f7faff;display:grid;gap:7px}
.preferred-summary-box div{font-size:13px}.preferred-summary-box b{display:inline-block;min-width:58px;color:var(--muted)}
@media(max-width:700px){.preferred-datetime-parts{grid-template-columns:1fr 1fr}.preferred-datetime-parts input[type=date]{grid-column:1/-1}}

/* Dashboard counseling-applicant scoped appointment list */
.appointment-active-scope{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid #cfe0f3;border-radius:10px;background:#f4f8fd;color:#274766;font-size:13px}
.appointment-active-scope strong{color:#0b3c70}
.appointment-active-scope span{flex:1;min-width:220px}
.appointment-active-scope a{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid #adc8e4;border-radius:8px;background:#fff;color:#174b88;text-decoration:none;font-weight:800}

/* 내담자 목록: 헤더·검색행·데이터 셀 가운데 정렬 */
.client-table th,
.client-table td{
  text-align:center !important;
  vertical-align:middle !important;
}
.client-table .client-filter-row input,
.client-table .client-filter-row select{
  text-align:center !important;
  text-align-last:center !important;
}
.client-table .client-filter-row input::placeholder{
  text-align:center;
}
.client-table td strong,
.client-table td small{
  text-align:center;
}
.client-table .client-counselor-select{
  text-align:center !important;
  text-align-last:center !important;
}

/* 41차: 내담자 목록 표시항목 선택기 */
.client-list-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap}
.client-list-head-actions>.count-label{margin-right:2px}
.client-column-picker{position:relative;display:inline-flex;align-items:center;flex:0 0 auto}
.client-column-picker-button{display:inline-flex!important;visibility:visible!important;align-items:center;justify-content:center;white-space:nowrap}
.client-column-picker-menu{position:absolute;z-index:1200;top:calc(100% + 7px);right:0;width:260px;padding:12px;border:1px solid #cbd9ea;border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(30,64,110,.18)}
.client-column-picker-menu[hidden]{display:none!important}
.client-column-picker-title{margin:0 0 8px;font-size:13px;font-weight:800;color:#163b68}
.client-column-picker-menu>label{display:flex;align-items:center;gap:8px;min-height:31px;padding:3px 5px;border-radius:7px;font-size:13px;color:#263b55;cursor:pointer}
.client-column-picker-menu>label:hover{background:#f3f7fc}
.client-column-picker-menu input[type="checkbox"]{width:15px;height:15px;margin:0;flex:0 0 auto}
.client-column-picker-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:9px;padding-top:9px;border-top:1px solid #e1e9f3}
.client-table [data-client-column].is-client-column-hidden{display:none!important}
@media(max-width:700px){.client-list-head-actions{gap:6px}.client-list-head-actions>.count-label{display:none}.client-column-picker-menu{position:fixed;top:auto;right:12px;left:12px;width:auto}}

/* 43차: 내담자 목록 팀 열 */
.client-table [data-client-column="team"]{min-width:82px;white-space:nowrap}

/* 45차 회원·권한 관리 필터 및 표시항목 */
.user-list-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap}
.user-management-table .user-filter-row th{padding:8px 6px;background:#f5f8fc;border-top:1px solid #d8e3f0;border-bottom:1px solid #cbd9e8}
.user-management-table .user-filter-row input,
.user-management-table .user-filter-row select{width:100%;min-width:82px;height:34px;padding:5px 7px;border:1px solid #c7d5e5;border-radius:7px;background:#fff;font:inherit;color:#24364d}
.user-management-table [hidden]{display:none!important}
@media(max-width:700px){.user-list-head-actions>.count-label{display:none}.user-list-head-actions{gap:6px}}

/* 46차: 회원·권한 관리 소속·부서·팀 분리 열 */
.user-management-table [data-user-column="fire_station"]{min-width:118px;white-space:nowrap}
.user-management-table [data-user-column="department"]{min-width:112px;white-space:nowrap}
.user-management-table [data-user-column="team"]{min-width:82px;white-space:nowrap}

/* 5차 전체 수정 - 상담사 스케줄 월간 달력 */
.schedule-page-heading{margin-bottom:16px}.schedule-control-panel{padding:16px 20px;margin-bottom:16px}.schedule-filter-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.schedule-filter-form label{min-width:190px}.schedule-filter-form .ghost-btn{height:43px;display:inline-flex;align-items:center}.schedule-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.schedule-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:#475569}.schedule-dot{width:10px;height:10px;border-radius:3px;display:inline-block}.counselor-month-panel{padding:18px}.schedule-month-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;text-align:center;margin-bottom:15px}.schedule-month-head h2{font-size:24px;margin:2px 0 3px}.schedule-month-head small{color:var(--muted);font-size:10px}.month-nav{font-size:27px;text-decoration:none}.counselor-calendar{border:1px solid #172033;border-radius:4px;overflow:hidden;background:#fff}.schedule-weekdays,.schedule-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.schedule-weekdays span{padding:10px 6px;border-right:1px solid #172033;background:#e5efdf;text-align:center;font-size:14px;font-weight:900}.schedule-weekdays span:last-child{border-right:0}.schedule-weekdays .sun{background:#d8ebca}.schedule-weekdays .sat{background:#d8ebca}.schedule-day{position:relative;min-height:108px;padding:6px;border-right:1px solid #172033;border-top:1px solid #172033;background:#fff;overflow:hidden}.schedule-day:nth-child(7n){border-right:0}.schedule-day.outside-month{background:#f8fafc}.schedule-day.sunday,.schedule-day.saturday{background:#e2f0d5}.schedule-day.today{box-shadow:inset 0 0 0 3px #2563eb}.schedule-day-number{display:flex;justify-content:space-between;align-items:center;height:18px;font-size:11px;font-weight:900}.schedule-day.sunday .schedule-day-number span{color:#dc2626}.schedule-day.saturday .schedule-day-number span{color:#2563eb}.schedule-day-number b{font-size:8px;color:#2563eb}.schedule-event-list{display:grid;gap:3px;margin-top:4px}.schedule-event{width:100%;border:0;border-radius:3px;padding:4px 5px;display:grid;grid-template-columns:auto 1fr;gap:4px;text-align:left;font-size:9px;font-weight:800;cursor:pointer;overflow:hidden}.schedule-event time{font-weight:950}.schedule-event span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.type-available{background:#fff2c7;color:#6b4f00}.type-visit{background:#dcecf9;color:#164e75}.type-client{background:#fde5d8;color:#8a3b12}.type-group{background:#e8def8;color:#5b21b6}.type-education{background:#dcfce7;color:#166534}.type-supervision{background:#fce7f3;color:#9d174d}.type-personal{background:#e5e7eb;color:#374151}.schedule-dialog-card{width:min(760px,calc(100vw - 28px));max-height:92vh;overflow:auto}.schedule-dialog-intro{padding:10px 12px;margin-bottom:14px;border-radius:10px;background:#eff6ff;color:#1e4f91;font-size:11px}.schedule-time-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.schedule-location-block{padding:13px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.schedule-location-block h3{margin:0 0 10px;font-size:12px}.schedule-location-block>label{display:grid;gap:6px;margin-top:10px;font-size:11px;font-weight:900}.dialog-action-spacer{flex:1}.danger-btn{background:#fff;border:1px solid #dc2626;color:#b91c1c;border-radius:10px;padding:10px 15px;font-weight:900;cursor:pointer}.hidden{display:none!important}
@media(max-width:860px){.counselor-month-panel{padding:10px;overflow-x:auto}.counselor-calendar{min-width:900px}.schedule-control-panel{padding:14px}.schedule-filter-form{display:grid;grid-template-columns:1fr 1fr}.schedule-filter-form label{min-width:0}.schedule-filter-form button,.schedule-filter-form a{width:100%;justify-content:center}.schedule-legend{min-width:700px}.schedule-day{min-height:92px}}

/* 50차: 상담사 스케줄 통합대시보드형 레이아웃 */
.schedule-toolbar-panel{padding:0;margin-bottom:18px;overflow:hidden}.schedule-toolbar-head{margin:0;padding:20px 22px 17px;border-bottom:1px solid var(--line-2);align-items:center}.schedule-toolbar-head h2{font-size:19px}.schedule-toolbar-head p:last-child{margin:4px 0 0;color:var(--muted);font-size:12px}.schedule-toolbar-head .schedule-add-btn{margin-left:auto;min-height:42px}.compact-filter-form{display:grid;grid-template-columns:180px minmax(280px,420px) auto;align-items:end;gap:12px;padding:18px 22px;background:#f8fafc}.compact-filter-form .filter-field{display:grid;gap:7px;min-width:0}.compact-filter-form .filter-field>span{font-size:12px;font-weight:900;color:#334155}.compact-filter-form .counselor-filter{min-width:0}.compact-filter-form input,.compact-filter-form select{width:100%;height:42px;border:1px solid #cfdbeb;border-radius:10px;background:#fff;padding:0 12px;outline:none}.compact-filter-form input:focus,.compact-filter-form select:focus{border-color:#7ba5ef;box-shadow:0 0 0 4px rgba(47,107,216,.10)}.schedule-filter-actions{display:flex;gap:8px;align-items:center}.schedule-filter-actions .primary-btn,.schedule-filter-actions .secondary-btn{height:42px;min-width:72px;padding:0 16px}.schedule-legend-wrap{display:flex;align-items:center;gap:18px;padding:13px 22px;border-top:1px solid var(--line-2);background:#fff}.schedule-legend-wrap>strong{font-size:11px;color:#475569;white-space:nowrap}.schedule-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.schedule-legend span{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;color:#475569}.schedule-add-btn{margin-left:auto}.schedule-workspace{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(310px,.85fr);gap:16px;align-items:start}.schedule-day.selected{box-shadow:inset 0 0 0 3px #0f766e;background:#f0fdfa}.daily-timetable-panel{padding:18px;position:sticky;top:84px;min-height:600px}.daily-timetable-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--line)}.daily-timetable-head h2{font-size:19px;margin:2px 0}.daily-timetable-head>span{font-size:10px;font-weight:900;color:#2563eb;background:#eff6ff;padding:6px 9px;border-radius:999px}.daily-timetable{display:grid;gap:0;margin-top:8px}.timetable-row{display:grid;grid-template-columns:58px 1fr;gap:11px;min-height:56px;border-bottom:1px solid #e8eef5;padding:10px 0}.timetable-time{font-size:11px;font-weight:950;color:#0f172a;padding-top:3px}.timetable-card{border-left:4px solid #94a3b8;border-radius:0 10px 10px 0;background:#f8fafc;padding:9px 10px}.timetable-card.type-available{border-left-color:#eab308}.timetable-card.type-visit{border-left-color:#38bdf8}.timetable-card.type-client{border-left-color:#fb923c}.timetable-card.type-group{border-left-color:#a78bfa}.timetable-card.type-education{border-left-color:#4ade80}.timetable-card.type-supervision{border-left-color:#f472b6}.timetable-card.type-personal{border-left-color:#94a3b8}.type-unavailable{background:#fee2e2;color:#991b1b}.timetable-card.type-unavailable{border-left-color:#ef4444}.timetable-card strong{display:block;font-size:12px;color:#172033;margin-bottom:4px}.timetable-card p{margin:0;font-size:10px;line-height:1.55;color:#64748b}.timetable-empty{padding:72px 12px;text-align:center;color:#94a3b8;font-size:12px}.dashboard-schedule-calendar{margin-top:18px}.dashboard-schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden}.dashboard-schedule-cell{min-height:104px;padding:7px;border-right:1px solid var(--line);border-top:1px solid var(--line);background:#fff}.dashboard-schedule-cell:nth-child(7n){border-right:0}.dashboard-schedule-cell .day-number{font-size:11px;font-weight:900;margin-bottom:5px}.dashboard-schedule-item{display:block;padding:4px 5px;margin-bottom:3px;border-radius:5px;background:#eef5ff;font-size:9px;line-height:1.35;color:#24496f;overflow:hidden}.dashboard-schedule-item b{font-weight:950}.dashboard-schedule-weekdays{display:grid;grid-template-columns:repeat(7,1fr)}.dashboard-schedule-weekdays span{padding:8px;text-align:center;font-size:11px;font-weight:900;background:#f1f5f9;border-right:1px solid var(--line)}.dashboard-schedule-weekdays span:last-child{border-right:0}
@media(max-width:1150px){.schedule-workspace{grid-template-columns:1fr}.daily-timetable-panel{position:static;min-height:0}.schedule-add-btn{margin-left:0}}@media(max-width:760px){.schedule-toolbar-head{align-items:flex-start}.schedule-toolbar-head .schedule-add-btn{margin-left:0}.compact-filter-form{grid-template-columns:1fr;padding:16px}.compact-filter-form .filter-field,.compact-filter-form .counselor-filter{min-width:0}.schedule-filter-actions{display:grid;grid-template-columns:1fr 1fr}.schedule-filter-actions .primary-btn,.schedule-filter-actions .secondary-btn{width:100%}.schedule-legend-wrap{align-items:flex-start;gap:10px;padding:13px 16px}.compact-filter-form .schedule-add-btn{grid-column:1/-1}.dashboard-schedule-calendar{overflow-x:auto}.dashboard-schedule-grid,.dashboard-schedule-weekdays{min-width:900px}}

/* 52차 상담사별 일일 시간표 및 24시간·10분 단위 입력 */
.schedule-time-select-pair{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.schedule-time-selects{display:grid;grid-template-columns:1fr 1fr;gap:8px}.schedule-time-selects select{width:100%}.daily-timetable-panel{min-width:360px}.daily-timetable{overflow:visible}.timetable-multi-wrap{overflow-x:auto;padding-bottom:6px}.timetable-multi-grid{display:grid;grid-template-columns:repeat(var(--counselor-count),minmax(260px,1fr));min-width:max(100%,calc(var(--counselor-count) * 270px));gap:12px;padding-top:10px}.timetable-counselor-column{border:1px solid #dce5f0;border-radius:12px;background:#fff;overflow:hidden}.timetable-counselor-column>header{position:sticky;top:0;z-index:1;padding:11px 12px;background:#f1f5f9;border-bottom:1px solid #dce5f0;font-size:12px;font-weight:950;color:#1e3a5f;text-align:center}.timetable-counselor-events,.timetable-single-list{display:grid;gap:8px;padding:10px}.timetable-card{width:100%;text-align:left;cursor:pointer;border-top:0;border-right:0;border-bottom:0}.timetable-card-time{display:block;margin-bottom:4px;font-size:10px;font-weight:950;color:#475569}.timetable-single-list .timetable-card{min-height:68px}@media(min-width:1400px){.schedule-workspace{grid-template-columns:minmax(0,1.65fr) minmax(520px,1.35fr)}}@media(max-width:760px){.schedule-time-select-pair{grid-template-columns:1fr}.daily-timetable-panel{min-width:0}.timetable-multi-grid{grid-template-columns:repeat(var(--counselor-count),minmax(230px,1fr));min-width:calc(var(--counselor-count) * 240px)}}

/* 53차: 30분 단위 상담사별 일일 시간표 · 반복예약 · 내담자 검색 */
.daily-timetable-panel{min-width:520px}
.timetable-grid-scroll{overflow:auto;max-height:760px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}
.timetable-grid-header{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:72px repeat(var(--counselor-count),minmax(180px,1fr));min-width:calc(72px + var(--counselor-count) * 180px);background:#d7e4ec;border-bottom:1px solid #94a3b8}
.timetable-grid-corner,.timetable-grid-counselor{height:42px;display:flex;align-items:center;justify-content:center;border-right:1px solid #94a3b8;font-size:11px;font-weight:950;color:#172033;text-align:center;padding:0 6px}
.timetable-grid-counselor:last-child{border-right:0}
.timetable-grid-body{display:grid;grid-template-columns:72px repeat(var(--counselor-count),minmax(180px,1fr));min-width:calc(72px + var(--counselor-count) * 180px)}
.timetable-time-axis{background:#f8fafc;border-right:1px solid #cbd5e1}
.timetable-time-axis>div{height:44px;display:flex;align-items:flex-start;justify-content:center;padding-top:7px;border-bottom:1px solid #dbe3ec;font-size:11px;font-weight:950;color:#0f172a}
.timetable-day-column{position:relative;border-right:1px solid #cbd5e1;background:#fff}
.timetable-day-column:last-child{border-right:0}
.timetable-slot{height:44px;border-bottom:1px solid #dbe3ec;cursor:context-menu}
.timetable-slot:hover{background:#eff6ff}
.timetable-event-position{position:absolute;left:3px;right:3px;z-index:3;pointer-events:none}
.timetable-grid-event{pointer-events:auto;width:100%;height:100%;overflow:hidden;border:0;border-radius:4px;padding:4px 6px;text-align:left;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.12)}
.timetable-grid-event b{display:block;font-size:10px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.timetable-grid-event span{display:block;font-size:9px;font-weight:900;line-height:1.2}
.timetable-grid-event small{display:block;font-size:8px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-repeat-date-field{padding:12px;border:1px solid #dbe5f0;border-radius:12px;background:#f8fafc}
.schedule-repeat-date-field label{display:grid;gap:7px;font-size:11px;font-weight:900}
.schedule-repeat-date-field label small{font-weight:700;color:#64748b}
.repeat-date-add-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.repeat-date-add-row .secondary-btn{height:42px;white-space:nowrap}
.repeat-date-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.repeat-date-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #93c5fd;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;cursor:pointer}
.repeat-date-chip span{font-size:13px;line-height:1}
.field-help{margin:8px 0 0;color:#64748b;font-size:10px}
.client-search-field{position:relative}
.client-hidden-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.client-search-results{position:absolute;left:0;right:0;top:66px;z-index:20;max-height:220px;overflow:auto;border:1px solid #cbd5e1;border-radius:10px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.16);padding:5px}
.client-search-results button{display:block;width:100%;border:0;background:#fff;padding:9px 10px;text-align:left;font-size:11px;cursor:pointer;border-radius:7px}
.client-search-results button:hover{background:#eff6ff}
.client-search-results p{margin:0;padding:12px;color:#94a3b8;font-size:11px;text-align:center}
.selected-client-chip{margin-top:7px;padding:8px 10px;border-radius:8px;background:#ecfdf5;color:#047857;font-size:10px;font-weight:900}
@media(max-width:1150px){.daily-timetable-panel{min-width:0}.timetable-grid-header,.timetable-grid-body{grid-template-columns:68px repeat(var(--counselor-count),minmax(170px,1fr));min-width:calc(68px + var(--counselor-count) * 170px)}}

/* 54차: 상담 스케줄 명칭 · 복수날짜 달력 · 접이식 사이드바 · 내담자 일별 일정 */
.sidebar-collapse-btn{position:absolute;top:78px;right:-14px;width:28px;height:42px;border:1px solid #cbd5e1;border-left:0;border-radius:0 9px 9px 0;background:#fff;color:#17365d;font-size:22px;font-weight:900;box-shadow:3px 0 8px rgba(15,23,42,.12);cursor:pointer;z-index:60}
.app-shell,.sidebar{transition:all .22s ease}
body.sidebar-collapsed .app-shell{grid-template-columns:76px minmax(0,1fr)}
body.sidebar-collapsed .sidebar{padding-left:10px;padding-right:10px;overflow:visible}
body.sidebar-collapsed .brand>span:last-child,body.sidebar-collapsed .role-chip,body.sidebar-collapsed .side-nav a:not(.active)>span+*,body.sidebar-collapsed .side-nav-section,body.sidebar-collapsed .sidebar-foot{display:none}
body.sidebar-collapsed .brand{justify-content:center}
body.sidebar-collapsed .side-nav a{justify-content:center;padding-left:0;padding-right:0;font-size:0}
body.sidebar-collapsed .side-nav a span{font-size:17px;margin:0}
body.sidebar-collapsed .side-nav a.active{font-size:0}
.multi-date-open-btn{width:100%;height:42px}
.multi-date-picker{margin-top:9px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;padding:12px;box-shadow:0 10px 25px rgba(15,23,42,.10)}
.multi-date-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;margin-bottom:8px}
.multi-date-head strong{text-align:center;font-size:13px}
.multi-date-head button{height:32px;border:1px solid #dbe5f0;border-radius:8px;background:#f8fafc;font-size:20px;cursor:pointer}
.multi-date-weekdays,.multi-date-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.multi-date-weekdays span{text-align:center;font-size:10px;font-weight:900;color:#64748b;padding:4px 0}
.multi-date-days button,.multi-date-days .outside{height:34px;border:0;border-radius:8px;background:#f8fafc;font-size:11px;font-weight:800;cursor:pointer}
.multi-date-days button:hover{background:#dbeafe}.multi-date-days button.selected{background:#2563eb;color:#fff}.multi-date-days button:nth-child(7n+1){color:#dc2626}.multi-date-days button.selected:nth-child(7n+1){color:#fff}
.multi-date-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.multi-date-actions button{height:36px}
.client-daily-schedule-panel{margin-top:16px;padding:0 0 18px;overflow:hidden}
.client-daily-filter{padding:15px 20px;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);background:#f8fafc}
.client-daily-filter label{display:grid;gap:6px;max-width:520px;font-size:11px;font-weight:900}.client-daily-filter select{height:42px;border:1px solid #cfdbeb;border-radius:10px;background:#fff;padding:0 12px}
.client-daily-list{display:grid;gap:8px;padding:16px 20px}
.client-daily-item{display:grid;grid-template-columns:145px 1fr;gap:14px;align-items:center;width:100%;border:1px solid #dce5f0;border-radius:11px;background:#fff;padding:11px 13px;text-align:left;cursor:pointer}
.client-daily-item:hover{border-color:#93c5fd;background:#f8fbff}.client-daily-item time{display:flex;flex-direction:column;font-size:11px;font-weight:900;color:#1e3a5f}.client-daily-item time b{margin-top:3px;color:#2563eb}.client-daily-item span{display:flex;flex-direction:column;gap:3px}.client-daily-item strong{font-size:12px}.client-daily-item small{font-size:10px;color:#64748b}
@media(max-width:1020px){.sidebar-collapse-btn{display:none}body.sidebar-collapsed .app-shell{display:block}.client-daily-item{grid-template-columns:1fr}}

/* 55차: 내담자 일별 스케줄 자동연동·검색·상세표 */
.client-daily-filter{display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.2fr);gap:14px;align-items:end}
.client-daily-filter label{display:grid;gap:6px;max-width:none;font-size:11px;font-weight:900}
.client-daily-filter input,.client-daily-filter select{width:100%;height:42px;border:1px solid #cfdbeb;border-radius:10px;background:#fff;padding:0 12px}
.client-daily-selected{display:flex;align-items:center;gap:10px;min-height:0;padding:0 20px;background:#fff}
.client-daily-selected:not(:empty){padding-top:13px}
.client-daily-selected strong{font-size:14px;color:#0f172a}.client-daily-selected span{font-size:11px;color:#64748b}
.client-daily-table-wrap{overflow:auto;border:1px solid #dbe5f0;border-radius:12px;background:#fff}
.client-daily-table{width:100%;min-width:980px;border-collapse:collapse;font-size:12px}
.client-daily-table th{position:sticky;top:0;z-index:1;background:#eef4fa;color:#27425e;font-weight:900;text-align:center;padding:11px 10px;border-bottom:1px solid #cbd8e6;white-space:nowrap}
.client-daily-table td{padding:11px 10px;border-bottom:1px solid #e3eaf2;text-align:center;vertical-align:middle}
.client-daily-table tbody tr{cursor:pointer;transition:background .15s ease}
.client-daily-table tbody tr:hover,.client-daily-table tbody tr:focus{background:#f2f7ff;outline:none}
.client-daily-table td:nth-child(7){min-width:250px;text-align:left}
.client-daily-table td b{color:#2563eb;white-space:nowrap}
.client-daily-table td strong{display:block;color:#172033}.client-daily-table td small{display:block;margin-top:3px;color:#64748b}
@media(max-width:760px){.client-daily-filter{grid-template-columns:1fr}.client-daily-selected{align-items:flex-start;flex-direction:column;gap:3px}}

/* 56차: 내담자 일별 스케줄 가독성·직접 예약·인라인 수정 */
.client-daily-schedule-panel{margin-top:18px;border:1px solid #d9e4f0;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(32,58,89,.05);overflow:hidden}
.client-daily-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 18px;border-bottom:1px solid #e4ebf3;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.client-daily-panel-head h2{margin:4px 0 6px;font-size:20px;color:#17243b}.client-daily-panel-head p{margin:0;color:#65758b;line-height:1.6}
.client-daily-help{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.client-daily-help span{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid #d7e3f0;border-radius:999px;background:#f7faff;color:#49627f;font-size:10px;font-weight:800;white-space:nowrap}
.client-daily-filter{padding:16px 24px;background:#f7f9fc;border-top:0;border-bottom:1px solid #e0e8f1}
.client-daily-selected{padding-left:24px;padding-right:24px}.client-daily-selected:not(:empty){padding-top:15px;padding-bottom:2px}.client-daily-selected .client-quick-reserve{margin-left:auto;height:34px;padding:0 12px}
.client-daily-list{padding:14px 24px 22px}.client-daily-table-wrap{border-color:#d6e1ed;box-shadow:0 2px 8px rgba(30,55,85,.03)}
.client-daily-table{min-width:1180px;table-layout:fixed}.client-daily-table th{height:43px;padding:10px 8px;background:#edf3f9;color:#294560;font-size:11px;letter-spacing:.01em}.client-daily-table td{padding:11px 9px;color:#23364d;line-height:1.45}
.client-daily-table th:nth-child(1){width:120px}.client-daily-table th:nth-child(2){width:72px}.client-daily-table th:nth-child(3){width:145px}.client-daily-table th:nth-child(4){width:150px}.client-daily-table th:nth-child(5){width:150px}.client-daily-table th:nth-child(6){width:90px}.client-daily-table th:nth-child(7){width:105px}.client-daily-table th:nth-child(8){width:auto}
.client-daily-table td:nth-child(8){min-width:320px;text-align:left}.client-daily-table tbody tr:last-child td{border-bottom:0}.client-daily-table td[data-inline-date],.client-daily-table td[data-inline-time]{cursor:cell}.client-daily-table td[data-inline-date]:hover,.client-daily-table td[data-inline-time]:hover{background:#eef6ff}
.client-schedule-type{display:inline-flex;align-items:center;justify-content:center;min-width:70px;padding:5px 9px;border-radius:999px;background:#e9f2ff;color:#1554a1;font-size:10px;font-weight:900}
.client-record-content strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-line;font-weight:700;color:#26384f}.client-record-content small{margin-top:5px}
.client-inline-date{width:112px;height:34px;border:1px solid #4c8fe8;border-radius:8px;padding:0 7px;background:#fff;font:inherit}.client-inline-time{display:flex;align-items:center;justify-content:center;gap:5px;min-width:275px}.client-inline-time input{width:92px;height:34px;border:1px solid #4c8fe8;border-radius:8px;padding:0 6px;background:#fff;font:inherit}.client-inline-time button{height:34px;border:0;border-radius:8px;padding:0 10px;background:#2369d8;color:#fff;font-weight:800;cursor:pointer}
@media(max-width:760px){.client-daily-panel-head{flex-direction:column;padding:18px}.client-daily-help{justify-content:flex-start}.client-daily-filter,.client-daily-list{padding-left:14px;padding-right:14px}.client-daily-selected{padding-left:14px;padding-right:14px}.client-daily-selected .client-quick-reserve{margin-left:0}}

/* 58차: 내담자 일별 스케줄 회기·진행상태·장소 */
.client-daily-table th:first-child,.client-daily-table td:first-child{min-width:72px;text-align:center}
.client-session-no{font-weight:800;color:#1d4ed8;white-space:nowrap}
.client-status-select{min-width:82px;height:32px;padding:4px 24px 4px 9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-weight:700;cursor:pointer}
.client-status-select.status-available{color:#1d4ed8;background:#eff6ff}
.client-status-select.status-requested{color:#7c3aed;background:#f5f3ff}
.client-status-select.status-completed{color:#047857;background:#ecfdf5}
.client-status-select.status-confirmed{color:#b91c1c;background:#fef2f2}
.client-location-cell{min-width:120px;white-space:normal;line-height:1.45}
.client-daily-table{min-width:1320px}

/* 63차: 내담자 일별 스케줄 상담사명 열 */
.client-daily-table th:nth-child(9),.client-daily-table td:nth-child(9){min-width:90px;white-space:nowrap}
.client-counselor-name{font-weight:700;color:#24364b}

/* 64차: DAILY SCHEDULE 날짜 연동·30분 시간축 */
.daily-schedule-table-wrap{max-height:720px;overflow:auto}
.daily-schedule-table{min-width:1540px;table-layout:fixed}
.daily-schedule-table thead th{position:sticky;top:0;z-index:4}
.daily-schedule-table th:nth-child(1){width:76px}
.daily-schedule-table th:nth-child(2){width:72px}
.daily-schedule-table th:nth-child(3){width:110px}
.daily-schedule-table th:nth-child(4){width:72px}
.daily-schedule-table th:nth-child(5){width:130px}
.daily-schedule-table th:nth-child(6){width:105px}
.daily-schedule-table th:nth-child(7){width:130px}
.daily-schedule-table th:nth-child(8){width:130px}
.daily-schedule-table th:nth-child(9){width:82px}
.daily-schedule-table th:nth-child(10){width:100px}
.daily-schedule-table th:nth-child(11){width:110px}
.daily-schedule-table th:nth-child(12){width:150px}
.daily-schedule-table th:nth-child(13){width:auto}
.daily-schedule-table .daily-schedule-time{position:sticky;left:0;z-index:2;background:#eef4fa;color:#173b61;font-weight:900;text-align:center;border-right:1px solid #cbd8e6;white-space:nowrap}
.daily-schedule-table thead .daily-schedule-time{z-index:5}
.daily-schedule-table tbody tr{height:44px}
.daily-schedule-table tbody td{height:44px}
.daily-schedule-empty-slot td{background:#fbfcfe;border-bottom:1px solid #e7edf4}
.daily-schedule-empty-slot:hover td{background:#f7faff}
.daily-schedule-table td:last-child{text-align:left;white-space:normal;line-height:1.5}

/* 65차 DAILY SCHEDULE 필터 및 인라인 시간수정 개선 */
.daily-schedule-table thead .daily-schedule-filter-row th{top:38px;z-index:4;padding:5px 4px;background:#f7fafe;border-top:1px solid #d6e1ed}
.daily-schedule-filter-row input,.daily-schedule-filter-row select{width:100%;min-width:0;height:30px;padding:4px 7px;border:1px solid #cbd8e6;border-radius:7px;background:#fff;font-size:12px;color:#263d55;box-sizing:border-box}
.daily-schedule-filter-row input::placeholder{color:#9aa8b6}
.daily-schedule-table td[data-inline-time]{position:relative;overflow:visible}
.daily-schedule-table td[data-inline-time].is-inline-editing{z-index:20;background:#fff}
.client-inline-time-popover{position:absolute;left:50%;top:50%;transform:translate(-50%,-10%);z-index:30;width:286px;padding:12px;border:1px solid #b8c9da;border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(24,52,82,.22);text-align:left}
.client-inline-time-row{display:grid;grid-template-columns:42px 1fr 1fr;gap:6px;align-items:center;margin-bottom:8px}
.client-inline-time-row span{font-size:12px;font-weight:800;color:#38536d}
.client-inline-time-row select{height:34px;padding:4px 7px;border:1px solid #cbd8e6;border-radius:7px;background:#fff;font-size:13px}
.client-inline-time-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:10px}
.client-inline-time-actions button{height:32px;padding:0 12px;font-size:12px}
@media(max-width:760px){.client-inline-time-popover{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(300px,calc(100vw - 28px))}}

/* 67차: 상담 스케줄 상단 압축 및 월간/일별/시간표 레이아웃 재배치 */
.schedule-toolbar-panel{margin-bottom:14px}
.schedule-toolbar-head{padding:14px 16px 12px;min-height:74px}
.schedule-toolbar-head h2{font-size:17px;margin:2px 0}
.schedule-toolbar-head p:last-child{margin-top:2px;font-size:11px}
.schedule-toolbar-head .schedule-add-btn{min-height:38px;height:38px;padding:0 16px}
.schedule-toolbar-controls{display:grid;grid-template-columns:minmax(420px,1fr) minmax(560px,1.15fr);align-items:center;gap:18px;padding:10px 16px;background:#f8fafc;border-top:1px solid var(--line-2)}
.schedule-toolbar-controls .schedule-legend-wrap{padding:9px 10px;border:0;background:#fff;box-shadow:0 4px 14px rgba(31,55,86,.05);min-height:42px}
.schedule-toolbar-controls .compact-filter-form{grid-template-columns:138px minmax(220px,1fr) auto;padding:0;background:transparent;gap:8px}
.schedule-toolbar-controls .compact-filter-form .filter-field{gap:4px}
.schedule-toolbar-controls .compact-filter-form .filter-field>span{font-size:10px}
.schedule-toolbar-controls .compact-filter-form input,.schedule-toolbar-controls .compact-filter-form select{height:36px;border-radius:8px;font-size:12px}
.schedule-toolbar-controls .schedule-filter-actions .primary-btn,.schedule-toolbar-controls .schedule-filter-actions .secondary-btn{height:36px;min-width:58px;padding:0 12px;font-size:12px}
.schedule-toolbar-controls .schedule-legend{gap:10px}
.schedule-toolbar-controls .schedule-legend span{font-size:9px}

.schedule-workspace{grid-template-columns:minmax(340px,.78fr) minmax(520px,1.22fr);gap:16px;align-items:stretch}
.counselor-month-panel,.client-daily-schedule-panel{margin-top:0;min-height:0;height:100%}
.client-daily-schedule-panel{display:flex;flex-direction:column}
.client-daily-schedule-panel .client-daily-list{flex:1;min-height:0}
.daily-timetable-full-panel{margin-top:16px;position:static;min-width:0;min-height:360px;padding:18px}
.daily-timetable-full-panel .daily-timetable{width:100%;overflow:auto}

@media(max-width:1200px){
 .schedule-toolbar-controls{grid-template-columns:1fr}
 .schedule-workspace{grid-template-columns:1fr}
 .counselor-month-panel,.client-daily-schedule-panel{height:auto}
}
@media(max-width:760px){
 .schedule-toolbar-head{padding:13px 14px}
 .schedule-toolbar-controls{padding:10px 12px;gap:10px}
 .schedule-toolbar-controls .compact-filter-form{grid-template-columns:1fr}
 .schedule-toolbar-controls .schedule-legend-wrap{align-items:flex-start}
}

/* 68차: MONTHLY SCHEDULE / DAILY SCHEDULE 4:6 비율 및 동일 높이 */
.schedule-workspace{
 grid-template-columns:minmax(0,2fr) minmax(0,3fr);
 align-items:stretch;
}
.schedule-workspace>.counselor-month-panel,
.schedule-workspace>.client-daily-schedule-panel{
 height:760px;
 min-height:760px;
 max-height:760px;
 box-sizing:border-box;
}
.schedule-workspace>.counselor-month-panel{
 display:flex;
 flex-direction:column;
 overflow:hidden;
}
.schedule-workspace>.counselor-month-panel .counselor-calendar{
 flex:1;
 min-height:0;
 overflow:auto;
}
.schedule-workspace>.client-daily-schedule-panel{
 overflow:hidden;
}
.schedule-workspace>.client-daily-schedule-panel .client-daily-list{
 flex:1;
 min-height:0;
 overflow:auto;
}
@media(max-width:1200px){
 .schedule-workspace{grid-template-columns:1fr}
 .schedule-workspace>.counselor-month-panel,
 .schedule-workspace>.client-daily-schedule-panel{
  height:auto;
  min-height:0;
  max-height:none;
 }
}

/* 69차: 일정 조회 상단 한 줄 압축 배치 */
.schedule-toolbar-inline{
 display:grid;
 grid-template-columns:minmax(190px,.75fr) minmax(430px,1.45fr) minmax(520px,1.7fr) auto;
 align-items:center;
 gap:14px;
 padding:10px 14px;
 min-height:76px;
 overflow:visible;
}
.schedule-toolbar-inline .schedule-toolbar-title{min-width:0}
.schedule-toolbar-inline .schedule-toolbar-title .eyebrow{margin:0 0 3px;font-size:8px;letter-spacing:.12em}
.schedule-toolbar-inline .schedule-toolbar-title h2{margin:0;font-size:15px;line-height:1.25}
.schedule-toolbar-inline .schedule-toolbar-title p:last-child{margin:3px 0 0;font-size:9px;color:var(--muted);white-space:nowrap}
.schedule-toolbar-inline .schedule-legend-wrap{
 padding:0;
 border:0;
 background:transparent;
 box-shadow:none;
 min-height:0;
 gap:10px;
}
.schedule-toolbar-inline .schedule-legend-wrap>strong{font-size:9px}
.schedule-toolbar-inline .schedule-legend{gap:8px 10px;flex-wrap:wrap}
.schedule-toolbar-inline .schedule-legend span{font-size:8px;gap:4px;white-space:nowrap}
.schedule-toolbar-inline .schedule-dot{width:8px;height:8px}
.schedule-toolbar-inline .compact-filter-form{
 display:grid;
 grid-template-columns:105px minmax(210px,1fr) auto;
 align-items:end;
 gap:7px;
 padding:0;
 background:transparent;
}
.schedule-toolbar-inline .compact-filter-form .filter-field{gap:3px}
.schedule-toolbar-inline .compact-filter-form .filter-field>span{font-size:8px}
.schedule-toolbar-inline .compact-filter-form input,
.schedule-toolbar-inline .compact-filter-form select{height:32px;border-radius:7px;font-size:10px;padding:0 9px}
.schedule-toolbar-inline .schedule-filter-actions{gap:5px}
.schedule-toolbar-inline .schedule-filter-actions .primary-btn,
.schedule-toolbar-inline .schedule-filter-actions .secondary-btn{height:32px;min-width:48px;padding:0 9px;font-size:10px;border-radius:7px}
.schedule-toolbar-inline>.schedule-add-btn{height:34px;min-height:34px;padding:0 12px;font-size:10px;white-space:nowrap;margin:0}
@media(max-width:1350px){
 .schedule-toolbar-inline{grid-template-columns:minmax(180px,.8fr) minmax(350px,1.3fr) minmax(440px,1.7fr) auto;gap:10px}
 .schedule-toolbar-inline .schedule-toolbar-title p:last-child{display:none}
}
@media(max-width:1050px){
 .schedule-toolbar-inline{grid-template-columns:1fr auto;padding:12px}
 .schedule-toolbar-inline .schedule-toolbar-title{grid-column:1}
 .schedule-toolbar-inline>.schedule-add-btn{grid-column:2;grid-row:1}
 .schedule-toolbar-inline .schedule-legend-wrap,.schedule-toolbar-inline .compact-filter-form{grid-column:1/-1}
}
@media(max-width:760px){
 .schedule-toolbar-inline{display:grid;grid-template-columns:1fr auto;gap:10px}
 .schedule-toolbar-inline .schedule-legend-wrap{align-items:flex-start}
 .schedule-toolbar-inline .compact-filter-form{grid-template-columns:1fr}
 .schedule-toolbar-inline .schedule-filter-actions{display:grid;grid-template-columns:1fr 1fr}
}


/* 70차: 상담 스케줄 상단 균형 배치 및 글자 확대 */
.schedule-toolbar-inline{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(420px,1.9fr) minmax(520px,2.2fr);
  align-items:center;
  gap:22px;
  padding:16px 20px;
}
.schedule-toolbar-inline .schedule-toolbar-title .eyebrow{font-size:10px;margin-bottom:4px}
.schedule-toolbar-inline .schedule-toolbar-title h2{font-size:19px;line-height:1.3}
.schedule-toolbar-inline .schedule-toolbar-title p:last-child{font-size:11px;margin-top:5px;white-space:normal}
.schedule-toolbar-inline .schedule-legend-wrap{padding:0;border:0;background:transparent;gap:14px;min-width:0}
.schedule-toolbar-inline .schedule-legend-wrap>strong{font-size:11px}
.schedule-toolbar-inline .schedule-legend{gap:9px 12px}
.schedule-toolbar-inline .schedule-legend span{font-size:10px;gap:5px}
.schedule-toolbar-inline .schedule-dot{width:9px;height:9px}
.schedule-toolbar-inline .compact-filter-form{
  padding:0;
  background:transparent;
  grid-template-columns:150px minmax(250px,1fr) auto;
  gap:10px;
  align-items:end;
}
.schedule-toolbar-inline .compact-filter-form .filter-field{gap:5px}
.schedule-toolbar-inline .compact-filter-form .filter-field>span{font-size:10px}
.schedule-toolbar-inline .compact-filter-form input,
.schedule-toolbar-inline .compact-filter-form select{height:38px;font-size:12px;border-radius:8px;padding:0 10px}
.schedule-toolbar-inline .schedule-filter-actions{gap:7px}
.schedule-toolbar-inline .schedule-filter-actions .primary-btn,
.schedule-toolbar-inline .schedule-filter-actions .secondary-btn{height:38px;min-width:60px;padding:0 13px;font-size:12px;border-radius:8px}
@media(max-width:1280px){
  .schedule-toolbar-inline{grid-template-columns:minmax(190px,.9fr) minmax(320px,1.35fr) minmax(430px,1.75fr);gap:14px}
  .schedule-toolbar-inline .schedule-toolbar-title p:last-child{display:none}
}
@media(max-width:980px){
  .schedule-toolbar-inline{grid-template-columns:1fr 1.5fr;padding:14px 16px}
  .schedule-toolbar-inline .schedule-toolbar-title{grid-column:1}
  .schedule-toolbar-inline .schedule-legend-wrap{grid-column:2}
  .schedule-toolbar-inline .compact-filter-form{grid-column:1/-1}
}
@media(max-width:700px){
  .schedule-toolbar-inline{grid-template-columns:1fr;gap:12px}
  .schedule-toolbar-inline .schedule-toolbar-title,
  .schedule-toolbar-inline .schedule-legend-wrap,
  .schedule-toolbar-inline .compact-filter-form{grid-column:1}
  .schedule-toolbar-inline .compact-filter-form{grid-template-columns:1fr}
  .schedule-toolbar-inline .schedule-filter-actions{display:grid;grid-template-columns:1fr 1fr}
}

/* 71차 DAILY SCHEDULE 헤더 압축 및 표시항목 */
.compact-daily-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px!important;min-height:84px;border-bottom:1px solid #e3ebf4}
.compact-daily-head .daily-head-copy{min-width:0}.compact-daily-head .eyebrow{margin-bottom:3px;font-size:10px}.compact-daily-head h2{margin:0 0 4px;font-size:20px;line-height:1.25}.compact-daily-head p{margin:0;font-size:12px;line-height:1.35}
.daily-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.compact-action-btn{min-height:36px;padding:0 14px;font-size:12px;white-space:nowrap}
.display-columns-wrap{position:relative}.display-columns-popover{position:absolute;z-index:80;top:calc(100% + 8px);right:0;width:310px;padding:14px;border:1px solid #d5e1ee;border-radius:12px;background:#fff;box-shadow:0 14px 32px rgba(30,60,100,.16)}
.display-columns-popover>strong{display:block;margin-bottom:10px;font-size:13px}.display-columns-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}.display-columns-grid label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:#334b66}.display-columns-grid input{width:15px;height:15px}.display-columns-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:12px}.display-columns-actions .secondary-btn{min-height:30px;padding:0 10px;font-size:11px}
@media(max-width:760px){.compact-daily-head{align-items:flex-start;flex-direction:column;padding:14px!important}.daily-head-actions{width:100%;justify-content:flex-end}.display-columns-popover{right:auto;left:0;width:min(310px,calc(100vw - 34px))}}

/* 73차: 시간표 팝업 및 내담자 일별 스케줄 */
.daily-timetable-launch-panel{cursor:pointer;padding:18px 22px;transition:.18s ease;border:1px solid #d8e3f3}.daily-timetable-launch-panel:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(42,91,160,.12);border-color:#9dbbe8}.daily-timetable-launch-panel .daily-timetable-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.daily-timetable-launch-panel p{margin:4px 0 0;color:#6d7c91}.timetable-dialog{width:min(96vw,1500px);max-width:none}.timetable-dialog-card{width:100%;max-height:92vh;overflow:hidden}.timetable-dialog-card .daily-timetable{max-height:78vh;overflow:auto}.client-history-panel{margin-top:16px}.client-history-head{padding-bottom:12px}.client-history-search{position:relative;display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.4fr);gap:12px;padding:0 18px 16px}.client-history-search label{font-weight:700}.client-history-search input,.client-history-search select{width:100%;margin-top:6px}.client-history-results{position:absolute;z-index:30;left:18px;top:70px;width:min(520px,calc(100% - 36px));background:#fff;border:1px solid #cfdced;border-radius:10px;box-shadow:0 14px 34px rgba(32,62,105,.18);max-height:260px;overflow:auto}.client-history-results button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:11px 13px}.client-history-results button:hover{background:#f2f7ff}.client-history-table-wrap{overflow:auto;padding:0 18px 18px}.client-history-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1050px}.client-history-table th,.client-history-table td{padding:11px 12px;border-bottom:1px solid #dbe4f0;text-align:center}.client-history-table th{background:#edf3fa;font-weight:800;position:sticky;top:0}.client-history-table td:last-child{text-align:left;white-space:pre-wrap}.client-history-table tbody tr{cursor:pointer}.client-history-table tbody tr:hover{background:#f7faff}@media(max-width:900px){.client-history-search{grid-template-columns:1fr}.daily-timetable-launch-panel .daily-timetable-head{align-items:flex-start;flex-direction:column}}

/* 74th: schedule heading timetable button + client daily schedule search/filter/columns */
.schedule-page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.schedule-heading-timetable-btn{flex:0 0 auto;min-width:92px;box-shadow:0 7px 18px rgba(37,99,235,.18)}
.client-history-panel{position:relative;margin-top:16px;overflow:visible}
.client-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px 14px;border-bottom:1px solid #e3ebf4}
.client-history-head h2{margin:3px 0 5px;font-size:20px}.client-history-head p{margin:0;color:#6a7a8f;font-size:12px}
.client-history-head-actions{position:relative;flex:0 0 auto}
.client-history-columns-popover{position:absolute;z-index:60;right:0;top:44px;width:230px;padding:12px;background:#fff;border:1px solid #cfdbea;border-radius:12px;box-shadow:0 16px 38px rgba(30,55,90,.18)}
.client-history-columns-popover label{display:flex;align-items:center;gap:8px;padding:7px 5px;font-size:12px;font-weight:700;color:#33475f}
.client-history-columns-popover input{width:16px;height:16px}
.client-history-columns-head{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 8px;border-bottom:1px solid #e5ebf3;margin-bottom:4px}
.client-history-columns-head button{border:0;background:transparent;color:#2563eb;font-size:11px;font-weight:800;cursor:pointer}
.client-history-search-card{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.35fr);gap:14px;align-items:end;padding:16px 20px;background:#f7f9fc;border-bottom:1px solid #e1e8f1}
.client-history-search-field,.client-history-select-field{position:relative;display:grid;gap:6px}
.client-history-search-card label{font-size:11px;font-weight:900;color:#253a53}
.client-history-search-card input,.client-history-search-card select{width:100%;height:42px;border:1px solid #cdd9e8;border-radius:10px;background:#fff;padding:0 13px;font-size:13px;color:#17243a;outline:none}
.client-history-search-card input:focus,.client-history-search-card select:focus{border-color:#6ea1e8;box-shadow:0 0 0 3px rgba(60,125,220,.12)}
.client-history-search-input-wrap{position:relative}.client-history-search-input-wrap input{padding-right:38px}
.search-clear-btn{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:#66809d;font-size:20px;cursor:pointer}
.search-clear-btn:hover{background:#eef4fb;color:#1e5eb4}
.client-history-results{left:0;top:70px;width:100%;max-width:none}
.client-history-filterbar{display:grid;grid-template-columns:90px 145px 115px 120px repeat(3,minmax(120px,1fr)) minmax(180px,1.4fr) auto;gap:8px;align-items:end;padding:11px 20px;background:#fff;border-bottom:1px solid #e2e9f2}
.client-history-filterbar label{display:grid;gap:4px;font-size:10px;font-weight:900;color:#53677e}
.client-history-filterbar input,.client-history-filterbar select{width:100%;height:34px;border:1px solid #d2ddea;border-radius:8px;background:#fff;padding:0 9px;font-size:11px}
.client-history-filter-reset{height:34px;padding:0 12px;white-space:nowrap}
.client-history-table-wrap{margin:14px 20px 20px;padding:0;overflow:auto;border:1px solid #d8e2ee;border-radius:12px}
.client-history-table{min-width:980px;margin:0}
.client-history-table th{top:0;background:#edf3f9;color:#29445f;font-size:11px}
.client-history-table td{font-size:12px}.client-history-table td[data-history-col="content"]{min-width:300px;text-align:left;white-space:pre-wrap}
.client-history-table td[data-history-col="session"]{font-weight:800;color:#1f5fb9}
@media(max-width:1150px){.client-history-filterbar{grid-template-columns:repeat(4,minmax(120px,1fr))}.client-history-filter-reset{justify-self:start}}
@media(max-width:760px){.schedule-page-heading{align-items:flex-start}.client-history-head{flex-direction:column;padding:16px}.client-history-head-actions{align-self:flex-end}.client-history-search-card{grid-template-columns:1fr;padding:14px}.client-history-filterbar{grid-template-columns:1fr 1fr;padding:12px 14px}.client-history-table-wrap{margin:12px 14px 16px}.client-history-columns-popover{right:0}}


/* 75th: client row context navigation */
.client-context-menu{position:fixed;z-index:9999;width:200px;padding:8px;border:1px solid #cbd8e6;border-radius:12px;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.22)}
.client-context-menu strong{display:block;padding:8px 10px;border-bottom:1px solid #e5edf5;font-size:12px;color:#334155}
.client-context-menu a{display:block;padding:10px;border-radius:8px;color:#173b61;text-decoration:none;font-size:13px;font-weight:800}
.client-context-menu a:hover{background:#edf5ff;color:#1d5fd1}

/* 89차 통합대시보드: 전체 상담 스케줄 + 일일 스케줄 */
.dashboard-integrated-schedule{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.85fr);gap:16px;align-items:stretch;margin-top:16px}
.dashboard-integrated-schedule>.panel{margin:0;min-width:0}
.dashboard-schedule-cell{appearance:none;text-align:left;font:inherit;color:inherit;background:#fff;border:0;border-right:1px solid #e1e8f0;border-bottom:1px solid #e1e8f0;min-height:112px;padding:7px;overflow:hidden;cursor:pointer}
.dashboard-schedule-cell:disabled{cursor:default;background:#f8fafc}
.dashboard-schedule-cell.is-selected{background:#eef5ff;box-shadow:inset 0 0 0 2px #3b76db}
.dashboard-schedule-cell .day-number{display:block;font-weight:800;margin-bottom:4px}
.dashboard-daily-schedule{display:flex;flex-direction:column;max-height:780px}
.dashboard-daily-list{overflow:auto;padding:0 16px 16px}
.dashboard-daily-date[hidden]{display:none!important}
.dashboard-daily-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid #e5ebf2}
.dashboard-daily-item time{font-weight:800;color:#185dba;white-space:nowrap}
.dashboard-daily-item div{display:flex;flex-direction:column;gap:3px;min-width:0}
.dashboard-daily-item strong{color:#142f50}
.dashboard-daily-item span,.dashboard-daily-item small{color:#60758f;overflow-wrap:anywhere}
.dashboard-daily-item em{font-style:normal;white-space:nowrap}
@media(max-width:1100px){.dashboard-integrated-schedule{grid-template-columns:1fr}.dashboard-daily-schedule{max-height:none}}

/* 91차 통합대시보드: DAILY SCHEDULE 시간표형 통일 및 월간 일정 좌측 정렬 */
.dashboard-schedule-cell,.dashboard-schedule-cell *{text-align:left}
.dashboard-schedule-item{width:100%;text-align:left!important;white-space:normal;overflow-wrap:anywhere}
.dashboard-daily-schedule{max-height:780px;overflow:hidden}
.dashboard-daily-schedule .panel-head{flex:0 0 auto}
.dashboard-daily-schedule .panel-head p:last-child{margin:4px 0 0;color:#71839a;font-size:11px}
.dashboard-daily-table-host{flex:1;min-height:0;overflow:hidden}
.dashboard-daily-date{height:100%}
.dashboard-daily-table-wrap{height:100%;max-height:none;overflow:auto;padding:0}
.dashboard-daily-table{width:100%;min-width:1220px;border-collapse:separate;border-spacing:0;table-layout:fixed}
.dashboard-daily-table th,.dashboard-daily-table td{border-right:1px solid #dbe5ef;border-bottom:1px solid #dbe5ef;padding:8px 7px;font-size:11px;vertical-align:middle;text-align:center;background:#fff}
.dashboard-daily-table thead th{position:sticky;top:0;z-index:4;background:#edf3f9;color:#29445f;font-weight:900;white-space:nowrap}
.dashboard-daily-table th:nth-child(1){width:72px}.dashboard-daily-table th:nth-child(2){width:102px}.dashboard-daily-table th:nth-child(3){width:92px}.dashboard-daily-table th:nth-child(4){width:84px}.dashboard-daily-table th:nth-child(5){width:110px}.dashboard-daily-table th:nth-child(6){width:110px}.dashboard-daily-table th:nth-child(7){width:78px}.dashboard-daily-table th:nth-child(8){width:90px}.dashboard-daily-table th:nth-child(9){width:105px}.dashboard-daily-table th:nth-child(10){width:145px}.dashboard-daily-table th:nth-child(11){width:auto}
.dashboard-daily-table tbody tr{height:42px}
.dashboard-daily-table .dashboard-daily-time{position:sticky;left:0;z-index:2;background:#eef4fa;color:#173b61;font-weight:900;white-space:nowrap}
.dashboard-daily-table thead th:first-child{left:0;z-index:5}
.dashboard-daily-table td:last-child{text-align:left;white-space:normal;line-height:1.45;overflow-wrap:anywhere}
.dashboard-daily-empty td{background:#fbfcfe;color:#94a3b8}
.dashboard-daily-empty:hover td{background:#f7faff}
.dashboard-daily-exact-time{font-weight:800;color:#185dba;white-space:nowrap}
@media(max-width:1100px){.dashboard-daily-schedule{max-height:none}.dashboard-daily-table-wrap{max-height:680px}}

/* 92차 통합대시보드: 월 이동 및 상담 스케줄형 4:6 배치 */
.dashboard-integrated-schedule{grid-template-columns:minmax(420px,4fr) minmax(0,6fr);align-items:stretch}
.dashboard-schedule-calendar,.dashboard-daily-schedule{height:760px;display:flex;flex-direction:column;overflow:hidden}
.dashboard-month-head{flex:0 0 auto;margin:0;padding:15px 16px;border-bottom:1px solid var(--line-2);background:#fff}
.dashboard-month-head>div{min-width:0;text-align:left}
.dashboard-month-head h2,.dashboard-month-head p,.dashboard-month-head small{text-align:left}
.dashboard-month-head small{display:block;margin-top:4px;color:#71839a;font-size:11px}
.dashboard-schedule-weekdays{flex:0 0 auto}
.dashboard-schedule-grid{flex:1;min-height:0;overflow:auto;border-radius:0;border-left:0;border-right:0;border-bottom:0}
.dashboard-schedule-cell,.dashboard-schedule-cell *{text-align:left!important}
.dashboard-schedule-cell{align-content:start}
.dashboard-daily-schedule .panel-head{padding:15px 16px;min-height:78px}
@media(max-width:1100px){
 .dashboard-integrated-schedule{grid-template-columns:1fr}
 .dashboard-schedule-calendar,.dashboard-daily-schedule{height:auto;min-height:620px}
}


/* 93차 통합대시보드: 6.5:3.5 비율, 일정구분 색상, DAILY 표시항목 */
.dashboard-integrated-schedule{grid-template-columns:minmax(0,6.5fr) minmax(350px,3.5fr)}
.dashboard-schedule-legend-wrap{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:9px 16px;border-bottom:1px solid var(--line-2);background:#fff;overflow-x:auto}
.dashboard-schedule-legend-wrap>strong{font-size:10px;color:#475569;white-space:nowrap}
.dashboard-schedule-legend{margin:0;padding:0;border:0;gap:8px 12px;flex-wrap:nowrap;min-width:max-content}
.dashboard-schedule-legend span{font-size:9px;white-space:nowrap}
.dashboard-schedule-item{border-left:4px solid transparent}
.dashboard-schedule-item.type-available{border-left-color:#eab308}
.dashboard-schedule-item.type-visit{border-left-color:#38bdf8}
.dashboard-schedule-item.type-client{border-left-color:#fb923c}
.dashboard-schedule-item.type-group{border-left-color:#a78bfa}
.dashboard-schedule-item.type-education{border-left-color:#4ade80}
.dashboard-schedule-item.type-supervision{border-left-color:#f472b6}
.dashboard-schedule-item.type-personal{border-left-color:#94a3b8}
.dashboard-schedule-item.type-unavailable{border-left-color:#ef4444}
.dashboard-daily-head{align-items:flex-start}
.dashboard-daily-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.dashboard-daily-actions>a{white-space:nowrap}
.dashboard-daily-actions .display-columns-wrap{position:relative}
.dashboard-daily-actions .display-columns-popover{right:0;left:auto;top:calc(100% + 7px);z-index:30;min-width:260px}
.dashboard-daily-table [data-dashboard-col][style*="display: none"]{display:none!important}
@media(max-width:1100px){.dashboard-integrated-schedule{grid-template-columns:1fr}}

/* 94차 통합대시보드: DAILY SCHEDULE 제거 및 요일·날짜 열폭 일치 */
.dashboard-integrated-schedule{display:block!important}
.dashboard-schedule-calendar{width:100%;height:760px}
.dashboard-calendar-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;display:flex;flex-direction:column}
.dashboard-calendar-scroll .dashboard-schedule-weekdays{position:sticky;top:0;z-index:12;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));width:100%;padding:0;margin:0;box-sizing:border-box;background:#edf3f9}
.dashboard-calendar-scroll .dashboard-schedule-weekdays>span{min-width:0;box-sizing:border-box;text-align:center}
.dashboard-calendar-scroll .dashboard-schedule-grid{flex:none;min-height:100%;overflow:visible;width:100%;grid-template-columns:repeat(7,minmax(0,1fr));box-sizing:border-box}
.dashboard-calendar-scroll .dashboard-schedule-cell{min-width:0;width:auto;box-sizing:border-box}
@media(max-width:1100px){.dashboard-schedule-calendar{height:auto;min-height:620px}.dashboard-calendar-scroll{max-height:680px}}


/* 95차: 상담 스케줄 월간 달력 통합대시보드형 및 3팀 순환 표시 */
.dashboard-style-calendar{border:1px solid #d9e3ed;border-radius:0;background:#fff;overflow:auto;scrollbar-gutter:stable}
.dashboard-style-calendar .schedule-weekdays{position:sticky;top:0;z-index:12;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#edf3f9;border-bottom:1px solid #d9e3ed}
.dashboard-style-calendar .schedule-weekdays span{padding:10px 6px;background:#edf3f9!important;border-right:1px solid #d9e3ed;color:#1f3550;font-size:12px;font-weight:900;text-align:center;box-sizing:border-box}
.dashboard-style-calendar .schedule-weekdays span:last-child{border-right:0}
.dashboard-style-calendar .schedule-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));width:100%}
.dashboard-style-calendar .schedule-day{min-width:0;min-height:112px;padding:7px;background:#fff;border-top:0;border-right:1px solid #e1e8f0;border-bottom:1px solid #e1e8f0;box-sizing:border-box;text-align:left;align-content:start}
.dashboard-style-calendar .schedule-day:nth-child(7n){border-right:0}
.dashboard-style-calendar .schedule-day.outside-month{background:#f8fafc}
.dashboard-style-calendar .schedule-day.sunday,.dashboard-style-calendar .schedule-day.saturday{background:#fff}
.dashboard-style-calendar .schedule-day.today{box-shadow:inset 0 0 0 2px #3b76db}
.dashboard-style-calendar .schedule-day.selected{background:#eef5ff;box-shadow:inset 0 0 0 2px #3b76db}
.dashboard-style-calendar .schedule-day-number{height:20px;justify-content:flex-start;gap:6px;font-size:12px;margin-bottom:3px}
.dashboard-style-calendar .schedule-event-list{gap:4px;margin-top:3px}
.dashboard-style-calendar .schedule-event{border-left:4px solid transparent;border-radius:4px;padding:5px 6px;font-size:9px;line-height:1.25;min-height:24px}
.dashboard-style-calendar .schedule-event.type-available{border-left-color:#eab308}.dashboard-style-calendar .schedule-event.type-visit{border-left-color:#38bdf8}.dashboard-style-calendar .schedule-event.type-client{border-left-color:#fb923c}.dashboard-style-calendar .schedule-event.type-group{border-left-color:#a78bfa}.dashboard-style-calendar .schedule-event.type-education{border-left-color:#4ade80}.dashboard-style-calendar .schedule-event.type-supervision{border-left-color:#f472b6}.dashboard-style-calendar .schedule-event.type-personal{border-left-color:#94a3b8}.dashboard-style-calendar .schedule-event.type-unavailable{border-left-color:#ef4444}
.timetable-grid-header,.timetable-grid-body{grid-template-columns:150px repeat(var(--counselor-count),minmax(180px,1fr));min-width:calc(150px + var(--counselor-count) * 180px)}
.timetable-grid-corner.timetable-date-team{justify-content:flex-start;text-align:left;line-height:1.25;padding:0 10px;font-size:10px;white-space:normal;background:#e8f0f8;color:#173b61}
@media(max-width:1150px){.timetable-grid-header,.timetable-grid-body{grid-template-columns:140px repeat(var(--counselor-count),minmax(170px,1fr));min-width:calc(140px + var(--counselor-count) * 170px)}}


/* 96차: 시간표 좌측 상단 날짜·요일·3팀 순환 라벨 고정 */
.timetable-grid-corner.timetable-date-team{
 display:flex!important;align-items:center!important;justify-content:flex-start!important;
 min-height:52px;padding:8px 12px!important;background:#dfeaf5!important;
 color:#173b61!important;text-align:left!important;white-space:nowrap!important;
 position:sticky;left:0;top:0;z-index:25;border-right:1px solid #c9d7e5;
}
.timetable-grid-corner.timetable-date-team strong{display:block;font-size:12px;line-height:1.3;font-weight:950;letter-spacing:-.2px}


/* 97차: 상담 스케줄 상단 현재 날짜·요일·순환팀 표시 */
.schedule-heading-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.schedule-current-team-label{display:flex;align-items:center;justify-content:center;min-height:36px;padding:0 16px;border:1px solid #cbd9e8;border-radius:10px;background:#eef4fb;color:#173b61;font-size:14px;font-weight:900;letter-spacing:-.2px;white-space:nowrap;box-shadow:0 4px 12px rgba(31,70,110,.06)}
@media(max-width:760px){.schedule-page-heading{align-items:flex-start}.schedule-heading-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.schedule-current-team-label{font-size:13px;padding:0 12px}}

/* 118차: 사이드바 메인 카테고리 확대 및 하위 메뉴 접기/펼치기 */
.side-nav-section{
  width:100%;
  margin:15px 0 4px;
  padding:12px 10px 8px;
  border:0;
  border-top:1px solid rgba(255,255,255,.11);
  background:transparent;
  color:#d8e7fb;
  font-family:inherit;
  font-size:15px;
  font-weight:950;
  letter-spacing:-.01em;
  text-align:left;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.side-nav-section:first-child{margin-top:2px;padding-top:4px;border-top:0}
.side-nav-section:hover{color:#fff}
.side-nav-section-chevron{font-size:12px;color:#8fb3ee;transition:transform .18s ease}
.side-nav-section[aria-expanded="false"] .side-nav-section-chevron{transform:rotate(180deg)}
.side-nav-group{display:grid;gap:5px;overflow:hidden}
.side-nav-group[hidden]{display:none!important}
.side-nav-group>a{margin-left:2px}
body.sidebar-collapsed .side-nav-section{display:none}
body.sidebar-collapsed .side-nav-group{display:grid!important}
@media(max-width:1020px){
  .side-nav-section{font-size:15px;padding-top:12px;padding-bottom:9px}
}

/* 119차: 모든 페이지 제목 옆 날짜·요일·순환팀 표시 */
@media(max-width:700px){
  .topbar{gap:10px}
  .topbar-title{min-width:0;gap:7px;flex:1}
  .topbar-title strong{font-size:19px;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
  .topbar-date-team{font-size:13px;padding:6px 8px;flex:0 0 auto}
}
@media(max-width:430px){
  .topbar-date-team{font-size:12px;padding:5px 7px}
}


/* 123차: MONTHLY / DAILY SCHEDULE 가로 비율 드래그 조절 */
.schedule-workspace{
 --schedule-monthly-ratio:40%;
 display:grid;
 grid-template-columns:minmax(260px,var(--schedule-monthly-ratio)) 10px minmax(360px,1fr);
 column-gap:0;
 width:100%;
 min-width:0;
}
.schedule-workspace>.counselor-month-panel,
.schedule-workspace>.client-daily-schedule-panel{min-width:0}
.schedule-panel-resizer{
 position:relative;
 width:10px;
 height:760px;
 cursor:col-resize;
 touch-action:none;
 user-select:none;
 display:flex;
 align-items:center;
 justify-content:center;
 outline:none;
 z-index:8;
}
.schedule-panel-resizer::before{
 content:"";
 position:absolute;
 inset:0 2px;
 border-radius:999px;
 background:transparent;
 transition:background .15s ease;
}
.schedule-panel-resizer span{
 position:relative;
 width:3px;
 height:64px;
 border-radius:999px;
 background:#c5d3e3;
 box-shadow:0 0 0 1px rgba(37,99,235,.06);
 transition:background .15s ease,box-shadow .15s ease;
}
.schedule-panel-resizer:hover::before,
.schedule-panel-resizer:focus-visible::before,
.schedule-panel-resizer.is-dragging::before{background:#eaf2ff}
.schedule-panel-resizer:hover span,
.schedule-panel-resizer:focus-visible span,
.schedule-panel-resizer.is-dragging span{background:#2f6edb;box-shadow:0 0 0 3px rgba(47,110,219,.14)}
body.schedule-resizing{cursor:col-resize!important;user-select:none!important}
body.schedule-resizing *{cursor:col-resize!important}
@media(max-width:1200px){
 .schedule-workspace{display:grid;grid-template-columns:1fr!important;row-gap:16px}
 .schedule-panel-resizer{display:none}
}

/* 124차: DAILY SCHEDULE 시간대 행 높이 사용자 조절 */
.client-daily-schedule-panel{--daily-row-height:32px}
.daily-schedule-table tbody tr,
.daily-schedule-table tbody td{height:var(--daily-row-height);min-height:var(--daily-row-height)}
.daily-schedule-table tbody th.daily-schedule-time{height:var(--daily-row-height);min-height:var(--daily-row-height)}
.daily-row-height-control{display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid #d5e1ee;border-radius:10px;background:#f8fbff;white-space:nowrap}
.daily-row-height-control>span{font-size:13px;font-weight:800;color:#40566e;margin-right:2px}
.daily-row-height-control output{min-width:42px;text-align:center;font-size:13px;font-weight:900;color:#1e4f91}
.daily-row-height-btn,.daily-row-height-reset{height:30px!important;min-width:32px!important;padding:0 8px!important;border-radius:8px!important;font-size:14px!important;line-height:1!important}
.daily-row-height-reset{font-size:12px!important;min-width:44px!important}
@media(max-width:980px){.daily-head-actions{flex-wrap:wrap}.daily-row-height-control{order:3;width:100%;justify-content:flex-end}}

/* 129차: DAILY SCHEDULE 행 높이를 10px까지 실제 적용 */
.client-daily-schedule-panel{--daily-row-height:32px}
.daily-schedule-table tbody tr{
  height:var(--daily-row-height)!important;
  min-height:0!important;
  max-height:var(--daily-row-height)!important;
}
.daily-schedule-table tbody td,
.daily-schedule-table tbody th.daily-schedule-time{
  box-sizing:border-box!important;
  height:var(--daily-row-height)!important;
  min-height:0!important;
  max-height:var(--daily-row-height)!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:1!important;
  overflow:hidden!important;
  vertical-align:middle!important;
}
.daily-schedule-table tbody td{padding-left:6px!important;padding-right:6px!important}
.daily-schedule-table tbody th.daily-schedule-time{padding-left:4px!important;padding-right:4px!important}
.daily-schedule-table tbody td>*{max-height:calc(var(--daily-row-height) - 2px)!important}
.daily-schedule-table .client-status-select{
  height:clamp(8px,calc(var(--daily-row-height) - 2px),32px)!important;
  min-height:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:1!important;
}
.daily-schedule-table tbody tr.daily-schedule-empty-slot td{padding:0!important}
/* 131차 상담사 근무일지 */
.schedule-heading-actions{display:flex;gap:8px;align-items:center}
.counselor-work-log-dialog{width:min(96vw,1500px);max-width:none}
.counselor-work-log-card{width:min(94vw,1460px);max-height:90vh;overflow:hidden;display:flex;flex-direction:column}
.work-log-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px}
.work-log-table-wrap{overflow:auto;border:1px solid #d7e2ef;border-radius:12px}
.work-log-table{width:100%;min-width:1260px;border-collapse:collapse;table-layout:fixed;font-size:12px}
.work-log-table th,.work-log-table td{border-right:1px solid #dfe7f1;border-bottom:1px solid #dfe7f1;padding:7px;text-align:center;vertical-align:middle}
.work-log-table th{background:#eaf2fb;color:#17395f;font-weight:800;white-space:nowrap;position:sticky;top:0;z-index:2}
.work-log-table th:nth-child(1){width:105px}.work-log-table th:nth-child(2),.work-log-table th:nth-child(3){width:92px}.work-log-table th:nth-child(4){width:220px}.work-log-table th:nth-child(5){width:420px}.work-log-table th:nth-child(6),.work-log-table th:nth-child(7){width:95px}.work-log-table th:nth-child(8){width:85px}
.work-log-table textarea{width:100%;min-height:86px;resize:vertical;border:1px solid #cdd9e8;border-radius:8px;padding:8px;font:inherit;line-height:1.45;box-sizing:border-box}
.work-log-location{text-align:left!important;white-space:normal;line-height:1.45}.work-log-count{font-weight:800;color:#174b85}.work-log-table td:last-child small{display:block;margin-top:5px;color:#44705a}


/* 132차 상담사 근무일지 팝업 레이아웃 및 버튼 디자인 수정 */
.counselor-work-log-dialog{
  width:min(1500px,calc(100vw - 48px))!important;
  max-width:1500px!important;
  height:auto!important;
  max-height:92vh!important;
  margin:auto!important;
  overflow:visible!important;
}
.counselor-work-log-card{
  width:100%!important;
  max-width:none!important;
  max-height:92vh!important;
  padding:22px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.counselor-work-log-card .dialog-head{
  flex:0 0 auto;
  align-items:flex-start;
  margin-bottom:14px;
}
.counselor-work-log-card .dialog-head>div{min-width:0}
.counselor-work-log-card .dialog-head p{margin:6px 0 0;color:#64748b;font-size:13px;white-space:normal}
.work-log-toolbar{
  flex:0 0 auto;
  min-height:40px;
  margin:0 0 12px!important;
}
.work-log-table-wrap{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  overflow:auto!important;
  border:1px solid #d7e2ef;
  border-radius:12px;
  background:#fff;
}
.work-log-table{
  width:100%!important;
  min-width:1280px!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  font-size:13px!important;
}
.work-log-table col.col-date{width:110px}
.work-log-table col.col-start,.work-log-table col.col-end{width:105px}
.work-log-table col.col-location{width:240px}
.work-log-table col.col-content{width:430px}
.work-log-table col.col-individual,.work-log-table col.col-group{width:105px}
.work-log-table col.col-save{width:95px}
.work-log-table th,.work-log-table td{
  box-sizing:border-box!important;
  padding:9px 10px!important;
  line-height:1.35!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  white-space:normal!important;
}
.work-log-table th{
  height:46px;
  background:#eaf2fb!important;
  color:#17395f!important;
  font-weight:800!important;
  text-align:center!important;
  vertical-align:middle!important;
  white-space:nowrap!important;
}
.work-log-table td{vertical-align:middle!important;background:#fff}
.work-log-table tbody tr:nth-child(even) td{background:#f8fbff}
.work-log-table textarea{
  display:block;
  width:100%!important;
  min-width:0!important;
  min-height:88px!important;
  max-height:none!important;
  box-sizing:border-box!important;
  resize:vertical;
  white-space:pre-wrap!important;
  overflow-wrap:anywhere!important;
}
.work-log-location{
  text-align:left!important;
  white-space:pre-line!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
}
.work-log-count{white-space:nowrap!important}
.work-log-table td:last-child{white-space:nowrap!important}
.work-log-table td:last-child .primary-btn{min-width:58px;padding:8px 12px}
.schedule-heading-actions [data-open-work-log]{
  min-width:112px;
  box-shadow:0 7px 18px rgba(37,99,235,.18);
}
@media(max-width:760px){
  .counselor-work-log-dialog{width:calc(100vw - 20px)!important;max-height:94vh!important}
  .counselor-work-log-card{padding:14px!important;max-height:94vh!important}
  .work-log-table{min-width:1180px!important}
  .schedule-heading-actions [data-open-work-log]{min-width:110px}
}

/* 133차 상담사 근무일지 전체 항목 수정 */
.work-log-table input[type="date"],
.work-log-table input[type="time"],
.work-log-table input[type="number"],
.work-log-table textarea{
  width:100%;box-sizing:border-box;border:1px solid #cdd9e8;border-radius:8px;background:#fff;color:#172b4d;font:inherit;
}
.work-log-table input[type="date"],.work-log-table input[type="time"],.work-log-table input[type="number"]{height:38px;padding:6px 7px;text-align:center}
.work-log-table input[type="number"]{min-width:68px}
.work-log-table [data-work-log-location]{min-height:86px;resize:vertical;padding:8px;line-height:1.4}
.work-log-table [data-work-log-content]{min-height:100px}

/* 136차 상담사 근무일지 우클릭 행 추가·삭제 */
.counselor-work-log-card{position:relative}
.work-log-help{margin:0 0 10px;color:#5f7188;font-size:12px}
.work-log-context-menu{position:absolute;z-index:50;min-width:132px;padding:6px;background:#fff;border:1px solid #cfdbea;border-radius:10px;box-shadow:0 12px 30px rgba(15,35,65,.18)}
.work-log-context-menu[hidden]{display:none!important}
.work-log-context-menu button{display:block;width:100%;border:0;background:transparent;border-radius:7px;padding:9px 12px;text-align:left;font:inherit;font-weight:700;color:#183b63;cursor:pointer}
.work-log-context-menu button:hover{background:#eef5ff}
.work-log-context-menu button.danger{color:#d62828}
.work-log-context-menu button.danger:hover{background:#fff0f0}
.work-log-table tbody tr[data-work-log-row]{cursor:context-menu}
.work-log-table tbody tr[data-work-log-row]:hover td{background:#f2f7ff!important}

/* 138차 상담사 근무일지 행 추가·삽입, 일괄 저장, 날짜·시간 폭 확대 */
.work-log-toolbar-actions{display:flex;align-items:center;gap:8px}
.work-log-table{min-width:1390px!important}
.work-log-table col.col-date{width:160px!important}
.work-log-table col.col-start,.work-log-table col.col-end{width:150px!important}
.work-log-table col.col-location{width:245px!important}
.work-log-table col.col-content{width:430px!important}
.work-log-table col.col-individual,.work-log-table col.col-group{width:115px!important}
.work-log-table input[type="date"],
.work-log-table select[data-work-log-start],
.work-log-table select[data-work-log-end]{width:100%;height:40px;box-sizing:border-box;border:1px solid #cdd9e8;border-radius:8px;background:#fff;color:#172b4d;font:inherit;padding:6px 10px;text-align:center}
.work-log-table input[type="date"]{min-width:138px}
.work-log-table select[data-work-log-start],.work-log-table select[data-work-log-end]{min-width:128px}
@media(max-width:760px){.work-log-table{min-width:1340px!important}.work-log-toolbar{align-items:flex-start}.work-log-toolbar-actions{flex-wrap:wrap;justify-content:flex-end}}


/* 230차: DAILY SCHEDULE 열별 실제 폭을 유지하고 브라우저의 자동 재분배를 차단 */
.daily-schedule-table{
  width:auto;
  min-width:0;
  max-width:none;
  table-layout:fixed!important;
}
.daily-schedule-table col{min-width:0;max-width:none}
.daily-schedule-table th,.daily-schedule-table td{box-sizing:border-box;overflow:hidden}
.daily-schedule-table .daily-schedule-filter-row select{max-width:100%;box-sizing:border-box}

/* 146차: 상세 일정 우클릭 메뉴 및 진행상태 색상 */
.schedule-context-menu{position:fixed;z-index:99999;min-width:210px;padding:6px;border:1px solid #cbd8e8;border-radius:10px;background:#fff;box-shadow:0 14px 34px rgba(15,39,66,.18)}
.schedule-context-menu button{display:block;width:100%;padding:10px 12px;border:0;border-radius:7px;background:#fff;color:#17375f;text-align:left;font-size:13px;font-weight:800;cursor:pointer}
.schedule-context-menu button:hover{background:#edf4ff;color:#1558b0}
.client-status-select.status-reserved{color:#24364d!important;background:#fff!important;border-color:#cbd5e1!important}
.client-status-select.status-visiting{color:#9a3412!important;background:#ffedd5!important;border-color:#f97316!important;font-weight:800!important}
.client-status-select.status-completed{color:#166534!important;background:#dcfce7!important;border-color:#22c55e!important;font-weight:800!important}
.client-status-select.status-canceled{color:#991b1b!important;background:#fee2e2!important;border-color:#ef4444!important;font-weight:800!important}

/* 147차: 상세 일정 내담자 이름 클릭 및 내담자별 일정 이동 */
.client-name-link{border:0;background:transparent;padding:0;color:#1557c0;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.client-name-link:hover,.client-name-link:focus{color:#0b3f95;outline:none}

/* 148차: 통합대시보드를 제외한 모든 페이지 상단 제목 영역을 가로형으로 통일 */
.content-wrap > .section-heading,
.content-wrap > .page-heading{
  width:100%;
  box-sizing:border-box;
  padding:14px 18px;
  margin:0 0 20px;
  background:#f1f5fb;
  border:0;
  border-radius:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.content-wrap > .section-heading > div:first-child,
.content-wrap > .page-heading > div:first-child{
  min-width:0;
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  grid-template-areas:"eyebrow eyebrow" "title description";
  align-items:center;
  column-gap:22px;
  row-gap:4px;
}
.content-wrap > .section-heading > div:first-child > .eyebrow,
.content-wrap > .page-heading > div:first-child > .eyebrow{
  grid-area:eyebrow;
  margin:0;
}
.content-wrap > .section-heading > div:first-child > h1,
.content-wrap > .page-heading > div:first-child > h1{
  grid-area:title;
  margin:0;
  white-space:nowrap;
}
.content-wrap > .section-heading > div:first-child > p:last-child,
.content-wrap > .page-heading > div:first-child > p:last-child{
  grid-area:description;
  margin:0;
  color:var(--muted);
  min-width:0;
}
.content-wrap > .section-heading.split-heading,
.content-wrap > .section-heading.schedule-page-heading{
  align-items:center;
}
@media(max-width:900px){
  .content-wrap > .section-heading,
  .content-wrap > .page-heading{align-items:flex-start;flex-direction:column;padding:14px 16px}
  .content-wrap > .section-heading > div:first-child,
  .content-wrap > .page-heading > div:first-child{
    grid-template-columns:1fr;
    grid-template-areas:"eyebrow" "title" "description";
    row-gap:4px;
  }
  .content-wrap > .section-heading > div:first-child > h1,
  .content-wrap > .page-heading > div:first-child > h1{white-space:normal}
}

/* 148차: 통합대시보드를 제외한 모든 페이지 상단 제목 영역을 가로형으로 통일 */
.content-wrap > .section-heading,
.content-wrap > .page-heading{
  width:100%;box-sizing:border-box;padding:14px 18px;margin:0 0 20px;
  background:#f1f5fb;border:0;border-radius:0;display:flex;align-items:center;
  justify-content:space-between;gap:18px;
}
.content-wrap > .section-heading > div:first-child,
.content-wrap > .page-heading > div:first-child{
  min-width:0;display:grid;grid-template-columns:max-content minmax(0,1fr);
  grid-template-areas:"eyebrow eyebrow" "title description";
  align-items:center;column-gap:22px;row-gap:4px;
}
.content-wrap > .section-heading > div:first-child > .eyebrow,
.content-wrap > .page-heading > div:first-child > .eyebrow{grid-area:eyebrow;margin:0}
.content-wrap > .section-heading > div:first-child > h1,
.content-wrap > .page-heading > div:first-child > h1{grid-area:title;margin:0;white-space:nowrap}
.content-wrap > .section-heading > div:first-child > p:last-child,
.content-wrap > .page-heading > div:first-child > p:last-child{grid-area:description;margin:0;color:var(--muted);min-width:0}
.content-wrap > .section-heading.split-heading,
.content-wrap > .section-heading.schedule-page-heading{align-items:center}
@media(max-width:900px){
  .content-wrap > .section-heading,.content-wrap > .page-heading{align-items:flex-start;flex-direction:column;padding:14px 16px}
  .content-wrap > .section-heading > div:first-child,.content-wrap > .page-heading > div:first-child{grid-template-columns:1fr;grid-template-areas:"eyebrow" "title" "description";row-gap:4px}
  .content-wrap > .section-heading > div:first-child > h1,.content-wrap > .page-heading > div:first-child > h1{white-space:normal}
}

/* 153차: 페이지 제목 영역 상하 여백 축소 및 모든 표 글자 최소 13px */
/* 통합대시보드(home)는 별도의 대시보드 헤더 구조를 사용하므로 아래 공통 제목 규칙의 적용 대상이 아님 */
.content-wrap > .section-heading,
.content-wrap > .page-heading{
  padding-top:7px!important;
  padding-bottom:7px!important;
  margin-top:0!important;
  margin-bottom:10px!important;
  min-height:0!important;
  gap:10px!important;
}
.content-wrap > .section-heading > div:first-child,
.content-wrap > .page-heading > div:first-child{
  row-gap:1px!important;
  column-gap:16px!important;
}
.content-wrap > .section-heading .eyebrow,
.content-wrap > .page-heading .eyebrow{
  margin:0!important;
  line-height:1.15!important;
}
.content-wrap > .section-heading h1,
.content-wrap > .page-heading h1{
  line-height:1.15!important;
}
.content-wrap > .section-heading p:last-child,
.content-wrap > .page-heading p:last-child{
  line-height:1.35!important;
}

/* 페이지 내부의 모든 표와 표 안 입력 요소는 최소 13px로 통일 */
.content-wrap table,
.content-wrap table th,
.content-wrap table td,
.content-wrap table th *,
.content-wrap table td *,
.content-wrap table input,
.content-wrap table select,
.content-wrap table textarea,
.content-wrap table button,
.content-wrap table a,
.content-wrap table small,
.content-wrap table strong,
.content-wrap table span,
.content-wrap table label{
  font-size:13px!important;
}

@media(max-width:900px){
  .content-wrap > .section-heading,
  .content-wrap > .page-heading{
    padding:7px 12px!important;
    margin-bottom:9px!important;
  }
}

/* 156차: 상세 일정 시간 구분선·열 너비 드래그 조절·표시항목 안정화 */
.daily-schedule-table{table-layout:fixed!important;max-width:none!important}
.daily-schedule-table tbody tr.daily-hour-row>th,
.daily-schedule-table tbody tr.daily-hour-row>td{border-top:1px solid #b8c8da!important}
.daily-schedule-table tbody tr.daily-half-row>th,
.daily-schedule-table tbody tr.daily-half-row>td{border-top:1px dotted #c9d5e3!important}
.daily-schedule-table .daily-schedule-heading-row th{position:sticky;top:0;overflow:visible!important}
.daily-schedule-table .daily-schedule-heading-row th>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}
.daily-column-resizer{position:absolute;top:0;right:-4px;width:9px;height:100%;padding:0;border:0;background:transparent;cursor:col-resize;z-index:8}
.daily-column-resizer::after{content:"";position:absolute;top:22%;bottom:22%;left:4px;width:1px;background:#c4d1df;opacity:.35}
.daily-column-resizer:hover::after,.daily-column-resizer:active::after{width:2px;background:#2f6fda;opacity:1}
body.is-resizing-daily-column,body.is-resizing-daily-column *{cursor:col-resize!important;user-select:none!important}
.daily-schedule-table [hidden]{display:none!important}
.daily-schedule-empty-slot td{padding:0!important}

/* 157차: 상세 일정 시간 더블클릭 편집창을 표의 overflow와 무관한 고정 팝업으로 표시 */
.client-inline-time-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,34,55,.38)}
.client-inline-time-dialog{width:min(460px,calc(100vw - 32px));padding:22px;border:1px solid #c9d8e8;border-radius:16px;background:#fff;box-shadow:0 20px 60px rgba(15,34,55,.28)}
.client-inline-time-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.client-inline-time-dialog-head h3{margin:3px 0 0;font-size:22px;color:#10263e}.client-inline-time-dialog-head .modal-close{width:36px;height:36px;border:1px solid #d2deea;border-radius:10px;background:#fff;font-size:22px;cursor:pointer}
.client-inline-time-help{margin:12px 0 18px;color:#60748a;font-size:13px}.client-inline-time-dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.client-inline-time-dialog-grid label>span{display:block;margin-bottom:7px;font-size:13px;font-weight:800;color:#1d3853}.client-inline-time-selects{display:grid;grid-template-columns:1fr 1fr;gap:8px}.client-inline-time-selects select{width:100%;height:42px;padding:0 10px;border:1px solid #c7d7e8;border-radius:9px;background:#fff;font-size:14px}.client-inline-time-dialog .client-inline-time-actions{margin-top:20px}.daily-schedule-table [data-inline-time]{cursor:pointer}.daily-schedule-table [data-inline-time]:hover{background:#edf5ff}
@media(max-width:560px){.client-inline-time-dialog-grid{grid-template-columns:1fr}}

/* 158차: 일정 수정 날짜 변경 + MONTHLY SCHEDULE 요일 선택 */
.monthly-weekday-filter{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:9px;font-size:11px;font-weight:900;color:#334155;flex-wrap:wrap}
.monthly-weekday-filter-title{white-space:nowrap}
.monthly-weekday-filter-options{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}
.weekday-filter-option{position:relative;display:inline-flex;cursor:pointer}
.weekday-filter-option input{position:absolute;opacity:0;pointer-events:none}
.weekday-filter-option span{display:inline-flex;align-items:center;justify-content:center;min-width:31px;height:30px;padding:0 8px;border:1px solid #cbd8e8;border-radius:8px;background:#fff;color:#52657d;font-size:11px;font-weight:900;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}
.weekday-filter-option input:checked+span{border-color:#2f6bd8;background:#2f6bd8;color:#fff;box-shadow:0 3px 8px rgba(47,107,216,.20)}
.weekday-filter-option input:focus-visible+span{outline:3px solid rgba(59,118,219,.22);outline-offset:2px}
.weekday-filter-option.weekday-filter-all span{min-width:43px}
.weekday-filter-option:has(input:indeterminate) span{border-color:#7ba5ef;background:#eaf2ff;color:#174ea6}
.dashboard-style-calendar [data-weekday-column]{transition:opacity .18s ease,filter .18s ease,box-shadow .18s ease,background-color .18s ease}
.dashboard-style-calendar .weekday-filter-dimmed{opacity:.24;filter:grayscale(.2)}
.dashboard-style-calendar .schedule-day.weekday-filter-dimmed{pointer-events:none}
.dashboard-style-calendar .schedule-weekdays .weekday-filter-selected{background:#dbeafe!important;color:#174ea6;box-shadow:inset 0 -3px 0 #2f6bd8}
.dashboard-style-calendar .schedule-day.weekday-filter-selected{opacity:1;background:#f3f8ff;box-shadow:inset 0 0 0 1px rgba(47,107,216,.28)}
.schedule-edit-date-field label{display:grid;gap:7px;font-size:12px;font-weight:900;color:#26364b}
.schedule-edit-date-field input[type="date"]{width:100%;height:42px;border:1px solid #cfdbeb;border-radius:10px;background:#fff;padding:0 12px;font:inherit}
@media(max-width:760px){.monthly-weekday-filter{display:flex;justify-content:center}.monthly-weekday-filter-title{width:100%;text-align:center}.weekday-filter-option span{min-width:29px;padding:0 7px}}


/* 162차: MONTHLY SCHEDULE 헤더 가로 배치, 요일 실제 필터링, 최소 13px */
.counselor-month-panel .schedule-month-head{align-items:center}
.counselor-month-panel .schedule-month-center{flex:1;min-width:0;display:grid;grid-template-columns:minmax(150px,.75fr) minmax(310px,1.25fr);align-items:center;gap:18px;text-align:left}
.counselor-month-panel .schedule-month-copy{text-align:left}
.counselor-month-panel .schedule-month-copy .eyebrow{font-size:13px!important;line-height:1.3;margin:0 0 5px}
.counselor-month-panel .schedule-month-copy h2{font-size:20px!important;line-height:1.25;margin:0}
.counselor-month-panel .schedule-month-controls{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;text-align:center}
.counselor-month-panel .schedule-month-controls>small{font-size:13px!important;line-height:1.35;color:#64748b;white-space:nowrap}
.counselor-month-panel .monthly-weekday-filter{margin-top:3px;gap:5px;font-family:inherit;font-size:13px!important;font-weight:800;color:#334155;flex-wrap:nowrap}
.counselor-month-panel .monthly-weekday-filter-title{font-family:inherit;font-size:13px!important;font-weight:800;line-height:1.3}
.counselor-month-panel .monthly-weekday-filter-options{gap:3px;flex-wrap:nowrap}
.counselor-month-panel .weekday-filter-option span{min-width:auto;height:auto;padding:0;border:0;border-radius:0;background:transparent;color:#52657d;font-family:inherit;font-size:13px!important;font-weight:800;box-shadow:none!important}
.counselor-month-panel .weekday-filter-option input{position:static;opacity:1;pointer-events:auto;width:13px;height:13px;margin:0 2px 0 0;accent-color:#2f6bd8}
.counselor-month-panel .weekday-filter-option{align-items:center}
.counselor-month-panel .weekday-filter-option input:checked+span{border:0;background:transparent;color:#174ea6;box-shadow:none}
.counselor-month-panel .weekday-filter-option.weekday-filter-all span{min-width:auto}
.counselor-month-panel .weekday-filter-option:has(input:indeterminate) span{border:0;background:transparent;color:#174ea6}
.counselor-month-panel .dashboard-style-calendar .schedule-weekdays,
.counselor-month-panel .dashboard-style-calendar .schedule-days{grid-template-columns:repeat(var(--visible-weekday-count,7),minmax(0,1fr))!important}
.counselor-month-panel .dashboard-style-calendar .weekday-filter-hidden{display:none!important}
.counselor-month-panel .dashboard-style-calendar .schedule-weekdays span{font-size:13px!important}
.counselor-month-panel .dashboard-style-calendar .schedule-day-number,
.counselor-month-panel .dashboard-style-calendar .schedule-day-number span,
.counselor-month-panel .dashboard-style-calendar .schedule-day-number b{font-size:13px!important}
.counselor-month-panel .dashboard-style-calendar .schedule-event,
.counselor-month-panel .dashboard-style-calendar .schedule-event time,
.counselor-month-panel .dashboard-style-calendar .schedule-event span{font-size:13px!important}
.counselor-month-panel .dashboard-style-calendar .schedule-day.weekday-filter-selected{background:#f3f8ff}
@media(max-width:1100px){.counselor-month-panel .schedule-month-center{grid-template-columns:1fr;gap:8px}.counselor-month-panel .schedule-month-copy{text-align:center}.counselor-month-panel .schedule-month-controls>small{white-space:normal}}
@media(max-width:760px){.counselor-month-panel .monthly-weekday-filter{flex-wrap:wrap}.counselor-month-panel .monthly-weekday-filter-title{width:auto}.counselor-month-panel .monthly-weekday-filter-options{flex-wrap:wrap;justify-content:center}}

/* 163차: MONTHLY SCHEDULE 헤더 좌우 정렬 및 선택 요일 전용 달력 표시 보완 */
.counselor-month-panel .schedule-month-head-split{
 display:grid;
 grid-template-columns:minmax(210px,1fr) minmax(420px,1.45fr);
 align-items:center;
 gap:24px;
 margin-bottom:14px;
 text-align:left;
}
.counselor-month-panel .schedule-month-left,
.counselor-month-panel .schedule-month-right{display:flex;align-items:center;min-width:0}
.counselor-month-panel .schedule-month-left{justify-content:flex-start;gap:12px}
.counselor-month-panel .schedule-month-right{justify-content:flex-end;gap:12px}
.counselor-month-panel .schedule-month-copy{min-width:0;text-align:left}
.counselor-month-panel .schedule-month-copy .eyebrow{margin:0 0 4px;font-family:inherit;font-size:13px!important;line-height:1.25;font-weight:900;letter-spacing:.12em}
.counselor-month-panel .schedule-month-copy h2{margin:0;font-family:inherit;font-size:22px!important;line-height:1.2;font-weight:900}
.counselor-month-panel .schedule-month-controls{align-items:flex-end;justify-content:center;text-align:right}
.counselor-month-panel .schedule-month-controls>small{font-family:inherit;font-size:13px!important;line-height:1.35;white-space:nowrap}
.counselor-month-panel .monthly-weekday-filter{justify-content:flex-end;margin-top:4px;gap:7px;font-family:inherit;font-size:13px!important;font-weight:800;line-height:1.25}
.counselor-month-panel .monthly-weekday-filter-title{font-family:inherit;font-size:13px!important;font-weight:800;white-space:nowrap}
.counselor-month-panel .monthly-weekday-filter-options{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap}
.counselor-month-panel .weekday-filter-option{display:inline-flex;align-items:center;gap:2px;font-family:inherit;font-size:13px!important;line-height:1.2;white-space:nowrap}
.counselor-month-panel .weekday-filter-option input{width:14px;height:14px;margin:0;flex:0 0 auto;accent-color:#2f6bd8}
.counselor-month-panel .weekday-filter-option span{font-family:inherit;font-size:13px!important;font-weight:800;line-height:1.2}
.counselor-month-panel .dashboard-style-calendar .schedule-weekdays,
.counselor-month-panel .dashboard-style-calendar .schedule-days{grid-template-columns:repeat(var(--visible-weekday-count,7),minmax(0,1fr))!important}
.counselor-month-panel .dashboard-style-calendar .weekday-filter-hidden{display:none!important}
.counselor-month-panel .dashboard-style-calendar .schedule-weekdays span.weekday-filter-last-visible,
.counselor-month-panel .dashboard-style-calendar .schedule-day.weekday-filter-last-visible{border-right:0!important}
.counselor-month-panel .dashboard-style-calendar .schedule-weekdays span,
.counselor-month-panel .dashboard-style-calendar .schedule-day-number,
.counselor-month-panel .dashboard-style-calendar .schedule-day-number span,
.counselor-month-panel .dashboard-style-calendar .schedule-day-number b,
.counselor-month-panel .dashboard-style-calendar .schedule-event,
.counselor-month-panel .dashboard-style-calendar .schedule-event time,
.counselor-month-panel .dashboard-style-calendar .schedule-event span{font-size:13px!important;font-family:inherit}
@media(max-width:1180px){
 .counselor-month-panel .schedule-month-head-split{grid-template-columns:1fr;gap:10px}
 .counselor-month-panel .schedule-month-left,.counselor-month-panel .schedule-month-right{justify-content:space-between}
 .counselor-month-panel .schedule-month-controls{align-items:flex-end}
}
@media(max-width:760px){
 .counselor-month-panel .schedule-month-right{align-items:flex-start}
 .counselor-month-panel .schedule-month-controls{align-items:flex-start;text-align:left}
 .counselor-month-panel .schedule-month-controls>small{white-space:normal}
 .counselor-month-panel .monthly-weekday-filter{justify-content:flex-start;align-items:flex-start;flex-wrap:wrap}
 .counselor-month-panel .monthly-weekday-filter-options{justify-content:flex-start;flex-wrap:wrap}
}

/* 165차: 상담신청서 대상자 다중 선택 및 발송 준비 */
.intake-bulk-panel{margin-bottom:18px}
.intake-bulk-filter{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(200px,1.4fr) auto;gap:10px;align-items:end;margin:14px 0}
.intake-bulk-filter label{display:grid;gap:6px;font-size:13px;font-weight:700}
.intake-bulk-list{max-height:300px;overflow:auto;border:1px solid var(--line,#d8e2ef);border-radius:12px}
.intake-bulk-list table{width:100%;border-collapse:collapse}
.intake-bulk-list th,.intake-bulk-list td{padding:8px 10px;border-bottom:1px solid var(--line,#e2e8f0);font-size:13px;text-align:left;white-space:nowrap}
.intake-selected-wrap{margin-top:14px}
.intake-selected-wrap .selected-scroll{max-height:220px;overflow:auto}
.intake-bulk-results{margin-top:16px;padding-top:14px;border-top:1px solid var(--line,#d8e2ef)}
.intake-bulk-results .selected-table th,.intake-bulk-results .selected-table td{font-size:13px}
.intake-bulk-failed{margin-top:12px;padding:12px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:13px}
.intake-bulk-failed ul{margin:6px 0 0;padding-left:20px}
@media(max-width:900px){.intake-bulk-filter{grid-template-columns:1fr 1fr}.intake-bulk-filter button{grid-column:1/-1}.intake-bulk-list{overflow-x:auto}}

/* 166차: 상담신청서 다중 발송 화면을 집단상담 페이지와 동일한 카드형 디자인으로 통일 */
.intake-bulk-group-design{padding:20px!important;border:1px solid #d9e4f1!important;border-radius:18px!important;background:#fff!important;box-shadow:0 8px 24px rgba(23,55,94,.055)!important;overflow:visible!important}
.intake-bulk-group-design .intake-bulk-journal{display:grid!important;gap:16px!important;border:0!important;background:transparent!important;overflow:visible!important}
.intake-bulk-group-design .intake-bulk-title{display:flex!important;align-items:center!important;justify-content:space-between!important;text-align:left!important;font-size:27px!important;font-weight:900!important;letter-spacing:-.04em!important;color:#0b1f3a!important;padding:0 0 4px!important}
.intake-bulk-group-design .intake-bulk-title:after{content:"BULK INTAKE DISPATCH"!important;font-size:11px!important;letter-spacing:.13em!important;color:#7b8da5!important;font-weight:900!important}
.intake-bulk-guide{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid #d9e4f1;border-radius:14px;background:#f8fbff}
.intake-bulk-guide strong{display:block;color:#15395f;font-size:14px;font-weight:900;margin-bottom:4px}
.intake-bulk-guide p{margin:0;color:#5e7188;font-size:13px;line-height:1.55}
.intake-bulk-group-design .intake-participant-section{display:block!important;padding:18px!important;border:1px solid #d9e4f1!important;border-radius:16px!important;background:#fff!important;box-shadow:0 5px 18px rgba(23,55,94,.04)!important}
.intake-bulk-group-design .intake-participant-section>.group-label{display:flex!important;align-items:center!important;gap:9px!important;justify-content:flex-start!important;min-height:auto!important;margin:0 0 14px!important;padding:0!important;border:0!important;background:transparent!important;color:#0f2742!important;font-size:15px!important;font-weight:900!important;text-align:left!important}
.intake-bulk-group-design .intake-participant-section>.group-label:before{content:""!important;width:5px!important;height:18px!important;border-radius:999px!important;background:#2f6fd7!important;flex:0 0 auto!important}
.intake-bulk-group-design .participant-tools{padding:0!important;border:0!important}
.intake-bulk-group-design .intake-bulk-filter{margin:0;padding:14px!important;border:1px solid #d9e4f1!important;border-radius:14px!important;background:#f8fbff!important}
.intake-bulk-group-design .intake-bulk-filter label{font-size:12px!important;font-weight:900!important;color:#475569!important}
.intake-bulk-group-design .intake-bulk-filter select,.intake-bulk-group-design .intake-bulk-filter input{display:block;width:100%;min-height:42px;margin-top:5px;border:1px solid #cfdbea;border-radius:10px;background:#fff;padding:9px 10px;font:inherit}
.intake-bulk-group-design .intake-bulk-list,.intake-bulk-group-design .intake-selected-wrap{border:1px solid #d9e4f1!important;border-radius:14px!important;overflow:auto!important;background:#fff!important}
.intake-bulk-group-design .intake-bulk-list{margin-top:12px;max-height:260px}
.intake-bulk-group-design .intake-selected-wrap{padding:14px!important;margin-top:12px!important}
.intake-bulk-group-design .selected-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#15395f;font-size:14px;font-weight:900}
.intake-bulk-group-design .selected-title span{display:inline-flex;align-items:center;justify-content:center;min-width:50px;padding:5px 10px;border-radius:999px;background:#eaf2ff;color:#1d5eb8;font-size:13px}
.intake-bulk-group-design .participant-list table,.intake-bulk-group-design .selected-table{width:100%;border-collapse:collapse}
.intake-bulk-group-design .participant-list th,.intake-bulk-group-design .participant-list td,.intake-bulk-group-design .selected-table th,.intake-bulk-group-design .selected-table td{padding:7px 8px;line-height:1.3;border-bottom:1px solid #e2e8f0;font-size:13px;text-align:center;vertical-align:middle}
.intake-bulk-group-design .participant-list th,.intake-bulk-group-design .selected-table th{background:#f1f6fc!important;color:#294767!important;font-weight:900!important;position:sticky;top:0;z-index:1}
.intake-bulk-group-design .participant-list tr:hover,.intake-bulk-group-design .selected-table tr:hover{background:#f8fbff!important}
.intake-bulk-group-design .participant-list td:nth-child(2){text-align:left}
.intake-bulk-group-design .action-row{display:flex!important;justify-content:flex-end!important;gap:10px!important;margin-top:14px!important}
.intake-bulk-group-design .action-row .primary-btn{min-width:180px!important;height:44px!important;border-radius:12px!important}
.intake-bulk-group-design .intake-bulk-results{margin-top:14px;padding:14px;border:1px solid #d9e4f1;border-radius:14px;background:#fbfdff}
@media(max-width:760px){
 .intake-bulk-group-design{padding:14px!important}
 .intake-bulk-group-design .intake-bulk-title{font-size:23px!important}
 .intake-bulk-group-design .intake-bulk-title:after{display:none!important}
 .intake-bulk-guide{align-items:flex-start;flex-direction:column}
 .intake-bulk-group-design .intake-participant-section{padding:14px!important}
}

/* 167차 상담신청서 내담자 검색형 선택 및 코드번호 숨김 */
.intake-client-search-panel{max-width:980px;margin-left:auto;margin-right:auto;text-align:center}
.intake-client-search-panel h2{margin-bottom:16px}
.intake-client-search-box{position:relative;max-width:580px;margin:0 auto;text-align:left}
.intake-client-search-box>label{display:block;margin-bottom:7px;font-size:13px;font-weight:800;color:#31415a}
.intake-client-search-box>input{width:100%;min-height:44px;padding:0 14px;border:1px solid #ccd9ea;border-radius:10px;background:#fff;font:inherit;font-size:14px;color:#18243a}
.intake-client-search-box>input:focus{outline:0;border-color:#2e6ddd;box-shadow:0 0 0 3px rgba(46,109,221,.12)}
.intake-client-search-results{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;max-height:310px;overflow:auto;border:1px solid #ccd9ea;border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(24,36,58,.16)}
.intake-client-search-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;border:0;border-bottom:1px solid #edf2f8;background:#fff;text-align:left;cursor:pointer;font:inherit}
.intake-client-search-item:last-child{border-bottom:0}
.intake-client-search-item:hover,.intake-client-search-item:focus{background:#eef5ff;outline:0}
.intake-client-search-item strong{font-size:14px;color:#172238}
.intake-client-search-item span{font-size:13px;color:#64748b;text-align:right}
.intake-client-search-empty{padding:18px;text-align:center;font-size:13px;color:#6b778c}

/* 168차: 상담신청서 다중 발송 팝업 및 제목 내담자 정보 표시 */
.intake-bulk-modal[hidden]{display:none!important}
.intake-bulk-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,30,50,.56);backdrop-filter:blur(2px)}
.intake-bulk-modal .intake-bulk-panel{width:min(1380px,calc(100vw - 48px));max-height:calc(100vh - 48px);margin:0;overflow:auto!important;box-shadow:0 24px 70px rgba(10,30,55,.28)!important}
.intake-bulk-modal .intake-bulk-title{position:sticky;top:0;z-index:5;background:#fff;padding-bottom:10px!important}
.intake-bulk-modal .intake-bulk-title:after{margin-left:auto;margin-right:12px}
.intake-bulk-modal-close{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 38px;border:1px solid #d3dfed;border-radius:10px;background:#fff;color:#18314e;font:700 24px/1 Arial,sans-serif;cursor:pointer}
.intake-bulk-modal-close:hover{background:#f1f6fc;border-color:#aabdd4}
body.modal-open{overflow:hidden}
.intake-share-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media(max-width:760px){.intake-bulk-modal{padding:10px}.intake-bulk-modal .intake-bulk-panel{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.intake-bulk-modal .intake-bulk-title{font-size:21px!important}.intake-share-actions{justify-content:flex-start}}


/* 170차: 상담 신청서 상단 전송 패널 제거 및 제목줄 통합 */
.intake-compact-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;padding:8px 6px 10px!important;margin-bottom:8px!important}
.intake-heading-copy{min-width:0;flex:1 1 auto}
.intake-heading-copy .eyebrow{margin:0 0 2px!important;font-size:10px!important;line-height:1.2!important}
.intake-heading-line{display:flex;align-items:center;gap:14px;min-width:0;flex-wrap:wrap}
.intake-heading-line h1{margin:0!important;font-size:22px!important;line-height:1.25!important;white-space:nowrap}
.intake-heading-line p{margin:0!important;color:#65758b!important;font-size:12px!important;line-height:1.4!important;white-space:normal}
.intake-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;flex-wrap:nowrap}
.intake-heading-actions .primary-btn,.intake-heading-actions .secondary-btn{min-height:36px!important;padding:0 14px!important;border-radius:8px!important;font-size:12px!important;white-space:nowrap}
.intake-heading-status{margin:0 6px 8px!important;min-height:0!important}
@media(max-width:1050px){.intake-compact-heading{align-items:flex-start!important;flex-direction:column!important}.intake-heading-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.intake-heading-line h1{white-space:normal}}

/* 171차: 내담자 주요 페이지 상단 정보 표시 통일 */
.client-context-heading>div:first-child{min-width:0;flex:1}
.client-context-heading h1{margin:2px 0 9px;font-size:24px;font-weight:900;line-height:1.25;color:#12233f}
.client-context-line{display:flex;align-items:center;flex-wrap:wrap;gap:7px 0;font-size:13px;line-height:1.35;color:#52627a}
.client-context-line>*{display:inline-flex;align-items:center}
.client-context-line>*+*::before{content:"·";margin:0 8px;color:#a2afc1;font-weight:700}
.client-context-line .client-context-case::before{display:none}
.client-context-case{font-size:15px!important;font-weight:900!important;padding:5px 10px!important}
.client-context-name{font-size:18px;font-weight:900;color:#10213d}
.client-context-item{font-size:13px;font-weight:700;color:#52627a}
.client-context-counselor{font-size:14px;font-weight:900;color:#173d70}
@media(max-width:900px){.client-context-heading{align-items:flex-start}.client-context-line{gap:6px 0}.client-context-heading h1{font-size:21px}.client-context-name{font-size:17px}}

/* Intake family heading: remove redundant English eyebrow and normalize spacing */
.intake-section .intake-family-head{align-items:center;margin:0 0 10px;min-height:38px}
.intake-section .intake-family-head h2{margin:0;font-size:18px;line-height:1.35}
.intake-section .intake-family-head .small-btn{margin:0}
@media(max-width:760px){.intake-section .intake-family-head{gap:10px;margin-bottom:8px}.intake-section .intake-family-head h2{font-size:17px}}

/* 175차: 상담 예약·일정 수정 팝업 */
.preferred-summary-box .preferred-choice{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:7px 0;
  cursor:pointer;
}
.preferred-summary-box .preferred-choice input[type="radio"]{
  width:17px;
  height:17px;
  margin:0;
  accent-color:#2563eb;
}
.appointment-end-time-only{
  display:grid !important;
  grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) !important;
  gap:8px !important;
}
.appointment-end-time-only select{width:100% !important;min-width:0 !important;}
@media (max-width:680px){
  .appointment-end-time-only{grid-template-columns:1fr 1fr !important;}
}

/* 177차: 일정 팝업 핵심 입력 상단 배치 */
.schedule-dialog .schedule-priority-block{margin-top:2px}
.schedule-dialog .schedule-location-block h3{margin:0 0 10px;font-size:14px}
.schedule-dialog .schedule-location-block{padding:14px 14px 12px}

/* 179차: 상세 일정에서 일정 수정 팝업이 다른 레이어 뒤에 가려지지 않도록 보완 */
#availabilityDialog[open],
#availabilityDialog.dialog-fallback-open {
  z-index: 10050 !important;
}
#availabilityDialog::backdrop {
  background: rgba(15, 23, 42, .56);
}


/* 180차: 등록·수정 팝업의 내담자 검색과 방문·상담 장소를 항상 최상단에 고정 */
#availabilityDialog .form-grid.two-col > .client-search-field.schedule-priority-block{
  order:-30 !important;
  grid-column:1 / -1 !important;
  margin-top:0 !important;
}
#availabilityDialog .form-grid.two-col > .schedule-location-block.schedule-priority-block{
  order:-29 !important;
  grid-column:1 / -1 !important;
  margin-top:0 !important;
}
#availabilityDialog .form-grid.two-col > label,
#availabilityDialog .form-grid.two-col > input,
#availabilityDialog .form-grid.two-col > div:not(.client-search-field):not(.schedule-location-block){
  order:0;
}


/* 192차: 월간 일정 화면 유지, DAILY SCHEDULE 서체 통일, 월 이동 버튼 개선 */
.counselor-month-panel .month-nav{
 width:40px;
 height:40px;
 flex:0 0 40px;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 border:1px solid #c8d9ef;
 border-radius:12px;
 background:linear-gradient(180deg,#ffffff 0%,#edf5ff 100%);
 color:#1f5fbf;
 font-family:inherit;
 font-size:0;
 font-weight:900;
 line-height:1;
 box-shadow:0 4px 12px rgba(31,95,191,.12);
 transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease;
}
.counselor-month-panel .month-nav span{
 display:block;
 transform:translateY(-1px);
 font-size:28px;
 line-height:1;
 color:inherit;
}
.counselor-month-panel .month-nav:hover{
 transform:translateY(-1px);
 border-color:#79a6e8;
 background:linear-gradient(180deg,#f8fbff 0%,#e3efff 100%);
 box-shadow:0 7px 16px rgba(31,95,191,.18);
}
.counselor-month-panel .month-nav:active{transform:translateY(0);box-shadow:0 3px 8px rgba(31,95,191,.12)}
.counselor-month-panel .month-nav:focus-visible{outline:3px solid rgba(47,107,216,.22);outline-offset:2px}

.client-daily-schedule-panel .daily-head-copy .eyebrow{
 font-family:inherit;
 font-size:13px!important;
 line-height:1.25;
 font-weight:900;
 letter-spacing:.12em;
 color:#2563d9;
}
.client-daily-schedule-panel .daily-head-copy h2{
 font-family:inherit;
 font-size:22px!important;
 line-height:1.2;
 font-weight:900;
 color:#10233f;
}
.client-daily-schedule-panel .daily-head-copy p,
.client-daily-schedule-panel .daily-head-actions,
.client-daily-schedule-panel .client-daily-list,
.client-daily-schedule-panel .daily-schedule-table,
.client-daily-schedule-panel .daily-schedule-table th,
.client-daily-schedule-panel .daily-schedule-table td,
.client-daily-schedule-panel .daily-schedule-table button,
.client-daily-schedule-panel .daily-schedule-table select{
 font-family:inherit;
 font-size:13px!important;
 color:#243b5a;
}
.client-daily-schedule-panel .daily-schedule-table th{font-weight:900;color:#17365d}
.client-daily-schedule-panel .daily-schedule-table td{font-weight:700}
.client-daily-schedule-panel .client-name-link{font-size:13px!important;color:#174ea6;font-weight:900}

/* 246: 통합 정신건강 관리 > 화면에서 일괄 입력 - 표 전체 폭 비고정 */
#imhManualSheet{width:auto!important;min-width:0!important;max-width:none!important;table-layout:fixed!important;}
#imhManualSheet col{box-sizing:border-box;}
#imhManualSheet thead th{position:sticky;}
#imhManualSheet .imh-sheet-resizer{position:absolute;right:-3px;top:0;width:7px;height:100%;cursor:col-resize;z-index:20;touch-action:none;}
#imhManualSheet .imh-sheet-resizer:after{content:"";position:absolute;left:3px;top:6px;bottom:6px;width:1px;background:transparent;}
#imhManualSheet th:hover .imh-sheet-resizer:after,#imhManualSheet .imh-sheet-resizer.dragging:after{background:#2f6fe4;}

/* 248차: 내담자 목록 기본정보 관리 메모 표시 및 필터 */
.client-table [data-client-column="memo"]{min-width:220px;max-width:360px}
.client-table td.client-management-memo{white-space:normal!important;word-break:break-word;line-height:1.45;text-align:left!important;max-width:360px}
.client-table .client-filter-row [name="memo"]{min-width:180px;text-align:left!important;text-align-last:auto!important}
@media(max-width:900px){.client-table{min-width:2100px}}

/* 249: 내담자 관리 목록 - 관리 메모 즉시 작성/수정 */
.client-table td.client-management-memo{vertical-align:top}
.client-memo-view{display:flex;align-items:flex-start;gap:8px;min-width:220px}
.client-memo-text{flex:1;min-width:0;white-space:pre-wrap;word-break:break-word}
.client-memo-edit-btn{flex:0 0 auto;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:7px;padding:4px 8px;font-size:12px;font-weight:700;cursor:pointer}
.client-memo-edit-btn:hover{border-color:#2f6fe4;color:#1d4ed8;background:#eff6ff}
.client-memo-editor{display:grid;gap:7px;min-width:300px}
.client-memo-editor textarea{width:100%;min-width:280px;max-width:420px;min-height:86px;resize:vertical;padding:8px 9px;border:1px solid #94a3b8;border-radius:8px;font:inherit;line-height:1.45;background:#fff}
.client-memo-editor textarea:focus{outline:2px solid rgba(47,111,228,.18);border-color:#2f6fe4}
.client-memo-editor-actions{display:flex;gap:6px;justify-content:flex-end}

/* 250: 내담자 목록 관리 메모 인라인 작성/수정 안정화 */
.client-management-memo [data-client-memo-edit],
.client-management-memo [data-client-memo-save],
.client-management-memo [data-client-memo-cancel]{position:relative;z-index:2}
.client-memo-help{display:block;color:#64748b;font-size:11px;line-height:1.35;text-align:right}
.client-memo-editor textarea:disabled{background:#f8fafc;color:#475569}

/* 251: 상담기록 진행내용 특별상담 3종 */
.progress-record-table .progress-primary-row td{vertical-align:middle}
.progress-record-table .progress-main-cell{min-width:270px}
.progress-record-table .progress-special-cell{min-width:165px;text-align:center;background:#fbfdff}
.progress-record-table .progress-special-wide{min-width:235px}
.progress-record-table .progress-special-cell label{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;font-weight:700;color:#243b53}
@media(max-width:1100px){.progress-record-table .progress-special-cell label{white-space:normal;line-height:1.35}}


/* 252: 진행 내용 첫 줄 - 세로 구분선 제거 및 특별상담 항목 우측 정렬 */
.progress-record-table .progress-primary-content{padding:10px 14px!important;}
.progress-record-table .progress-primary-content{border-left:0!important;border-right:0!important;}
.progress-record-table .progress-primary-content>div{border:0!important;}
.progress-record-table .progress-primary-content{display:table-cell;}
.progress-record-table .progress-primary-content .progress-primary-left{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;}
.progress-record-table .progress-primary-content .progress-primary-specials{float:right;display:flex;align-items:center;justify-content:flex-end;gap:46px;min-width:720px;}
.progress-record-table .progress-primary-content .progress-primary-specials label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-weight:700;color:#243b53;}
.progress-record-table .progress-primary-content .progress-primary-specials .progress-special-wide{min-width:0!important;width:auto!important;justify-content:center;padding-left:10px;padding-right:10px;}
@media(max-width:1250px){
  .progress-record-table .progress-primary-content .progress-primary-specials{gap:22px;min-width:0;}
}
@media(max-width:980px){
  .progress-record-table .progress-primary-content .progress-primary-specials{float:none;margin-top:10px;justify-content:flex-start;flex-wrap:wrap;}
  .progress-record-table .progress-primary-content .progress-primary-specials .progress-special-wide{min-width:0;justify-content:flex-start;}
}


/* 253: 대형재난 출동대원 추가상담 박스 폭을 다른 체크항목과 동일한 compact 규칙으로 통일 */
.progress-record-table .progress-primary-specials .progress-special-wide{
  flex:0 0 auto!important;
  min-width:0!important;
  width:auto!important;
  max-width:none!important;
}


/* 266: 월간/전체 상담 스케줄 - 상담사별 고유 색상 (일정유형 좌측선은 유지) */
.schedule-event.counselor-color-0,.dashboard-schedule-item.counselor-color-0{background:#e8f1ff!important;color:#174a8b!important}
.schedule-event.counselor-color-1,.dashboard-schedule-item.counselor-color-1{background:#e7f8f2!important;color:#14614a!important}
.schedule-event.counselor-color-2,.dashboard-schedule-item.counselor-color-2{background:#fff0e6!important;color:#8b451e!important}
.schedule-event.counselor-color-3,.dashboard-schedule-item.counselor-color-3{background:#f2eaff!important;color:#5d3994!important}
.schedule-event.counselor-color-4,.dashboard-schedule-item.counselor-color-4{background:#fff6cf!important;color:#765b00!important}
.schedule-event.counselor-color-5,.dashboard-schedule-item.counselor-color-5{background:#e9f7ff!important;color:#17607e!important}
.schedule-event.counselor-color-6,.dashboard-schedule-item.counselor-color-6{background:#ffeaf1!important;color:#8a3454!important}
.schedule-event.counselor-color-7,.dashboard-schedule-item.counselor-color-7{background:#edf6df!important;color:#49681d!important}
.schedule-event.counselor-color-8,.dashboard-schedule-item.counselor-color-8{background:#f5ece4!important;color:#70482f!important}
.schedule-event.counselor-color-9,.dashboard-schedule-item.counselor-color-9{background:#e9edff!important;color:#3d4b94!important}
.schedule-event.counselor-color-10,.dashboard-schedule-item.counselor-color-10{background:#e6f8fb!important;color:#16606c!important}
.schedule-event.counselor-color-11,.dashboard-schedule-item.counselor-color-11{background:#faeafc!important;color:#763c7e!important}
.schedule-event.counselor-color-12,.dashboard-schedule-item.counselor-color-12{background:#fff0f0!important;color:#8b3838!important}
.schedule-event.counselor-color-13,.dashboard-schedule-item.counselor-color-13{background:#eef2e2!important;color:#536329!important}
.schedule-event.counselor-color-14,.dashboard-schedule-item.counselor-color-14{background:#f1efff!important;color:#50458c!important}
.schedule-event.counselor-color-15,.dashboard-schedule-item.counselor-color-15{background:#e8f4f0!important;color:#2c6556!important}
.schedule-event[class*="counselor-color-"],.dashboard-schedule-item[class*="counselor-color-"]{box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}

/* 267: 신규 상담사도 자동 고유색 지정 - 월간/전체 상담 스케줄 공통 */
.schedule-event.counselor-auto-color,.dashboard-schedule-item.counselor-auto-color{background:var(--counselor-bg)!important;color:var(--counselor-fg)!important;box-shadow:inset 0 0 0 1px rgba(15,23,42,.055)}

/* 270: 기관방문 월간입력 팝업 - 화면 비율/디자인 재정렬 */
.org-visit-bulk-dialog{width:min(1320px,calc(100vw - 36px))!important;max-width:none!important;max-height:calc(100dvh - 28px)!important;margin:auto}
.org-visit-bulk-card{width:100%!important;max-width:none!important;height:min(820px,calc(100dvh - 36px));max-height:calc(100dvh - 36px)!important;padding:0!important;overflow:hidden;display:flex;flex-direction:column;border-radius:18px}
.org-visit-bulk-card .dialog-head{flex:0 0 auto;margin:0;padding:20px 22px 16px;border-bottom:1px solid var(--line);align-items:flex-start;background:#fff}
.org-visit-bulk-card .dialog-head h2{font-size:21px;line-height:1.25;margin-top:2px}.org-visit-bulk-card .dialog-head p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.org-visit-bulk-card .dialog-head .icon-btn{flex:0 0 36px}
.org-visit-bulk-helper{flex:0 0 auto;padding:16px 22px 14px;border-bottom:1px solid var(--line);background:#f8fbff}
.org-visit-bulk-helper-grid{display:grid;grid-template-columns:minmax(140px,.9fr) minmax(115px,.7fr) minmax(115px,.7fr) minmax(170px,1.1fr) minmax(190px,1.25fr) minmax(120px,.72fr) minmax(150px,.9fr);gap:12px;align-items:end}
.org-visit-bulk-helper-grid label{display:grid;gap:6px;font-size:11px;font-weight:900;color:#475569;min-width:0}.org-visit-bulk-helper-grid input,.org-visit-bulk-helper-grid select{width:100%;min-width:0;height:38px;padding:0 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-size:12px}
.org-visit-weekday-generator{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px dashed #dbe5f1}.org-visit-weekday-generator strong{margin-right:4px;font-size:12px}.org-visit-weekday-generator label{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;padding:4px 3px}.org-visit-weekday-generator input{width:auto;margin:0}.org-visit-bulk-helper .field-help{margin:9px 0 0;font-size:11px;color:#64748b;line-height:1.5}
.org-visit-bulk-table-wrap{flex:1 1 auto;min-height:0;overflow:auto;padding:0 22px;background:#fff;scrollbar-gutter:stable}
.org-visit-bulk-table{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;font-size:11px;table-layout:auto}.org-visit-bulk-table th{position:sticky;top:0;z-index:2;background:#eff6ff;padding:11px 7px;border-bottom:1px solid #bfdbfe;white-space:nowrap;text-align:center}.org-visit-bulk-table td{padding:7px;border-bottom:1px solid #e5e7eb;vertical-align:middle;background:#fff}.org-visit-bulk-table input,.org-visit-bulk-table select{width:100%;min-width:0;height:36px;padding:5px 8px;font-size:11px;border:1px solid #cbd5e1;border-radius:7px;background:#fff}
.org-visit-bulk-table td:nth-child(1){min-width:128px}.org-visit-bulk-table td:nth-child(2),.org-visit-bulk-table td:nth-child(3){min-width:92px}.org-visit-bulk-table td:nth-child(4){min-width:155px}.org-visit-bulk-table td:nth-child(5){min-width:190px}.org-visit-bulk-table td:nth-child(6){min-width:105px}.org-visit-bulk-table td:nth-child(7){min-width:120px}.org-visit-bulk-table td:nth-child(8){min-width:180px}.org-visit-bulk-table td:nth-child(9){min-width:62px;text-align:center}.bulk-fixed-counselor{display:block;min-width:90px;font-weight:800;padding:8px 5px}.danger-text{border:0;background:transparent;color:#b91c1c;font-weight:900;cursor:pointer}
.org-visit-bulk-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 22px 16px;border-top:1px solid var(--line);background:#fff;box-shadow:0 -8px 20px rgba(15,23,42,.035)}.org-visit-bulk-footer>div:first-child{display:flex;align-items:center;gap:12px;min-width:0}.org-visit-bulk-footer .form-status{max-width:720px;white-space:pre-line;color:#b91c1c;font-size:11px}.org-visit-bulk-footer .dialog-actions{margin:0;flex:0 0 auto}
@media(max-width:1180px){.org-visit-bulk-dialog{width:calc(100vw - 24px)!important}.org-visit-bulk-helper-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.org-visit-bulk-dialog{width:calc(100vw - 14px)!important;max-height:calc(100dvh - 14px)!important}.org-visit-bulk-card{height:calc(100dvh - 14px);max-height:calc(100dvh - 14px)!important;border-radius:12px}.org-visit-bulk-card .dialog-head,.org-visit-bulk-helper,.org-visit-bulk-footer{padding-left:14px;padding-right:14px}.org-visit-bulk-helper-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.org-visit-bulk-table-wrap{padding:0 14px}.org-visit-bulk-footer{align-items:flex-start;flex-direction:column}.org-visit-bulk-footer .dialog-actions{width:100%}.org-visit-bulk-footer .dialog-actions button{flex:1}}


/* 272: 대시보드 전체 상담 스케줄 - 날짜 좌측 상단 고정 및 일정 글자 대비 강화 */
.dashboard-schedule-grid .dashboard-schedule-cell{
  position:relative;
  padding:27px 7px 7px!important;
  vertical-align:top;
  align-content:start!important;
}
.dashboard-schedule-grid .dashboard-schedule-cell .day-number{
  position:absolute;
  top:7px;
  left:8px;
  z-index:2;
  display:block;
  margin:0!important;
  padding:0;
  color:#0f172a!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.2;
  text-align:left!important;
}
.dashboard-schedule-grid .dashboard-schedule-item{
  color:#334155!important;
  font-weight:700!important;
  opacity:1!important;
  line-height:1.42!important;
  text-rendering:optimizeLegibility;
}
.dashboard-schedule-grid .dashboard-schedule-item b{
  color:#1e3a5f!important;
  font-weight:900!important;
}
.dashboard-schedule-grid .dashboard-schedule-item.counselor-auto-color{
  color:#334155!important;
}


/* 273: 대시보드 전체 상담 스케줄 상단 압축 - 설명/범례를 우측 상단으로 이동 */
.dashboard-schedule-calendar .dashboard-month-head{
  display:grid!important;
  grid-template-columns:auto minmax(310px,1fr) minmax(520px,auto) auto;
  align-items:center!important;
  column-gap:14px;
  min-height:0!important;
  padding:10px 14px!important;
  border-bottom:1px solid var(--line-2);
}
.dashboard-schedule-calendar .dashboard-month-title{min-width:0;}
.dashboard-schedule-calendar .dashboard-month-title .eyebrow{margin:0 0 2px!important;line-height:1.15;}
.dashboard-schedule-calendar .dashboard-month-title h2{margin:0!important;line-height:1.2;}
.dashboard-schedule-calendar .dashboard-month-meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  min-width:0;
}
.dashboard-schedule-calendar .dashboard-month-meta>small{
  margin:0!important;
  white-space:nowrap;
  color:#71839a;
  font-size:10px;
}
.dashboard-schedule-calendar .dashboard-schedule-legend-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:visible;
  white-space:nowrap;
}
.dashboard-schedule-calendar .dashboard-schedule-legend-wrap>strong{font-size:10px;}
.dashboard-schedule-calendar .dashboard-schedule-legend{gap:5px 8px!important;min-width:0!important;}
.dashboard-schedule-calendar .dashboard-schedule-legend span{font-size:9px;}
.dashboard-schedule-calendar .dashboard-month-head .month-nav{align-self:center;}
@media(max-width:1380px){
  .dashboard-schedule-calendar .dashboard-month-head{grid-template-columns:auto minmax(280px,1fr) auto;}
  .dashboard-schedule-calendar .dashboard-month-meta{grid-column:2/3;justify-content:flex-start;gap:10px;margin-top:3px;}
  .dashboard-schedule-calendar .dashboard-month-head>a:last-child{grid-column:3;grid-row:1/3;}
}
@media(max-width:980px){
  .dashboard-schedule-calendar .dashboard-month-head{grid-template-columns:auto minmax(0,1fr) auto;row-gap:5px;}
  .dashboard-schedule-calendar .dashboard-month-meta{grid-column:2/3;flex-wrap:wrap;}
  .dashboard-schedule-calendar .dashboard-schedule-legend-wrap{overflow-x:auto;max-width:100%;}
}

/* 274: 대시보드 상단 4개 핵심 현황카드 세로 압축 */
.integrated-stat-grid{gap:12px;margin-bottom:14px}
.integrated-stat-card{
  min-height:132px!important;
  padding:11px 16px!important;
  gap:5px!important;
  border-radius:14px;
}
.integrated-card-title{font-size:12px;line-height:1.2}
.integrated-main-number{font-size:30px;line-height:.98}
.integrated-main-number.compact{font-size:25px}
.integrated-card-note{margin-top:1px!important;font-size:10.5px;line-height:1.25}
.integrated-list{gap:2px!important;margin-top:1px!important}
.case-filter-links{gap:1px!important}
.case-filter-links a{padding:4px 8px!important;min-height:27px;border-radius:7px}
.integrated-list em,.recent-dispatch em{font-size:11px}
.integrated-list b{font-size:14px}
.integrated-tag-list{gap:4px;margin-top:1px}
.integrated-tag-list span{padding:4px 7px;font-size:10.5px}
.recent-dispatch{grid-template-columns:1fr auto auto;align-items:center;gap:3px 7px;padding-bottom:4px}
.recent-dispatch b{font-size:19px}
.recent-dispatch small{grid-column:auto;font-size:9.5px}
.monitor-row{grid-template-columns:34px repeat(4,1fr);gap:4px;font-size:9.5px}
.monitor-row strong{font-size:10.5px}
.monitor-row span{padding:2px 4px;text-align:center}
.integrated-client-card{min-height:132px!important}
.integrated-card-main-link{padding:11px 16px 6px!important;gap:4px!important}
.integrated-client-substats{padding:3px 12px 5px!important}
.integrated-client-substats a{padding:3px 2px!important;font-size:11px!important;line-height:1.25}
@media(max-width:1180px){.integrated-stat-card,.integrated-client-card{min-height:128px!important}}

/* 284: 기본정보 - 인사정보 적용일 제거, 주소/결혼 상태/자녀 한 줄 고정 */
.profile-family-row{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  align-items:end;
}
.profile-family-row>label{min-width:0;margin:0;}
@media(max-width:900px){
  .profile-family-row{grid-template-columns:1fr;}
}


/* 289차: 월간 일정 헤더를 패널 폭 안에 안정적으로 배치 */
.counselor-month-panel{overflow:hidden}
.counselor-month-panel .schedule-month-head-split{
  display:grid!important;
  grid-template-columns:minmax(225px,.82fr) minmax(0,1.18fr)!important;
  align-items:center!important;
  gap:14px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0 0 12px!important;
  padding:0!important;
}
.counselor-month-panel .schedule-month-left,
.counselor-month-panel .schedule-month-right{min-width:0!important;max-width:100%!important}
.counselor-month-panel .schedule-month-left{
  display:grid!important;
  grid-template-columns:38px minmax(130px,1fr) 38px!important;
  align-items:center!important;
  justify-content:stretch!important;
  gap:8px!important;
}
.counselor-month-panel .schedule-month-left .month-nav{
  width:36px!important;height:36px!important;min-width:36px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  border:1px solid #cfdceb!important;border-radius:10px!important;
  background:#f7fbff!important;color:#245da8!important;
  box-shadow:0 3px 9px rgba(34,84,145,.08)!important;
  font-size:25px!important;line-height:1!important;padding:0!important;
}
.counselor-month-panel .schedule-month-copy{min-width:0!important;text-align:left!important}
.counselor-month-panel .schedule-month-copy .eyebrow{font-size:11px!important;letter-spacing:.12em!important;color:#2f6fda!important;margin:0 0 3px!important}
.counselor-month-panel .schedule-month-copy h2{font-size:20px!important;line-height:1.15!important;margin:0!important;white-space:nowrap!important}
.counselor-month-panel .schedule-month-right{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;
  overflow:hidden!important;
}
.counselor-month-panel .schedule-month-controls{
  width:100%!important;min-width:0!important;
  display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:center!important;
  gap:5px!important;text-align:right!important;
}
.counselor-month-panel .schedule-month-controls>small{
  width:100%!important;max-width:100%!important;
  font-size:12px!important;line-height:1.3!important;color:#687b91!important;
  white-space:normal!important;overflow-wrap:anywhere!important;
}
.counselor-month-panel .monthly-weekday-filter{
  width:100%!important;min-width:0!important;margin:0!important;
  display:flex!important;align-items:center!important;justify-content:flex-end!important;
  gap:6px!important;flex-wrap:wrap!important;
}
.counselor-month-panel .monthly-weekday-filter-title{font-size:12px!important;white-space:nowrap!important}
.counselor-month-panel .monthly-weekday-filter-options{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;
  gap:4px 6px!important;flex-wrap:wrap!important;min-width:0!important;
}
.counselor-month-panel .weekday-filter-option{gap:2px!important;font-size:12px!important}
.counselor-month-panel .weekday-filter-option input{width:13px!important;height:13px!important}
.counselor-month-panel .weekday-filter-option span{font-size:12px!important}
@media(max-width:1280px){
  .counselor-month-panel .schedule-month-head-split{grid-template-columns:minmax(210px,.75fr) minmax(0,1.25fr)!important;gap:10px!important}
  .counselor-month-panel .schedule-month-copy h2{font-size:19px!important}
  .counselor-month-panel .schedule-month-controls>small{font-size:11px!important}
  .counselor-month-panel .monthly-weekday-filter-title,
  .counselor-month-panel .weekday-filter-option span{font-size:11px!important}
}
@media(max-width:1040px){
  .counselor-month-panel{overflow-x:auto!important}
  .counselor-month-panel .schedule-month-head-split{grid-template-columns:1fr!important;gap:9px!important}
  .counselor-month-panel .schedule-month-left{width:min(340px,100%)!important}
  .counselor-month-panel .schedule-month-right{justify-content:flex-start!important;overflow:visible!important}
  .counselor-month-panel .schedule-month-controls{align-items:flex-start!important;text-align:left!important}
  .counselor-month-panel .monthly-weekday-filter,
  .counselor-month-panel .monthly-weekday-filter-options{justify-content:flex-start!important}
}

/* 290차 상담사 근무일지 - 제공 양식 9개 항목 및 자동/수동 입력 구분 */
.counselor-work-log-dialog{width:min(98vw,1720px)!important}
.counselor-work-log-card{width:min(97vw,1680px)!important}
.work-log-table{min-width:1660px!important}
.work-log-table col.col-date{width:132px!important}
.work-log-table col.col-start,.work-log-table col.col-end{width:128px!important}
.work-log-table col.col-location{width:240px!important}
.work-log-table col.col-content{width:430px!important}
.work-log-table col.col-individual{width:110px!important}
.work-log-table col.col-group-team{width:240px!important}
.work-log-table col.col-group{width:100px!important}
.work-log-table col.col-remarks{width:220px!important}
.work-log-table th{vertical-align:middle!important;line-height:1.35!important;padding:9px 7px!important}
.work-log-table th small{display:block;margin-top:3px;color:#70839a;font-size:9px;font-weight:700;white-space:normal}
.work-log-table [data-work-log-group-team],.work-log-table [data-work-log-remarks]{width:100%;min-height:86px;resize:vertical;border:1px solid #cdd9e8;border-radius:8px;padding:8px;font:inherit;line-height:1.4;box-sizing:border-box}
.work-log-help strong{color:#174b85}
@media(max-width:760px){.work-log-table{min-width:1580px!important}}


/* 291: 상담사별 고유색을 일정 왼쪽 표시선에도 동일하게 적용 */
.dashboard-schedule-grid .dashboard-schedule-item.counselor-auto-color,
.counselor-calendar .schedule-event.counselor-auto-color{
  border-left:4px solid var(--counselor-accent)!important;
}
.dashboard-schedule-grid .dashboard-schedule-item.counselor-auto-color{
  padding-left:6px!important;
}
.counselor-calendar .schedule-event.counselor-auto-color{
  border-radius:4px!important;
}

/* 292차 상담사 근무일지: 시작/종료시간 시·분 분리, 분 10분 간격 */
.work-log-time-selects{display:flex;align-items:center;gap:4px;min-width:128px}
.work-log-time-selects select{min-width:60px;width:60px;height:36px;padding:0 4px;border:1px solid #cfdced;border-radius:8px;background:#fff;color:#17324f;font-size:12px}
.work-log-table .col-start,.work-log-table .col-end{min-width:138px!important;width:138px!important}
@media(max-width:900px){.work-log-time-selects{min-width:120px}.work-log-time-selects select{min-width:56px;width:56px}}

/* 293차 상담사 근무일지 UI 정돈: 날짜/시/분 입력 그룹 정렬 및 셀 내부 맞춤 */
.counselor-work-log-dialog{width:min(98vw,1760px)!important;max-width:1760px!important}
.counselor-work-log-card{width:100%!important;padding:20px!important}
.work-log-table-wrap{border-radius:14px!important;background:#fff!important}
.work-log-table{min-width:1700px!important;font-size:12px!important}
.work-log-table col.col-date{width:150px!important}
.work-log-table col.col-start,.work-log-table col.col-end{width:176px!important}
.work-log-table col.col-location{width:245px!important}
.work-log-table col.col-content{width:430px!important}
.work-log-table col.col-individual{width:112px!important}
.work-log-table col.col-group-team{width:230px!important}
.work-log-table col.col-group{width:104px!important}
.work-log-table col.col-remarks{width:225px!important}
.work-log-table th{padding:10px 8px!important;height:58px!important;background:#eaf2fb!important;border-color:#d5e1ef!important}
.work-log-table td{padding:10px 8px!important;border-color:#dfe8f2!important}
.work-log-table tbody tr[data-work-log-row]{height:118px}
.work-log-table input[type="date"]{
  display:block!important;width:132px!important;min-width:132px!important;height:38px!important;
  margin:0 auto!important;padding:0 8px!important;border:1px solid #c9d8ea!important;border-radius:9px!important;
  background:#fff!important;color:#17324f!important;font-size:11px!important;text-align:center!important;
}
.work-log-time-selects{
  width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:1fr 1fr!important;
  gap:6px!important;align-items:center!important;justify-content:center!important;
}
.work-log-time-selects select{
  width:100%!important;min-width:0!important;height:38px!important;margin:0!important;padding:0 24px 0 8px!important;
  border:1px solid #c9d8ea!important;border-radius:9px!important;background-color:#fff!important;color:#17324f!important;
  font-size:11px!important;font-weight:700!important;text-align:center!important;text-align-last:center!important;
}
.work-log-time-selects select:focus,.work-log-table input[type="date"]:focus{
  outline:none!important;border-color:#4f8fe8!important;box-shadow:0 0 0 3px rgba(47,111,218,.10)!important;
}
.work-log-table [data-work-log-location],
.work-log-table [data-work-log-content],
.work-log-table [data-work-log-group-team],
.work-log-table [data-work-log-remarks]{border-radius:9px!important;border-color:#c9d8ea!important;background:#fff!important}
.work-log-table input[type="number"]{height:38px!important;border-radius:9px!important;border-color:#c9d8ea!important}
.work-log-table tbody tr:nth-child(even) td{background:#f8fbff!important}
.work-log-table tbody tr[data-work-log-row]:hover td{background:#f2f7ff!important}
.work-log-help{padding:9px 11px!important;border:1px solid #dbe6f2!important;border-radius:10px!important;background:#f8fbff!important;line-height:1.55!important}
@media(max-width:900px){
  .counselor-work-log-card{padding:14px!important}
  .work-log-table{min-width:1680px!important}
  .work-log-table col.col-date{width:146px!important}
  .work-log-table col.col-start,.work-log-table col.col-end{width:170px!important}
}

/* 333차 - 심리검사 PDF 자동 파싱/프로파일 */
.pdf-first-upload{order:-1}
.pdf-parser-box{border:1px solid #cfe0f6;background:#f8fbff;border-radius:16px;padding:16px 18px;display:block}
.pdf-parser-box[hidden]{display:none}
.pdf-parser-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.pdf-parser-head strong{font-size:15px;color:#133a68}
.pdf-parser-status{font-size:13px;color:#52657a}
.pdf-parser-status.working{color:#1765c1;font-weight:700}
.pdf-parser-status.ok{color:#0b7b4b;font-weight:700}
.pdf-parser-meta{display:flex;gap:8px;flex-wrap:wrap;margin:7px 0 10px}
.pdf-parser-meta>span{background:#fff;border:1px solid #d8e4f2;border-radius:999px;padding:5px 9px;font-size:12px;color:#41566d}
.pdf-parser-meta .parser-warning{background:#fff8e9;border-color:#efd39c;color:#8a5a00}
.pdf-parser-preview{background:#fff;border:1px solid #dce6f1;border-radius:12px;min-height:72px;padding:12px;margin-bottom:8px;overflow:auto}
.parser-loading,.parser-empty{padding:20px;text-align:center;color:#718096}
.parsed-line-wrap svg,.saved-profile-line svg{display:block;width:100%;height:auto;min-width:620px;font-family:inherit;overflow:visible}
.parsed-line-wrap .grid,.saved-profile-line .grid{stroke:#d8e0ea;stroke-width:1}
.parsed-line-wrap svg text,.saved-profile-line svg text{font-size:11px;fill:#66788b}
.parsed-line-wrap .profile-line,.saved-profile-line .profile-line{fill:none;stroke:#1769e0;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.parsed-line-wrap circle,.saved-profile-line circle{fill:#1769e0}
.parsed-line-wrap .axis-code,.saved-profile-line .axis-code{font-size:12px;font-weight:700;fill:#26384b}
.parsed-line-wrap .point-value,.saved-profile-line .point-value{font-size:11px;font-weight:700;fill:#1769e0}
.parsed-bars,.saved-profile-bars{display:grid;gap:9px}
.parsed-bar-row,.saved-bar-row{display:grid;grid-template-columns:42px minmax(105px,150px) minmax(220px,1fr) 44px;align-items:center;gap:8px;font-size:12px}
.parsed-bar-row>b,.saved-bar-row>b{font-size:13px}
.parsed-bar-track,.saved-bar-track{position:relative;height:18px;background:linear-gradient(90deg,#f3f5f7 0 30%,#e7eef6 30% 70%,#f3f5f7 70% 100%);border-radius:4px;overflow:hidden}
.parsed-bar-track em,.saved-bar-track em{position:absolute;left:0;top:4px;height:10px;background:#10a6c0;border-radius:0 3px 3px 0}
.parsed-bar-track .cut,.saved-bar-track .cut{position:absolute;z-index:2;top:0;bottom:0;width:1px;background:#64748b}
.parsed-bar-track .cut30,.saved-bar-track .cut30{left:30%}.parsed-bar-track .cut70,.saved-bar-track .cut70{left:70%}
.test-grid-profile{display:grid;grid-template-columns:1fr;gap:18px}
.test-card-profile{padding:0;overflow:hidden}
.test-card-profile>.test-card-head{padding:18px 20px;border-bottom:1px solid #e8eef5}
.test-head-actions{display:flex;align-items:center;gap:8px}
.auto-parse-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#e9f7f1;color:#0c7a50;font-size:11px;font-weight:800}
.saved-test-profile{padding:18px 20px;background:#fbfdff;border-bottom:1px solid #e8eef5}
.saved-profile-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}
.saved-profile-head strong{font-size:15px}.saved-profile-head span{font-size:12px;color:#64748b}
.saved-profile-line{overflow:auto;border:1px solid #e0e8f1;background:#fff;border-radius:12px;padding:8px}
.saved-profile-bars{border:1px solid #e0e8f1;background:#fff;border-radius:12px;padding:14px}
.saved-score-table-wrap{overflow:auto;margin-top:12px}
.saved-score-table{width:100%;border-collapse:collapse;font-size:12px;background:#fff}
.saved-score-table th,.saved-score-table td{border:1px solid #dfe6ee;padding:7px 9px;text-align:center;white-space:nowrap}
.saved-score-table th{background:#f2f6fa;color:#384b60}.saved-score-table td:first-child{text-align:left}
.test-card-profile>dl{padding:18px 20px;margin:0}.test-card-profile>footer{padding:10px 20px 14px}
@media(max-width:760px){.parsed-bar-row,.saved-bar-row{grid-template-columns:38px 90px minmax(150px,1fr) 36px}.saved-profile-head{align-items:flex-start;flex-direction:column}}
/* 335차 심리검사 PDF 드래그앤드롭 + 자동 프로파일 */
.psych-upload-zone{position:relative;min-height:150px;border:2px dashed #b9cce7;border-radius:18px;background:#f8fbff;padding:24px;display:flex;align-items:center;gap:18px;cursor:pointer;transition:.18s ease}
.psych-upload-zone:hover,.psych-upload-zone.drag-over{border-color:#4f8fe8;background:#f0f6ff;box-shadow:0 0 0 4px rgba(79,143,232,.08)}
.psych-upload-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.psych-upload-icon{width:66px;height:66px;border-radius:16px;background:#e8f1ff;color:#2468cf;display:flex;align-items:center;justify-content:center;font-weight:900;letter-spacing:.5px;flex:0 0 auto}
.psych-upload-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.psych-upload-copy strong{font-size:17px;color:#162337}.psych-upload-copy span{font-size:13px;color:#526477}.psych-upload-copy small{font-size:12px;color:#78889a}
.psych-upload-file{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0;max-width:42%;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #d8e3f2}
.psych-upload-file:empty{display:none}.psych-upload-file b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.psych-upload-file span{font-size:11px;color:#6b7b8f;white-space:nowrap}
.psych-file-clear{border:0;background:#eef3f9;color:#536273;width:25px;height:25px;border-radius:50%;font-size:18px;line-height:1;cursor:pointer}
.psych-profile-preview{border:1px solid #d7e4f4;border-radius:18px;background:#fff;padding:20px;margin-top:2px}
.psych-profile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #edf2f8;padding-bottom:14px;margin-bottom:14px}.psych-profile-top h3{margin:2px 0 0;font-size:18px;color:#18263a}
.pdf-parser-status{font-size:12px;color:#617287;background:#f3f6fa;border-radius:999px;padding:7px 11px}.pdf-parser-status.working{color:#215fab;background:#edf5ff}.pdf-parser-status.ok{color:#18704b;background:#eaf9f1}.pdf-parser-status.warning{color:#9b5f17;background:#fff5e7}
.pdf-parser-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.psych-meta-chip{display:inline-flex;gap:5px;align-items:center;border:1px solid #e1e8f1;background:#f8fafc;border-radius:999px;padding:7px 10px;font-size:12px;color:#536579}.psych-meta-chip b{color:#1d2c40}.parser-warning{display:inline-flex;align-items:center;background:#fff2ec;color:#9c4929;border:1px solid #ffd8c8;border-radius:999px;padding:7px 10px;font-size:12px}
.psych-profile-empty,.psych-profile-loading{min-height:130px;border-radius:14px;background:#f8fafc;display:flex;align-items:center;justify-content:center;color:#7b8897;font-size:13px;text-align:center}.psych-profile-loading{gap:10px}.psych-profile-loading i{width:18px;height:18px;border:2px solid #d4e1f2;border-top-color:#3b7ee1;border-radius:50%;animation:psychSpin .8s linear infinite}@keyframes psychSpin{to{transform:rotate(360deg)}}
.psych-profile-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px}.psych-score-card{border:1px solid #e1e9f3;border-radius:14px;padding:12px;background:#fbfdff}.psych-score-card>div{display:flex;flex-direction:column;gap:2px}.psych-score-card b{font-size:13px;color:#265da9}.psych-score-card span{font-size:11px;color:#718196;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.psych-score-card strong{display:block;margin-top:8px;font-size:22px;color:#17273d}.psych-score-card small{font-size:11px;color:#8290a0}
.psych-line-chart{border:1px solid #edf1f6;border-radius:14px;background:#fff;padding:10px;overflow:auto}.psych-line-chart svg{display:block;width:100%;min-width:650px;max-height:330px}.psych-line-chart .grid{stroke:#e8edf4;stroke-width:1}.psych-line-chart text{font-size:11px;fill:#708095}.psych-line-chart .profile-line{fill:none;stroke:#276fda;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.psych-line-chart circle{fill:#276fda}.psych-line-chart .point-value{fill:#245ca8;font-weight:700}.psych-line-chart .axis-code{fill:#263b54;font-weight:700}
.psych-bars{display:grid;gap:10px}.psych-bar-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr 38px;align-items:center;gap:10px}.psych-bar-label{display:flex;gap:7px;align-items:center;min-width:0}.psych-bar-label b{color:#2863b3}.psych-bar-label span{font-size:12px;color:#64758a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.psych-bar-track{height:18px;background:#f0f3f7;border-radius:999px;position:relative;overflow:hidden}.psych-bar-track em{position:absolute;left:0;top:0;bottom:0;background:#4b8de8;border-radius:999px}.psych-bar-track .cut{position:absolute;top:0;bottom:0;width:1px;background:#9ca9b8;z-index:2}.psych-bar-track .cut30{left:30%}.psych-bar-track .cut70{left:70%}.psych-bar-row>strong{font-size:12px;color:#26384f;text-align:right}
.psych-parser-note{display:block;margin-top:13px;color:#78899b;font-size:11px}
@media(max-width:900px){.psych-upload-zone{align-items:flex-start;flex-wrap:wrap}.psych-upload-file{margin-left:84px;max-width:calc(100% - 84px);width:100%}.psych-profile-top{flex-direction:column}.psych-bar-row{grid-template-columns:120px 1fr 32px}}

/* 338차 K-OCEAN PDF 직접판독 프로파일 */
.kocean-profile-chart{border:1px solid #dce5f0;border-radius:16px;background:#fff;padding:14px 16px 6px;overflow:auto}.kocean-profile-chart svg{display:block;width:100%;min-width:720px;max-height:470px}.kocean-scale-head{display:grid;grid-template-columns:repeat(5,1fr);margin-left:15.7%;font-size:11px;font-weight:700;color:#53657a;text-align:center;padding:0 2% 2px}.kocean-profile-chart .ko-band{opacity:.72}.kocean-profile-chart .ko-band-0{fill:#f4f7fb}.kocean-profile-chart .ko-band-1{fill:#edf1f6}.kocean-profile-chart .ko-band-2{fill:#e5e9ef}.kocean-profile-chart .ko-band-3{fill:#edf1f6}.kocean-profile-chart .ko-band-4{fill:#f4f7fb}.kocean-profile-chart .ko-vgrid{stroke:#dfe5ec;stroke-width:1}.kocean-profile-chart .ko-rowline{stroke:#aeb8c5;stroke-width:1}.kocean-profile-chart .ko-code{font-size:21px;font-weight:800;fill:#2d70d6}.kocean-profile-chart .ko-name{font-size:14px;font-weight:700;fill:#26384d}.kocean-profile-chart .ko-axis{font-size:10px;fill:#697a8e}.kocean-profile-chart .ko-profile-line{fill:none;stroke:#1465e8;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.kocean-profile-chart circle{fill:#1465e8}.kocean-profile-chart .ko-point{font-size:13px;font-weight:800;fill:#2d3748}.kocean-score-table-wrap{overflow:auto;margin-top:12px}.kocean-score-table{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff;border-top:2px solid #627185;border-bottom:1px solid #aeb8c5}.kocean-score-table th,.kocean-score-table td{border-right:1px solid #c5ced9;border-bottom:1px solid #c5ced9;padding:9px 8px;text-align:center;font-size:13px}.kocean-score-table th:first-child{width:115px;background:#e6f2fb;color:#26384d}.kocean-score-table thead th{background:#f7f9fc;font-weight:800}.kocean-score-table thead th small{display:block;margin-top:2px;font-size:10px;font-weight:600;color:#6f7f91}.kocean-score-table td b{display:block;font-size:17px}.kocean-score-table td small{display:block;font-size:11px;color:#66778a}.kocean-score-table tr:last-child th,.kocean-score-table tr:last-child td{border-bottom:0}.kocean-score-table th:last-child,.kocean-score-table td:last-child{border-right:0}

/* 339차 심리검사 화면 2열 비교 + 컴팩트 프로파일 */
.psych-test-register-grid{row-gap:12px}
.psych-test-register-grid .psych-upload-zone{order:-10}
.psych-upload-zone{min-height:98px;padding:16px 20px;border-radius:14px;gap:14px}
.psych-upload-icon{width:52px;height:52px;border-radius:13px;font-size:14px}
.psych-upload-copy{gap:3px}.psych-upload-copy strong{font-size:15px}.psych-upload-copy span{font-size:12px}.psych-upload-copy small{font-size:11px}
.psych-upload-file{padding:8px 10px;border-radius:10px}
.psych-profile-preview{padding:12px 14px;border-radius:14px;margin-top:0}
.psych-profile-top{padding-bottom:8px;margin-bottom:8px;gap:10px;align-items:center}.psych-profile-top h3{font-size:16px;margin:0}.psych-profile-top .eyebrow{margin-bottom:2px}
.pdf-parser-status{padding:5px 9px;font-size:11px}
.pdf-parser-meta{margin-bottom:8px;gap:6px}.psych-meta-chip,.parser-warning{padding:5px 8px;font-size:11px}
.psych-profile-empty,.psych-profile-loading{min-height:76px;border-radius:10px;font-size:12px}
.psych-profile-cards{gap:7px;margin-bottom:9px}.psych-score-card{padding:8px 9px;border-radius:10px}.psych-score-card strong{margin-top:4px;font-size:18px}
.psych-line-chart{padding:6px;border-radius:10px}.psych-line-chart svg{max-height:220px}
.psych-bars{gap:6px}.psych-bar-track{height:14px}.psych-bar-row{gap:7px}.psych-bar-label span{font-size:11px}
.psych-parser-note{margin-top:7px;font-size:10px}
.kocean-profile-chart{padding:7px 9px 2px;border-radius:10px}.kocean-profile-chart svg{min-width:580px;max-height:285px}.kocean-scale-head{font-size:10px;padding-bottom:0}
.kocean-profile-chart .ko-code{font-size:17px}.kocean-profile-chart .ko-name{font-size:11px}.kocean-profile-chart .ko-axis{font-size:9px}.kocean-profile-chart .ko-point{font-size:11px}.kocean-profile-chart .ko-profile-line{stroke-width:4}
.kocean-score-table-wrap{margin-top:7px}.kocean-score-table th,.kocean-score-table td{padding:5px 5px;font-size:11px}.kocean-score-table th:first-child{width:88px}.kocean-score-table td b{font-size:14px}.kocean-score-table td small{font-size:9px}

/* 검사 이력은 넓은 화면에서 최소 2건 동시 비교 */
.test-grid-profile{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
.test-card-profile{min-width:0;border-radius:14px;height:100%;display:flex;flex-direction:column}
.test-card-profile>.test-card-head{padding:11px 12px}
.test-card-profile .test-card-head strong{font-size:13px}.test-card-profile .test-card-head small{font-size:10px}
.test-head-actions{gap:5px}.auto-parse-badge{padding:4px 6px;font-size:9px}.test-head-actions .small-btn{padding:5px 7px;font-size:10px}
.saved-test-profile{padding:10px 11px}
.saved-profile-head{margin-bottom:6px;gap:6px}.saved-profile-head strong{font-size:13px}.saved-profile-head span{font-size:10px}
.saved-profile-line{padding:4px;border-radius:9px}.saved-profile-line svg{max-height:190px}
.saved-profile-bars{padding:8px;border-radius:9px;gap:5px}.saved-bar-row{grid-template-columns:32px minmax(72px,105px) minmax(100px,1fr) 30px;gap:5px;font-size:10px}.saved-bar-row>b{font-size:11px}.saved-bar-track{height:14px}.saved-bar-track em{top:3px;height:8px}
.saved-score-table-wrap{margin-top:7px;max-height:165px;overflow:auto}.saved-score-table{font-size:10px}.saved-score-table th,.saved-score-table td{padding:4px 5px}
.test-card-profile>dl{padding:9px 11px;margin-top:auto;margin-bottom:0;display:grid;gap:5px}.test-card-profile>dl div{display:grid;grid-template-columns:68px minmax(0,1fr);gap:6px}.test-card-profile>dl dt{font-size:10px}.test-card-profile>dl dd{font-size:10px;line-height:1.35;max-height:44px;overflow:auto}
.test-card-profile>footer{padding:7px 11px 9px;font-size:9px}

@media(max-width:1100px){.test-grid-profile{grid-template-columns:1fr}.saved-profile-line svg{max-height:230px}}
@media(min-width:1800px){.test-grid-profile{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 340차 - 심리검사 검사자 분리 / 이력 삭제 */
.inline-delete-form{display:inline-flex;margin:0}
.danger-btn-soft{border-color:#fecaca!important;color:#b91c1c!important;background:#fff7f7!important}
.danger-btn-soft:hover{background:#fee2e2!important}
@media (min-width:1180px){.psych-test-register-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(220px,.55fr)}}


/* 341차 - K-OCEAN 검사이력 원본 프로파일 축 방향 / 검사자 숨김 */
.saved-kocean-profile{background:#fff;padding:4px 6px}
.saved-kocean-profile svg{min-width:620px;max-height:245px}
.saved-kocean-profile .saved-ko-band.b0{fill:#f6f8fb}.saved-kocean-profile .saved-ko-band.b1{fill:#edf1f5}.saved-kocean-profile .saved-ko-band.b2{fill:#e3e7ec}
.saved-kocean-profile .saved-ko-vgrid{stroke:#d7dde5;stroke-width:1}.saved-kocean-profile .saved-ko-row{stroke:#a7afb9;stroke-width:1}
.saved-kocean-profile .saved-ko-head{font-size:23px;font-weight:900;fill:#182536}.saved-kocean-profile .saved-ko-axis{font-size:15px;font-weight:700;fill:#5e6c7d}.saved-kocean-profile .saved-ko-unit{font-size:15px;font-weight:800;fill:#37475a}
.saved-kocean-profile .saved-ko-code{font-size:22px;font-weight:800;fill:#5f78a5}.saved-kocean-profile .saved-ko-name{font-size:16px;font-weight:800;fill:#172536}
.saved-kocean-profile .saved-ko-line{fill:none;stroke:#0f63e9;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.saved-kocean-profile circle{fill:#0f63e9}
.saved-kocean-profile .saved-ko-point{font-size:18px;font-weight:900;fill:#2b3645}

/* 343차 - 검사이력 카드 동일높이 / TCI 단위 / K-OCEAN 가독성 확대 */
.saved-tci-profile{position:relative;padding-top:27px}
.saved-tci-unit{position:absolute;top:7px;right:9px;font-size:12px;font-weight:800;color:#37475a;line-height:1}


/* 344차 - 검사자 수기입력 삭제 / 검사대상 이름 자동표시 */
.test-history-meta{display:flex!important;align-items:center;gap:5px;flex-wrap:wrap}
.history-meta-sep{color:#9aa8b8}
.history-subject-name{font-size:10px;font-weight:800;color:#315f9e}
.saved-profile-subject{font-size:10px;font-weight:800;color:#315f9e}

/* 347차 - TCI 검사이력 프로파일 높이/글자 확대 */
.saved-tci-profile{
  min-height:245px;
  box-sizing:border-box;
  padding:31px 10px 9px;
  gap:6px;
  align-content:stretch;
}
.saved-tci-profile .saved-bar-row{
  grid-template-columns:38px minmax(90px,120px) minmax(120px,1fr) 34px;
  gap:7px;
  min-height:22px;
  font-size:13px;
  line-height:1.15;
}
.saved-tci-profile .saved-bar-row>b{
  font-size:14px;
  font-weight:900;
}
.saved-tci-profile .saved-bar-row>span{
  font-size:13px;
  font-weight:700;
}
.saved-tci-profile .saved-bar-row>strong{
  font-size:13px;
  font-weight:800;
}
.saved-tci-profile .saved-bar-track{
  height:18px;
}
.saved-tci-profile .saved-bar-track em{
  top:4px;
  height:10px;
}
.saved-tci-profile .saved-tci-unit{
  top:8px;
  right:10px;
  font-size:14px;
  font-weight:900;
}

/* 348차 - K-OCEAN / TCI 프로파일 하단 기준선 수평 정렬 */
@media (min-width:1101px){
  .saved-kocean-profile,
  .saved-tci-profile{
    height:245px;
    min-height:245px;
    max-height:245px;
    box-sizing:border-box;
  }
  .saved-kocean-profile{
    display:block;
    padding:4px 6px;
    overflow:auto;
  }
  .saved-kocean-profile svg{
    height:100%;
    max-height:none;
    width:100%;
  }
  .saved-tci-profile{
    padding:31px 10px 9px;
    overflow:hidden;
  }
}

/* 349차 - K-OCEAN / TCI 결과 프로파일 영역 수평선 정밀 정렬 */
@media (min-width:1101px){
  /* 두 카드의 '결과 프로파일' 제목 행부터 동일 기준으로 고정 */
  .test-card-profile .saved-test-profile > .saved-profile-head{
    height:20px;
    min-height:20px;
    margin:0 0 6px 0;
    display:flex;
    align-items:center;
    box-sizing:border-box;
  }

  /* 시각 프로파일 박스 자체의 외곽 높이를 완전히 동일하게 고정 */
  .test-card-profile .saved-test-profile > .saved-kocean-profile,
  .test-card-profile .saved-test-profile > .saved-tci-profile{
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  /* K-OCEAN은 고정 높이 안에서 SVG가 정확히 채우도록 */
  .test-card-profile .saved-kocean-profile{
    padding:4px 6px !important;
    overflow:hidden !important;
  }
  .test-card-profile .saved-kocean-profile svg{
    display:block;
    width:100% !important;
    height:100% !important;
    max-height:none !important;
    margin:0 !important;
  }

  /* TCI도 같은 외곽 높이 안에서 8개 척도를 균등 배치 */
  .test-card-profile .saved-tci-profile{
    padding:31px 10px 9px !important;
    display:grid !important;
    grid-template-rows:repeat(8,1fr);
    gap:4px !important;
    align-content:stretch !important;
    overflow:hidden !important;
  }
  .test-card-profile .saved-tci-profile .saved-bar-row{
    min-height:0 !important;
    height:auto !important;
    align-self:stretch;
    align-items:center;
  }

  /* 표 시작 위치까지 동일한 간격으로 고정 */
  .test-card-profile .saved-test-profile > .saved-score-table-wrap{
    margin-top:7px !important;
  }
}
