:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182431;background:#fff;--navy:#142f4d;--navy-dark:#0d2238;--line:#e5eaf0;--orange:#d8752c;--blue:#347ca5;--purple:#806ab0;--green:#39866d}
*{box-sizing:border-box}body{margin:0;background:#fff}button,input,select,textarea{font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center;padding:22px;background:#f7f9fb}.login-card{width:min(430px,100%);padding:36px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 22px 65px #142f4d18}.logo{font-size:31px;font-weight:800;letter-spacing:.07em;color:#101820}.login-card>small{letter-spacing:.16em;color:#697989}.login-card h1{margin:30px 0 7px;color:var(--navy);font-size:26px}.muted{color:#71808d}.field{display:grid;gap:7px;margin:15px 0;font-size:13px;font-weight:700}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid #d3dce4;border-radius:10px;background:#fff;color:#182431;outline:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:#527a9c;box-shadow:0 0 0 3px #347ca51c}.field textarea{min-height:96px;resize:vertical}.primary{border:0;border-radius:10px;background:var(--navy);color:#fff;padding:11px 16px;font-weight:750}.primary:hover{background:var(--navy-dark)}.login-card .primary{width:100%;margin-top:9px}.error{padding:10px;border-radius:9px;background:#fff0ef;color:#9d2c23;font-size:12px}.shell{min-height:100vh;display:grid;grid-template-columns:252px 1fr}.side{position:sticky;top:0;height:100vh;padding:27px 18px 20px;background:var(--navy);color:#fff;display:flex;flex-direction:column;z-index:20}.brand{padding:0 10px;font-size:22px;font-weight:800;letter-spacing:.08em;color:#fff}.brand small{display:block;margin-top:5px;color:#fff;font-size:10px;font-weight:600;letter-spacing:.16em;opacity:.75}.nav{display:grid;gap:6px;margin-top:40px}.nav button{padding:12px 13px;border:0;border-radius:10px;background:transparent;color:#dbe6f0;text-align:left;font-weight:600}.nav button:hover{background:#ffffff12;color:#fff}.nav button.active{background:#fff;color:var(--navy);font-weight:800}.user{margin-top:auto;padding:18px 10px 0;border-top:1px solid #ffffff24}.user button{width:100%;padding:0;border:0;background:transparent;color:#fff;text-align:left}.user strong,.user small{display:block}.user small{margin-top:3px;color:#fff;opacity:.72}.work{min-width:0;background:#fff}.top{height:78px;padding:0 30px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px}.top h1{margin:0;font-size:21px;color:var(--navy);flex:1}.content{max-width:1440px;padding:28px 30px;display:grid;gap:18px}.hero{padding:28px 30px;border-radius:18px;background:linear-gradient(135deg,var(--navy),#1c476d);color:#fff;box-shadow:0 14px 30px #142f4d20}.hero small{font-weight:750;letter-spacing:.13em;opacity:.78}.hero h2{margin:8px 0 6px;font-size:28px}.hero p{margin:0;color:#fff;opacity:.86}.progress-wrap{margin-top:24px}.progress-copy{display:flex;justify-content:space-between;margin-bottom:8px;font-size:12px;font-weight:700}.progress{height:7px;border-radius:20px;background:#ffffff35;overflow:hidden}.progress span{display:block;height:100%;border-radius:20px;background:#fff}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card{padding:18px;border-radius:15px;background:#fff;border:1px solid var(--line)}.status-card{min-height:112px;border:0;color:#fff;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 9px 24px #1d2b3814}.status-card strong{display:block;font-size:29px;color:#fff}.status-card span{color:#fff;font-weight:700}.status-card.orange{background:var(--orange)}.status-card.blue{background:var(--blue)}.status-card.purple{background:var(--purple)}.status-card.green{background:var(--green)}.panel{padding:21px;border-radius:15px;background:#fff;border:1px solid var(--line);box-shadow:0 7px 22px #142f4d0a}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel h2{margin:0;font-size:18px;color:var(--navy)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:14px 12px;border-bottom:1px solid #edf0f3;text-align:left;vertical-align:middle}th{color:#657381;font-size:11px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}td strong{color:#182431}.request-description{display:block;max-width:340px;margin-top:4px;white-space:normal;font-weight:400}.pill{display:inline-block;padding:5px 9px;border-radius:20px;background:#edf3f8;color:var(--navy);font-weight:750}.compact{padding:8px 10px;font-size:12px;white-space:nowrap}.empty{padding:36px;text-align:center;color:#78868c}.modal{position:fixed;inset:0;background:#091b2db5;display:grid;place-items:center;padding:18px;z-index:40}.modal-card{width:min(650px,100%);max-height:92vh;overflow:auto;padding:25px;border-radius:17px;background:#fff;box-shadow:0 24px 70px #0003}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;color:var(--navy)}.modal-head button{border:0;background:none;font-size:24px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:13px}.checks{display:flex;gap:20px;padding:12px;border:1px solid #d3dce4;border-radius:10px}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:19px}.secondary{padding:10px 14px;border:1px solid #ccd7df;border-radius:10px;background:#fff;color:var(--navy);font-weight:700}.notice{padding:12px 14px;border-radius:10px;background:#e8f5ee;color:#276941}.menu{display:none}.menu-overlay{display:none}
.notification-button{width:35px;height:35px;border:0;border-radius:50%;background:#edf3f7;color:var(--orange)}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.text-button{border:0;background:none;color:var(--blue);font-weight:750}.list-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 4px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left}.list-row span,.list-row strong,.list-row small{display:block}.list-row small{margin-top:4px;color:#71808d}.list-row em{font-size:11px;color:var(--navy);font-style:normal;font-weight:750}.filters{display:grid;grid-template-columns:1fr 210px;gap:10px;margin-bottom:16px}.filters input,.filters select{padding:11px 12px;border:1px solid #d3dce4;border-radius:10px;background:#fff}.request-list{display:grid;gap:10px}.request-card{width:100%;display:grid;grid-template-columns:1fr auto;gap:18px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left}.request-card:hover{border-color:#9fb4c5;box-shadow:0 8px 22px #142f4d0c}.request-code{color:var(--blue);font-size:11px;font-weight:850;letter-spacing:.08em}.request-card h3{margin:4px 0 5px;color:var(--navy)}.request-card p{margin:0;color:#667684}.request-meta{min-width:190px;display:grid;justify-items:end;gap:4px;font-size:12px;color:#667684}.request-meta em{margin-top:4px;padding:5px 9px;border-radius:20px;background:#edf3f8;color:var(--navy);font-style:normal;font-weight:750}.detail-card{width:min(780px,100%)}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.detail-grid div{padding:12px;border-radius:10px;background:#f5f8fa}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{margin-bottom:4px;color:#71808d}.detail-section{padding:16px 0;border-top:1px solid var(--line)}.detail-section h3{margin:0 0 10px;color:var(--navy)}.return-reason{padding:11px;border-radius:9px;background:#fff3e8;color:#8d4e18}.file-button{padding:8px 11px;border-radius:9px;background:var(--navy);color:#fff;font-size:12px;font-weight:750;cursor:pointer}.document-row{width:100%;display:flex;justify-content:space-between;padding:11px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left}.timeline>div{display:grid;grid-template-columns:14px 1fr;gap:8px}.timeline i{width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--blue)}.timeline p{margin:0 0 15px}.timeline strong,.timeline span,.timeline small{display:block}.timeline span,.timeline small{margin-top:3px;color:#71808d;font-size:12px}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.kanban-column{padding:12px;border-radius:13px;background:#f5f7f9}.kanban-column>h3{display:flex;justify-content:space-between;margin:0 0 12px;color:var(--navy);font-size:14px}.kanban-column>h3 span{padding:2px 7px;border-radius:20px;background:#fff}.task-card{margin-bottom:10px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}.task-card h4{margin:9px 0 5px;color:var(--navy)}.task-card p{margin:5px 0}.task-card small{color:#71808d}.task-note{padding:8px;border-radius:8px;background:#f2f6f8;font-size:12px}.task-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}.task-actions button{padding:6px 8px;border:1px solid #d3dce4;border-radius:7px;background:#fff;color:var(--navy);font-size:11px}.review-list{display:grid;gap:10px}.review-card{display:grid;grid-template-columns:200px 1fr 50px;align-items:center;gap:15px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left}.review-card strong,.review-card span{display:block}.review-card span{margin-top:4px;color:#71808d;font-size:12px}.review-progress{height:7px;border-radius:20px;background:#e8edf1;overflow:hidden}.review-progress span{display:block;height:100%;background:var(--green)}.check-list{display:grid;gap:9px;margin-top:18px}.check-list label{display:flex;gap:12px;padding:13px;border:1px solid var(--line);border-radius:10px}.check-list label.done{background:#edf7f2}.check-list input{width:19px;height:19px}.check-list strong,.check-list small{display:block}.check-list small{margin-top:4px;color:#71808d}.people-grid,.document-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.person-card{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:12px}.person-card.inactive{opacity:.5}.person-card h3,.person-card p{margin:0 0 5px}.person-card small{color:#71808d}.person-card>button{border:0;background:none;color:var(--blue)}.avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;font-weight:850}.document-card{display:flex;gap:13px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left}.document-card strong,.document-card p,.document-card small{display:block;margin:0}.document-card p,.document-card small{margin-top:4px;color:#71808d}.file-icon{display:grid;place-items:center;min-width:46px;height:50px;border-radius:9px;background:#eef3f7;color:var(--navy);font-size:10px;font-weight:850}.small-modal{width:min(440px,100%)}.notification-list{display:grid;gap:7px;margin-top:16px}.notification-list button{padding:12px;border:0;border-radius:9px;background:#edf4f8;text-align:left}.notification-list button.read{background:#f7f8f9;color:#71808d}.notification-list strong,.notification-list small{display:block}.notification-list small{margin-top:4px}.full{width:100%;margin-top:10px}.danger{padding:11px;border:0;border-radius:10px;background:#a63832;color:#fff;font-weight:750}
@media(max-width:900px){.shell{grid-template-columns:220px 1fr}.cards{grid-template-columns:1fr 1fr}.content{padding:22px}.top{padding:0 22px}.dashboard-grid,.kanban{grid-template-columns:1fr}.people-grid,.document-grid{grid-template-columns:1fr}}
@media(max-width:700px){.shell{display:block}.side{position:fixed;left:-280px;width:268px;transition:left .22s ease;box-shadow:16px 0 40px #07132130}.side.open{left:0}.side.open~.work .menu-overlay{display:block;position:fixed;inset:0;background:#07132166;z-index:15}.menu{display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:10px;background:#f1f5f8;color:var(--navy);font-size:20px}.top{height:68px;padding:0 15px}.top h1{font-size:18px}.top .primary{padding:10px 12px;font-size:12px}.content{padding:15px;gap:14px}.hero{padding:22px 20px}.hero h2{font-size:23px}.cards{grid-template-columns:1fr 1fr;gap:10px}.status-card{min-height:100px;padding:15px}.status-card strong{font-size:25px}.panel{padding:15px}table,thead,tbody,tr,th,td{display:block}thead{display:none}tbody{display:grid;gap:12px}tr{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}td{padding:5px 0;border:0;white-space:normal}td:first-child{font-size:11px;font-weight:800;color:#71808d}.request-description{max-width:none}.compact{margin-top:5px;width:100%}.modal{align-items:end;padding:0}.modal-card{width:100%;max-height:92vh;border-radius:20px 20px 0 0;padding:21px}.grid2{grid-template-columns:1fr}.checks{flex-direction:column;gap:12px}}
@media(max-width:700px){.filters{grid-template-columns:1fr}.request-card{grid-template-columns:1fr}.request-meta{min-width:0;justify-items:start}.detail-grid{grid-template-columns:1fr 1fr}.review-card{grid-template-columns:1fr 55px}.review-progress{grid-column:1/-1;grid-row:2}.dashboard-grid,.kanban{grid-template-columns:1fr}.people-grid,.document-grid{grid-template-columns:1fr}}
@media(max-width:390px){.cards{grid-template-columns:1fr 1fr}.status-card{min-height:92px}.status-card span{font-size:13px}.detail-grid{grid-template-columns:1fr}}
.login{background:#f5f7f8}.login-card{width:min(430px,calc(100% - 28px));padding:38px 34px 34px;text-align:center;border-radius:17px;box-shadow:0 24px 55px #19364c1c}.login-logo{display:block;width:235px;max-width:80%;height:auto;margin:0 auto 12px}.login-card>small{display:block;color:var(--navy);font-size:11px;font-weight:800;letter-spacing:.18em}.login-card h1{margin:24px 0 6px;font-size:25px;font-weight:550}.login-card p{margin:0 0 22px}.login-card .field{text-align:left}
.side{padding:25px 18px 20px}.brand{padding:0 10px 25px;border-bottom:1px solid #ffffff22}.brand img{display:block;width:190px;max-width:100%;height:auto;filter:brightness(0) invert(1)}.brand small{margin-top:7px;color:#c4d1dd}.nav{margin-top:23px}.nav button{min-height:45px;display:flex;align-items:center;gap:12px;color:#c9d5df}.nav button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav button.active{background:#ffffff14;color:#fff;box-shadow:inset 3px 0 #7fc1ca}.nav button.active svg{color:#7fc1ca}.user{padding:14px 8px 0}.user button{display:flex;align-items:center;gap:10px}.user button>b{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#55749a}.user button>span{display:grid}.user small{font-size:10px}
.top{height:88px;padding:0 38px}.header-title{flex:1}.header-title small{color:#71808d;font-size:11px;text-transform:capitalize}.header-title h1{margin-top:3px}.header-actions{display:flex;align-items:center;gap:9px}.notification-button{width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff}.content{margin:auto;padding:30px 38px 50px}.hero{padding:28px 30px;box-shadow:none}.hero h2{font-size:27px;font-weight:600}.progress-wrap{padding-top:18px;border-top:1px solid #ffffff55}.status-card{min-height:108px;box-shadow:none}.panel{box-shadow:none}.detail-card{position:absolute;inset:0 0 0 auto;width:min(620px,100%);max-height:none;height:100%;border-radius:0;background:#f5f8f9}.detail-card .modal-head{margin:-25px -25px 0;padding:20px 25px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:-25px;z-index:2}.detail-card .actions{position:sticky;bottom:-25px;margin:15px -25px -25px;padding:14px 25px;background:#fff;border-top:1px solid var(--line)}.detail-grid div,.detail-section{background:#fff}.detail-section{margin-top:10px;padding:16px;border:1px solid var(--line);border-radius:11px}.request-card{background:#f8fafb}.request-card:hover{background:#eef4f6}.request-card h3{font-size:14px}.kanban-column{background:#f3f7f8}
@media(max-width:760px){.top{height:76px;padding:0 15px}.content{padding:16px 13px 35px}.brand img{width:190px}.notification-button{display:none}.header-title h1{font-size:21px}.detail-card{border-radius:0}.cards{grid-template-columns:1fr 1fr}.status-card{min-height:95px}.side{width:252px}.side.open~.work .menu-overlay{backdrop-filter:blur(2px)}}

/* Colores de estado finales */
.status-card{box-shadow:0 8px 20px #142f4d12}
.status-card.orange{background:rgba(216,117,44,.88)}
.status-card.blue{background:rgba(52,124,165,.88)}
.status-card.purple{background:rgba(128,106,176,.88)}
.status-card.green{background:rgba(57,134,109,.88)}
.status-tag{display:inline-flex;align-items:center;width:max-content;padding:5px 10px;border:1px solid transparent;border-radius:20px;font-size:11px;font-style:normal;font-weight:800;line-height:1.2}
.status-tag.neutral{background:#edf2f5;color:#506272;border-color:#dce4e9}
.status-tag.orange{background:#fff0e3;color:#a95317;border-color:#f3cba9}
.status-tag.blue{background:#e5f2f8;color:#236c94;border-color:#b8dbe9}
.status-tag.purple{background:#eee9f7;color:#674e9a;border-color:#d3c7e8}
.status-tag.green{background:#e5f3ed;color:#28735d;border-color:#b9ddcf}
.status-tag.red{background:#fae8e7;color:#9c3d36;border-color:#edc0bc}
.task-actions button{font-weight:750}
.task-actions button.orange{background:#fff0e3;color:#a95317;border-color:#f3cba9}
.task-actions button.blue{background:#e5f2f8;color:#236c94;border-color:#b8dbe9}
.task-actions button.green{background:#e5f3ed;color:#28735d;border-color:#b9ddcf}
.notice{animation:notice-life 3.5s ease forwards}
@keyframes notice-life{0%,78%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-5px)}}
.task-icon{width:15px;height:15px;flex:0 0 15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kanban-title,.task-meta,.task-priority,.task-actions button{display:inline-flex;align-items:center;gap:6px}
.kanban-column>h3 .kanban-title{padding:0;background:transparent;font-weight:800}
.kanban-column.orange>h3 .kanban-title{color:#a95317}
.kanban-column.blue>h3 .kanban-title{color:#236c94}
.kanban-column.green>h3 .kanban-title{color:#28735d}
.task-priority{width:max-content;padding:5px 9px;border:1px solid transparent;border-radius:20px;font-size:11px;font-weight:800}
.task-priority.neutral{background:#edf2f5;color:#506272;border-color:#dce4e9}
.task-priority.orange{background:#fff0e3;color:#a95317;border-color:#f3cba9}
.task-priority.red{background:#fae8e7;color:#9c3d36;border-color:#edc0bc}
.task-card .task-meta{display:flex;margin:6px 0;color:#667684}
.task-note{display:flex;align-items:flex-start;gap:7px}
.task-note .task-icon{margin-top:1px}

/* Ajustes móviles finales */
html,body{max-width:100%;overflow-x:hidden}
button{touch-action:manipulation}
.document-card>div,.list-row>span,.request-card>div{min-width:0}
.document-card strong,.document-card p,.request-card h3,.request-card p,.task-card h4,.task-note span{overflow-wrap:anywhere}
@media(max-width:760px){
  .login{min-height:100dvh;padding:14px}
  .login-card{width:100%;padding:28px 22px}
  .login-logo{width:205px}
  .login-card h1{font-size:22px;line-height:1.2}
  .field input,.field select,.field textarea,.filters input,.filters select{font-size:16px}
  .shell{min-height:100dvh}
  .side{height:100dvh;padding-bottom:max(20px,env(safe-area-inset-bottom))}
  .top{position:sticky;top:0;z-index:12;height:72px;padding:0 12px}
  .header-title small{font-size:10px}
  .header-title h1{font-size:19px}
  .header-actions{gap:6px}
  .notification-button{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px}
  .top .primary{max-width:128px;padding:9px 10px;white-space:nowrap}
  .content{width:100%;padding:14px 12px calc(30px + env(safe-area-inset-bottom))}
  .hero{padding:20px 17px}
  .hero h2{font-size:22px}
  .panel{min-width:0;padding:14px}
  .panel-head{align-items:flex-start;flex-wrap:wrap}
  .cards{gap:8px}
  .status-card{min-height:92px;padding:14px}
  .status-card strong{font-size:24px}
  .status-card span{font-size:13px}
  .request-card{width:100%;padding:15px}
  .request-meta{width:100%}
  .kanban-column{min-width:0;padding:10px}
  .task-card{padding:13px}
  .document-card{align-items:flex-start;padding:13px}
  .modal{height:100dvh}
  .modal-card{max-height:100dvh;padding:20px 17px calc(20px + env(safe-area-inset-bottom))}
  .detail-card .modal-head{margin:-20px -17px 0;padding:17px}
  .detail-card .actions{bottom:calc(-20px - env(safe-area-inset-bottom));margin:15px -17px calc(-20px - env(safe-area-inset-bottom));padding:13px 17px calc(13px + env(safe-area-inset-bottom))}
  .actions{flex-wrap:wrap}
  .actions>button{min-height:42px}
}
@media(max-width:360px){
  .cards{grid-template-columns:1fr}
  .top .primary{max-width:112px;font-size:11px}
  .detail-grid{grid-template-columns:1fr}
}
