:root{
  --navy:#071a32;--navy2:#0b2547;--blue:#0b68e8;--blue2:#0757c5;--bg:#f4f7fb;
  --text:#152238;--muted:#728198;--border:#dde5ef;--danger:#bc2d2d;--warning:#bd7600;
  --success:#167740;--white:#fff;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}.hidden{display:none!important}
.primary,.secondary,.danger,.success,.btn{border:0;border-radius:8px;padding:9px 12px;font-weight:750}
.primary{background:var(--blue);color:white}.primary:hover{background:var(--blue2)}
.secondary,.btn{background:#edf3fa;color:#203553}.danger{background:#c73535;color:white}.success{background:#168148;color:white}
.wide{width:100%}
.login-screen{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:white}
.login-panel{display:flex;flex-direction:column;justify-content:center;padding:8vw}
.brand-login{background:linear-gradient(145deg,var(--navy),#0b315c);color:#fff}
.login-logo{width:220px;max-width:75%;height:auto;object-fit:contain;background:white;border-radius:12px;padding:10px;margin-bottom:24px}
.brand-login h1{font-size:42px;margin:0 0 10px}.brand-login p{font-size:18px;line-height:1.55;max-width:560px;color:#d3e1f1}
.security-copy{margin-top:28px;color:#a9c2dd;font-size:13px}
.login-form{max-width:560px;width:100%;margin:auto}.login-form h2{font-size:28px;margin-bottom:26px}
label{display:block;font-size:12px;font-weight:800;color:#516079;margin:12px 0 6px}
input,select,textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;background:white;color:var(--text)}
textarea{min-height:92px;resize:vertical}.form-error{margin-top:12px;background:#fff0f0;color:#9e2828;border:1px solid #efc4c4;padding:10px;border-radius:8px}
.setup-screen{min-height:100vh;display:grid;place-items:center;padding:30px;background:linear-gradient(145deg,#edf4fb,#fff)}
.setup-card{max-width:720px;background:white;border:1px solid var(--border);border-radius:16px;padding:32px;box-shadow:0 18px 55px #18385820}
.setup-card img{width:180px}.setup-card h1{margin:14px 0 8px}.setup-card li{margin:9px 0}.setup-note{background:#fff7e7;border:1px solid #efd7a4;padding:10px;border-radius:8px}
.app{min-height:100vh;display:grid;grid-template-columns:240px 1fr}
.sidebar{background:linear-gradient(180deg,var(--navy),#081528);color:white;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{height:105px;display:grid;place-items:center;border-bottom:1px solid #ffffff16}.brand img{width:145px;max-height:82px;object-fit:contain;background:white;border-radius:9px;padding:5px}
.sidebar nav{padding:18px 10px;display:flex;flex-direction:column;gap:5px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}
.sidebar nav button{border:0;background:transparent;color:#c9d7e7;border-radius:8px;text-align:left;padding:11px 12px;font-weight:650;display:flex;gap:10px;align-items:center}
.sidebar nav button:hover,.sidebar nav button.active{background:#12355f;color:white}
.nav-count{margin-left:auto;background:#e84a4a;color:white;border-radius:999px;padding:2px 7px;font-size:11px}
.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff16;padding:15px;flex-shrink:0;background:#081528}.sidebar-foot small{display:block;color:#9eb2c8;margin-top:3px}
.logout{width:100%;margin-top:11px;border:1px solid #ffffff20;background:#ffffff0b;color:#d9e4ef;padding:8px;border-radius:8px}
main{min-width:0}.topbar{height:86px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:4}
.topbar h1{font-size:22px;margin:0}.topbar p{font-size:12px;margin:4px 0 0;color:var(--muted)}
.top-actions{display:flex;align-items:center;gap:10px}.role-badge{background:#eaf2fd;color:#0b5ec9;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}
.inbox-button{border:0;background:var(--blue);color:white;border-radius:9px;padding:8px 11px;font-weight:800}.inbox-button span{background:white;color:var(--blue);border-radius:999px;padding:2px 7px;margin-left:4px}
.page{padding:24px 28px}.panel{background:white;border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:16px;box-shadow:0 3px 15px #223b5508}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.section-head h2,.section-head h3{margin:0}.section-head p{margin:5px 0 0;color:var(--muted);font-size:13px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:17px}.kpi{background:white;border:1px solid var(--border);border-radius:12px;padding:16px}.kpi span{font-size:12px;color:var(--muted);font-weight:750}.kpi strong{display:block;font-size:25px;margin:7px 0 2px}.kpi small{color:#8290a3}
.kpi.danger-kpi{border-left:4px solid var(--danger)}.kpi.warning-kpi{border-left:4px solid var(--warning)}.kpi.success-kpi{border-left:4px solid var(--success)}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:850px}.data-table th,.data-table td{padding:11px 10px;text-align:left;border-bottom:1px solid #e8edf3;font-size:13px;vertical-align:middle}.data-table th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#66758a;background:#f8fafc}
.data-table tbody tr:hover{background:#f9fbfe}.clickable-row{cursor:pointer}
.toolbar{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:9px;margin:12px 0}
.client-cell{display:flex;align-items:center;gap:9px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e8f2ff;color:#0b64d6;font-weight:900}.client-cell small{display:block;color:#7e8da2;margin-top:2px}
.status{display:inline-block;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.status.active{background:#e8f2ff;color:#0b60ca}.status.success{background:#e7f7ed;color:#18733f}.status.danger{background:#ffe8e8;color:#ab2929}.status.warning{background:#fff2d8;color:#956000}.status.neutral{background:#edf1f5;color:#617086}
.alert-line{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #e8edf3}.alert-line:last-child{border-bottom:0}.alert-line p{margin:4px 0 0;color:var(--muted);font-size:12px}
.alert-marker{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px}.alert-marker.critical{background:#c72c2c}.alert-marker.warning{background:#c47a00}.alert-marker.info{background:#2970c8}
.metric-inline{display:flex;gap:8px;flex-wrap:wrap}.mini-chip{font-size:10px;font-weight:800;padding:5px 7px;border-radius:999px;background:#eef3f8;color:#52657d}.mini-chip.danger{background:#ffe9e9;color:#a52a2a}.mini-chip.warning{background:#fff1d5;color:#966100}.money-debt{font-weight:800;color:#a72a2a}.overdue-note{display:block;color:#b32d2d;font-size:10px;font-weight:800;margin-top:3px}
.modal{position:fixed;inset:0;background:#07182cb0;display:grid;place-items:center;padding:25px;z-index:20}.modal-card{background:white;border-radius:14px;max-width:1120px;width:min(1120px,96vw);max-height:90vh;overflow:auto;padding:24px;position:relative}.modal-close{position:absolute;right:13px;top:10px;border:0;background:#edf2f7;border-radius:50%;width:34px;height:34px;font-size:20px}
.profile-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding-bottom:15px;border-bottom:1px solid var(--border)}.profile-avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#e7f1ff;color:#0862ce;font-weight:900;font-size:22px}.profile-head h2{margin:0}.profile-head p{margin:4px 0;color:var(--muted)}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:15px 0}.summary-card{background:#f8fafc;border:1px solid var(--border);border-radius:9px;padding:12px}.summary-card span{display:block;font-size:11px;color:var(--muted)}.summary-card strong{display:block;font-size:19px;margin-top:5px}.summary-card.debt{background:#fff6f6;color:#a92a2a;border-color:#efc9c9}
.lock-banner{background:#fff0f0;border:1px solid #efbcbc;color:#9d2525;border-radius:9px;padding:12px;margin:10px 0;font-weight:750}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.global-message{margin:18px 28px 0;padding:11px;border-radius:8px;background:#eaf4ff;color:#135ca7;border:1px solid #c9def5}
.empty{padding:28px;text-align:center;color:#7a899d}
@media(max-width:1000px){.kpis,.summary-grid{grid-template-columns:repeat(2,1fr)}.toolbar{grid-template-columns:1fr 1fr}.app{grid-template-columns:205px 1fr}}
@media(max-width:720px){.login-screen{grid-template-columns:1fr}.brand-login{display:none}.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-foot{display:none}.topbar{position:relative}.kpis,.summary-grid,.form-grid{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr}.page{padding:18px}.topbar{padding:0 18px}}

/* V1.2 — Clientes comerciales para Ventas */
.sales-client-toolbar{grid-template-columns:1.7fr .8fr 1fr 1fr}
.row-buttons{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.primary.compact{padding:7px 9px;font-size:12px}
.sales-client-summary{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.sales-client-summary{grid-template-columns:repeat(2,1fr)}.sales-client-toolbar{grid-template-columns:1fr}}
@media(max-width:600px){.sales-client-summary{grid-template-columns:1fr}}

/* V1.5 — Decisiones administrativas de cancelación */
.admin-action-card{border:1px solid #e0e7ef;border-radius:12px;padding:16px;margin:12px 0;background:#fff}
.cancellation-card{border-left:5px solid #c73535;background:#fffafa}
.admin-action-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.admin-action-head h3{margin:4px 0}.admin-action-head p{margin:4px 0;color:#6d7c91}
.action-label{display:inline-block;font-size:10px;font-weight:900;letter-spacing:.06em;color:#a52525;background:#ffe5e5;border-radius:999px;padding:5px 8px}
.admin-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}
.admin-action-grid>div{background:#f7f9fc;border:1px solid #e4eaf1;border-radius:9px;padding:10px}
.admin-action-grid small,.request-detail small{display:block;color:#748299;font-size:10px;font-weight:800;text-transform:uppercase}
.admin-action-grid b{display:block;margin-top:5px;font-size:12px}
.request-detail{background:#f8fafc;border:1px solid #e4eaf1;border-radius:9px;padding:11px;margin:10px 0}
.request-detail p{margin:5px 0 0}
.admin-decision-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}
.admin-pending-count{background:#ffe8e8;color:#a72525;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900}
.admin-empty-ok{background:#edf9f1;border:1px solid #c8e9d4;color:#18723d;border-radius:9px}
.admin-click-alert .primary{white-space:nowrap}
@media(max-width:900px){.admin-action-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.admin-action-grid{grid-template-columns:1fr}.admin-decision-actions{flex-direction:column}.admin-decision-actions button{width:100%}}

/* V1.6 — Asignación de Redactor y eliminación de clientes */
.assignment-box{margin:18px 0;padding:15px;border:1px solid #cadcf1;background:#f7fbff;border-radius:11px}
.assignment-box h3{margin:0 0 5px}.assignment-box p{margin:0 0 12px;color:#6f7f95;font-size:12px}
.assignment-row{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}
.profile-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:650px){.assignment-row{grid-template-columns:1fr}.assignment-row button{width:100%}.profile-actions{grid-column:1/-1;justify-content:stretch}.profile-actions button{flex:1}}

/* V1.7 — Storage privado por orden */
.order-files-section{margin-top:20px;border-top:1px solid #e3eaf2;padding-top:16px}
.order-files-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:11px}
.order-files-head h3{margin:0}.order-files-head p{margin:4px 0;color:#728198;font-size:12px}
.file-count{background:#edf3fa;color:#425977;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800}
.upload-box{display:grid;grid-template-columns:.8fr 1.5fr auto;gap:8px;align-items:end;padding:12px;border:1px dashed #bfcfe2;background:#f9fcff;border-radius:10px;margin:10px 0 14px}
.file-list{display:flex;flex-direction:column;gap:7px}
.file-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid #e2e8f0;border-radius:9px;padding:10px;background:#fff}
.file-icon{width:34px;height:34px;border-radius:8px;background:#e8f2ff;color:#0c64d4;display:grid;place-items:center;font-size:18px}
.file-info b{display:block;font-size:13px}.file-info small{display:block;color:#748198;margin-top:4px;font-size:11px}
@media(max-width:750px){.upload-box{grid-template-columns:1fr}.upload-box button{width:100%}}

/* V1.8 — Módulo Redactor completo */
.article-brief-box,.publication-workflow{margin:18px 0;padding:16px;border:1px solid #dde6f0;border-radius:12px;background:#fff}
.compact-head{margin-bottom:10px}.article-target{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#f3f7fc;border-radius:9px;padding:11px;margin-bottom:10px}.article-target span{font-size:12px;color:#728198}.article-target b{color:#0a5fc9}
.author-list{display:flex;flex-direction:column;gap:7px}.author-card-read{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;border:1px solid #e5ebf2;border-radius:9px;padding:10px}.author-card-read small{display:block;color:#738299;margin-top:3px}.author-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e8f2ff;color:#0b62cc;font-weight:900}
.author-editor-head{margin-top:18px}.author-edit-card{border:1px solid #dfe7f0;border-radius:10px;padding:12px;margin:9px 0;background:#fafcff}.author-edit-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.danger-lite{border:0;background:#ffeaea;color:#a62b2b;border-radius:7px;padding:6px 8px;font-weight:800}
.existing-journal-box{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.existing-journal-box label{grid-column:1/-1}.divider-text{display:flex;align-items:center;gap:10px;margin:18px 0;color:#8190a3;font-size:11px}.divider-text:before,.divider-text:after{content:"";height:1px;background:#e1e7ef;flex:1}
.publication-attempt{border:1px solid #dfe7f0;border-left:4px solid #2773c9;border-radius:10px;padding:14px;margin:10px 0;background:#fbfdff}.publication-attempt.rejected-attempt{border-left-color:#c73535;background:#fffafa}.attempt-head{display:flex;justify-content:space-between;gap:14px}.attempt-head h4{margin:5px 0}.attempt-head p{margin:0;color:#728198;font-size:12px}.attempt-head a{color:#0b68e8;text-decoration:none}.attempt-number{display:inline-block;font-size:10px;font-weight:900;color:#506780;background:#edf3f9;border-radius:999px;padding:4px 7px}.attempt-meta{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0;font-size:11px;color:#718097}
.rejection-reason{background:#fff0f0;border:1px solid #efc1c1;border-radius:8px;padding:10px;margin:9px 0;color:#962929}.rejection-reason p{margin:4px 0 0}
.evidence-list{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:10px 0}.evidence-chip{border:1px solid #cbd9e9;background:#f1f6fc;color:#28577e;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:750}.muted-small{font-size:11px;color:#8491a3}
.publication-controls{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:end;border-top:1px solid #e5ebf2;padding-top:11px;margin-top:10px}.publication-controls label{margin-top:0}
.evidence-upload{display:grid;grid-template-columns:.9fr 1.4fr auto;gap:7px;margin-top:9px;padding:10px;background:#f7f9fc;border-radius:9px}
.credential-warning{background:#edf6ff;border:1px solid #c9e0f7;color:#245985;border-radius:9px;padding:10px;margin:10px 0 14px;font-size:12px}.password-row{display:grid;grid-template-columns:1fr auto;gap:7px}
.startup-alert-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.startup-alert-head h2{margin:5px 0}.startup-alert-head p{margin:4px 0;color:#75839a}.startup-alert-count{display:grid;place-items:center;min-width:42px;height:42px;border-radius:50%;background:#c73535;color:white;font-size:18px;font-weight:900}
.startup-alert-list{display:flex;flex-direction:column;gap:9px;margin-top:15px}.startup-order-alert,.writer-dashboard-alert{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid #e0e7ef;border-radius:10px;padding:12px}.startup-order-alert small,.writer-dashboard-alert small{display:block;color:#7a889d;margin-top:3px}
.writer-reason-list{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.writer-reason{font-size:10px;font-weight:800;border-radius:999px;padding:5px 7px}.writer-reason.critical{background:#ffe7e7;color:#a62828}.writer-reason.warning{background:#fff0d3;color:#956000}.writer-reason.info{background:#eaf3ff;color:#1764b7}
.writer-dashboard-alert{margin:8px 0}
@media(max-width:800px){.publication-controls,.evidence-upload,.existing-journal-box{grid-template-columns:1fr}.publication-controls button,.evidence-upload button,.existing-journal-box button{width:100%}.attempt-head{flex-direction:column}.startup-order-alert,.writer-dashboard-alert{grid-template-columns:1fr}}

/* V1.9 — Consolidación y compatibilidad */
.blocking-system-error{max-width:620px}.blocking-system-error h2{margin:8px 0}.blocking-system-error p{line-height:1.55;color:#5f6f85}
.new-order-head{margin-bottom:14px}.new-order-head h2{margin:5px 0}.new-order-head p{margin:3px 0;color:#728198}
#createOrderBtn:disabled{opacity:.6;cursor:not-allowed}
.global-message{display:flex;gap:8px;align-items:center}

/* V1.10 — Bitácora de acciones del Redactor */
.timeline-box{margin:14px 0;border:1px solid #e0e7f0;border-radius:10px;padding:12px;background:#fbfcfe}
.timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.timeline-head small{display:block;color:#78879b;margin-top:3px}.timeline-head>span{background:#edf3fa;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;color:#526b86}
.publication-timeline{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:22px 1fr;gap:9px;min-height:55px}
.timeline-rail{display:flex;flex-direction:column;align-items:center}.timeline-dot{width:12px;height:12px;border-radius:50%;margin-top:3px;background:#6e8aaa;border:3px solid #e6edf5;box-sizing:content-box}.timeline-dot.success{background:#24834b}.timeline-dot.danger{background:#c43b3b}.timeline-dot.warning{background:#c38314}.timeline-dot.active{background:#246bc0}
.timeline-line{width:2px;background:#dce5ef;flex:1;margin:3px 0}.timeline-content{padding-bottom:10px}.timeline-title{display:flex;justify-content:space-between;gap:10px}.timeline-title span{font-size:10px;color:#78879b}.timeline-content p{margin:5px 0;color:#53647a;font-size:12px}.timeline-content small{color:#8a96a6}
.compact-empty{padding:9px}
.publication-action-editor{margin-top:13px;padding:13px;border:1px solid #c8d9ed;background:#f7fbff;border-radius:10px}.action-editor-title{display:flex;justify-content:space-between;margin-bottom:10px}.action-editor-title small{display:block;color:#728198;margin-top:3px}
.action-editor-grid{display:grid;grid-template-columns:1fr .55fr;gap:9px}.action-editor-grid .full{grid-column:1/-1}.action-editor-grid textarea{width:100%;box-sizing:border-box;resize:vertical}
.publication-save-row{display:flex;justify-content:flex-end;gap:8px;align-items:center;margin-top:10px}.publication-save-row #pubSave_{font-weight:900}
.closed-attempt-note{margin-top:12px;padding:11px;border:1px solid #e3d4d4;background:#fff8f8;border-radius:9px;color:#795050;font-size:12px}
@media(max-width:700px){.action-editor-grid{grid-template-columns:1fr}.action-editor-grid .full{grid-column:auto}.publication-save-row{flex-direction:column}.publication-save-row button{width:100%}.timeline-title{flex-direction:column;gap:2px}}

/* V1.11 — Feedback explícito al guardar acciones */
.publication-feedback{margin-top:10px;border-radius:8px;padding:9px 10px;font-size:12px;font-weight:750}
.publication-feedback.hidden{display:none}
.publication-feedback.error{background:#fff0f0;border:1px solid #efc3c3;color:#9a2929}
.publication-feedback.working{background:#eef5ff;border:1px solid #c7dcf8;color:#245f9d}
.publication-feedback.success{background:#edf9f1;border:1px solid #c7e7d2;color:#1d7542}
.field-help{display:block;color:#74849a;margin-top:5px;font-size:10px}

/* V1.12 — Notificaciones accionables y navegación integrada */
.notification-card{transition:box-shadow .15s ease,border-color .15s ease,background .15s ease}
.notification-clickable{cursor:pointer}
.notification-clickable:hover{border-color:#a9c7e8;background:#f8fbff;box-shadow:0 4px 14px rgba(31,83,139,.08)}
.notification-unread{border-left:4px solid #1670db}
.notification-read{opacity:.9}
.notification-main{min-width:0}
.notification-destination{display:inline-block;margin-top:6px;color:#0d67ce;font-size:11px;font-weight:850}
.notification-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.notification-target-highlight{animation:notificationTargetPulse 1s ease-in-out 0s 3;border-color:#1574dc!important;box-shadow:0 0 0 3px rgba(21,116,220,.15)!important}
@keyframes notificationTargetPulse{0%,100%{background:inherit}50%{background:#eaf4ff}}
#navOrders.hidden{display:none!important}
@media(max-width:700px){.notification-actions{width:100%;justify-content:flex-start}.notification-card{align-items:flex-start;flex-direction:column}}

/* V1.13 — Mesa de trabajo visible del Redactor */
.writer-workspace{margin:14px 0 18px;padding:16px;border:2px solid #b9d5f4;border-radius:13px;background:linear-gradient(180deg,#f3f8ff,#ffffff)}
.writer-workspace.locked-workspace{border-color:#e3c6c6;background:#fff9f9}
.writer-workspace-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.writer-workspace-head h3{margin:6px 0 2px;font-size:19px}.writer-workspace-head p{margin:0;color:#61738a;line-height:1.4}
.writer-workspace-state{white-space:nowrap;background:#e7f1ff;color:#165fae;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900}
.writer-workspace-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.writer-workspace-actions button{min-height:38px}
.workspace-main-action{font-weight:900;box-shadow:0 4px 12px rgba(20,100,190,.16)}
.writer-workspace-note{margin-top:12px;background:#fff8e8;border:1px solid #ead8a9;border-radius:8px;padding:9px;color:#765f28;font-size:11px}
.writer-empty-action{display:flex;flex-direction:column;align-items:flex-start;gap:7px;background:#f7fbff;border:1px dashed #b9cfe8;border-radius:9px}
.writer-empty-action span{color:#728198}
.writer-section-highlight{animation:writerSectionPulse .75s ease-in-out 0s 3}
@keyframes writerSectionPulse{0%,100%{box-shadow:0 0 0 0 rgba(28,108,200,0)}50%{box-shadow:0 0 0 4px rgba(28,108,200,.16)}}
@media(max-width:700px){.writer-workspace-head{flex-direction:column}.writer-workspace-actions{flex-direction:column}.writer-workspace-actions button{width:100%}}

/* V1.14 — Histórico de avances de Tesis */
.thesis-workflow{border-left:4px solid #6b58b9}
.thesis-workflow .timeline-dot.active{background:#6b58b9}
.thesis-workflow .publication-action-editor{background:#faf9ff;border-color:#d8d0f0}

/* V1.15 — Histórico genérico para todos los productos no-artículo */
.generic-workflow{border-left:4px solid #4d7f68}
.generic-workflow .timeline-dot.active{background:#4d7f68}
.generic-workflow .publication-action-editor{background:#f8fcfa;border-color:#cfe2d8}

/* V1.16 — Estado general operativo */
.summary-card .status.danger{font-weight:900}

/* V1.17 — Pagos y SUNAT */
.order-finance-box{margin:16px 0;border:1px solid #d5e1ed;border-radius:12px;padding:14px;background:#fbfdff}
.finance-actions{display:flex;gap:8px;flex-wrap:wrap}
.finance-mini-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0 14px}
.finance-mini-grid>div{border:1px solid #e0e8f0;background:white;border-radius:9px;padding:9px}
.finance-mini-grid span{display:block;color:#728198;font-size:10px}.finance-mini-grid b{display:block;margin-top:4px}
.finance-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.finance-columns>div{min-width:0}
.finance-history-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;border:0;border-bottom:1px solid #edf1f5;background:transparent;padding:9px 3px;text-align:left;cursor:pointer}
.finance-history-row:hover{background:#f5f9fd}.finance-history-row span{font-size:11px;color:#53647a}.finance-history-row strong{display:flex;align-items:center;gap:6px}
.payment-method{display:inline-flex;align-items:center;border:1px solid #d9e4ef;background:#f7fafc;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800;white-space:nowrap}
.payment-toolbar{grid-template-columns:minmax(220px,1fr) 180px 1fr 1fr}.table-sub{display:block;color:#78879b;margin-top:3px}
.doc-chip{display:inline-block;padding:3px 6px;border-radius:6px;background:#edf4fb;border:1px solid #d7e5f4;color:#285d92;font-size:9px;font-weight:900}
.payment-order-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;border:1px solid #dbe6f1;background:#f8fbfe;border-radius:9px;padding:9px}
.payment-order-summary span{display:block;font-size:9px;color:#728198}.payment-order-summary b{display:block;margin-top:3px}
.payment-detail-section{border-top:1px solid #e5ebf2;padding-top:13px;margin-top:13px}
.evidence-attach-row{display:flex;gap:8px;align-items:center;margin-top:9px}.evidence-attach-row input{flex:1}
.file-readout{padding:9px;border-radius:8px;background:#f0f8f3;border:1px solid #cfe7d7;color:#256843;font-size:11px}
.payment-review-box{margin-top:14px;border:1px solid #d8e5f1;border-radius:10px;padding:12px;background:#fbfdff}
.verified-payment-note{margin-top:12px;padding:10px;border-radius:8px;background:#eff9f2;border:1px solid #cde7d5;color:#1e7040;font-weight:800}
.receipt-files{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.modal-intro{color:#63758c;margin-top:-4px}
@media(max-width:850px){.finance-mini-grid{grid-template-columns:repeat(2,1fr)}.finance-columns{grid-template-columns:1fr}}
@media(max-width:700px){.payment-toolbar{grid-template-columns:1fr}.payment-order-summary{grid-template-columns:repeat(2,1fr)}.evidence-attach-row{flex-direction:column;align-items:stretch}.finance-actions{width:100%}.finance-actions button{width:100%}}

.receipt-attach-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}@media(max-width:700px){.receipt-attach-grid{grid-template-columns:1fr}}

/* V1.18 — Confirmación visible del cambio de estado de pago */
.payment-review-box .publication-feedback{margin-bottom:10px}

/* V1.19 — Comunicaciones / Contabilidad */
.order-communication-box,.client-communication-summary{margin-top:16px;padding:14px;border:1px solid #d5e2ef;border-radius:11px;background:#fbfdff}
.communication-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px}.communication-message pre{white-space:pre-wrap;font:inherit;line-height:1.55;background:#f7f9fc;padding:14px;border-radius:9px;border:1px solid var(--border)}
.communication-history-row small{display:block}.accounting-header{margin-bottom:14px}.accounting-scope-note{margin:10px 0;padding:10px 12px;border-radius:8px;background:#fff8e8;border:1px solid #ead8a9;color:#705d2b;font-size:11px;line-height:1.45}
.accounting-toolbar{grid-template-columns:140px 180px minmax(220px,1fr) auto}.panel-lite{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fafcff}.accounting-detail-row{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.accounting-detail-row:last-child{border-bottom:0}.accountant-welcome{border-left:4px solid #63748a}.checkbox-line{display:flex;align-items:center}.checkbox-line input{width:auto;margin-right:7px}
@media(max-width:760px){.communication-actions{flex-direction:column}.communication-actions button{width:100%}.accounting-toolbar{grid-template-columns:1fr}.accounting-detail-row{grid-template-columns:1fr}.accounting-detail-row .row-buttons{justify-content:flex-start}}

/* 1.20 — solicitudes de evidencia desde Contabilidad */
.accounting-missing-action{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:145px}
.accounting-request-line{margin-top:7px}


/* V1.21 — Menú compacto del Administrador */
.admin-nav-group{display:contents}
.admin-group-toggle{display:none!important}
.admin-group-items{display:contents}

/* Solo Administración usa el acordeón. Ventas, Redactor y Contador conservan
   sus accesos directos sin añadir pasos extra. */
.sidebar.admin-compact-menu .admin-nav-group{display:block}
.sidebar.admin-compact-menu .admin-group-toggle{
  display:flex!important;
  width:100%;
  color:#dbe7f5;
  background:transparent;
  border:1px solid transparent;
  justify-content:flex-start;
  gap:10px;
}
.sidebar.admin-compact-menu .admin-group-toggle:hover,
.sidebar.admin-compact-menu .admin-nav-group.open>.admin-group-toggle{
  background:#102f55;
  color:#fff;
  border-color:#ffffff10;
}
.sidebar.admin-compact-menu .admin-group-icon{
  width:16px;
  text-align:center;
  opacity:.9;
}
.sidebar.admin-compact-menu .admin-group-chevron{
  margin-left:auto;
  font-size:18px;
  line-height:1;
  transition:transform .16s ease;
}
.sidebar.admin-compact-menu .admin-nav-group.open>.admin-group-toggle .admin-group-chevron{
  transform:rotate(90deg);
}
.sidebar.admin-compact-menu .admin-group-items{
  display:none;
  flex-direction:column;
  gap:3px;
  padding:4px 0 5px 14px;
}
.sidebar.admin-compact-menu .admin-nav-group.open>.admin-group-items{
  display:flex;
}
.sidebar.admin-compact-menu .admin-group-items>button{
  padding:9px 10px;
  font-size:13px;
  border-left:2px solid #ffffff12;
  border-radius:7px;
}
.sidebar.admin-compact-menu .admin-group-items>button.active{
  border-left-color:#69a9f5;
}
.sidebar.admin-compact-menu .admin-group-toggle .nav-count{
  margin-left:auto;
}
.sidebar.admin-compact-menu .admin-group-toggle .nav-count + .admin-group-chevron{
  margin-left:0;
}

/* Cerrar sesión queda siempre visible incluso con pantallas de poca altura. */
.sidebar nav::-webkit-scrollbar{width:6px}
.sidebar nav::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:999px}
.sidebar nav::-webkit-scrollbar-track{background:transparent}

@media(max-width:720px){
  .admin-nav-group{display:contents}
  .sidebar.admin-compact-menu .admin-nav-group{display:contents}
  .sidebar.admin-compact-menu .admin-group-toggle{display:none!important}
  .sidebar.admin-compact-menu .admin-group-items{display:contents}
}


/* 1.22 — tareas de evidencia desde Notificaciones */
.notification-actions .accounting-evidence-action{font-weight:700}
#paymentEvidenceSection.notification-target-highlight,
#receiptAttachSection.notification-target-highlight,
#receiptRegisterFiles.notification-target-highlight{
  outline:3px solid rgba(37,99,235,.24);
  outline-offset:5px;
  border-radius:12px;
}


/* 1.23 — Auditoría administrativa */
.audit-head{align-items:center}
.audit-count{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#eef4fb;color:#234b78;font-size:12px;font-weight:800;white-space:nowrap}
.audit-filters{display:grid;grid-template-columns:140px 140px minmax(170px,1fr) minmax(220px,1.25fr) minmax(260px,1.6fr) auto;gap:10px;align-items:end;margin:16px 0;padding:14px;background:#f8fafc;border:1px solid #dce5ef;border-radius:12px}
.audit-filters label{display:block;margin:0 0 5px;font-size:11px;font-weight:800;color:#52627a}
.audit-filters input,.audit-filters select{width:100%}
.audit-filter-button .btn{white-space:nowrap}
.audit-table td{vertical-align:middle}
.audit-table td small{display:block;margin-top:4px;color:#718096;font-size:11px}
.audit-date{white-space:nowrap}
.audit-action{display:inline-block;font-weight:800;color:#173a63}
.audit-detail-btn{white-space:nowrap}
.audit-summary{margin:14px 0}
.audit-tech-line{padding:10px 12px;margin:10px 0 14px;border:1px solid #dce5ef;border-radius:10px;background:#f8fafc;color:#52627a;font-size:12px;word-break:break-word}
.audit-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.audit-json{max-height:360px;overflow:auto;margin:8px 0 0;padding:12px;border-radius:9px;background:#0f172a;color:#e2e8f0;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.empty.compact{padding:12px}
@media(max-width:1100px){.audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-search-wrap{grid-column:1/-1}}
@media(max-width:720px){.audit-filters{grid-template-columns:1fr}.audit-search-wrap{grid-column:auto}.audit-detail-grid{grid-template-columns:1fr}}


/* 1.24 — Reportes e indicadores */
.report-filter-panel{margin-bottom:14px}
.report-filters{
  display:grid;
  grid-template-columns:145px 145px minmax(180px,1.25fr) minmax(180px,1.25fr) minmax(180px,1.25fr) auto;
  gap:10px;
  align-items:end;
  margin-top:14px;
}
.report-filters label{display:block;margin-bottom:5px;font-size:11px;font-weight:800;color:#52627a}
.report-filters input,.report-filters select{width:100%}
.report-filter-button .btn{white-space:nowrap}
.report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.report-grid{display:grid;gap:14px;margin-top:14px}
.report-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.report-bars{display:flex;flex-direction:column;gap:13px;padding-top:4px}
.report-bar-label{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:12px}
.report-bar-label span{font-weight:700;color:#263b57}
.report-bar-label b{color:#0e2c50}
.report-bar-track{height:8px;background:#e8eef5;border-radius:999px;overflow:hidden}
.report-bar-track span{display:block;height:100%;background:#2f6fb2;border-radius:999px}
.report-mini-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.report-mini-kpis>div{border:1px solid #dce5ef;border-radius:11px;background:#f8fafc;padding:13px}
.report-mini-kpis span{display:block;font-size:11px;color:#5a6c84;font-weight:800}
.report-mini-kpis b{display:block;font-size:24px;color:#10233e;margin:4px 0}
.report-mini-kpis small{display:block;color:#718096}
@media(max-width:1150px){
  .report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  .report-grid.two{grid-template-columns:1fr}
}
@media(max-width:680px){
  .report-filters,.report-kpis,.report-mini-kpis{grid-template-columns:1fr}
}


/* 1.26 — Recuperación de contraseña */
.link-button{
  border:0;
  background:transparent;
  color:#1769d2;
  padding:9px 4px;
  margin-top:4px;
  font-weight:800;
  cursor:pointer;
  text-align:center;
}
.link-button:hover{text-decoration:underline}
.link-button:disabled{opacity:.55;cursor:not-allowed}
.form-success{
  margin-top:12px;
  background:#edf9f1;
  color:#17643a;
  border:1px solid #bfe3cb;
  padding:10px;
  border-radius:8px;
  line-height:1.45;
}
.password-help{
  margin:-2px 0 8px;
  color:#718096;
  font-size:12px;
}


/* 1.28 — Respaldo */
.backup-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}
.backup-kpis>div{border:1px solid #dce5ef;background:#f8fafc;border-radius:11px;padding:13px}
.backup-kpis span{display:block;color:#64748b;font-size:11px;font-weight:800;margin-bottom:5px}
.backup-kpis b{display:block;color:#10233e;font-size:15px;word-break:break-word}
.backup-scope{margin:14px 0;padding:14px;border:1px solid #dce5ef;border-radius:12px;background:#fbfdff}
.backup-scope h4{margin:0 0 5px;color:#173a63}
.backup-scope h4:not(:first-child){margin-top:13px}
.backup-scope p{margin:0;color:#52627a;line-height:1.5}
.backup-actions{display:flex;gap:10px;flex-wrap:wrap}
.backup-progress{margin:12px 0;padding:11px 13px;border-radius:9px;background:#eef4fb;color:#234b78;font-weight:700}
.backup-progress.success{background:#edf9f1;color:#17643a}
.backup-progress.error{background:#fff0f0;color:#9f2f2f}
.backup-validation{display:flex;flex-direction:column;gap:5px;border-radius:10px;padding:14px}
.backup-validation.ok{background:#edf9f1;border:1px solid #bfe3cb;color:#17643a}
.backup-validation.bad{background:#fff0f0;border:1px solid #efc2c2;color:#9f2f2f}
.backup-validation small{opacity:.85}
@media(max-width:750px){.backup-kpis{grid-template-columns:1fr}}


/* 1.29 — Aviso de revista dentro de la Mesa de trabajo */
.publication-attempt-message{
  margin:12px 0 4px;
  padding:11px 13px;
  border:1px solid #efb8b8;
  border-radius:9px;
  background:#fff1f1;
  color:#9b2525;
  font-size:13px;
  font-weight:700;
  line-height:1.45;
}
.field-error{
  border-color:#cc3b3b !important;
  box-shadow:0 0 0 3px rgba(204,59,59,.10) !important;
}
