:root{
  --green:#278F16; --green-dark:#1f7113; --ink:#1e2328; --muted:#697077;
  --line:#e1e4e5; --bg:#f4f5f5; --white:#fff; --soft:#f8f9f9;
  --danger:#8b3c3c; --danger-bg:#fbf4f4; --ok-bg:#f0f6ef;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
a{color:inherit}
.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,5vw);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:baseline;gap:8px;text-decoration:none}.brand strong{font-size:17px;letter-spacing:.12em}.brand span{font-size:10px;color:var(--muted);letter-spacing:.22em}
.userbox{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.userbox .role{border-left:1px solid var(--line);padding-left:12px}.userbox a{text-decoration:none;color:var(--ink);font-weight:700}
main{max-width:1160px;margin:0 auto;padding:38px 24px 70px}
.login-main{max-width:none;padding:24px}
.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:800;color:var(--green);margin-bottom:9px}
.hero{max-width:720px}.hero h1,.page-head h1,.panel h1,.product-head h1{font-size:31px;line-height:1.15;margin:0 0 9px}.hero p,.page-head p,.panel>p{margin:0;color:var(--muted);line-height:1.6}
.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:30px}
.module-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:20px;min-height:185px;display:flex;flex-direction:column;text-decoration:none;transition:.15s}
.module-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(30,35,40,.06);border-color:#cbd0d2}
.module-card.restricted{background:#fafafa}.module-top{display:flex;align-items:center;justify-content:space-between}.module-icon{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;background:var(--soft)}
.access-tag{font-size:8px;letter-spacing:.09em;border:1px solid #d6dadd;color:#747a80;border-radius:999px;padding:5px 7px}
.module-card h2{font-size:16px;margin:23px 0 7px}.module-card p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}.module-footer{margin-top:auto;padding-top:18px;display:flex;justify-content:space-between;font-size:11px;font-weight:800;color:var(--green)}
.login-card{max-width:440px;margin:8vh auto;background:#fff;border:1px solid var(--line);border-radius:13px;padding:34px}
.login-brand{display:flex;align-items:baseline;gap:9px;margin-bottom:30px}.login-brand strong{letter-spacing:.13em}.login-brand span{font-size:10px;color:var(--muted);letter-spacing:.2em}
.login-card h1{font-size:27px;margin:0 0 8px}.login-card>p{margin:0;color:var(--muted);line-height:1.5}
.login-card form,.form-stack{display:grid;gap:9px;margin-top:24px}
label{font-size:12px;font-weight:700;display:grid;gap:7px}
input,textarea,select{width:100%;padding:12px 13px;border:1px solid #d7dbdd;border-radius:8px;background:#fff;color:var(--ink);font:inherit;outline:none}
input:focus,textarea:focus,select:focus{border-color:#9ab795;box-shadow:0 0 0 3px rgba(39,143,22,.07)}
textarea{resize:vertical;line-height:1.5}
label small{color:var(--muted);font-weight:400}
button,.button{display:inline-block;border:0;background:var(--green);color:#fff;border-radius:8px;padding:12px 16px;font-size:12px;font-weight:800;text-decoration:none;cursor:pointer}
button:hover,.button:hover{background:var(--green-dark)}button:disabled{opacity:.4;cursor:not-allowed}
.button.secondary,.small-link{background:#fff;color:var(--ink);border:1px solid var(--line)}
.setup-note,.coming{margin-top:18px;padding:12px 14px;background:#f8f8f8;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px;line-height:1.5}
.flash-stack{margin-bottom:18px}.flash{padding:12px 14px;border-radius:8px;border:1px solid var(--line);border-left:3px solid var(--green);background:#fff;font-size:12px}.flash.error{border-left-color:var(--danger);background:var(--danger-bg)}
.back{display:inline-block;margin-bottom:22px;text-decoration:none;color:var(--muted);font-size:12px}
.panel,.product-shell{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px;margin-top:14px}.panel.narrow{max-width:680px;margin-left:auto;margin-right:auto}.panel.wide{max-width:900px;margin-left:auto;margin-right:auto}
.password-panel{margin-top:8vh}.lockmark{width:42px;height:42px;border:1px solid var(--line);display:grid;place-items:center;border-radius:9px;margin-bottom:20px;background:var(--soft)}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.count-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 18px;min-width:125px}.count-card strong{font-size:22px;display:block}.count-card span{font-size:10px;color:var(--muted)}
.search{display:flex;gap:9px;margin:25px 0 10px}.search input{flex:1}.sync-note{font-size:11px;color:var(--muted);margin-bottom:13px}
.product-list{display:grid;gap:8px}.product-row{background:#fff;border:1px solid var(--line);border-radius:9px;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;text-decoration:none}.product-row:hover{border-color:#c7cdcf}.product-row small{display:block;margin-top:5px;color:var(--muted);font-size:11px}
.row-actions{display:flex;align-items:center;gap:13px}.arrow{color:var(--muted)}
.status{font-size:8px;letter-spacing:.08em;border:1px solid var(--line);border-radius:999px;padding:5px 7px;color:var(--muted);white-space:nowrap}.status.verified{background:var(--ok-bg);border-color:#cedfcb;color:var(--green-dark)}.status.large{font-size:9px;padding:7px 9px}
.empty{padding:22px;background:#fff;border:1px dashed #ccd1d3;border-radius:9px;color:var(--muted);font-size:12px}.empty.compact{padding:14px;margin-top:12px}
.product-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.product-head h1{font-size:29px}.meta{font-size:11px;color:var(--muted);margin:0}
.knowledge-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:26px}.knowledge{background:var(--soft);border:1px solid var(--line);border-radius:9px;padding:18px}.knowledge.full{grid-column:1/-1}.knowledge.answer{background:#fbfcfb;border-left:3px solid var(--green)}
.knowledge h3{font-size:12px;margin:0 0 9px}.knowledge p,.knowledge li{font-size:13px;line-height:1.55}.knowledge p{margin:0}.knowledge ul{margin:0;padding-left:18px}.knowledge li{margin:5px 0}.muted{color:var(--muted)}
.problem-section{margin-top:28px}.section-title h2{font-size:17px;margin:0 0 5px}.section-title p{font-size:12px;color:var(--muted);margin:0 0 12px}.problem-section details,.technical{border-top:1px solid var(--line);padding:14px 0}.problem-section summary,.technical summary{font-size:12px;font-weight:800;cursor:pointer}.problem-section details p,.technical-body{font-size:12px;line-height:1.55;color:var(--muted)}
.technical{margin-top:20px}.product-shell>.button{margin-top:16px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:25px 0}.stats>div{background:#fff;border:1px solid var(--line);border-radius:9px;padding:17px}.stats strong{font-size:23px;display:block}.stats span{font-size:10px;color:var(--muted)}
.panel-head{display:flex;justify-content:space-between;gap:20px}.panel h2{font-size:18px;margin:0 0 6px}.panel-head p,.panel>p.muted{font-size:12px;color:var(--muted);margin:0}.integration{font-size:8px;letter-spacing:.08em;border:1px solid var(--line);padding:6px 8px;height:max-content;border-radius:999px}.integration.ok{color:var(--green-dark);background:var(--ok-bg);border-color:#cfdfcc}.logline{font-size:11px;color:var(--muted);background:var(--soft);padding:11px;border-radius:7px;margin:16px 0}
.audit-list{margin-top:12px}.audit-row{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-top:1px solid var(--line);font-size:11px}.audit-row div{display:flex;gap:8px}.audit-row span,.audit-row time{color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:25px}.span-2{grid-column:1/-1}
.user-list{display:grid;gap:9px;margin-top:24px}.user-row{background:#fff;border:1px solid var(--line);border-radius:9px;padding:15px 17px;display:grid;grid-template-columns:1.1fr auto 1.5fr;gap:14px;align-items:center}.user-main strong{display:block;font-size:13px}.user-main span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.user-status{display:flex;gap:5px}.inline-form{display:grid;grid-template-columns:1fr 1fr auto auto;gap:7px;align-items:center}.inline-form select{padding:8px;font-size:11px}.small-btn,.small-link{padding:9px 10px;font-size:10px;border-radius:7px}.small-link{text-decoration:none;text-align:center}
@media(max-width:900px){.module-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.user-row{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr 1fr auto auto}}
@media(max-width:620px){main{padding:26px 16px 55px}.topbar{padding:0 16px}.userbox>span:first-child{display:none}.userbox .role{border:0;padding:0}.module-grid{grid-template-columns:1fr}.hero h1,.page-head h1,.product-head h1,.panel h1{font-size:26px}.page-head,.product-head,.panel-head{flex-direction:column}.search{flex-direction:column}.knowledge-grid{grid-template-columns:1fr}.knowledge.full{grid-column:auto}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.stats{grid-template-columns:1fr 1fr}.inline-form{grid-template-columns:1fr 1fr}.user-status{justify-content:flex-start}}
.login-help{display:block;margin-top:17px;text-align:center;font-size:11px;color:var(--muted);text-decoration:none}.login-help:hover{color:var(--ink)}
.full-button{display:block;text-align:center;margin-top:24px}
.user-row-v05{grid-template-columns:1fr auto 1.8fr}.inline-form-v05{grid-template-columns:1.35fr .8fr .8fr auto auto}.inline-form-v05 input,.inline-form-v05 select{padding:8px;font-size:11px}
@media(max-width:900px){.user-row-v05{grid-template-columns:1fr}.inline-form-v05{grid-template-columns:1fr 1fr}.inline-form-v05 input{grid-column:1/-1}}
.integration-stack{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.ai-panel{margin:24px 0 8px;padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.ai-panel h2{font-size:16px;margin:0 0 6px}.ai-panel p{font-size:12px;color:var(--muted);margin:0;line-height:1.55}
.ai-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.ai-actions form{margin:0}.ai-actions .button.secondary{padding:12px 16px}
.ai-draft{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:16px}.ai-draft p{font-size:12px;line-height:1.6;margin:10px 0;color:var(--ink)}
.ai-draft-head{display:flex;justify-content:space-between;gap:16px;font-size:11px}.ai-draft-head span{color:var(--muted)}
.source-list{display:grid;gap:6px;border-top:1px solid var(--line);padding-top:12px;margin-top:12px;font-size:11px}.source-list a{color:var(--green-dark);word-break:break-all}
.danger-line{border-left:3px solid var(--danger);background:var(--danger-bg)}
@media(max-width:620px){.integration-stack{justify-content:flex-start}.ai-draft-head{flex-direction:column}.ai-actions{flex-direction:column}.ai-actions button,.ai-actions .button{width:100%}}
/* v0.8 · estructura corporativa y seguridad de red */
.network-list{display:grid;gap:9px;margin-top:16px}.network-row{display:grid;grid-template-columns:1.15fr 1.2fr 1fr .8fr auto;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--soft)}.network-row>div strong{display:block;font-size:12px}.network-row>div span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.observed-row{grid-template-columns:1fr 2fr}.allow-form{display:grid;grid-template-columns:1.2fr 1fr auto;gap:8px}.network-denied{margin-top:8vh}.user-row-v08{grid-template-columns:1fr auto 2.7fr}.employee-edit-form{display:grid;grid-template-columns:1.25fr .8fr 1.15fr 1.1fr .95fr 1fr 1fr .75fr auto auto;gap:6px;align-items:center}.employee-edit-form input,.employee-edit-form select{padding:8px;font-size:10px}
@media(max-width:1100px){.user-row-v08{grid-template-columns:1fr}.employee-edit-form{grid-template-columns:repeat(3,1fr)}.network-row,.observed-row{grid-template-columns:1fr}.allow-form{grid-template-columns:1fr 1fr auto}}
@media(max-width:620px){.employee-edit-form,.allow-form{grid-template-columns:1fr}.network-row{grid-template-columns:1fr}.employee-edit-form .small-link{text-align:center}}
