:root{--ink:#1f2d2a;--muted:#6d7774;--paper:#f5f3ec;--card:#fffdf8;--line:#dedbd0;--green:#236859;--green2:#dcece6;--orange:#d87b45;--shadow:0 12px 32px rgba(34,50,46,.08)}
[hidden]{display:none!important}
.server-account{display:flex;align-items:center;gap:7px;min-height:40px;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:5px 6px 5px 10px;background:rgba(255,255,255,.07);font-size:11px}.server-account>span{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-weight:800}.server-sync-status{border-radius:12px;padding:4px 7px;background:#dcece5;color:#23634e;font-size:10px;white-space:nowrap}.server-sync-status[data-state="saving"]{background:#ffedc4;color:#7f5715}.server-sync-status[data-state="offline"],.server-sync-status[data-state="conflict"]{background:#f6e4df;color:#a54837}.server-logout{min-height:auto!important;padding:5px 7px!important;background:transparent;color:#c8d2cf;font-size:10px}.server-gate{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:rgba(22,34,31,.88);backdrop-filter:blur(10px)}.server-login-card{width:min(410px,100%);border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:32px;background:var(--card);box-shadow:0 28px 100px rgba(0,0,0,.35)}.server-mark{display:inline-block;margin-bottom:14px;border-radius:16px;padding:6px 9px;background:var(--green2);color:var(--green);font-size:10px;font-weight:900;letter-spacing:.12em}.server-login-card h2{margin:0 0 8px;font-size:25px}.server-login-card>p{margin:0 0 23px;color:var(--muted);font-size:12px;line-height:1.6}.server-login-card form{margin:0}.server-login-message{min-height:19px;margin:15px 0 0!important;text-align:center}.server-login-message.error{color:#a54837;font-weight:700}.server-conflict{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;border:1px solid #e8b5aa;border-radius:14px;padding:14px 16px;background:#fff4f1;color:#7e382d}.server-conflict>div{display:grid;gap:4px}.server-conflict strong{font-size:13px}.server-conflict span{font-size:11px;line-height:1.5}.server-conflict button{flex:none;background:#a54837;color:#fff;font-size:11px}.server-locked main{visibility:hidden}.server-mode .header-edit-button{border-color:rgba(255,255,255,.38)}
.roster-panel{margin-top:18px}.roster-panel td:nth-child(4){white-space:pre-line;line-height:1.7}.badge{display:inline-block;border-radius:20px;padding:4px 8px;background:var(--green2);color:var(--green);font-size:11px;font-weight:700}.badge.group{background:#f6e4d8;color:#9b512d}.privacy{margin-top:12px}.evaluation-list{display:grid;gap:4px;min-width:190px}.evaluation-item{display:grid;grid-template-columns:32px 84px auto;align-items:center;gap:6px;font-size:11px}.evaluation-item span{font-weight:800;color:var(--green)}.evaluation-item strong{font-size:11px}.evaluation-item small{padding:2px 5px;border-radius:9px;background:#f4eee5;color:#9b633f;font-size:10px}.evaluation-item.actual small{display:none}.evaluation-help{margin:-2px 0 13px;padding:10px 12px;border-radius:8px;background:#eef4f1;color:#48625b;font-size:11px;line-height:1.55}
.evaluation-panel{margin-top:18px}.evaluation-header,.evaluation-title,.evaluation-toolbar,.evaluation-summary{display:flex;align-items:center}.evaluation-header{justify-content:space-between;gap:16px;margin-bottom:16px}.evaluation-title{gap:10px}.evaluation-title h2{margin:0;font-size:20px}.evaluation-title p{margin:4px 0 0;color:var(--muted);font-size:12px}.evaluation-toolbar{justify-content:space-between;gap:14px;padding:10px;border-radius:12px;background:#f2f3ef;margin-bottom:14px}.evaluation-filter-tabs{display:flex;gap:5px;flex-wrap:wrap}.evaluation-filter-tabs button{padding:8px 12px;background:transparent;color:var(--muted);font-size:12px}.evaluation-filter-tabs button.active{background:#fff;color:var(--green);box-shadow:0 2px 8px rgba(34,50,46,.1)}.evaluation-summary{gap:7px;flex-wrap:wrap}.summary-chip{border-radius:15px;padding:6px 9px;background:#fff;color:var(--muted);font-size:11px;white-space:nowrap}.summary-chip strong{margin-left:3px;font-size:13px}.summary-chip.overdue{background:#f8e1db;color:#a13f31}.summary-chip.completed{background:#dcece5;color:#23634e}.evaluation-board{display:grid;gap:12px}.evaluation-person-card{border:1px solid #e2e1d8;border-radius:14px;background:#fff;padding:15px}.evaluation-person-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #ecebe4}.evaluation-person-card>header div{display:flex;align-items:baseline;gap:8px}.evaluation-person-card>header strong{font-size:16px}.evaluation-person-card>header div span,.admission-date{color:var(--muted);font-size:11px}.admission-date{padding:5px 8px;border-radius:10px;background:#f2f3ef}.evaluation-stage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.evaluation-stage-card{border:1px solid #e0e2dd;border-radius:12px;padding:12px;background:#fbfcfa}.evaluation-stage-card.overdue{border-color:#e8b5aa;background:#fff8f6}.evaluation-stage-card.today{border-color:#e7c77f;background:#fffaf0}.evaluation-stage-card.completed{border-color:#a9cdbf;background:#f5fbf8}.stage-card-heading,.stage-due-date,.stage-complete-check{display:flex;align-items:center}.stage-card-heading{justify-content:space-between;gap:8px;margin-bottom:12px}.stage-card-heading>strong{font-size:15px}.evaluation-status{display:inline-block;border-radius:12px;padding:4px 8px;font-size:10px;font-weight:800;white-space:nowrap}.evaluation-status.overdue{background:#f8e1db;color:#a13f31}.evaluation-status.today{background:#ffedc4;color:#8a5a10}.evaluation-status.upcoming{background:#e3eef6;color:#315f7e}.evaluation-status.completed{background:#dcece5;color:#23634e}.stage-due-date{justify-content:space-between;gap:8px;padding:9px 0;border-top:1px solid #eceee9;border-bottom:1px solid #eceee9}.stage-due-date span{color:var(--muted);font-size:11px}.stage-due-date strong{font-size:12px}.stage-complete-check{justify-content:center;gap:8px;margin:12px 0 8px;padding:10px;border-radius:9px;background:#edf0ed;cursor:pointer}.evaluation-stage-card.completed .stage-complete-check{background:var(--green);color:#fff}.stage-complete-check input{width:18px;height:18px;margin:0;accent-color:#fff}.stage-complete-check span{font-size:12px;font-weight:800}.stage-actual-date{margin:0;color:var(--muted);font-size:10px}.stage-actual-date input{margin-top:5px;padding:7px 8px;font-size:11px}.stage-actual-date input:disabled{background:#f0f0eb;color:#a8aeab}.evaluation-notice{margin-top:13px}.evaluation-item{grid-template-columns:32px 84px minmax(74px,1fr);min-width:235px}.evaluation-item small{white-space:nowrap}.evaluation-item.overdue small{background:#f8e1db;color:#a13f31}.evaluation-item.today small{background:#ffedc4;color:#8a5a10}.evaluation-item.upcoming small{background:#e3eef6;color:#315f7e}.evaluation-item.completed small{background:#dcece5;color:#23634e}
dialog{width:min(520px,calc(100% - 28px));border:0;border-radius:16px;padding:0;background:var(--card);color:var(--ink);box-shadow:0 24px 80px rgba(20,35,31,.3)}#titleDialog{width:min(640px,calc(100% - 28px))}#rosterImportDialog{width:min(1050px,calc(100% - 28px))}dialog::backdrop{background:rgba(25,38,35,.56);backdrop-filter:blur(3px)}.dialog-form{padding:24px}.dialog-heading,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading{margin-bottom:20px}.dialog-heading h2{margin:0;font-size:20px}.dialog-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.dialog-actions{justify-content:flex-end;margin-top:19px}.dialog-actions.with-reset{justify-content:flex-start;flex-wrap:wrap}.dialog-actions .action-spacer{flex:1}.danger{background:#f6e4df;color:#a54837}.icon-button{padding:4px 10px;background:transparent;color:var(--muted);font-size:25px;font-weight:400}.target-edit{background:var(--green2);color:var(--green)}
.preview-dialog{width:min(1050px,calc(100% - 24px));height:min(92vh,900px);max-width:none}.preview-shell{height:100%;display:flex;flex-direction:column;padding:16px}.preview-heading{margin-bottom:12px}.preview-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.preview-actions{display:flex;align-items:center;gap:8px}.preview-actions label{margin:0;color:var(--muted);font-size:10px}.preview-actions select{width:160px;margin:3px 0 0;padding:7px 8px;font-size:11px}.preview-dialog iframe{width:100%;flex:1;border:1px solid var(--line);border-radius:10px;background:white}
.print-panel{margin-top:18px}.print-controls{display:grid;grid-template-columns:150px minmax(160px,1fr) auto auto auto;align-items:end;gap:12px}.print-controls label{margin:0}.print-controls button{min-height:42px}.print-client-picker{margin-top:15px;border:1px solid var(--line);border-radius:12px;background:#f8f8f4;padding:14px}.print-client-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.print-client-heading>div{display:flex;align-items:center;gap:8px}.print-client-heading strong{font-size:13px}.print-client-heading span{color:var(--green);font-size:11px;font-weight:800}.print-client-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.print-client-option{display:flex;align-items:center;gap:9px;margin:0;border:1px solid #e2e3dc;border-radius:10px;background:#fff;padding:10px;cursor:pointer}.print-client-option:has(input:checked){border-color:#6ea18f;background:#eef7f3}.print-client-option.unavailable{opacity:.55;cursor:not-allowed}.print-client-option input{width:17px;height:17px;margin:0;accent-color:var(--green)}.print-client-option span{display:grid;gap:2px}.print-client-option strong{font-size:12px}.print-client-option small{color:var(--muted);font-size:10px}.print-client-empty{padding:18px}.compact-file-button{margin:0;white-space:nowrap}.import-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.import-summary span{border-radius:16px;padding:7px 11px;background:#eef2f0;color:var(--muted);font-size:11px}.import-summary strong{margin-left:3px;color:var(--ink)}.import-preview-table{max-height:46vh;border:1px solid var(--line);border-radius:10px}.import-preview-table thead{position:sticky;top:0;background:#f4f4ef;z-index:1}.import-preview-table td{font-size:11px}.import-preview-table td:nth-child(5){white-space:pre-line;min-width:140px}.import-status{display:inline-block;border-radius:12px;padding:4px 7px;font-size:10px;font-weight:800}.import-status.new{background:#dcece5;color:#23634e}.import-status.update{background:#ffedc4;color:#7f5715}@media(max-width:1150px){.print-controls{grid-template-columns:1fr 1fr 1fr}.print-controls button{width:100%}}@media(max-width:650px){.print-controls{grid-template-columns:1fr 1fr}.print-client-heading{align-items:flex-start;flex-direction:column}.print-client-list{grid-template-columns:1fr 1fr}}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif}.topbar{padding:34px max(5vw,28px) 30px;background:var(--ink);color:white;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.header-copy{min-width:0}.eyebrow{margin:0 0 8px;color:#a9cfc3;font-size:13px;font-weight:700;letter-spacing:.14em}.title-row{display:flex;align-items:center;gap:11px;margin-bottom:7px}.topbar h1{font-size:34px;margin:0;letter-spacing:-.04em}.header-edit-button{padding:7px 10px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;font-size:11px;white-space:nowrap}.header-edit-button:hover{background:rgba(255,255,255,.16)}.subtitle{margin:0;color:#c8d2cf}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.month-picker{font-size:13px;color:#d5ddda}.month-picker input{margin-left:8px}button,.button,input,select,textarea{font:inherit}.button,button{border:0;border-radius:9px;padding:10px 14px;cursor:pointer;font-weight:700}.secondary{background:#eef2f0;color:var(--ink)}.primary{background:var(--green);color:#fff}.full{width:100%;margin-top:5px;padding:13px}.text-button{background:transparent;color:var(--muted);padding:5px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:white;padding:10px 11px;margin-top:7px;color:var(--ink)}.month-picker input{width:auto;background:#fff}textarea{resize:vertical}main{max-width:1380px;margin:0 auto;padding:28px max(4vw,24px) 60px}.summary{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.summary-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:var(--shadow)}.summary-card .label{font-size:13px;color:var(--muted);min-height:38px}.summary-card strong{display:block;font-size:26px;margin:6px 0 3px}.summary-card small{color:var(--green)}.grid{display:grid;grid-template-columns:minmax(330px,.78fr) minmax(520px,1.22fr);gap:18px}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel-title>div{display:flex;align-items:center;gap:10px}.panel h2{font-size:19px;margin:0}.step{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--green2);color:var(--green);font-size:12px;font-weight:800}.form-row{display:grid;gap:12px}.form-row.two{grid-template-columns:1fr 1fr}.form-row.three{grid-template-columns:repeat(3,1fr)}.settings-check{display:flex;align-items:center;gap:9px;padding:11px 12px;border-radius:9px;background:#eef4f1}.settings-check input{width:18px;height:18px;margin:0}label{display:block;font-size:13px;font-weight:700;margin-bottom:13px}.hint{font-size:11px;font-weight:400;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:12px;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px 10px;border-bottom:1px solid #ebe8df;vertical-align:middle}.progress{height:6px;background:#e8e7e0;border-radius:4px;overflow:hidden;margin-top:6px;min-width:74px}.progress span{height:100%;display:block;background:var(--green);border-radius:4px}.notice{background:#f4eee5;border-left:3px solid var(--orange);padding:11px 12px;color:#6c5b4e;font-size:12px;line-height:1.6;margin:18px 0 0}.records-panel{margin-top:18px}.records-heading,.record-actions{display:flex;align-items:center;gap:10px}.count{color:var(--muted);font-size:13px}.empty{text-align:center;color:var(--muted);padding:36px 10px}.mini{padding:6px 9px;font-size:12px;margin-right:4px}.edit{background:var(--green2);color:var(--green)}.delete{background:#f6e4df;color:#a54837}.confirm-draft{background:#ffedc4;color:#7f5715}.record-status{display:inline-block;border-radius:14px;padding:5px 8px;font-size:10px;font-weight:800;white-space:nowrap}.record-status.draft{background:#ffedc4;color:#7f5715}.record-status.confirmed{background:#dcece5;color:#23634e}.draft-row{background:#fffaf0}.activity-cell{min-width:420px;line-height:1.55}.draft-notice{margin-top:12px}.toast{position:fixed;right:25px;bottom:25px;background:var(--ink);color:#fff;padding:12px 17px;border-radius:10px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.table-wrap{overflow-x:auto}
.header-actions>*{margin-bottom:0}.header-actions>button,.header-actions>.button{display:inline-flex;align-items:center;justify-content:center;min-height:40px}.header-actions .month-picker{display:flex;align-items:center;min-height:40px;margin:0;white-space:nowrap}.header-actions .month-picker input{width:auto;height:40px;margin:0 0 0 8px;padding:7px 10px}
@media(max-width:950px){.topbar{align-items:flex-start;flex-direction:column}.summary{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}
@media(max-width:580px){.summary{grid-template-columns:1fr}.form-row.two,.form-row.three{grid-template-columns:1fr}.records-heading{align-items:flex-start;flex-direction:column}.topbar h1{font-size:28px}main{padding-left:14px;padding-right:14px}.panel{padding:17px}}
@media(max-width:900px){.evaluation-toolbar{align-items:flex-start;flex-direction:column}.evaluation-stage-grid{grid-template-columns:1fr}.evaluation-stage-card{display:grid;grid-template-columns:110px 1fr 130px 145px;align-items:center;gap:10px}.stage-card-heading,.stage-due-date,.stage-complete-check{margin:0}.stage-due-date{padding:9px}.stage-actual-date input{margin:0}}
@media(max-width:650px){.evaluation-header,.evaluation-person-card>header{align-items:flex-start;flex-direction:column}.evaluation-stage-card{display:block}.stage-card-heading{margin-bottom:12px}.stage-due-date{padding:9px 0}.stage-complete-check{margin:12px 0 8px}.stage-actual-date input{margin-top:5px}.evaluation-filter-tabs{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.evaluation-filter-tabs button{width:100%}}
@media(max-width:650px){.server-account{order:2;width:100%;justify-content:space-between}.server-login-card{padding:24px}.server-conflict{align-items:stretch;flex-direction:column}.server-conflict button{width:100%}}

.termination-panel{margin-top:18px}.termination-header-actions{display:flex;align-items:center;gap:10px}.termination-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;border-radius:12px;padding:10px;background:#f2f3ef}.termination-board{display:grid;gap:7px}.termination-list-item{overflow:hidden;border:1px solid #e2e1d8;border-radius:12px;background:#fff}.termination-list-item.open{border-color:#9bbcaf;box-shadow:0 8px 20px rgba(35,104,89,.08)}.termination-summary-row{display:grid;grid-template-columns:minmax(145px,1.1fr) 112px minmax(145px,1fr) minmax(145px,1fr) 150px;align-items:center;gap:10px;min-height:66px;padding:10px 12px}.termination-list-item.open .termination-summary-row{background:#f6faf8}.termination-person{display:flex;align-items:center;gap:7px;min-width:0}.termination-person strong{font-size:15px}.termination-person>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.termination-person em{border-radius:10px;padding:3px 6px;background:#ffedc4;color:#7f5715;font-size:9px;font-style:normal;font-weight:800}.termination-summary-date,.termination-stage-summary{display:grid;gap:3px;min-width:0}.termination-summary-date span,.termination-stage-summary span{color:var(--muted);font-size:9px}.termination-summary-date strong,.termination-stage-summary strong{font-size:11px;white-space:nowrap}.termination-stage-summary{position:relative;border-left:2px solid #d9dfdc;padding-left:9px}.termination-stage-summary.overdue{border-color:#d77d6e}.termination-stage-summary.today{border-color:#d5a542}.termination-stage-summary.completed{border-color:#4f927d}.termination-stage-summary em{color:var(--muted);font-size:9px;font-style:normal;font-weight:700}.termination-stage-summary.overdue em{color:#a13f31}.termination-stage-summary.completed em{color:#23634e}.termination-row-action{display:flex;align-items:center;justify-content:flex-end;gap:7px}.termination-toggle{margin:0;background:#eef2f0;color:var(--ink);white-space:nowrap}.termination-list-item.open .termination-toggle{background:var(--green);color:#fff}.termination-expanded{border-top:1px solid #e4e8e5;padding:14px;background:#fbfcfa}.termination-expanded-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.termination-expanded-head>strong{font-size:13px}.termination-card-actions{display:flex;align-items:center}.termination-date-row{margin-top:10px;border-radius:11px;padding:11px 12px;background:#f0f4f2}.termination-date-row label{display:grid;grid-template-columns:auto 1fr 180px;align-items:center;gap:9px;margin:0}.termination-date-row input{margin:0}.termination-stage-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px}.termination-stage-card{border:1px solid #e0e2dd;border-radius:12px;padding:13px;background:#fff}.termination-stage-card.overdue{border-color:#e8b5aa;background:#fff8f6}.termination-stage-card.today{border-color:#e7c77f;background:#fffaf0}.termination-stage-card.completed{border-color:#a9cdbf;background:#f5fbf8}.termination-stage-card .stage-card-heading>div{display:grid;gap:3px}.termination-stage-card .stage-card-heading small{color:var(--muted);font-size:10px;font-weight:400}.termination-stage-card .stage-complete-check span{font-size:12px}
@media(max-width:980px){.termination-summary-row{grid-template-columns:minmax(150px,1fr) 105px 1fr 1fr}.termination-row-action{grid-column:1/-1;justify-content:flex-end;border-top:1px solid #eceeea;padding-top:8px}.termination-stage-grid{grid-template-columns:1fr}.termination-date-row label{grid-template-columns:1fr}.termination-date-row input{margin-top:2px}}
@media(max-width:650px){.termination-toolbar{align-items:flex-start;flex-direction:column}.termination-filter-tabs{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}.termination-filter-tabs button{width:100%}.termination-toolbar .evaluation-summary{width:100%}.termination-header-actions{align-items:flex-start;flex-direction:column;width:100%}.termination-header-actions button{width:100%}.termination-summary-row{grid-template-columns:1fr 1fr;gap:9px}.termination-person{grid-column:1/-1}.termination-summary-date{grid-column:1/-1;border-top:1px solid #eceeea;padding-top:8px}.termination-stage-summary{min-height:43px}.termination-row-action{grid-column:1/-1}.termination-expanded-head{align-items:flex-start;flex-direction:column}.termination-card-actions{width:100%}.termination-card-actions button{flex:1}}

/* Figma 3 · 평가 중심 가로 대시보드 */
:root{
  --ink:#17213a;
  --muted:#667085;
  --paper:#f7f8fc;
  --card:#ffffff;
  --line:#e3e6ef;
  --green:#5267c7;
  --green2:#ebeef9;
  --orange:#eaa45d;
  --cobalt:#5267c7;
  --mint:#66a394;
  --coral:#dd7467;
  --shadow:none;
}
html{scroll-behavior:smooth;scroll-padding-top:82px}
body{background:var(--paper);font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-size:14px}
button,.button,a,input,select,textarea{transition:border-color .15s ease,background-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}
button:focus-visible,.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid rgba(82,103,199,.24);outline-offset:2px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.app-layout{display:grid;min-height:100vh;grid-template-areas:"header" "navigation" "main";grid-template-rows:max-content max-content minmax(0,1fr)}
.app-shell{display:contents}
.topbar{grid-area:header;display:flex;width:100%;max-width:1440px;min-height:100px;margin:0 auto;align-items:center;justify-content:space-between;gap:24px;padding:22px 28px 14px;background:var(--paper);color:var(--ink)}
.header-brand{display:flex;min-width:0;align-items:center;gap:14px}
.brand-mark{display:grid;width:48px;height:48px;flex:none;place-items:center;border-radius:14px;background:var(--cobalt);color:#fff;font-size:16px;font-weight:800}
.header-copy{min-width:0}
.topbar h1{display:flex;gap:7px;margin:0;color:var(--ink);font-size:26px;line-height:1.35;letter-spacing:-.035em}
.eyebrow{margin:2px 0 0;color:var(--muted);font-size:13px;font-weight:500;letter-spacing:0}
.subtitle{max-width:470px;margin:2px 0 0;overflow:hidden;color:#8a93a6;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.header-actions{display:flex;flex:none;align-items:center;justify-content:flex-end;gap:9px}
.header-actions>*{height:40px;margin:0}
.header-actions>button,.header-actions>.button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;border-radius:12px;padding:0 15px;font-size:13px}
.header-actions .secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}
.header-actions .secondary:hover{border-color:#bfc6dc;background:#fafbff}
.header-edit-button{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--ink);color:#fff}
.header-edit-button:hover{background:#25304d}
.header-sync-status{display:flex;align-items:center;gap:7px;border-radius:12px;padding:0 13px;background:#e8f2ef;color:var(--mint);font-size:12px;font-weight:700;white-space:nowrap}
.header-sync-status i{width:7px;height:7px;border-radius:50%;background:var(--mint)}
.month-picker{display:flex;min-width:152px;align-items:center;justify-content:center;gap:5px;border:1px solid var(--line);border-radius:12px;padding:0 9px;background:#fff;color:var(--ink)}
.month-picker>span{color:#7d879a;font-size:14px}
.month-picker input{width:112px;height:38px;margin:0;border:0;padding:0;background:transparent;color:var(--ink);font-size:13px;font-weight:700}
.server-account.header-server-status{display:flex;min-height:40px;align-items:center;gap:6px;border:0;border-radius:12px;padding:4px 5px 4px 10px;background:#e8f2ef}
.header-server-status>span{display:none}
.header-server-status .server-sync-status{padding:3px 6px;background:transparent;color:var(--mint)}
.header-server-status .server-logout{border-radius:8px!important;padding:5px 7px!important;background:rgba(82,103,199,.1);color:var(--cobalt)}
.server-mode .local-account{display:none!important}
.sidebar{position:sticky;top:0;z-index:30;grid-area:navigation;display:flex;width:calc(100% - 56px);max-width:1384px;height:56px;margin:0 auto 10px;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:18px;padding:7px 10px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(23,33,58,.06);backdrop-filter:blur(14px)}
.sidebar-nav{display:flex;min-width:0;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none}
.sidebar-nav::-webkit-scrollbar{display:none}
.sidebar-nav a{display:flex;height:40px;flex:none;align-items:center;border-radius:12px;padding:0 18px;color:var(--muted);text-decoration:none}
.sidebar-nav a span{display:none}
.sidebar-nav a strong{font-size:14px;font-weight:500;white-space:nowrap}
.sidebar-nav a:hover{background:#f4f5fa;color:var(--ink)}
.sidebar-nav a.active{background:var(--cobalt);color:#fff}
.sidebar-nav a.active strong{font-weight:800}
.month-badge{flex:none;border-radius:12px;padding:9px 13px;background:#fff4e8;color:var(--orange);font-size:12px;font-weight:700;white-space:nowrap}
.month-badge strong{font-size:12px}
main{grid-area:main;width:100%;max-width:1440px;margin:0 auto;padding:0 28px 60px}
.server-conflict{margin-bottom:12px}
.summary{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(320px,1fr);gap:16px;margin-bottom:16px}
.summary.single{grid-template-columns:1fr}
.overview-panel{min-width:0;height:344px;border:1px solid var(--line);border-radius:20px;padding:22px;background:#fff}
.overview-heading{display:flex;min-height:43px;align-items:flex-start;justify-content:space-between;gap:14px}
.overview-heading h2{margin:0;color:var(--ink);font-size:22px;line-height:1.35;letter-spacing:-.025em}
.overview-heading p{margin:3px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.overview-link{flex:none;border:0;border-radius:11px;padding:8px 12px;background:#f1f2f6;color:var(--cobalt);font-size:12px}
.overview-link:hover{background:#e8ebf7}
.overview-link.overdue{background:#fbecea;color:#b54f43;font-weight:800}
.overview-link.overdue:hover{background:#f7ddd8}
.overview-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.overview-stage{display:flex;height:226px;min-width:0;flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--paper);color:var(--ink);text-align:left}
.overview-stage:hover{border-color:#b9c1e4;background:#f3f5fc;transform:translateY(-1px)}
.overview-stage.overdue{border-color:#efc4bd;background:#fff8f7}
.overview-stage.overdue:hover{border-color:#dd7467;background:#fff3f1}
.overview-stage-head{display:flex;align-items:center;justify-content:space-between;gap:6px}
.overview-stage-head>strong{overflow:hidden;color:var(--cobalt);font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.overview-stage-head em{border-radius:8px;padding:4px 7px;background:#ebeef9;color:var(--cobalt);font-size:11px;font-style:normal}
.overview-stage.overdue .overview-stage-head em{background:#fbe2de;color:#b54f43}
.overview-stage-count{display:flex;align-items:baseline;gap:3px;margin-top:13px;font-size:31px;font-weight:800;line-height:1}
.overview-stage.overdue .overview-stage-count{color:#c85e51}
.overview-stage-count small{font-size:15px}
.overview-stage-meta{margin-top:8px;color:var(--muted);font-size:12px}
.overview-progress{display:block;height:6px;margin-top:12px;overflow:hidden;border-radius:4px;background:#e3e6ef}
.overview-progress i{display:block;height:100%;border-radius:inherit;background:var(--cobalt)}
.overview-next{margin-top:auto;color:var(--muted);font-size:12px}
.overview-next strong{margin-left:5px;color:var(--ink)}
.performance-overview{display:flex;flex-direction:column}
.annual-rate{color:var(--cobalt);font-size:12px;white-space:nowrap}
.performance-rows{display:grid;gap:8px;margin-top:10px}
.performance-row{display:grid;gap:5px}
.performance-row>span{display:flex;align-items:center;justify-content:space-between;gap:8px}
.performance-row strong{max-width:60%;overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.performance-row small{color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}
.performance-row small em{color:var(--cobalt);font-style:normal;font-weight:900}
.performance-row>i{display:block;height:5px;overflow:hidden;border-radius:4px;background:#eceef4}
.performance-row b{display:block;height:100%;border-radius:inherit;background:var(--cobalt)}
.performance-row:nth-child(2) b{background:var(--orange)}
.performance-row:nth-child(3) b{background:var(--mint)}
.performance-row:nth-child(4) b{background:var(--coral)}
.performance-row:nth-child(5) b{background:#8c96b8}
.dashboard-import-action{display:grid;width:100%;min-height:50px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:auto;border:1px solid #dfe3f3;border-radius:13px;padding:7px 10px;background:#f7f8fd;color:var(--ink);text-align:left}
.dashboard-import-action:hover{border-color:#b9c1e4;background:#f0f2fb;transform:translateY(-1px)}
.dashboard-import-mark{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:#e8f2ef;color:var(--mint);font-size:10px;font-weight:900;letter-spacing:.04em}
.dashboard-import-copy{display:grid;min-width:0;gap:2px}
.dashboard-import-copy strong{font-size:12px}
.dashboard-import-copy small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.dashboard-import-label{border-radius:9px;padding:6px 8px;background:#ebeef9;color:var(--cobalt);font-size:10px;font-weight:800;white-space:nowrap}
.dashboard-workspace{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:start}
.dashboard-primary,.dashboard-secondary{display:contents}
.panel{min-width:0;border:1px solid var(--line);border-radius:20px;padding:22px;background:#fff;box-shadow:none;scroll-margin-top:82px}
.panel-title{display:flex;min-height:38px;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.panel h2,.evaluation-title h2{margin:0;color:var(--ink);font-size:21px;line-height:1.35;letter-spacing:-.02em}
.evaluation-title p,.panel-title p{margin:3px 0 0;color:var(--muted);font-size:12px}
.count{color:var(--muted);font-size:12px}
.today-panel{grid-column:1/9;grid-row:1;height:332px}
.month-panel{grid-column:9/13;grid-row:1;height:332px}
.entry-panel{grid-column:1/7;grid-row:2;height:530px;overflow:auto}
.print-panel{grid-column:7/10;grid-row:2;height:530px;margin-top:0;overflow:hidden}
.termination-panel{grid-column:10/13;grid-row:2;height:530px;margin-top:0;overflow:hidden}
.evaluation-panel{grid-column:1/13;grid-row:3}
.target-panel{grid-column:1/13;grid-row:4}
.today-count{border-radius:12px;padding:6px 10px;background:#ebeef9;color:var(--cobalt);font-size:11px;font-weight:800}
.today-task-list{display:flex;flex-direction:column;gap:8px}
.today-task{display:grid;width:100%;grid-template-columns:22px minmax(0,1fr) 55px;align-items:center;gap:10px;min-height:58px;border:0;border-radius:11px;padding:8px 10px;background:#fafafc;text-align:left}
.today-task:hover{background:#f1f3fa}
.today-task .task-check{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:#f0f2f8;color:var(--cobalt);font-size:10px;font-weight:800}
.today-task.completed .task-check{background:#e8f2ef;color:var(--mint)}
.today-task-copy{display:flex;min-width:0;flex-direction:column;gap:2px}
.today-task-copy strong{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.today-task-copy small{color:var(--muted);font-size:11px}
.today-task-tag{border-radius:9px;padding:5px 7px;background:#fff4e8;color:var(--orange);font-size:10px;font-weight:800;text-align:center}
.today-task-tag.journal{background:#ebeef9;color:var(--cobalt)}
.today-task-tag.record{background:#e8f2ef;color:var(--mint)}
.today-task-empty{display:grid;min-height:180px;place-items:center;color:var(--muted);font-size:11px}
.month-schedule-body{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(170px,.9fr);gap:12px;align-items:start}
.mini-month-calendar{width:100%;max-width:252px;min-width:0;margin:0 auto}
.mini-calendar-heading{margin:-3px 0 7px;color:var(--ink);font-size:12px;font-weight:800;text-align:center}
.mini-calendar-weekdays,.mini-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:3px;row-gap:3px;align-content:start}
.mini-calendar-weekdays{margin-bottom:3px}
.mini-calendar-weekdays span{color:#98a0b3;font-size:9px;text-align:center}
.mini-calendar-day{display:flex;width:100%;height:24px;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:6px;color:var(--ink)}
.mini-calendar-day>strong{font-size:10px;font-weight:700;line-height:1}
.mini-calendar-day>small{display:flex;height:3px;align-items:center;justify-content:center;gap:2px}
.mini-calendar-day>small i{display:block;width:3px;height:3px;border-radius:50%;background:var(--cobalt)}
.mini-calendar-day>small i.coral{background:var(--coral)}
.mini-calendar-day.has-event{background:#f0f2fa}
.mini-calendar-day.today{background:var(--orange);color:#fff}
.mini-calendar-day.today>small i{background:#fff}
.mini-calendar-day.is-blank{background:transparent}
.month-schedule-detail{min-width:0}
.month-schedule-summary{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:6px}
.month-schedule-summary>span{display:flex;align-items:center;justify-content:space-between;border-radius:9px;padding:6px 8px;background:var(--paper)}
.month-schedule-summary small{color:var(--muted);font-size:10px}
.month-schedule-summary strong{color:var(--cobalt);font-size:12px}
.month-schedule-summary>span:nth-child(2) strong{color:var(--coral)}
.month-schedule-list{display:grid;gap:4px}
.month-event{display:grid;width:100%;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:6px;border:0;border-left:3px solid var(--cobalt);border-radius:4px;padding:5px 6px;background:transparent;color:var(--ink);text-align:left}
.month-event:hover{background:#f6f7fb}
.month-event.coral{border-left-color:var(--coral)}
.month-event>strong{color:var(--muted);font-size:11px}
.month-event>span{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.month-empty{margin:14px 0;text-align:center;color:var(--muted);font-size:11px;line-height:1.5}
.entry-panel .panel-title{margin-bottom:9px}
.text-button{border-radius:9px;background:#f1f2f6;color:var(--muted);font-size:12px}
.quick-field-grid{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(220px,1.2fr);gap:10px}
.entry-panel label{margin:0;color:var(--muted);font-size:11px}
.entry-panel input,.entry-panel select,.entry-panel textarea{margin-top:5px;border-color:var(--line);border-radius:10px;padding:8px 10px;background:#fafafc;color:var(--ink);font-size:12px}
.entry-panel input,.entry-panel select{height:36px}
.quick-program-info{display:flex;min-height:32px;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;border-radius:9px;padding:6px 9px;background:#f1f3fa;color:var(--muted);font-size:11px}
.quick-program-info strong{overflow:hidden;color:var(--cobalt);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.quick-journal-field{display:block;margin-top:9px!important}
.quick-journal-field textarea{resize:none;line-height:1.55}
.quick-goals textarea{height:64px}
.quick-activity textarea{height:108px}
.quick-notes textarea{height:58px}
.entry-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}
.entry-actions .primary{flex:none;border-radius:11px;padding:10px 15px;background:var(--cobalt);font-size:13px}
.autosave-label{color:var(--mint);font-size:11px}
.print-panel .panel-title{margin-bottom:9px}
.print-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:end}
.print-controls label{margin:0;font-size:10px}
.print-controls input,.print-controls select{height:34px;margin-top:4px;padding:6px;font-size:11px}
.print-controls button{min-height:34px;border-radius:9px;padding:6px;font-size:11px}
.print-controls #downloadWord{grid-column:1/-1}
.print-client-picker{margin-top:9px;border:0;border-radius:10px;padding:9px;background:#fafafc}
.print-client-heading{align-items:flex-start;flex-direction:column;gap:5px;margin-bottom:6px}
.print-client-heading>div{display:flex;width:100%;align-items:center;justify-content:space-between;gap:5px}
.print-client-heading strong,.print-client-heading span{font-size:10px}
.print-client-heading .mini{margin:0;padding:4px 5px;font-size:9px}
.print-client-list{display:grid;max-height:92px;grid-template-columns:1fr;gap:5px;overflow:auto}
.print-client-option{gap:5px;border:0;border-radius:8px;padding:6px;background:#fff}
.print-client-option input{width:14px;height:14px}
.print-client-option strong{font-size:10px}
.print-client-option small{display:none}
.print-panel>.notice{display:none}
.termination-panel .evaluation-header{align-items:flex-start;margin-bottom:8px}
.termination-header-actions{display:flex;align-items:center;gap:5px}
.termination-header-actions .count{display:none}
.termination-header-actions button{border-radius:9px;padding:6px 8px;font-size:10px}
.termination-toolbar{display:block;margin-bottom:7px;padding:4px;background:#f1f2f6}
.termination-filter-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
.termination-filter-tabs button{padding:5px 2px;border-radius:7px;font-size:9px}
.termination-toolbar .evaluation-summary{display:none}
.termination-board{display:grid;max-height:330px;gap:7px;overflow:auto;padding-right:2px}
.termination-list-item{border:0;border-radius:10px;background:#fafafc}
.termination-summary-row{display:grid;grid-template-columns:minmax(88px,1fr) repeat(2,minmax(72px,.9fr));gap:5px;min-height:58px;padding:8px}
.termination-person{display:grid;gap:1px}
.termination-person strong{font-size:11px}
.termination-person>span{font-size:9px}
.termination-summary-date{display:none}
.termination-stage-summary{min-height:36px;border:0;border-radius:8px;padding:5px;text-align:center;background:#f0f2f8}
.termination-stage-summary span{font-size:9px}
.termination-stage-summary strong,.termination-stage-summary em{font-size:9px}
.termination-stage-summary.overdue{background:#fbecea}
.termination-stage-summary.today{background:#fff4e8}
.termination-stage-summary.completed{background:#e8f2ef}
.termination-row-action{grid-column:1/-1;justify-content:flex-end;border-top:1px solid var(--line);padding-top:5px}
.termination-toggle{padding:4px 6px;font-size:9px}
.termination-expanded{padding:8px}
.termination-date-row label{grid-template-columns:1fr}
.termination-stage-grid{grid-template-columns:1fr}
.termination-panel>.evaluation-notice{display:none}
.evaluation-panel{margin-top:0}
.evaluation-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}
.evaluation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;border-radius:12px;padding:8px;background:#f1f2f6}
.evaluation-filter-tabs{display:flex;gap:4px;flex-wrap:wrap}
.evaluation-filter-tabs button{border-radius:9px;padding:7px 10px;background:transparent;color:var(--muted);font-size:11px}
.evaluation-filter-tabs button.active{background:#fff;color:var(--cobalt);box-shadow:0 2px 8px rgba(23,33,58,.07)}
.evaluation-summary{display:flex;gap:5px}
.summary-chip{border-radius:11px;padding:5px 7px;background:#fff;font-size:10px}
.evaluation-board{display:grid;max-height:520px;gap:8px;overflow:auto;padding-right:3px}
.evaluation-person-card{display:grid;grid-template-columns:minmax(145px,1fr) minmax(560px,3fr);align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fafafc}
.evaluation-person-card>header{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:4px;border:0;padding:0}
.evaluation-person-card>header div{display:flex;flex-direction:column;gap:1px}
.evaluation-person-card>header strong{font-size:14px}
.evaluation-person-card>header div span{font-size:10px}
.admission-date{padding:0;background:transparent;font-size:10px}
.evaluation-stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}
.evaluation-stage-card{display:grid;grid-template-columns:1fr auto;gap:3px;border:0;border-radius:9px;padding:8px;background:#f0f2f8}
.evaluation-stage-card.overdue{background:#fbecea}
.evaluation-stage-card.today{background:#fff4e8}
.evaluation-stage-card.completed{background:#e8f2ef}
.evaluation-stage-card.upcoming{background:#eef1fb}
.stage-card-heading{grid-column:1/-1;margin:0}
.stage-card-heading>strong{font-size:11px}
.evaluation-status{padding:2px 5px;font-size:9px}
.stage-due-date{grid-column:1/-1;display:block;border:0;padding:0}
.stage-due-date span{display:none}
.stage-due-date strong{font-size:10px}
.stage-complete-check{grid-column:1/-1;justify-content:flex-start;gap:5px;margin:3px 0 0;padding:4px 5px;background:rgba(255,255,255,.64)}
.stage-complete-check input{width:13px;height:13px}
.stage-complete-check span{font-size:10px}
.stage-actual-date{grid-column:1/-1;font-size:9px}
.stage-actual-date input{margin-top:2px;padding:4px 5px;font-size:9px}
.stage-actual-date:has(input:disabled){display:none}
.evaluation-notice{display:none}
.target-panel .table-wrap{max-height:300px;overflow:auto}
.target-panel th,.target-panel td{padding:8px 10px;font-size:12px}
.target-panel th{position:sticky;top:0;z-index:1;background:#fff;font-size:11px}
.target-panel td small{font-size:10px}
.target-panel .progress{height:5px}
.target-panel .notice{font-size:9px}
.roster-panel{margin-top:16px}
.roster-panel th,.roster-panel td{font-size:12px}
.roster-panel th{font-size:11px}
.roster-panel .roster-kind-row th{padding:10px 12px;border-top:1px solid #dfe3f3;border-bottom:1px solid #dfe3f3;background:#f1f3fa;color:var(--cobalt)}
.roster-panel .roster-kind-row:first-child th{border-top:0}
.roster-panel .roster-kind-row th>span,.roster-panel .roster-kind-row th>strong{display:inline-block}
.roster-panel .roster-kind-row th>span{font-size:12px;font-weight:900}
.roster-panel .roster-kind-row th>strong{margin-left:7px;border-radius:10px;padding:3px 7px;background:#fff;color:var(--muted);font-size:10px}
.roster-panel .roster-kind-row.group th{border-color:#f0d8c5;background:#fff6ed;color:#b46e25}
.notice{border:0;border-radius:10px;background:#fff4e8}
.primary{background:var(--cobalt);color:#fff}
.secondary{background:#f1f2f6;color:var(--ink)}
.progress span{background:var(--cobalt)}
.badge{background:#ebeef9;color:var(--cobalt)}
.badge.group{background:#fff4e8;color:#b46e25}
.toast{z-index:100;right:25px;bottom:25px;background:var(--ink)}

@media(max-width:1180px){
  .topbar{align-items:flex-start;flex-direction:column}.header-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.sidebar{top:0}.summary{grid-template-columns:1fr}.overview-panel{height:auto}.performance-overview{min-height:300px}.dashboard-workspace{grid-template-columns:repeat(6,minmax(0,1fr))}.today-panel{grid-column:1/5}.month-panel{grid-column:5/7}.entry-panel{grid-column:1/7;grid-row:2}.print-panel{grid-column:1/4;grid-row:3}.termination-panel{grid-column:4/7;grid-row:3}.evaluation-panel{grid-column:1/7;grid-row:4}.target-panel{grid-column:1/7;grid-row:5}
}
@media(max-width:820px){
  html{scroll-padding-top:72px}.topbar{padding:18px 16px 12px}.header-brand{align-items:flex-start}.brand-mark{width:42px;height:42px;border-radius:12px}.topbar h1{flex-wrap:wrap;font-size:20px}.header-actions{gap:6px}.header-sync-status{display:none}.month-picker{flex:1}.sidebar{width:calc(100% - 24px);height:54px;margin-bottom:10px;border-radius:15px}.sidebar-nav a{height:38px;padding:0 12px}.month-badge{display:none}main{padding:0 12px 36px}.summary{gap:10px}.overview-stages{grid-template-columns:1fr}.overview-stage{height:auto;min-height:168px}.dashboard-workspace{grid-template-columns:1fr;gap:10px}.today-panel,.month-panel,.entry-panel,.print-panel,.termination-panel,.evaluation-panel,.target-panel{grid-column:1/-1;grid-row:auto;height:auto;min-height:0;overflow:visible}.evaluation-person-card{grid-template-columns:1fr}.evaluation-stage-grid{grid-template-columns:1fr}.quick-field-grid{grid-template-columns:1fr}.print-client-list{max-height:170px;grid-template-columns:repeat(2,minmax(0,1fr))}.termination-board{max-height:none}.roster-panel{overflow:hidden}
}
@media(max-width:520px){
  .app-layout,.app-shell,.topbar,.sidebar,main,.summary,.dashboard-workspace{min-width:0}.topbar{gap:12px}.header-brand{gap:10px}.header-copy .subtitle{display:none}.header-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.header-actions>button,.header-actions>.button{width:100%;min-width:0}.header-actions .month-picker{grid-column:1/-1;width:100%;min-width:0}.header-edit-button{grid-column:1/-1}.sidebar{max-width:calc(100% - 24px);overflow:hidden}.sidebar-nav{width:100%;max-width:100%}.summary{grid-template-columns:1fr}.overview-panel{padding:16px}.overview-heading{align-items:flex-start;flex-direction:column}.overview-link{width:100%}.dashboard-import-action{grid-template-columns:34px minmax(0,1fr)}.dashboard-import-label{display:none}.dashboard-import-copy small{white-space:normal}.print-controls,.print-client-list{grid-template-columns:1fr}.entry-actions{align-items:stretch;flex-direction:column}.entry-actions .primary{width:100%}.performance-row strong{max-width:60%}.records-heading{align-items:flex-start;flex-direction:column}
}

/* Page-style workspace */
.app-view[hidden]{display:none!important}
.app-view{min-width:0}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:4px 0 16px;padding:5px 2px}
.page-heading span{display:block;margin-bottom:4px;color:var(--cobalt);font-size:10px;font-weight:800;letter-spacing:.14em}
.page-heading h2{margin:0;color:var(--ink);font-size:28px;line-height:1.2;letter-spacing:-.035em}
.page-heading p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.55}
.home-workspace{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:start}
.home-workspace .entry-panel{grid-column:1/8;grid-row:1/3;height:570px;overflow:visible}
.home-workspace .today-panel{grid-column:8/13;grid-row:1;height:292px}
.home-workspace .month-panel{grid-column:8/13;grid-row:2;height:262px}
.timetable-panel{width:100%;padding:24px}
.timetable-summary{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.timetable-summary span{border-radius:12px;padding:8px 11px;background:#f1f3fa;color:var(--muted);font-size:11px;font-weight:700}
.timetable-summary strong{margin-left:4px;color:var(--cobalt);font-size:13px}
.timetable-wrap{border:1px solid var(--line);border-radius:14px;background:#fff}
.timetable-table{min-width:980px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.timetable-table th,.timetable-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.timetable-table tr>*:last-child{border-right:0}
.timetable-table tbody tr:last-child>*{border-bottom:0}
.timetable-table thead th{height:48px;padding:10px;background:#f5f6fa;color:var(--ink);font-size:13px;text-align:center}
.timetable-table thead th:first-child{width:105px;border-top-left-radius:13px}
.timetable-table thead th:last-child{border-top-right-radius:13px}
.timetable-table tbody>tr>th{width:105px;padding:12px 10px;background:#fafafc;text-align:center;vertical-align:top}
.timetable-table tbody>tr>th strong{display:block;color:var(--ink);font-size:13px}
.timetable-table tbody>tr>th span{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:600}
.timetable-table td{height:82px;padding:7px;background:#fff;vertical-align:top}
.timetable-cell{display:grid;min-height:66px;align-content:start;gap:5px}
.timetable-session{display:grid;min-width:0;gap:3px;border-left:4px solid var(--cobalt);border-radius:8px;padding:8px 9px;background:#eef1fb}
.timetable-session.group{border-left-color:var(--orange);background:#fff4e8}
.timetable-session.extra{border-left-color:var(--mint);background:#e8f2ef}
.timetable-session strong{overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.timetable-session span{overflow:hidden;color:var(--muted);font-size:10px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.timetable-session-actions{display:flex;gap:4px;margin-top:3px}
.timetable-session-actions button{border-radius:6px;padding:3px 6px;background:rgba(255,255,255,.72);color:var(--cobalt);font-size:9px}
.timetable-session-actions button.delete{color:#b65346}
.timetable-cell.multiple .timetable-session{box-shadow:0 0 0 1px rgba(82,103,199,.08)}
.timetable-blank{display:grid;min-height:64px;place-items:center;color:#c6cbd7;font-size:11px}
.timetable-empty{margin:30px 0;text-align:center;color:var(--muted);font-size:12px}
.timetable-notice{margin-top:14px}
.monthly-editor-panel{width:100%;max-width:none;margin:0;padding:24px}
.monthly-editor-panel.has-unsaved-changes{border-color:#b8c1eb;box-shadow:0 0 0 3px rgba(82,103,199,.07)}
.monthly-editor-toolbar{display:grid;grid-template-columns:180px minmax(260px,1fr) auto;align-items:end;gap:12px}
.monthly-editor-toolbar label{margin:0;color:var(--muted);font-size:12px;font-weight:700}
.monthly-editor-toolbar input,.monthly-editor-toolbar select{height:42px;margin-top:6px;border:1px solid var(--line);border-radius:11px;padding:8px 11px;background:#fafafc;color:var(--ink);font-size:13px}
.monthly-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.monthly-editor-actions button{min-height:42px;border-radius:11px;padding:9px 13px;font-size:12px;white-space:nowrap}
.monthly-editor-actions button:disabled{cursor:not-allowed;opacity:.45}
.monthly-editor-summary{margin:16px 0 12px;border-radius:11px;padding:11px 13px;background:#f1f3fa;color:var(--muted);font-size:12px}
.monthly-editor-summary strong{color:var(--cobalt);font-size:13px}
.has-unsaved-changes .monthly-editor-summary{background:#fff4e8;color:#9b632b;font-weight:700}
.monthly-record-list{display:grid;gap:12px}
.monthly-record-card{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff}
.monthly-record-card.selected{border-color:#dd7467;background:#fffafa;box-shadow:0 0 0 2px rgba(221,116,103,.08)}
.monthly-record-card.changed{border-color:#aeb8e7}
.monthly-record-card>header{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:9px 13px;background:#fafafc}
.monthly-record-card>header>div{display:flex;align-items:center;gap:9px}
.monthly-record-select{display:flex;align-items:center;gap:7px;margin:0;cursor:pointer}
.monthly-record-select input{width:18px;height:18px;margin:0;padding:0;accent-color:var(--coral)}
.monthly-record-card>header span{display:grid;width:26px;height:26px;place-items:center;border-radius:8px;background:#ebeef9;color:var(--cobalt);font-size:10px;font-weight:800}
.monthly-record-card>header strong{font-size:14px}
.monthly-record-card>header em{border-radius:10px;padding:4px 7px;background:#fff4e8;color:#b46e25;font-size:10px;font-style:normal;font-weight:800}
.monthly-record-card>header em.saved{background:#e8f2ef;color:var(--mint)}
.monthly-record-fields{display:grid;grid-template-columns:170px minmax(240px,.9fr) minmax(360px,1.6fr);gap:12px;padding:14px}
.monthly-record-fields label{margin:0;color:var(--muted);font-size:11px;font-weight:700}
.monthly-record-fields input,.monthly-record-fields textarea{margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fafafc;color:var(--ink);font-size:12px;line-height:1.55}
.monthly-record-fields input{height:40px}
.monthly-record-fields textarea{resize:vertical}
.monthly-record-fields input:focus,.monthly-record-fields textarea:focus{border-color:#aeb8e7;outline:3px solid rgba(82,103,199,.1)}
.monthly-date-field{grid-column:1}.monthly-goals-field{grid-column:2}.monthly-activity-field{grid-column:3}.monthly-notes-field{grid-column:1/-1}
.monthly-notes-field textarea{min-height:70px}
.monthly-editor-empty{border:1px dashed var(--line);border-radius:13px;background:#fafafc}
.monthly-editor-notice{margin-bottom:0}
.page-target-panel,.page-evaluation-panel,.page-termination-panel,.page-print-panel,.page-roster-panel{grid-column:auto;grid-row:auto;height:auto;min-height:0;margin:0;overflow:visible}
.page-target-panel .table-wrap{max-height:none}
.page-evaluation-panel .evaluation-board{max-height:none}
.page-evaluation-panel>.evaluation-notice,.page-termination-panel>.evaluation-notice,.page-print-panel>.notice{display:block}
.page-termination-panel .termination-header-actions .count{display:inline}
.page-termination-panel .termination-toolbar{display:flex;margin-bottom:12px;padding:8px}
.page-termination-panel .termination-filter-tabs{display:flex;gap:4px}
.page-termination-panel .termination-filter-tabs button{padding:7px 10px;font-size:11px}
.page-termination-panel .termination-toolbar .evaluation-summary{display:flex}
.page-termination-panel .termination-board{max-height:none;gap:9px;overflow:visible}
.page-termination-panel .termination-list-item{border:1px solid var(--line);border-radius:13px}
.page-termination-panel .termination-summary-row{grid-template-columns:minmax(150px,1.1fr) minmax(135px,.85fr) repeat(2,minmax(170px,1fr)) auto;min-height:74px;padding:11px 13px}
.page-termination-panel .termination-person strong{font-size:14px}
.page-termination-panel .termination-person>span{font-size:10px}
.page-termination-panel .termination-summary-date{display:flex}
.page-termination-panel .termination-stage-summary{min-height:48px;padding:7px}
.page-termination-panel .termination-stage-summary span,.page-termination-panel .termination-stage-summary strong,.page-termination-panel .termination-stage-summary em{font-size:10px}
.page-termination-panel .termination-row-action{grid-column:auto;align-items:center;border-top:0;padding-top:0}
.page-termination-panel .termination-toggle{padding:6px 8px;font-size:10px}
.page-termination-panel .termination-expanded{padding:14px}
.page-termination-panel .termination-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.output-page-grid{display:grid;grid-template-columns:minmax(300px,.7fr) minmax(0,1.7fr);gap:16px;align-items:start}
.page-print-panel .print-controls{gap:9px}
.page-print-panel .print-client-picker{padding:12px}
.page-print-panel .print-client-list{max-height:300px;grid-template-columns:repeat(2,minmax(0,1fr))}
.page-print-panel .print-client-option strong{font-size:11px}
.page-roster-panel .table-wrap{max-height:650px;overflow:auto}

@media(max-width:1180px){
  .home-workspace .entry-panel{grid-column:1/8}.home-workspace .today-panel,.home-workspace .month-panel{grid-column:8/13}.monthly-editor-toolbar{grid-template-columns:170px minmax(240px,1fr)}.monthly-editor-actions{grid-column:1/-1}.monthly-record-fields{grid-template-columns:150px minmax(220px,1fr)}.monthly-activity-field{grid-column:1/-1}.output-page-grid{grid-template-columns:1fr}.page-print-panel .print-client-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
  .home-workspace{grid-template-columns:1fr;gap:10px}.home-workspace .entry-panel,.home-workspace .today-panel,.home-workspace .month-panel{grid-column:1;grid-row:auto;height:auto;min-height:0;overflow:visible}.page-heading{padding:2px 1px}.page-heading h2{font-size:24px}.timetable-panel,.monthly-editor-panel{padding:18px}.monthly-editor-toolbar{grid-template-columns:1fr 1fr}.monthly-record-fields{grid-template-columns:1fr}.monthly-date-field,.monthly-goals-field,.monthly-activity-field,.monthly-notes-field{grid-column:1}.page-termination-panel .termination-summary-row{grid-template-columns:1fr 1fr}.page-termination-panel .termination-person,.page-termination-panel .termination-summary-date{grid-column:auto}.page-termination-panel .termination-stage-summary{grid-column:auto}.page-termination-panel .termination-row-action{grid-column:1/-1;justify-content:flex-end;border-top:1px solid var(--line);padding-top:7px}.page-print-panel .print-client-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .app-layout,.app-shell,.topbar,.sidebar,main,.summary,.home-workspace,.app-view,.output-page-grid{min-width:0}.month-schedule-body{grid-template-columns:1fr}.mini-calendar-day{height:28px}.page-heading h2{font-size:22px}.page-heading p{font-size:12px}.timetable-panel,.monthly-editor-panel{padding:14px}.timetable-summary{display:grid;grid-template-columns:1fr 1fr}.monthly-editor-toolbar{grid-template-columns:1fr}.monthly-editor-actions{display:grid;grid-template-columns:1fr 1fr}.monthly-editor-actions .primary{grid-column:1/-1}.monthly-record-fields{padding:11px}.page-termination-panel .termination-toolbar{display:block}.page-termination-panel .termination-filter-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.page-termination-panel .termination-toolbar .evaluation-summary{margin-top:6px}.page-termination-panel .termination-summary-row{grid-template-columns:1fr}.page-termination-panel .termination-row-action{grid-column:1}.page-termination-panel .termination-stage-grid,.page-print-panel .print-client-list{grid-template-columns:1fr}.output-page-grid{display:block}.page-roster-panel{margin-top:10px}
}
