:root{--primary:#364FDF;--black:#111;--ink:#20232a;--muted:#6b7280;--line:#e2e5eb;--bg:#f4f5f8;--white:#fff;--soft:#eef0ff;--danger:#9f1c1c;--radius:14px;--shadow:0 8px 24px rgba(17,24,39,.06)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,"Helvetica Neue",sans-serif;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin-top:0}h1{font-size:1.85rem;line-height:1.15;margin-bottom:8px}h2{font-size:1.18rem;margin-bottom:6px}h3{font-size:1rem}p{color:var(--muted)}
.app-shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{background:#111;color:#fff;padding:26px 18px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:245px;z-index:20}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:0 9px 28px}.brand img{width:104px;height:42px;object-fit:contain;object-position:left center}.brand small{letter-spacing:2px;color:#b9b9c2;font-size:.65rem}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-section{font-size:.65rem;text-transform:uppercase;letter-spacing:1.5px;color:#777;margin:22px 10px 7px}.nav-item{display:flex;gap:12px;align-items:center;padding:11px 12px;border-radius:9px;color:#c9c9cf;font-size:.85rem;font-weight:600}.nav-item:hover,.nav-item.active{background:var(--primary);color:#fff}.nav-item span{width:20px;text-align:center;font-size:1.05rem}.sidebar-user{margin-top:auto;padding:18px 10px 0;border-top:1px solid #2d2d2d;display:flex;flex-direction:column}.sidebar-user strong{font-size:.82rem}.sidebar-user small{color:#999;font-size:.7rem;margin:3px 0 12px}.sidebar-user a{font-size:.7rem;color:#aeb7ff}.main{grid-column:2;min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.global-search{width:min(470px,50vw);display:flex;align-items:center;gap:9px;background:#f4f5f8;border-radius:9px;padding:9px 13px}.global-search input{border:0;background:none;outline:0;width:100%;font-size:.8rem}.profile{display:flex;align-items:center;gap:10px}.profile div{display:flex;flex-direction:column}.profile strong{font-size:.78rem}.profile small{font-size:.65rem;color:var(--muted)}.avatar{width:34px;height:34px;background:var(--primary);color:#fff;border-radius:50%;display:grid;place-items:center;font-weight:800}.menu-btn{display:none;background:none;border:0;font-size:1.3rem}.content{padding:28px;max-width:1600px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:23px}.page-head p{margin:0;font-size:.85rem}.page-actions{display:flex;gap:9px}.eyebrow{display:block;color:var(--primary);font-weight:800;font-size:.68rem;text-transform:uppercase;letter-spacing:1.4px;margin-bottom:7px}.eyebrow.light{color:#bec5ff}
.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:10px 14px;font-size:.78rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.ghost:hover{border-color:var(--primary);color:var(--primary)}.btn.full,.full{grid-column:1/-1;width:100%}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.alert{padding:12px 15px;border-radius:9px;margin-bottom:16px;font-size:.8rem;font-weight:600}.alert.success{background:var(--soft);color:#2338ad}.alert.danger{background:#f8e8e8;color:var(--danger)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.metric{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px;box-shadow:var(--shadow);display:flex;flex-direction:column}.metric span{font-size:.75rem;color:var(--muted);font-weight:600}.metric strong{font-size:1.7rem;color:#111;margin:8px 0}.metric small{color:var(--muted);font-size:.68rem}.card-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:16px}.card-head p{font-size:.75rem;margin:0}.table-card{padding:0;overflow:hidden}.table-card .card-head{padding:20px 20px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.75rem}th{background:#f5f6f8;color:#6a707b;text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.5px;padding:11px 14px}td{padding:13px 14px;border-top:1px solid var(--line);vertical-align:middle}tbody tr:hover{background:#fafaff}.number{font-weight:800;color:#111;white-space:nowrap}.pill{display:inline-flex;padding:5px 9px;background:var(--soft);color:#263cbc;border-radius:99px;font-size:.65rem;font-weight:800}.empty{text-align:center;padding:35px!important;color:var(--muted)}.empty.compact{padding:18px!important;border:1px dashed var(--line);border-radius:9px}.muted,.small-note{color:var(--muted);font-size:.7rem}
.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:13px}.stack.top-border{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}label{display:flex;flex-direction:column;gap:6px;font-size:.72rem;font-weight:700;color:#424752}input,select,textarea{border:1px solid #d6dae2;border-radius:8px;padding:10px 11px;background:#fff;color:#222;outline:none;font-size:.78rem;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(54,79,223,.1)}textarea{min-height:84px;resize:vertical}label small{font-weight:400;color:var(--muted)}label.check{flex-direction:row;align-items:center}.check input{width:auto}.section-label{grid-column:1/-1;font-size:.7rem;text-transform:uppercase;color:var(--primary);font-weight:800;padding-top:8px}.request-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.request-stack{display:grid;gap:0}.form-section{padding:22px}.single-form-head{display:flex;justify-content:space-between;gap:15px;padding-bottom:20px}.single-form-head p,.form-block-head p{margin:0;font-size:.75rem}.form-block{padding:22px 0}.form-block+.form-block{border-top:1px solid var(--line)}.form-block:first-of-type{padding-top:0}.form-block:last-child{padding-bottom:0}.form-block-head{margin-bottom:17px}.section-head{display:flex;justify-content:space-between;gap:15px;margin-bottom:19px}.section-head p{margin:0;font-size:.75rem}.invoice-head,.service-line{display:grid;grid-template-columns:70px minmax(230px,1fr) 170px 90px 35px;gap:9px;align-items:center}.invoice-head{padding:0 5px 8px;font-size:.64rem;text-transform:uppercase;color:var(--muted);font-weight:800}.service-line{padding:9px 0;border-top:1px solid var(--line)}.service-line:first-child{border-top:0}.line-hours{font-size:.78rem;text-align:right}.remove-line{border:0;background:#f1f2f5;color:#777;border-radius:7px;width:31px;height:31px;font-size:1.1rem}.upload-box{border:1px dashed #aeb5c4;border-radius:11px;padding:24px;text-align:center;align-items:center;background:#fafbff}.upload-box input{border:0;width:auto}.request-summary{position:sticky;top:92px}.request-summary h2{margin-bottom:15px}.summary-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.72rem}.summary-row span{max-width:190px}.summary-row.total{font-size:.9rem;border-top:2px solid #111;margin-top:6px;border-bottom:0}.summary-row.total strong{color:var(--primary);font-size:1.2rem}.validation-list{display:grid;gap:7px;font-size:.68rem;color:#515664;margin:16px 0}.request-summary>small{display:block;text-align:center;margin-top:10px;color:var(--muted);font-size:.63rem}
.filter-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.filter-bar form{display:flex;gap:9px;flex:1}.filter-bar input{max-width:420px}.filter-bar span{font-size:.7rem;color:var(--muted)}.pipeline-board{display:flex;gap:14px;overflow-x:auto;padding:2px 2px 16px;min-height:650px}.pipeline-column{background:#e9ebf0;border-radius:12px;min-width:275px;width:275px;padding:12px;align-self:stretch}.pipeline-column>header{display:flex;justify-content:space-between;gap:10px;padding:5px 4px 13px}.pipeline-column h3{font-size:.78rem;margin:0}.pipeline-column header small{font-size:.6rem;color:var(--muted)}.pipeline-column header>span{background:#fff;border-radius:20px;padding:4px 8px;font-size:.65rem;font-weight:800}.pipeline-drop{min-height:560px;display:grid;align-content:start;gap:9px}.pipeline-column.over{outline:2px solid var(--primary);background:var(--soft)}.pipeline-card{background:#fff;border:1px solid #dce0e7;border-radius:10px;padding:13px;box-shadow:0 3px 8px rgba(0,0,0,.04)}.pipeline-card.dragging{opacity:.4}.pipeline-card h4{font-size:.75rem;margin:8px 0 4px;line-height:1.35}.pipeline-card>small{font-size:.62rem;color:var(--muted)}.card-code{font-size:.62rem;font-weight:800;color:var(--primary);display:flex;justify-content:space-between}.priority{font-size:.55rem;color:#6b7280}.priority.crítica{color:var(--danger)}.pipeline-meta{display:flex;justify-content:space-between;margin-top:12px;font-size:.62rem}.due{font-size:.58rem;color:#777;border-top:1px solid var(--line);margin-top:9px;padding-top:8px}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}.detail-main,.detail-side{display:grid;gap:17px;align-content:start}.detail-header{display:flex;justify-content:space-between;gap:20px}.detail-header h2{margin-top:12px}.detail-header p{font-size:.78rem}.estimate-card{min-width:140px;background:#111;color:#fff;border-radius:11px;padding:14px;display:flex;flex-direction:column}.estimate-card span,.estimate-card small{font-size:.62rem;color:#b9b9c2}.estimate-card strong{font-size:1.45rem;margin:6px 0;color:#fff}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.info-grid>div{background:#f7f8fa;border-radius:8px;padding:11px;display:flex;flex-direction:column;gap:4px}.info-grid span{font-size:.62rem;color:var(--muted)}.info-grid b{font-size:.72rem}.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:18px 1fr;gap:9px;padding-bottom:16px;position:relative}.timeline-item>span{width:10px;height:10px;border:3px solid var(--primary);border-radius:50%;margin-top:4px}.timeline-item:not(:last-child):before{content:"";position:absolute;left:4px;top:14px;bottom:0;border-left:1px solid #c7ccda}.timeline-item div{display:flex;flex-direction:column}.timeline-item b{font-size:.72rem}.timeline-item small{font-size:.62rem;color:var(--muted)}.timeline-item p{font-size:.7rem;margin:5px 0 0}.time-row,.file-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid var(--line)}.time-row div,.file-row div{display:flex;flex-direction:column}.time-row b,.file-row b{font-size:.7rem}.time-row small,.file-row small{font-size:.6rem;color:var(--muted)}.file-row>span{margin-right:8px;color:var(--primary)}.file-row div{margin-right:auto}.tabs{display:flex;gap:5px;background:#e9ebef;border-radius:10px;padding:5px;margin-bottom:16px;overflow:auto}.tabs a{padding:9px 13px;border-radius:7px;font-size:.7rem;font-weight:700;white-space:nowrap}.tabs a.active{background:#fff;color:var(--primary);box-shadow:0 2px 7px rgba(0,0,0,.07)}.config-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:start}.config-grid aside{position:sticky;top:90px}.config-grid tbody tr{cursor:pointer}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.install-body{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#e8eaff,#f5f5f7)}.install-card{width:min(720px,100%);background:#fff;border-radius:18px;padding:34px;box-shadow:0 20px 60px rgba(25,31,70,.15)}.install-logo{width:125px;height:60px;object-fit:contain;object-position:left;margin-bottom:22px}.install-card>p{font-size:.8rem}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-brand-panel{background:linear-gradient(145deg,#111 35%,#2438b7);color:#fff;padding:55px;display:flex;flex-direction:column;justify-content:space-between}.login-logo{width:140px;height:70px;object-fit:contain;object-position:left top}.login-brand-panel h1{font-size:3.2rem;max-width:620px}.login-brand-panel p{color:#d8dcf2;max-width:590px}.login-brand-panel small{color:#b3b8d2}.login-form-panel{display:grid;place-items:center;padding:35px;background:#fff}.login-form{width:min(390px,100%);display:flex;flex-direction:column;gap:15px}.login-form h2{font-size:1.7rem;margin:0}.login-form p{font-size:.78rem}.secure-note{text-align:center;color:var(--muted);font-size:.65rem;margin-top:8px}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.request-layout,.detail-grid,.config-grid{grid-template-columns:1fr}.request-summary,.config-grid aside{position:static}.report-grid{grid-template-columns:1fr}.invoice-head{display:none}.service-line{grid-template-columns:70px 1fr 150px 85px 35px}.login-brand-panel h1{font-size:2.4rem}}
@media(max-width:760px){.app-shell{display:block}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{grid-column:auto}.menu-btn{display:block}.topbar{padding:0 16px}.global-search{display:none}.content{padding:18px}.page-head{align-items:flex-start;flex-direction:column}.page-actions{width:100%}.page-actions .btn{flex:1}.metric-grid{grid-template-columns:1fr 1fr}.form-grid.two,.info-grid{grid-template-columns:1fr}.service-line{grid-template-columns:65px 1fr 35px}.service-line .complexity{grid-column:2}.line-hours{grid-column:2}.remove-line{grid-column:3;grid-row:1}.login-page{grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-panel{min-height:100vh}.detail-header{flex-direction:column}.pipeline-column{min-width:250px}.install-card{padding:22px}}
@media(max-width:480px){.metric-grid{grid-template-columns:1fr}.content{padding:14px}.card{padding:16px}.service-line{grid-template-columns:55px 1fr 34px}.profile div{display:none}}
.logout-link{font-size:.7rem;color:#aeb7ff;border:0;background:none;padding:0;text-align:left;cursor:pointer}
/* Author-level flex/grid styles must never override the HTML hidden attribute. */
[hidden]{display:none!important}
.request-layout>*{min-width:0}.service-entry{padding:16px 0;border-top:1px solid var(--line)}.service-entry:first-child{border-top:0;padding-top:0}.service-entry .service-line{grid-template-columns:70px minmax(0,1fr) 130px auto 32px;align-items:end;border:0}.service-entry .service-line input,.service-entry .service-line select{min-width:0}.service-entry .service-line select{width:100%}.service-entry .service-line .line-hours{padding-bottom:11px;white-space:nowrap}.service-entry .remove-line{margin-bottom:5px}.service-properties{margin-top:16px;background:#f8f9fd;border-radius:9px;padding:16px}.service-properties select[multiple]{min-height:110px}.delivery-preview{padding:18px 0;border-top:1px solid var(--line);margin-top:12px}.delivery-preview>span{font-size:.75rem;color:var(--muted)}.delivery-preview>strong{display:block;color:var(--primary);font-size:1.25rem;margin:6px 0}.delivery-preview p,.calendar-note{font-size:.76rem;margin:7px 0}.deadline-warning{color:#8a3b00!important;background:#fff3df;border-radius:6px;padding:10px}.calendar-note{margin:0 0 18px}.delivery-result{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:20px}.delivery-result p{margin:8px 0 0;font-size:.8rem}.delivery-result>div:last-child{display:flex;flex-direction:column;gap:8px;font-size:.8rem}.delivery-result small{color:var(--muted)}.work-metrics{grid-template-columns:repeat(3,1fr)}.work-settings{margin-top:20px}.work-settings summary{cursor:pointer;font-weight:700}.work-settings form{margin-top:18px}.btn:disabled{opacity:.5;cursor:default}
@media(max-width:1250px){.request-layout{grid-template-columns:1fr}.request-summary{position:static}}
@media(max-width:760px){.service-entry .service-line{grid-template-columns:65px minmax(0,1fr) 32px}.service-entry .complexity-label{grid-column:2}.service-entry .line-hours{grid-column:2}.service-entry .remove-line{grid-column:3;grid-row:1}.delivery-result,.work-metrics{grid-template-columns:1fr}.service-properties{padding:12px}}
/* Team management and continuous form */
.service-entry .service-line{grid-template-columns:100px minmax(180px,1fr) auto auto}.profile-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:24px;max-width:1000px}.notification{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.notification.unread{border-left:4px solid #d26b1e}.notification.read{opacity:.8}.assignment-row{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:8px;align-items:center}.assignment-row label{font-size:12px}.tabs{overflow-x:auto;flex-wrap:wrap}.config-grid fieldset{border:1px solid #e0e3e8;padding:14px;border-radius:10px}.profile{color:inherit;text-decoration:none}.report-grid+.card{margin-top:24px}
@media(max-width:700px){.profile-layout{grid-template-columns:1fr}.service-entry .service-line{grid-template-columns:80px minmax(0,1fr) 32px}.service-entry .line-hours{grid-column:1/3}.service-entry .remove-line{grid-column:3;grid-row:1}.notification{align-items:flex-start;flex-direction:column}.assignment-row{grid-template-columns:minmax(0,1fr) 90px}}
/* Readable report spacing and task cards on phones. */
.table-card>h2,.table-card>h3{padding:20px 20px 0}.table-card>p{padding:0 20px 16px}.content>.card+.card,.content>.report-grid{margin-top:20px}.alert.warning{background:#fff3df;color:#783600}.sidebar{overflow-y:auto}.sidebar nav{flex:1}.my-tasks-table td:nth-child(2){min-width:220px}
@media(max-width:700px){.my-tasks-table table,.my-tasks-table tbody,.my-tasks-table tr,.my-tasks-table td{display:block;width:100%}.my-tasks-table thead{display:none}.my-tasks-table td{padding:8px 0;border:0}.my-tasks-table td:before{content:attr(data-label);display:block;font-size:10px;font-weight:700;color:var(--muted);margin-bottom:4px}.my-tasks-table tr{border-bottom:1px solid var(--line);padding:10px 0}.my-tasks-table .table-wrap{overflow:visible}}
.my-tasks-table .deadline-warning{display:inline-block;margin-top:6px}
.btn.danger{border-color:#a52222;color:#a52222;background:#fff5f5}.btn.danger:hover{background:#a52222;color:#fff}
form[id$="-editor"]{scroll-margin-top:90px}
.resource-link-box{border:1px dashed #aeb5c4;border-radius:11px;padding:20px;background:#fafbff}.resource-link-box small{font-weight:400;color:var(--muted)}
.report-filters{margin-bottom:20px}.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:13px}.report-search{grid-column:span 2}.report-filter-actions{display:flex;align-items:center;gap:10px;margin-top:16px}.report-filter-actions span{margin-left:auto;color:var(--muted);font-size:.72rem}.report-metrics .metric-danger{color:var(--danger)}.report-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.report-chart{min-width:0}.report-chart .card-head{margin-bottom:18px}.chart-list{display:grid;gap:14px}.chart-row>div{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;font-size:.75rem}.chart-row>div span{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-row>div b{white-space:nowrap}.chart-row progress{display:block;width:100%;height:10px;margin:6px 0 3px;border:0;border-radius:99px;overflow:hidden;background:#eaecf2}.chart-row progress::-webkit-progress-bar{background:#eaecf2;border-radius:99px}.chart-row progress::-webkit-progress-value{background:var(--primary);border-radius:99px}.chart-row progress::-moz-progress-bar{background:var(--primary);border-radius:99px}.chart-row small{display:block;color:var(--muted);font-size:.64rem}.chart-load progress::-webkit-progress-value{background:#9f4fde}.chart-load progress::-moz-progress-bar{background:#9f4fde}.chart-company progress::-webkit-progress-value{background:#188c7c}.chart-company progress::-moz-progress-bar{background:#188c7c}.chart-service progress::-webkit-progress-value{background:#d26b1e}.chart-service progress::-moz-progress-bar{background:#d26b1e}.chart-area progress::-webkit-progress-value{background:#2879ba}.chart-area progress::-moz-progress-bar{background:#2879ba}.chart-time progress::-webkit-progress-value{background:#cc3f68}.chart-time progress::-moz-progress-bar{background:#cc3f68}.report-detail{margin-top:20px}.report-detail td:first-child{min-width:190px}
@media(max-width:1100px){.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.report-dashboard-grid{grid-template-columns:1fr}.report-filter-grid{grid-template-columns:1fr}.report-search{grid-column:auto}.report-filter-actions{align-items:stretch;flex-wrap:wrap}.report-filter-actions span{width:100%;margin:0}.report-filter-actions .btn{flex:1}}
