*{box-sizing:border-box}body{margin:0;background:#f3f5f1;color:#253d34;font:15px system-ui,-apple-system,sans-serif}header{height:68px;display:flex;align-items:center;justify-content:space-between;background:#183e33;color:#fff;padding:8px 22px;gap:10px}h1{font-size:22px;margin:0}header small{font-size:10px;letter-spacing:2px;color:#b4cec0}header button{font-size:12px;padding:7px 10px;min-height:36px}#identity{display:flex;align-items:center;gap:9px;font-size:13px}main{max-width:1400px;margin:auto;padding:22px}h2{font-size:20px;margin:0 0 18px}h3{font-size:16px;margin:18px 0 10px}button,input,select,textarea{font:inherit}button{min-height:44px;border:1px solid #cad7cc;background:#fff;color:#2c6045;border-radius:8px;padding:9px 14px;cursor:pointer}button:hover{background:#eef5eb}button.primary{background:#2b6b4c;color:#fff;border-color:#2b6b4c}button.danger{color:#a44d43;background:#fff5f2;border-color:#e0b8ae}button:disabled{opacity:.45;cursor:default}input,select,textarea{width:100%;border:1px solid #c9d5ca;border-radius:8px;padding:10px;min-height:44px;background:#fff;color:inherit}input:focus,select:focus,textarea:focus{outline:2px solid #6ca181;outline-offset:1px}input[type=checkbox]{width:20px;min-height:20px}label{display:block;font-size:13px;font-weight:600;margin:12px 0 6px}textarea{min-height:76px;resize:vertical}.card{background:white;border:1px solid #dce4d9;border-radius:13px;padding:20px;margin-bottom:16px}.login{max-width:450px;margin:35px auto}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fieldrow{display:flex;gap:7px;align-items:center}.fieldrow input{min-width:0}.fieldrow button{flex-shrink:0;font-size:12px;padding:8px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:15px}.actions .primary{flex:1}.note{font-size:12px;color:#697d6d;line-height:1.8}.warn{background:#fff6df;color:#81652d;padding:12px;border-radius:9px;font-size:13px;line-height:1.7}.error{color:#a44138;background:#fff0ec;padding:10px;border-radius:8px;font-size:13px;line-height:1.7}.success{color:#276143;background:#edf7e9;padding:10px;border-radius:8px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:4px 8px;border-radius:6px;background:#edf4e8;font-size:12px}nav{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:17px}nav button.active{background:#2b6b4c;color:white}details{border:1px solid #dce4d8;border-radius:9px;padding:10px;margin-top:12px}summary{cursor:pointer;font-size:13px;font-weight:600}.tablewrap{overflow:auto;max-height:55vh}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th,td{border-bottom:1px solid #e1e7dd;padding:10px 9px;text-align:left}th{background:#f2f6ef;position:sticky;top:0;z-index:1}td.wrap{white-space:normal;min-width:180px}td button{min-height:32px;padding:5px 10px;font-size:12px}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px}.filters label{margin-top:0}.metric{background:#f2f6ee;border:1px solid #e0e7da;padding:12px;border-radius:9px}.metric strong{display:block;font-size:19px;margin-top:6px}.metric small{font-size:12px;color:#6b7d68}dialog{border:0;border-radius:15px;padding:0;width:min(580px,calc(100% - 20px));max-height:94dvh;box-shadow:0 18px 80px #1238;overflow:auto;color:#253d34}dialog::backdrop{background:#142c2966;backdrop-filter:blur(2px)}.dialoghead{position:sticky;top:0;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid #e1e7dc;z-index:3}.dialoghead h2{font-size:18px;margin:0}.dialoghead button{border:0;font-size:22px;padding:3px;min-width:40px}#dialogBody{padding:0 18px 18px}.formfoot{position:sticky;bottom:0;background:#fff;padding:10px 0 0;z-index:2;display:flex;gap:8px}.formfoot button{flex:1}.category{display:flex;gap:6px}.category label{margin:0;flex:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:9px;border:1px solid #cad7c8;border-radius:8px;font-size:14px}.category label:has(input:checked){background:#e4f1de;border-color:#478352}.category input{width:17px;min-height:17px;margin:0 5px 0 0}.mobileMain{max-width:760px}.monthbar{display:flex;align-items:center;justify-content:space-between;gap:6px}.monthbar h2{margin:0;font-size:21px}.week,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week span{text-align:center;font-size:12px;padding:7px}.calendar{border-top:1px solid #dbe3d6;border-left:1px solid #dbe3d6;min-height:0}.day{border:0;border-bottom:1px solid #dbe3d6;border-right:1px solid #dbe3d6;border-radius:0;text-align:left;min-height:0;padding:4px;overflow:hidden;position:relative;display:flex;flex-direction:column;gap:3px;touch-action:manipulation}.day b{font-size:12px;line-height:19px;flex-shrink:0}.day small{font-size:10px;line-height:1.25;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.day.today{outline:2px solid #874c62;outline-offset:-2px}.day.today b{color:#874c62}.day.multi{background:#fff3a8}.day.other{opacity:.45}.day.selected{background:#d9ecd7!important;box-shadow:inset 0 0 0 2px #589365}.day.source{background:#ffd4a3!important;box-shadow:inset 0 0 0 3px #ed7407}.day.rest:after{content:'休';position:absolute;right:3px;top:3px;color:#a76e74;font-size:9px}.editing .day{touch-action:none}.dock{background:#fff;border:1px solid #dbe4d6;border-radius:11px;padding:10px;flex-shrink:0}.dock .actions{margin-top:7px;flex-wrap:nowrap}.dock button{font-size:13px;padding:8px;flex:1}.workerLayout{height:calc(100dvh - 68px);display:flex;flex-direction:column;gap:7px;padding:10px!important;max-width:760px;overflow:hidden}.workerCalendar{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid #dbe4d6;border-radius:12px;overflow:hidden;background:#fff}.workerCalendar .calendar{flex:1}.workerLayout .note{margin:0}.admin-layout{display:grid;grid-template-columns:210px 1fr;gap:20px}.admin-layout nav{display:flex;flex-direction:column;align-self:start;position:sticky;top:12px}.admin-layout nav button{text-align:left}.stack{display:grid;gap:10px}#message{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#153f31;color:#fff;border-radius:10px;padding:12px 18px;z-index:20;max-width:90%;font-size:13px;pointer-events:none}pre{white-space:pre-wrap;font-size:12px}.saved-note{color:#874c62;font-size:12px}a{color:#286b4b}[hidden]{display:none!important}@media(max-width:700px){main{padding:12px}header{padding:7px 12px;height:58px}h1{font-size:20px}#identity{font-size:11px;gap:5px}#identity button{font-size:11px;padding:5px 7px}.workerLayout{height:calc(100dvh - 58px)}.admin-layout{display:block}.admin-layout nav{position:static;flex-direction:row}.admin-layout nav button{font-size:12px;min-height:36px;padding:6px 10px}.grid3{grid-template-columns:1fr 1fr}.card{padding:14px}dialog{width:calc(100% - 16px)}#dialogBody{padding:0 14px 14px}.dialoghead{padding:10px 14px}.reportform label{margin:9px 0 5px}.reportform .grid2{gap:8px}.reportform .category label{min-height:42px}.reportform input,.reportform select{padding:8px}.reportform .note{font-size:11px;line-height:1.5}.reportform details{margin-top:9px}.category label{font-size:13px}.day{padding:3px}.day small{font-size:9px}.grid2{gap:8px}}@media(max-height:560px){.workerLayout{gap:4px}.day{gap:1px}.day b{font-size:10px;line-height:16px}.day small{font-size:8px}.dock{padding:6px}.monthbar button{min-height:34px;padding:4px 9px}.monthbar h2{font-size:18px}}
@media(max-width:700px){.workerLayout{height:calc(var(--visible-height,100dvh) - 58px)}dialog{position:fixed;top:calc(var(--visible-top,0px) + 8px);bottom:auto;margin:0 auto;max-height:calc(var(--visible-height,100dvh) - 16px)}}

/* Rest-day UI styles copied from the engineering system. */
.rest-dialog{max-width:680px!important;width:calc(100vw - 28px)!important;max-height:94dvh;overflow:auto;background:#fff;color:#152d40;gap:12px!important}
.rest-heading{display:flex;align-items:center;justify-content:space-between;padding-right:24px;gap:12px}.rest-import-button{font-size:13px;padding:6px 9px}
.rest-import-dialog{max-width:800px!important;width:calc(100vw - 28px)!important;max-height:92dvh;overflow:auto;background:#fff;color:#152d40}
.rest-import{display:flex;align-items:end;gap:16px;background:#f1f6f8;padding:16px;border-radius:7px;flex-wrap:wrap}.rest-import label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.rest-import input{width:100%;font-size:14px}.rest-help{color:#42576a;font-size:14px}
.rest-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.rest-toolbar strong{font-size:22px}.rest-toolbar button{min-height:44px;color:#152d40}
.rest-month{border:1px solid #bcccd7;border-radius:7px;padding:10px}.rest-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.rest-grid small{text-align:center;color:#344c5d;padding:4px;font-size:15px;font-weight:600}.rest-grid button,.rest-grid>span{height:48px}.rest-grid button{border-radius:5px;font-size:21px;font-weight:600;border:1px solid #ccd8e1;background:#fff;color:#152d40}.rest-grid button:hover:not(:disabled){border-color:#174c67;box-shadow:inset 0 0 0 1px #174c67}.rest-grid button:focus-visible{outline:3px solid #174c67;outline-offset:1px}
.rest-designated,.rest-vacation{background:#ffcced!important;color:#52234d!important}.rest-sunday{background:#fff0ce!important;color:#694900!important;opacity:1!important}
.rest-status{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:14px;color:#42576a}.rest-status>span:first-child{display:flex;align-items:center;gap:7px}.rest-status i{display:inline-block;width:16px;height:16px;border:1px solid #d39bbd;border-radius:3px}
.rest-preview{background:#f7fafc;border:1px solid #c5d6e1;padding:14px;border-radius:6px}.rest-preview p{font-size:14px;margin:6px 0}.rest-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:240px;overflow:auto;margin:12px 0}.rest-chips span{font-size:14px;border-radius:4px;padding:6px 9px}.rest-footnote{margin-right:auto;color:#42576a;font-size:13px;align-self:center}.rest-dialog .actions,.rest-import-dialog .actions{flex-wrap:wrap;margin-top:4px}.rest-dialog .actions button{min-height:44px}.rest-dialog .rest-footnote{width:100%}
@media(max-width:500px){.rest-dialog,.rest-import-dialog{padding:16px!important}.rest-grid{gap:3px}.rest-grid button,.rest-grid>span{height:44px}.rest-toolbar strong{font-size:20px}.rest-import{padding:12px}.rest-status{font-size:13px}}
.admin-layout{grid-template-columns:175px minmax(0,1fr)}.admin-layout nav.master-sections{position:static;flex-direction:row;margin-bottom:14px}.site-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.site-toolbar label{margin:0;flex:1;min-width:180px}.site-toolbar button{flex-shrink:0}.site-list{overflow:auto;margin-top:18px}.site-list table{font-size:13px;min-width:950px}.site-list th{font-size:12px;white-space:normal}.site-list td{vertical-align:middle}.site-list .site-name{min-width:220px;max-width:300px;white-space:normal}.site-name strong{display:block;line-height:1.6}.site-name small{display:block;margin-top:5px;color:#71816e;font-size:11px}.site-list input[type=number]{width:135px;min-height:40px;padding:8px}.site-list select{min-width:120px;max-width:190px;min-height:40px;padding:8px}.site-list .center{text-align:center}.site-list td>button{display:block;margin:4px 0}.site-list input[type=checkbox]{width:20px;height:20px;accent-color:#2b6b4c}.site-results{white-space:normal;background:#f7f9f4;border:1px solid #e1e8db;border-radius:10px;padding:18px}.site-results .tablewrap{max-height:none}.site-results h3{margin-top:20px}.worker-rate{border-top:1px solid #e0e8d9;margin-top:18px}.worker-rate .grid2{align-items:start}.text-link{border:0;background:transparent;padding:0!important;color:#256249;text-decoration:underline;font-weight:650;min-height:32px}.monthly-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.monthly-toolbar>label{flex:1;min-width:200px;margin:0}.month-switch{display:flex;align-items:end;gap:7px}.month-switch label{margin:0}.month-switch input{max-width:180px}.month-calendar{margin:20px 0;border:1px solid #dce5d6;border-radius:10px;overflow:hidden;height:430px;display:flex;flex-direction:column}.month-calendar .calendar{flex:1}.month-calendar .day{touch-action:manipulation}.month-calendar .day.today b{background:#874c62;color:white;width:22px;text-align:center;border-radius:50%}
#dialog.rest-dialog{padding:24px!important;max-width:680px!important;width:calc(100vw - 28px)!important;font-family:Arial,'Yu Gothic',sans-serif;overflow:auto;color:#152d40}#dialog.rest-dialog .dialoghead{position:static;border:0;padding:0 24px 0 0;margin-bottom:12px;gap:12px}#dialog.rest-dialog .dialoghead h2{font-size:18px;font-weight:600;line-height:28px}#dialog.rest-dialog #dialogBody{padding:0;display:grid;gap:12px}#dialog.rest-dialog #closeDialog{position:absolute;right:13px;top:13px;min-height:24px;width:24px;min-width:24px;padding:0;font-size:20px}#dialog.rest-dialog #restHeaderImport{margin-left:auto;margin-right:0;min-height:32px;display:inline-flex;align-items:center;gap:6px;border:1px solid #ccdce5;border-radius:5px;background:white;color:#335e74;font-size:13px;font-weight:400;padding:6px 9px}.rest-description{color:#42576a;font-size:14px;line-height:20px;margin:0}.rest-dialog .rest-toolbar button{font-weight:400}.rest-dialog button.quiet,.rest-import-dialog button.quiet{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;color:#335e74;border:1px solid #ccdce5;border-radius:5px;background:white;font-size:14px;flex:0 0 auto}.rest-dialog button.primary,.rest-import-dialog button.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#174c67;color:white;border:0;border-radius:6px;padding:11px 17px;font-size:14px;flex:0 0 auto}.rest-dialog .actions,.rest-import-dialog .actions{justify-content:flex-end;gap:12px}.rest-dialog .rest-grid button{min-height:0;padding:0}.rest-dialog .error{margin:0}.rest-dialog .rest-status{margin:0}.rest-import-dialog{padding:24px!important;font-family:Arial,'Yu Gothic',sans-serif;color:#152d40}.rest-pdf-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.rest-pdf-heading h2{margin:0;font-size:18px;font-weight:600}.rest-pdf-close{border:0;background:transparent;padding:0;min-height:24px;min-width:24px;font-size:20px}.rest-import-dialog .rest-description{margin-bottom:12px}.rest-import-dialog .rest-import label{margin:0;font-size:14px}.rest-import-dialog .rest-help{line-height:1.5;margin:12px 0}.rest-import-dialog input[type=file]{border:1px solid #c9d7df;border-radius:5px;padding:8px 10px}.rest-import-dialog .rest-preview{margin-bottom:12px}
@media(max-width:700px){.admin-layout{display:block}.admin-layout nav.master-sections{flex-wrap:wrap}.monthly-toolbar>label{min-width:100%}.month-calendar{height:420px}.site-toolbar label{min-width:130px}}@media(max-width:500px){#dialog.rest-dialog,.rest-import-dialog{padding:16px!important}.rest-dialog .rest-toolbar button{padding:7px;font-size:13px}}
.rest-dialog .error,.rest-import-dialog .error{background:#fff0ed;color:#a63126;padding:12px 16px;font-size:14px;border-radius:5px}.rest-dialog #closeDialog{opacity:.7}.rest-dialog #closeDialog:hover{opacity:1}
.master-grid{overflow:auto;max-height:70vh}.master-grid table{min-width:680px}.master-grid input:not([type=checkbox]),.master-grid select{min-width:130px;width:100%}.master-grid input[type=number]{min-width:110px}.master-grid td{vertical-align:top}.master-grid thead{position:sticky;top:0;background:#f4f7fb;z-index:1}
.report-sheet{margin-top:24px}.report-sheet h2{text-align:center}.report-profile{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #bcc7bd;border-left:1px solid #bcc7bd}.report-profile>div{display:grid;grid-template-columns:145px 1fr;border-right:1px solid #bcc7bd;border-bottom:1px solid #bcc7bd}.report-profile dt,.report-profile dd{margin:0;padding:10px}.report-profile dt{background:#f2f5ef}.monthly-report-table{width:100%;min-width:700px;border-collapse:collapse}.monthly-report-table td,.monthly-report-table th{border:1px solid #bcc7bd;padding:9px}.monthly-report-table th{text-align:center}.monthly-report-table td:first-child{white-space:nowrap}@media(max-width:650px){.report-profile{grid-template-columns:1fr}}
.monthly-report-table{min-width:920px}.monthly-report-table .monthly-remarks{min-width:180px;white-space:pre-wrap;overflow-wrap:anywhere}
.worker-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:20px}.worker-tile{display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:left;padding:20px;background:#fff;border:1px solid #d5ded4;border-radius:12px;min-width:0}.worker-tile:hover{background:#f3f7ef;border-color:#53785b}.worker-tile strong{font-size:18px}.worker-tile span{display:flex;flex-direction:column;gap:4px;white-space:normal;overflow-wrap:anywhere}.worker-tile small{color:#677566;font-size:12px}
.worker-tiles{display:flex;flex-direction:column;gap:8px}.worker-tile{display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(180px,2fr);align-items:center;gap:20px;padding:14px 18px;width:100%;border-radius:8px}.worker-tile strong{font-size:16px}.worker-tile span{display:block;white-space:normal}.worker-tile small{display:none}@media(max-width:600px){.worker-tile{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:10px;padding:13px 12px}.worker-tile strong{font-size:15px}.worker-tile span{font-size:14px}}
.worker-list-head{display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(180px,2fr);gap:20px;padding:12px 18px;margin-top:20px;font-weight:600;color:#425b46;background:#f0f4ed;border-radius:8px}.worker-list-head+.worker-tiles{margin-top:8px}@media(max-width:600px){.worker-list-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:10px;padding:12px;font-size:14px}}

.reportform{display:grid;gap:12px}.reportform input,.reportform select,.reportform button{min-height:46px;font-size:16px}.reportform>label{margin:0}.reportform .category{gap:10px}.reportform .category label{min-height:48px;display:flex;align-items:center;justify-content:center}.reportform .formfoot{position:sticky;bottom:0;background:#fff;padding:12px 0;margin:0;z-index:2}.reportform textarea{min-height:80px}

#reportHeaderDate{margin-left:auto;min-width:0}#reportHeaderDate label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#reportHeaderDate input{width:150px;min-height:44px;font-size:16px}#reportExtra .category{margin:10px 0}#categoryPrompt{color:#8a3e16;background:#fff2df;padding:10px;border-radius:8px}@media(max-width:380px){#reportHeaderDate input{width:137px}.dialoghead{gap:6px}.dialoghead h2{font-size:18px}}

.report-times{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.report-times label{display:block;margin-bottom:6px}#reportSiteListButton{justify-self:start;padding:8px 16px}#reportSiteListPanel{min-width:0}#reportSiteListPanel[hidden]{display:none}

.report-site-buttons{display:grid;gap:8px;max-height:240px;overflow-y:auto;overscroll-behavior:contain}.report-site-buttons button{text-align:left;white-space:normal;overflow-wrap:anywhere;width:100%;padding:10px 12px}

.report-times .fieldrow{display:flex;gap:8px;min-width:0}.report-times .fieldrow input{flex:1;min-width:0;width:0}

.report-times button[data-clock]{flex:0 0 auto;min-width:112px;min-height:48px;padding:10px 14px;font-size:16px;white-space:nowrap;background:#1768a4;color:#fff;border:2px solid #1768a4;font-weight:700;box-shadow:0 2px 3px #14375126}.report-times button[data-clock]:hover{background:#105584;border-color:#105584}.report-times button[data-clock]:active{background:#0b436b;transform:translateY(1px)}.report-times button[data-clock]:focus-visible{outline:3px solid #f4b640;outline-offset:3px}

/* Reserve identical calendar controls in normal and edit modes. */
.workerLayout .dock>.note{height:40px;min-height:40px;line-height:20px;overflow:hidden}.workerLayout .dock>.actions{height:48px;min-height:48px;overflow-x:auto;overflow-y:hidden;align-items:stretch}.workerLayout .dock>.actions button{height:48px;min-height:48px;white-space:nowrap;flex:1 0 auto}.workerLayout .dock{flex:0 0 auto}

.reportform .add-site{width:100%;min-height:48px;background:#eef5fa;color:#155a8c;border:1px solid #8eb6d3;font-weight:700}

.day{position:relative}.day.missing-time::after{content:"";position:absolute;inset:0;border:3px dashed #cc6513;border-radius:5px;pointer-events:none;z-index:2}

.workerLayout{border-radius:12px}.workerLayout.editing{background:#eee8da;box-shadow:inset 0 0 0 2px #b7a887}.workerLayout.editing .monthbar{color:#4d5947}.workerLayout.editing .dock{background:#f7f3e9;border-color:#b7a887}.workerLayout.editing .monthbar [data-action="edit"]{background:#45634f;color:#fff;border-color:#45634f;font-weight:700}.monthbar h2{position:relative}.editing-label{position:absolute;top:100%;left:50%;transform:translateX(-50%);font-size:10px;line-height:13px;white-space:nowrap;color:#5d604b;font-weight:700}

.copy-help-highlight{background:#fff2dc;border:2px solid #b56b20;border-radius:8px;padding:14px;color:#573712}.copy-help-highlight>strong{font-size:18px}.copy-help-highlight p{margin:10px 0 0;line-height:1.7}

/* Administrator home: scoped so the worker/mobile layout stays unchanged. */
#app.admin-app{max-width:none;padding:24px 26px}.admin-app .admin-shell{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start}.admin-app .admin-main-menu{display:flex;flex-direction:column;background:#f0eee5;border:1px solid #dce2d6;border-radius:12px;padding:16px 12px;gap:5px;min-height:calc(100dvh - 130px)}.admin-main-menu p{font-size:12px;color:#747b69;margin:4px 12px 15px}.admin-app .admin-main-menu button{text-align:left;background:transparent;border:0;padding:12px;color:#4b5e4c}.admin-app .admin-main-menu button.active{background:#45634f;color:#fff;font-weight:700}.admin-main-menu hr{border:0;border-top:1px solid #d9d9ca;width:100%;margin:18px 0}.admin-app #adminContent{min-width:0}.admin-app .admin-home-content{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr);gap:18px;align-items:start}.admin-home-pane{border:1px solid #dce2d6;border-radius:12px;background:#fff;overflow:hidden;min-height:610px}.admin-pane-head{padding:20px 20px 14px;border-bottom:1px solid #e9ece5}.admin-pane-head h2{font-size:20px;margin:0}.admin-pane-head p{font-size:12px;color:#737f70;margin:6px 0 14px}.admin-count{font-size:12px;font-weight:400;border-radius:12px;padding:3px 9px;background:#edf2e9;color:#62745d;white-space:nowrap}.admin-search-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.admin-pane-head input[type=search]{width:100%;font-size:14px;min-height:44px}.home-actual-filter{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:12px}.home-actual-filter input{width:18px;height:18px;accent-color:#45634f}.admin-pane-head>small{display:block;font-size:11px;color:#75816e;margin-top:6px}.admin-list-head,.admin-home-row{display:grid;gap:12px;align-items:center}.home-worker-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.home-site-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.admin-list-head{padding:12px 20px;background:#fafbf8;font-size:12px;color:#788270;border-bottom:1px solid #e4e8df}.admin-app .admin-home-row{width:100%;border:0;border-bottom:1px solid #ebeee7;border-radius:0;text-align:left;background:#fff;padding:16px 20px;font-size:14px;min-height:61px;overflow-wrap:anywhere}.admin-app .admin-home-row:hover{background:#f0f5eb}.admin-home-row strong{font-weight:600}.admin-home-row span{color:#6c7867}.admin-home-list{max-height:calc(100dvh - 350px);min-height:220px;overflow:auto}.admin-empty{padding:20px;color:#75816e;font-size:14px}.admin-site-tools{padding:14px 20px}.admin-site-tools>button{margin:0 8px 8px 0}.admin-site-tools details{margin-top:8px;font-size:13px}.admin-site-tools .card{padding:10px}.admin-site-tools input[type=file]{max-width:100%}
@media(max-width:1000px){#app.admin-app{padding:16px}.admin-app .admin-shell{grid-template-columns:150px minmax(0,1fr);gap:12px}.admin-app .admin-home-content{gap:12px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.admin-pane-head,.admin-app .admin-home-row,.admin-list-head{padding-left:12px;padding-right:12px}}
@media(max-width:700px){.admin-app .admin-shell{grid-template-columns:1fr}.admin-app .admin-main-menu{min-height:0;flex-direction:row;flex-wrap:wrap}.admin-main-menu p,.admin-main-menu hr{display:none}.admin-app .admin-home-content{grid-template-columns:1fr}.admin-home-pane{min-height:0}.admin-home-list{max-height:400px}}

.admin-app .site-flags-master .site-flags-table{min-width:700px;width:100%}.admin-app .site-flags-table input[type=checkbox]{width:20px;height:20px;accent-color:#45634f}.site-flags-dirty{background:#fff5de}.admin-app .site-flags-master>label{max-width:500px}.admin-app .site-flags-master .tablewrap{max-height:60dvh;overflow:auto}.site-flags-table thead th{position:sticky;top:0;background:#f0f4ed;z-index:1}

#dialog.site-performance-dialog{width:96vw;max-width:1440px;max-height:92dvh}.site-performance-dialog .dialoghead{background:#f1f4ed}.site-performance-dialog h3{margin-top:0}.site-performance-totals{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.site-performance-totals span{background:#f0f4ed;border:1px solid #d5dfd0;border-radius:8px;padding:12px 18px}.site-performance-totals strong{margin-left:12px}.site-monthly-performance{width:100%;min-width:650px;border-collapse:collapse}.site-monthly-performance th,.site-monthly-performance td{padding:14px 16px;border:1px solid #dce2d6;white-space:nowrap;text-align:right}.site-monthly-performance thead th,.site-monthly-performance tfoot{background:#f0f4ed}.site-monthly-performance th:first-child,.site-monthly-performance td:nth-child(2){text-align:left}.site-performance-dialog .tablewrap{max-height:60dvh;overflow:auto}

.admin-app .monthly-report-table{border-collapse:separate;border-spacing:0}.admin-app .monthly-report-table th{position:static;top:auto;z-index:auto}.admin-app .monthly-report-table thead{position:sticky;top:0;z-index:3;background:#f2f6ef}.admin-app .report-sheet>.tablewrap{max-height:70dvh;overflow:auto;position:relative}.monthly-grid-tools{margin:12px 0}.monthly-grid-tools p{font-size:13px;line-height:1.7}.monthly-grid-tools button{margin-right:8px}.monthly-grid td{user-select:none;min-width:90px;cursor:cell;white-space:pre-wrap}.monthly-grid .monthly-cell-selected{background:#e1edf5;box-shadow:inset 0 0 0 1px #6a9fc2}.monthly-grid .monthly-cell-dirty{border-bottom:3px solid #bf791b}.monthly-grid .monthly-cell-editing{user-select:text;cursor:text;background:#fff8e7;outline:2px solid #1768a4;min-width:120px}.monthly-grid:focus{outline:none}

.monthly-grid .monthly-list-cell:not(.monthly-cell-editing)::after{content:" ▾";color:#64816b;font-size:12px}.monthly-grid .monthly-list-input{display:block;width:100%;min-width:170px;font:inherit;margin-bottom:5px}.monthly-grid .monthly-list-options{display:block;min-width:170px;width:100%;font:inherit;white-space:normal}.monthly-grid .monthly-list-options option{padding:6px 8px}.monthly-grid .monthly-cell-editing{vertical-align:top}

.monthly-grid .monthly-list-cell{position:relative;padding-right:38px}.monthly-grid .monthly-list-cell:not(.monthly-cell-editing)::after{content:none}.monthly-grid .monthly-list-open{position:absolute;right:3px;top:50%;transform:translateY(-50%);width:28px;min-width:28px;height:28px;min-height:28px;padding:0;border:1px solid #b7c8b9;border-radius:4px;background:#edf3e9;color:#365b43;font-size:13px;line-height:26px;cursor:pointer}.monthly-grid .monthly-list-open:hover{background:#dce9d5}.monthly-grid .monthly-cell-editing{padding-right:9px}

.monthly-grid-popup{position:fixed;z-index:10000;box-sizing:border-box;padding:8px;background:#fff;border:1px solid #87a68d;border-radius:6px;box-shadow:0 5px 18px #243b3533}.monthly-grid-popup .monthly-list-input{box-sizing:border-box;width:100%;min-width:0;font:inherit;font-size:14px;padding:7px 9px;margin:0 0 6px}.monthly-grid-popup .monthly-list-options{box-sizing:border-box;width:100%;min-width:0;font:inherit;font-size:14px;overflow:auto}.monthly-grid-popup option{padding:6px 8px}.monthly-grid .monthly-cell-editing{min-width:90px}.monthly-grid .monthly-list-cell.monthly-popup-host{padding-right:38px}

.admin-app .monthly-report-table{table-layout:fixed;font-size:12px;width:100%;min-width:920px}.admin-app .monthly-report-table td,.admin-app .monthly-report-table th{padding:6px 7px;line-height:1.45;min-width:0;overflow-wrap:anywhere}.admin-app .monthly-report-table .monthly-list-cell{padding-right:27px}.monthly-grid .monthly-list-open{right:2px;width:22px;min-width:22px;height:23px;min-height:23px;font-size:10px;line-height:21px}.monthly-grid .monthly-cell-editing,.monthly-grid .monthly-list-cell.monthly-popup-host{min-width:0;padding-right:27px}.monthly-grid .monthly-cell-editing:not(.monthly-list-cell){padding-right:7px}.monthly-grid-tools{margin:8px 0}.monthly-grid-tools p{font-size:12px;line-height:1.5;margin:6px 0}.monthly-grid-tools button{font-size:12px;min-height:34px;padding:6px 10px}.monthly-grid-tools span{font-size:12px}.monthly-grid-popup{padding:4px;border-radius:4px}.monthly-grid-popup .monthly-list-input{font-size:12px;padding:4px 5px;min-height:28px;margin-bottom:3px}.monthly-grid-popup .monthly-list-options{font-size:12px;line-height:1.4}.monthly-grid-popup option{padding:3px 5px}.report-sheet h2{font-size:20px}

.monthly-grid .monthly-date-cell{cursor:copy;white-space:nowrap;color:#365b43}.monthly-grid tr[data-monthly-added=true] .monthly-date-cell{background:#fff3da}

/* Compact PC monthly headings; values stay on one line. */
.admin-app .monthly-report-table th,.admin-app .monthly-report-table td,.admin-app .monthly-report-table .monthly-remarks{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}.admin-app .monthly-report-table td:nth-child(3){font-variant-numeric:tabular-nums}.admin-app .monthly-report-table .monthly-cell-editing{white-space:nowrap;overflow:auto}.admin-app .monthly-report-table .monthly-popup-host{overflow:hidden}
