:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17231f;background:#eef3f1;--green:#1f6f5b;--green2:#165646;--line:#cbd7d2;--soft:#f7faf9;--danger:#a23838}*{box-sizing:border-box}body{margin:0}.appbar{position:sticky;top:0;z-index:5;background:var(--green);color:white;padding:12px max(16px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 2px 8px #0002}.brand{display:flex;align-items:center;gap:10px}.brand-icon{width:42px;height:42px;border-radius:10px}.appbar h1{font-size:1.2rem;margin:0}.appbar p{margin:2px 0 0;font-size:.85rem;opacity:.85}main{max-width:1180px;margin:16px auto;padding:0 14px 40px}.card{background:white;border:1px solid #dbe5e1;border-radius:14px;box-shadow:0 2px 10px #1d3e3212;padding:16px;margin-bottom:14px}button,.file-button,input,select,textarea{font:inherit;border-radius:9px;border:1px solid #b9c8c2;padding:10px 12px;background:white}button,.file-button{cursor:pointer;background:var(--green);color:white;border-color:var(--green);font-weight:750}.secondary{background:white;color:var(--green)}.danger{color:var(--danger);border-color:#d9adad}.ghost{background:#fff}button:disabled{opacity:.42;cursor:not-allowed}.view-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.tab{background:white;color:var(--green);border-color:#c8d9d3;min-height:46px}.tab.active{background:var(--green);color:white}.today-card{max-width:720px;margin-left:auto;margin-right:auto;padding:22px}.today-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.eyebrow{margin:0 0 5px;color:#65736e;font-size:.75rem;font-weight:800;letter-spacing:.08em}.today-head h2{margin:0;font-size:1.55rem;text-transform:capitalize}.today-plan{margin:6px 0 0;color:#61716b}.status-badge{white-space:nowrap;background:#e7f1ed;color:var(--green2);font-weight:800;border-radius:999px;padding:8px 12px}.punch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 16px}.punch-box{border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center;background:var(--soft)}.punch-label{display:block;font-size:.8rem;color:#64706c;font-weight:700}.punch-box strong{display:block;font-size:2.25rem;margin:4px 0}.signed-label{font-size:.78rem;color:var(--green);font-weight:700;min-height:1em;display:block}.big-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.punch-btn{min-height:72px;font-size:1.05rem}.punch-btn.exit{background:#263a34;border-color:#263a34}.punch-message{text-align:center;min-height:1.3em;color:#4e625b;font-weight:600}.today-edit{border-top:1px solid #e0e8e5;margin-top:18px;padding-top:14px}.today-edit summary{cursor:pointer;font-weight:800;color:var(--green)}.today-edit-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:14px;align-items:end}.today-edit-grid label,.grid-info label,.selectors label{font-size:.82rem;font-weight:700;display:grid;gap:5px}.vac-check{display:flex!important;align-items:center;gap:8px;min-height:44px}.vac-check input{width:20px;height:20px}.today-notes{grid-column:1/-1}.today-summary{max-width:720px;margin-left:auto;margin-right:auto;display:grid;grid-template-columns:1fr 1fr;padding:0}.today-summary>div{padding:16px;text-align:center}.today-summary>div+div{border-left:1px solid var(--line)}.today-summary span{display:block;color:#63716c;font-size:.8rem}.today-summary strong{display:block;font-size:1.35rem;margin-top:4px}.controls{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}.selectors,.button-row,.actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.grid-info{display:grid;grid-template-columns:2fr 1fr 2fr 1fr;gap:12px}.person-card h2,.signature-card h2{margin:0 0 12px;font-size:1.05rem}.sheet-title{text-align:center;margin-bottom:6px}.sheet-title h2{margin:0 0 5px;font-size:1.05rem}.sheet-title div{font-weight:800}.print-profile{text-align:center;margin-bottom:10px;font-size:.82rem}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;min-width:940px}th,td{border:1px solid var(--line);padding:5px;text-align:center}thead th{background:#e7f1ed;font-size:.75rem;position:sticky;top:0;z-index:1}tbody tr.weekend{background:#f3f4f4}td.day{font-weight:800;width:55px}td input{width:100%;min-width:80px;padding:8px;border:1px solid transparent;border-radius:6px;text-align:center;background:transparent}td input[type="checkbox"]{min-width:auto;width:20px;height:20px}tfoot th{background:#f2f7f5}.actions{justify-content:center}.save-status{text-align:center;color:#5d6d67;font-size:.86rem;min-height:1.2em}.signature-card p{margin:0;color:#5d6d67}.signature-settings{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}.auto-sign{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700}.auto-sign input{width:20px;height:20px}.signature-editor{margin-top:14px;display:grid;gap:10px}.signature-editor canvas{width:100%;height:150px;border:1px dashed #92a9a0;border-radius:10px;background:white;touch-action:none}.saved-signature-preview{margin-top:10px;display:flex;align-items:center;gap:12px;min-height:42px}.saved-signature-preview img{height:44px;max-width:220px;object-fit:contain}.signature-img{height:28px;max-width:120px;object-fit:contain;display:block;margin:auto}.signature-placeholder{font-size:.72rem;color:#8a9691}.mini-sign{font-size:.68rem;padding:3px 6px;margin-top:2px}.signature{min-width:145px}.status-select{min-width:125px;padding:7px 5px}.vacation-row{background:#fff8dd!important}.vacation-cell{min-width:80px}.vacation-print{display:none;font-size:1.15rem;font-weight:800}td textarea{width:100%;min-width:190px;resize:vertical;border:1px solid transparent;border-radius:6px;padding:7px;font:inherit;background:transparent}
@media(max-width:760px){main{padding:0 8px 28px;margin-top:10px}.card{border-radius:12px;padding:12px}.view-tabs{grid-template-columns:1fr 1fr 1fr;gap:5px}.tab{font-size:.82rem;padding:8px 5px}.today-card{padding:16px 12px}.today-head{display:block}.status-badge{display:inline-block;margin-top:12px}.today-head h2{font-size:1.3rem}.punch-box strong{font-size:1.9rem}.big-actions{grid-template-columns:1fr}.punch-btn{min-height:64px}.today-edit-grid{grid-template-columns:1fr 1fr}.today-edit-grid label:first-child,.today-notes{grid-column:1/-1}.grid-info{grid-template-columns:1fr 1fr}.grid-info label:nth-child(1),.grid-info label:nth-child(3){grid-column:1/-1}.selectors{display:grid;grid-template-columns:1fr 1fr;width:100%}.button-row{display:grid;grid-template-columns:1fr 1fr;width:100%}.actions{display:grid;grid-template-columns:1fr 1fr}.appbar{position:static}.brand-icon{width:38px;height:38px}}
@media print{body{background:white}.no-print,.appbar,#todayView,#settingsView{display:none!important}#monthView{display:block!important}main{max-width:none;margin:0;padding:0}.card{border:0;box-shadow:none;padding:0;margin:0}.table-wrap{overflow:visible;border:0}table{min-width:0;font-size:7pt}th,td{padding:2px}.sheet-title h2{font-size:12pt}.status-select{appearance:none;border:0;padding:0;background:transparent;font-size:7.5pt;min-width:0}.vacation-cell input{display:none}.vacation-print{display:inline}td textarea{border:0;resize:none;padding:1px;font-size:7pt;min-width:120px;overflow:visible}.signature-img{height:22px;max-width:100px}.signature-placeholder,.mini-sign{display:none}.signature{min-width:90px}thead th{position:static}.vacation-row{background:#fff!important}@page{size:A4 landscape;margin:8mm}}

.today-edit-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.today-edit-actions button{min-height:48px}.today-edit-status{grid-column:1/-1;margin:0;color:var(--green2);font-weight:750;min-height:1.2em}.today-edit.dirty summary::after{content:" · cambios sin guardar";color:var(--danger);font-size:.82em}.today-edit.saved summary::after{content:" · guardado";color:var(--green2);font-size:.82em}@media(max-width:760px){.today-edit-actions{display:grid;grid-template-columns:1fr}.today-edit-actions button{width:100%;min-height:52px}}
.finalize-day{background:var(--green2);border-color:var(--green2)}
.finalize-help{grid-column:1/-1;margin:0;color:#5d6d67;font-size:.82rem;line-height:1.4}
.profile-save-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
#profileSaveStatus{color:var(--green2);font-size:.86rem;font-weight:700}
@media(max-width:760px){.profile-save-row{display:grid;grid-template-columns:1fr}.profile-save-row button{width:100%;min-height:52px}.finalize-help{font-size:.78rem}}

.reminder-card{display:grid;gap:18px}
.reminder-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap}
.reminder-head h2{margin:0 0 5px}
.reminder-head p{margin:0;color:#5c6864}
.reminder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.reminder-grid label{display:grid;gap:7px;font-weight:700}
.reminder-grid input,.reminder-grid select{min-height:48px;border:1px solid #b9c5c1;border-radius:12px;padding:10px 12px;font:inherit;background:#fff;color:#15211d}
.reminder-actions{margin-top:0}
.reminder-status{min-height:1.3em;margin:0;font-weight:700;color:#1f6f5b}
.reminder-help{margin:0;color:#5c6864;font-size:.94rem;line-height:1.45}
@media(max-width:640px){.reminder-grid{grid-template-columns:1fr}.reminder-actions button{width:100%}}

.sync-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.sync-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.sync-grid label{display:flex;flex-direction:column;gap:.35rem}.sync-grid input{min-height:44px;padding:.65rem .75rem;border:1px solid #cbd5e1;border-radius:10px;font-size:16px}.sync-actions{margin-top:1rem}.sync-card.connected{outline:2px solid rgba(31,111,91,.2)}
@media(max-width:700px){.sync-head{flex-direction:column}.sync-grid{grid-template-columns:1fr}}
