:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#203d36;background:#f4f6f5;font-synthesis:none;font-size:16px;--green:#143f35;--lime:#d9f29d;--muted:#73857e;--line:#e2e8e4;--red:#b54242;--amber:#986a19}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit}button{border:0}svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.loading{padding:20vh 10vw;color:var(--muted)}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--green);color:#f0f5ef;padding:35px 22px;display:flex;flex-direction:column}.brand{font-size:28px;font-weight:800;letter-spacing:-1.8px;display:flex;align-items:center;gap:10px}.brand small{font-size:11px;letter-spacing:2px;font-weight:500;color:#adc4b8}.brand-mark{background:var(--lime);color:var(--green);width:32px;height:32px;display:grid;place-items:center;border-radius:9px;font-size:23px;letter-spacing:-3px;padding-right:3px}.project{margin:38px 0 25px;padding:17px 14px;border:1px solid #416257;border-radius:12px}.eyebrow{font-size:12px;letter-spacing:1.7px;text-transform:uppercase;font-weight:650}.project .eyebrow{color:#a9c1b5}.project strong{display:block;margin:8px 0 4px;font-size:20px}.project span{font-size:13px;color:#b3c8bc}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:12px;background:none;color:#bfd0c5;padding:13px 14px;border-radius:9px;text-align:left;font-size:14px}.nav button:hover{background:#255144}.nav button.active{background:var(--lime);color:#143f35;font-weight:650}.nav .count{margin-left:auto;font-size:12px;padding:2px 7px;background:#ffffff20;border-radius:5px}.sidefoot{margin-top:auto;padding-top:30px}.profile{display:flex;align-items:center;gap:10px;padding-top:20px;border-top:1px solid #416257}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#31594b;color:#e8f5d9;font-size:13px;font-weight:700}.profile strong{display:block;font-size:14px}.profile small{font-size:12px;color:#b3c8bc}.switch{color:#c6d6cc;background:none;font-size:12px;padding:10px 0}.workspace{min-width:0}.topbar{height:81px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;gap:16px}.breadcrumb{font-size:14px;color:var(--muted)}.breadcrumb b{color:#25473c;font-weight:550}.topright{display:flex;align-items:center;gap:20px;font-size:13px}.client-logo{font-weight:900;font-style:italic;font-family:Georgia,serif;font-size:30px;color:#ce2935;letter-spacing:-2px}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:#eef3ee;border-radius:20px;font-size:12px;color:#527160;white-space:nowrap}.dot{width:6px;height:6px;border-radius:50%;background:#72a14e}.main{padding:34px 40px 50px;max-width:1660px;margin:auto}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.pagehead h1{font-size:30px;letter-spacing:-1.1px;margin:0 0 9px;font-weight:650}.muted{color:var(--muted)}p{line-height:1.6}.pagehead p{font-size:14px;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:11px 16px;background:var(--green);color:white;font-size:14px;font-weight:550;text-decoration:none}.btn.secondary{background:white;color:var(--green);border:1px solid #d7e1d9}.btn.light{background:var(--lime);color:var(--green)}.btn.ghost{background:transparent;color:var(--green);padding:8px}.scope{display:flex;align-items:center;gap:12px;background:#edf2e7;border:1px solid #dce5cc;padding:13px 17px;border-radius:10px;font-size:13px;line-height:1.5;margin-bottom:25px;color:#4b6039}.scope svg{color:#6d853a}.scope strong{font-weight:650}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:25px}.stat{padding:21px;background:white;border:1px solid var(--line);border-radius:13px;text-align:left;color:inherit}.stat:first-child{background:var(--green);color:white;border-color:var(--green)}.statlabel{font-size:13px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);min-height:24px}.stat:first-child .statlabel{color:#c4d3ca}.statvalue{font-size:38px;line-height:1;margin:16px 0 13px;letter-spacing:-1.5px;font-weight:600}.statvalue small{font-size:17px;color:#9ab5a6;letter-spacing:0;font-weight:400}.statfoot{font-size:12px;color:var(--muted)}.stat:first-child .statfoot{color:#c1d6c9}.stat .line{height:4px;background:#31594b;margin-bottom:10px;border-radius:4px}.stat .line i{display:block;height:100%;background:var(--lime);border-radius:4px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:22px;margin-bottom:25px}.panel{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.panelhead{padding:22px 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.panelhead h2{font-size:17px;margin:0;font-weight:600;letter-spacing:-.3px}.panelhead p{font-size:12px;color:var(--muted);margin:6px 0 0}.panelbody{padding:0 24px 22px}.module-row{display:grid;grid-template-columns:155px 1fr 57px;gap:15px;align-items:center;padding:13px 0;font-size:13px;border-top:1px solid #f0f3f0}.bar{height:7px;background:#f0f3ed;border-radius:6px;overflow:hidden;display:flex}.bar i{height:100%;background:#326e58}.bar em{height:100%;background:#c6db9c}.module-row small{color:var(--muted);text-align:right}.legend{display:flex;gap:18px;font-size:12px;color:var(--muted);margin-top:15px}.legend i{display:inline-block;width:7px;height:7px;background:#326e58;border-radius:2px;margin-right:5px}.legend .pale{background:#c6db9c}.milestone{padding:17px 0;display:flex;gap:14px;border-top:1px solid #edf1ee}.calendar{border:1px solid #dfe7dc;border-radius:8px;min-width:48px;height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#4a6544;background:#f6f8f1}.calendar small{font-size:10px;font-weight:600}.calendar b{font-size:21px;line-height:1.2}.milestone strong{font-size:13px;font-weight:600}.milestone p{font-size:12px;color:var(--muted);margin:5px 0 0}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{background:#f9fbf9;color:#809087;font-size:11px;letter-spacing:.7px;text-transform:uppercase;padding:12px 20px;font-weight:600;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:17px 20px;border-bottom:1px solid #edf1ee}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcf8}.rqid{font-size:11px;color:#7c8d80;display:block;margin-bottom:5px;letter-spacing:.5px}.rqtitle{font-weight:550;max-width:350px;line-height:1.4;display:block;background:none;color:inherit;text-align:left;padding:0;font-size:14px}.badge{display:inline-flex;border-radius:5px;padding:5px 8px;font-size:11px;font-weight:550;background:#eff2f0;color:#697a71;white-space:nowrap}.badge.green{background:#e6f2e7;color:#41784b}.badge.amber{background:#fbf1dc;color:#9b752e}.badge.red{background:#fcebed;color:#ad5360}.badge.blue{background:#eaf1fa;color:#5c7ca0}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.search{flex:1;min-width:200px;position:relative}.search input{padding-left:40px;width:100%}.search svg{position:absolute;left:12px;top:12px;color:#8b9a90;width:18px}input,select,textarea{background:white;border:1px solid #dce4de;border-radius:8px;padding:11px 12px;color:#244639;font-size:14px;min-width:0}input:focus,textarea:focus,select:focus{outline:2px solid #8dad70;border-color:transparent}textarea{width:100%;resize:vertical;min-height:95px}.tablefoot{padding:15px 22px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 20px}.tabs button{font-size:13px;background:white;border:1px solid var(--line);border-radius:20px;padding:8px 13px;color:#637a6c}.tabs button.active{background:#e8efdb;border-color:#cedcb3;color:#345835}.empty{padding:45px 25px;text-align:center;color:#798b7e;font-size:14px}.empty svg{width:35px;height:35px;margin-bottom:12px}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:var(--green);color:white;padding:8vh 7vw;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-art:after{content:'';position:absolute;width:500px;height:500px;border:1px solid #6e8d6840;border-radius:50%;bottom:-220px;left:-50px;box-shadow:0 0 0 65px #527c5010,0 0 0 130px #527c5010,0 0 0 195px #527c5010}.login-art h1{font-weight:500;line-height:1.12;letter-spacing:-2px;font-size:clamp(38px,4.6vw,68px);margin:10vh 0 25px}.login-art h1 em{font-style:normal;color:var(--lime)}.login-art p{color:#b8cdc1;max-width:410px;font-size:16px}.login-art footer{margin-top:auto;padding-top:70px;font-size:12px;letter-spacing:1px;color:#b1c6b6}.login-main{display:flex;align-items:center;justify-content:center;padding:40px}.login-card{width:100%;max-width:440px}.login-card h2{font-size:28px;font-weight:600;letter-spacing:-.8px;margin:28px 0 8px}.login-card>p{color:var(--muted);font-size:14px;margin-bottom:30px}.team-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.team-choice button{background:white;border:1px solid #dce5dc;border-radius:12px;padding:23px 16px;text-align:left;color:#5d7567}.team-choice button.selected{border:2px solid #496945;background:#edf3e5;padding:22px 15px}.team-choice strong{display:block;color:#254332;margin:15px 0 5px;font-size:16px}.team-choice small{font-size:12px}.login-card input{width:100%}.login-card .btn{width:100%;margin:18px 0 20px;padding:14px}.login-card .scope{font-size:12px}.field{display:grid;gap:7px;margin-bottom:16px}.field label{font-size:13px;font-weight:550;color:#496050}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.error{color:#b54242;font-size:13px;line-height:1.5}.note{font-size:12px;color:#869489;line-height:1.6}dialog{border:0;padding:0;border-radius:16px;width:min(970px,94vw);max-height:92vh;color:#203d36;box-shadow:0 25px 100px #06231840}dialog::backdrop{background:#102c2766;backdrop-filter:blur(3px)}.detailhead{padding:26px 30px 23px;background:#f6f8f3;border-bottom:1px solid var(--line);position:relative}.detailhead h2{font-size:24px;letter-spacing:-.6px;margin:12px 35px 12px 0;line-height:1.3}.close{position:absolute;right:20px;top:22px;background:white;border:1px solid var(--line);border-radius:50%;width:32px;height:32px;font-size:22px;color:#64806e}.detail-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:#768772}.detailbody{padding:25px 30px}.detailtabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow:auto}.detailtabs button{background:none;border-bottom:2px solid transparent;padding:0 0 13px;color:#7e8d81;font-size:13px;white-space:nowrap}.detailtabs button.active{border-color:#416a38;color:#284b32}.detailbody h3{font-size:16px;font-weight:600;margin:23px 0 12px}.detailbody h3:first-child{margin-top:0}.statusgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:25px}.statusbox{padding:16px;border:1px solid var(--line);border-radius:9px}.statusbox small{display:block;font-size:11px;color:#819181;margin-bottom:10px}.infobox{background:#f5f8f2;border:1px solid #e0e8d9;border-radius:9px;padding:15px 18px;font-size:13px;line-height:1.7;margin:12px 0}.infobox.warn{background:#fff9ec;border-color:#f1e7ce;color:#8e742e}.steps{padding-left:22px;font-size:14px;line-height:1.8}.steps li{margin-bottom:13px;padding-left:6px}.source-table td{padding:9px 12px;font-size:12px;vertical-align:top}.source-table td:first-child{color:#819080;width:160px}.form-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:18px}.form-actions .error{margin-right:auto}.timeline{border-left:1px solid #dfe6dc;margin-left:7px;padding-left:24px}.timeline-item{position:relative;padding-bottom:24px}.timeline-item:before{content:'';position:absolute;left:-29px;top:5px;width:9px;height:9px;border-radius:50%;background:#81956c;border:2px solid white}.timeline-item strong{font-size:13px}.timeline-item small{display:block;color:#8a988b;font-size:11px;margin-top:5px}.timeline-item p{font-size:13px;margin:8px 0}.feedbackcard{border:1px solid var(--line);border-radius:11px;padding:20px;margin-bottom:13px;background:white}.feedbackcard h3{margin:12px 0 8px;font-size:16px}.feedbackcard p{font-size:14px;color:#697e6e;white-space:pre-wrap}.feedbackcard .meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:#869285}.attachments{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.attachments a{font-size:12px;color:#466c43}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:14px 23px;border-radius:10px;background:#143f35;color:white;box-shadow:0 8px 30px #16352b30;z-index:100;font-size:14px;max-width:90vw}.toast.err{background:#a24343}.mobile-menu{display:none}.api-code{font-family:Consolas,monospace;font-size:13px;background:#183c31;color:#daf0cd;padding:20px;border-radius:10px;overflow:auto;line-height:1.7;white-space:pre-wrap}.notice-line{display:flex;align-items:center;gap:8px;color:#799077;font-size:12px;margin-top:17px}.textlink{color:#4c7342;background:none;font-size:13px;padding:0;text-decoration:none}.summarystrip{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;padding:16px 20px;background:#f7f9f4;border-radius:10px;margin-bottom:20px}.summarystrip b{color:#345b35}.datewarning{font-size:10px;color:#a47b33;display:block;margin-top:4px}.nowrap{white-space:nowrap}@media(min-width:1450px){.main{padding-top:40px}.stats{gap:22px}.stat{padding:25px}.dashboard-grid{grid-template-columns:1.6fr 1fr}.module-row{padding:15px 0}}@media(max-width:1100px){.shell{grid-template-columns:215px 1fr}.main{padding:28px 24px}.topbar{padding:0 24px}.sidebar{padding:28px 17px}.stats{gap:10px}.stat{padding:17px}.statlabel{font-size:12px}.dashboard-grid{grid-template-columns:1fr}.module-row{grid-template-columns:150px 1fr 60px}.statusgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.shell{display:block}.sidebar{display:none;position:fixed;z-index:30;width:248px}.shell.menu-open .sidebar{display:flex}.topbar{height:68px;padding:0 18px}.mobile-menu{display:flex;background:none;color:var(--green);padding:5px}.breadcrumb{display:none}.topright .pill{display:none}.main{padding:24px 17px}.pagehead h1{font-size:25px}.pagehead{flex-wrap:wrap;gap:15px}.stats{grid-template-columns:1fr 1fr}.statvalue{font-size:32px}.statfoot{font-size:11px}.scope{align-items:flex-start;font-size:12px}.dashboard-grid{gap:17px}.panelhead{padding:20px 17px}.panelbody{padding:0 17px 20px}.module-row{grid-template-columns:125px 1fr 40px;font-size:12px;gap:10px}.login{display:block}.login-art{padding:25px 25px 32px}.login-art h1{font-size:32px;margin:28px 0 14px;letter-spacing:-1px}.login-art p,.login-art footer{display:none}.login-main{padding:28px 22px}.login-card h2{margin-top:12px;font-size:25px}.login-card>.client-logo{display:none}.login-card>p{margin-bottom:20px}.detailhead,.detailbody{padding:22px 19px}.detailhead h2{font-size:21px}.grid2{grid-template-columns:1fr;gap:0}.statusgrid{grid-template-columns:1fr 1fr;gap:8px}.statusbox{padding:12px}.detailtabs{gap:18px}.form-actions{flex-wrap:wrap}.toolbar select{flex:1;max-width:100%}td,th{padding:13px 15px}.rqtitle{min-width:210px}.topright{gap:10px}.tablefoot{padding:14px 17px}.statlabel svg{display:none}}

