:root { --navy:#1428a0; --blue:#0077c8; --teal:#00a99d; --ink:#17191c; --muted:#70757a; --paper:#f6f7f9; }
html { font-size:16px; min-height:100%; }
body { margin-bottom:70px; color:var(--ink); background:var(--paper); font-family:Inter,Segoe UI,Arial,sans-serif; }
.navbar { background:#fff!important; }
.navbar-brand { color:var(--navy)!important; }
.btn-primary { background:var(--navy); border-color:var(--navy); }
.hero-panel { background:linear-gradient(135deg,var(--navy),#244fd2); color:#fff; border-radius:22px; padding:28px; display:flex; align-items:center; justify-content:space-between; gap:24px; box-shadow:0 15px 35px rgba(20,40,160,.2); }
.hero-panel h1,.detail-header h1,.import-panel h1 { font-weight:800; letter-spacing:-.04em; margin:.25rem 0; }
.hero-panel p { margin:0; opacity:.85; }
.eyebrow { font-size:.75rem; font-weight:800; letter-spacing:.14em; opacity:.8; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.stat-card { background:#fff; padding:18px 20px; border-radius:16px; box-shadow:0 5px 20px rgba(20,30,50,.06); }
.stat-card span { color:var(--muted); display:block; font-size:.85rem; }
.stat-card strong { font-size:1.8rem; }
.search-panel { display:grid; grid-template-columns:1fr auto; gap:10px; }
.tool-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:16px; }
.tool-card { color:inherit; text-decoration:none; background:#fff; padding:20px; border-radius:18px; border:1px solid #e8eaee; transition:.18s ease; }
.tool-card:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(20,30,50,.1); color:inherit; }
.tool-card-top,.process-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.orgn { color:var(--navy); font-weight:800; font-size:1.15rem; }
.photo-count,.detail-status { background:#e9edff; color:var(--navy); padding:5px 10px; border-radius:999px; font-size:.8rem; font-weight:700; }
.tool-card h2 { font-size:1rem; margin:16px 0; min-height:2.4em; }
.tool-card dl { display:grid; grid-template-columns:1fr 1fr; margin:0 0 14px; }
.tool-card dl div { display:flex; flex-direction:column; }.tool-card dt { color:var(--muted); font-size:.72rem; }.tool-card dd { font-weight:600; margin:0; }
.progress { height:6px; }.progress-bar { background:var(--teal); }
.empty-state,.import-panel { max-width:680px; margin:auto; background:#fff; border-radius:20px; padding:32px; text-align:center; }
.back-link { color:var(--navy); text-decoration:none; font-weight:700; }
.detail-header { background:#fff; border-radius:20px; padding:24px; display:flex; justify-content:space-between; align-items:center; }
.detail-header p { color:var(--muted); margin:0; }
.data-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; overflow:hidden; border-radius:16px; background:#dde1e8; }
.data-grid div { background:#fff; padding:16px; }.data-grid span { color:var(--muted); display:block; font-size:.75rem; }.data-grid strong { display:block; margin-top:4px; }
.section-title { font-size:1.25rem; font-weight:800; }
.process-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.process-card { background:#fff; border:1px solid #e5e7ec; border-radius:18px; padding:16px; overflow:hidden; }.process-card.complete { border-color:#b6e6df; }
.process-heading h3 { font-size:1rem; margin:0; flex:1; }.process-heading>span:last-child { color:var(--muted); font-size:.75rem; }
.process-number { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#fff; background:var(--navy); font-weight:800; }
.process-card img { width:100%; height:220px; object-fit:cover; border-radius:12px; margin-top:14px; background:#111; }
.camera-button { display:block; text-align:center; cursor:pointer; background:var(--navy); color:#fff; border-radius:12px; padding:12px; font-weight:700; margin-top:14px; }.camera-button input { display:none; }
.delete-photo { text-align:right; margin-top:8px; }
.upload-zone { border:2px dashed #b9c0cd; border-radius:16px; padding:30px 18px; display:flex; flex-direction:column; gap:8px; cursor:pointer; }.upload-zone span { color:var(--muted); font-size:.85rem; }.upload-zone input { margin:14px auto 0; max-width:100%; }
@media (max-width:700px) { .hero-panel,.detail-header { align-items:flex-start; flex-direction:column; }.stats-grid { grid-template-columns:repeat(3,1fr); }.stat-card { padding:13px; }.stat-card strong { font-size:1.35rem; }.search-panel { grid-template-columns:1fr; }.data-grid { grid-template-columns:repeat(2,1fr); }.container { padding-left:14px; padding-right:14px; } }

/* Pantalla operativa móvil */
.navbar,.footer { display:none!important; }
body { margin:0; background:#ececf1; }
body>.container { max-width:560px; padding:0; }
main[role="main"] { padding:0!important; }
.mobile-tooling { min-height:100vh; background:#f5f5f7; box-shadow:0 0 35px rgba(0,0,0,.13); }
.app-banner { background:linear-gradient(120deg,#29118d,#3216a7 55%,#21107c); color:#fff; padding:22px 18px 16px; display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.app-banner h1 { font-size:1.45rem; font-weight:800; margin:0 0 4px; letter-spacing:-.04em; }
.app-banner p { margin:0; color:#c8bff7; font-size:.72rem; letter-spacing:.04em; }
.header-actions { display:flex; flex-direction:column; align-items:flex-end; gap:7px; }
.header-actions a { color:#fff; text-decoration:none; font-size:.78rem; font-weight:700; white-space:nowrap; }
.header-actions form { margin:0; }
.header-actions button { padding:0; border:0; background:transparent; color:#fff; font-size:.78rem; font-weight:700; white-space:nowrap; }
.app-alert { margin:10px 16px 0; padding:10px 12px; border-radius:10px; font-size:.82rem; }.app-alert.success{background:#daf6ed;color:#126548}.app-alert.error{background:#ffe1e5;color:#9f1239}
.asset-search-label { display:block; margin:14px 18px 5px; color:#44434d; font-size:.78rem; font-weight:700; }
.mobile-search { margin:0 16px; height:54px; border:1px solid #b8b9c8; background:#fff; border-radius:17px; display:grid; grid-template-columns:30px 1fr auto 38px 34px; align-items:center; padding:0 8px 0 10px; box-shadow:0 3px 12px rgba(35,25,80,.08); }
.mobile-search input { border:0; outline:0; min-width:0; font-size:1.15rem; background:transparent; }
.search-icon { font-size:1.45rem; color:#333; transform:rotate(-20deg); }.clear-search{color:#9a9aa1;text-decoration:none;font-size:1.5rem;padding:0 6px}.mobile-search button{border:0;background:transparent;color:#251184;font-size:1.45rem;font-weight:800}
.qr-capture { position:relative; overflow:hidden; display:grid; place-items:center; width:34px; height:38px; margin:0; color:#251184; font-size:1.55rem; cursor:pointer; }.qr-capture input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.qr-status{display:none;margin:8px 18px 0;color:#316b5c;font-size:.75rem}.qr-status.visible{display:block}.qr-status.error{color:#a3123a}
.tool-summary { background:#fff; padding:18px 28px 20px; display:grid; grid-template-columns:1fr 1fr; column-gap:30px; row-gap:18px; border-bottom:1px solid #e1e1e6; }
.tool-summary div { min-width:0; }.tool-summary span { display:block; color:#8a8991; font-size:.67rem; letter-spacing:.06em; }.tool-summary strong { display:block; font-size:.9rem; margin-top:1px; overflow-wrap:anywhere; }
.capture-list { padding:18px 16px 6px; display:flex; flex-direction:column; gap:11px; }
.capture-row { margin:0; }.capture-row label { position:relative; overflow:hidden; min-height:62px; display:grid; grid-template-columns:38px 1fr auto; align-items:center; gap:10px; padding:8px 16px; color:#fff; border-radius:17px; background:linear-gradient(100deg,#251184,#3317a8); box-shadow:0 4px 10px rgba(36,16,130,.18); cursor:pointer; }
.capture-row.captured label { background:linear-gradient(100deg,#136d64,#098b7d); }
.capture-row input[type="file"] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; font-size:100px; }.camera-mark{display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(255,255,255,.28);border-radius:8px;font-size:1.05rem}.button-copy{display:flex;flex-direction:column}.button-copy small{font-size:.6rem;color:#bcb3f2;line-height:1.05}.captured .button-copy small{color:#bce7e2}.button-copy strong{font-size:.92rem}.take-label{font-size:.78rem;font-weight:700;white-space:nowrap}
.mobile-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; padding:24px 16px 26px; }.mobile-stats div{text-align:left;padding-left:10px;border-left:1px solid #dddde2}.mobile-stats div:first-child{border-left:0}.mobile-stats strong{display:block;color:#252436;font-size:1.6rem;line-height:1}.mobile-stats span{display:block;color:#5f5e68;font-size:.72rem;line-height:1.2;margin-top:6px}
.search-hint,.search-results { margin:18px 16px; padding:25px 18px; background:#fff; border-radius:16px; text-align:center; }.search-hint span{display:block;color:#777681;font-size:.85rem;margin-top:5px}.search-results a{display:flex;flex-direction:column;text-align:left;text-decoration:none;color:#222;padding:12px;border-top:1px solid #eee}.search-results a strong{color:#27108b}.search-results a span{font-size:.75rem;color:#777}
.search-results.asset-picker { display:none; margin:0 16px 18px; padding:0; border:1px solid #b8b9c8; border-top:0; border-radius:0 0 14px 14px; max-height:52vh; overflow:hidden; box-shadow:0 8px 18px rgba(35,25,80,.12); text-align:left; }
.search-results.asset-picker.open { display:block; }
.asset-picker .result-heading { margin:0; padding:9px 15px; display:flex; justify-content:space-between; color:#fff; background:#3510a6; font-size:.84rem; }
.asset-picker .result-heading strong { color:#fff; font-size:.9rem; }
.asset-result-list { max-height:43vh; overflow-y:auto; overscroll-behavior:contain; scrollbar-color:#888 #eee; }
.asset-picker .asset-result { padding:9px 15px; border-top:0; border-bottom:1px solid #ededf2; display:grid; grid-template-columns:minmax(95px,auto) 1fr; gap:12px; align-items:center; }
.asset-picker .asset-result:hover,.asset-picker .asset-result:focus { background:#eeeafd; }
.asset-picker .asset-result strong { font-size:.88rem; }
.asset-picker .asset-result span { font-size:.76rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.asset-result[hidden] { display:none !important; }
.no-asset-results { padding:22px 8px; color:#777681; }
@media (min-width:561px){.mobile-tooling{margin:20px 0;border-radius:22px;overflow:hidden;min-height:calc(100vh - 40px)}}
.login-page { min-height:75vh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(100%,390px); background:#fff; border-radius:22px; box-shadow:0 18px 50px #1d16452b; overflow:hidden; }
.login-brand { padding:26px; color:#fff; background:linear-gradient(135deg,#4218b8,#220081); }
.login-brand h1 { margin:0; font-size:1.55rem; font-weight:800; }
.login-brand p { margin:5px 0 0; opacity:.8; }
.login-card form { display:grid; gap:8px; padding:26px; }
.login-card label { margin-top:8px; color:#444; font-size:.85rem; font-weight:700; }
.login-card input { width:100%; padding:13px 14px; border:1px solid #d8d5e5; border-radius:12px; font-size:1rem; }
.login-card button { margin-top:16px; padding:13px; border:0; border-radius:12px; color:#fff; background:#3510a6; font-weight:800; }
.login-error { color:#b42318; font-size:.85rem; }
