.personnel-page{color:#173952;min-width:0;display:grid;gap:14px}.personnel-page *,.pn-dialog *,.pn-context *{box-sizing:border-box}.pn-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}.pn-heading small{color:#58799a;font-size:10px;letter-spacing:.12em}.pn-heading h2{font-size:21px;margin:5px 0;color:#123c64}.pn-heading p{font-size:12px;color:#64809b;margin:4px 0}.pn-actions{display:flex;flex-wrap:wrap;gap:7px}.pn-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 12px;border:1px solid #cad9ea;border-radius:7px;background:#fff;color:#153b60;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.pn-btn.pn-primary{background:#103d66;border-color:#103d66;color:#fff}.pn-btn:disabled{opacity:.45;cursor:not-allowed}.pn-filter{display:flex;align-items:end;gap:10px;padding:13px 15px;border:1px solid #d6e2ee;border-radius:10px;background:#fff}.pn-field{display:flex;flex-direction:column;gap:6px;color:#315777;font-size:13px;font-weight:600;min-width:0}.pn-field input,.pn-field select,.pn-field textarea{width:100%;min-width:0;min-height:36px;padding:8px 10px;border:1px solid #c8d9ea;border-radius:6px;color:#153b60;background:#fff;font:400 14px inherit}.pn-field textarea{resize:vertical}.pn-filter .pn-field{min-width:180px}.pn-panel{border:1px solid #d6e2ee;border-radius:10px;overflow:hidden;background:#fff;min-width:0}.pn-summary{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:13px 15px;color:#68819a;font-size:12px}.pn-summary b{font-size:15px;color:#173b60}.pn-summary small{margin-left:auto;color:#68819a}.pn-scroll{overflow:auto;max-height:calc(100dvh - 330px);min-height:140px;overscroll-behavior:contain}.pn-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:13px;text-align:left}.pn-assign-table{min-width:950px}.pn-table th{background:#153f65;color:#fff;position:sticky;top:0;z-index:2;font-size:12px;font-weight:600;padding:11px 10px;border-right:1px solid #ffffff25;white-space:nowrap}.pn-table td{background:#fff;border-bottom:1px solid #e0e9f1;padding:8px 10px;height:38px;overflow-wrap:anywhere;color:#244963;vertical-align:middle}.pn-table td:first-child,.pn-table th:first-child{text-align:center}.pn-table tbody tr:last-child td{border-bottom:0}.pn-table .pn-line{background:#f2f6fa;vertical-align:top;padding-top:14px;border-right:1px solid #d6e2ee}.pn-line strong{border-left:4px solid #2477d7;padding-left:7px}.pn-table small{display:block;color:#7890a5;font-size:11px;margin-top:5px}.pn-line-start:not(:first-child) td{border-top:2px solid #d6e2ee}.pn-table .pn-note{color:#6c8195}.pn-table td .pn-btn{min-height:28px;padding:3px 8px}.pn-shift,.pn-status{display:inline-block;padding:3px 7px;border-radius:5px;white-space:nowrap;background:#f0f4f8;color:#5f7690;font-size:12px}.pn-night{background:#f0eafa;color:#7750bd}.pn-green{background:#e2f5ed;color:#08785a}.pn-red{background:#fff0f1;color:#d33b4c}.pn-amber{background:#fff5df;color:#926409}.pn-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 15px;font-size:12px;color:#7089a0;background:#f7faff;flex-wrap:wrap}.pn-people-table{width:1760px;min-width:1760px}.pn-people-table td:nth-child(1),.pn-people-table th:nth-child(1){position:sticky;left:0;z-index:3}.pn-people-table td:nth-child(2),.pn-people-table th:nth-child(2){position:sticky;left:50px;z-index:3;border-right:1px solid #d6e2ee}.pn-people-table th:nth-child(-n+2){z-index:4}.pn-empty{text-align:center!important;padding:45px 16px!important;color:#6c8298!important}.pn-message{font-size:13px;color:#157355;white-space:pre-wrap}.pn-message:empty{display:none}.pn-error{color:#bc2941}.pn-dialog{padding:0;border:1px solid #d2dfed;border-radius:14px;width:min(880px,calc(100vw - 28px));max-width:880px;max-height:calc(100dvh - 32px);overflow:auto;color:#1b4263;background:#fff;box-shadow:0 22px 70px #082d5140}.pn-dialog::backdrop{background:#102d4a80}.pn-dialog>header{display:flex;justify-content:space-between;align-items:center;background:#f2f7fc;padding:17px 21px;border-bottom:1px solid #dbe6f0}.pn-dialog h3{margin:0;font-size:19px}.pn-dialog-body{padding:20px;display:grid;gap:14px}.pn-dialog footer{padding:14px 20px;display:flex;justify-content:flex-end;gap:8px;background:#f6f9fc;border-top:1px solid #dbe6f0}.pn-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.pn-form-grid.pn-three{grid-template-columns:repeat(3,minmax(0,1fr))}.pn-wide{grid-column:1/-1}.pn-help{margin:0;font-size:13px;color:#607e97;line-height:1.6}.pn-example{background:#f3f7fb;padding:10px;border-radius:6px;font-size:12px;line-height:1.8}.pn-preview{min-width:0;font-size:13px}.pn-preview .pn-scroll{max-height:260px;margin-top:10px}.pn-preview table{min-width:1000px;table-layout:auto}.pn-context{position:fixed;z-index:11000;width:250px;border:1px solid #ccdaeb;border-radius:10px;background:#fff;box-shadow:0 12px 35px #173d602e;padding:8px;display:grid;gap:3px;color:#173b60}.pn-context strong{font-size:12px;padding:8px;border-bottom:1px solid #dde7f1}.pn-context .pn-btn{border:0;justify-content:flex-start;min-height:38px}.pn-context .pn-btn:hover{background:#eff5fb}
@media(max-width:700px){.pn-heading{align-items:flex-start}.pn-heading h2{font-size:19px}.pn-actions{width:100%;gap:6px}.pn-actions .pn-btn{flex:1;min-height:40px;font-size:12px;padding:7px 9px}.pn-filter{padding:10px;gap:8px}.pn-filter .pn-field{min-width:0;flex:1}.pn-field input,.pn-field select,.pn-field textarea{font-size:16px}.pn-summary{gap:10px;padding:11px}.pn-summary small{margin-left:0;width:100%}.pn-scroll{max-height:65dvh}.pn-dialog .pn-form-grid,.pn-dialog .pn-three{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pn-dialog-body{padding:14px}.pn-dialog>header{padding:13px 15px}.pn-btn{min-height:40px}.pn-table td .pn-btn{min-height:36px}.pn-context .pn-btn{min-height:44px}}
.pn-people-table{width:1585px;min-width:1585px}.pn-field input,.pn-field select,.pn-field textarea{font-family:inherit;font-weight:400}
.personnel-page .pn-person-name{display:inline-flex;align-items:center;justify-content:flex-start;max-width:100%;min-height:28px;padding:0;border:0;background:transparent;color:#145ea8;font:inherit;font-weight:700;line-height:1.5;white-space:normal;overflow-wrap:anywhere;text-align:left;cursor:pointer;border-radius:3px}
.personnel-page .pn-person-name:hover{text-decoration:underline;color:#094780}
.personnel-page .pn-person-name:focus-visible{outline:2px solid #2477d7;outline-offset:3px}
.pn-move-hint{padding:10px 12px;border:1px solid #bfdbf4;border-radius:7px;background:#f0f7ff;color:#205786}
.pn-drag-name{display:inline-flex;align-items:center;gap:7px;max-width:100%;min-height:30px;padding:3px 6px;margin-left:-6px;border:1px solid transparent;border-radius:6px;cursor:grab;user-select:none;color:#165890;font-weight:600;overflow-wrap:anywhere}
.pn-drag-name:hover{background:#edf5ff;border-color:#bed7f1}.pn-drag-name:active{cursor:grabbing}
.pn-drag-grip{font-size:15px;font-weight:400;color:#829bb3;flex-shrink:0}
.pn-drag-source{opacity:.5}.pn-dragging .pn-drop-ready .pn-assignment-name{background:#ecf6ff;outline:1px dashed #72a8db;outline-offset:-4px}
.pn-dragging .pn-drop-ready .pn-assignment-name .pn-vacant{color:#246497}
.pn-dragging .pn-drop-over td:not(.pn-line){background:#e4f4eb}
.pn-dragging .pn-drop-over .pn-assignment-name{outline:2px solid #23966b;outline-offset:-3px}
.pn-dragging .pn-drop-over .pn-assignment-name .pn-vacant{color:#087451;font-weight:700}
@media(max-width:700px){.personnel-page .pn-person-name{min-height:44px;min-width:44px}}
@media(max-width:420px){.pn-dialog .pn-form-grid,.pn-dialog .pn-three{grid-template-columns:1fr}}

/* Mobile uses a single vertical list; the PC table and its column widths stay unchanged. */
.pn-retiring .pn-people-table{width:1631px;min-width:1631px}
.pn-retiring .pn-people-table :is(th,td):nth-child(2){left:46px}
.pn-retiring .pn-people-table :is(th,td):nth-child(3){position:sticky;left:96px;z-index:3;border-right:1px solid #d6e2ee}
.pn-retiring .pn-people-table th:nth-child(-n+3){z-index:4}
.pn-person-card.pn-selected{border-color:#77aae0;background:#eef7ff}
.pn-retirement-names{margin:0;padding:10px 10px 10px 30px;max-height:180px;overflow:auto;background:#f2f7fc;border-radius:8px;font-size:13px;line-height:1.8}
.pn-retirement-names small{color:#698197}
.pn-retirement-date{min-width:0;display:grid;align-content:start;gap:4px}
.pn-retirement-date>.pn-check{justify-content:flex-start;font-size:13px;color:#315777}
.pn-retirement-date>.pn-check input{min-height:18px!important}
.pn-retirement-date>small{color:#698197;font-size:11px;line-height:1.5}
.pn-retirement-date input[type=date]:disabled{background:#edf1f5;color:#6b7f92;cursor:not-allowed}
.personnel-page .pn-mobile-only{display:none}
.pn-assignment-controls{display:contents}
.personnel-page .pn-employment-badge{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;padding:3px 7px;line-height:1.4;border-radius:5px}
.personnel-page .pn-employment-badge.pn-green{background:#e2f5ed;color:#08785a}
.personnel-page .pn-employment-badge.pn-red{background:#fff0f1;color:#bc3546}
.pn-assignment-combo{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:6px;min-width:0}
.pn-assignment-combo select{background:#f2f7fc;color:#174f81}
.pn-context>small{display:block;max-width:260px;font-size:11px;line-height:1.5;color:#667e95;padding:7px 10px}
.pn-context>strong{overflow-wrap:anywhere;max-height:72px;overflow:auto}
.pn-context .pn-btn:disabled{opacity:.45;cursor:not-allowed}
.pn-people-table td .pn-employment-badge{display:table;margin:5px auto 0}
.pn-assignment-detail{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}
.pn-assignment-detail>div{min-width:0}
.pn-assignment-detail dt{font-size:12px;color:#597993;margin-bottom:6px}.pn-assignment-detail dd{margin:0;font-size:14px;color:#244963;white-space:pre-wrap;overflow-wrap:anywhere}
.pn-panel-tools{display:flex;align-items:center;gap:10px;padding-right:14px}
.pn-panel-tools .pn-summary{flex:1;min-width:0}
.pn-panel-tools>.pn-btn{flex-shrink:0}
.pn-attendance-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 14px;background:#edf5fd;border-top:1px solid #d9e6f3;border-bottom:1px solid #d9e6f3;color:#234f76;font-size:13px}
.pn-check{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;cursor:pointer}
.pn-check input{appearance:auto!important;position:static!important;width:18px!important;height:18px!important;margin:0!important;accent-color:#226bc1;flex-shrink:0}
.pn-check:has(input:disabled){cursor:default;opacity:.45}
.pn-attendance-toolbar>strong{font-size:13px;white-space:nowrap}
.pn-attendance-status select{min-height:38px;padding:7px 28px 7px 10px;background:#fff;border:1px solid #bfd2e6;border-radius:6px;color:#153b60;font:inherit}
.pn-attendance-toolbar>small{margin-left:auto;color:#607b94;font-size:11px}
.pn-table td.pn-selection-cell{padding:0 4px}
.pn-row-check{min-width:34px}
.pn-selected:not(.pn-assignment-card) td,.pn-assignment-card.pn-selected{background:#eef7ff}
.pn-selected:not(.pn-assignment-card) td.pn-line{background:#f2f6fa}
.pn-sr-only{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}
.personnel-page :is(button,a,summary):focus-visible,.pn-dialog :is(button,input,select,textarea):focus-visible{outline:3px solid #2379d8;outline-offset:2px}
.pn-status.pn-planned{background:#e8f0ff;color:#2753a0}
.pn-transfer-downloads{display:flex;flex-wrap:wrap;gap:8px}
.pn-transfer-upload{display:grid;gap:12px;padding-top:16px;border-top:1px solid #d8e4ef}
.pn-transfer-upload h4{font-size:15px;margin:0}
.pn-transfer-upload>[data-pn-preview]{justify-self:start}
.pn-date-navigation{display:flex;gap:6px;align-self:end}.pn-date-navigation .pn-btn{min-width:60px}
.pn-notify-control{display:inline-flex}.pn-notify-control.pn-mobile-only{display:none}
@media(max-width:700px){.personnel-page .pn-mobile-attendance .pn-planned{display:inline-flex;flex-direction:column;line-height:1.2;font-size:10px;padding:3px 2px}}
@media(max-width:700px){
  .personnel-page{gap:10px}
  .pn-panel-tools{flex-wrap:wrap;padding:0;gap:0}
  .personnel-page .pn-panel-tools .pn-summary{flex-basis:100%}
  .pn-panel-tools>.pn-btn{margin:9px 10px 9px auto;min-height:44px;font-size:12px}
  .pn-attendance-toolbar{gap:8px;padding:8px 10px}
  .pn-attendance-toolbar>.pn-check{margin-right:auto}
  .pn-attendance-toolbar>small{flex-basis:100%;margin:0}
  .pn-attendance-toolbar .pn-attendance-status{flex:1}
  .pn-attendance-status select{font-size:16px;min-height:44px;width:100%}
  .pn-attendance-toolbar>.pn-btn{min-height:44px}
  .pn-attendance-toolbar .pn-check,.pn-row-check{min-height:44px;min-width:36px}
  .pn-selecting .pn-assignment-card>.pn-card-no,.pn-selecting .pn-assignment-card>[data-pn-menu]{display:none}
  .pn-selecting .pn-assignment-card{gap:8px}
  .personnel-page .pn-panel{scroll-margin-top:calc(var(--topbar-height,60px) + 10px)}
  .personnel-page .pn-desktop-only{display:none!important}
  .personnel-page .pn-mobile-only{display:block}
  .personnel-page .pn-heading{gap:10px}
  .personnel-page .pn-heading>div>small{display:none}
  .personnel-page .pn-heading h2{font-size:18px;margin:0;line-height:1.5}
  .personnel-page .pn-heading p{font-size:11px;margin:3px 0 0}
  .personnel-page .pn-actions{display:flex;flex-wrap:wrap}
  .personnel-page .pn-actions:empty{display:none}
  .personnel-page .pn-actions .pn-btn{min-height:44px;padding:7px 5px;font-size:12px;letter-spacing:-.3px}
  .personnel-page .pn-filter{padding:10px;border-radius:10px}
  .personnel-page .pn-filter .pn-field{gap:4px;font-size:12px}
  .personnel-page .pn-filter input{min-height:44px;height:44px;max-width:100%;font-size:16px}
  .personnel-page .pn-filter>.pn-btn{min-height:44px;min-width:60px}
  .personnel-page .pn-assignment-panel .pn-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:12px 4px;border-bottom:1px solid #dae5ef}
  .personnel-page .pn-assignment-panel .pn-summary>span{display:flex;flex-direction:column;align-items:center;gap:4px;color:#55718b;font-size:11px;border-right:1px solid #e0e9f1}
  .personnel-page .pn-assignment-panel .pn-summary>span:nth-child(5){border-right:0}
  .personnel-page .pn-assignment-panel .pn-summary b{font-size:16px;line-height:1.25}
  .personnel-page .pn-assignment-panel .pn-summary small{display:none}
  .pn-assignment-cards{padding:10px;background:#f2f6fb}
  .pn-mobile-line{border:1px solid #d6e2ef;border-radius:10px;overflow:hidden;background:#fff}
  .pn-mobile-line+.pn-mobile-line{margin-top:12px}
  .pn-mobile-line>header{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#eaf2fa;padding:10px 12px;color:#174777}
  .pn-mobile-line>header h3{margin:0;font-size:15px;overflow-wrap:anywhere;min-width:0}
  .pn-mobile-line>header>span{font-size:11px;white-space:nowrap;flex-shrink:0;color:#456986}
  .pn-assignment-card{display:flex;align-items:flex-start;gap:9px;padding:11px 10px;min-width:0}
  .pn-assignment-card+.pn-assignment-card{border-top:1px solid #e3ebf3}
  .pn-card-no{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:24px;min-height:24px;padding:2px 4px;border-radius:6px;background:#f0f4f8;color:#627e97;font-size:11px;font-variant-numeric:tabular-nums}
  .pn-assignment-card>.pn-card-no{margin-top:2px}
  .pn-assignment-content{flex:1;min-width:0}
  .pn-mobile-job{display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.5;font-size:14px;color:#254762}
  .pn-mobile-job>strong{overflow-wrap:anywhere}
  .pn-person-status{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:6px;font-size:15px;line-height:1.4;overflow-wrap:anywhere}
  .pn-person-status .pn-vacant{font-size:13px;font-weight:500;color:#946609}
  .pn-assignment-card>.pn-btn{min-width:44px;min-height:44px;padding:0;font-size:23px;flex-shrink:0;border-color:#e0e9f2}
  .pn-mobile-note{margin:7px 0 0;color:#5b748b;line-height:1.55;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}
  .personnel-page .pn-foot{padding:10px 12px;font-size:11px}
  .personnel-page .pn-people-panel .pn-summary{gap:6px 12px;padding:12px;border-bottom:1px solid #dde7f0}
  .personnel-page .pn-people-panel .pn-summary small{font-size:11px;color:#58718b}
  .pn-people-cards{padding:10px;background:#f2f6fb}
  .pn-person-card{min-width:0;border:1px solid #d6e2ef;background:#fff;border-radius:10px;overflow:hidden}
  .pn-person-card+.pn-person-card{margin-top:10px}
  .pn-person-card>header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px 0}
  .pn-person-identity{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
  .pn-person-identity h3{margin:0;font-size:16px;line-height:1.5;color:#183e60;overflow-wrap:anywhere;min-width:0}
  .pn-person-card>header>.pn-btn{min-width:52px;min-height:44px;padding:6px 10px;flex-shrink:0}
  .pn-person-company{padding:5px 12px 0;display:flex;align-items:center;gap:8px;font-size:13px;color:#486781;overflow-wrap:anywhere}
  .pn-person-company>span:first-child{min-width:0}
  .pn-person-phone{display:flex;align-items:center;gap:10px;padding:0 12px;font-size:13px;min-height:46px;color:#5c748c}
  .pn-person-phone a{display:inline-flex;align-items:center;min-height:44px;min-width:0;color:#1966ae;font-size:15px;font-weight:600;text-decoration:none;overflow-wrap:anywhere}
  .pn-person-card details{border-top:1px solid #e4ecf4}
  .pn-person-card summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:9px 12px;cursor:pointer;background:#f8fafc;color:#315e83;font-size:12px;font-weight:600}
  .pn-person-card summary::-webkit-details-marker{display:none}
  .pn-person-card summary::after{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-right:3px;margin-top:-3px}
  .pn-person-card details[open]>summary::after{transform:rotate(225deg);margin-top:3px}
  .pn-person-card .pn-details-open,.pn-person-card details[open] .pn-details-closed{display:none}
  .pn-person-card details[open] .pn-details-open{display:inline}
  .pn-person-detail-grid{margin:0;padding:13px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
  .pn-person-detail-grid>div{min-width:0}
  .pn-person-detail-grid dt{font-size:11px;color:#698197;margin-bottom:4px}
  .pn-person-detail-grid dd{font-size:13px;line-height:1.5;color:#254862;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
  .pn-person-detail-grid .pn-detail-wide{grid-column:1/-1}
  .pn-people-panel .pn-foot{justify-content:center}
  .pn-pagination{display:flex;align-items:center;justify-content:center;gap:13px;width:100%}
  .pn-pagination .pn-btn{min-width:60px;min-height:44px}
  .pn-dialog[open]{display:flex;flex-direction:column;width:calc(100vw - 16px);max-height:calc(100dvh - 20px);overflow:hidden;border-radius:12px}
  .pn-dialog>header{flex-shrink:0;padding:10px 12px;gap:10px}
  .pn-dialog h3{font-size:16px;line-height:1.5;min-width:0}
  .pn-dialog>header .pn-btn{min-width:44px;min-height:44px;flex-shrink:0}
  .pn-dialog>form{display:flex;flex-direction:column;min-height:0;overflow:hidden;margin:0}
  .pn-dialog-body{overflow:auto;overscroll-behavior:contain;padding:13px;min-height:0;display:block}
  .pn-dialog-body>*+*{margin-top:13px}
  .pn-dialog .pn-form-grid,.pn-dialog .pn-three{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}
  .pn-dialog .pn-form-grid .pn-field:has([name=phone],[name=person_id],[name=skills],[name=note],.pn-assignment-combo){grid-column:1/-1}
  .pn-dialog .pn-field{font-size:12px;gap:5px}
  .pn-dialog .pn-field :is(input,select,textarea){font-size:16px;min-height:44px;max-width:100%}
  .pn-dialog .pn-field input[type=file]{font-size:13px;padding:9px 5px}
  .pn-dialog footer{flex-shrink:0;padding:10px 12px max(10px,env(safe-area-inset-bottom));gap:8px}
  .pn-dialog footer .pn-btn{min-height:44px;min-width:76px}
  .pn-dialog .pn-help{font-size:12px}
  .pn-dialog .pn-example{font-size:11px;line-height:1.6;padding:8px}
  .pn-context{max-width:calc(100vw - 16px)}
}
/* Compact mobile personnel view; desktop tables and controls stay unchanged. */
@media(max-width:700px){
  .personnel-page .pn-actions :is([data-pn-action=sample],[data-pn-action=import],[data-pn-action=transfer]){display:none!important}
  .personnel-page.pn-assignment-page>.pn-heading{display:none}
  .personnel-page.pn-assignment-page .pn-assignment-controls{display:block;background:#fff;border:1px solid #d6e2ee;border-radius:11px;padding:11px}
  .personnel-page .pn-filter{display:grid;grid-template-columns:minmax(0,1fr) 60px;align-items:end;gap:8px;min-width:0}
  .personnel-page .pn-filter .pn-field{min-width:0;width:100%;max-width:100%}
  .personnel-page.pn-assignment-page .pn-assignment-controls>.pn-filter{padding:0;border:0;background:transparent;align-items:center}
  .personnel-page .pn-date-navigation{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .personnel-page .pn-date-navigation .pn-btn{min-width:0;min-height:38px;padding:6px;font-size:12px}
  .personnel-page .pn-notify-control.pn-mobile-only{display:flex;margin-top:8px}
  .personnel-page .pn-notify-control.pn-mobile-only .pn-btn{width:100%;min-height:40px}
  .personnel-page.pn-assignment-page .pn-filter .pn-field{display:grid;grid-template-columns:39px minmax(0,172px);align-items:center;gap:5px;white-space:nowrap;font-size:12px;color:#315777}
  .personnel-page .pn-filter input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
  .personnel-page.pn-assignment-page .pn-filter input[type=date]{padding:7px 4px;min-height:44px;line-height:normal;letter-spacing:-.6px;appearance:none;-webkit-appearance:none}
  .personnel-page.pn-assignment-page .pn-filter input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}
  .personnel-page .pn-compact-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #dce6f0;border-bottom:1px solid #dce6f0;margin:11px 0;padding:10px 0}
  .personnel-page .pn-compact-counts>span{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;font-size:12px;color:#587590;white-space:nowrap}
  .personnel-page .pn-compact-counts>span+span{border-left:1px solid #dae5ef}
  .personnel-page .pn-compact-counts b{color:#193f62;font-size:19px;line-height:1.3;font-variant-numeric:tabular-nums}
  .personnel-page .pn-compact-counts>span:nth-child(2) b{color:#08785a}.personnel-page .pn-compact-counts>span:nth-child(3) b{color:#bc3546}
  .personnel-page .pn-compact-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .personnel-page .pn-compact-actions:empty{display:none}.personnel-page .pn-compact-actions>.pn-btn:only-child{grid-column:1/-1}
  .personnel-page .pn-compact-actions .pn-btn{min-width:0;min-height:44px;padding:7px 4px;font-size:12px;letter-spacing:-.3px}
  .personnel-page .pn-assignment-panel{border:0;background:transparent;overflow:visible}
  .personnel-page .pn-assignment-panel>.pn-panel-tools{display:none}
  .personnel-page .pn-assignment-panel>.pn-attendance-toolbar{border:1px solid #d6e2ee;border-radius:9px;margin-bottom:10px}
  .personnel-page .pn-assignment-cards{padding:0;background:transparent}
  .personnel-page .pn-mobile-line>header{background:#f4f8fc;padding:10px 11px}
  .personnel-page .pn-mobile-line>header h3{border-left:3px solid #2878cc;padding-left:7px;font-size:14px}
  .personnel-page .pn-mobile-column-head,.personnel-page .pn-mobile-line-row{display:grid;grid-template-columns:24px minmax(0,1fr) 36px minmax(0,.95fr) 50px;align-items:center;gap:4px;min-width:0;width:100%;padding:0 8px;text-align:center}
  .personnel-page .pn-mobile-column-head{min-height:28px;font-size:11px;color:#65809b;border-bottom:1px solid #dae5ef;background:#fff}
  .personnel-page .pn-mobile-column-head>span:nth-child(2){text-align:left}
  .personnel-page .pn-assignment-card,.personnel-page .pn-selecting .pn-assignment-card{display:block;padding:0;gap:0}
  .personnel-page .pn-mobile-line-row{border:0;border-radius:0;background:transparent;color:#244963;min-height:46px;font-family:inherit;font-weight:400;font-size:13px;line-height:1.4;cursor:pointer}
  .personnel-page .pn-mobile-line-row{cursor:default}
  .personnel-page button.pn-mobile-worker-name{border:0;background:transparent;border-radius:5px;padding:0 2px;min-height:44px;min-width:0;width:100%;white-space:nowrap;cursor:pointer;font-family:inherit;color:#175988;text-decoration:underline;text-decoration-color:#b2cce2;text-underline-offset:3px}
  .personnel-page button.pn-mobile-worker-name:hover,.personnel-page button.pn-mobile-worker-name:focus-visible{background:#eaf3fb}
  .personnel-page .pn-mobile-line-row>.pn-card-no{margin:0;padding:0;background:transparent;min-width:0;min-height:0;font-size:11px;color:#7890a5}
  .personnel-page .pn-mobile-line-row>span{min-width:0;white-space:nowrap}
  .personnel-page .pn-mobile-day-note{grid-column:4/-1;grid-row:2;justify-self:stretch;min-width:0;margin:0 0 9px;padding:7px 9px;border-left:2px solid #bdd2e8;border-radius:4px;background:#f2f6fb;color:#385d7d;font-size:12px;text-align:left;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
  .personnel-page .pn-mobile-job-name{text-align:left;font-size:13px;overflow:hidden;text-overflow:ellipsis;font-weight:500}
  .personnel-page .pn-mobile-worker-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;font-weight:500}
  .personnel-page .pn-mobile-worker-name.pn-vacant{color:#7890a5}
  .personnel-page .pn-mobile-shift{font-size:11px;color:#698197}
  .personnel-page .pn-mobile-shift.pn-night{color:#7750bd;background:transparent}
  .personnel-page .pn-mobile-attendance .pn-status{max-width:100%;padding:3px 4px;font-size:11px;font-weight:500;border-radius:5px}
  .personnel-page .pn-mobile-line-row>.pn-row-check{min-width:24px;width:24px;min-height:46px;padding:0}
  .personnel-page .pn-mobile-line-row .pn-check input{width:17px!important;height:17px!important}
  .personnel-page .pn-assignment-panel>.pn-foot{background:transparent;padding:9px 2px 0;gap:7px}
}
.personnel-page .pn-duplicate-badge{display:block;margin:4px auto 0;border:1px solid #e1b967;border-radius:5px;background:#fff4d8;color:#805013;padding:3px 6px;font-family:inherit;font-weight:600;font-size:11px;line-height:1.4;white-space:nowrap;cursor:pointer}
.personnel-page .pn-duplicate-badge:hover,.personnel-page .pn-duplicate-badge:focus-visible{background:#ffe3a4;outline:2px solid #a16b10;outline-offset:1px}
.personnel-page .pn-duplicate-notice,.pn-dialog .pn-duplicate-notice{margin:10px 12px;padding:10px 13px;border:1px solid #efd59d;border-radius:7px;background:#fff9eb;color:#79501a;font-size:13px;line-height:1.6}
.personnel-page .pn-duplicate-notice strong,.personnel-page .pn-duplicate-notice span{display:block}
.pn-dialog .pn-duplicate-notice[hidden]{display:none}
.pn-dialog .pn-duplicate-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.pn-dialog .pn-duplicate-list li{padding:12px;border:1px solid #d7e2ef;border-radius:7px;background:#f7faff;display:grid;gap:5px;overflow-wrap:anywhere}
.pn-dialog .pn-duplicate-list small{color:#805013}
.personnel-page .pn-mobile-person{min-width:0}
@media(max-width:700px){
  .personnel-page .pn-mobile-person .pn-mobile-worker-name{display:block;max-width:100%}
  .personnel-page .pn-mobile-person .pn-duplicate-badge{min-height:32px;max-width:100%;font-size:11px;padding:3px;margin:0 auto 5px}
  .personnel-page .pn-duplicate-notice{margin:0 0 10px;font-size:12px}
}
