@charset "UTF-8";
/* Presentación PartesGo. Los formularios y controles originales conservan sus contratos. */
:root{--ink:#142b38;--muted:#536674;--paper:#f4f6f8;--card:#fff;--line:#e0e7eb;--accent:#087b6c;--accent-dark:#066457;--ok:#176847;--danger:#b42318;--mint:#e6f4ef;--side:232px;--preview:42px}
html{scroll-padding-top:90px}body{font:14px/1.6 "Segoe UI",system-ui,sans-serif;background:var(--paper);color:var(--ink);padding-top:var(--preview)}
button,input,select,textarea,a,summary{-webkit-tap-highlight-color:transparent}button,.button{border-radius:8px;min-height:44px;font-size:13px;line-height:1.4;transition:background .15s,border-color .15s}button:hover,.button:hover{filter:none;background:#edf5f2;border-color:#b8d7cc}.primary,.button.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover,.button.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b76900;outline-offset:3px}button:disabled{opacity:.55;cursor:default}
.skip{position:fixed;left:12px;top:-100px;z-index:100;background:white;padding:12px 18px;border-radius:8px}.skip:focus{top:8px}
.local-preview{position:fixed;inset:0 0 auto;min-height:var(--preview);height:var(--preview);background:#fff;border-bottom:1px solid var(--line);padding:0 24px;display:flex;align-items:center;gap:12px;font-size:11px;z-index:40;color:var(--muted)}.local-preview strong{font-weight:700;color:var(--ink)}.local-preview span:before{content:"";display:inline-block;width:6px;height:6px;background:#b7791f;border-radius:50%;margin-right:8px}.local-preview a{margin-left:auto;color:var(--muted);padding:8px 0}
.sidebar{width:var(--side);inset:var(--preview) auto 0 0;padding:28px 18px 20px;background:var(--ink);z-index:20;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#526873 transparent}
.brand{gap:10px;padding:0 8px 0;font-size:25px;letter-spacing:-.8px}.brand img{width:36px;height:36px;border-radius:0}.brand strong{white-space:nowrap}.brand .brand-go{display:inline;color:#a5e5ce;font-size:inherit;letter-spacing:inherit;margin:0}.brand small{display:block;font-size:8px;letter-spacing:1.3px;color:#b6cbd3;margin-top:8px;font-weight:500}
.organization{display:flex;align-items:center;gap:10px;margin:28px 8px 22px;padding:15px 0;border-block:1px solid #ffffff1b}.organization-icon{display:grid;place-items:center;width:31px;height:33px;border-radius:7px;background:#ffffff0d;color:#bad0d8;font-size:14px}.organization strong,.organization small{display:block;font-size:11px;line-height:1.6}.organization strong{color:#e3ecf0;font-weight:600}.organization small{color:#a9c0c8;font-size:10px}
.sidebar nav{display:grid;gap:5px;min-width:0}.sidebar nav a{position:relative;display:flex;align-items:center;gap:12px;padding:11px 13px;min-height:44px;font-size:12px;color:#c4d4db;border-radius:8px;font-weight:500}.sidebar nav a:hover{background:#ffffff0c}.sidebar nav .selected{background:#1e4650;color:#a5e5ce;box-shadow:none}.sidebar nav .selected:before{content:"";position:absolute;left:0;width:3px;height:19px;background:#8ad8bb;border-radius:3px}.nav-icon{display:inline-flex;width:18px;height:18px;flex:none}.nav-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sidebar nav .tools-link{margin:10px 0 0 13px;border:1px solid #ffffff25;color:#bacfd6}
.sidebar>form{margin-top:auto;padding-top:24px}.sidebar>form button{background:transparent;border-color:#ffffff24;color:#bdd0d8;font-size:12px}.sidebar>form button:hover{background:#ffffff0a}.sidebar-user{display:flex;gap:10px;align-items:center;border-top:1px solid #ffffff1b;margin-top:20px;padding:18px 5px 0}.sidebar-user svg{width:33px;height:33px;padding:8px;border-radius:50%;background:#24434c;stroke:#b7d9ce;fill:none;stroke-width:1.6}.sidebar-user strong,.sidebar-user small{display:block;font-size:11px}.sidebar-user small{color:#a9c0c8;font-size:10px}
.workspace{margin-left:var(--side);min-height:calc(100dvh - var(--preview));min-width:0}.top{height:65px;padding:0 32px;background:white;gap:16px;font-size:12px}.top>a{font-weight:600;color:var(--muted)}.top-actions{gap:15px}.top-actions>span{font-size:11px;max-width:180px}.bell{position:relative;font-size:11px;border-radius:8px}.bell:hover{background:var(--paper)}.bell svg{width:21px;height:21px}.bell b,.available-bell b{background:var(--accent);font-size:10px;min-width:19px;padding:1px 5px}.top .top-actions .available-bell{color:var(--accent)}.top .available-bell svg{stroke:var(--accent)}.available-bell span{font-size:11px}
main{max-width:1370px;padding:32px 36px 50px}.page-head{gap:20px;margin-bottom:28px}.page-head h1{font-size:30px;letter-spacing:-.9px}.page-head>.button{font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.4px;color:var(--muted);margin-bottom:8px}.back-link{font-size:12px;color:var(--muted);font-weight:500;padding-bottom:14px}.back-link:hover{color:var(--accent)}h2{font-size:18px;letter-spacing:-.3px}h3{font-size:15px}.card{padding:24px;border-radius:14px;border:1px solid var(--line);box-shadow:none;margin-bottom:22px}.card>h2{margin-bottom:17px}.muted,small{color:var(--muted)}
.metrics{gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metrics .card{padding:21px;border-top:1px solid var(--line);gap:8px}.metrics .card strong{font-size:31px;letter-spacing:-1px;line-height:1.3}.metrics .card span{font-size:11px}.status-stats{gap:16px}.status-stats>div{min-width:110px}.status-stats strong{font-size:25px}.status-stats span{font-size:11px}progress{accent-color:var(--accent);height:6px}
.view-tabs{gap:6px;margin:18px 0 22px}.view-tabs a{padding:9px 13px;border-color:var(--line);font-size:12px;background:#fff;font-weight:600}.view-tabs a.selected{background:var(--mint);color:var(--accent-dark);border-color:#beded1}.view-tabs span{font-size:10px;margin-left:3px}.period-tabs .selected{background:var(--mint);color:var(--accent-dark);border-color:#beded1}
label{font-size:12px;font-weight:600;margin:12px 0}input,select,textarea{padding:11px 12px;border-color:#ccd8de;border-radius:8px;line-height:1.5;font-size:14px;min-height:44px;max-width:100%;min-width:0}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{min-height:112px}.check{font-size:13px;line-height:1.5}.check input{min-width:18px;accent-color:var(--accent)}fieldset{padding:20px;border-radius:11px;margin:24px 0;border-color:var(--line)}legend{font-size:14px;padding:0 9px}.grid.two{gap:20px}.filters label{min-width:135px}.filters{gap:12px}.filters button{font-size:12px}.form-section{padding:13px 16px;border-color:var(--line);border-radius:10px;background:#fafcfc;margin:18px 0}.form-section>summary{padding:4px 0;color:var(--ink);font-size:13px}.form-section[open]>summary{margin-bottom:13px}.draft-status{padding:10px 13px;border-radius:8px;background:#f3f7f8;color:#536674;font-size:11px;line-height:1.5}.worker-time{grid-template-columns:minmax(130px,1fr) 100px 100px;gap:14px;padding:10px 0;border-bottom:1px solid #edf1f3}.worker-time:last-of-type{border-bottom:0}.worker-time strong{font-size:13px}.worker-time label{font-size:11px;margin:4px 0}output{background:var(--mint);color:var(--accent-dark);font-size:13px;padding:14px;border-radius:8px;margin-top:12px}.save-state{font-size:11px;color:var(--muted)}.save-state.dirty{color:#895000}
form:has(>input[name="action"][value="save_report"])>button[type="submit"],form:has(>input[name="action"][value="worker_create_repair"])>button:last-child,form:has(>input[name="action"][value="note_save"])>button:last-child{background:var(--accent);border-color:var(--accent);color:#fff}
.tag{font-size:10px;font-weight:650;line-height:1.5;padding:4px 9px;border-radius:5px;border:1px solid transparent;background:#edf1f4;color:var(--muted)}.state-new,.state-pending,.state-waiting_material,.state-pending_close{background:#fff3d8;color:#895000;border-color:#f1ddb3}.state-submitted,.state-in_progress{background:#eaf1ff;color:#2459a5;border-color:#cfddf5}.state-reviewed,.state-managed,.state-completed,.state-closed{background:#e5f4eb;color:#176847;border-color:#c5e4d1}.state-cancelled{background:#fff0ed;color:#a52b20;border-color:#efcec7}.state-archived{background:#edf1f4;color:#536674;border-color:#dce4e9}
table{font-size:13px}th{background:#f8fafb;font-size:10px;font-weight:650;letter-spacing:.6px;padding:12px 14px}td{padding:16px 14px;border-color:#edf1f3}td small{font-size:11px}.person-hours{margin-top:4px}.compact-item{align-items:center;padding:17px 0;gap:16px;border-color:#edf1f3}.compact-item p{font-size:11px;margin:5px 0}.compact-item strong{font-size:13px}.compact-item small{font-size:11px}.compact-item .button{border-color:var(--line);color:var(--accent);font-size:12px}.pagination{padding-top:10px;font-size:11px;color:var(--muted)}.pagination .button{font-size:11px;min-height:36px;padding:7px 12px}.client-folder{background:#eaf0f3;border-radius:8px;padding:11px 14px;font-size:13px;color:#455d6b}.repair-grid{gap:18px}.repair-grid h2{font-size:16px;line-height:1.4}.repair-grid p{font-size:12px}.repair-grid .eyebrow{font-size:10px}.repair-grid .button{font-size:12px}.summary-row{font-size:13px;padding:13px 0}.summary-row strong{font-size:14px}.material-card{border-color:var(--line);border-radius:12px;background:#fff;padding:22px}.material-line{gap:12px}.field-edit{gap:12px}.field-edit select{min-width:120px}
.hours-total{background:var(--mint);border-left-color:var(--accent);padding:23px;border-radius:10px}.hours-total>strong{color:var(--accent-dark);font-size:30px}.hours-day summary>span:before{color:var(--accent)}.hours-report{font-size:13px}.hours-report small{font-size:11px}.hours-navigation .button{font-size:12px}
.sticky-note{background:#fff8df;box-shadow:0 4px 10px #44330008;border:1px solid #f0e5bd;border-radius:11px;padding:20px;color:#53462d}.sticky-note:after{display:none}.sticky-note h3{font-size:15px}.sticky-note p{font-size:13px;line-height:1.65}.sticky-note button,.sticky-note a{font-size:11px}.sticky-note button{border:1px solid #e8ddb6;background:#fffcf1;min-height:36px;border-radius:7px}.sticky-note.done{opacity:.7}.note-editor{background:white;border-top:3px solid #d9b853}.pinned-shelf{background:#fffcf3;border-color:#eee4c7;padding:16px 20px;border-radius:12px}.pinned-shelf summary{font-size:13px;color:#65562f}.notes-grid{gap:18px}.notes-calendar{gap:6px}.calendar-day{background:white;border-color:var(--line);padding:9px;border-radius:9px;min-height:100px}.calendar-day>a:first-child{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;color:#536674;font-size:12px}.calendar-day:hover{border-color:#a7cbbc}.calendar-task{background:#fff3d4;color:#77521e;border-radius:5px;padding:5px 7px;font-size:11px;line-height:1.45}.note-reminder{background:#fff6dd}.note-grip{color:#8b7644}
.notification-new{border-left-color:var(--accent);background:#f2faf6;border-radius:8px;padding:16px}.notification-urgent{background:#fff5e3}.notification-actions{gap:8px}.notification-actions button{font-size:12px}.admin-note{border-left-color:#8bb5a9;background:#f6faf8;border-radius:0 8px 8px 0}.alert{font-size:13px;padding:16px 19px}.error{background:#fff0ed;border-color:#edc9c2;color:#a52b20}.success{background:#e5f4eb;border-color:#bfdfcb;color:#176847}.danger,.button.danger{background:#fff;color:var(--danger);border-color:#eabcb7}.danger:hover,.button.danger:hover{background:#fff0ed;border-color:#dcaaa3}.danger-card{border-color:#ecc7c1}.whatsapp{background:#edf7f0;border-color:#bddbc9;color:#236341}.map-link{color:var(--accent);border-color:#bfd9d0;background:#f8fcfa;font-size:12px}
#signature-pad{border:1px solid #b7cbd2;border-radius:9px;height:190px;background:#fafcfc}.signature-missing{color:#895000}.saved-signature{border-color:var(--line);border-radius:9px}.photo-controls svg{stroke:var(--accent)}.photo-controls button{font-size:12px}.photo-preview,.photo-thumb{border-radius:9px}.photo-thumb img{border-radius:8px}.saved-photos{color:var(--ok)}dialog{color:var(--ink);border:1px solid var(--line);border-radius:15px;box-shadow:0 24px 100px #102b3840}dialog::backdrop{background:#102b3880}dialog button{border-radius:8px}.today-card{background:#f2f7fa;border-color:#d7e3eb}.install-help{background:#edf2f5;color:var(--muted);border:0;border-radius:9px;margin:10px 0;max-width:650px}.install-help summary{font-size:11px;text-align:left}.install-help p{font-size:11px}footer{border-top-color:var(--line);font-size:11px;padding:20px 36px;color:var(--muted)}
/* El mismo formulario completo, organizado en trabajo y cierre de jornada. */
.report-columns{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}.report-work,.report-close{min-width:0}.report-close{border-left:1px solid var(--line);padding-left:26px}.report-close>fieldset:first-of-type{margin-top:18px}.report-close>button.primary{width:100%;min-height:47px}.report-close .form-section{margin-top:0}.report-close fieldset{padding:16px}.report-close legend{font-size:13px}.report-close label{font-size:11px}.report-close select{font-size:12px;padding:11px 9px}.report-close #signature-pad{height:155px}.report-close .photo-controls{flex-wrap:wrap}.report-close .photo-controls button{font-size:11px;padding:9px 10px}.report-work fieldset:first-of-type{margin-top:18px}.report-work .material-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.report-work .material-line>label:first-child{grid-column:1/-1}
form:has(>#report-day-picker){display:grid;grid-template-columns:minmax(150px,220px) max-content 1fr;gap:0 12px;align-items:end}form:has(>#report-day-picker)>label{grid-column:1/-1;margin:4px 0 6px}#report-day-picker{grid-column:1;grid-row:2;margin:0}form:has(>#report-day-picker)>button{grid-column:2;grid-row:2}#date-switch-help{grid-column:1/-1;grid-row:3;font-size:11px;max-width:800px;margin:12px 0 6px}body[data-page="new"] main>section.card>hr{border:0;border-top:1px solid var(--line);margin:20px 0}
@media(max-width:1190px){.report-columns{grid-template-columns:1fr;gap:14px}.report-close{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.report-close #signature-pad{height:190px}.report-close select{font-size:14px}.report-close fieldset{padding:20px}.report-close .photo-controls{flex-wrap:nowrap}.report-close>button.primary{width:auto;min-width:220px}}
@media(max-width:720px){.report-work .worker-time{grid-template-columns:1fr 1fr}.report-close select{font-size:16px}.report-close fieldset{padding:15px}.report-close>button.primary{width:100%}.report-close .photo-controls button{font-size:12px}.report-work .material-line{grid-template-columns:1fr}.report-work .material-line>label:first-child{grid-column:auto}form:has(>#report-day-picker){grid-template-columns:minmax(0,1fr) max-content;gap:0 10px}#date-switch-help{font-size:11px!important}}
/* Acceso: misma identidad de la maqueta, con autenticación del servidor. */
.guest .workspace{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;margin-left:0;background:#fff}.guest .top{grid-column:2;grid-row:1;padding:0 35px;border-bottom:0;background:transparent}.guest .top>a{font-size:12px}.guest .top-actions>span{font-size:10px}.access-story{grid-column:1;grid-row:1/4;background:var(--ink);color:#fff;min-height:calc(100dvh - var(--preview));padding:44px clamp(32px,5vw,80px);display:flex;flex-direction:column;overflow:hidden;position:relative}.access-brand{display:flex;align-items:center;gap:11px;color:#fff;font-size:27px;font-weight:700;letter-spacing:-1px;line-height:1}.access-brand img{width:38px;height:38px}.access-brand strong{color:#a5e5ce}.access-message{margin:auto 0;padding:70px 0}.access-message .eyebrow{color:#9bcebf;margin-bottom:20px}.access-message h2{font-size:clamp(32px,3.5vw,49px);font-weight:700;line-height:1.13;letter-spacing:-1.6px;margin-bottom:25px}.access-message em{font-style:normal;color:#a5e5ce}.access-message>p:not(.eyebrow){color:#c1d1d7;font-size:15px;line-height:1.8;max-width:370px}.access-features{display:grid;gap:15px;border:1px solid #ffffff20;background:#ffffff05;padding:23px;border-radius:13px;margin-top:33px;max-width:390px;color:#c5d9df;font-size:12px}.access-foot{color:#abc1ca;font-size:11px;margin:0}.guest main{grid-column:2;grid-row:2;width:min(100%,500px);margin:auto;padding:25px 42px}.guest .page-head{margin:0;max-width:none}.guest .page-head h1{font-size:29px;line-height:1.2}.guest .page-head .eyebrow{color:var(--accent);margin-bottom:12px}.guest .auth{padding:0;border:0;box-shadow:none;margin:24px 0 0;max-width:none}.guest .auth-logo{display:none}.guest .auth label{font-size:12px}.guest .auth input{padding:12px 13px;font-size:14px}.guest .auth form button{margin-top:14px;background:var(--accent);border-color:var(--accent);color:white}.guest .auth form button:hover{background:var(--accent-dark)}.guest .auth p{font-size:12px;color:var(--muted)}.guest .auth small{font-size:11px}.guest .auth .check{font-size:12px}.guest footer{grid-column:2;grid-row:3;border-top:0;padding:24px 42px;max-width:500px;width:100%;margin:auto}.guest .install-help{background:#f4f7f8}.guest .back-link{margin-bottom:12px}
@media(min-width:1500px){main{padding-top:38px}.guest main{width:500px}.access-story{padding-inline:95px}}
@media(max-width:1100px){:root{--side:205px}.sidebar{padding-inline:13px}.brand{font-size:23px}.top{padding-inline:24px}main{padding:27px 25px 45px}.card{padding:21px}.metrics{gap:12px}.metrics .card{padding:18px}.guest main{padding-inline:30px}.access-story{padding-inline:36px}.access-message h2{font-size:38px}.guest .top{padding-inline:30px}}
@media(max-width:820px){.guest .workspace{grid-template-columns:1fr}.access-story{display:none}.guest .top,.guest main,.guest footer{grid-column:1}.guest .top{padding:0 24px;height:65px;border-bottom:1px solid var(--line)}.guest main{padding:32px 28px;width:min(100%,480px)}.guest footer{max-width:480px;padding:20px 28px}.guest .auth input{font-size:16px}.guest .page-head h1{font-size:27px}}
@media(max-width:720px){
 :root{--preview:38px}.local-preview{padding:0 14px;gap:9px;font-size:10px}.local-preview a{font-size:0}.local-preview a:after{content:"Diseño ↗";font-size:10px}.local-preview strong{font-size:11px}
 .sidebar{position:relative;inset:auto;width:100%;padding:18px 14px 10px;overflow:visible;display:block}.brand{font-size:23px;gap:9px;padding:0;max-width:calc(100% - 100px)}.brand img{width:33px;height:33px}.brand .brand-go{display:inline}.brand small{display:none}.organization,.sidebar-user{display:none}.sidebar>form{position:absolute;right:14px;top:17px;margin:0;padding:0}.sidebar>form button{min-height:34px;width:auto;font-size:11px;padding:6px 11px;border-color:#ffffff30}
 .sidebar nav{display:flex;width:100%;max-width:100%;gap:5px;overflow-x:auto;overflow-y:hidden;margin-top:17px;padding:0 0 7px;scrollbar-width:thin;scrollbar-color:#58707b #142b38;touch-action:pan-x pan-y}.sidebar nav a{flex:none;white-space:nowrap;gap:7px;font-size:11px;padding:9px 11px;min-height:40px}.sidebar nav .selected:before{display:none}.nav-icon,.nav-icon svg{width:16px;height:16px}.sidebar nav .tools-link{margin:0 2px;min-height:34px;align-self:center}.sidebar nav::-webkit-scrollbar{height:4px}.sidebar nav::-webkit-scrollbar-track{background:#142b38}.sidebar nav::-webkit-scrollbar-thumb{background:#58707b}
 .workspace{margin-left:0;min-height:0}.top{height:54px;padding:0 15px;font-size:11px;gap:12px}.top>a{font-size:11px}.top-actions{gap:6px}.top-actions>span{max-width:110px;font-size:10px}.available-bell span{display:none}.bell{min-width:39px;min-height:42px}.bell svg{width:20px;height:20px}.bell b{font-size:9px}
 main{padding:22px 16px 34px!important}.page-head{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:23px}.page-head h1{font-size:25px;letter-spacing:-.6px}.page-head>a{display:none}.eyebrow{font-size:9px}.back-link{font-size:11px;padding:0 0 14px}.card{padding:19px!important;border-radius:13px!important;margin-bottom:18px!important}.card>h2{font-size:17px;line-height:1.4;margin-bottom:15px}.card p{font-size:13px;line-height:1.6}.card .eyebrow{font-size:9px}
 .metrics{grid-template-columns:1fr 1fr;gap:11px;margin-bottom:20px}.metrics .card{padding:16px!important;margin:0!important;grid-column:auto}.metrics strong{font-size:25px!important}.metrics span{font-size:10px!important}.status-stats{gap:16px}.status-stats strong{font-size:23px}.view-tabs{gap:7px;margin:16px 0 20px}.view-tabs a{flex:1 1 42%;font-size:11px;text-align:center;padding:9px 10px}.view-tabs span{font-size:10px}.grid.two{grid-template-columns:1fr;gap:0}.filters{gap:10px;grid-template-columns:1fr 1fr}.filters label{min-width:0;font-size:11px}.filters input,.filters select{padding-inline:9px}.filters button{margin-bottom:0}.card input,.card select,.card textarea{font-size:16px}.check{font-size:12px}fieldset{padding:15px;margin:22px 0}legend{font-size:13px}.worker-time{grid-template-columns:1fr 1fr;gap:10px;padding:12px 0}.worker-time strong{grid-column:1/-1;font-size:13px}.worker-time input{font-size:16px}.form-section{padding:12px}.form-section>summary{font-size:12px}.draft-status{font-size:10px!important;padding:10px}
 .repair-grid{display:grid;grid-template-columns:1fr;gap:13px}.repair-grid .card{padding:18px!important;margin:0!important}.repair-grid h2{font-size:16px;margin:9px 0}.repair-grid p{font-size:12px;margin:8px 0}.compact-item{gap:10px;align-items:flex-start}.compact-item>div:last-child{align-items:flex-end}.compact-item p{font-size:11px}.compact-item .button{font-size:11px;min-height:40px;padding:8px 10px}.tag{font-size:9px;padding:4px 7px}.pagination{font-size:10px}.table-wrap{max-width:100%;overflow-x:auto}th{font-size:9px;padding:11px}td{font-size:12px;padding:13px 11px}.material-line{grid-template-columns:1fr;gap:5px}.material-line label:first-child{grid-column:auto}.photo-controls{gap:8px}.photo-controls button{font-size:12px;padding:10px}.photo-controls svg{width:18px}.hours-total>strong{font-size:27px}.hours-report{font-size:12px}.hours-report .button{font-size:11px}
 .notes-grid{grid-template-columns:1fr;gap:15px}.pinned-shelf{padding:13px 15px}.sticky-note{padding:17px 18px}.sticky-board{display:grid;gap:14px;min-height:0!important}.sticky-board>.sticky-note{position:relative!important;left:auto!important;top:auto!important;width:auto;max-height:260px}.note-grip{display:none}.notes-calendar{gap:3px}.calendar-day{min-height:76px;padding:4px;border-radius:6px}.calendar-day>a:first-child{min-width:23px;min-height:25px;font-size:11px}.calendar-task{font-size:10px;padding:4px}.notes-calendar .calendar-task{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day>div{min-width:0}.notification-actions button{font-size:11px}.notification-new{padding:13px}.contact-actions .button{font-size:11px;padding:9px 11px}
 footer{padding:18px 16px!important;font-size:10px}.install-help summary{font-size:10px}.guest main{padding:34px 25px!important}.guest .auth{padding:0!important;margin-top:24px!important}.guest footer{padding:20px 25px!important}.guest .page-head{display:block}.guest .top span{display:inline}.guest .top-actions span{display:none}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{body{padding-top:0}.local-preview,.sidebar,.top,.back-link,.install-help,.skip{display:none!important}.workspace{margin:0}main{padding:0!important;max-width:none}.card{break-inside:avoid;box-shadow:none}a{color:inherit}}
/* Totales largos y filtros: conservar legibilidad en portátiles y móviles. */
body[data-page="dashboard"] .metrics .card:nth-child(2) strong{font-size:clamp(22px,2.25vw,29px);letter-spacing:-.6px;white-space:nowrap}
body[data-page="dashboard"] .filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}
body[data-page="dashboard"] .filters label{min-width:0;margin:0}
body[data-page="dashboard"] .filters button{margin:0}
@media(max-width:720px){body[data-page="dashboard"] .metrics .card:nth-child(2) strong{font-size:20px!important}body[data-page="dashboard"] .filters{grid-template-columns:1fr 1fr}body[data-page="dashboard"] .filters label:has(input[type="search"]){grid-column:1/-1}}
/* El PDF debe seguir disponible en el encabezado del móvil. */
@media(max-width:720px){.page-head>a{display:inline-flex}.page-head>a.button.primary{display:none}}
/* Navegación del calendario y casillas de las notas en ancho estrecho. */
.card:has(>.notes-calendar)>.view-tabs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}
.card:has(>.notes-calendar)>.view-tabs>a{padding:9px 7px;text-align:center}
.card:has(>.notes-calendar)>.view-tabs>strong{text-align:center;font-size:12px}
.note-editor .check{display:flex;align-items:center;gap:10px}
.note-editor .check input[type="checkbox"]{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:0}
@media(max-width:720px){.card:has(>.notes-calendar)>.view-tabs{gap:5px;margin-top:0}.card:has(>.notes-calendar)>.view-tabs>a{font-size:10px;padding:9px 5px}.card:has(>.notes-calendar)>.view-tabs>strong{font-size:11px}}

/* Horas semanales: el desglose mantiene los minutos enteros en todas las vistas. */
.hours-rule{padding:14px 16px;background:#edf7f3;border-left:3px solid #087b6c;border-radius:8px;color:#173f36;line-height:1.55}
.hours-value{white-space:nowrap;font-variant-numeric:tabular-nums}
.hours-extra{color:#92521a;font-weight:750}
.hours-breakdown{display:block;font-size:.83rem;font-weight:500;color:#526772;line-height:1.5;margin-top:5px}
.hours-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.hours-split>div{display:flex;flex-direction:column;gap:5px;padding:16px;border:1px solid #dce5e8;border-radius:12px;background:#f8fafb}
.hours-split span{font-size:.85rem;color:#526772}.hours-split strong{font-size:1.35rem;font-variant-numeric:tabular-nums}
.hours-explanation{margin:12px 0 20px}.hours-explanation summary{cursor:pointer;color:#087b6c;font-weight:650}
.metrics .card>small{font-size:.76rem;line-height:1.5;color:#526772;margin-top:6px}

.whatsapp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.whatsapp-contact{border:1px solid #dce5e8;border-radius:12px;padding:16px;min-width:0;background:#fafcfc}
.whatsapp-contact h3,.whatsapp-team>h3{font-size:.85rem;color:#526772;margin:0 0 8px}
.whatsapp-contact p{margin:6px 0}.contact-number{font-variant-numeric:tabular-nums;font-size:.85rem}
.whatsapp-compose{margin-top:12px}.whatsapp-compose summary{font-weight:700;color:#087b6c;cursor:pointer}
.whatsapp-compose label{display:block;margin-top:14px}.whatsapp-compose textarea{width:100%;min-height:130px;resize:vertical}
.contact-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.button.whatsapp{background:#087b6c;color:#fff;border-color:#087b6c}
.whatsapp-team>.whatsapp-contact{margin-bottom:12px}.whatsapp-panel .muted{font-size:.86rem}
@media(max-width:760px){.whatsapp-grid{grid-template-columns:1fr}}

/* Color con significado: estados, atención y acciones, sin perder la base sobria. */
:root{--blue:#245bd6;--amber:#b56b00;--orange:#c45112;--violet:#7040c1;--red:#c12e36;--green:#187543}
.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 24px}
.quick-action{display:flex;align-items:center;gap:10px;min-height:64px;padding:13px 15px;border:1px solid #d9e3e9;border-radius:12px;background:white;color:var(--ink);font-size:12px;font-weight:650;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}
.quick-action .nav-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--tone-bg);color:var(--tone)}
.quick-action .nav-icon svg{width:19px;height:19px}.quick-action>b{margin-left:auto;color:var(--tone);font-size:18px}
.tone-blue{--tone:var(--blue);--tone-bg:#eaf1ff}.tone-orange{--tone:var(--orange);--tone-bg:#fff0df}.tone-violet{--tone:var(--violet);--tone-bg:#f1eaff}.tone-amber{--tone:#976000;--tone-bg:#fff1c5}.tone-teal{--tone:var(--accent);--tone-bg:#e3f5ef}
.quick-action:hover{border-color:var(--tone);transform:translateY(-2px);box-shadow:0 5px 15px #142b380a}
.metrics .metric-link{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border-top:4px solid var(--metric);background:linear-gradient(135deg,var(--metric-bg),white 70%);transition:transform .15s,box-shadow .15s}
.metric-blue{--metric:var(--blue);--metric-bg:#edf3ff}.metric-teal{--metric:var(--accent);--metric-bg:#eaf9f3}.metric-amber{--metric:#dc980b;--metric-bg:#fff5d7}.metric-orange{--metric:var(--orange);--metric-bg:#fff0e5}
.metric-link>strong{color:var(--metric)}.metric-link>small:last-child{margin-top:auto;padding-top:7px;font-weight:650;color:var(--ink)}
.metric-amber>strong{color:#8b5a00}
.filter-card>details>summary{cursor:pointer;font-weight:700}.filter-card .filters{margin-top:20px}.filter-card>a{margin-top:16px}
.metric-link:hover{transform:translateY(-3px);box-shadow:0 7px 18px #142b3810}
.status-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.status-link{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--state-border);border-left:4px solid var(--state);border-radius:11px;color:var(--state-text);background:var(--state-bg);text-decoration:none;min-width:0;transition:transform .15s,box-shadow .15s}
.status-link strong{line-height:1.2}.status-link span{font-weight:650;line-height:1.5}.status-link small{font-size:11px;margin-top:auto}.status-link:hover{transform:translateY(-2px);box-shadow:0 5px 12px #142b3810}
.all-states{display:inline-block;margin-top:18px;font-size:12px;font-weight:650;min-height:30px}
.state-submitted,.state-new{--state:#3271e7;--state-text:#19499b;--state-bg:#eaf2ff;--state-border:#bed3f8}
.state-in_progress{--state:#3974c9;--state-text:#174c91;--state-bg:#eaf3ff;--state-border:#bdd4f4}
.state-pending_close,.state-pending{--state:#e3a008;--state-text:#765000;--state-bg:#fff2c5;--state-border:#efd48b}
.state-waiting_material{--state:#dc6a24;--state-text:#8d3c0c;--state-bg:#fff0df;--state-border:#efc29a}
.state-reviewed,.state-managed{--state:#128f78;--state-text:#086b59;--state-bg:#ddf5ed;--state-border:#a9ddcd}
.state-completed,.state-closed{--state:#29a15f;--state-text:#12683a;--state-bg:#def5e6;--state-border:#a6d9b8}
.state-cancelled{--state:#d15158;--state-text:#9b2830;--state-bg:#ffeaec;--state-border:#edb7bf}
.state-archived{--state:#788797;--state-text:#485968;--state-bg:#edf1f5;--state-border:#ccd5df}
.tag[class*="state-"]{background:var(--state-bg);color:var(--state-text);border:1px solid var(--state-border);font-weight:700;padding:5px 9px;line-height:1.4}
.tag.priority-urgent{display:inline-flex;align-items:center;gap:5px;background:#bf2935;color:white;border:1px solid #bf2935;font-weight:750;padding:5px 9px;line-height:1.4}
.priority-urgent:before{content:"!";display:inline-grid;place-items:center;border:1px solid #ffffffb3;border-radius:50%;width:13px;height:13px;font-size:10px;line-height:1}
.job-card{border-top:4px solid var(--state)!important;background:white;color:var(--ink)}.job-card:has(.priority-urgent){border-top-color:#bf2935!important}
.job-card h2 a{color:var(--ink);text-decoration:none}.job-card h2 a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.job-card>.tag{margin:0 5px 4px 0}.job-card .availability-action[value="0"]{background:#edf6f2;color:#24654e;border-color:#b7d9cb}
.view-tabs a.selected{background:var(--accent);border-color:var(--accent);color:white}.view-tabs a.selected span{background:#ffffff26;color:white}
.hours-extra{color:var(--violet)}.hours-split>div:first-child{background:#eaf7f1;border-color:#b2ddca;border-top:3px solid #159a72}.hours-split>div:last-child{background:#f3edff;border-color:#d6c4f2;border-top:3px solid #8755cf}.hours-split>div:last-child span{color:#6235a0}
.worker-hours-overview{border-top:4px solid var(--accent);background:linear-gradient(110deg,#eaf9f3,white 75%)}
fieldset:has(.worker-time){border-color:#a7c9ee;border-top:3px solid #4189d7;background:#f8fbff}fieldset:has(.worker-time)>legend{color:#245b95}
fieldset:has(#material-lines){border-color:#edc196;border-top:3px solid #e58c3b;background:#fffcf6}fieldset:has(#material-lines)>legend{color:#965515}
fieldset:has(#signature-pad){border-color:#c9b8e9;border-top:3px solid #8d62ca}fieldset:has(#signature-pad)>legend{color:#6c409e}
#team-total{background:#e3efff;color:#1d538e;border-radius:8px;padding:10px 12px;display:block;font-weight:750}
.sticky-note{border-top:4px solid #e3b42b;background:#fff4c9}.note-editor{border-top-color:#e3b42b}.calendar-task{border-left:3px solid #d99705;background:#fff0b8;color:#695000}
.calendar-day.today{border:2px solid #168e79;background:#edf9f4}.notification-new{border-left:4px solid #3379d8;background:#f0f6ff}
.whatsapp-compose summary{padding:10px 12px;background:#e4f5ed;border:1px solid #a9d5c1;border-radius:8px;color:#126146}.button.whatsapp{background:#12804d;border-color:#12804d}.button.whatsapp:hover{background:#086238;border-color:#086238}
@media(max-width:1050px){.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1250px){.status-stats{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:720px){.quick-actions{gap:9px;margin-bottom:20px}.quick-action{padding:11px 10px;gap:8px;font-size:11px;min-height:62px}.quick-action .nav-icon{width:28px;height:28px;flex:none}.status-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.status-link{padding:13px}.page-head>a.button.primary{display:inline-flex}.metrics .card>small{font-size:10px}.metrics .metric-link>strong{font-size:24px!important}}
@media print{.quick-actions,.metric-link>small:last-child,.all-states{display:none}.metrics .metric-link{border-top:1px solid #bbb;background:white}.status-link{background:white;box-shadow:none}}

.worker-onboarding{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}
.worker-onboarding h3{font-size:15px;margin:0 0 12px}.onboarding-steps{display:flex;flex-wrap:wrap;gap:8px 24px;padding-left:20px;font-size:12px;color:var(--muted)}
.onboarding-steps li{padding:5px}.onboarding-steps .current{color:#19499b;font-weight:750;background:#eaf2ff;border-radius:5px}
.worker-onboarding p{font-size:13px}.local-mail-notice{padding:12px 14px;background:#fff2c5;border-left:3px solid #d39a14;border-radius:7px;color:#765000}
.worker-onboarding form{margin-top:12px}.onboarding-decision{display:flex;flex-wrap:wrap;gap:10px}

.organization img.organization-icon{object-fit:contain;background:white;flex:none}.organization>div{min-width:0}.organization strong{overflow-wrap:anywhere}
.company-intro{display:flex;justify-content:space-between;align-items:center;gap:25px}.company-intro img{max-width:150px;max-height:95px;object-fit:contain;background:white;padding:10px;border:1px solid var(--line);border-radius:10px}
.company-form .card{border-top:3px solid #168f79}.company-form .card:nth-of-type(2){border-top-color:#3974c9}.company-form .card:nth-of-type(3){border-top-color:#8755cf}.company-form textarea{min-height:110px}
.company-save{position:relative}.company-save>.button,.company-save>button{margin-bottom:10px}.company-details dt{font-weight:700;color:var(--muted);font-size:12px;margin-top:15px}.company-details dd{margin:4px 0;overflow-wrap:anywhere}.access-company{font-weight:700;color:var(--accent);margin-top:20px}
body[data-page="legal"].guest .workspace{display:block;margin:0}body[data-page="legal"] .access-story{display:none}body[data-page="legal"].guest main{max-width:850px;width:100%;padding:30px}body[data-page="legal"].guest .page-head{max-width:none}body[data-page="legal"].guest footer{max-width:850px}
@media(max-width:720px){.company-intro{align-items:flex-start;flex-wrap:wrap}.company-intro img{max-height:70px;max-width:130px}.company-form .grid.two{gap:0}.company-save>.button,.company-save>button{width:100%;text-align:center}}

/* La instalación comercial no reserva hueco para el aviso de demo. */
body[data-demo="0"]{--preview:0px}

/* Mantener legibles los totales en pantallas estrechas. */
body[data-page="hours"] .summary-row>strong{white-space:nowrap;flex-shrink:0}
body[data-page="hours"] .summary-row>span{min-width:0}
body[data-page="hours"] td .hours-breakdown.hours-extra{white-space:normal;min-width:12rem;max-width:23rem}

/* Una sola cabecera: identidad de empresa; proveedor discreto al pie. */
.company-heading{display:flex;align-items:center;gap:12px;padding:0 5px 22px;margin-bottom:18px;border-bottom:1px solid #ffffff1b;text-decoration:none;color:#fff;min-width:0}
.company-heading:hover{color:#fff}
.company-heading-logo{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;background:#fff;border-radius:12px;padding:6px}
.company-heading-logo img{display:block;width:100%;height:100%;object-fit:contain}
.company-heading-text{display:block;min-width:0}
.company-heading-text strong{display:block;font-size:17px;line-height:1.3;letter-spacing:-.25px;overflow-wrap:anywhere;color:#fff}
.company-heading-text small{display:block;margin-top:5px;font-size:10px;font-weight:400;color:#b6cbd3;line-height:1.4}
.product-signature{padding:16px 5px 0;font-size:10px;color:#a9c0c8;line-height:1.5}.product-signature strong{font-weight:600;color:#c5d9df}
@media(max-width:720px){
 .company-heading{max-width:calc(100% - 110px);padding:0;margin:0;border:0;gap:10px;min-height:38px}
 .company-heading-logo{flex-basis:38px;width:38px;height:38px;border-radius:9px;padding:4px}
 .company-heading-text strong{font-size:16px}.company-heading-text small{font-size:10px;margin-top:2px}
 .product-signature{display:none}
}

/* Avisos y trabajos disponibles: iconos distintos, etiquetas compactas en movil. */
.notification-label{font-size:11px}
@media(max-width:650px){.notification-label{display:none}}

/* Colores funcionales de cabecera independientes de la paleta corporativa. */
.top .top-actions .bell:not(.available-bell){color:#854d0e}
.top .top-actions .bell:not(.available-bell) svg path{fill:#facc15;stroke:#a16207;stroke-linecap:round;stroke-linejoin:round}
.top .top-actions .bell:not(.available-bell) b{background:#facc15;color:#713f12}
.top .top-actions .bell:not(.available-bell):hover{background:#fef9c3}
.top .top-actions .available-bell{color:#1d4ed8}
.top .top-actions .available-bell svg{stroke:#2563eb}
.top .top-actions .available-bell svg rect{fill:#dbeafe}
.top .top-actions .available-bell b{background:#2563eb;color:#fff}
.top .top-actions .available-bell:hover{background:#eff6ff}
