@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:light;--ink:#18303b;--muted:#71818c;--line:#e1e8e9;--bg:#f5f8f8;--card:#fff;--teal:#137e76;--dark:#103a42;--mint:#e9f8f2;--red:#ad4945;--redbg:#fff0ef;--amber:#bd7926;--amberbg:#fff7e8;--nav:260px;--shadow:0 12px 38px rgba(21,50,56,.055);font-family:'DM Sans',system-ui,sans-serif}
*{box-sizing:border-box}html{height:100%;scroll-behavior:smooth}body{min-height:100%;background:var(--bg);color:var(--ink);margin:0;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,p{margin:0}h1,h2,h3,.manrope{font-family:Manrope,'DM Sans',sans-serif}h1{font-size:27px;letter-spacing:-.8px;font-weight:800}h2{font-size:20px;letter-spacing:-.5px;font-weight:800}h3{font-size:15px;font-weight:800}p{line-height:1.55}.muted{color:var(--muted)}.small{font-size:12px}.xs{font-size:11px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.strong{font-weight:700}.loader{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted)}.spinner{border:3px solid #d8eae6;border-top-color:var(--teal);width:21px;height:21px;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.ico{width:19px;height:19px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;flex:none}.ico.sm{width:16px;height:16px}.ico.lg{width:24px;height:24px}.ico.xl{width:27px;height:27px}
.shell{display:flex;min-height:100vh}.sidebar{width:var(--nav);background:#fff;border-right:1px solid var(--line);position:fixed;top:0;bottom:0;left:0;z-index:8;display:flex;flex-direction:column;padding:27px 16px 18px}.brand{display:flex;align-items:center;gap:11px;padding:0 12px 22px}.brand-mark{background:var(--dark);border-radius:13px;color:#93e4cd;display:grid;place-items:center;width:43px;height:43px;flex-shrink:0}.brand-main{font-family:Manrope,sans-serif;font-size:17px;font-weight:800;letter-spacing:-.5px;color:var(--dark)}.brand-sub{color:#819398;font-size:11px;letter-spacing:.8px;text-transform:uppercase;font-weight:700}.nav-caption{font-size:10px;letter-spacing:1.4px;color:#96a3a7;text-transform:uppercase;font-weight:800;margin:18px 14px 9px}.nav-link{width:100%;display:flex;gap:12px;align-items:center;padding:12px 14px;background:transparent;border:0;border-radius:10px;color:#70818b;font-size:13px;font-weight:700;text-align:left;margin:1px 0}.nav-link:hover{background:#f5f9f8;color:var(--dark)}.nav-link.active{background:#e7f4f0;color:#126f65}.nav-link .ico{width:19px;height:19px}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}.account{padding:9px 12px;display:flex;gap:10px;align-items:center}.avatar{background:#e3f0ed;border:1px solid #cbded8;border-radius:11px;display:grid;place-items:center;width:39px;height:39px;color:#217b6e;font-weight:800;font-size:15px}.account .meta{min-width:0}.account .meta .name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-weight:700}.signout{border:0;background:none;color:#87999d;display:flex;align-items:center;gap:9px;padding:10px 14px;font-weight:700;font-size:12px;width:100%;text-align:left}.signout:hover{color:#b13d38}.workspace{margin-left:var(--nav);min-width:0;flex:1}.topbar{height:83px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:0 35px;background:#fff}.crumb{color:#89999f;font-size:12px;font-weight:700;letter-spacing:.25px}.crumb b{color:#284550}.top-actions{display:flex;align-items:center;gap:10px}.top-search{position:relative}.top-search input{border:1px solid #e4eaea;background:#f7f9f9;width:270px;border-radius:10px;height:42px;padding:0 14px 0 39px;outline:none}.top-search input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#4cb09c;box-shadow:0 0 0 3px #d6f1e9;background:#fff}.top-search>.ico{position:absolute;left:13px;top:12px;color:#8ea1a5}.main{max-width:1420px;margin:0 auto;padding:31px 36px 100px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:25px}.page-head .desc{color:var(--muted);font-size:13px;margin-top:7px}.head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:41px;padding:9px 16px;border-radius:10px;border:1px solid var(--line);font-weight:800;font-size:12.5px;white-space:nowrap;transition:.16s ease;background:#fff;color:#33515b}.btn:hover{border-color:#bdd4d1;background:#f6fbf9}.btn .ico{width:17px;height:17px}.btn.primary{background:var(--dark);color:white;border-color:var(--dark)}.btn.primary:hover{background:#19555b}.btn.soft{background:var(--mint);color:#167566;border-color:#d5ece4}.btn.danger{color:var(--red);background:#fff;border-color:#f4d7d5}.btn.ghost{border-color:transparent;background:transparent}.btn.compact{padding:7px 11px;min-height:33px}.btn.block{width:100%}.btn.icon-only{width:40px;padding:0}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metric{background:#fff;border:1px solid var(--line);border-radius:15px;padding:21px 21px 19px;min-width:0;box-shadow:var(--shadow)}.metric-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;color:#7b9097;font-size:12px;font-weight:700}.metric-icon{background:#edf7f5;color:#258577;border-radius:10px;width:36px;height:36px;display:grid;place-items:center}.metric-value{font-family:Manrope,sans-serif;font-size:29px;letter-spacing:-1px;font-weight:800;color:#1f3941}.metric-detail{font-size:11px;color:#91a0a4;margin-top:4px}.metric.warning .metric-icon{background:var(--amberbg);color:var(--amber)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;min-width:0}.panel-header{padding:23px 23px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-header p{color:var(--muted);font-size:12px;margin-top:4px}.panel-body{padding:0 22px 22px}.panel-click{color:var(--teal);font-weight:800;font-size:12px;background:none;border:0}.panel-click:hover{text-decoration:underline}.activity-item{display:flex;gap:12px;border-top:1px solid #eef2f2;padding:16px 0;align-items:flex-start}.activity-symbol{display:grid;place-items:center;min-width:36px;height:36px;border-radius:10px;background:#ecf6f2;color:var(--teal)}.activity-symbol.out{background:#fff1e8;color:#c67f39}.activity-symbol.transfer{background:#edf1fd;color:#6176a9}.activity-text{min-width:0;flex:1}.activity-item .when{font-size:11px;color:#9aa8ad}.activity-text .line{font-weight:700;font-size:13px;margin-bottom:4px}.activity-text .sub{font-size:11.5px;color:#84959b}.low-list{padding:0 23px 18px}.low-entry{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid #eff3f3;align-items:center}.low-entry .label{font-weight:700;font-size:12px}.pill{background:#eaf7f3;color:#1c8476;font-weight:800;padding:5px 9px;border-radius:7px;font-size:10px;white-space:nowrap}.pill.low{background:var(--redbg);color:var(--red)}.pill.admin{background:#e9eefa;color:#516b9e}.pill.operator{background:#e5f5ee;color:#257861}.pill.viewer{background:#f1f2f3;color:#6e7c87}.tip{padding:16px 18px;border-radius:13px;background:#ecf6f3;border:1px solid #d3ece3;display:flex;align-items:flex-start;gap:12px;color:#30665e;font-size:12px;line-height:1.6}.tip.neutral{background:#f5f8fa;border-color:#e1e8e9;color:#617781}.tip.amber{background:#fff9ed;border-color:#f0dfb7;color:#8b682e}.empty{min-height:210px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px;gap:12px;color:var(--muted)}.empty-ico{width:60px;height:60px;background:#f2f8f6;color:#72a598;display:grid;place-items:center;border-radius:18px}.empty b{font-size:14px;color:#3b555e}.empty p{max-width:300px;font-size:12px}
.table-tools{display:flex;gap:10px;justify-content:space-between;align-items:center;margin:0 0 15px;flex-wrap:wrap}.filter-search{display:flex;align-items:center;gap:9px;height:43px;padding:0 12px;border:1px solid var(--line);background:#fff;border-radius:10px;min-width:min(100%,310px)}.filter-search .ico{color:#96a7a9}.filter-search input{flex:1;min-width:0;border:none;background:none;outline:0;font-size:13px}.filter-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.select-simple{height:43px;border:1px solid var(--line);background:white;color:#3c5963;border-radius:10px;padding:0 13px;min-width:135px;outline:none}.data-panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.data-table{width:100%;border-collapse:collapse;text-align:left}.data-table th{background:#fcfdfd;border-bottom:1px solid var(--line);padding:15px 18px;color:#84969d;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.data-table td{padding:15px 18px;border-bottom:1px solid #eef2f2;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tr:hover td{background:#f9fcfb}.main-name{font-size:13px;font-weight:800;color:#24444b}.main-name:hover{color:var(--teal)}.code{display:inline-block;font-size:11px;color:#2d7775;background:#edf7f4;padding:5px 8px;border-radius:6px;font-family:ui-monospace,monospace;font-weight:800}.secondary-text{display:block;font-size:11px;color:#91a0a6;margin-top:5px}.numeric{font-weight:800;font-variant-numeric:tabular-nums;font-size:13px}.right{text-align:right}.mini-btn{width:31px;height:31px;display:inline-grid;place-items:center;border:1px solid #e6ecec;background:white;border-radius:8px;color:#608087}.mini-btn:hover{background:var(--mint)}.mobile-cards{display:none}.mobile-nav{display:none}
.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-art{background:#103a42;position:relative;overflow:hidden;padding:65px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.login-art:before{content:'';position:absolute;width:480px;height:480px;top:14%;left:24%;border:1px solid rgba(151,233,205,.2);border-radius:50%;box-shadow:0 0 0 90px rgba(151,233,205,.035),0 0 0 190px rgba(151,233,205,.035)}.login-art h2{position:relative;z-index:1;font-size:41px;line-height:1.2;max-width:440px;letter-spacing:-1.5px}.login-art h2 span{color:#83debf}.login-art p{position:relative;color:#b9d5d2;max-width:400px;margin-top:20px;font-size:14px}.login-art footer{position:relative;color:#a6c1c0;font-size:12px}.login-card-wrap{display:grid;place-items:center;padding:28px}.login-card{max-width:390px;width:100%}.login-card h1{margin:25px 0 8px;font-size:27px}.login-card>p{margin-bottom:33px}.login-card .field{margin-bottom:18px}.login-card .btn{height:48px;margin-top:7px}.login-foot{margin-top:30px;font-size:11px;color:#96a2a7;text-align:center}.login-mobile-brand{display:none}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-weight:800;color:#38535e;font-size:11.5px}.field input,.field textarea,.field select{width:100%;outline:0;border:1px solid #dfe7e7;border-radius:10px;padding:12px 12px;min-height:43px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s;font-size:13px}.field textarea{min-height:84px;resize:vertical}.field small{font-size:10.5px;color:#82949a}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field.full{grid-column:1/-1}.input-row{display:flex;gap:9px;align-items:center}.input-row input{flex:1;min-width:0}.input-row .btn{flex:none}.notice{border:1px solid #d9ede7;border-radius:11px;padding:11px 13px;background:#f0faf6;color:#277567;font-size:12px;line-height:1.5}.notice.amber{background:#fff9ec;border-color:#efdfb5;color:#956c2b}.section-title{font-weight:800;font-size:12px;color:#55707a;letter-spacing:.6px;text-transform:uppercase;display:flex;align-items:center;gap:8px;margin:20px 0 14px}.section-title:after{content:'';height:1px;background:#edf1f1;flex:1}.detail-hero{display:flex;gap:15px;align-items:center;padding:17px;border:1px solid var(--line);border-radius:14px;background:#fafcfc}.hero-chip{width:68px;height:68px;border-radius:14px;background:#e8f4ef;display:grid;place-items:center;color:#257e70}.detail-hero h2{font-size:19px;line-height:1.3}.detail-specs{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.spec-line{padding:11px 0;border-bottom:1px solid #edf1f1;display:flex;justify-content:space-between;gap:12px;font-size:12px}.spec-line span{color:#7f949b}.spec-line b{text-align:right;font-weight:800}.stocks-list{display:flex;flex-direction:column;gap:8px}.stock-loc{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid #e7eeec;border-radius:10px}.stock-loc span{font-weight:800;color:#46636b}.stock-loc b{font-family:Manrope,sans-serif;font-size:17px}.stock-head{padding:13px;background:#f4faf7;border-radius:11px;display:flex;justify-content:space-between;align-items:center;margin:14px 0}
.modal-shade{position:fixed;inset:0;background:rgba(9,32,39,.50);z-index:30;display:flex;justify-content:flex-end;align-items:stretch;animation:fade .18s ease}.modal-box{background:#fff;width:min(620px,100vw);height:100%;display:flex;flex-direction:column;box-shadow:-20px 0 48px rgba(0,0,0,.12);animation:slide .2s ease}.modal-top{padding:23px 26px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.modal-top p{font-size:12px;color:var(--muted);margin-top:4px}.modal-top h2{font-size:21px}.modal-scroll{overflow:auto;flex:1;padding:24px 26px 32px;overscroll-behavior:contain}.modal-foot{background:#fff;padding:16px 26px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;box-shadow:0 -7px 25px rgba(11,31,37,.035)}.modal-x{background:#f3f7f6;border:0;color:#647f85;border-radius:9px;width:35px;height:35px;display:grid;place-items:center}.modal-x:hover{background:#e5f0ed}.spec-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin:8px 0}.spec-row .field input{min-height:39px}.spec-row .mini-btn{align-self:end;height:39px}.modal-quick{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.toast-box{position:fixed;bottom:25px;right:25px;z-index:50;background:#183c3d;color:#fff;padding:14px 18px;border-radius:11px;max-width:370px;box-shadow:0 12px 30px rgba(0,0,0,.20);font-size:13px;animation:fade .2s}.toast-box.error{background:#a8423e}@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes slide{from{transform:translateX(24px);opacity:.7}to{transform:none;opacity:1}}
@media(max-width:1100px){:root{--nav:220px}.main{padding:26px 23px 90px}.topbar{padding:0 24px}.metric-grid{gap:10px}.metric{padding:15px}.metric-value{font-size:24px}.dashboard-grid{grid-template-columns:1fr}.top-search input{width:210px}}
@media(max-width:760px){:root{--nav:0}.sidebar{display:none}.workspace{margin-left:0;width:100%;padding-bottom:75px}.topbar{height:65px;padding:0 17px}.topbar .crumb{font-size:12px}.top-search{display:none}.top-actions>.btn.primary{display:none}.main{padding:22px 15px 40px}.page-head{margin-bottom:18px;align-items:flex-start}.page-head h1{font-size:23px}.page-head .desc{font-size:12px;margin-top:5px}.head-actions .btn{padding:9px 11px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.metric{padding:16px;box-shadow:none;border-radius:13px}.metric-top{margin-bottom:10px}.metric-value{font-size:24px}.dashboard-grid{gap:15px}.panel-header{padding:18px 17px 13px}.panel-body{padding:0 17px 19px}.low-list{padding:0 17px 16px}.data-table{display:none}.mobile-cards{display:block;background:transparent}.part-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;margin:10px 0;box-shadow:0 4px 12px rgba(8,44,39,.02)}.part-card:first-child{margin-top:0}.part-card-top{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}.part-card-title{font-size:14px;font-weight:800;color:var(--dark);margin:8px 0 4px}.part-card-meta{color:#84969b;font-size:11.5px;line-height:1.6}.part-card-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf2f1;padding-top:12px;margin-top:13px}.filter-search{width:100%;min-width:0}.table-tools{align-items:stretch}.filter-actions{width:100%}.filter-actions .select-simple{flex:1;min-width:0}.data-panel{border:0;background:transparent;box-shadow:none;overflow:visible}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;background:#fff;border-top:1px solid #e0e9e8;justify-content:space-around;padding:9px 5px calc(9px + env(safe-area-inset-bottom));box-shadow:0 -8px 25px rgba(11,36,42,.045)}.mobile-nav button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;color:#8d9c9f;font-size:9.5px;font-weight:800;min-width:0;padding:4px 0}.mobile-nav button.active{color:#1a7b6d}.mobile-nav .ico{width:22px;height:22px}.login-page{grid-template-columns:1fr}.login-art{display:none}.login-card-wrap{min-height:100vh;align-items:center}.login-mobile-brand{display:flex;align-items:center;gap:9px;color:var(--dark);font-weight:800}.login-card h1{margin-top:34px}.modal-box{width:100vw}.modal-top{padding:17px}.modal-scroll{padding:17px 17px 28px}.modal-foot{padding:13px 17px calc(14px + env(safe-area-inset-bottom))}.modal-foot .btn{flex:1}.field-grid{gap:11px}.field-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-specs{grid-template-columns:1fr}.toast-box{bottom:95px;left:15px;right:15px;max-width:none}.modal-shade{z-index:40}}
@media(max-width:370px){.field-grid{grid-template-columns:1fr}.metric-value{font-size:21px}.head-actions .btn{font-size:11px}.modal-top h2{font-size:19px}}

/* V1.1: Importaciones seguras, táctiles y responsive. */
.import-panel{padding:22px;display:flex;flex-direction:column;gap:16px}.import-panel .field-grid{margin-top:4px}.import-panel .field input[type=file]{padding:11px;cursor:pointer}.import-buttons{display:flex;flex-wrap:wrap;gap:9px}.import-summary{display:flex;flex-wrap:wrap;gap:9px}.import-summary span{padding:9px 12px;border:1px solid #dfeae6;border-radius:10px;background:#f5faf7;font-size:12px;font-weight:800}.import-items{display:flex;flex-direction:column;gap:8px;margin:14px 0}.import-row{display:grid;grid-template-columns:140px 90px minmax(140px,1fr) minmax(150px,1.3fr);align-items:center;gap:10px;background:white;border:1px solid #e2e9e8;border-radius:12px;padding:12px}.import-row .field input{min-height:40px;padding:9px;font-size:12px}.import-number{font-weight:800;color:#247c68}.import-status{font-size:10px;color:#81939a;margin-top:6px}.import-confirm{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;padding:16px;border:1px solid #c6ded4;border-radius:11px;background:#f6fbf8}.import-confirm input{margin-top:3px;width:20px;height:20px;flex:none;accent-color:#167e69}@media(max-width:950px){.import-row{grid-template-columns:1fr 1fr}.import-row .field:last-child{grid-column:1/-1}}@media(max-width:760px){.import-panel{padding:16px}.import-row{grid-template-columns:1fr 1fr;padding:13px}.import-row .field{grid-column:1/-1}.import-row .field:last-child{grid-column:1/-1}.import-buttons .btn{flex:1;justify-content:center}.import-summary span{flex:1;text-align:center;min-width:105px}}

/* Escáner contextual: versión móvil y escritorio */
.qr-scanner{display:flex;flex-direction:column;gap:15px}
.qr-help{display:flex;gap:10px;align-items:flex-start;padding:13px 14px;background:#eef7f4;border:1px solid #cfe7dc;border-radius:12px;font-size:12px;line-height:1.55;color:#24574f}
.qr-help .ico{flex:none;width:19px;height:19px}
.qr-controls{display:flex;gap:9px;flex-wrap:wrap}
.qr-controls .btn{min-height:44px}
.qr-preview{display:none;width:100%;max-height:390px;object-fit:cover;border-radius:14px;background:#102e33}
.qr-manual{border:1px solid #dfebe8;border-radius:12px;padding:12px 14px;font-size:12px}
.qr-manual summary{cursor:pointer;font-weight:700;color:#375b61}
.qr-manual label{display:block;margin:12px 0 6px;font-weight:700}
.qr-manual textarea{display:block;resize:vertical;width:100%;border:1px solid #ccd9d6;border-radius:9px;padding:12px;font:inherit;min-height:70px;margin-bottom:10px}
.qr-summary{background:#f5faf8;border:1px solid #cbe6dc;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:14px}
.qr-summary-title{display:flex;gap:8px;align-items:center;font-size:15px;font-weight:800;color:#167a65}
.qr-summary-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.qr-summary-fields>div{background:white;border:1px solid #e2eeea;border-radius:10px;padding:11px;min-width:0;overflow-wrap:anywhere}
.qr-summary-fields span{display:block;font-size:11px;color:#778b8c;margin-bottom:5px}
.qr-summary-fields strong{font-size:15px;color:#153b42}
@media(max-width:760px){.qr-scanner{gap:13px}.qr-controls .btn{flex:1;justify-content:center;min-width:130px}.qr-summary-fields strong{font-size:13px}.qr-summary{padding:13px}}

/* V1.3: administración responsiva y acciones de peligro claramente distinguidas */
.danger-text{color:#af3933!important;border-color:#f1d8d5!important}
.audit-list{padding:18px;display:flex;flex-direction:column;gap:11px}
.audit-entry{padding:15px;border:1px solid #e0eae7;border-radius:12px;background:#fff;overflow-wrap:anywhere}
.audit-entry .small{margin-top:5px}
.audit-entry details{margin-top:10px;color:#3f636b;font-size:12px}
.audit-entry summary{cursor:pointer;font-weight:750}
.audit-entry pre{overflow:auto;white-space:pre-wrap;max-height:340px;background:#f3f8f7;border-radius:8px;padding:10px;font-size:11px}
.field textarea{width:100%;border:1px solid #d4e0df;padding:12px;border-radius:10px;min-height:85px}
@media(max-width:760px){.audit-list{padding:12px}.data-panel .btn.compact{white-space:normal;min-height:38px}.part-card-foot{flex-wrap:wrap;gap:8px}.part-card-foot .btn{flex:1}.modal-foot{flex-wrap:wrap}.modal-foot .btn{min-width:100px}.head-actions{flex-wrap:wrap}}

/* XStudio Parts V1.3.2 — Instalación PWA no intrusiva */
.pwa-install-top,.pwa-install-login,.pwa-install-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;background:#e6f6f1;color:#145d54;border:1px solid #b2ded1;border-radius:10px;padding:11px 13px;font:inherit;font-size:12px;font-weight:800;min-height:42px}
.pwa-install-top .ico,.pwa-install-login .ico,.pwa-install-link .ico{width:18px;height:18px}
.pwa-install-login{width:100%;margin-top:15px}
.pwa-install-link{width:100%;margin-bottom:12px}
.pwa-install-top{white-space:nowrap}
.pwa-install-top:hover,.pwa-install-login:hover,.pwa-install-link:hover{background:#d3ede4}
.pwa-install-top[hidden],.pwa-install-login[hidden],.pwa-install-link[hidden],.pwa-installed [data-action="install-app"]{display:none!important}
.pwa-guide{display:flex;align-items:flex-start;gap:18px;padding:14px;line-height:1.55}
.pwa-guide .ico{width:36px;height:36px;flex:none;color:#17856e}
.pwa-guide p{margin:0 0 14px}
.pwa-update-notice{position:fixed;bottom:84px;left:50%;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));z-index:20000;display:flex;gap:12px;align-items:center;background:#103a42;color:white;padding:12px 15px;border-radius:12px;box-shadow:0 8px 24px #0004;font-size:13px}
.pwa-update-notice button{border:0;padding:10px 12px;border-radius:8px;background:#30c39e;color:#063a30;cursor:pointer;font-weight:800}
@media(max-width:760px){.pwa-install-top{min-width:42px;padding:10px}.pwa-install-top span{display:none}.pwa-update-notice{bottom:95px;font-size:12px}.pwa-guide{gap:10px;padding:5px}}
@media(display-mode:standalone){.pwa-installed [data-action="install-app"]{display:none!important}}

/* V1.3.3: control de sesión siempre visible, incluso como PWA en celular */
.top-logout{border:1px solid #e5eaea;background:#fff;border-radius:10px;color:#a13c3c;font-size:12px;font-weight:800;display:flex;align-items:center;gap:5px;min-height:42px;padding:0 11px;cursor:pointer;white-space:nowrap}
.top-logout:hover,.top-logout:focus-visible{background:#fff4f2;border-color:#e6b4ad}
.top-logout .ico{width:19px;height:19px;flex:none}
.permissions-wrap{padding:18px 20px 22px;display:flex;flex-direction:column;gap:15px}
.permissions-wrap>.field select{max-width:280px}
.permissions-wrap .notice{line-height:1.6}
.permissions-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:8px 0 17px}
.permission-item{border:1px solid #e3eeec;padding:12px;border-radius:11px;display:flex;justify-content:space-between;align-items:center;gap:15px;cursor:pointer;background:#fff}
.permission-item:has(input:checked){background:#f0f9f5;border-color:#bce1d2}
.permission-item span{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12px}
.permission-item small{font-size:10px;color:#819b95;font-family:ui-monospace,monospace}
.permission-item input{width:21px;height:21px;accent-color:#12806d;flex:none}
.role-select{background:#fff;border:1px solid #dce9e5;border-radius:8px;font-size:12px;color:#29534d;padding:8px;max-width:180px;width:100%}
@media(max-width:760px){.top-logout{min-width:42px;padding:0 10px}.top-logout span{display:none}.permissions-list{grid-template-columns:1fr}.permissions-wrap{padding:15px}.role-select{max-width:none;margin:6px 0}.mobile-nav button{font-size:9px}}

/* V1.3.3: control de sesión siempre visible, incluso como PWA en celular */
.top-logout{border:1px solid #e5eaea;background:#fff;border-radius:10px;color:#a13c3c;font-size:12px;font-weight:800;display:flex;align-items:center;gap:5px;min-height:42px;padding:0 11px;cursor:pointer;white-space:nowrap}
.top-logout:hover,.top-logout:focus-visible{background:#fff4f2;border-color:#e6b4ad}
.top-logout .ico{width:19px;height:19px;flex:none}
.permissions-wrap{padding:18px 20px 22px;display:flex;flex-direction:column;gap:15px}
.permissions-wrap>.field select{max-width:280px}
.permissions-wrap .notice{line-height:1.6}
.permissions-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:8px 0 17px}
.permission-item{border:1px solid #e3eeec;padding:12px;border-radius:11px;display:flex;justify-content:space-between;align-items:center;gap:15px;cursor:pointer;background:#fff}
.permission-item:has(input:checked){background:#f0f9f5;border-color:#bce1d2}
.permission-item span{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12px}
.permission-item small{font-size:10px;color:#819b95;font-family:ui-monospace,monospace}
.permission-item input{width:21px;height:21px;accent-color:#12806d;flex:none}
.role-select{background:#fff;border:1px solid #dce9e5;border-radius:8px;font-size:12px;color:#29534d;padding:8px;max-width:180px;width:100%}
@media(max-width:760px){.top-logout{min-width:42px;padding:0 10px}.top-logout span{display:none}.permissions-list{grid-template-columns:1fr}.permissions-wrap{padding:15px}.role-select{max-width:none;margin:6px 0}.mobile-nav button{font-size:9px}}
