:root{--navy:#111b30;--navy2:#1b2a46;--ink:#1b2639;--muted:#77849a;--line:#e1e7ef;--bg:#f4f6fa;--green:#15a88b;--red:#e45463;--blue:#436fd0;--orange:#d99841;--white:#fff;--shadow:0 8px 30px rgba(24,42,72,.045)}*{box-sizing:border-box}html{height:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--blue)}h1,h2,h3,h4,p{margin:0}h1{font-size:27px;letter-spacing:-.9px}h2{font-size:19px;letter-spacing:-.35px}h3{font-size:15px}small,.muted{color:var(--muted)}.shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{background:var(--navy);color:#dbe5f4;min-height:100vh;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 14px}.brand{display:flex;gap:12px;align-items:center;padding:0 12px;margin-bottom:37px}.mark{background:linear-gradient(145deg,#2ad3ae,#119b86);color:#fff;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:11px;font-size:23px;font-weight:900;letter-spacing:-3px;padding-right:3px}.brand b{display:block;font-size:20px;letter-spacing:2px;line-height:1.1}.brand span{display:block;font-size:10px;color:#8c9eb9;letter-spacing:1.1px;margin-top:4px}
.brand-logo{width:68px;height:68px;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.14));flex:0 0 auto}.brand-logo.login{width:92px;height:92px}.panel-logo{width:92px;max-width:100%;height:auto;display:block;object-fit:contain;margin-bottom:12px;filter:drop-shadow(0 8px 20px rgba(16,31,57,.08))}.mobile-head{display:none;align-items:center;gap:10px;margin-bottom:18px}.mobile-logo{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.14));flex:0 0 auto}.mobile-head b{display:block;font-size:28px;letter-spacing:2px;color:#16253e;line-height:1}.mobile-head small{display:block;color:#72839a;letter-spacing:.8px;text-transform:uppercase;font-size:10px;margin-top:5px}.login-brand{margin-bottom:26px}.login-brand .brand-logo{margin-right:2px}
.side-caption{color:#70829f;font-size:10px;font-weight:800;letter-spacing:1.4px;padding:12px 14px 8px}.nav{display:flex;flex-direction:column;gap:3px}.nav button{width:100%;display:flex;gap:12px;align-items:center;background:transparent;border:0;color:#aebdd5;padding:11px 14px;text-align:left;border-radius:10px;transition:.15s}.nav button:hover{background:#202f4a;color:white}.nav button.active{background:#263c56;color:#fff;font-weight:700;box-shadow:inset 3px 0 #18b99a}.nav .sym{font-size:16px;width:22px;text-align:center;filter:saturate(.6)}.nav button.active .sym{filter:none}.side-bottom{margin-top:auto;padding:16px 10px 4px}.userbox{border-top:1px solid #33435c;padding-top:16px;display:flex;gap:10px;align-items:center}.avatar{width:37px;height:37px;border-radius:11px;display:grid;place-items:center;background:#2b4965;color:#adf1df;font-weight:700}.userbox b{font-size:12px;color:#fff}.userbox small{display:block;font-size:10px;color:#9cacc3}.main{min-width:0;padding:27px clamp(20px,3.3vw,54px) 80px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.crumb{font-size:12px;color:#8994a5;font-weight:600}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn{background:white;border:1px solid var(--line);height:38px;min-width:38px;border-radius:10px;color:var(--ink);display:flex;align-items:center;justify-content:center;position:relative}.dot{height:7px;width:7px;background:#ed6a62;border-radius:50%;position:absolute;top:4px;right:5px}.btn{border:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--navy);color:white;border-radius:10px;padding:10px 15px;font-weight:700;min-height:40px}.btn:hover{filter:brightness(1.1)}.btn.green{background:var(--green)}.btn.soft{background:#ecf4f6;color:#267d78}.btn.outline{border:1px solid var(--line);background:#fff;color:var(--ink)}.btn.red{background:#fff1f2;color:#cf4157}.btn.sm{min-height:31px;padding:5px 10px;font-size:12px;border-radius:8px}.banner{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(112deg,#16233c,#263c5b);color:#fff;border-radius:17px;padding:23px 28px;margin-bottom:24px}.banner .eyebrow{font-size:11px;color:#96e3d3;text-transform:uppercase;letter-spacing:1.4px;font-weight:700;margin-bottom:7px}.banner p{color:#aabbd2;font-size:13px;max-width:560px;margin-top:6px}.banner-icon{font-size:56px;opacity:.55}.view-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.view-head p{color:var(--muted);margin-top:4px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:14px;padding:19px 20px;box-shadow:var(--shadow);min-width:0}.metric .lab{color:#687991;font-size:12px;font-weight:600}.metric .n{font-size:25px;letter-spacing:-1px;font-weight:800;margin-top:10px;overflow-wrap:anywhere}.metric .sub{color:#95a0ae;font-size:11px;margin-top:8px}.metric .pict{float:right;font-size:18px;padding:6px 8px;background:#ecf8f4;border-radius:9px}.metric.warn .pict{background:#fef5e8}.metric.blue .pict{background:#eaf1fe}.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:17px}.card{background:white;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.card-pad{padding:19px 21px}.card-title{padding:17px 20px;border-bottom:1px solid #eef1f5;display:flex;align-items:center;justify-content:space-between;gap:10px}.card-title small{font-weight:400}.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.data-table th{background:#fafbfd;color:#8995a6;font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase}.data-table th,.data-table td{padding:13px 16px;border-bottom:1px solid #eef1f5}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcfe}.strong{font-weight:700;color:#2b374d}.tag{display:inline-flex;align-items:center;border-radius:7px;padding:4px 8px;background:#edf1f5;color:#66768f;font-size:11px;font-weight:700;white-space:nowrap}.tag.good{background:#e1f8ef;color:#168568}.tag.warn{background:#fff4df;color:#ac791b}.tag.bad{background:#ffecef;color:#c95363}.tag.info{background:#e9f1ff;color:#4475c9}.empty{padding:40px;text-align:center;color:#8a97aa}.empty .emoji{display:block;font-size:30px;margin-bottom:8px}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.search,.filters select{border:1px solid var(--line);border-radius:10px;background:white;padding:11px 13px;min-height:42px;color:var(--ink)}.search{min-width:220px;flex:1;max-width:360px}.filters select{max-width:220px}.rowactions{display:flex;gap:5px;justify-content:flex-end}.mini{border:1px solid var(--line);background:white;padding:6px 9px;border-radius:7px;color:#344b61;font-size:11px;font-weight:700}.mini:hover{background:#f1f5fb}.miniwarn{color:#ac7318}.list-card{padding:14px 19px;border-bottom:1px solid #f0f2f5;display:flex;align-items:center;gap:12px}.list-card:last-child{border-bottom:none}.circle{display:grid;place-items:center;min-width:38px;height:38px;background:#eff6f6;color:#289f8f;border-radius:11px;font-size:18px}.grow{flex:1;min-width:0}.list-card b{font-size:13px}.list-card small{display:block;font-size:11px;margin-top:2px}.right{text-align:right}.amount{font-weight:800;font-size:13px;white-space:nowrap}.progress{height:8px;border-radius:10px;overflow:hidden;background:#ebeff4;margin-top:10px}.progress span{display:block;height:100%;background:var(--green);border-radius:10px}.notice{border:1px solid #c3e7df;background:#ecfaf6;color:#257f6b;padding:11px 14px;border-radius:10px;font-size:12px;margin-bottom:15px}.notice.orange{border-color:#f4d5a9;background:#fff8ed;color:#945e1d}.modal-backdrop{position:fixed;inset:0;background:#111927a8;z-index:300;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:white;border-radius:18px;width:min(560px,100%);max-height:min(88vh,820px);display:flex;flex-direction:column;box-shadow:0 24px 100px #111a2d50}.modal-head{padding:19px 24px 15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;align-items:center}.modal-head h2{font-size:18px}.modal-body{padding:20px 24px;overflow-y:auto}.modal-foot{padding:15px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.field{margin-bottom:13px}.field label{display:block;margin-bottom:6px;font-size:12px;font-weight:700;color:#516076}.field input,.field select,.field textarea{width:100%;border:1px solid #dbe2eb;border-radius:10px;padding:11px 12px;outline:none;background:white;color:var(--ink);min-height:43px}.field textarea{min-height:80px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#39b6a6;box-shadow:0 0 0 3px #e3f7f3}.fieldgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.fieldgrid .wide{grid-column:span 2}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:linear-gradient(140deg,#111b30,#213957);padding:8vw;color:#fff;display:flex;flex-direction:column;justify-content:center}.login-art h1{font-size:clamp(38px,6vw,72px);letter-spacing:-3px}.login-art p{max-width:440px;color:#b1bfd5;font-size:17px;line-height:1.7;margin-top:16px}.login-panel{display:grid;place-items:center;padding:25px}.login-card{width:min(420px,100%)}.login-card h2{font-size:26px;margin:20px 0 6px}.login-card p{color:var(--muted);margin-bottom:22px}.auth-error{color:#bd3b52;background:#fff0f2;padding:11px;border-radius:9px;margin:10px 0}.foot-note{font-size:11px;color:#99a3b1;margin-top:20px}.mobile-bar{display:none}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project{cursor:pointer;border:1px solid var(--line);border-radius:14px;padding:18px;background:white;text-align:left}.project:hover{border-color:#99d8cd;box-shadow:var(--shadow)}.project h3{font-size:15px;margin-bottom:4px}.project p{font-size:11px;color:#8492a3}.project .big{font-size:19px;font-weight:800;margin:15px 0 6px}.flag-demo{background:#fff1d5;color:#80551c;padding:8px 12px;border-radius:9px;display:inline-block;font-size:11px;font-weight:800}.spacer{flex:1}.small-heading{font-size:12px;letter-spacing:.7px;text-transform:uppercase;color:#8390a1;font-weight:800;margin:24px 0 10px}.stack{display:flex;flex-direction:column;gap:12px}.statline{display:flex;justify-content:space-between;gap:15px;margin:8px 0}.footer-note{padding-top:22px;text-align:center;color:#a2abb9;font-size:11px}.modal-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.modal-tabs button{border-radius:9px;border:1px solid var(--line);background:#f8fafc;padding:7px 11px;font-size:11px}.version{color:#7185a2;font-size:10px;margin-top:14px}.mobile-head{display:none}
@media(max-width:1200px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.shell{display:block}.sidebar{display:none}.main{padding:18px 14px 100px}.topbar{margin-bottom:18px}.banner{padding:21px}.grid2{grid-template-columns:1fr}.mobile-bar{position:fixed;display:flex;left:0;bottom:0;right:0;z-index:120;background:white;box-shadow:0 -6px 20px #131c2a12;padding:7px 6px max(7px,env(safe-area-inset-bottom));justify-content:space-around;gap:2px}.mobile-bar button{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;flex:1;padding:5px 1px;border:0;background:transparent;color:#8e9aac;font-size:9px;font-weight:700;border-radius:10px}.mobile-bar button span{font-size:20px}.mobile-bar button.active{color:#148d7b;background:#e9f8f2}.mobile-head{display:flex;align-items:center;gap:10px;margin-bottom:19px}.mobile-head .mark{width:31px;height:31px;font-size:17px}.mobile-head b{letter-spacing:1.7px}.mobile-head small{margin-left:auto}.view-head{align-items:flex-start}.view-head h1{font-size:23px}.login-shell{grid-template-columns:1fr}.login-art{padding:45px 24px}.login-art h1{font-size:40px}.login-art p{font-size:13px;margin-top:7px}.login-panel{align-items:start;padding:32px 24px}.login-card h2{font-size:22px}.banner-icon{display:none}.fieldgrid{grid-template-columns:1fr}.fieldgrid .wide{grid-column:auto}.filters .search{max-width:none}.table-scroll{margin:0}}
@media(max-width:570px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{padding:13px 12px}.metric .lab{font-size:11px}.metric .n{font-size:18px;letter-spacing:-.4px;margin-top:9px}.metric .pict{font-size:14px;padding:4px}.metric .sub{font-size:10px}.project-grid{grid-template-columns:1fr}.banner h2{font-size:18px}.banner p{font-size:12px}.card-title,.card-pad{padding:15px}.top-actions .btn{font-size:11px;padding:7px 10px}.data-table th,.data-table td{padding:11px 12px;font-size:12px}.modal-body,.modal-head,.modal-foot{padding-left:17px;padding-right:17px}.right{text-align:right}}

/* Wilcar 0.4 · Solicitudes y documentos */
.request-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.request-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow);min-width:0}.request-top{display:flex;justify-content:space-between;align-items:flex-start;gap:9px}.request-top b{display:block;margin-top:3px;font-size:14px}.request-by,.request-sub,.request-files{font-size:11px;color:#8795a6;margin-top:4px}.request-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;margin-top:16px;border-top:1px solid #eef1f5;padding-top:12px}.request-amount{font-size:17px;color:#263750}.request-bottom .btn{font-size:11px;white-space:nowrap}.detail-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.detail-top h3{font-size:17px;margin:7px 0}.detail-money{font-size:25px;font-weight:800}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.request-meta{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:17px 0}.request-meta div{display:flex;flex-direction:column;gap:4px}.request-meta small{font-size:11px}.request-meta b{font-size:12px}.section-label{font-size:13px;margin:21px 0 9px}.num-pill{font-size:11px;color:#587a85}.compact{border-radius:11px}.bank-line,.file-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid #f0f2f5}.bank-line:last-child,.file-row:last-child{border-bottom:0}.bank-line strong{display:block;overflow-wrap:anywhere;font-size:13px}.bank-line small{display:block;font-size:10px;color:#8190a3}.file-emoji{background:#eaf5f1;color:#168778;padding:8px;border-radius:9px}.file-row b{font-size:12px;overflow-wrap:anywhere}.file-row small{display:block;font-size:10px}.empty-lite{color:#8290a2;padding:15px;font-size:12px}.chat-list{display:flex;flex-direction:column;gap:10px;padding:5px 0 12px;max-height:340px;overflow:auto}.chat-bubble{padding:11px 13px;background:#f2f5f9;border-radius:13px;max-width:94%;align-self:flex-start;font-size:13px;white-space:normal;overflow-wrap:anywhere}.chat-bubble.mine{align-self:flex-end;background:#e3f6ee}.chat-who{font-size:10px;font-weight:700;color:#637d88;margin-bottom:6px}.timeline{border-left:2px solid #dbeee8;padding-left:12px;margin-left:4px}.timeline-item{padding:5px 0 15px;font-size:12px}.timeline-item b{display:block}.timeline-item small{display:block;font-size:10px}.field input[type=file]{padding:9px;font-size:12px}.modal:has(.detail-top){width:min(690px,100%)}
@media(max-width:840px){.request-grid{grid-template-columns:1fr}}
@media(max-width:570px){.request-card{padding:14px}.request-bottom{gap:4px}.request-bottom .btn{padding:8px 9px}.request-meta{gap:11px 6px}}

/* Wilcar v0.5: movimientos vinculados */
.linked-top-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 18px}
.linked-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.linked-card{border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow);padding:18px;min-width:0;text-align:left;cursor:pointer;color:inherit}
.linked-card:hover{border-color:#54bda9}
.linked-card-top{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-bottom:17px}
.linked-card-top b{font-size:17px;color:#26354a}
.linked-pair,.linked-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.linked-pair>div,.linked-stat{background:#f4f7fa;padding:12px;border-radius:10px;min-width:0}
.linked-pair small,.linked-stat small{display:block;color:#7e8ea2;font-size:11px;margin-bottom:6px}
.linked-pair strong,.linked-stat strong{display:block;font-size:17px;word-break:break-word;line-height:1.4}
.linked-two{margin:10px 0}
.pos{color:#12846d!important}.neg{color:#b24d5e!important}
.linked-muted{display:block;color:#8693a5;font-size:11px;max-width:260px;white-space:normal}
.linked-extra{display:flex;flex-wrap:wrap;flex-direction:column;color:#8291a3;margin-top:11px;gap:3px}
.linked-extra small{font-size:11px}
#linked-preview{margin:8px 0 16px}
#linked-manual[hidden]{display:none}
@media(max-width:850px){.linked-grid{grid-template-columns:1fr}}
@media(max-width:570px){.linked-card{padding:14px}.linked-pair strong,.linked-stat strong{font-size:14px}.linked-top-actions .btn{padding:10px;font-size:12px}}
/* WILCAR v0.6 — una obra es un espacio completo, no una ventana emergente */
.project-page{max-width:1350px;margin:0 auto;min-width:0}.project-breadcrumb{display:flex;align-items:center;gap:11px;color:#8694a5;font-size:12px;margin:-8px 0 16px}.project-hero{background:linear-gradient(117deg,#142039 0%,#253c59 100%);border-radius:19px;padding:24px 29px;color:white;box-shadow:0 18px 50px rgba(16,31,57,.12)}.project-hero-line{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.project-eyebrow{font-size:11px;color:#9ce9d5;letter-spacing:1.2px;text-transform:uppercase;font-weight:750}.project-hero h1{font-size:clamp(22px,3vw,34px);color:#fff;margin:7px 0;letter-spacing:-.8px}.project-hero p{font-size:13px;color:#c7d3e2;line-height:1.6}.project-hero .tag{background:#def6ed;color:#187b64}.project-meta{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:14px;padding:17px 0 18px;margin-top:20px;border-top:1px solid #ffffff25;border-bottom:1px solid #ffffff25}.project-meta small{display:block;font-size:11px;color:#afc0d3;margin-bottom:5px}.project-meta b{font-size:16px;line-height:1.3;overflow-wrap:anywhere}.project-hero-progress{display:flex;justify-content:space-between;gap:15px;margin-top:15px;align-items:center;font-size:13px;color:#d2e2eb}.project-hero-progress strong{font-size:19px;color:#fff}.project-hero .progress{background:#4e6178;height:9px}.project-hero .progress span{background:#22cdaa}.project-actionrow{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0 18px}.project-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-metrics .metric{padding:17px 18px}.project-metrics .metric .n{font-size:22px}.project-buttons{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}.project-buttons .btn{min-height:42px}.project-tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding:10px 1px 12px;margin:8px 0 18px;border-bottom:1px solid #dae3ed}.project-tabs button{border:1px solid transparent;background:transparent;border-radius:10px;padding:11px 12px;display:flex;gap:7px;align-items:center;white-space:nowrap;color:#687991;font-weight:700;font-size:12px;scroll-snap-align:start;cursor:pointer}.project-tabs button span{font-size:16px}.project-tabs button.active{color:#0a8471;border-color:#b8e8d9;background:#e7f7f1}.project-tabs button:hover{background:#eff5f9}.project-tab-content{min-height:310px}.project-grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:14px 0 18px}.project-grid-two .card{overflow:visible}.project-grid-two .card-pad{padding:20px}.project-grid-two .card h3{font-size:15px;margin-bottom:14px}.project-line{display:flex;gap:12px;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eff2f6;font-size:12px;align-items:flex-start}.project-line:last-child{border-bottom:0}.project-line span{color:#738198;max-width:55%}.project-line b{text-align:right;color:#28384f;max-width:55%;overflow-wrap:anywhere;font-size:12px}.project-note{font-size:11px;color:#8694a5;margin-top:13px;line-height:1.7}.project-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eef2f7;padding:13px 0;min-width:0}.project-row:last-child{border-bottom:0}.project-row b{font-size:12px;display:block}.project-row small{display:block;font-size:11px;margin:3px 0}.project-row strong{font-size:13px;white-space:nowrap}.project-row>div:last-child{text-align:right;display:flex;align-items:flex-end;flex-direction:column;gap:5px}.project-row-card{background:#fff;padding:14px;border:1px solid var(--line);border-radius:10px;margin:8px 0}.project-section-heading{margin-bottom:14px}.project-section-top{display:flex;align-items:start;gap:12px;justify-content:space-between;margin-bottom:17px}.project-section-heading h2,.project-section-top h2{font-size:18px;color:#25364c}.project-section-heading p,.project-section-top p{font-size:12px;color:#7b899b;margin-top:5px;max-width:700px}.project-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-shortcuts button{background:#f5f9fb;border:1px solid #dfe9f1;border-radius:10px;min-height:52px;text-align:left;padding:10px 13px;color:#253750;font-size:12px;font-weight:700}.project-shortcuts button:hover{border-color:#7dcfbc;background:#edf9f5}.project-muted{display:block;font-size:11px;color:#8795a6;max-width:240px;white-space:normal}.project-row-actions{margin-top:7px;display:flex;gap:5px;justify-content:flex-start}.project-page .table-scroll{margin-bottom:16px}.project-page .data-table{white-space:normal}.project-page .data-table td{min-width:75px;vertical-align:top}.project-page .data-table td:first-child{white-space:nowrap}.project-page .data-table td:nth-child(2){min-width:160px}.project-page .data-table td .mini{margin-top:5px}.project-page .btn{white-space:normal;text-align:center}
@media(max-width:950px){.project-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.sidebar{display:none}.shell{grid-template-columns:1fr}.mobile-head{display:flex}.main{padding-top:22px}}
@media(max-width:640px){.project-hero{padding:19px 18px}.project-hero h1{font-size:25px}.project-hero-line{align-items:flex-start}.project-hero .tag{font-size:10px}.project-meta{grid-template-columns:1.6fr 1fr;gap:13px}.project-meta div:first-child{grid-column:span 2}.project-meta b{font-size:14px}.project-actionrow{margin-top:12px}.project-actionrow .btn{flex:1;min-width:145px}.project-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.project-metrics .metric{padding:14px 12px}.project-metrics .metric .lab{font-size:10px}.project-metrics .metric .n{font-size:18px}.project-metrics .metric .sub{font-size:9px;line-height:1.5}.project-buttons .btn{flex:1;min-width:130px;font-size:12px;padding:10px 12px}.project-grid-two{grid-template-columns:1fr}.project-tabs{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.project-tabs button{font-size:12px}.project-section-top{flex-wrap:wrap}.project-section-top .btn{margin-left:auto}.project-shortcuts{gap:8px}.project-shortcuts button{font-size:11px;min-height:55px}.project-page .data-table td,.project-page .data-table th{padding:9px 11px;font-size:11px}}

.cash-category-rollup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.cash-category-pill{display:flex;flex-direction:column;gap:4px;border:1px solid #e0e6ed;border-radius:14px;background:#fff;padding:13px}.cash-category-pill small{font-size:12px;color:#65748b}.cash-category-pill strong{font-size:14px;color:#14253d;overflow-wrap:anywhere}.field[hidden]{display:none!important}@media(max-width:720px){.cash-category-rollup{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* WILCAR v0.7.2 — logo JPG estable */
.brand-logo,.panel-logo,.mobile-logo{background:#fff;border-radius:12px;padding:6px}.brand-logo{width:112px;height:72px}.brand-logo.login{width:140px;height:90px}.panel-logo{width:150px;border-radius:14px}.mobile-logo{width:72px;height:46px;border-radius:10px}.brand{align-items:center}.mobile-head{align-items:center}.

/* v0.7.3: adjunto visible al comienzo de la solicitud */
.request-attach-first{padding:16px 17px 3px;background:#f0f8f6;border:1px solid #c8e8df;border-radius:13px;margin-bottom:16px}
.request-attach-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;color:#194f47}
.request-attach-head strong{font-size:15px}
.request-attach-head span{font-size:11px;color:#348675;font-weight:700;background:#deefe9;border-radius:20px;padding:3px 9px}
.request-attach-first .field label{color:#365b58}
.request-attach-first .field input[type=file]{background:white}
.request-attach-first .field small{display:block;margin-top:8px;font-size:11px;line-height:1.5}

/* v0.8: revisión de facturas leídas sin alterar el formulario principal. */
.invoice-extraction-status{border-radius:9px;background:#eef6fb;color:#365d77;font-size:12px;padding:10px 12px;line-height:1.55;margin-bottom:8px}
.invoice-review{border:1px solid #b9dacc;border-radius:13px;background:#fafffd;padding:16px;margin:14px 0 10px}
.invoice-review[hidden]{display:none!important}
.invoice-review-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 9px}
.invoice-review-head strong{font-size:14px;color:#164c4d;overflow-wrap:anywhere}
.invoice-tip{font-size:11px;margin:6px 0 14px}
.invoice-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px}
.invoice-review-grid .wide{grid-column:span 2}
.invoice-check{display:flex;align-items:center;gap:9px;line-height:1.5;font-size:12px;margin:14px 0;color:#334f5b}
.invoice-check input{width:18px;height:18px;accent-color:#119b86;flex-shrink:0}
@media(max-width:530px){.invoice-review{padding:12px}.invoice-review-grid{grid-template-columns:1fr}.invoice-review-grid .wide{grid-column:span 1}}
/* WILCAR 0.8.3 · Actividad navegable y ciclo de vida de las obras */
.activity-link{width:100%;font:inherit;color:inherit;border:0;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease;}
.activity-link:hover,.activity-link:focus-visible{background:#f0f8f7;outline:2px solid transparent;}
.activity-link:focus-visible{outline:2px solid #16a58e;outline-offset:-3px;}
.activity-chevron{font-size:24px;font-weight:500;color:#18a088;margin-left:auto;flex-shrink:0;}
.project-scope-inline{margin-top:6px!important;max-width:260px;line-height:1.5;color:#486078!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;}
.project-hero-work{margin:7px 0 12px!important;padding:10px 12px;border-left:3px solid #f7b23b;background:#ffffff16;border-radius:4px 9px 9px 4px;white-space:pre-wrap;overflow-wrap:anywhere;color:#ecf4ff!important;}
.project-hero-work strong{color:#ffda7c;}
.project-finish{background:linear-gradient(110deg,#0c927a,#15b59a);}
.project-close{background:#273e56;}
.project-closed-label{display:inline-flex;align-items:center;font-size:12px;font-weight:650;color:#357d67;background:#eaf8f1;border:1px solid #b6e2cf;border-radius:9px;padding:10px 14px;}
.project-celebration{position:fixed;inset:0;z-index:1005;background:#10233ed9;display:grid;place-items:center;padding:20px;isolation:isolate;}
.project-celebration-card{position:relative;z-index:2;background:white;border:1px solid #e8eff6;border-radius:22px;box-shadow:0 22px 90px #06172844;padding:34px 25px;max-width:440px;width:100%;text-align:center;animation:projectCardEnter .55s cubic-bezier(.2,1.35,.4,1);}
.project-celebration-card h2{font-size:28px;margin:10px 0;color:#12243a;}
.project-celebration-card p{font-size:17px;font-weight:700;color:#33465b;margin:5px 0;}
.project-celebration-card small{display:block;line-height:1.65;margin:10px 0 19px;color:#728094;}
.project-celebration-emoji{font-size:36px;letter-spacing:10px;display:inline-block;animation:projectPop 1s .35s both;}
.project-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.project-confetti i{position:absolute;top:-20px;left:calc(2% + var(--i) * 3.55%);width:9px;height:18px;border-radius:2px;background:hsl(calc(var(--i) * 49) 85% 59%);opacity:.96;transform:rotate(calc(var(--i) * 29deg));animation:projectConfetti 3.6s var(--d) linear both;}
@keyframes projectCardEnter{from{transform:scale(.78) translateY(36px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}
@keyframes projectPop{0%{transform:scale(.4) rotate(-15deg)}60%{transform:scale(1.28) rotate(10deg)}100%{transform:scale(1)}}
@keyframes projectConfetti{to{top:112%;transform:translateX(calc(var(--i) * 4px - 55px)) rotate(calc(var(--i) * 85deg));opacity:.7}}
@media(prefers-reduced-motion:reduce){.project-celebration-card,.project-celebration-emoji,.project-confetti i{animation:none!important}.project-confetti{display:none}}
@media(max-width:600px){.project-celebration-card{padding:26px 20px}.project-celebration-card h2{font-size:25px}.project-hero-work{font-size:12px!important}}

/* WILCAR v0.9.0: panel de notificaciones y controles Push */
.push-permission{background:#e9f6f2;border:1px solid #bee6db;padding:16px;border-radius:15px;margin-bottom:12px;color:#184b42}
.push-permission b{display:block;margin-bottom:7px}
.push-permission p{font-size:13px;line-height:1.45;margin:0 0 12px}
.push-buttons{display:flex;flex-wrap:wrap;gap:8px}
.notification-click{border:0;cursor:pointer;width:100%;text-align:left;font:inherit;background:transparent}
.notification-click:hover{background:#f4f8fb}
.notices-scroll{max-height:46vh;overflow-y:auto}

/* Wilcar 0.9.1 - accesos directos a permisos y avisos */
.home-push-cta{border:1px solid #c7e1d9;background:linear-gradient(120deg,#eefbf6,#fff);border-radius:17px;padding:14px 17px;margin:0 0 15px;display:flex;align-items:center;justify-content:space-between;gap:15px;box-shadow:0 8px 24px rgba(16,70,55,.04)}
.home-push-copy{display:flex;align-items:center;gap:12px;min-width:0}.home-push-symbol{display:grid;place-items:center;background:#ddf4e9;border-radius:12px;width:44px;height:44px;flex:0 0 44px;font-size:23px}
.home-push-copy strong{font-size:14px;color:#164d40;display:block;line-height:1.35}.home-push-copy p{font-size:12px;color:#60796e;margin:3px 0 0;line-height:1.4}
.home-push-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.home-push-actions .btn{font-size:12px;padding:10px 13px;white-space:normal;text-align:center;line-height:1.35}
.menu-push-box{border-radius:14px;border:1px solid #c7e1d9;background:#eff9f4;padding:14px;margin-bottom:17px;display:flex;flex-direction:column;align-items:stretch;gap:9px}.menu-push-box .btn{width:100%;justify-content:center;text-align:center}
.menu-push-info{display:flex;align-items:center;gap:12px;margin-bottom:2px;color:#164d40}.menu-push-info>span{font-size:27px}.menu-push-info b{display:block}.menu-push-info small{display:block;color:#537468;font-size:12px;margin-top:2px}
@media(max-width:820px){.home-push-cta{flex-direction:column;align-items:stretch}.home-push-actions{justify-content:stretch}.home-push-actions .btn{flex:1 1 40%;min-width:130px}}
@media(max-width:450px){.home-push-actions{flex-direction:column}.home-push-actions .btn{width:100%}}

/* 0.9.2: el CTA desaparece cuando el teléfono está correctamente registrado */
.push-active-inline{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:11px 14px;border-radius:12px;border:1px solid #b8dccf;background:#eff8f3;color:#20664e;margin-bottom:10px;font-size:13px}.push-active-inline .mini{margin-left:auto}

/* WILCAR v1.0 · Movimientos por centro de costos y correcciones auditadas */
.cash-scope-wrap{display:flex;gap:8px;overflow-x:auto;padding:3px 1px 10px;margin:14px 0 7px;scrollbar-width:thin}
.cash-scope-tab{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;border:1px solid #dce5ef;background:#fff;color:#485b73;border-radius:13px;font-weight:750;font-size:12px;padding:11px 14px;cursor:pointer}
.cash-scope-tab.selected{background:#12223e;color:#fff;border-color:#12223e}
.cash-scope-tab small{font-size:10px;color:inherit;opacity:.7;background:#8493aa25;border-radius:20px;padding:2px 6px}
.cash-segment-actions{display:flex;gap:11px;align-items:center;flex-wrap:wrap;margin:8px 0 12px}.cash-segment-actions small{color:#66778d;font-size:11px;flex:1;line-height:1.6}
.cash-overview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:13px 0}
.cash-overview-cards>div{background:#fff;border:1px solid #e0e6ee;border-radius:13px;padding:14px}
.cash-overview-cards span{display:block;font-size:11px;color:#74849b;margin-bottom:7px}
.cash-overview-cards b{font-size:19px;overflow-wrap:anywhere}
.cash-cost-tag{font-size:10px;font-weight:750;display:inline-flex;padding:4px 9px;border-radius:8px;color:#126b60;background:#e6f6ef}
.cash-corrected{background:#f2f7fb;border-radius:10px;padding:12px;font-size:12px;color:#3d5974;line-height:1.6}
.cash-edit-cta{margin:8px 0 14px;width:100%}
@media(max-width:650px){.cash-scope-wrap{margin-left:-8px;margin-right:-8px;padding:4px 8px 10px}.cash-scope-tab{font-size:11px;padding:11px 12px}.cash-overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-overview-cards>div:last-child{grid-column:span 2}.cash-overview-cards b{font-size:16px}}

/* v1.0.1 - edición de movimientos con clasificación consistente */
.cash-edit-project[hidden],.cash-edit-wilcar[hidden]{display:none!important}
.cash-edit-wilcar{padding:5px 2px 8px;color:#5b7686;font-size:12px;grid-column:1/-1}
.cash-edit-preview{padding:13px 15px;border-radius:12px;border:1px solid #abdacb;background:#edf9f3;color:#146d57;font-weight:700;font-size:13px;line-height:1.5}
.cash-edit-preview.incomplete{border-color:#edd3a3;background:#fff8e6;color:#986b1c}

/* Wilcar v1.1 — SIDE: contratantes > contratos independientes */
.side-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:15px;margin:17px 0 24px}
.side-group-card{width:100%;display:flex;align-items:flex-start;gap:16px;text-align:left;border:1px solid #c7d5e5;border-radius:17px;background:linear-gradient(120deg,#152740,#243d57);padding:24px;color:#fff;box-shadow:0 10px 24px #13213815}
.side-group-card:hover,.side-group-card:focus-visible{box-shadow:0 14px 32px #1222392e;transform:translateY(-1px);outline:2px solid #7ccfbb;outline-offset:2px}
.side-group-icon{font-size:32px;background:#ffffff18;padding:8px 11px;border-radius:12px}
.side-group-main{min-width:0;flex:1}
.side-group-main small{color:#90e6d4;font-size:10px;letter-spacing:1.1px;font-weight:800}
.side-group-main h2{font-size:22px;margin:7px 0;line-height:1.24;color:#fff}
.side-group-main p{color:#c7d5e7;margin:0 0 14px;font-size:12px}
.side-group-pending{display:inline-block;border:1px solid #d4a45e66;background:#c1883e23;color:#ffdd9e;border-radius:7px;padding:5px 9px;font-size:11px;font-weight:700}
.side-arrow{font-size:30px;color:#a8d2ca;line-height:1}
.side-independent-title{margin:22px 0 13px}
.side-group-hero{margin-bottom:20px}
.side-group-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0}
.side-group-toolbar p{color:#7a8aa1;margin-top:5px;font-size:12px}
.side-project-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:74px}
.side-project-title h3{font-size:16px;color:#16253c}
.side-split-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.side-split-stats div{border:1px solid #e9eef4;background:#f7f9fc;border-radius:9px;padding:10px;min-width:0}
.side-split-stats small{display:block;color:#8795aa;font-size:10px}
.side-split-stats b{display:block;font-size:14px;overflow-wrap:anywhere}
.side-project-foot{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-size:11px;align-items:center}
.side-project-foot small{font-size:11px}
.side-project-foot strong{font-size:12px;color:#168b7e}
.side-legacy-project{border:1px dashed #e6c187}
.side-legacy-explain{font-size:11px;line-height:1.5;color:#977346;margin-top:10px}
.side-legacy-section{background:#fff;border:1px solid #e2e9f1;border-radius:18px;padding:21px;margin:25px 0}
.side-legacy-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.side-legacy-heading h2{font-size:20px}.side-legacy-heading p{color:#71829a;font-size:12px;margin-top:4px}
.side-legacy-section .data-table{white-space:normal;min-width:650px}
.side-legacy-section .data-table td{vertical-align:middle}
.side-advance{background:#fff;border:1px solid #cde2de;border-radius:16px;padding:20px;margin:18px 0}
.side-advance-head{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:15px}
.side-advance-head h2{font-size:19px}.side-advance-head p{color:#6e8292;font-size:12px;margin-top:4px;max-width:560px}
.side-advance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.side-advance-grid>div{background:#f3f8f8;border-radius:11px;padding:13px 15px;min-width:0}
.side-advance-grid small{display:block;font-size:11px;color:#648075;line-height:1.4}
.side-advance-grid b{display:block;font-size:19px;color:#143d3b;margin-top:7px;overflow-wrap:anywhere}
.side-advance-item{display:flex;align-items:center;gap:14px;justify-content:space-between;border-bottom:1px solid #edf1f5;padding:14px 0}
.side-advance-item b{font-size:12px;display:block}.side-advance-item small{font-size:11px;display:block;margin-top:3px}
.side-advance-item .mini{white-space:nowrap}
@media(max-width:660px){.side-group-grid{grid-template-columns:1fr}.side-group-card{padding:20px 16px}.side-group-main h2{font-size:19px}.side-group-toolbar{align-items:stretch;flex-direction:column}.side-group-toolbar .btn{width:100%}.side-legacy-section{padding:14px 12px}.side-advance{padding:15px}.side-advance-grid{grid-template-columns:1fr}.side-advance-grid>div{padding:12px}.side-advance-grid b{font-size:18px}.side-advance-item{align-items:flex-start;flex-direction:column}.side-advance-item .mini{width:100%}}

.cash-receipt-badge{background:#eef9f5;border:1px solid #cce8dc;padding:12px 14px;border-radius:10px;color:#185948;font-size:13px;margin:14px 0}
@media (min-width:661px) and (max-width:1080px){.side-advance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v1.1.2 — Honorarios del Responsable Técnico por contrato */
.side-rt-summary{margin-top:14px;border-color:#c9d9ea;background:linear-gradient(118deg,#fff,#f6f9ff)}
.side-rt-summary .side-advance-grid>div:first-child b{font-size:15px;overflow-wrap:anywhere}
.side-rt-summary .side-advance-grid>div:last-child b{color:#344c70}
.side-rt-summary .project-buttons{margin-top:16px}
.side-rt-summary .side-rt-history{margin-top:14px;padding-top:14px;border-top:1px solid #dce6ef}
.side-rt-summary .side-rt-history>b{display:block;margin-bottom:10px;color:#304b63}
.side-rt-summary .side-advance-item{width:100%;text-align:left;border:1px solid #e0e7ee;background:#fff;border-radius:10px;margin:6px 0;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px;color:var(--ink)}
.side-rt-summary .side-advance-item span{min-width:0;flex:1}
.side-rt-summary .side-advance-item small{display:block;color:#71839b;margin-top:4px}
.side-rt-summary .side-advance-item b{white-space:normal}
.side-project-rt{border-top:1px dashed #dde5ed;padding-top:7px;margin-top:3px}
.cash-rt-info{border:1px solid #cbdfe8;padding:9px 12px;border-radius:10px;background:#f1f8fb}
.cash-rt-info small{color:#356575}
@media(max-width:570px){.side-rt-summary .side-advance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.side-rt-summary .side-advance-item{align-items:flex-start;flex-direction:column}.side-rt-summary .side-advance-item b{align-self:flex-end}}