/* Cronograma: Gantt */
.gantt-axis{position:relative;height:22px;margin-left:170px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.gantt-tick{position:absolute;transform:translateX(-50%);font-size:11px;color:var(--muted);white-space:nowrap;top:3px}
.gantt-body{position:relative}
.gantt-row{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:stretch;border-top:1px solid #f0f3f0}
.gantt-label{padding:14px 12px 14px 0;align-self:center}
.gantt-label strong{display:block;font-size:13px;font-weight:600}
.gantt-label small{font-size:11px;color:var(--muted)}
.gantt-track{position:relative;height:48px}
.gantt-grid{position:absolute;top:0;bottom:0;width:1px;background:#eef2ee}
.gantt-today{position:absolute;top:0;bottom:0;width:2px;background:#b5424288;z-index:2}
.gantt-today span{position:absolute;top:1px;left:4px;font-size:9px;color:#b54242;font-weight:600}
.gantt-bar{position:absolute;top:11px;height:26px;background:#eef1ec;border:1px solid #e2e8e0;border-radius:7px;overflow:hidden;display:flex;align-items:center;min-width:10px;z-index:1}
.gantt-bar i{height:100%;background:#326e58}
.gantt-bar em{height:100%;background:#c6db9c}
.gantt-review{position:absolute;top:12px;transform:translateX(-50%);color:#a07d1d;font-size:20px;line-height:1;z-index:3}
.legend .rev{background:#d3b451}
/* Cronograma: Calendario */
.cal-month{margin-bottom:26px}
.cal-month:last-child{margin-bottom:0}
.cal-month h3{font-size:15px;font-weight:600;text-transform:capitalize;margin:0 0 12px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-wd{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);text-align:center;padding-bottom:2px}
.cal-cell{min-height:80px;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fbfcfa;overflow:hidden}
.cal-cell.empty{border:0;background:none}
.cal-cell.has{background:#fff}
.cal-cell.today{border-color:#8dad70;box-shadow:inset 0 0 0 1px #8dad70}
.cal-day{font-size:12px;color:#697a71;font-weight:600}
.cal-chip{display:block;margin-top:5px;font-size:10.5px;line-height:1.3;padding:3px 6px;border-radius:5px;white-space:normal}
.cal-chip.deliver{background:#e6f2e7;color:#2f6a3c}
.cal-chip.review{background:#fbf1dc;color:#8a6d1f}
@media(max-width:760px){.gantt-axis{margin-left:96px}.gantt-row{grid-template-columns:96px minmax(0,1fr)}.gantt-label{padding-right:8px}.gantt-tick{font-size:10px}.cal-grid{gap:3px}.cal-cell{min-height:58px;padding:3px}.cal-chip{font-size:9px;padding:2px 3px}.cal-wd{font-size:9px}}

/* Urgentes, filtro activo y clicables del cronograma */
.urgent-panel{border-color:#f0d9c9;margin-bottom:22px}
.urgent-panel .panelhead{background:#fdf3ee;border-bottom:1px solid #f4e0d4}
.urgent-panel h2{color:#9a4b2e}
.pill.red{background:#fbe4dd;color:#b04a2c}
.focusbar{display:flex;align-items:center;gap:10px;background:#eef3ee;border:1px solid #dce5cc;border-radius:9px;padding:11px 15px;font-size:13px;color:#4b6039;margin-bottom:16px}
.focusbar svg{color:#6d853a;width:18px}
.focusbar span{flex:1}
.gantt-row{width:100%;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.gantt-row:hover{background:#f7faf4}
.gantt-row:hover .gantt-bar{box-shadow:0 0 0 2px #b6cf9a}
.cal-chip{border:0;cursor:pointer;width:100%;text-align:left;font:inherit}
.cal-chip:hover{filter:brightness(.96)}
