:root{--nav:#1d293b;--blue:#1688ec;--text:#182337;--muted:#65758b;--border:#dfe7ef;--bg:#f4f7fb;--green:#18a674;--red:#d93c51}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--bg);font:16px/1.6 "Yu Gothic UI",Meiryo,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text);padding:8px 14px;min-height:40px}button:hover{filter:brightness(.96)}button:disabled{opacity:.6;cursor:wait}input,select,textarea{width:100%;padding:9px 11px;border:1px solid #cbd7e4;border-radius:7px;background:white;color:var(--text)}textarea{min-height:90px}label{display:grid;gap:5px;font-size:14px;font-weight:600}a{color:#096dcb}h1{font-size:25px;margin:0}h2{font-size:19px;margin:0}h3{font-size:17px;margin:0}p{margin:8px 0}small{font-size:12px;color:var(--muted)}.primary{background:var(--blue);color:white;border-color:var(--blue)}.danger{color:var(--red)}.brand{font-size:28px;font-weight:850;letter-spacing:2px;color:white}.brand span{color:#ffc333}.brand-sub{color:#bac9db}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#13233a,#264f78)}.login form{width:min(430px,calc(100% - 32px));padding:35px;background:white;border-radius:15px;display:grid;gap:15px;box-shadow:0 20px 70px #00152d66}.login .brand{color:var(--nav)}.login p{color:var(--muted)}#login-error,#form-error{color:var(--red);font-size:14px}#sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--nav);color:white;padding:22px 13px;display:flex;flex-direction:column;z-index:20;overflow:auto}#sidebar>.brand,#sidebar>.brand-sub{padding-left:13px}nav{margin-top:24px;display:grid;gap:4px}nav button{display:flex;align-items:center;gap:12px;border:0;background:none;color:#eaf2ff;text-align:left;font-size:14px;min-height:44px}nav button.active{background:var(--blue);color:white}nav button span:first-child{font-size:20px;width:22px}.sidebar-footer{margin-top:auto;padding:20px 10px 0;display:grid;gap:7px;font-size:14px}.sidebar-footer span{color:#b1c3d9;font-size:12px}.sidebar-footer button{background:#2b3d55;color:#eaf3ff;border:0;font-size:13px;padding:5px 9px}.main{margin-left:240px}header{height:70px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 28px;background:white;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.header-end{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:14px}.pill,.status{display:inline-block;border-radius:5px;padding:3px 9px;background:#e7f2fc;color:#177ace;font-size:12px;white-space:nowrap}.status.approved,.status.paid,.status.done,.status.completed{background:#e3f7ee;color:#188355}.status.rejected,.status.inactive,.status.cancelled{background:#ffeded;color:#bd3e4a}.status.submitted,.status.sent{background:#fff3dd;color:#956510}#content{max-width:1640px;padding:26px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head p{color:var(--muted);font-size:14px}.actions{display:flex;gap:8px;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:20px 0}.kpi{border:1px solid var(--border);background:white;border-radius:10px;padding:18px;display:flex;gap:12px;align-items:center;text-align:left}.kpi .circle{background:#e2f2ff;color:#178ae9;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;font-size:25px;flex-shrink:0}.kpi.green .circle{background:#e1f8ed;color:var(--green)}.kpi.red .circle{background:#ffe4e9;color:var(--red)}.kpi.orange .circle{background:#fff1dd;color:#c78613}.kpi.purple .circle{background:#efe4ff;color:#8c50d8}.kpi strong{display:block;font-size:27px;line-height:1.3}.kpi small{font-size:13px}.panel{background:#fff;border:1px solid var(--border);border-radius:10px;margin-bottom:18px;overflow:hidden}.panel-title{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}.panel-title h2{color:#22364d}.panel-title h2:first-letter{color:var(--blue)}.grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}.body{padding:18px}.alert{display:flex;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border);font-size:14px}.alert strong{display:block}.alert .warning{color:var(--red);font-size:22px}.row{padding:12px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:14px}.muted{color:var(--muted)}.empty{padding:32px 20px;text-align:center;color:var(--muted)}.filters{display:flex;gap:10px;align-items:center;margin:16px 0}.filters input{max-width:380px}.filters select{max-width:190px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:13px 15px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:#f7f9fc;color:var(--muted);font-weight:600;white-space:nowrap}td:first-child{font-weight:600}td button{font-size:12px;padding:4px 8px;min-height:32px;margin:2px}td a{font-size:13px}.table-meta{padding:10px 16px;font-size:13px;color:var(--muted)}.calendar-tools{display:flex;gap:8px;padding:13px 16px;align-items:center;flex-wrap:wrap}.calendar-tools strong{margin-right:auto}.calendar-tools button.active{background:#dff0ff;color:#117ad6}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal.day{grid-template-columns:1fr}.cal-label{background:#f7f9fc;text-align:center;border-top:1px solid var(--border);border-right:1px solid var(--border);padding:7px;font-size:14px}.cal-cell{min-height:130px;padding:8px;border-top:1px solid var(--border);border-right:1px solid var(--border);font-size:14px;min-width:0}.cal-cell.today{background:#f0f8ff}.cal-cell.dim{color:#9aa8b9}.event{display:block;width:100%;text-align:left;font-size:12px;padding:5px 7px;background:#e7f7ee;border:0;border-left:3px solid #27b781;border-radius:4px;margin-top:5px;min-height:30px;overflow-wrap:anywhere}.event.task{background:#f0eaff;border-color:#8659ce}.event.leave{background:#fff1dd;border-color:#eda740}.event.assignment{background:#e6f2ff;border-color:#2787d5}.event.own-event{background:#dcecff;border-left-color:#1677d2;font-weight:700}.calendar-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:10px 13px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.calendar-legend span{display:inline-flex;align-items:center;gap:6px}.calendar-legend i{width:18px;height:12px;border-radius:3px;border-left:3px solid;display:inline-block}.legend-own{background:#dcecff;border-color:#1677d2}.legend-other{background:#e7f7ee;border-color:#27b781}progress{width:90px;height:9px;accent-color:var(--blue)}.big-value{font-size:24px;font-weight:750}.stats-line{display:flex;justify-content:space-between;padding:9px 0}.menu-toggle{display:none}dialog{border:0;padding:0;border-radius:12px;width:min(790px,calc(100% - 24px));max-height:92vh;color:var(--text);box-shadow:0 25px 100px #0e1b4455}dialog::backdrop{background:#14213988}#edit-form{padding:22px}.dialog-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.dialog-title button{font-size:24px;border:0}.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#163951;color:white;padding:12px 22px;border-radius:9px;z-index:100;max-width:90vw}.invoice-line{display:grid;grid-template-columns:2fr .7fr 1fr 1fr auto;gap:7px;align-items:center;margin:8px 0}.invoice-line input,.invoice-line select{font-size:14px}.hint{padding:12px 16px;background:#eaf4fc;border-radius:8px;font-size:14px;color:#305c85}.account{display:flex;gap:10px;flex-wrap:wrap}#print-area{display:none}.badge{font-size:12px;background:#fff0da;color:#986210;padding:4px 8px;border-radius:5px}.list-counter{font-size:13px;color:var(--muted)}
.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.admin-kpis>div{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 18px}.admin-kpis small{display:block;font-size:13px}.admin-kpis b{display:block;font-size:24px;margin-top:3px}.company-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.company-card{background:#fff;border:1px solid var(--border);border-top:4px solid var(--blue);border-radius:11px;padding:19px;min-width:0}.company-card.suspended{border-top-color:#9aa8b9;background:#fbfcfd}.company-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.company-card h2{margin-top:8px;overflow-wrap:anywhere}.company-card-head p{font-size:14px;color:var(--muted);overflow-wrap:anywhere}.plan{background:#eaf4fc;color:#126eaf;border-radius:8px;padding:7px 11px;text-align:right;font-size:13px;font-weight:700;white-space:nowrap}.plan small{display:block;font-size:11px}.company-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:18px 0}.company-card dl div{min-width:0}.company-card dt{font-size:12px;color:var(--muted)}.company-card dd{margin:2px 0;font-size:14px;overflow-wrap:anywhere}.overdue{color:var(--red);font-weight:700}.company-note{font-size:13px;background:#f6f8fb;border-radius:7px;padding:9px 11px;white-space:pre-wrap}.company-actions{display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px}.empty-state{grid-column:1/-1;padding:42px 20px;text-align:center}.empty-state p{color:var(--muted)}
.protection-state{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-radius:10px;margin-bottom:16px}.protection-state.good{background:#e6f7ef;border:1px solid #bce8d3;color:#116c49}.protection-state.bad{background:#fff0f1;border:1px solid #f2c4ca;color:#a42537}.protection-state span{font-size:14px}.row-actions{white-space:nowrap}.row-actions small{display:block;white-space:normal}
@media(max-width:1250px){.kpis{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:1fr}.three{grid-template-columns:1fr 1fr}.header-end #today{display:none}.company-list{grid-template-columns:1fr}}@media(max-width:760px){#sidebar{transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 0 100vmax transparent}#sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #13203488}.main{margin-left:0}header{padding:0 14px;height:60px}.menu-toggle{display:block}#content{padding:16px}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions,.page-head .actions button{width:100%}h1{font-size:22px}.kpis{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:12px;gap:8px}.kpi .circle{width:35px;height:35px;font-size:20px}.kpi strong{font-size:22px}.three{grid-template-columns:1fr}.fields-grid{grid-template-columns:1fr}.full{grid-column:auto}.invoice-line{grid-template-columns:1fr 1fr}.invoice-line>input:first-child{grid-column:1/-1}.cal:not(.day){min-width:650px}.calendar-scroll{overflow:auto}.filters{flex-wrap:wrap}.filters input{max-width:none}th,td{padding:10px}.header-end{font-size:12px}dialog{max-height:95vh}#edit-form{padding:16px}.admin-kpis{grid-template-columns:1fr 1fr;gap:9px}.admin-kpis>div{padding:12px}.admin-kpis b{font-size:20px}.company-card{padding:15px}.company-card-head{display:block}.plan{display:inline-block;text-align:left;margin-top:8px}.company-card dl{grid-template-columns:1fr}.company-actions button{flex:1;min-width:120px}}
@media print{body>*:not(#print-area){display:none!important}#print-area{display:block;padding:12mm;font-size:12pt;color:#111}#print-area h1{text-align:center;margin:10mm 0}#print-area .invoice-meta{display:flex;justify-content:space-between;gap:20mm}#print-area table{margin:10mm 0}#print-area th,#print-area td{border:1px solid #ccc}#print-area p{white-space:pre-line}#print-area .total{text-align:right;font-size:18pt;font-weight:bold} @page{size:A4;margin:12mm}}
[hidden]{display:none!important}
#mobile-nav{display:none}
@media(max-width:760px){body{font-size:16px;padding-bottom:calc(72px + env(safe-area-inset-bottom))}button{min-height:48px;padding:10px 14px;touch-action:manipulation}input,select,textarea{font-size:16px;min-height:48px;padding:11px 12px}#sidebar{width:min(86vw,320px);padding-bottom:calc(20px + env(safe-area-inset-bottom))}#sidebar.open{box-shadow:0 0 0 100vmax #13203499}header{padding:0 12px;height:58px}.menu-toggle{width:48px;padding:0;font-size:22px}#breadcrumb{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-end{gap:7px}.header-end #role{font-size:11px;padding:3px 6px}#content{padding:14px 12px}.page-head{margin-bottom:14px}.page-head p{margin:4px 0}.page-head .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.page-head .actions>*{width:100%}.page-head .actions a button,.page-head .actions button{width:100%}h1{font-size:21px}.kpis{gap:8px;margin:14px 0}.kpi{padding:11px 9px;gap:7px;min-height:76px}.kpi .circle{width:34px;height:34px;font-size:19px}.kpi strong{font-size:21px}.kpi small{font-size:12px}.fields-grid{gap:13px}.invoice-line{padding:10px;background:#f6f8fb;border-radius:9px}.cal-cell{min-height:100px}.calendar-tools{padding:10px;gap:6px}.filters{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0}.filters input,.filters select{max-width:none}.mobile-cards{overflow:visible;background:transparent;border:0}.mobile-cards table,.mobile-cards tbody,.mobile-cards tr,.mobile-cards td{display:block;width:100%}.mobile-cards thead{display:none}.mobile-cards tr{background:#fff;border:1px solid var(--border);border-radius:11px;margin-bottom:10px;padding:6px 12px;box-shadow:0 2px 8px #15304d0a}.mobile-cards td{display:grid;grid-template-columns:minmax(92px,35%) 1fr;gap:10px;padding:9px 0;border-bottom:1px solid #edf1f5;font-size:14px;overflow-wrap:anywhere}.mobile-cards td::before{content:attr(data-label);color:var(--muted);font-size:13px;font-weight:500}.mobile-cards td:first-child{font-size:16px}.mobile-cards td:last-child{border-bottom:0}.mobile-cards .row-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px}.mobile-cards .row-actions::before{width:100%}.mobile-cards .row-actions button{flex:1;min-width:86px;margin:0}dialog{width:100%;max-width:none;max-height:92dvh;margin:auto 0 0;border-radius:18px 18px 0 0}#edit-form{padding:0 16px 16px;overflow:auto;max-height:92dvh}.dialog-title{position:sticky;top:0;background:#fff;z-index:2;padding:14px 0 10px;margin:0 0 12px;border-bottom:1px solid var(--border)}dialog footer{position:sticky;bottom:0;background:#fff;padding:12px 0 calc(8px + env(safe-area-inset-bottom));margin-top:14px;border-top:1px solid var(--border)}dialog footer button{flex:1}input[type=file]{padding:8px;height:auto}input[type=file]::file-selector-button{border:0;border-radius:7px;background:#e5f2ff;color:#096dcb;padding:10px;margin-right:8px;font-weight:700}#mobile-nav{position:fixed;z-index:18;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom));padding:5px 5px env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--border);display:flex;justify-content:space-around;box-shadow:0 -6px 24px #102a4614}#mobile-nav button{border:0;background:transparent;border-radius:9px;min-height:54px;min-width:55px;padding:3px 7px;display:grid;place-items:center;color:var(--muted);line-height:1.1}#mobile-nav button span{font-size:21px}#mobile-nav button small{font-size:11px;color:inherit}#mobile-nav button.active{color:var(--blue);background:#eaf4fc}#toast{bottom:calc(78px + env(safe-area-inset-bottom));width:calc(100% - 24px);text-align:center}}

.login-remember{display:flex;align-items:center;gap:10px;font-weight:500;cursor:pointer}.login-remember input{width:20px;height:20px;min-height:0;accent-color:var(--blue)}.password-manager-note{margin-top:-9px}.login #signup-help{background:#eef6ff;border-radius:8px;padding:10px 12px;line-height:1.55}@media(max-width:760px){.login{min-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 0 calc(16px + env(safe-area-inset-bottom))}.login form{padding:26px 22px;gap:13px;border-radius:18px}.login .brand{font-size:30px}.login h1{font-size:24px}.login-remember input{min-height:0}}
.multi-picker,.permission-grid{border:1px solid var(--border);border-radius:9px;padding:12px}.multi-picker legend,.permission-grid legend{font-weight:700;padding:0 6px}.multi-picker .select-all{display:flex;grid-column:auto;align-items:center;gap:8px;background:#eaf4fc;padding:9px;border-radius:7px}.multi-picker>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.multi-picker label,.permission-grid label{display:flex;align-items:center;gap:8px}.multi-picker input,.permission-grid input{width:20px;height:20px;min-height:0;flex:none;accent-color:var(--blue)}.permission-head,.permission-grid>div{display:grid;grid-template-columns:minmax(150px,1fr) 62px 72px 72px minmax(120px,150px);align-items:center;gap:8px;padding:7px;border-bottom:1px solid #edf1f5}.permission-grid label small{font-size:11px}.permission-grid select{min-height:40px;padding:6px 8px}.permission-presets{margin:10px 0 14px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#eef6ff}.permission-presets h3,.permission-presets p{margin:0 0 8px}.permission-presets label{display:inline-flex;margin:4px 16px 4px 0}.file-viewer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.file-viewer-head button{font-size:24px;border:0}#file-viewer{width:min(900px,calc(100% - 20px));height:min(90vh,900px)}#file-body{height:calc(100% - 135px);display:grid;place-items:center;background:#eef2f6;overflow:auto}#file-body img{max-width:100%;max-height:100%;object-fit:contain}#file-body iframe{width:100%;height:100%;border:0;background:white}#file-viewer footer{display:flex;gap:8px;padding:12px 16px}.download-button{display:inline-grid;place-items:center;background:var(--blue);color:#fff;text-decoration:none;border-radius:7px;padding:10px 16px;min-height:44px}@media(max-width:760px){.multi-picker>div{grid-template-columns:1fr}.permission-head,.permission-grid>div{grid-template-columns:minmax(100px,1fr) 46px 46px 46px;gap:4px}.permission-head b:last-child{display:none}.permission-grid label{display:grid;justify-items:center;gap:2px}.permission-grid>div>[data-permission-scope]{grid-column:1/-1}.permission-presets label{display:flex;margin:8px 0}#file-viewer{width:100%;height:94dvh;max-height:94dvh}#file-viewer footer>*{flex:1;text-align:center}}
.permission-note{grid-column:1/-1;margin:0 0 8px;color:var(--muted);font-size:13px}.permission-grid input:disabled{cursor:not-allowed;opacity:.45}.expiry-date{min-width:0}.expiry-date input[type="date"]{width:100%;min-width:0;max-width:100%}@media(max-width:760px){.expiry-field{overflow:hidden}.expiry-date{display:grid;grid-template-columns:1fr;gap:6px}.expiry-date input[type="date"]{-webkit-appearance:none;appearance:none;display:block}}
.expiry-date{display:grid!important;gap:.45rem;width:100%;min-width:0}.expiry-date input{display:block;width:100%;min-width:0;max-width:100%;height:auto;min-height:52px;box-sizing:border-box}.expiry-date[hidden]{display:none!important}
.photo-picker{border:1px solid var(--border);border-radius:9px;padding:12px}.photo-picker legend{font-weight:700;padding:0 6px}.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.photo-actions label{background:#eef6ff;border:1px solid #cfe3f6;border-radius:8px;padding:10px}.photo-actions input{margin-top:6px}.linked-worker{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#eaf4fc;border:1px solid #cfe3f6;border-radius:9px;padding:11px 14px;margin-bottom:12px}.row-actions{white-space:normal}@media(max-width:760px){.photo-actions{grid-template-columns:1fr}.linked-worker{align-items:stretch;flex-direction:column}.linked-worker button{width:100%}}
.photo-actions.single{grid-template-columns:1fr}.photo-actions.single label{display:grid;gap:6px}
.company-seal{width:92px;height:92px;object-fit:contain;display:block;margin:8px 0 0 auto}.invoice-document{background:#fff;color:#152236;padding:24px;width:100%;min-width:0;box-sizing:border-box}.invoice-document h1{text-align:center}.invoice-document .invoice-meta{display:flex;justify-content:space-between;gap:28px}.invoice-document .issuer{text-align:right;position:relative}.invoice-document table{margin:24px 0;table-layout:fixed}.invoice-document th,.invoice-document td{overflow-wrap:anywhere}.invoice-totals{display:flex;justify-content:flex-end;gap:24px;align-items:end}.warning-text{color:#b42335;font-weight:700}#invoice-viewer{width:min(1000px,calc(100% - 20px));height:min(94vh,1000px)}#invoice-preview-body{height:calc(100% - 135px);background:#dfe5ec;overflow:auto;padding:18px}#invoice-viewer footer{display:flex;gap:8px;padding:12px 16px}.more-actions{position:relative}.more-actions summary{list-style:none;border:1px solid var(--border);border-radius:7px;min-height:32px;padding:5px 12px;cursor:pointer}.more-actions summary::-webkit-details-marker{display:none}.more-actions button{position:absolute;right:0;top:38px;z-index:3;background:#fff;box-shadow:0 8px 24px #102a4630}
@media(max-width:760px){#invoice-viewer{width:100%;height:94dvh;max-height:94dvh}#invoice-preview-body{padding:6px;overflow-x:hidden}.invoice-document{padding:14px;font-size:12px}.invoice-document h1{font-size:22px;margin:4px 0 16px}.invoice-document h2{font-size:16px}.invoice-document .invoice-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px}.invoice-document .issuer{font-size:11px}.invoice-document table{font-size:10px;margin:14px 0}.invoice-document th,.invoice-document td{padding:6px 3px}.company-seal{width:58px;height:58px}.invoice-totals{gap:10px}.invoice-list tr{padding:8px 12px}.invoice-list td{padding:7px 0}.invoice-list .row-actions{display:grid;grid-template-columns:repeat(3,1fr)}.invoice-list .row-actions::before{grid-column:1/-1}.invoice-list .row-actions button{min-width:0;width:100%;font-size:12px;padding:7px 4px}.invoice-list .more-actions{grid-column:1/-1}.invoice-list .more-actions summary{display:grid;place-items:center;min-height:40px}.invoice-list .more-actions button{position:static;margin-top:6px}#invoice-viewer footer>*{flex:1}}
.attendance-export{display:flex;align-items:end;gap:12px;margin:14px 0;padding:14px;border:1px solid #dbe5ef;border-radius:14px;background:#fff}.attendance-export label{display:grid;gap:6px;font-weight:700}.attendance-export input{min-width:180px}@media(max-width:640px){.attendance-export{align-items:stretch;flex-direction:column}.attendance-export input,.attendance-export button{width:100%}}
.nav-group{border-bottom:1px solid #ffffff18;padding:3px 0}.nav-group summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;color:#aebfd3;font-size:12px;font-weight:700;cursor:pointer;list-style:none}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary span{transition:transform .18s}.nav-group[open] summary span{transform:rotate(180deg)}.nav-group>div{display:grid;gap:3px}.nav-group button{width:100%;padding-left:18px}.nav-group button span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.plan-card{background:#fff;border:1px solid var(--border);border-top:4px solid var(--blue);border-radius:11px;padding:19px;min-width:0}.plan-card.suspended{border-top-color:#9aa8b9;background:#fbfcfd}.plan-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.plan-card-head h2{margin:8px 0 0;font-size:22px}.plan-card-head>strong{color:#126eaf;font-size:21px;text-align:right;white-space:nowrap}.plan-card-head>strong small{display:block;color:var(--muted);font-size:11px}.plan-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px;margin:18px 0}.plan-card dl div{min-width:0}.plan-card dt{font-size:12px;color:var(--muted)}.plan-card dd{margin:2px 0;font-size:14px;font-weight:700;overflow-wrap:anywhere}@media(max-width:900px){.plan-grid{grid-template-columns:1fr}}@media(max-width:760px){.plan-card{padding:15px}.plan-card-head{display:block}.plan-card-head>strong{display:block;text-align:left;margin-top:10px}.plan-card dl{grid-template-columns:1fr 1fr}.plan-card .company-actions button{flex:1}}

/* Compact, non-modal mobile navigation: keep the exposed page interactive. */
.sidebar-close{display:none}
@media(max-width:760px){
 #sidebar{width:50vw;padding:12px 8px calc(20px + env(safe-area-inset-bottom));box-shadow:none;overscroll-behavior:contain}
 #sidebar.open{box-shadow:3px 0 12px #13203426}
 #sidebar .sidebar-close{display:block;align-self:flex-end;flex-shrink:0;width:44px;min-height:44px;padding:0;background:transparent;border:0;color:white;font-size:26px;line-height:1}
 #sidebar>.brand{font-size:24px;letter-spacing:1px;padding-left:6px}
 #sidebar>.brand-sub{padding-left:6px;font-size:12px;white-space:normal}
 #sidebar #nav{margin-top:16px}
 #sidebar .nav-group summary{min-height:44px;padding:8px 6px;font-size:14px}
 #sidebar #nav button{min-height:48px;height:auto;padding:10px 6px;gap:7px;font-size:14px;line-height:1.5;text-align:left}
 #sidebar #nav button span:first-child{flex-shrink:0}
 #sidebar #nav button span:last-child{min-width:0;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
 #sidebar .sidebar-footer{font-size:12px;overflow-wrap:anywhere;min-width:0}
 #sidebar .sidebar-footer button{font-size:14px;padding:8px 4px;white-space:normal}
}

.break-picker{border:1px solid var(--border);border-radius:10px;padding:14px}.break-picker legend{font-weight:700;padding:0 6px}.break-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.break-presets button{font-weight:700;border:1px solid #bfd6eb;background:#f6faff}.break-presets button.selected{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 3px 10px #1688ec30}.break-custom{margin-top:10px}.break-picker>small{display:block;margin-top:9px}@media(max-width:420px){.break-presets{grid-template-columns:repeat(2,1fr)}}
.quick-entry{display:grid;gap:14px;margin-bottom:22px}.quick-top-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-readonly{display:grid;gap:5px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#f7f9fc}.quick-card{margin:0;background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 3px 12px #193a5d0b}.quick-card h2{margin:0 0 12px}.quick-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-time-grid input{font-size:26px;font-weight:800;color:#10264a}.quick-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-summary>div{background:#f4f8fc;border:1px solid var(--border);border-radius:12px;padding:14px}.quick-summary small,.quick-summary strong{display:block}.quick-summary strong{font-size:22px;color:#10264a}.quick-notes{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px}.quick-notes summary{font-weight:700;cursor:pointer}.quick-notes textarea{margin-top:10px}.quick-save{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));z-index:5;width:100%;min-height:56px;font-size:18px;font-weight:800;box-shadow:0 8px 22px #1688ec38}.quick-error{color:var(--red);margin:0}.quick-history{margin-top:22px}.quick-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.quick-history-head h2{margin:0}.quick-export{display:flex;gap:7px}.quick-export input{max-width:170px}.quick-history-list{display:grid;gap:8px}.quick-record{display:grid;grid-template-columns:100px minmax(0,1fr) auto auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:11px;padding:11px 13px}.quick-record-main{display:grid;min-width:0}.quick-record-main small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-record-actions{display:flex;gap:5px}.quick-record-actions button{padding:6px 9px;min-height:34px}.leave-days{border:0;padding:0;margin:14px 0 0}.leave-days legend{font-weight:700;margin-bottom:7px}.leave-days>div{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.leave-days button{font-weight:700;background:#f6faff;border-color:#bfd6eb}.leave-days button.selected{background:var(--blue);border-color:var(--blue);color:#fff}.leave-custom{margin-top:10px}
@media(max-width:760px){.quick-top-row{grid-template-columns:1fr}.quick-time-grid{gap:8px}.quick-time-grid input{font-size:23px}.quick-card{padding:14px}.quick-summary strong{font-size:19px}.quick-history-head{align-items:stretch;flex-direction:column}.quick-export{display:grid;grid-template-columns:1fr auto}.quick-export input{max-width:none}.quick-record{grid-template-columns:82px 1fr auto;gap:8px;padding:10px}.quick-record-actions{grid-column:1/-1}.quick-record-actions button{flex:1}.leave-days>div{grid-template-columns:repeat(2,1fr)}}

.attendance-export-controls{align-items:end;flex-wrap:wrap}.attendance-export-controls label{display:grid;gap:4px;font-size:12px}.attendance-export-controls input,.attendance-export-controls select{min-width:150px}@media(max-width:760px){.attendance-export-controls{display:grid;grid-template-columns:1fr 1fr;width:100%}.attendance-export-controls label:first-child{grid-column:1/-1}.attendance-export-controls button{grid-column:1/-1}}

.attendance-export-panel{display:grid;gap:12px;margin-bottom:16px;padding:15px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 3px 12px #193a5d0b}.attendance-export-panel h2{margin:0;font-size:18px}.attendance-export-panel>div:first-child small{color:var(--muted)}.attendance-export-panel .quick-export{justify-content:flex-start}

/* Calendar weekday colors and compact, readable cards on phones. */
.cal-label.sunday,.cal-cell.sunday>b{color:#c53043}
.cal-label.saturday,.cal-cell.saturday>b{color:#176ac5}
.cal-cell.holiday>b,.cal-cell.holiday .holiday-name{color:#c53043}
.holiday-name{display:block;width:100%;font-size:11px;line-height:1.25;overflow-wrap:anywhere;margin-top:2px}
.event{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}
#calendar-detail{width:min(420px,calc(100% - 24px));padding:0;border:1px solid var(--border);border-radius:12px}
#calendar-detail .file-viewer-head{padding:14px 16px;gap:10px}
#calendar-detail h2{min-width:0;overflow-wrap:anywhere}
#calendar-detail .body{padding:4px 16px 12px}
#calendar-detail footer{padding:10px 16px;display:flex;justify-content:flex-end}
@media(max-width:760px){
  .calendar-scroll{width:100%;overflow-x:hidden}
  .cal:not(.day){min-width:0;width:100%;grid-template-columns:repeat(7,minmax(0,1fr))}
  .cal-label{min-width:0;padding:4px 0;font-size:12px}
  .cal-cell{min-width:0;min-height:74px;padding:3px 2px;font-size:12px}
  .cal-cell>b{display:block;font-size:12px;line-height:1.3}
  .cal:not(.day) .holiday-name{font-size:10px;line-height:1.2;margin-top:1px}
  .cal:not(.day) .event{font-size:10px;line-height:1.25;min-height:34px;padding:4px 1px;margin-top:2px;border-left-width:1px;white-space:normal}
  .cal:not(.day) .event-caption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;word-break:break-all;white-space:normal}
  .cal.day .event{font-size:13px;min-height:40px}
  .calendar-tools{gap:4px;padding:8px 6px}
  .calendar-tools button{min-height:38px;padding:5px 8px;font-size:13px}
  .calendar-tools strong{font-size:13px}
  .calendar-legend{gap:10px;padding:7px 8px;font-size:11px}
  #calendar-detail{width:100%;max-width:none;margin:auto 0 0;border-radius:16px 16px 0 0}
}

/* Let the phone calendar use the available screen width like a full-page month view. */
@media(max-width:760px){
  .calendar-panel{width:calc(100% + 24px);margin-left:-12px;margin-right:-12px;border-left:0;border-right:0;border-radius:0;min-width:0}
  .calendar-panel .cal-cell{min-height:92px;padding:4px 1px;border-color:#ebeff4}
  .calendar-panel .cal-label{border-color:#ebeff4}
  .calendar-panel .cal:not(.day) .event{padding:4px 1px;margin-top:3px;border-left-width:1px}
}

@media(max-width:760px){.quick-entry[data-quick-form="attendance"] .quick-save{position:static;box-shadow:none}}

/* Keep the common attendance entry and save button visible on a phone. */
.work-schedule{border:1px solid var(--border);border-radius:12px;padding:12px}.work-schedule legend{padding:0 6px;font-weight:700}.work-schedule>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.work-schedule label{display:grid;gap:5px}.work-schedule input{width:100%;min-width:0}.work-schedule small{display:block;margin-top:8px;color:var(--muted)}
@media(max-width:760px){.work-schedule>div{grid-template-columns:repeat(2,minmax(0,1fr))}.work-schedule label:last-child{grid-column:1/-1}}
@media(max-width:760px){
  .attendance-head{display:flex;align-items:center;gap:8px;margin:0 0 8px}
  .attendance-head h1{margin:0;font-size:21px}
  .attendance-head p{display:none}
  .attendance-head .actions{display:flex;width:auto;flex:none}
  .attendance-head .actions button{width:auto;min-height:38px;padding:5px 10px}
  .quick-entry[data-quick-form="attendance"]{gap:8px;margin-bottom:14px}
  .quick-entry[data-quick-form="attendance"] .quick-top-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .quick-entry[data-quick-form="attendance"] .quick-top-row>*{min-width:0}
  .quick-entry[data-quick-form="attendance"] .quick-top-row input{width:100%;min-width:0}
  .quick-entry[data-quick-form="attendance"] .quick-readonly{min-width:0;padding:5px 8px;overflow:hidden}
  .quick-entry[data-quick-form="attendance"] .quick-readonly b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .quick-entry[data-quick-form="attendance"] .quick-card{padding:8px 10px;border-radius:10px}
  .quick-entry[data-quick-form="attendance"] .quick-card h2{font-size:16px;margin:0 0 4px}
  .quick-entry[data-quick-form="attendance"] .quick-time-grid{gap:8px}
  .quick-entry[data-quick-form="attendance"] .quick-time-grid input{min-width:0;padding:7px;font-size:20px}
  .quick-entry[data-quick-form="attendance"] .quick-card>small{display:none}
  .quick-entry[data-quick-form="attendance"] .break-presets{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .quick-entry[data-quick-form="attendance"] .break-presets button{min-width:0;min-height:40px;padding:5px 1px;font-size:14px}
  .quick-entry[data-quick-form="attendance"] .break-picker legend{font-size:16px}
  .quick-entry[data-quick-form="attendance"] .attendance-site,.quick-entry[data-quick-form="attendance"] .quick-notes{padding:8px 10px}
  .quick-entry[data-quick-form="attendance"] .attendance-site label{display:grid;gap:4px;margin-top:8px}
  .quick-entry[data-quick-form="attendance"] .attendance-site select{width:100%}
  .quick-entry[data-quick-form="attendance"] .quick-summary{gap:8px}
  .quick-entry[data-quick-form="attendance"] .quick-summary>div{padding:6px 10px}
  .quick-entry[data-quick-form="attendance"] .quick-summary strong{font-size:17px}
  .quick-entry[data-quick-form="attendance"] .quick-save{min-height:48px;margin:0}
}
/* Compact schedule controls and date-range export. */
.calendar-permission{font-size:13px;color:var(--muted);margin:0 0 10px}
.calendar-permission summary{cursor:pointer;width:max-content;max-width:100%;padding:3px 0}
.calendar-permission p{margin:6px 0 0;padding:10px 12px;background:#eaf4fc;border-radius:8px;line-height:1.5}
.calendar-export-body{padding:22px;min-width:min(420px,calc(100vw - 32px))}
.calendar-export-body h2{font-size:19px;margin:0 0 5px}
.calendar-export-body>p{margin:0 0 18px;color:var(--muted);font-size:14px}
.calendar-export-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.calendar-export-dates label{display:grid;gap:6px;font-size:14px;font-weight:600}
.calendar-export-dates input{width:100%;min-width:0}
.calendar-export-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
@media(max-width:760px){
  .schedule-head{margin-bottom:5px;gap:6px}
  .schedule-head h1{font-size:20px;line-height:1.25;margin:0}
  .schedule-head p{display:none}
  .schedule-head .actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .schedule-head .actions button{min-height:40px;padding:5px 3px;font-size:13px;white-space:nowrap}
  .calendar-permission{margin-bottom:6px}
  #calendar-export{width:calc(100vw - 24px);max-width:440px;margin:auto;border-radius:14px}
  .calendar-export-body{min-width:0;padding:18px}
  .calendar-export-dates{gap:8px}
  .calendar-export-dates input{font-size:14px;padding:8px 5px}
  .calendar-export-actions button{flex:1}
}
/* Landscape schedule: calendar and matching list share the available width. */
.schedule-head{align-items:flex-start;margin-bottom:12px}
.schedule-head .actions{flex-wrap:nowrap;align-self:center}
.schedule-head .actions button{white-space:nowrap}
.schedule-permission-desktop{background:#eaf4fc;border-radius:10px;padding:12px 16px;margin:0 0 16px;color:#32648a}
.schedule-permission-mobile{display:none}
.schedule-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);align-items:start;gap:16px}
.schedule-workspace .calendar-panel,.schedule-workspace .schedule-side{min-width:0}
.schedule-side{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px;max-height:calc(100vh - 184px);overflow:auto}
.schedule-side .filters{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 12px}
.schedule-side .filters input,.schedule-side .filters select{max-width:none;width:100%}
.schedule-side #table-container{border:0;margin:0;overflow:visible}
.schedule-side .mobile-cards{overflow:visible}
.schedule-side .mobile-cards table,.schedule-side .mobile-cards tbody,.schedule-side .mobile-cards tr,.schedule-side .mobile-cards td{display:block;width:100%}
.schedule-side .mobile-cards thead{display:none}
.schedule-side .mobile-cards tr{border:1px solid var(--border);border-radius:9px;padding:8px 12px;margin:0 0 10px;background:#fff}
.schedule-side .mobile-cards td{display:grid;grid-template-columns:minmax(68px,32%) minmax(0,1fr);gap:8px;padding:6px 0;font-size:12px;border-bottom:1px solid #edf1f5;overflow-wrap:anywhere}
.schedule-side .mobile-cards td::before{content:attr(data-label);color:var(--muted);font-weight:400}
.schedule-side .mobile-cards td:last-child{border:0}
.schedule-side .mobile-cards td.row-actions{display:flex;flex-wrap:wrap;gap:4px}
.schedule-side .mobile-cards td.row-actions::before{display:none}
#calendar-export{border:1px solid var(--border);border-radius:16px;width:min(700px,calc(100vw - 32px));max-width:none}
#calendar-export::backdrop{background:#10233e80}
.calendar-export-body{position:relative;padding:28px 30px 24px;min-width:0}
.calendar-export-body h2{font-size:22px;margin:0 40px 8px 0}
.calendar-export-dates{gap:16px}
.calendar-export-actions button{min-width:120px}
.calendar-export-close{position:absolute;right:20px;top:16px;border:0;background:transparent;font-size:28px;line-height:1;padding:4px 8px;min-height:36px}
@media(max-width:1150px){.schedule-workspace{grid-template-columns:minmax(0,1fr)}.schedule-side{max-height:none}.schedule-side .filters{grid-template-columns:1fr 190px}}
@media(max-width:760px){
  .schedule-head{margin-bottom:5px}
  .schedule-head .actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .schedule-head .actions button{font-size:12px}
  .schedule-permission-desktop{display:none}
  .schedule-permission-mobile{display:block}
  .schedule-workspace{display:block}
  .schedule-side{padding:0;border:0;background:transparent;overflow:visible}
  .schedule-side .filters{grid-template-columns:1fr;margin:12px 0}
  .schedule-side #table-container{border:1px solid var(--border)}
  .schedule-workspace .calendar-panel{width:calc(100% + 24px);margin-left:-12px;margin-right:-12px;border-left:0;border-right:0;border-radius:0}
  #calendar-export{width:calc(100vw - 24px);max-width:440px}
  .calendar-export-body{padding:20px 18px}
  .calendar-export-body h2{font-size:19px}
  .calendar-export-actions button{min-width:0}
}
/* Operator work queue */
.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.ops-section{min-width:0;overflow:hidden}.ops-section .panel-title{display:flex;align-items:center;justify-content:space-between}.ops-section h2{font-size:1.08rem}.ops-count{border-radius:999px;padding:3px 12px;background:#e8f2ff;color:#1766a7;font-weight:700}.ops-row{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e2e8f0}.ops-row>div:first-child{min-width:0}.ops-row b{display:block;overflow-wrap:anywhere}.ops-row small{display:block;color:#64748b;line-height:1.5;margin-top:4px;overflow-wrap:anywhere}.ops-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.ops-row button{white-space:nowrap}.ops-row .overdue{color:#bd3344;font-weight:700}#subscription-billing{width:min(540px,calc(100vw - 24px));max-height:85vh;overflow:auto;border:0;border-radius:18px;padding:22px;box-shadow:0 24px 70px #14223744}#subscription-billing::backdrop{background:#0c1b3188}#subscription-billing h2{margin:0 0 8px}#subscription-billing .fields-grid{margin:18px 0}#subscription-billing footer{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}#subscription-billing-error{color:#bd3344}
@media(max-width:760px){.ops-grid{grid-template-columns:1fr;gap:12px}.ops-row{padding:13px;align-items:flex-start;flex-direction:column}.ops-buttons{justify-content:flex-start}.ops-section .panel-title{padding:14px}.ops-row button{min-height:38px}}
/* Monthly attendance book */
.labor-settings{border:1px solid #d8e3ed;border-radius:12px;padding:16px}.labor-settings details,.book-details{margin-top:14px}.labor-settings summary,.book-details summary{cursor:pointer;font-weight:600;padding:8px 0}.labor-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}.labor-config-grid label{display:flex;flex-direction:column;gap:5px;font-size:14px}.checkbox-label{display:flex!important;flex-direction:row!important;align-items:center;gap:10px}.checkbox-label input,.weekday-checks input{width:20px!important;height:20px!important}.weekday-checks{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.weekday-checks label{display:flex;align-items:center;gap:5px}.labor-calendar-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 0;border-bottom:1px solid #d8e3ed}.labor-calendar-row label{display:flex;flex-direction:column;gap:4px;font-size:14px}.book-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px}.book-controls label{min-width:150px;display:flex;flex-direction:column;gap:6px}.book-sheet-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:18px}.book-sheet-head h2{margin:0}.book-sheet-head>div{flex:1}.book-total-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:12px 18px}.book-total-cards>div{background:#f0f6fc;border-radius:10px;padding:12px}.book-total-cards b{display:block;font-size:20px}.book-total-cards small{font-size:14px}.book-day-counts{padding:0 18px;line-height:1.8}.book-table table{min-width:1180px}.book-table th,.book-table td{font-size:14px;padding:10px 8px;white-space:nowrap}.book-table td small{display:block;max-width:230px;white-space:normal;color:#b24a16}.book-table tfoot{background:#e7f2fc}.book-review-row{background:#fff9ef}.book-details{padding:0 18px 18px}.book-sheet>small{display:block;padding:12px 18px}#attendance-day-dialog{width:min(800px,94vw);max-height:90dvh;border:0;border-radius:16px;padding:22px;overflow:auto}#attendance-day-dialog::backdrop{background:#182b4588}.book-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.book-dialog-head h2{font-size:20px}.book-dialog-head button{min-width:44px}#attendance-day-dialog fieldset{border:0;padding:0}#attendance-day-dialog textarea{min-height:70px}#attendance-day-dialog form>button[type=submit]{width:100%;margin-top:12px}.book-break-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin:10px 0}.quick-attendance-type{font-size:14px}.attendance-export-panel{flex-wrap:wrap}.attendance-export-panel>button{align-self:center}
.book-table td.book-date-sunday{color:#c53043;font-weight:700}.book-table td.book-date-saturday{color:#2764bd;font-weight:700}
.company-calendar-settings{min-width:0}.company-calendar-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.company-calendar-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:14px}.company-calendar-month{border:1px solid #d8e3ed;border-radius:10px;padding:10px;break-inside:avoid}.company-calendar-month h3{margin:0 0 8px}.company-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.company-calendar-grid>strong{text-align:center;font-size:12px}.company-calendar-grid>strong:first-child{color:#c53043}.company-calendar-grid>strong:nth-child(7){color:#2764bd}.company-day{width:100%;min-width:0;min-height:53px;padding:2px;border-radius:5px;text-align:center;font-size:12px;line-height:1.2}.company-day b,.company-day small,.company-day em{display:block;overflow:hidden;text-overflow:ellipsis}.company-day small{font-size:9px}.company-day em{font-size:8px;font-style:normal;white-space:nowrap}.company-day.off{background:#edf5fd}.company-day.statutory{background:#ffebee;color:#b32940}.company-calendar-preview>p{font-size:12px;color:#65758b}
.attendance-review-action{flex-basis:100%;display:flex;justify-content:flex-end;padding-top:12px;border-top:1px solid #e2eaf2}.attendance-review-action button{min-width:220px}@media(max-width:760px){.attendance-review-action button{width:100%}.company-calendar-actions button{flex:1 1 44%}.company-calendar-grid{gap:2px}.company-day{min-height:48px}}
@media(max-width:760px){.labor-config-grid,.labor-calendar-row{grid-template-columns:repeat(2,minmax(0,1fr))}.book-total-cards{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.book-controls{display:grid;grid-template-columns:1fr 1fr}.book-controls label{min-width:0}.book-sheet-head{padding:12px}.book-day-counts{font-size:14px;padding:0 12px}.book-sheet-head>div{flex-basis:100%}#attendance-day-dialog{padding:14px}.book-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.book-controls button{font-size:14px;padding:10px}.book-sheet-head button{font-size:14px}}
.book-salary{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:14px 0;padding:12px;border:1px solid #d8e3ed;border-radius:12px}.book-salary label{min-width:130px;flex:1}.book-salary input,.book-salary select{width:100%}.book-salary small{flex-basis:100%}.book-table button.danger{color:#bb3030;margin-left:6px}
.book-inline-hint{margin:6px 18px 14px;color:#526981;font-size:13px}.book-table table{min-width:1390px}.book-table td input,.book-table td select{width:100%;min-width:72px;max-width:135px;padding:7px 5px;font-size:13px}.book-table td select{min-width:92px}.book-table td input[data-book-field="break_minutes"]{min-width:62px;max-width:80px}.book-table td input[data-book-field="regular"],.book-table td input[data-book-field="extra"],.book-table td input[data-book-field="legal"],.book-table td input[data-book-field="holiday"]{min-width:65px;max-width:85px}.book-inline-dirty{outline:2px solid #4595ee;outline-offset:-2px}.book-inline-save{position:sticky;bottom:12px;z-index:5;display:flex;align-items:end;flex-wrap:wrap;gap:10px;padding:12px 18px;background:#f6faff;border:1px solid #c5d9f0;border-radius:12px;box-shadow:0 4px 15px #16345a22}.book-inline-save label{display:flex;flex-direction:column;gap:4px;flex:1;min-width:220px;font-size:13px}.book-inline-save input{width:100%}.book-inline-save button{min-width:180px}.book-inline-save small{flex-basis:100%;font-size:12px;color:#526981}@media(max-width:760px){.book-inline-save{bottom:84px;margin:0 8px}.book-inline-save label{min-width:120px}.book-inline-save button{min-width:0;flex:1}.book-table td input,.book-table td select{font-size:13px}}
.book-table{max-height:min(68vh,740px);overflow:auto;position:relative}.book-table thead th{position:sticky;top:0;z-index:3;background:#eaf2fa;box-shadow:0 1px 0 #c9d8e8}.book-payroll{margin:14px 18px;padding:16px;border:1px solid #d8e3ed;border-radius:12px}.book-payroll h3{margin:0 0 12px}.book-payroll table{width:100%;border-collapse:collapse;min-width:550px}.book-payroll th,.book-payroll td{padding:8px;border-bottom:1px solid #e0e9f2;text-align:left}.book-payroll td:last-child,.book-payroll th:last-child{text-align:right}.book-payroll small{display:block;line-height:1.6;margin-top:12px;color:#526981}@media(max-width:760px){.book-table{max-height:60vh}.book-payroll{margin:12px;padding:12px}}
.book-week-context{margin:8px 18px;padding:12px 16px;border-radius:10px;background:#edf6ff;color:#264d73;line-height:1.6}.book-week-context strong{display:block;color:#a53a30;margin-top:5px}@media(max-width:760px){.book-week-context{margin:8px 12px;padding:10px}}
.attendance-mode{display:flex;gap:8px;margin:0 0 14px}.attendance-mode button{flex:1;min-width:0}.attendance-mode .selected{background:#e6f2ff;color:#096dcb;border-color:#87bdf1;font-weight:700}.allowances-box{grid-column:1/-1;border:1px solid #dce6f1;border-radius:10px;padding:12px;display:grid;gap:10px}.allowance-row{display:grid;grid-template-columns:1.2fr .8fr 1fr 1fr 1fr auto;gap:8px;align-items:end}.allowance-row button{min-width:60px}.book-table{max-height:min(70vh,750px);overflow:auto}.book-table thead th{position:sticky;top:0;z-index:2;background:#f0f5fa;box-shadow:0 1px #cad8e6}@media(max-width:900px){.allowance-row{grid-template-columns:repeat(2,minmax(0,1fr))}.allowance-row label:first-child{grid-column:1/-1}.allowance-row button{grid-column:1/-1}.attendance-mode button{font-size:13px;padding:8px 4px}}
.duplicate-attendance{margin:14px 0;border-color:#e8b6a7;background:#fffaf7}.duplicate-group{padding:10px 0;border-top:1px solid #eee}.duplicate-group>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0;font-size:13px;overflow-wrap:anywhere}.duplicate-group button{flex:none}
.attendance-mode{display:flex;gap:10px;margin:0 0 18px}.attendance-mode button{display:flex;justify-content:center;align-items:center;flex:1;min-width:0;padding:10px 12px;border:1px solid #b9cee3;border-radius:9px;background:#fff;color:#17324e;font-weight:700;min-height:48px;line-height:1.3}.attendance-mode button.selected{background:#e1f0ff;color:#0866af;border-color:#79b4eb}.attendance-mode button:hover{background:#eef6ff}@media(max-width:760px){.attendance-mode button{font-size:14px;padding:10px 5px}}

/* Desktop typography and directly editable company attendance books. */
.book-company-person{margin:16px 0;border:1px solid var(--line,#dce5ef);border-radius:12px;background:#fff}.book-company-person>summary{padding:16px;cursor:pointer;font-weight:700}.book-company-person>.book-sheet{margin:0;border:0}.book-bulk-actions{display:flex;align-items:center;gap:12px;margin:12px 0}.book-warning-actions{display:flex;flex-direction:column;gap:4px;margin-top:4px}.book-warning-actions button{text-align:left;color:#a33a25;border:0;background:#fff4e5;padding:6px;white-space:normal}.book-table tbody td:first-child{position:sticky;left:0;z-index:2;background:#fff}.book-table .book-review-row td:first-child{background:#fff8eb}.book-table thead th:first-child{left:0;z-index:5}.book-table tfoot th:first-child{position:sticky;left:0;background:#f5f8fc;z-index:2}
@media(min-width:761px){body{font-size:17px}#content p,#content label,#content td,#content th,.sidebar a{font-size:16px}#content input,#content select,#content textarea,#content button,dialog input,dialog select,dialog textarea,dialog button{font-size:16px}#content small,dialog small,.permission-grid small{font-size:14px}#content button,#content input,#content select{min-height:40px}.book-table table{min-width:1550px}.book-table td,.book-table th{padding:12px 10px}.book-warning-actions button{font-size:14px!important}.book-table{max-height:68vh}.book-sheet-head h2{font-size:23px}.book-total-cards b{font-size:23px}}

@media(min-width:761px){#sidebar nav button,.nav-group-title{font-size:16px}.sidebar-footer{font-size:16px}.sidebar-footer span,.sidebar-footer button{font-size:14px}header button,#breadcrumb{font-size:17px}dialog label{font-size:16px}#content h1{font-size:28px}#content h3,dialog h3{font-size:19px}}

/* Larger desktop navigation, with complete labels instead of ellipsis. */
@media(min-width:761px){:root{--desktop-sidebar-width:clamp(280px,22vw,320px)}#sidebar{width:var(--desktop-sidebar-width);padding:24px 16px;overflow-x:hidden}.main{margin-left:var(--desktop-sidebar-width)}#sidebar #nav .nav-group summary{font-size:16px;min-height:48px;padding:12px 10px}#sidebar #nav button{font-size:18px;min-height:54px;padding:12px 10px;gap:10px;line-height:1.45}#sidebar #nav button span:first-child{flex:0 0 24px;font-size:23px}#sidebar #nav button span:last-child{min-width:0;white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip}#sidebar>.brand{font-size:32px}#sidebar>.brand-sub{font-size:14px}#sidebar .sidebar-footer{font-size:16px;padding:20px 10px 0}#sidebar .sidebar-footer span{font-size:14px;overflow-wrap:anywhere}#sidebar .sidebar-footer button{font-size:16px;min-height:46px}}

/* Permissions: readable cards with one access choice per function. */
.permission-cards{padding:16px}.permission-cards p{line-height:1.6}.permission-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.permission-card{border:1px solid var(--border);border-radius:12px;padding:16px;background:#fff;min-width:0}.permission-card h3,.permission-salary h3,.permission-summary h3{margin:0 0 12px;font-size:17px}.permission-card-controls{display:grid;grid-template-columns:1fr;gap:10px}.permission-cards .permission-card label{display:flex;align-items:stretch;flex-direction:column;gap:6px;font-size:14px}.permission-cards select{width:100%;font-size:16px;min-height:46px}.permission-cards .permission-approval,.permission-cards .permission-salary label{display:flex;flex-direction:row;align-items:center;gap:10px;justify-content:flex-start;margin-top:12px;font-size:16px}.permission-cards small{display:block;line-height:1.5;color:var(--muted);margin-top:8px}.permission-salary,.permission-summary{padding:16px;border:1px solid var(--border);border-radius:12px;margin-top:14px;background:#eef6ff}.permission-cards .permission-summary>div{display:block;padding:0;border:0}.permission-summary p{margin:6px 0;font-size:14px}.permission-cards [hidden]{display:none!important}
@media(max-width:760px){.permission-card-list{grid-template-columns:1fr}.permission-cards{padding:12px}.permission-cards .permission-presets label{display:flex;justify-items:initial;flex-direction:row;gap:10px;font-size:16px}}

.quick-history-more>summary{cursor:pointer;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:#eef6ff;color:#2365a8;font-size:16px;font-weight:600;margin:12px 0}.quick-history-more .history-collapse{display:none}.quick-history-more[open] .history-expand{display:none}.quick-history-more[open] .history-collapse{display:inline}

.history-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.history-controls label{display:flex;flex-direction:column;gap:5px;font-size:14px}.history-controls select{min-width:110px;font-size:16px}.quick-history-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

.brand-home{border:0;background:transparent;text-align:left;padding:0}.mobile-brand-home{display:none}@media(max-width:760px){.mobile-brand-home{display:block;border:0;background:transparent;font-size:14px;font-weight:850;padding:4px;letter-spacing:.5px;color:var(--blue)}#mobile-nav{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}#mobile-nav button.active small{color:var(--blue)}header{gap:5px}#breadcrumb{min-width:0;flex:1;font-size:14px}.header-end{flex-shrink:0}#content{padding-bottom:28px}}

.payroll-basis{background:#f0f6fc;border-radius:10px;padding:12px;margin-bottom:12px}.payroll-basis p{margin:8px 0}.allowance-row{grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #dce6f1;padding-bottom:12px}.book-salary .allowances-box{flex-basis:100%;min-width:0}.payroll-settings p{line-height:1.6}@media(max-width:900px){.allowance-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Keep the mobile header below the iPhone status bar in standalone mode. */
@media(max-width:760px){
 .main>header{height:calc(58px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}
}

@page company-calendar-year{size:A4 landscape;margin:5mm}
@media print{
 #print-area:has(.company-calendar-print){page:company-calendar-year;padding:0;margin:0;font-size:8pt}
 #print-area .company-calendar-print{page:company-calendar-year;width:100%;height:190mm;color:#182337;font-size:8pt;display:flex;flex-direction:column;overflow:hidden;break-after:auto;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 #print-area .company-calendar-print:last-child{break-after:auto}
 #print-area .company-calendar-print h1{font-size:14pt;text-align:center;line-height:1.2;margin:0 0 1.5mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .calendar-print-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:2mm;font-size:8pt}
 .calendar-print-legend{display:flex;align-items:center;gap:1.5mm}
 .calendar-print-legend i{width:3mm;height:3mm;border:1px solid #cbd7e4;display:inline-block}
 .calendar-print-legend .work{background:white}.calendar-print-legend .off{background:#edf5fd}.calendar-print-legend .statutory{background:#ffebee}
 .calendar-print-months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:2mm;flex:1;min-height:0}
 .calendar-print-month{border:1px solid #cbd7e4;border-radius:1mm;padding:1.5mm;display:flex;flex-direction:column;min-width:0;min-height:0;break-inside:avoid}
 #print-area .calendar-print-month h3{text-align:center;font-size:9pt;line-height:1.2;margin:0 0 1mm}
 .calendar-print-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:3mm repeat(6,minmax(0,1fr));gap:.35mm;flex:1;min-height:0;text-align:center}
 .calendar-print-grid>strong{font-size:7pt;line-height:1.2}.calendar-print-grid>strong:first-child{color:#b32940}.calendar-print-grid>strong:nth-child(7){color:#2764bd}
 .calendar-print-day{display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid #dfe7ef;line-height:1.1;min-height:0;background:white}
 .calendar-print-day b{font-size:8pt}.calendar-print-day small{font-size:5.5pt;color:inherit;white-space:nowrap}
 .calendar-print-day.off{background:#edf5fd;color:#2764bd}.calendar-print-day.statutory{background:#ffebee;color:#b32940}
 #print-area .calendar-print-month p{font-size:6.5pt;line-height:1.2;margin:1mm 0 0;white-space:normal;overflow-wrap:anywhere;text-align:center}
 .calendar-print-summary{margin-top:2mm;padding-top:1mm;border-top:1px solid #cbd7e4}
 #print-area .calendar-print-summary p{font-size:8pt;line-height:1.3;margin:.5mm 0}
 .calendar-print-summary small{font-size:6.5pt;line-height:1.2;color:#536273}
}

@media print{
 .calendar-print-months.calendar-print-extra-month{grid-template-rows:repeat(4,minmax(0,1fr))}
 body:has(.company-calendar-print) dialog{display:none!important}
}
.company-day.off{background:#edf5fd;color:#2764bd}

/* Mobile navigation spacing must not create a trailing sheet when printing. */
@media print{
 html:has(.company-calendar-print),body:has(.company-calendar-print){padding:0!important;margin:0!important;min-height:0!important;height:auto!important;background:#fff!important}
}
/* Attendance presentation: one set of controls, responsive table/card renderer. */
.book-day-cards{display:grid;gap:12px;padding:12px}
.book-day-card{min-width:0;border:1px solid #dce5ef;border-radius:12px;padding:14px;background:#fff}
.book-card-heading{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px;color:#23364d}
.book-date-sunday .book-card-heading>strong{color:#b73a48}
.book-date-saturday .book-card-heading>strong{color:#2865ad}
.book-day-badge{display:inline-block;color:#a83b49;background:#fbf0f1;border-radius:5px;padding:3px 8px;font-size:13px;margin-bottom:8px}
.book-card-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.book-card-inputs label{display:flex;flex-direction:column;gap:5px;min-width:0}
.book-card-inputs input,.book-card-inputs select{width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:44px;font-size:16px;padding:8px}
.book-card-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.book-card-results>div{min-width:0;background:#f5f8fc;padding:8px;border-radius:7px}
.book-card-results dt{font-size:12px;color:#62738a;overflow-wrap:anywhere}
.book-card-results dd{margin:4px 0 0;font-weight:600}
.book-card-state select{width:100%;min-width:0;min-height:44px}
.book-card-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.book-card-actions button{flex:1;min-width:0;min-height:44px}
.book-holiday-entry summary,.book-salary-details>summary{cursor:pointer;padding:10px 0;font-weight:600}
.book-salary-details{margin:12px 18px;min-width:0}
@media(min-width:768px){.book-salary-details>summary{display:none}}
@media(max-width:767px){
 #content:has(.attendance-mode){min-width:0;max-width:100%;box-sizing:border-box}
 .main:has(.attendance-mode){min-width:0}
 .book-sheet,.book-company-person,.book-controls,.book-bulk-actions,.book-sheet-head,.book-total-cards,.book-inline-save,.book-salary,.book-payroll,.book-week-context{min-width:0;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
 .book-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .book-controls label{min-width:0}
 .book-controls input,.book-controls select,.book-controls button{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
 .book-bulk-actions{flex-wrap:wrap}
 .book-sheet-head h2{overflow-wrap:anywhere}
 .book-sheet-head>div{min-width:0}
 .book-total-cards{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}
 .book-inline-save{position:static;margin:12px;display:grid;gap:10px}
 .book-inline-save label,.book-inline-save button{min-width:0;width:100%}
 .book-inline-save input{min-width:0;box-sizing:border-box}
 .book-salary-details{margin:12px}
 .book-salary{display:grid;grid-template-columns:minmax(0,1fr);margin:0}
 .book-salary label,.book-salary input,.book-salary select,.book-salary .allowance-row>*{min-width:0;max-width:100%;box-sizing:border-box}
 .book-payroll{margin:12px;padding:12px}
 .book-payroll .table-wrap{overflow:visible}
 .book-payroll table,.book-payroll tbody,.book-payroll tfoot{display:block;width:100%;min-width:0}
 .book-payroll thead{display:none}
 .book-payroll tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 0;border-bottom:1px solid #dce5ef}
 .book-payroll td,.book-payroll th{display:block;min-width:0;white-space:normal;overflow-wrap:anywhere;border:0;padding:4px;font-size:14px;text-align:left!important}
 .book-payroll td:first-child,.book-payroll th:first-child{grid-column:1/-1;font-weight:600}
 .book-payroll td:nth-child(2)::before{content:'時間：'}
 .book-payroll td:nth-child(3)::before{content:'基礎時給：'}
 .book-payroll td:nth-child(4)::before{content:'倍率：'}
 .book-payroll td:nth-child(5)::before{content:'金額：'}
 .quick-entry[data-quick-form="attendance"]{min-width:0;max-width:100%;box-sizing:border-box}
 .quick-entry[data-quick-form="attendance"] input,.quick-entry[data-quick-form="attendance"] select{min-width:0;max-width:100%;box-sizing:border-box;font-size:16px}
 #attendance-day-dialog{width:calc(100vw - 24px);max-width:calc(100vw - 24px);box-sizing:border-box;padding:14px}
 #attendance-day-dialog .labor-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #attendance-day-dialog label,#attendance-day-dialog input,#attendance-day-dialog select,#attendance-day-dialog textarea{min-width:0;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
 #attendance-day-dialog input,#attendance-day-dialog select,#attendance-day-dialog textarea{width:100%;font-size:16px}
 #attendance-day-dialog .book-dialog-head h2{min-width:0;overflow-wrap:anywhere;font-size:18px}
 #attendance-day-dialog .book-break-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 #attendance-day-dialog .book-break-row button{grid-column:1/-1}
}
/* Business documents use their own printable padding. No browser header margin. */
@page genbix-business-document{size:A4 portrait;margin:0;@top-left{content:none}@top-center{content:none}@top-right{content:none}@bottom-left{content:none}@bottom-center{content:none}@bottom-right{content:none}}
@media print{
 #print-area:has(.invoice-document){page:genbix-business-document;padding:12mm;margin:0;box-sizing:border-box}
 #print-area .invoice-document{page:genbix-business-document;padding:0;width:100%;box-sizing:border-box}
}

.invoice-client-fields{display:grid;gap:12px;min-width:0}
.invoice-client-fields details{border:1px solid #dce5ef;border-radius:12px;padding:12px;min-width:0}
.invoice-client-fields summary{cursor:pointer;font-weight:600;color:#226492}
.invoice-client-fields details[open] summary{margin-bottom:12px}
.invoice-client-fields [data-client-error]{color:#b63737}
.invoice-client-fields input,.invoice-client-fields select{max-width:100%;min-width:0}

.invoice-line{grid-template-columns:2fr .6fr .6fr 1fr 1fr auto;min-width:0}
.invoice-line>*{min-width:0}.invoice-add-buttons{display:flex;flex-wrap:wrap;gap:8px}
.work-patterns small{display:block;margin-top:10px}.work-pattern-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}
.linked-worker-doc{padding:14px;border:1px solid var(--border);border-radius:10px}.linked-worker-doc>div{padding:8px 0}.linked-worker-doc p{overflow-wrap:anywhere}
@media(max-width:767px){.invoice-line{grid-template-columns:1fr 1fr}.invoice-line>.line-name{grid-column:1/-1}.work-pattern-row{grid-template-columns:1fr 1fr}.work-pattern-row>label:first-child{grid-column:1/-1}}

.master-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid #dce5ef;min-width:0}.master-card>div:first-child{min-width:0;overflow-wrap:anywhere}.master-card p{margin:6px 0;color:#61758a}.master-tabs{margin-bottom:16px}.master-card .actions{flex-shrink:0}.invoice-client-fields [data-client-registration][hidden]{display:none}@media(max-width:767px){.master-card{align-items:stretch;flex-direction:column}.master-card .actions{justify-content:flex-end}}

.invoice-recipient-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:12px}.invoice-recipient-row label{min-width:0}.invoice-recipient-row select{width:100%}

/* Invoice creation: entry and live paper preview, with masters beside the list. */
.invoice-workspace-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}.invoice-workspace-tabs button{font-weight:700}
#editor.invoice-editor{width:min(1560px,calc(100vw - 32px));max-width:none;max-height:94dvh}#editor.invoice-editor #edit-form{max-height:94dvh;overflow:auto;padding:0 24px 18px}#editor.invoice-editor .dialog-title{position:sticky;top:0;background:#fff;z-index:5;border-bottom:1px solid var(--border);padding:16px 0;margin-bottom:20px}#editor.invoice-editor footer{position:sticky;bottom:0;z-index:5;background:#fff;border-top:1px solid var(--border);padding:14px 0;margin-top:18px}
.invoice-edit-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;align-items:start}.invoice-edit-main,.invoice-edit-preview{min-width:0}.invoice-edit-main>h2{font-size:24px;margin-bottom:20px}.invoice-edit-top{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px}.invoice-date-section{display:grid;gap:12px;align-content:start}.invoice-due-buttons{display:flex;gap:8px}.invoice-subject-section,.invoice-lines-section,.invoice-payment-section{margin-top:24px}.invoice-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.invoice-section-heading>label{max-width:230px}.invoice-lines-section>.full>label{display:none}.invoice-lines-section #invoice-lines{display:grid;gap:0;border-top:1px solid var(--border)}.invoice-line{display:grid;grid-template-columns:minmax(150px,2fr) minmax(74px,1fr) minmax(60px,.65fr) minmax(60px,.65fr) minmax(120px,1.1fr) minmax(70px,.8fr) 36px;gap:8px;padding:12px 0;border-bottom:1px solid var(--border);align-items:end}.invoice-line label{min-width:0;font-size:12px}.invoice-line label>span{color:#61758a}.invoice-line input,.invoice-line select{padding:8px 6px;width:100%;min-width:0}.invoice-line button{padding:6px;min-width:0}.line-amount{align-self:end;min-height:40px;display:flex;align-items:center;justify-content:flex-end;font-weight:600;font-size:13px;overflow-wrap:anywhere}.invoice-add-buttons{justify-content:flex-end;margin-top:12px}.invoice-payment-section{display:grid;gap:16px}.invoice-payment-section textarea{min-height:100px;white-space:pre-wrap}.invoice-extra-settings{margin-top:20px;border:1px solid var(--border);padding:12px;border-radius:8px}.invoice-extra-settings summary{cursor:pointer;font-weight:600}.invoice-extra-settings .fields-grid{margin-top:12px}
.invoice-client-fields>.hint:empty,.invoice-recipient-summary:empty{display:none}.invoice-client-fields>[data-action="open-client-registration"]{justify-self:start}.invoice-client-combobox{position:relative;min-width:0}.invoice-client-combobox [data-client-results]{position:absolute;top:100%;left:0;right:0;z-index:8;max-height:280px;overflow:auto;border:1px solid #b8cadc;border-radius:8px;background:white;box-shadow:0 8px 24px #18334d22}.invoice-client-combobox [data-client-results][hidden]{display:none}.invoice-client-combobox [data-client-results] button{display:grid;gap:2px;width:100%;border:0;border-radius:0;text-align:left;border-bottom:1px solid #edf1f5;white-space:normal;overflow-wrap:anywhere}.invoice-client-combobox [data-client-results] button:focus{outline:2px solid var(--blue);outline-offset:-2px}.invoice-client-combobox [data-client-results] p{padding:10px;font-size:14px}.invoice-recipient-summary{margin:0;color:#61758a;font-size:14px;overflow-wrap:anywhere}.invoice-edit-preview{position:sticky;top:80px;background:#edf1f5;padding:16px;border-radius:10px}.invoice-edit-preview summary{font-weight:700;cursor:pointer;margin-bottom:12px}.invoice-edit-preview .invoice-document{padding:20px;font-size:12px;box-shadow:0 3px 12px #18334d15;overflow-wrap:anywhere}.invoice-edit-preview .invoice-document h1{font-size:22px}.invoice-edit-preview .invoice-document h2{font-size:16px}.invoice-edit-preview .invoice-document th,.invoice-edit-preview .invoice-document td{font-size:10px;padding:8px 4px}.invoice-edit-preview .invoice-meta{gap:14px}.invoice-edit-preview .invoice-meta>div{min-width:0}.invoice-edit-preview .total{font-size:22px}.invoice-document p{white-space:pre-line}
@media(min-width:1100px) and (max-width:1350px){.invoice-edit-workspace{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}}
@media(max-width:1099px){.invoice-edit-workspace{grid-template-columns:minmax(0,1fr)}.invoice-edit-preview{position:static}.invoice-edit-preview .invoice-document{max-width:700px;margin:auto}.invoice-line{grid-template-columns:minmax(150px,2fr) minmax(74px,1fr) minmax(60px,.65fr) minmax(60px,.65fr) minmax(120px,1.1fr) minmax(70px,.8fr) 36px}}
@media(max-width:767px){#editor.invoice-editor{width:100%;max-height:94dvh}#editor.invoice-editor #edit-form{padding:0 14px 16px}#editor.invoice-editor footer{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.invoice-edit-workspace{gap:18px}.invoice-edit-top{grid-template-columns:minmax(0,1fr)}.invoice-edit-preview{padding:8px}.invoice-edit-preview .invoice-document{padding:12px}.invoice-recipient-row{grid-template-columns:minmax(0,1fr) 90px;gap:8px}.invoice-line{grid-template-columns:repeat(2,minmax(0,1fr));background:#f6f8fb;border-radius:8px;padding:12px;margin-top:10px}.invoice-line>.line-name-label{grid-column:1/-1}.invoice-line .line-amount{justify-content:flex-start}.invoice-line button{grid-column:2;justify-self:end;width:44px}.invoice-section-heading{align-items:flex-start;flex-direction:column}.invoice-section-heading>label{max-width:none;width:100%}.invoice-workspace-tabs{display:grid;grid-template-columns:1fr;gap:8px}.invoice-client-fields,.invoice-date-section{min-width:0}.invoice-edit-workspace input,.invoice-edit-workspace select,.invoice-edit-workspace textarea{max-width:100%;min-width:0}.invoice-edit-preview .invoice-totals{flex-wrap:wrap}.invoice-client-combobox [data-client-results]{max-height:220px}}

.work-pattern-row>button{align-self:end;justify-self:start}.additional-photos>small{display:block;margin-top:8px}.additional-photos .photo-picker{margin-bottom:12px}

/* Keep the five document actions visible on desktop and phone. */
.invoice-list .row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:250px}
.invoice-list .row-actions button{min-height:40px}
#invoice-viewer{display:none;flex-direction:column}
#invoice-viewer[open]{display:flex}
#invoice-preview-body{flex:1;min-height:0;height:auto}
#invoice-output-hint{margin:8px 16px 0;font-size:14px}
#invoice-viewer footer{flex-shrink:0}
@media(max-width:760px){.invoice-list .row-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}.invoice-list .row-actions button{font-size:14px;min-height:44px}}
@media print{#invoice-viewer[open]{display:none!important}}

/* Employee invitation and self-registration. */
.employee-join{min-height:100dvh;background:#f3f7fb;padding:24px 16px;color:#1c2b40}.join-card{max-width:540px;margin:0 auto;padding:24px;background:#fff;border:1px solid #dbe5ef;border-radius:16px;overflow-wrap:anywhere}.join-card h1{font-size:24px}.join-brand{color:#0878ca;font-weight:800}.join-card label{display:grid;gap:6px;margin:16px 0;font-size:16px}.join-card input,.join-card textarea{box-sizing:border-box;min-width:0;width:100%;font-size:16px;padding:12px;border:1px solid #bdcfe1;border-radius:8px}.join-card button,.join-app-link{display:block;margin:12px 0;padding:12px;min-height:44px;width:100%;box-sizing:border-box;text-align:center}.join-home{margin-top:24px;line-height:1.7}.join-home summary{cursor:pointer;font-weight:700}#join-error{color:#b42318}#staff-invite-dialog{max-width:620px;width:calc(100% - 32px);max-height:85dvh;padding:0;border:1px solid #cbd8e5;border-radius:14px}.join-invite-body{padding:24px}.join-invite-link{border-top:1px solid #dbe5ef;padding:16px 0}.join-invite-link label{display:grid;gap:8px}.join-invite-link input{width:100%;min-width:0;font-size:16px}.join-invite-link>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.join-line{display:inline-flex;align-items:center;border-radius:8px;background:#067d36;color:white;padding:10px 14px;text-decoration:none;min-height:44px}.join-requests{padding:16px;margin:16px 0}.join-requests summary{cursor:pointer;font-weight:700}.join-request{border-top:1px solid #dbe5ef;padding:16px 0;overflow-wrap:anywhere}.join-request p{margin:8px 0}.join-request button{margin-right:8px}

/* Six equal mobile destinations, including expenses and calendar. */
@media(max-width:760px){#mobile-nav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:none;gap:0}#mobile-nav button{min-width:0;width:100%;padding:3px 1px;min-height:54px}#mobile-nav button small{font-size:12px;white-space:nowrap}}
#mobile-nav button.employee-guide-highlight,#nav button.employee-guide-highlight{background:#fff1a8;color:#173557;outline:3px solid #e3a400;outline-offset:-3px}
#employee-guide{position:fixed;inset:auto 16px calc(86px + env(safe-area-inset-bottom));margin:0 auto;width:calc(100% - 32px);max-width:480px;max-height:calc(100dvh - 140px - env(safe-area-inset-bottom));overflow:auto;box-sizing:border-box;padding:0;border:1px solid #b9cee2;border-radius:16px;box-shadow:0 14px 48px #102a4640;color:#1c2b40;background:white}#employee-guide::backdrop{background:#102a4645}.employee-guide-body{padding:22px;line-height:1.65;overflow-wrap:anywhere}.employee-guide-body h2{margin:6px 0 12px;font-size:24px}.employee-guide-progress{font-size:13px;color:#536a80;margin:0}.employee-guide-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:20px}.employee-guide-actions button{min-height:44px;padding:10px 14px;font-size:16px}.employee-guide-install{font-size:15px}.employee-guide-install p{margin:12px 0}#employee-guide-error{color:#b42318}@media(min-width:761px){#employee-guide{inset:0;margin:auto;height:max-content;max-height:85dvh}}

/* Attendance quick entry only; desktop and other entry forms keep their layout. */
@media(max-width:760px){
 .attendance-head{display:none}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]){gap:6px;min-width:0;padding-bottom:64px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-top-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) label{min-width:0;gap:3px;font-size:14px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) input,.quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) select{min-width:0;width:100%;max-width:100%;min-height:40px;padding:7px;font-size:16px;box-sizing:border-box}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-card{padding:7px 9px;border-radius:10px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-card h2{font-size:14px;margin:0 0 5px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-time-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-time-grid input{font-size:18px;min-height:40px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .break-presets{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .break-presets button{min-height:40px;padding:5px 2px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-summary>div{padding:6px 10px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-summary strong{font-size:17px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-notes{padding:9px 10px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-notes[open]>label{display:grid;margin-top:8px}
 .attendance-save-bar{position:fixed;bottom:var(--attendance-nav-height,calc(64px + env(safe-area-inset-bottom)));left:0;right:0;padding:7px 12px;background:#fff;border-top:1px solid var(--border);z-index:17;box-shadow:0 -3px 12px #102a4610}
 .attendance-save-bar .quick-save{position:static;min-height:46px;margin:0;font-size:17px;box-shadow:none}
 body:has(.attendance-save-bar) #content{padding-bottom:90px}
 body:has(.attendance-save-bar) #toast{bottom:calc(var(--attendance-nav-height,64px) + 70px)}
}

@media(max-width:760px){
 .leave-head{margin:0 0 6px;display:block}
 .leave-head h1{font-size:17px;margin:0;line-height:1.3}
 .leave-head p,.leave-head .actions{display:none}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-readonly{min-width:0;padding:6px 8px;font-size:14px;overflow-wrap:anywhere}
 .quick-entry[data-quick-form="leave"] .leave-days{margin-top:7px}
 .quick-entry[data-quick-form="leave"] .leave-days legend{font-size:14px;margin-bottom:5px}
 .quick-entry[data-quick-form="leave"] .leave-days>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
 .quick-entry[data-quick-form="leave"] .leave-days button{min-width:0;min-height:40px;padding:5px 2px;font-size:14px}
 .quick-entry[data-quick-form="leave"] .leave-custom{margin-top:6px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) textarea{min-height:64px;font-size:16px;margin-top:4px}
 .quick-entry:is([data-quick-form="attendance"],[data-quick-form="leave"]) .quick-error:empty{display:none}
}

/* Public policies stay accessible to every role, without changing access rights. */
.legal-links{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px;font-size:14px;line-height:1.6}.legal-links a{color:inherit;text-decoration:underline;text-underline-offset:3px}.sidebar-footer .legal-links{color:#c5d3e4}.legal-links a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
/* Editable hour splits share a two-column mobile layout. */
.book-card-results input,.quick-classifications input{width:100%;min-width:0;box-sizing:border-box;font-size:16px;padding:6px 8px;height:36px}.book-card-results dd{margin:0}.quick-classifications{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.quick-classifications label{font-size:13px;min-width:0}.book-card-results>div{min-width:0}.book-card-actions{flex-wrap:wrap}
@media(max-width:767px){.book-card-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}.book-card-results dt{font-size:12px;line-height:1.5}.book-inline-save{position:sticky;bottom:var(--attendance-nav-height,calc(64px + env(safe-area-inset-bottom)));z-index:12;background:#fff;padding:10px;border:1px solid #dce6f0}.book-card-actions button{padding:6px 10px;font-size:13px}#attendance-day-dialog .labor-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#attendance-day-dialog input{min-width:0;width:100%}}

/* Compact authentication screens, scoped away from business screens. */
#login,#auth-flow{padding:24px 16px;min-height:100dvh;height:auto;box-sizing:border-box}
#login form,#auth-flow form{width:100%;max-width:400px;padding:28px 24px;box-sizing:border-box}
#login h1,#auth-flow h1{font-size:22px;margin:16px 0}
#login input:not([type=checkbox]),#auth-flow input:not([type=checkbox]){font-size:16px;min-height:46px;width:100%;box-sizing:border-box}
#login button,#auth-flow button{min-height:44px}
#auth-flow .login-remember{display:flex;align-items:center;gap:8px;font-size:14px}
#auth-flow .login-remember input{width:20px;height:20px}
#auth-flow p{font-size:14px;line-height:1.5}
#auth-flow-error{color:#b42318}#auth-flow-message{color:#166534}
#auth-flow p:empty,#login-error:empty{display:none}
@media(max-width:480px){#login form,#auth-flow form{padding:24px 20px}#login,#auth-flow{align-items:flex-start;padding-top:max(24px,env(safe-area-inset-top))}}

.document-history-body{padding:20px;max-width:680px}.document-history-body details{padding:14px 0;border-bottom:1px solid #dce4ed}.document-history-body summary{cursor:pointer;font-weight:600;min-height:44px}.document-history-body dl>div{display:grid;grid-template-columns:130px 1fr;gap:12px;margin:10px 0}.document-history-body dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.document-history-body button,#document-duplicate button{min-height:44px;margin:5px 4px 5px 0}@media(max-width:480px){.document-history-body{padding:16px}.document-history-body dl>div{grid-template-columns:100px 1fr}}

.kana-candidate-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}[data-kana-candidates]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}[data-kana-candidates] small{flex-basis:100%}[data-kana-candidates] button,.kana-candidate-controls button{min-height:44px;white-space:normal}

/* Separate current-time clock-in / clock-out screen. */
.punch-card{max-width:480px;margin:0 auto;padding:20px;background:#fff;border:1px solid #e1e7ef;border-radius:24px;box-shadow:0 10px 36px #17334f0a;display:grid;gap:14px}.punch-brand{display:flex;justify-content:space-between;align-items:center}.punch-brand strong{font-size:23px;color:#0862d8}.punch-brand span{background:#f1f3f6;border-radius:12px;padding:6px 12px;color:#536174;font-size:13px}.punch-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f3f4f7;border-radius:14px;padding:4px;gap:4px}.punch-tabs button{border:0;background:transparent;font-size:18px;font-weight:700;padding:12px;border-radius:11px}.punch-tabs .selected{background:#dbe9ff;color:#144788}.punch-tabs .selected.out{background:#ffd4dc;color:#b92041}.punch-clock{display:grid;text-align:center;gap:8px;background:#f6f7fa;border-radius:18px;padding:24px 8px}.punch-clock strong{font-size:48px;font-variant-numeric:tabular-nums;color:#172c44}.punch-clock span,.punch-clock small{font-size:13px;color:#627084}.punch-break h2{font-size:19px;margin:0 0 14px}.punch-break>div{display:grid;grid-template-columns:1fr 1fr;gap:16px}.punch-card label{display:grid;gap:8px}.punch-card select{width:100%;padding:12px;border-radius:12px}.punch-status{display:grid;gap:8px;padding:16px;background:#eff9f2;border-radius:14px}.punch-status span{font-size:13px}.punch-submit{width:100%;padding:17px!important;border:0;border-radius:14px;color:white;font-size:20px;font-weight:700}.punch-submit.in{background:#209c4c}.punch-submit.out{background:#ef3156}.punch-submit:disabled{opacity:.45;cursor:not-allowed}.punch-help{font-size:13px;line-height:1.8;color:#617084;margin:0}.punch-card .quick-error:empty{display:none}#punch-success{max-width:90vw;width:360px;border:0;border-radius:20px;padding:30px}#punch-success::backdrop{background:#101b2b80}.punch-success{text-align:center;display:grid;gap:14px}.punch-success>span{background:#22a450;color:white;font-size:38px;border-radius:50%;width:64px;height:64px;line-height:64px;margin:0 auto}.punch-success h2{font-size:21px}.punch-success p{margin:0;color:#596575}.punch-success button{width:160px;margin:10px auto 0}@media(max-width:600px){.punch-card{padding:16px;margin:0 auto;gap:12px}.punch-clock strong{font-size:44px}}

/* Punch-only mobile canvas and a centered, viewport-safe confirmation. */
#punch-success{position:fixed;inset:0;margin:auto;width:min(360px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);height:fit-content;overflow:auto;border-radius:20px}
@media(max-width:760px){
 #content:has(>.punch-card){padding:0;max-width:none;background:#fff}
 #content>.punch-card{width:100%;max-width:none;margin:0;padding:16px max(16px,env(safe-area-inset-right)) 20px max(16px,env(safe-area-inset-left));border:0;border-radius:0;box-shadow:none;gap:14px;min-height:calc(100dvh - 142px - env(safe-area-inset-bottom));align-content:start}
 .punch-card .punch-clock{padding:18px 8px}
 #punch-success{padding:24px 20px}
 .punch-success{gap:12px}.punch-success h2{margin:0}.punch-success>span{width:56px;height:56px;line-height:56px;font-size:34px}
}
.leave-reason{display:grid;gap:10px}.leave-reason h2{margin:0;font-size:18px}.leave-reason>label{display:grid;gap:8px;font-weight:700}.leave-reason-suggestions{display:flex;flex-wrap:wrap;gap:8px}.leave-reason-suggestions button{min-height:40px;padding:7px 13px;border:1px solid #bfd6eb;border-radius:9px;background:#f6faff;color:var(--ink);font-size:14px;font-weight:700}.leave-reason-suggestions button.selected{background:var(--blue);border-color:var(--blue);color:#fff}.leave-reason textarea{min-height:88px}

.book-display-switch,.book-date-shortcuts{display:flex;flex-wrap:wrap;gap:8px}.book-display-switch{margin:0 0 16px}.book-display-switch .selected{background:var(--ink,#172d32);color:white}.book-date-shortcuts{align-self:end}.book-daily-table table{min-width:950px}.book-daily-notes{min-width:160px;white-space:normal}.book-daily h2{margin-top:0}.book-daily .book-card-results dd{overflow-wrap:anywhere}@media(max-width:767px){.book-date-shortcuts{width:100%}.book-date-shortcuts button{flex:1;padding:10px 8px;white-space:nowrap}.book-display-switch button{flex:1}}

/* Monthly review: keep overtime visible, expand regular/night columns only on demand. */
.book-column-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 18px}
.book-column-controls .selected{background:#e6f2ff;color:#096dcb;border-color:#87bdf1}
.book-night-notice{font-size:13px;color:#89551d;background:#fff5dd;padding:7px 10px;border-radius:8px}
.book-column-layout:not(.show-regular) [data-book-col="regular"],.book-column-layout:not(.show-night) [data-book-col^="night_"]{display:none}
.book-compact-table table{width:100%;min-width:800px;table-layout:fixed}
#content .book-compact-table th,#content .book-compact-table td{font-size:13px;padding:8px 4px;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
#content .book-compact-table th{line-height:1.4}
#content .book-compact-table td:first-child{white-space:nowrap}
#content .book-compact-table td input,#content .book-compact-table td select{min-width:0;max-width:none;width:100%;box-sizing:border-box;font-size:13px;padding:5px 2px;min-height:36px}
#content .book-compact-table td button{font-size:13px;padding:5px;min-height:36px}
#content .book-compact-table td select{padding-right:12px}
.book-column-layout.show-night .book-compact-table table{min-width:1160px}
.book-column-layout.show-regular:not(.show-night) .book-compact-table table{min-width:870px}
.book-column-layout.show-night.show-regular .book-compact-table table{min-width:1230px}
@media(max-width:767px){.book-column-controls{padding:10px 12px}.book-night-notice{width:100%}}

.book-column-layout:not(.show-context) [data-book-col="context"]{display:none}
.book-daily-full table{width:100%;min-width:850px;table-layout:fixed}
#content .book-daily-full th,#content .book-daily-full td{font-size:13px;padding:9px 5px;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
.book-daily-full th:first-child{width:150px}.book-daily-full td:first-child{font-weight:600}
.book-daily-full thead th{position:sticky;top:0;z-index:2;background:#f0f5fa;line-height:1.4}
.book-daily-full{max-height:68vh;overflow:auto}.book-daily-full tbody td:first-child{position:sticky;left:0;background:#fff;z-index:1}.book-daily-full .book-review-row td:first-child{background:#fff9ef}.book-daily-full thead th:first-child{left:0;z-index:3}
.book-daily-full tfoot{background:#e7f2fc}.book-daily-warning{display:block;color:#a33a25;line-height:1.4;margin-top:4px}
#content .book-daily-full button{padding:6px 3px;font-size:13px;min-height:36px;width:100%}
.book-column-layout.show-regular .book-daily-full table{min-width:920px}.book-column-layout.show-night .book-daily-full table{min-width:1190px}.book-column-layout.show-context .book-daily-full table{min-width:1190px}.book-column-layout.show-context.show-night .book-daily-full table{min-width:1530px}

.book-inline-derived{background:#fff8df;box-shadow:inset 3px 0 #d5ab36}
#content .book-daily-full input,#content .book-daily-full select{width:100%;min-width:0;max-width:none;box-sizing:border-box;padding:5px 2px;font-size:13px;min-height:36px}
.book-daily-full .book-inline-dirty td:first-child{background:#eef6ff}.book-daily-full .book-inline-derived td:first-child{background:#fff8df}

.book-column-layout.show-context .book-compact-table table{min-width:1140px}.book-column-layout.show-context.show-night .book-compact-table table{min-width:1500px}
#content .book-daily-full .book-warning-actions button{white-space:normal;min-height:0;text-align:left}
.book-column-layout [data-book-col="context"]{overflow-wrap:anywhere}

.book-compact-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin:8px 18px 12px;padding:10px 12px;background:#f5f8fb;border-radius:8px;font-size:14px}
.book-compact-summary b{margin-left:5px;font-variant-numeric:tabular-nums}.book-summary-warning{color:#a33a25}
.book-salary-details,.book-top-details,.book-help-details{margin:0 18px;border-bottom:1px solid #e5eaf0}
.book-salary-details>summary,.book-top-details>summary,.book-help-details>summary{cursor:pointer;font-weight:500;font-size:14px;padding:8px 0;color:#425c70}
.book-top-details .book-payroll{margin:8px 0 12px}.book-help-details .book-inline-hint{margin:4px 0 12px}
.book-sheet-head{padding-bottom:10px}.book-column-controls{padding-top:8px;padding-bottom:8px}
@media(max-width:767px){.book-compact-summary{margin:8px 12px;gap:8px 14px}.book-salary-details,.book-top-details,.book-help-details{margin-left:12px;margin-right:12px}}

.unclosed-attendance{border:1px solid #edc57a;border-radius:10px;background:#fffbf1;padding:10px 14px;margin:12px 0}.unclosed-attendance>summary{cursor:pointer;font-weight:700;color:#89551d}.unclosed-attendance>p{font-size:13px}.unclosed-attendance-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid #eddfc3}
#unclosed-attendance-dialog{width:min(650px,94vw);max-height:90dvh;overflow:auto;border:0;border-radius:16px;padding:20px}#unclosed-attendance-dialog::backdrop{background:#182b4588}#unclosed-attendance-dialog fieldset{border:0;margin:0;padding:0}#unclosed-attendance-dialog label{display:grid;gap:6px;margin:10px 0}#unclosed-attendance-dialog textarea{min-height:75px}#unclosed-attendance-dialog [type=submit]{width:100%;margin-top:12px}#unclosed-attendance-dialog input,#unclosed-attendance-dialog select,#unclosed-attendance-dialog textarea{min-width:0;width:100%;box-sizing:border-box}
