:root{--ink:#25272a;--muted:#6c727a;--paper:#f4f5f7;--card:#fff;--line:#e5e7eb;--accent:#e3062f;--accent-dark:#b80428;--ok:#187b52;--danger:#a51d31}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 "Segoe UI",system-ui,sans-serif}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:10px 17px;background:#fff;color:var(--ink);font-weight:600;cursor:pointer;min-height:44px}.primary{background:var(--accent);color:white;border-color:var(--accent)}button:hover,.button:hover{filter:brightness(.96)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e3062f55;outline-offset:3px}
.sidebar{width:238px;position:fixed;inset:0 auto 0 0;background:#242629;color:#fff;padding:28px 18px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:12px;align-items:center;color:#fff;padding:0 10px 30px;font-size:23px;line-height:1.12}.brand img{width:56px;height:56px;border-radius:12px}.brand span{display:block;font-size:8px;letter-spacing:1.6px;margin-top:10px;color:#b9bdc4}.sidebar nav{display:grid;gap:7px}.sidebar nav a{color:#d8dade;padding:13px 16px;border-radius:9px;font-weight:500}.sidebar nav a:hover{background:#34363a}.sidebar nav .selected{background:var(--accent);color:#fff;box-shadow:0 5px 18px #e3062f20}.sidebar form{margin-top:auto}.sidebar button{color:#ddd;background:transparent;border-color:#494c52;width:100%}.workspace{margin-left:238px;min-height:100vh}.guest .workspace{margin-left:0}.top{height:76px;border-bottom:1px solid var(--line);background:#ffffffea;display:flex;align-items:center;justify-content:space-between;padding:0 36px}.top a{font-weight:650;color:var(--ink)}.top span{color:var(--muted)}main{max-width:1440px;margin:auto;padding:30px 36px 50px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px}.eyebrow{font-size:11px;letter-spacing:1.4px;font-weight:700;color:var(--accent);margin:0 0 8px}h1,h2,h3{line-height:1.25}h1{font-size:30px;margin:0;letter-spacing:-.7px}h2{font-size:18px;margin:0 0 18px}h3{font-size:16px}p{margin:10px 0 17px}.muted,small{color:var(--muted)}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:25px;margin-bottom:22px;box-shadow:0 4px 16px #23262d04}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.metrics .card{border-top:3px solid var(--accent);display:flex;flex-direction:column;gap:8px}.metrics span{font-size:13px;color:var(--muted)}.metrics strong{font-size:29px;letter-spacing:-.5px}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.repair-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;margin-top:22px}.repair-grid .card{margin:0}.summary-row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}label{display:block;font-weight:600;font-size:13px;margin:12px 0}input,select,textarea{display:block;width:100%;padding:11px 12px;margin-top:7px;border:1px solid #d6dae0;border-radius:8px;background:#fff;color:var(--ink);min-height:44px}textarea{resize:vertical}.check{display:flex;align-items:center;gap:10px}.check input{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--accent)}fieldset{border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:22px 0}legend{font-weight:700;padding:0 8px}.filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px}.filters label{flex:1;min-width:140px}.filters button{margin-bottom:12px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:15px 14px;border-bottom:1px solid var(--line)}th{font-size:11px;text-transform:uppercase;letter-spacing:.5px;background:#f7f8fa;color:var(--muted)}td{font-size:13px}td a{font-weight:700}.tag{display:inline-flex;background:#fff0f3;border:1px solid #f9d9e0;color:#ac1232;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.report-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}.report-row p{margin:4px 0;font-size:13px;color:var(--muted)}.report-row form{display:flex;gap:8px}.alert{border-radius:10px;padding:16px 20px;margin-bottom:20px}.error{background:#fff0f1;border:1px solid #f3c7d0;color:#a91633}.success{background:#eaf7f0;border:1px solid #c9e8d7;color:#216c49}.empty{padding:28px;color:var(--muted);text-align:center}.auth{max-width:520px;margin:35px auto;padding:38px}.auth-logo{width:64px;height:64px;margin-bottom:24px}.auth .button{margin:8px 6px 8px 0}.auth form button{width:100%;margin-top:16px}.guest .page-head{max-width:520px;margin:auto}.material-line{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.material-card{border:1px solid var(--line);padding:22px;border-radius:10px;margin:18px 0}.field-edit{display:flex;gap:18px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0}.field-edit label:first-of-type{flex:1}output{display:block;background:#fff1f4;border-radius:8px;color:#ae1232;padding:14px;font-weight:700}details{border-bottom:1px solid var(--line);padding:15px 0}summary{cursor:pointer;font-size:13px}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f7f9;padding:16px;font-size:12px}.preserve{white-space:pre-wrap}footer{padding:20px 36px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}
@media(max-width:1000px){.sidebar{width:205px}.workspace{margin-left:205px}main{padding:25px}.metrics{gap:10px}.metrics strong{font-size:23px}.material-line{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.sidebar{position:static;width:100%;padding:14px 16px}.brand{padding:0;font-size:17px}.brand img{width:40px;height:40px}.brand span{display:none}.sidebar nav{display:flex;overflow-x:auto;gap:4px;margin-top:15px}.sidebar nav a{padding:9px 12px;white-space:nowrap;font-size:12px}.sidebar form{position:absolute;right:16px;top:16px}.sidebar button{min-height:34px;padding:4px 12px;font-size:12px}.workspace{margin:0}.top{height:52px;padding:0 17px;font-size:12px}main{padding:22px 16px}.page-head{display:block}.page-head .button{margin-top:15px}h1{font-size:25px}.metrics{grid-template-columns:1fr 1fr}.metrics .card:last-child{grid-column:1/-1}.metrics strong{font-size:23px}.metrics .card{margin-bottom:0}.metrics{margin-bottom:20px}.card{padding:20px}.grid.two{grid-template-columns:1fr;gap:0}.report-row{align-items:flex-start;flex-direction:column}.filters{display:grid;grid-template-columns:1fr 1fr}.filters label{min-width:0}.filters button{grid-column:1/-1}.auth{margin:25px auto;padding:26px}.material-line{grid-template-columns:1fr 1fr}.material-line label:first-child{grid-column:1/-1}.field-edit{flex-wrap:wrap}.field-edit label:first-of-type{flex-basis:100%}.guest .top span{display:none}}

.metrics{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.worker-time{display:grid;grid-template-columns:1fr 90px 90px;gap:12px;align-items:center}.status-stats{display:flex;gap:24px;flex-wrap:wrap}.status-stats>div{min-width:130px;flex:1}.status-stats strong{display:block;font-size:25px}.status-stats span{font-size:12px;color:var(--muted)}progress{display:block;width:100%;height:8px;accent-color:var(--accent);margin-top:10px}.view-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.view-tabs a{padding:9px 12px;border:1px solid var(--line);border-radius:9px;color:var(--ink);font-weight:650}.view-tabs a.selected{background:var(--accent);border-color:var(--accent);color:#fff}.view-tabs span{font-size:12px;opacity:.8}.danger{background:var(--danger);border-color:var(--danger);color:#fff}.danger-card{border-color:#f0bcc6}@media(max-width:720px){.metrics{grid-template-columns:1fr 1fr}.metrics .card:last-child{grid-column:auto}.worker-time{grid-template-columns:1fr 1fr}.worker-time strong{grid-column:1/-1}}
#signature-pad{display:block;width:100%;max-width:100%;height:200px;touch-action:none;user-select:none;border:2px solid #64748b;border-radius:10px;background:white}fieldset{min-width:0}.saved-photos{color:#17613c;font-weight:700}.saved-signature{width:100%;max-width:600px;border:1px solid #ddd}.saved-signature polyline{fill:none;stroke:#17202a;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}@media(max-width:600px){.material-line{grid-template-columns:1fr}.worker-time{flex-wrap:wrap}main{padding:16px 12px}.card{padding:16px}fieldset{padding:12px}.page-head{flex-wrap:wrap}}

.state-new{background:#edf2f7;color:#334155}.state-in_progress{background:#dbeafe;color:#1e40af}.state-waiting_material{background:#fff0c2;color:#854d0e}.state-pending_close,.state-submitted{background:#ede9fe;color:#5b21b6}.state-completed,.state-closed,.state-reviewed,.state-managed{background:#dcfce7;color:#166534}.state-cancelled{background:#fee2e2;color:#991b1b}.state-archived{background:#e5e7eb;color:#374151}

.client-folder{grid-column:1/-1;background:#eee;padding:12px;border-radius:10px;margin:0}.state-pending{background:#fef3c7;color:#854d0e}

.top-actions{display:flex;align-items:center;gap:12px;min-width:0}.top-actions>span{overflow:hidden;text-overflow:ellipsis;max-width:160px}.bell{display:inline-flex;align-items:center;gap:5px;min-width:44px;min-height:44px;justify-content:center}.bell b{background:#a61930;color:white;border-radius:15px;padding:3px 6px;font-size:12px}.notification-new{border-left:4px solid #a61930;padding-left:14px}.notification-urgent{background:#fff0f1;padding:16px;border-radius:8px}.notification-actions{display:flex;flex-wrap:wrap;gap:8px}.install-help{margin:25px 0;padding:15px;background:#f4f6f8;border-radius:8px}.period-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.period-tabs .selected{background:#a61930;color:#fff}[hidden]{display:none!important}

.signature-missing{color:#8a4600;font-weight:600}.photo-item{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;overflow-wrap:anywhere}

/* V11: presentación compacta en móvil y etiquetas de estado accesibles */
.view-tabs{display:flex;flex-wrap:wrap;gap:8px}.view-tabs a{padding:10px 12px;border:1px solid #b8c3ce;border-radius:9px}.view-tabs .selected{background:#263c54;color:white}
.tag{font-weight:700;border:1px solid transparent}.state-new,.state-submitted{background:#dbeafe;color:#123e88;border-color:#82acf1}.state-in_progress{background:#fff0bf;color:#754600;border-color:#e4b21c}.state-waiting_material{background:#ffe2cc;color:#853709;border-color:#f19c59}.state-pending_close{background:#ece0ff;color:#61229b;border-color:#b899df}.state-completed,.state-closed,.state-reviewed{background:#d1f4dc;color:#165b31;border-color:#77bd90}.state-cancelled,.state-archived{background:#e5e7eb;color:#454b55}
.compact-item{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #dde3ea}.compact-item p{margin:5px 0;font-size:.85rem}.compact-item>div:last-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pagination{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:15px 0}.photo-list{display:flex;flex-wrap:wrap;gap:12px}.photo-item{display:flex;flex-direction:column;width:140px;gap:6px}.photo-item span{font-size:.75rem;overflow-wrap:anywhere}.photo-preview{padding:0;overflow:hidden}.photo-preview img,.photo-thumb img{width:130px;height:100px;object-fit:cover;display:block}.photo-thumb{display:inline-flex;flex-direction:column;margin:6px}.photo-thumb span{font-size:.8rem}dialog{max-width:94vw;max-height:92vh;border:0;border-radius:12px}dialog img{display:block;max-width:85vw;max-height:72vh}dialog::backdrop{background:#0009}.install-help{font-size:.8rem;margin:10px auto;max-width:650px}.install-help summary{text-align:center}.map-link{margin-bottom:10px}.draft-status{font-size:.85rem;color:#435568}.form-section{margin:12px 0;padding:10px;border:1px solid #dce1e6;border-radius:10px}.form-section>summary{font-weight:bold;cursor:pointer;padding:7px}.notification-new{border-left:5px solid #a61930;background:#fff5f6}#hours-warning:not(:empty){padding:12px;background:#fff0bf;margin:10px 0}
@media(max-width:700px){main{padding:12px!important}.card{padding:16px!important;margin-bottom:12px!important;border-radius:12px!important}.page-head{gap:10px;margin-bottom:14px}.page-head h1{font-size:1.5rem}.page-head>a{display:none}.repair-grid{display:block}.repair-grid .card{padding:14px!important}.repair-grid h2{font-size:1.05rem;margin:8px 0}.repair-grid p{margin:6px 0;font-size:.88rem}.view-tabs a{flex:1 1 42%;font-size:.86rem}.compact-item{align-items:flex-start}.compact-item>div:last-child{flex-direction:column;align-items:flex-end}.compact-item .button{padding:9px 12px;min-height:42px}.top-actions>span{max-width:140px;overflow-wrap:anywhere}.grid.two{grid-template-columns:1fr}.filters{gap:10px}fieldset{padding:12px;min-width:0}input,select,textarea{max-width:100%;box-sizing:border-box}footer{padding:15px!important}.table-wrap{overflow-x:auto}}

/* V12: mantener el funcionamiento existente, compactar controles y evitar que los campos se salgan del ancho en iOS. */
.back-link{display:inline-block;padding:6px 0 12px;font-weight:650}.inline-action{display:inline-block;margin:6px 8px 6px 0}.today-card{padding:16px;background:#f4f7fb;border:1px solid #dbe2eb;border-radius:10px;margin:12px 0}.today-card details{margin-top:12px}.person-hours{display:block;white-space:normal}.map-link{border-color:#b4cffb;color:#24456c;padding:7px 12px;min-height:44px;font-size:.9rem;max-width:100%}.map-link svg{flex:none}.photo-controls{display:flex;gap:8px}.photo-controls button{flex:1;min-width:0;padding:9px 8px}.photo-controls svg{fill:none;stroke:#df0035;stroke-width:2;flex:none}.compact-photos{padding:12px;margin:12px 0}.compact-photos p{font-size:.85rem;margin:8px 0}.compact-photos .photo-item{width:92px;margin:0}.compact-photos .photo-preview img{width:90px;height:68px}.compact-photos .photo-item span{display:none}.compact-photos .photo-item>button:not(.photo-preview){font-size:.75rem;padding:5px;min-height:36px}.draft-status{margin:4px 0 12px;font-size:.78rem}.grid>* ,form label,.worker-time>*{min-width:0}input,select,textarea{min-width:0;max-width:100%;box-sizing:border-box}input[type=date],input[type=time]{width:100%;min-inline-size:0;max-inline-size:100%;display:block}input::-webkit-date-and-time-value{text-align:left}fieldset{max-width:100%;min-inline-size:0}.table-wrap td{vertical-align:top}
@media(max-width:700px){.worker-time{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:10px 0}.worker-time strong{grid-column:1/-1}.worker-time input{width:100%}input,select,textarea{font-size:16px}.top{padding:10px 12px}.photo-controls{flex-wrap:nowrap}.photo-controls button{font-size:.85rem}.card form>.grid{width:100%}.map-link{font-size:.85rem}form p{margin:8px 0 12px}.form-section{padding:6px}.compact-photos{padding:10px}.compact-photos .photo-list{gap:8px}}
