/* Smart 247 Operaciones – estilos del portal */
:root{--op-deep:#06486e;--op-navy:#043e60;--op-blue:#0875b4;--op-bright:#279fe4;--op-sky:#63ccfa;--op-ice:#eef9ff;--op-ice2:#e3f4fd;--op-gray:#69727e;--op-ink:#243b4e;--op-line:#d8e8f2;--op-ok:#15803d;--op-red:#c2410c}
html,body.sbop-body{margin:0!important;padding:0!important;background:var(--op-ice)!important}
body.sbop-body{font-family:var(--op-font-body,Inter),Arial,Helvetica,sans-serif;color:var(--op-ink);font-size:15px;line-height:1.55}
.sbop-body *,.sbop-body *:before,.sbop-body *:after{box-sizing:border-box}
.sbop-body a{color:var(--op-blue);text-decoration:none}
.sbop-body h1,.sbop-body h2,.sbop-body h3{font-family:var(--op-font-head,Inter),Arial,Helvetica,sans-serif!important;color:var(--op-deep);margin:0;line-height:1.25;letter-spacing:-.2px;font-weight:700!important}
.sbop-body svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.op-muted{color:var(--op-gray)}.op-small{font-size:13px}
.op-hp{position:absolute!important;left:-9999px!important;height:1px;overflow:hidden}

/* Botones y formularios */
.op-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:9px 16px;border-radius:8px;border:1px solid transparent;font:inherit;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .2s,border-color .2s}
.op-btn-primary{background:var(--op-blue);color:#fff!important}.op-btn-primary:hover{background:var(--op-deep)}
.op-btn-ok{background:var(--op-ok);color:#fff!important}.op-btn-ok:hover{background:var(--opx-166534,#166534)}
.op-btn-light{background:#fff;border-color:var(--op-line);color:var(--op-deep)}.op-btn-light:hover{border-color:var(--op-blue)}
.op-btn-danger{background:#fff;border-color:var(--opx-f3c7b5,#f3c7b5);color:var(--op-red)}.op-btn-danger:hover{background:var(--opx-fff4ef,#fff4ef)}
.op-link{background:none;border:0;padding:0;font:inherit;color:var(--op-blue);cursor:pointer;font-size:14px}
.op-link:hover{text-decoration:underline}
.op-form{display:grid;gap:14px}
.op-form label{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--op-ink)}
.op-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.op-form select,.op-table select,.op-table input:not([type=checkbox]):not([type=radio]):not([type=file]){width:100%;height:44px;padding:8px 12px;border:1px solid var(--op-line);border-radius:8px;background:var(--opx-fbfdff,#fbfdff);font:inherit;font-weight:400;font-size:15px;color:var(--op-ink)}
.op-table select,.op-table input:not([type=checkbox]){height:40px;font-size:14px;min-width:150px}
.op-form input:focus,.op-form select:focus,.op-table select:focus,.op-table input:focus{outline:none;border-color:var(--op-bright);box-shadow:0 0 0 3px #279fe433}
.op-form .op-check{display:flex;align-items:center;gap:8px;font-weight:500}
.op-form .op-btn{width:100%;min-height:46px}
.op-form-inline{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end}
.op-form-inline .op-btn{width:auto}
.op-notice{padding:12px 14px;border-radius:10px;font-weight:600;font-size:14px;margin:0 0 16px}
.op-ok{background:var(--opx-e7f7ee,#e7f7ee);color:var(--opx-11643a,#11643a)}.op-error{background:var(--opx-fdecec,#fdecec);color:var(--opx-a4262c,#a4262c)}

/* Ingreso */
.op-auth{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:linear-gradient(135deg,var(--opx-dff2fc,#dff2fc),var(--opx-f6fcff,#f6fcff) 60%,var(--opx-e6f5fd,#e6f5fd))}
.op-auth-card{width:100%;max-width:440px;background:#fff;border:1px solid var(--op-line);border-radius:20px;padding:34px 32px;box-shadow:0 30px 60px var(--opx-sh-dark-12,rgba(6,72,110,.12))}
.op-auth-logo{display:block;width:190px;margin:0 auto 18px}.op-auth-logo img{width:100%;display:block}
.op-auth-card>h1{font-size:22px;text-align:center}
.op-auth-card>.op-muted{text-align:center;margin:6px 0 20px}
.op-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--op-ice);border-radius:10px;padding:4px;margin-bottom:20px}
.op-tabs a{text-align:center;padding:9px;border-radius:8px;font-weight:700;color:var(--op-gray);font-size:14px}
.op-tabs a.on{background:#fff;color:var(--op-deep);box-shadow:0 2px 8px var(--opx-sh-dark-1,rgba(6,72,110,.1))}
.op-state{text-align:center;padding:6px 0 18px}
.op-state svg{color:var(--op-blue);margin-bottom:10px}
.op-state h1{font-size:22px;margin-bottom:8px}
.op-state p{margin:0;color:var(--op-gray)}
.op-state-error svg{color:var(--op-red)}
.op-details{margin:8px 0 16px;border:1px solid var(--op-line);border-radius:12px;padding:12px 14px;background:#fff}
.op-details summary{cursor:pointer;font-weight:700;color:var(--op-blue);font-size:14px}
.op-details[open] summary{margin-bottom:14px}
.op-auth .op-logout{text-align:center;margin-top:12px}

/* Panel */
.op-app{display:grid;grid-template-columns:270px 1fr;min-height:100vh}
.op-side{position:sticky;top:0;height:100vh;overflow:auto;background:linear-gradient(180deg,var(--opx-dff2fc,#dff2fc),var(--opx-eef9ff,#eef9ff));border-right:1px solid var(--opx-c9e8f8,#c9e8f8);padding:20px 16px;display:flex;flex-direction:column;gap:16px}
.op-side-logo img{width:170px;display:block}
.op-me{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--op-line);border-radius:12px;padding:10px}
.op-me strong{display:block;font-size:14px;color:var(--op-deep);line-height:1.2}
.op-me span{font-size:12px;color:var(--op-gray)}
.op-avatar{width:40px;height:40px;border-radius:50%;background:var(--op-blue);color:#fff;display:grid;place-items:center;font-weight:800}
.op-me-btn{border:0;background:none;color:var(--op-blue);font:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:4px}
.op-me-form{background:#fff;border:1px solid var(--op-line);border-radius:12px;padding:14px}
.op-nav{display:grid;gap:4px}
.op-nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:var(--op-deep);font-weight:600}
.op-nav a:hover{background:#ffffffb3}
.op-nav a.on{background:var(--op-blue);color:#fff;box-shadow:0 8px 18px var(--opx-sh-primary-25,rgba(8,117,180,.25))}
.op-badge{margin-left:auto;background:var(--opx-f59e0b,#f59e0b);color:#fff;font-size:12px;font-weight:800;border-radius:999px;padding:1px 8px}
.op-side-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--opx-c9e8f8,#c9e8f8)}
.op-main{min-width:0;padding:24px 32px 48px}
.op-top{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.op-top h1{font-size:26px}
.op-burger{display:none;border:1px solid var(--op-line);background:#fff;border-radius:8px;width:42px;height:42px;font-size:20px;color:var(--op-deep);cursor:pointer}
.op-role-pill{display:inline-block;background:var(--opx-dff4ff,#dff4ff);color:var(--op-blue);font-weight:700;font-size:12px;border-radius:999px;padding:4px 12px}
.op-top .op-role-pill{margin-left:auto}
.op-content{display:grid;gap:18px;max-width:1150px}
.op-card{background:#fff;border:1px solid var(--op-line);border-radius:16px;padding:22px 24px;box-shadow:0 10px 26px var(--opx-sh-dark-05,rgba(8,75,118,.05))}
.op-card h2{font-size:18px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.op-card h3{font-size:16px;margin-bottom:6px}
.op-card p{margin:0 0 8px}
.op-count{background:var(--op-ice);color:var(--op-blue);font-size:13px;border-radius:999px;padding:1px 9px}
.op-hello h2{font-size:22px}
.op-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:14px}
.op-grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin:0}
.op-tile{display:grid;gap:4px;padding:16px;border:1px solid var(--op-line);border-radius:12px;background:var(--op-ice);color:var(--op-deep)!important;transition:transform .2s,box-shadow .2s}
.op-tile:hover{transform:translateY(-3px);box-shadow:0 10px 22px var(--opx-sh-dark-1,rgba(8,75,118,.1))}
.op-tile svg{color:var(--op-blue);margin-bottom:6px}
.op-tile span{font-size:12px;color:var(--op-gray)}
.op-alert{background:var(--opx-fff8e6,#fff8e6);border-color:var(--opx-fde3a7,#fde3a7)}
.op-soon ul{margin:6px 0 0;padding-left:20px;color:var(--op-ink)}
.op-soon li{margin:4px 0}
.op-tag{display:inline-block;background:var(--op-ice);color:var(--op-blue);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;border-radius:999px;padding:3px 10px;margin-bottom:10px}
.op-empty{color:var(--op-gray);font-style:italic;margin:6px 0 0}
.op-table-wrap{overflow-x:auto;margin-top:10px}
.op-table{width:100%;border-collapse:collapse;font-size:14px}
.op-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--op-gray);padding:8px 10px;border-bottom:1px solid var(--op-line)}
.op-table td{padding:12px 10px;border-bottom:1px solid var(--op-line);vertical-align:middle}
.op-actions{text-align:right}
.op-actions>*{margin:3px 0 3px 6px;vertical-align:middle}
.op-actions .op-inline{display:inline-block}
.op-matrix td,.op-matrix th{text-align:center}.op-matrix td:first-child,.op-matrix th:first-child{text-align:left}
.op-yes{color:var(--op-ok);font-weight:700}.op-no{color:#a3aab3}

@media(max-width:900px){
  .op-app{grid-template-columns:1fr}
  .op-side{position:fixed;left:0;top:0;bottom:0;width:280px;z-index:50;transform:translateX(-105%);transition:transform .25s;box-shadow:0 0 40px rgba(0,0,0,.2)}
  .op-side-open .op-side{transform:none}
  .op-burger{display:inline-block}
  .op-main{padding:16px 16px 40px}
  .op-top h1{font-size:21px}
  .op-table thead{display:none}
  .op-table tr{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--op-line)}
  .op-table td{border:0;padding:0}
  .op-actions{text-align:left}.op-actions>*{margin:3px 6px 3px 0}
  .op-matrix thead{display:table-header-group}.op-matrix tr{display:table-row}.op-matrix td{padding:8px 6px;border-bottom:1px solid var(--op-line)}
}
@media(max-width:480px){.op-auth-card{padding:26px 20px}}
.op-roletabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--op-line);padding-bottom:12px}
.op-roletabs a{padding:8px 14px;border-radius:999px;border:1px solid var(--op-line);font-weight:700;font-size:14px;color:var(--op-deep);background:#fff}
.op-roletabs a span{background:var(--op-ice);color:var(--op-blue);border-radius:999px;padding:0 7px;font-size:12px;margin-left:4px}
.op-roletabs a.on{background:var(--op-blue);border-color:var(--op-blue);color:#fff}.op-roletabs a.on span{background:#ffffff33;color:#fff}
.op-perms th:not(:first-child),.op-perms td:not(:first-child){text-align:center;width:110px}
.op-perms input[type=checkbox]{width:18px!important;height:18px;min-width:0!important;margin:0;padding:0;accent-color:var(--op-blue);cursor:pointer}
.op-perms input[disabled]{cursor:not-allowed;opacity:.6}
.op-perms tbody tr:hover{background:var(--opx-f7fbfe,#f7fbfe)}
.op-na{color:#c3cad2}
.op-selall{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-transform:none;letter-spacing:0;font-size:14px;color:var(--op-ink)}
.op-perms thead .op-selall{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--op-gray)}
.op-tag-sm{font-size:10px;padding:2px 7px;margin:0 0 0 6px;vertical-align:middle}
.op-row-actions{margin-top:14px}
.op-inline-del{margin-top:10px}
@media(max-width:900px){.op-perms thead{display:table-header-group}.op-perms tr{display:table-row}.op-perms td,.op-perms th{display:table-cell;padding:10px 6px;border-bottom:1px solid var(--op-line)}.op-perms th:not(:first-child),.op-perms td:not(:first-child){width:auto}}

/* ===== Mensajes ===== */
.op-chat{display:grid;grid-template-columns:300px 1fr;height:calc(100vh - 120px);min-height:480px;background:#fff;border:1px solid var(--op-line);border-radius:16px;overflow:hidden;box-shadow:0 10px 26px var(--opx-sh-dark-05,rgba(8,75,118,.05))}
.op-chat-client{grid-template-columns:1fr}
.op-chat-client .op-chat-list,.op-chat-client .op-chat-back{display:none!important}
.op-chat-list{border-right:1px solid var(--op-line);overflow-y:auto;padding:12px;background:var(--opx-fbfdff,#fbfdff)}
.op-chat-search{width:100%;height:40px;border:1px solid var(--op-line);border-radius:8px;padding:8px 12px;font:inherit;font-size:14px;margin-bottom:6px;background:#fff}
.op-chat-search:focus{outline:none;border-color:var(--op-bright)}
.op-chat-group{font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--op-gray);margin:14px 6px 6px}
.op-chat-none{font-size:13px;color:var(--op-gray);margin:4px 6px;font-style:italic}
.op-chat-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:9px 8px;border-radius:10px;cursor:pointer;text-align:left;font:inherit;color:var(--op-ink)}
.op-chat-item:hover{background:var(--op-ice)}
.op-chat-item.on{background:var(--opx-dff4ff,#dff4ff)}
.op-chat-av{flex:none;width:36px;height:36px;border-radius:50%;background:var(--op-blue);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px}
.op-chat-av.cli{background:var(--opx-f59e0b,#f59e0b)}
.op-chat-it{flex:1;min-width:0;display:grid}
.op-chat-it strong{font-size:14px;color:var(--op-deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.op-chat-item.unread .op-chat-it strong{font-weight:800}
.op-chat-it small{font-size:12px;color:var(--op-gray)}
.op-chat-count{background:var(--opx-f59e0b,#f59e0b);color:#fff;font-size:12px;font-weight:800;border-radius:999px;padding:1px 8px}
.op-chat-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.op-chat-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--op-line);background:linear-gradient(90deg,var(--opx-eef9ff,#eef9ff),#fff)}
.op-chat-head strong{display:block;color:var(--op-deep);font-size:16px}
.op-chat-head span{font-size:12px;color:var(--op-gray)}
.op-chat-back{display:none;border:1px solid var(--op-line);background:#fff;border-radius:8px;width:36px;height:36px;cursor:pointer;font-size:18px;color:var(--op-deep)}
.op-chat-msgs{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:2px;background:var(--opx-f7fbfe,#f7fbfe)}
.op-chat-empty{margin:auto;color:var(--op-gray);font-style:italic;text-align:center;max-width:340px}
.op-msg{display:flex;flex-direction:column;align-items:flex-start;max-width:75%;margin-top:6px}
.op-msg.mine{align-self:flex-end;align-items:flex-end}
.op-msg-who{display:flex;gap:6px;align-items:baseline;margin:8px 4px 3px;font-size:12px}
.op-msg-who strong{color:var(--op-deep)}
.op-msg-who span{color:var(--op-gray)}
.op-msg-bubble{background:#fff;border:1px solid var(--op-line);border-radius:14px 14px 14px 4px;padding:9px 13px;white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.45;color:var(--op-ink)}
.op-msg.mine .op-msg-bubble{background:var(--op-blue);border-color:var(--op-blue);color:#fff;border-radius:14px 14px 4px 14px}
.op-msg.from-client .op-msg-bubble{background:var(--opx-fff8e6,#fff8e6);border-color:var(--opx-fde3a7,#fde3a7)}
.op-msg-bubble.deleted{font-style:italic;opacity:.6}
.op-msg-meta{font-size:11px;color:var(--op-gray);margin:3px 4px 0;display:flex;gap:10px}
.op-msg-del{border:0;background:none;padding:0;font:inherit;font-size:11px;color:var(--op-red);cursor:pointer;opacity:0;transition:opacity .15s}
.op-msg:hover .op-msg-del,.op-msg-del:focus{opacity:1}
.op-chat-form{display:flex;gap:10px;align-items:flex-end;padding:12px 14px;border-top:1px solid var(--op-line);background:#fff}
.op-chat-form textarea{flex:1;resize:none;min-height:44px;max-height:160px;border:1px solid var(--op-line);border-radius:10px;padding:11px 13px;font:inherit;font-size:15px;line-height:1.4;color:var(--op-ink);background:var(--opx-fbfdff,#fbfdff)}
.op-chat-form textarea:focus{outline:none;border-color:var(--op-bright);box-shadow:0 0 0 3px #279fe433}
.op-chat-ro{margin:0;padding:14px;border-top:1px solid var(--op-line);color:var(--op-gray);font-size:14px;text-align:center}
@media(max-width:900px){
  .op-chat{grid-template-columns:1fr;height:calc(100vh - 90px)}
  .op-chat .op-chat-main{display:none}
  .op-chat.op-chat-open .op-chat-main{display:flex}
  .op-chat.op-chat-open .op-chat-list{display:none}
  .op-chat-back{display:inline-block}
  .op-chat-client .op-chat-main{display:flex}
  .op-msg{max-width:88%}
  .op-msg-del{opacity:1}
}

/* Invitaciones */
.op-full{width:100%;margin-top:6px}
.op-center{text-align:center}
.op-auth-card>h1{margin-bottom:6px}
.op-auto{width:auto!important;min-width:180px}
.op-add-form .op-form-inline{display:grid;gap:14px}
.op-modes{border:1px solid var(--op-line);border-radius:12px;padding:12px 14px;margin:0;display:grid;gap:10px}
.op-modes legend{font-size:13px;font-weight:700;padding:0 6px}
.op-mode{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;font-weight:400!important;cursor:pointer;padding:8px;border-radius:10px}
.op-mode:hover{background:var(--op-ice)}
.op-mode input{margin-top:3px;accent-color:var(--op-blue);width:18px;height:18px;flex:none}
.op-mode strong{color:var(--op-deep);font-size:14px}
.op-mode em{font-style:normal;background:var(--opx-e7f7ee,#e7f7ee);color:var(--opx-11643a,#11643a);font-size:11px;font-weight:800;border-radius:999px;padding:2px 8px;margin-left:6px}
.op-mode small{display:block;color:var(--op-gray);font-size:13px;margin-top:2px}
.op-clave-field{max-width:320px}
.op-invite-card{border-color:var(--opx-bfe3f7,#bfe3f7);background:linear-gradient(180deg,var(--opx-f1faff,#f1faff),#fff)}
.op-copy{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.op-copy input{flex:1;min-width:220px;height:42px;border:1px solid var(--op-line);border-radius:8px;padding:8px 12px;font:inherit;font-size:13px;color:var(--op-ink);background:#fff}
.op-inline{display:inline}
.op-tag-red{background:var(--opx-fdecec,#fdecec);color:var(--opx-a4262c,#a4262c)}

/* ===== Etapa 2: tareas, clientes, calendario, supervisión ===== */
.op-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.op-toolbar .op-btn-primary{margin-left:auto}
.op-seg{display:inline-flex;background:#fff;border:1px solid var(--op-line);border-radius:10px;padding:3px;gap:2px;align-items:center}
.op-seg a{padding:7px 14px;border-radius:8px;font-weight:700;font-size:14px;color:var(--op-gray)}
.op-seg a.on{background:var(--op-blue);color:#fff}
.op-seg-title{padding:0 14px;font-weight:800;color:var(--op-deep);min-width:170px;text-align:center}
.op-seg-tabs{margin:2px 0}
.op-filters{display:flex;gap:8px;flex-wrap:wrap}
.op-filters select,.op-filters input{height:40px;border:1px solid var(--op-line);border-radius:8px;padding:6px 10px;font:inherit;font-size:14px;background:#fff;color:var(--op-ink);min-width:170px}
.op-btn-sm{min-height:34px;padding:6px 12px;font-size:13px}
.op-btn.on{border-color:var(--op-blue);color:var(--op-blue);background:var(--opx-eaf6fd,#eaf6fd)}
.op-nowrap{white-space:nowrap}
.op-red{color:#c2410c;font-weight:700}
.op-tasks tr.op-over td:first-child{box-shadow:inset 3px 0 0 var(--opx-dc2626,#dc2626)}
.op-tasks tr.op-done{opacity:.6}
.op-st{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.op-st-pendiente{background:var(--opx-eef2f6,#eef2f6);color:#475569}
.op-st-en_proceso{background:var(--opx-dbeafe,#dbeafe);color:#1d4ed8}
.op-st-esperando{background:#ede9fe;color:#6d28d9}
.op-st-listo{background:var(--opx-dcfce7,#dcfce7);color:var(--opx-15803d,#15803d)}
.op-st-vencida{background:var(--opx-fee2e2,#fee2e2);color:var(--opx-b91c1c,#b91c1c)}
.op-table select.op-state-select{min-width:160px;height:36px;font-weight:700;font-size:13px;border-radius:999px;padding:4px 10px}
select.op-state-select.op-st-pendiente{background:var(--opx-eef2f6,#eef2f6);color:#475569;border-color:var(--opx-dfe5ec,#dfe5ec)}
select.op-state-select.op-st-en_proceso{background:var(--opx-dbeafe,#dbeafe);color:#1d4ed8;border-color:var(--opx-bfd6fb,#bfd6fb)}
select.op-state-select.op-st-esperando{background:#ede9fe;color:#6d28d9;border-color:#dcd3fd}
select.op-state-select.op-st-listo{background:var(--opx-dcfce7,#dcfce7);color:var(--opx-15803d,#15803d);border-color:var(--opx-bbf0cd,#bbf0cd)}
select.op-state-select.op-st-vencida{background:var(--opx-fee2e2,#fee2e2);color:var(--opx-b91c1c,#b91c1c);border-color:var(--opx-fecaca,#fecaca)}
.op-chip{display:inline-block;background:var(--op-ice);border:1px solid var(--op-line);color:var(--op-deep);font-size:11px;font-weight:800;border-radius:6px;padding:1px 6px;margin:2px 3px 2px 0}
.op-grid-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.op-span2{grid-column:1/-1}
.op-form .op-invalid input,.op-form .op-invalid select,.op-form select.op-invalid{border-color:var(--opx-dc2626,#dc2626)!important;background:var(--opx-fff5f5,#fff5f5)}
.op-form textarea{width:100%;border:1px solid var(--op-line);border-radius:8px;padding:10px 12px;font:inherit;font-weight:400;font-size:15px;color:var(--op-ink);background:var(--opx-fbfdff,#fbfdff)}
.op-form small{font-weight:400}
.op-label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
.op-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px 14px}
.op-checks .op-check{font-weight:500!important}
.op-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.op-client-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.op-client-head p{margin:4px 0 0}
.op-dl{display:grid;grid-template-columns:140px 1fr;gap:10px 16px;margin:0}
.op-dl dt{font-weight:700;color:var(--op-gray)}
.op-dl dd{margin:0}
.op-report{width:100%;border:1px solid var(--op-line);border-radius:10px;padding:14px;font:inherit;font-size:14.5px;line-height:1.5;background:var(--opx-fbfdff,#fbfdff);color:var(--op-ink)}
.op-steps{margin:6px 0 16px;padding-left:20px}
.op-steps li{margin:5px 0}
.op-mono{font-family:ui-monospace,Menlo,Consolas,monospace!important;font-size:13px!important}
.op-info{background:var(--opx-eef7ff,#eef7ff);border-color:var(--opx-bfe3f7,#bfe3f7)}
.op-info form{margin-left:6px}
/* Calendario */
.op-cal{background:#fff;border:1px solid var(--op-line);border-radius:16px;overflow:hidden}
.op-cal-head,.op-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.op-cal-head div{padding:10px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--op-gray);background:var(--op-ice);text-align:center}
.op-day{min-height:118px;border-top:1px solid var(--op-line);border-left:1px solid var(--op-line);padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}
.op-day:nth-child(7n+1){border-left:0}
.op-day-out{background:var(--opx-fafcfd,#fafcfd)}
.op-weekend{background:var(--opx-fbfcfe,#fbfcfe)}
.op-day-n{font-size:13px;font-weight:800;color:var(--op-deep);display:flex;justify-content:space-between;align-items:center}
.op-day-n span{font-size:10px;font-weight:800;color:#b45309;background:var(--opx-fef3c7,#fef3c7);border-radius:6px;padding:1px 6px;text-transform:uppercase}
.op-day-decl{box-shadow:inset 0 3px 0 var(--opx-f59e0b,#f59e0b)}
.op-today{background:var(--opx-f0f9ff,#f0f9ff)}
.op-today .op-day-n{color:var(--op-blue)}
.op-ev{display:block;font-size:11.5px;line-height:1.3;border-radius:6px;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;border:1px solid transparent}
.op-ev-pendiente{background:var(--opx-eef2f6,#eef2f6);color:#334155}
.op-ev-en_proceso{background:var(--opx-dbeafe,#dbeafe);color:#1d4ed8}
.op-ev-esperando{background:#ede9fe;color:#6d28d9}
.op-ev-listo{background:var(--opx-dcfce7,#dcfce7);color:var(--opx-15803d,#15803d);text-decoration:line-through}
.op-ev-vencida{background:var(--opx-fee2e2,#fee2e2);color:var(--opx-b91c1c,#b91c1c);border-color:var(--opx-fca5a5,#fca5a5)}
.op-ev-pend{background:#fff;color:#92400e;border:1.5px dashed var(--opx-f59e0b,#f59e0b)}
.op-legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}
.op-legend .op-ev{display:inline-block}
/* Supervisión */
.op-load{display:grid;gap:10px}
.op-load-row{display:grid;grid-template-columns:180px 1fr 40px;gap:12px;align-items:center;color:var(--op-ink)!important}
.op-load-name{font-weight:700;color:var(--op-deep)}
.op-load-bar{display:flex;height:26px;background:var(--opx-f1f5f9,#f1f5f9);border-radius:8px;overflow:hidden}
.op-load-bar i{display:grid;place-items:center;color:#fff;font-style:normal;font-size:12px;font-weight:800;min-width:22px}
.op-b-vencida{background:var(--opx-dc2626,#dc2626)}.op-b-en_proceso{background:#2563eb}.op-b-esperando{background:#7c3aed}.op-b-pendiente{background:#94a3b8}
.op-load-total{font-weight:800;text-align:right}
.op-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 10px}
.op-table select.op-reassign{min-width:170px}
.op-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:10px}
.op-kcol{background:var(--opx-f6fafd,#f6fafd);border:1px solid var(--op-line);border-radius:14px;min-height:200px;display:flex;flex-direction:column;transition:background .15s}
.op-kcol.over{background:var(--opx-e6f4fd,#e6f4fd);border-color:var(--op-bright)}
.op-khead{margin:8px;border-radius:10px;padding:8px 12px;font-weight:800;font-size:13px;display:flex;justify-content:space-between}
.op-kbody{padding:0 8px 10px;display:flex;flex-direction:column;gap:8px;flex:1}
.op-kcard{background:#fff;border:1px solid var(--op-line);border-radius:10px;padding:10px 12px;display:grid;gap:2px;cursor:grab;box-shadow:0 2px 6px var(--opx-sh-dark-05,rgba(8,75,118,.05))}
.op-kcard[draggable=false]{cursor:default}
.op-kcard strong{font-size:13.5px;color:var(--op-deep);line-height:1.3}
.op-kcard span{font-size:12px;color:var(--op-gray)}
.op-kcard small{font-size:11.5px;color:var(--op-gray)}
.op-kcard.op-kover{border-left:4px solid var(--opx-dc2626,#dc2626)}
.op-kcard.dragging{opacity:.5}
/* Inicio */
.op-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.op-kpis div{background:#fff;border:1px solid var(--op-line);border-radius:14px;padding:16px 18px}
.op-kpis strong{display:block;font-size:30px;color:var(--op-deep);line-height:1.1}
.op-kpis span{font-size:13px;color:var(--op-gray)}
.op-kpis .op-kpi-red strong{color:var(--opx-dc2626,#dc2626)}
.op-toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--op-deep);color:#fff;padding:10px 18px;border-radius:10px;font-weight:700;font-size:14px;z-index:99;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:opacity .4s}
.op-toast.bad{background:var(--opx-b91c1c,#b91c1c)}.op-toast.out{opacity:0}
@media(max-width:900px){
  .op-grid-form{grid-template-columns:1fr}
  .op-cal-head{display:none}
  .op-cal-grid{grid-template-columns:1fr}
  .op-day{min-height:0;border-left:0}
  .op-day-out{display:none}
  .op-day:not(:has(.op-ev)){display:none}
  .op-board{grid-template-columns:1fr}
  .op-kpis{grid-template-columns:repeat(2,1fr)}
  .op-load-row{grid-template-columns:110px 1fr 30px}
  .op-client-head{flex-direction:column}
  .op-toolbar .op-btn-primary{margin-left:0}
}
.op-list{margin:6px 0 0;padding-left:18px}.op-list li{margin:6px 0}
.op-form-sec{font-size:13px!important;text-transform:uppercase!important;letter-spacing:1.5px;color:var(--op-blue)!important;margin:10px 0 -4px!important;padding-top:12px;border-top:1px solid var(--op-line)}
.op-form-sec:first-of-type{border-top:0;padding-top:0;margin-top:0!important}
.op-indic textarea{background:var(--opx-fffbeb,#fffbeb)!important;border-color:var(--opx-fde68a,#fde68a)!important}
.op-operator{background:var(--opx-fffbeb,#fffbeb);border-color:var(--opx-fde68a,#fde68a)}
.op-operator h2{font-size:16px}
.op-operator-text{font-size:15px;line-height:1.55;color:var(--opx-422006,#422006);background:#fff;border:1px solid var(--opx-fde68a,#fde68a);border-radius:10px;padding:12px 14px;margin:4px 0 10px}
.op-operator-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13.5px}
.op-operator-meta em{font-style:normal;color:#92400e;font-weight:700}
.op-operator-empty{font-size:14px;padding:12px 18px}
.op-ruc-info{display:block;margin-top:2px}

/* Ficha del cliente: formulario en secciones */
.op-form label{align-content:start}
.op-client-form{display:grid;gap:16px}
.op-form-top h2{font-size:22px;margin:0}
.op-back{margin:0 0 4px;font-size:14px}
.op-client-fields{display:grid;gap:16px}
.op-fsec{background:#fff;border:1px solid var(--op-line);border-radius:16px;padding:20px 24px 22px;box-shadow:0 10px 26px var(--opx-sh-dark-05,rgba(8,75,118,.05));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;align-items:start}
.op-fsec>h3{grid-column:1/-1;display:flex;align-items:center;gap:10px;font-size:17px!important;margin:0 0 2px!important;color:var(--op-deep)}
.op-fsec>h3 span{width:26px;height:26px;border-radius:50%;background:var(--op-blue);color:#fff;display:grid;place-items:center;font-size:13px}
.op-fsec .op-span2{grid-column:1/-1}
.op-fsec .op-span-2c{grid-column:span 2}
.op-fsec input,.op-fsec select{height:44px}
.op-fsec textarea{min-height:64px}
.op-fsec small{font-size:12px;line-height:1.35}
.op-fsec-op{background:linear-gradient(180deg,var(--opx-fffdf5,#fffdf5),#fff);border-color:var(--opx-fde68a,#fde68a)}
.op-fsec-op>h3 span{background:var(--opx-d97706,#d97706)}
.op-form-bar{position:sticky;bottom:0;z-index:5;display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border:1px solid var(--op-line);border-radius:14px;padding:12px 16px;box-shadow:0 -6px 20px var(--opx-sh-dark-08,rgba(8,75,118,.08))}
.op-form .op-form-bar .op-btn{width:auto;min-width:150px}
.op-client-form .op-inline-del{margin:0;text-align:right}
.op-client-form>.op-notice{margin:0}
@media(max-width:1100px){.op-fsec{grid-template-columns:repeat(2,minmax(0,1fr))}.op-fsec .op-span-2c{grid-column:1/-1}}
@media(max-width:640px){.op-fsec{grid-template-columns:1fr;padding:16px}.op-form .op-form-bar .op-btn{flex:1;min-width:0}}

/* Entregables */
.op-ent-list{display:grid;gap:8px;margin:6px 0 10px}
.op-ent-row{display:grid;grid-template-columns:1fr 90px 40px;gap:8px}
.op-ent-row input{height:42px!important}
.op-ent-del{border:1px solid var(--op-line);background:#fff;border-radius:8px;color:var(--opx-b91c1c,#b91c1c);cursor:pointer;font-weight:800}
.op-ent-del:hover{background:var(--opx-fef2f2,#fef2f2)}
.op-ent .op-ent-add{width:auto!important}
.op-head-side{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.op-pct-chip{border:1px solid var(--op-line);background:var(--op-ice);color:var(--op-deep)!important;border-radius:999px;padding:7px 14px;font-size:13px}
.op-pct-chip.ok{background:var(--opx-dcfce7,#dcfce7);border-color:var(--opx-bbf7d0,#bbf7d0);color:var(--opx-166534,#166534)!important}
.op-pct-chip.late{background:var(--opx-fee2e2,#fee2e2);border-color:var(--opx-fecaca,#fecaca);color:var(--opx-991b1b,#991b1b)!important}
.op-progress{display:flex;align-items:center;gap:14px;margin:6px 0 14px;flex-wrap:wrap}
.op-progress-bar{flex:1;min-width:160px;height:12px;background:var(--opx-e8eef4,#e8eef4);border-radius:999px;overflow:hidden}
.op-progress-bar i{display:block;height:100%;background:linear-gradient(90deg,#16a34a,#22c55e);border-radius:999px;transition:width .3s}
.op-progress-sm{height:8px}
.op-checklist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.op-ck{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--op-line);border-radius:12px;padding:12px 14px;background:#fff;transition:background .2s,border-color .2s}
.op-ck-cumplido{background:var(--opx-f0fdf4,#f0fdf4);border-color:var(--opx-bbf7d0,#bbf7d0)}
.op-ck-cumplido strong{text-decoration:line-through;color:var(--opx-166534,#166534)!important}
.op-ck-vencido{border-color:var(--opx-fecaca,#fecaca);box-shadow:inset 4px 0 0 var(--opx-dc2626,#dc2626)}
.op-ck-box{position:relative;flex:none;width:26px;height:26px;margin-top:1px;cursor:pointer}
.op-ck-box input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.op-ck-box span{position:absolute;inset:0;border:2px solid #9fb3c4;border-radius:7px;background:#fff;transition:.15s}
.op-ck-box input:checked+span{background:#16a34a;border-color:#16a34a}
.op-ck-box input:checked+span:after{content:"";position:absolute;left:8px;top:3px;width:6px;height:12px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
.op-ck-box input:focus-visible+span{box-shadow:0 0 0 3px #279fe455}
.op-ck-body{flex:1;display:grid;gap:4px;min-width:0}
.op-ck-body strong{color:var(--op-deep);font-size:15px}
.op-ck-meta{font-size:12.5px;color:var(--op-gray)}
.op-ck-meta em{font-style:normal;font-weight:700}
.op-ck-vencido .op-ck-meta em{color:var(--opx-b91c1c,#b91c1c)}
.op-ck-cumplido .op-ck-meta em{color:var(--opx-15803d,#15803d)}
.op-ck-note{height:36px;border:1px solid var(--op-line);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px;background:var(--opx-fbfdff,#fbfdff);color:var(--op-ink);max-width:560px}
.op-ck-note:focus{outline:none;border-color:var(--op-bright)}

/* ===== Avisos ===== */
.op-top-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.op-top .op-top-right .op-role-pill{margin-left:0}
.op-help{width:36px;height:36px;border-radius:50%;border:1px solid var(--op-line);background:#fff;display:grid;place-items:center;font-weight:800;color:var(--op-blue)!important;font-size:16px}
.op-help:hover{background:var(--op-ice)}
.op-bell-wrap{position:relative}
.op-bell{position:relative;width:40px;height:40px;border-radius:50%;border:1px solid var(--op-line);background:#fff;color:var(--op-deep);display:grid;place-items:center;cursor:pointer}
.op-bell:hover{background:var(--op-ice)}
.op-bell.crit{border-color:var(--opx-fca5a5,#fca5a5);color:var(--opx-b91c1c,#b91c1c);animation:op-ring 2.4s ease-in-out infinite}
@keyframes op-ring{0%,88%,100%{transform:rotate(0)}91%{transform:rotate(12deg)}94%{transform:rotate(-10deg)}97%{transform:rotate(6deg)}}
.op-bell-n{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;border-radius:999px;background:var(--opx-dc2626,#dc2626);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;padding:0 5px;border:2px solid #fff}
.op-bell-panel{position:absolute;right:0;top:calc(100% + 10px);width:380px;max-width:calc(100vw - 24px);max-height:70vh;overflow:auto;background:#fff;border:1px solid var(--op-line);border-radius:14px;box-shadow:0 24px 50px var(--opx-sh-dark-2,rgba(6,72,110,.2));z-index:80}
.op-bell-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--op-line);position:sticky;top:0;background:#fff}
.op-bell-head a{font-size:12px}
.op-bell-panel ul{list-style:none;margin:0;padding:6px}
.op-al a{display:block;padding:10px 12px 10px 16px;border-radius:10px;color:var(--op-ink)!important;font-size:13.5px;line-height:1.4;position:relative}
.op-al a:hover{background:var(--op-ice)}
.op-al a:before{content:"";position:absolute;left:6px;top:14px;width:6px;height:6px;border-radius:50%}
.op-al-critica a:before{background:var(--opx-dc2626,#dc2626)}.op-al-atencion a:before{background:var(--opx-f59e0b,#f59e0b)}.op-al-info a:before{background:#3b82f6}
.op-al-critica a{background:var(--opx-fef2f2,#fef2f2);margin-bottom:4px}
.op-al-g{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--op-gray)}
.op-al-critica .op-al-g{color:var(--opx-b91c1c,#b91c1c)}
.op-bell-empty{padding:18px}
.op-bell-more{padding:0 16px 12px}
.op-decl-banner{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--opx-dc2626,#dc2626);color:#fff!important;border-radius:12px;padding:12px 16px;margin:0 0 16px;font-size:14.5px;box-shadow:0 10px 24px rgba(220,38,38,.25)}
.op-decl-banner span{margin-left:auto;font-weight:800;white-space:nowrap}
.op-decl-banner:hover{background:var(--opx-b91c1c,#b91c1c)}
.op-decl-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.op-decl-list li{display:flex;align-items:center;gap:14px;border:1px solid var(--op-line);border-radius:12px;padding:10px 12px;background:#fff}
.op-decl-list li a{flex:1;display:grid;color:var(--op-ink)!important;min-width:0}
.op-decl-list li a strong{color:var(--op-deep)}
.op-decl-list li a span{font-size:12.5px;color:var(--op-gray)}
.op-countdown{flex:none;width:58px;height:54px;border-radius:12px;background:var(--op-ice);display:grid;place-items:center;align-content:center;line-height:1}
.op-countdown strong{font-size:22px;color:var(--op-deep)}
.op-countdown small{font-size:10px;color:var(--op-gray);margin-top:2px}
.op-decl-list li.soon .op-countdown{background:var(--opx-fef3c7,#fef3c7)}.op-decl-list li.soon .op-countdown strong{color:#b45309}
.op-decl-list li.now{border-color:var(--opx-fecaca,#fecaca)}.op-decl-list li.now .op-countdown{background:var(--opx-fee2e2,#fee2e2)}.op-decl-list li.now .op-countdown strong{color:var(--opx-b91c1c,#b91c1c)}
.op-decl-list li.late{border-color:var(--opx-fca5a5,#fca5a5);background:var(--opx-fff5f5,#fff5f5)}.op-decl-list li.late .op-countdown{background:var(--opx-dc2626,#dc2626)}.op-decl-list li.late .op-countdown strong,.op-decl-list li.late .op-countdown small{color:#fff}
/* ===== Guía ===== */
.op-nav-guide{margin-top:8px;border-top:1px dashed var(--opx-c9e8f8,#c9e8f8);padding-top:14px!important}
.op-guide{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:start}
.op-g-toc{position:sticky;top:16px;background:#fff;border:1px solid var(--op-line);border-radius:14px;padding:12px;display:grid;gap:2px}
.op-g-search{height:40px;border:1px solid var(--op-line);border-radius:8px;padding:6px 10px;font:inherit;font-size:14px;margin-bottom:6px}
.op-g-group{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--op-gray);margin:10px 6px 4px}
.op-g-toc a{padding:7px 8px;border-radius:8px;font-size:13.5px;color:var(--op-deep)}
.op-g-toc a:hover{background:var(--op-ice)}
.op-g-body{display:grid;gap:14px}
.op-g-topic{scroll-margin-top:16px}
.op-g-topic h2{font-size:19px;margin-bottom:10px}
.op-g-topic p,.op-g-topic li{font-size:15px;line-height:1.6}
.op-g-topic ul,.op-g-steps{margin:6px 0 10px;padding-left:22px}
.op-g-steps li{margin:6px 0}
.op-g-tip{background:var(--opx-eef9ff,#eef9ff);border:1px solid var(--opx-bfe3f7,#bfe3f7);border-radius:10px;padding:10px 12px}
.op-g-warn{background:var(--opx-fff7ed,#fff7ed);border:1px solid var(--opx-fed7aa,#fed7aa);border-radius:10px;padding:10px 12px;color:#9a3412}
.op-g-table{border-collapse:collapse;margin:8px 0 12px;font-size:14px;overflow-x:auto;display:block}
.op-g-table th,.op-g-table td{border:1px solid var(--op-line);padding:6px 10px;text-align:left}
.op-g-table th{background:var(--op-ice)}
.op-g-faq dt{font-weight:800;color:var(--op-deep);margin-top:10px}
.op-g-faq dd{margin:4px 0 0}
.op-g-focus{border-color:var(--op-bright);box-shadow:0 0 0 3px #279fe433}
.op-al-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.op-al-dot.crit{background:var(--opx-dc2626,#dc2626)}.op-al-dot.warn{background:var(--opx-f59e0b,#f59e0b)}.op-al-dot.info{background:#3b82f6}
.op-welcome{display:flex;gap:18px;align-items:center;justify-content:space-between;background:linear-gradient(110deg,var(--opx-e0f2fe,#e0f2fe),#fff);border-color:var(--opx-bae6fd,#bae6fd)}
.op-welcome p{margin:4px 0 0}
.op-welcome-actions{display:flex;gap:8px;flex-wrap:wrap;flex:none}
@media(max-width:900px){.op-guide{grid-template-columns:1fr}.op-g-toc{position:static}.op-welcome{flex-direction:column;align-items:flex-start}.op-top .op-role-pill{display:none}}

/* Expediente 360° */
.op-doc-update{display:grid;gap:6px;min-width:210px}.op-doc-update .op-btn{width:auto}.op-table td .op-btn{margin:2px}.op-form input[type=file]{padding:9px 10px;height:auto;background:var(--opx-fbfdff,#fbfdff);border:1px solid var(--op-line);border-radius:8px}

/* ===== v1.0: utilidades ===== */
.op-mt{margin-top:12px}.op-num{text-align:right;white-space:nowrap}.op-tight{gap:10px!important}
.op-chip-warn{background:var(--opx-fef3c7,#fef3c7);border-color:var(--opx-fde68a,#fde68a);color:#92400e}.op-chip-ok{background:var(--opx-dcfce7,#dcfce7);border-color:var(--opx-bbf7d0,#bbf7d0);color:var(--opx-166534,#166534)}
.op-simple{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.op-simple li{display:grid;padding:9px 0;border-bottom:1px solid var(--op-line)}
.op-simple li:last-child{border-bottom:0}
.op-simple li span{font-size:13px;color:var(--op-gray)}
.op-inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.op-inline-form input:not([type=file]),.op-inline-form select{height:38px;max-width:220px}
.op-file-btn{cursor:pointer;position:relative}
.op-kpis-6{grid-template-columns:repeat(6,minmax(0,1fr))}
.op-big{font-size:28px;font-weight:800;color:var(--op-deep);margin:4px 0 10px}
.op-dl-tight dt,.op-dl-tight dd{padding:4px 0}
/* Historial */
.op-log{list-style:none;margin:0;padding:0}
.op-log li{display:flex;gap:12px;padding:10px 0;border-bottom:1px dashed var(--op-line)}
.op-log li div{display:grid;font-size:14px}
.op-log-ic{flex:none;width:30px;height:30px;border-radius:50%;background:var(--op-ice);display:grid;place-items:center;font-size:14px}
/* Novedades */
.op-news-list{display:grid;gap:12px;margin-top:14px}
.op-news{background:#fff;border:1px solid var(--op-line);border-left:4px solid var(--op-bright);border-radius:12px;padding:14px 16px}
.op-news h3{margin:4px 0 6px;font-size:16px;color:var(--op-deep)}
.op-news p{margin:4px 0}
.op-news-head{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.op-news-head .op-tag{margin:0}
.op-news-incidencia{border-left-color:var(--opx-dc2626,#dc2626)}.op-news-requerimiento{border-left-color:#7c3aed}.op-news-acuerdo{border-left-color:#16a34a}
.op-news-done{opacity:.65}
/* Documentos */
.op-docs{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.op-doc{display:flex;gap:12px;align-items:center;border:1px solid var(--op-line);border-radius:12px;padding:10px 12px;background:#fff}
.op-doc-pend{background:var(--opx-fffbeb,#fffbeb);border-color:var(--opx-fde68a,#fde68a)}
.op-doc-ic{font-size:20px;flex:none}
.op-doc-body{flex:1;display:grid;gap:3px;min-width:0}
.op-doc-body .op-st{justify-self:start}
.op-doc-actions{display:flex;gap:6px;flex-wrap:wrap;flex:none}
.op-row-new td{background:var(--opx-fffbeb,#fffbeb)}
.op-need{border-color:var(--opx-fde68a,#fde68a)}
.op-me-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
/* Semáforo y cobros */
.op-light{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:middle;margin-right:4px;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--op-line)}
.op-light-verde{background:#16a34a}.op-light-amarillo{background:var(--opx-f59e0b,#f59e0b)}.op-light-rojo{background:var(--opx-dc2626,#dc2626)}.op-light-gris{background:var(--opx-cbd5e1,#cbd5e1)}
.op-light-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 12px;font-weight:700;font-size:13px;border:1px solid var(--op-line);background:#fff;color:var(--op-deep)!important}
.op-light-chip-rojo{background:var(--opx-fef2f2,#fef2f2);border-color:var(--opx-fecaca,#fecaca);color:var(--opx-b91c1c,#b91c1c)!important}.op-light-chip-amarillo{background:var(--opx-fffbeb,#fffbeb);border-color:var(--opx-fde68a,#fde68a);color:#92400e!important}.op-light-chip-verde{background:var(--opx-f0fdf4,#f0fdf4);border-color:var(--opx-bbf7d0,#bbf7d0);color:var(--opx-166534,#166534)!important}
.op-pay{display:inline-block;font-size:11.5px;font-weight:800;border-radius:6px;padding:2px 7px;margin-left:4px;background:var(--opx-eef2f6,#eef2f6);color:#334155;vertical-align:middle}
.op-pay-bloqueado{background:var(--opx-fee2e2,#fee2e2);color:var(--opx-b91c1c,#b91c1c)}.op-pay-pagado{background:var(--opx-dcfce7,#dcfce7);color:var(--opx-166534,#166534)}.op-pay-credito{background:#ede9fe;color:#6d28d9}.op-pay-contado,.op-pay-anticipo_ok{background:var(--opx-fef3c7,#fef3c7);color:#92400e}
.op-pay-box{border:1px dashed var(--opx-c9e8f8,#c9e8f8);border-radius:12px;padding:12px 14px;background:var(--opx-f8fcff,#f8fcff)}
.op-pay-box summary{cursor:pointer}
.op-pay-form{display:inline-block;position:relative}
.op-pay-form[open] form{position:absolute;right:0;top:calc(100% + 6px);z-index:20;background:#fff;border:1px solid var(--op-line);border-radius:12px;box-shadow:0 18px 40px var(--opx-sh-dark-18,rgba(6,72,110,.18));padding:14px;width:260px;display:grid;gap:8px;text-align:left}
.op-fin-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.op-fin-actions details[open]{flex-basis:100%;order:9}
.op-fin-actions details[open] summary{margin-bottom:12px}
.op-fin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.op-fin-grid .op-span2{grid-column:1/-1}
.op-fin-edit input{width:110px;height:34px;text-align:right;padding:4px 8px}
.op-fin-table td,.op-fin-table th{font-size:13.5px}
.op-flag{display:block;font-size:12px;font-weight:700;border-radius:6px;padding:3px 8px;margin:2px 0}
.op-flag-rojo{background:var(--opx-fef2f2,#fef2f2);color:var(--opx-b91c1c,#b91c1c)}.op-flag-amarillo{background:var(--opx-fffbeb,#fffbeb);color:#92400e}.op-flag-verde{background:var(--opx-f0fdf4,#f0fdf4);color:var(--opx-166534,#166534)}
/* Reportes */
.op-week-head{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.op-week-head h2{margin-bottom:4px}
.op-report-deadline{background:var(--op-ice);border-radius:12px;padding:10px 14px;font-size:14px}
.op-report-deadline strong{font-size:22px;color:var(--op-deep);margin-right:4px}
.op-report-deadline.now{background:var(--opx-fef3c7,#fef3c7)}.op-report-deadline.late{background:var(--opx-fee2e2,#fee2e2);color:var(--opx-b91c1c,#b91c1c)}
.op-rep-enviado{background:var(--opx-dcfce7,#dcfce7);color:var(--opx-166534,#166534)}.op-rep-borrador{background:var(--opx-dbeafe,#dbeafe);color:#1d4ed8}.op-rep-pendiente{background:var(--opx-eef2f6,#eef2f6);color:#475569}.op-rep-atrasado{background:var(--opx-fee2e2,#fee2e2);color:var(--opx-b91c1c,#b91c1c)}
.op-report-wrap{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}
.op-report-side{position:sticky;top:16px;display:grid;gap:12px}
.op-report-doc{background:#fff;border:1px solid var(--op-line);border-radius:16px;padding:28px 30px;box-shadow:0 10px 30px var(--opx-sh-dark-07,rgba(6,72,110,.07))}
.op-report-doc header{display:flex;gap:16px;align-items:center;border-bottom:3px solid var(--op-bright);padding-bottom:14px;margin-bottom:16px}
.op-report-doc header img{height:54px}
.op-report-doc header span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--op-blue)}
.op-report-doc header h2{margin:2px 0 0;font-size:22px}
.op-report-msg{font-size:15.5px;line-height:1.6;background:var(--opx-f8fcff,#f8fcff);border-radius:12px;padding:14px 16px}
.op-report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.op-report-kpis div{border:1px solid var(--op-line);border-radius:12px;padding:12px;text-align:center}
.op-report-kpis strong{display:block;font-size:24px;color:var(--op-deep)}
.op-report-kpis span{font-size:12px;color:var(--op-gray)}
.op-report-fin strong{font-size:18px}
.op-report-doc section{margin:16px 0}
.op-report-doc section h3{font-size:16px;margin:0 0 8px;color:var(--op-deep)}
.op-report-doc section ul{margin:0;padding-left:20px}
.op-report-doc section li{margin:5px 0;line-height:1.45}
.op-report-doc section li span{color:var(--op-gray);font-size:13.5px}
.op-report-doc footer{margin-top:20px;padding-top:14px;border-top:1px solid var(--op-line);color:var(--op-gray)}
.op-client-report .op-report-doc{box-shadow:none;border:0;padding:0}
/* Resumen del día */
.op-day{background:linear-gradient(110deg,var(--opx-fff7e6,#fff7e6),#fff);border-color:var(--opx-fde7b0,#fde7b0)}
.op-day-list{margin:4px 0 0;padding-left:0;list-style:none;display:grid;gap:6px;font-size:15px}
/* Asistente IA */
.op-ai-log{height:min(56vh,520px);overflow:auto;background:var(--opx-f8fcff,#f8fcff);border:1px solid var(--op-line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}
.op-ai-msg{max-width:82%;border-radius:14px;padding:10px 14px;font-size:14.5px;line-height:1.5;position:relative}
.op-ai-msg p{margin:0 0 6px}.op-ai-msg p:last-child{margin:0}.op-ai-msg ul{margin:4px 0;padding-left:20px}
.op-ai-user{align-self:flex-end;background:var(--op-blue);color:#fff}
.op-ai-assistant{align-self:flex-start;background:#fff;border:1px solid var(--op-line)}
.op-ai-wait{color:var(--op-gray);font-style:italic}.op-ai-err{border-color:var(--opx-fecaca,#fecaca);background:var(--opx-fef2f2,#fef2f2);color:var(--opx-b91c1c,#b91c1c)}
.op-ai-copy{position:absolute;right:8px;bottom:-12px;font-size:11px;border:1px solid var(--op-line);background:#fff;border-radius:6px;padding:2px 8px;cursor:pointer;color:var(--op-blue);opacity:0;transition:opacity .2s}
.op-ai-msg:hover .op-ai-copy{opacity:1}
.op-ai-sugs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.op-ai-sug{border:1px solid var(--opx-bfe3f7,#bfe3f7);background:var(--opx-eef9ff,#eef9ff);color:var(--op-deep);border-radius:999px;padding:7px 12px;font:inherit;font-size:13px;cursor:pointer}
.op-ai-sug:hover{background:var(--opx-dff2fd,#dff2fd)}
.op-ai-form{display:flex;gap:10px;align-items:flex-end}
.op-ai-form textarea{flex:1;border:1px solid var(--op-line);border-radius:12px;padding:10px 12px;font:inherit;resize:vertical;min-height:48px}
@media(max-width:1000px){.op-report-wrap{grid-template-columns:1fr}.op-report-side{position:static}.op-kpis-6{grid-template-columns:repeat(3,1fr)}.op-fin-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.op-report-kpis{grid-template-columns:1fr 1fr}.op-kpis-6{grid-template-columns:1fr 1fr}.op-ai-msg{max-width:94%}.op-report-doc{padding:18px}}
@media print{.op-side,.op-top,.op-decl-banner,.op-report-side,.op-seg,.op-notice,.op-week-head .op-row-actions{display:none!important}.op-main{margin:0!important;padding:0!important}.op-report-wrap{display:block}.op-report-doc{border:0;box-shadow:none}}
.op-seg-tabs{flex-wrap:wrap;max-width:100%}
.op-seg-tabs a{white-space:nowrap}
.op-report-side .op-row-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.op-report-side .op-row-actions .op-btn{width:100%;justify-content:center;text-align:center}
.op-report-side form .op-row-actions{grid-template-columns:1fr}
/* v1.0.1 · Auditoría Express */
.op-audit-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:12px}
.op-audit-kpis div{background:#fff;border:1px solid var(--op-line);border-radius:12px;padding:12px 14px;min-width:0}
.op-audit-kpis span{display:block;font-size:12px;color:var(--op-gray)}
.op-audit-kpis strong{display:block;font-size:20px;color:var(--op-deep);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-audit .op-table td .op-audit-upload form{min-width:260px}
.op-audit .op-row-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}

/* ===== v1.1 Calidad ===== */
.op-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-weight:500}
.op-check input{width:auto!important;margin:0}
.op-grow{flex:1;min-width:180px}
.op-cal-trbox{border:1px dashed var(--opx-279fe4,#279fe4);border-radius:12px;padding:12px 14px;background:var(--opx-f5fbff,#f5fbff)}
.op-cal-trbox p{margin:4px 0 8px}
.op-cal-note{margin:6px 0 4px;padding:8px 10px;border-left:3px solid var(--opx-279fe4,#279fe4);background:var(--opx-f5fbff,#f5fbff);border-radius:0 8px 8px 0;font-size:14px;white-space:normal}
.op-cal-tr{background:var(--opx-e0f2fe,#e0f2fe);color:var(--opx-075985,#075985)}
.op-cal-ok{background:var(--opx-dcfce7,#dcfce7);color:var(--opx-166534,#166534)}
.op-cal-vb{margin:12px 0 0;color:var(--opx-166534,#166534);font-weight:600}
.op-cal-step{margin:10px 0 -4px;font-weight:700;color:var(--op-deep)}
.op-cal-hform{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:12px}
.op-cal-stars{border:0;padding:0;margin:0 0 10px;display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.op-cal-stars legend{display:block;width:100%;font-weight:600;font-size:14px;margin-bottom:4px}
.op-cal-stars input{position:absolute;opacity:0;width:1px;height:1px}
.op-cal-stars label{font-size:32px;line-height:1;color:var(--opx-cbd5e1,#cbd5e1);cursor:pointer;transition:color .15s}
.op-cal-stars input:checked~label,.op-cal-stars label:hover,.op-cal-stars label:hover~label{color:var(--opx-f59e0b,#f59e0b)}
.op-cal-stars input:focus-visible+label{outline:2px solid var(--opx-279fe4,#279fe4);border-radius:4px}

/* ===== v1.2 Grupos y EBITDA ===== */
.op-grp-row td{background:var(--opx-f0f9ff,#f0f9ff);border-top:2px solid var(--opx-bae6fd,#bae6fd);font-size:14px;padding-top:10px!important;padding-bottom:10px!important}
.op-grp-row a{text-decoration:none}
.op-grp-none td{background:var(--opx-f8fafc,#f8fafc);border-top:2px solid var(--opx-e2e8f0,#e2e8f0);color:#64748b}
.op-grp-sum{margin-left:10px;font-size:13px;color:var(--opx-0b3a5b,#0b3a5b)}
.op-grp-chip{margin-left:6px;text-decoration:none;background:var(--opx-e0f2fe,#e0f2fe);color:var(--opx-075985,#075985)}
.op-est-card details>summary{list-style:none;display:inline-block;cursor:pointer}
.op-est-card details>summary::-webkit-details-marker{display:none}

/* ===== v1.2.1 Exportar ===== */
.op-export{display:flex;gap:4px;margin-right:4px}
.op-export-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--op-line);border-radius:8px;background:#fff;color:var(--op-deep);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.op-export-btn:hover{border-color:var(--op-blue);color:var(--op-blue)}
.op-export-btn svg{fill:none!important}
.op-export-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--op-deep);color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;font-weight:600;z-index:9999;box-shadow:0 8px 24px var(--opx-sh-dark-25,rgba(4,62,96,.25))}
.op-print-head{display:none}
@media (max-width:900px){.op-export-btn span{display:none}.op-export-btn{padding:0 10px}}
@media print{
  @page{margin:12mm}
  body.sbop-body{background:#fff!important;font-size:11pt}
  .op-print-head{display:flex!important;align-items:center;gap:14px;border-bottom:2px solid var(--op-bright);padding-bottom:10px;margin-bottom:16px}
  .op-print-head img{height:34px}.op-print-head strong{display:block;font-size:15pt;color:var(--op-deep)}.op-print-head span{font-size:9pt;color:var(--op-gray)}
  .op-export,.op-export-toast,.op-btn,button,.op-actions,.op-toolbar form,.op-filters,details>summary,.op-help,.op-bell,.op-cal-hform,.op-form-inline{display:none!important}
  .op-card{box-shadow:none!important;break-inside:avoid;page-break-inside:avoid;border-color:#ccc!important}
  .op-table-wrap{overflow:visible!important}
  .op-table{font-size:9pt}
  .op-table th,.op-table td{padding:4px 6px!important}
  .op-table input,.op-table select{border:0!important;background:none!important;padding:0!important;height:auto!important;min-width:0!important;font-size:9pt!important;-webkit-appearance:none;appearance:none}
  a{color:inherit!important;text-decoration:none!important}
  .op-content{padding:0!important}
  /* v1.5.5: al ocultar el menú, el contenido usa todo el ancho de la hoja (antes quedaba en la columna de 270 px). */
  .op-app{display:block!important;min-height:0!important}
  .op-main,.op-content{width:auto!important;max-width:none!important}
}

/* ===== v1.3 Logo del cliente ===== */
.op-logo-box{display:flex;align-items:center;justify-content:center;min-height:120px;max-width:360px;border:1px dashed var(--op-line);border-radius:12px;background:#fff;padding:16px;margin:12px 0}
.op-logo-box img{max-height:100px;max-width:100%;object-fit:contain}
.op-brand-preview,.op-report-doc header.op-brand-head{display:flex;align-items:center;gap:16px;border-bottom:3px solid var(--op-bright);padding-bottom:14px}
.op-brand-preview{background:#fff;border:1px solid var(--op-line);border-radius:12px;padding:16px 18px;margin-top:8px}
.op-brand-preview div{display:flex;flex-direction:column}.op-brand-preview span{font-size:13px;color:var(--op-gray)}
img.op-brand-client{height:auto!important;max-height:64px;max-width:200px;object-fit:contain}
span.op-brand-client{display:inline-flex;align-items:center;justify-content:center;width:140px;height:56px;border:1px dashed var(--op-line);border-radius:8px;font-size:12px}
.op-brand-by{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11px;color:var(--op-gray);white-space:nowrap}
.op-brand-by img{height:18px!important}
.op-client-logo-sm{height:40px;max-width:120px;object-fit:contain;border-radius:6px;background:#fff;border:1px solid var(--op-line);padding:3px}
.op-print-by{display:none}
@media print{.op-print-head .op-print-client{height:auto;max-height:44px;max-width:180px;object-fit:contain}.op-print-head .op-print-by{display:flex;margin-left:auto;align-items:center;gap:6px;font-style:normal;font-size:8pt;color:var(--op-gray)}.op-print-head .op-print-by img{height:16px}}
.op-reset-card{border-color:var(--opx-f3c7b5,#f3c7b5)}
.op-reset-card h3{font-size:15px;margin:8px 0}
.op-reset-steps{margin:14px 0;padding-left:20px;display:grid;gap:6px}
.op-reset-done{color:var(--op-ok)}
.op-reset-opts{border:1px solid var(--op-line);border-radius:10px;padding:10px 14px;display:grid;gap:6px}
.op-reset-opts legend{font-weight:700;font-size:13px;padding:0 4px}
.op-btn[disabled]{opacity:.5;cursor:not-allowed}

/* ===== v1.4 Selector de empresas del dueño ===== */
.op-emp-sel{position:relative;margin-right:6px}
.op-emp-sel>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:46px;padding:6px 12px 6px 8px;border:1px solid var(--op-blue);border-radius:12px;background:var(--opx-eef9ff,#eef9ff);cursor:pointer;color:var(--op-deep)}
.op-emp-sel>summary::-webkit-details-marker{display:none}
.op-emp-ico{width:32px;height:32px;border-radius:8px;background:var(--op-blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;flex-shrink:0;object-fit:contain}
img.op-emp-ico{background:#fff;border:1px solid var(--op-line)}
.op-emp-grp{background:var(--op-deep)}
.op-emp-txt{display:flex;flex-direction:column;text-align:left;line-height:1.2}
.op-emp-txt strong{font-size:14px}.op-emp-txt small{font-size:12px;color:var(--op-gray)}
.op-emp-caret{font-size:14px}
.op-emp-menu{position:absolute;top:calc(100% + 6px);right:0;width:360px;max-width:90vw;background:#fff;border:1px solid var(--op-line);border-radius:14px;box-shadow:0 18px 40px var(--opx-sh-dark-18,rgba(4,62,96,.18));padding:8px;z-index:60;display:flex;flex-direction:column;gap:2px}
.op-emp-head{margin:4px 8px 6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--op-gray)}
.op-emp-menu button{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:#fff;cursor:pointer;font:inherit;color:var(--op-deep)}
.op-emp-menu button:hover,.op-emp-menu button.on{background:var(--opx-eef9ff,#eef9ff);border-color:var(--opx-9ad8f7,#9ad8f7)}
.op-emp-check{margin-left:auto;color:var(--op-blue);font-weight:800}
.op-emp-menu hr{border:0;border-top:1px solid var(--op-line);margin:4px}
@media (max-width:700px){.op-emp-txt small{display:none}.op-emp-sel>summary{padding:4px 8px}.op-emp-menu{position:fixed;left:8px;right:8px;top:auto;bottom:8px;width:auto}}
@media print{.op-emp-sel{display:none!important}}
.op-mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin:12px 0}
.op-mod{display:flex!important;flex-direction:row!important;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--op-line);border-radius:12px;background:#fff;cursor:pointer}
.op-mod input{width:20px!important;height:20px;margin-top:2px;flex-shrink:0}
.op-mod span{display:flex;flex-direction:column;gap:2px}.op-mod small{color:var(--op-gray);font-weight:400}
.op-iso-snap{white-space:pre-wrap;background:var(--opx-f5fbff,#f5fbff);border:1px solid var(--op-line);border-radius:10px;padding:12px 14px;font:13px/1.6 inherit;margin:6px 0}

/* ===== Revisión general: casillas y opciones siempre a su tamaño ===== */
.op-form input[type=radio],.op-form input[type=checkbox],.op-table input[type=radio],.op-table input[type=checkbox]{width:18px;height:18px;min-width:18px;margin:0;flex:none;accent-color:var(--op-blue);vertical-align:middle}

/* ===== Revisión general de diseño (1.4.1) ===== */
/* El contenido nunca se ensancha por una tabla: las tablas se desplazan dentro de su tarjeta. */
.op-content{grid-template-columns:minmax(0,1fr)}
.op-content>*,.op-card,.op-grid>*,.op-kpi-grid>*,.op-guide>*,.op-g-body,form,details,fieldset{min-width:0}
.op-table-wrap{max-width:100%;overflow-x:auto}
.op-card-head{flex-wrap:wrap}
.op-seg-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:thin}
.op-seg-tabs a{flex:none}
.op-toolbar{min-width:0;max-width:100%}
.op-mod-grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}
.op-fin-table .op-flag{white-space:nowrap}
.op-link{padding:6px 2px;min-height:32px}
/* Casillas y opciones con tamaño fijo en todo el portal, aunque otra regla diga lo contrario. */
.op-app input[type=checkbox],.op-app input[type=radio]{width:18px!important;height:18px!important;min-width:18px;padding:0!important;margin:0;flex:none;accent-color:var(--op-blue)}
.op-app .op-cal-stars input[type=radio]{position:absolute;opacity:0;width:1px!important;height:1px!important}
/* Barra superior en celular: el selector de empresa ocupa su propia fila. */
@media (max-width:700px){
  .op-top{flex-wrap:wrap;gap:8px}
  .op-top-right{flex-wrap:wrap;justify-content:flex-end;width:100%;margin-left:0;gap:6px}
  .op-emp-sel{order:-1;flex:1 1 100%;margin:0}
  .op-emp-sel>summary{width:100%;box-sizing:border-box}
  .op-export{margin:0}
  .op-kpi-head,.op-guide{flex-wrap:wrap;min-width:0}
  .op-guide{grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:700px){
  .op-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .op-kpis strong{font-size:clamp(16px,5vw,22px);white-space:nowrap}
  .op-kpi-grid,.op-grid-2{grid-template-columns:minmax(0,1fr)!important}
}

/* ===== v1.5 – Acceso de clientes, grupos, versión ===== */
.op-tag-ok{background:var(--opx-e7f7ee,#e7f7ee);color:var(--opx-11643a,#11643a)}
.op-tag-amber{background:var(--opx-fff4dc,#fff4dc);color:var(--opx-8a5a00,#8a5a00)}
.op-emp-cell{display:grid;gap:4px;min-width:220px}
.op-emp-cell .op-tag{margin:0;justify-self:start;text-transform:none;letter-spacing:0;font-weight:700}
.op-pick-note{display:block}
.op-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.op-version{display:block;margin-top:10px;font-size:11px;color:var(--op-gray)}
.op-alert-card{border-color:var(--opx-f3c98b,#f3c98b)}
.op-grpa-edit{display:inline-block;text-align:left}
.op-grpa-edit[open]{display:block;min-width:260px;background:var(--op-ice);border-radius:10px;padding:10px;margin-top:6px}
.op-grpa-edit form{display:grid;gap:8px}
/* «¿Cómo va a entrar?»: dos opciones como tarjetas lado a lado */
.op-app .op-modes{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.op-app .op-modes .op-clave-field{grid-column:1/-1}
.op-app .op-mode{border:1px solid var(--op-line);background:#fff}
.op-app .op-mode:has(input:checked){border-color:var(--op-bright);background:var(--op-ice)}

/* ===== v1.5 – Mis finanzas ===== */
.op-fz-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}
.op-fz-head h2{margin:0}
.op-fz-head p{margin:2px 0 0}
.op-fz-month select{min-width:200px;font-weight:600}
.op-fz-tabs{display:flex;gap:2px;overflow-x:auto;background:#fff;border:1px solid var(--op-line);border-top:0;border-radius:0 0 16px 16px;padding:0 10px;margin-bottom:18px;scrollbar-width:thin}
.op-fz-tabs a{flex:none;padding:13px 14px 11px;font-size:14px;font-weight:600;color:var(--op-gray);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap}
.op-fz-tabs a:hover{color:var(--op-deep)}
.op-fz-tabs a.on{color:var(--op-deep);border-bottom-color:var(--op-blue)}
.op-fz-tabs a:focus-visible{outline:2px solid var(--op-bright);outline-offset:-2px}
.op-fz-panel{display:none}
.op-fz-panel.on,.op-show-all .op-fz-panel{display:block}
.op-fz-ptitle{display:none}
.op-show-all .op-fz-ptitle{display:block}
.op-fz-kpis{margin-bottom:16px}
.op-fz-kpis div{display:flex;flex-direction:column;gap:4px}
.op-fz-kpis strong{order:2;font-size:26px}
.op-fz-kpis span{order:1}
.op-fz-kpis .op-fz-delta{order:3}
.op-fz-kpis .op-fz-neg strong{color:var(--opx-b42318,#b42318)}
.op-fz-delta{display:block;font-size:12.5px;font-weight:600;color:var(--op-gray)}
.op-fz-up{color:var(--opx-15803d,#15803d)}
.op-fz-down{color:var(--opx-b42318,#b42318)}
.op-fz-alist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.op-fz-alist li,.op-fz-a-ok{margin:0;padding:10px 14px;border-radius:10px;font-size:14px;border-left:4px solid}
.op-fz-a-rojo{background:var(--opx-fdecec,#fdecec);border-color:var(--opx-d92d20,#d92d20);color:var(--opx-7a1a12,#7a1a12)}
.op-fz-a-amarillo{background:var(--opx-fff6e0,#fff6e0);border-color:var(--opx-e5a000,#e5a000);color:var(--opx-6b4500,#6b4500)}
.op-fz-a-verde,.op-fz-a-ok{background:var(--opx-e9f7ef,#e9f7ef);border-color:var(--opx-15803d,#15803d);color:var(--opx-11643a,#11643a)}
.op-fz-note{margin:14px 0 0;padding:12px 16px;background:var(--op-ice);border-radius:10px;font-size:14.5px;color:var(--op-ink)}
.op-fz-note span{display:block;font-size:12px;font-weight:700;color:var(--op-gray);margin-bottom:4px}
.op-fz-big{font-size:28px;font-weight:800;color:var(--op-deep);margin:0 0 6px;line-height:1.1}
.op-fz-chart{width:100%;height:auto;display:block;margin:6px 0 4px}
.op-fz-chart .g{stroke:var(--op-line);stroke-width:1}
.op-fz-chart .l{font-size:11px;fill:var(--op-gray);font-family:inherit}
.op-fz-chart polyline{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.op-fz-chart polyline.c{stroke:var(--op-blue)}
.op-fz-chart polyline.p{stroke:#a9b4be;stroke-dasharray:5 4;stroke-width:2}
.op-fz-chart circle.c{fill:#fff;stroke:var(--op-blue);stroke-width:2.5}
.op-fz-chart circle.p{fill:#fff;stroke:#a9b4be;stroke-width:2}
.op-fz-legend{display:flex;gap:18px;font-size:12.5px;color:var(--op-gray);margin:0 0 12px}
.op-fz-legend span::before{content:"";display:inline-block;width:18px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle;background:var(--op-blue)}
.op-fz-legend .p::before{background:#a9b4be}
.op-fz-table tr.t td{font-weight:700;border-top:2px solid var(--op-line)}
.op-fz-barcell{width:34%;min-width:90px}
.op-fz-bar{display:block;height:10px;border-radius:5px;background:var(--op-bright);min-width:2px}
.op-fz-bar.hot{background:var(--opx-d92d20,#d92d20)}
.op-fz-bar.ok{background:var(--opx-15803d,#15803d)}
.op-fz-st{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px}
.op-fz-st-ok{background:var(--opx-e9f7ef,#e9f7ef);color:var(--opx-11643a,#11643a)}
.op-fz-st-wip{background:var(--opx-fff6e0,#fff6e0);color:var(--opx-6b4500,#6b4500)}
.op-fz-st-late{background:var(--opx-fdecec,#fdecec);color:var(--opx-7a1a12,#7a1a12)}
.op-fz-cta{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.op-fz-cta h2{margin:0 0 2px}
.op-fz-cta p{margin:0}
@media(max-width:900px){
  .op-fz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .op-fz-kpis strong{font-size:clamp(17px,5vw,22px)}
  .op-fz-month,.op-fz-month select{width:100%}
}
@media print{
  .op-fz-tabs,.op-fz-month,.op-fz-cta{display:none!important}
  .op-fz-panel{display:block!important;break-inside:auto}
  .op-fz-ptitle{display:block!important;margin:18px 0 8px;font-size:16px}
}

.op-app .op-fz-chart text{stroke:none!important;fill:var(--op-gray);font-weight:500}
.op-app .op-fz-chart{fill:none;stroke:none;width:100%;height:auto}
.op-fz-month select{height:40px;padding:6px 12px;border:1px solid var(--op-line);border-radius:8px;background:var(--opx-fbfdff,#fbfdff);font:inherit;font-size:14px;color:var(--op-ink)}
.op-fz-st{white-space:nowrap}
.op-side-foot{flex-wrap:wrap;row-gap:4px}.op-side-foot .op-version{flex-basis:100%;order:3;margin-top:4px}
.op-fz-alerts .op-btn{white-space:normal;max-width:100%;height:auto;text-align:left}

/* v1.5.1 – Emojis convertidos en imagen por WordPress: siempre del tamaño del texto. */
.sbop-body img.emoji,.sbop-body img.wp-smiley{display:inline!important;width:1em!important;height:1em!important;max-width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;border:none!important;box-shadow:none!important;background:none!important;padding:0!important}

/* v1.6 – Obligaciones anuales */
.op-serv-group{margin-bottom:14px}
.op-serv-title{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--op-gray);margin:0 0 6px}
.op-serv-anual{border:1px solid var(--op-line);border-radius:12px;padding:12px 14px;background:var(--op-ice)}
.op-serv-anual p{margin:0 0 10px}
.op-checks-anual{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px 16px}
.op-check-anual{align-items:flex-start!important}
.op-check-anual input{margin-top:3px}
.op-check-anual span{display:grid;gap:1px}
.op-check-anual strong{font-size:13px;font-weight:600;line-height:1.35}
.op-check-anual small{font-size:12px;font-weight:400;color:var(--op-gray);line-height:1.35}
.op-anual-fields{display:grid;margin-top:12px;gap:12px}
.op-chip-red{background:var(--opx-fee2e2,#fee2e2);border-color:var(--opx-fecaca,#fecaca);color:var(--opx-b91c1c,#b91c1c)}
.op-chip-pend{background:#fff;border-style:dashed}
.op-anual-table td{vertical-align:top}
/* v1.6 – Configuración de la empresa */
.op-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.op-empresa-form{gap:0}
.op-empresa-form>.op-card{margin-bottom:16px}
.op-logo-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:14px}
.op-logo-pair .op-logo-box{margin:0;flex-direction:column;gap:6px}
.op-logo-box-dark{background:linear-gradient(180deg,var(--opx-dff2fc,#dff2fc),var(--opx-eef9ff,#eef9ff))!important}
.op-theme-wrap{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,1.1fr);gap:20px;align-items:start}
.op-color-list{display:grid;gap:8px}
.op-form .op-color{display:grid!important;grid-template-columns:44px 1fr auto;align-items:center;gap:12px!important;padding:6px 10px;border:1px solid var(--op-line);border-radius:10px;background:#fff}
.op-color input[type=color]{width:44px;height:34px;padding:0;border:1px solid var(--op-line);border-radius:8px;background:#fff;cursor:pointer}
.op-color span{display:grid;gap:1px}
.op-color strong{font-size:13px}
.op-color small{font-size:12px;font-weight:400;color:var(--op-gray)}
.op-color code{font-size:12px;color:var(--op-gray)}
.op-theme-preview{display:grid;grid-template-columns:110px 1fr;border:1px solid var(--op-line);border-radius:14px;overflow:hidden;background:var(--op-ice);font-family:var(--tp-fb,Inter),Arial,sans-serif;color:var(--op-ink);font-size:13px;position:sticky;top:12px}
.op-theme-preview .tp-side{background:linear-gradient(180deg,var(--op-ice2),var(--op-ice));border-right:1px solid var(--op-line);padding:12px 8px;display:grid;gap:4px;align-content:start}
.op-theme-preview .tp-logo{font-family:var(--tp-fh,Inter),Arial,sans-serif;font-weight:800;color:var(--op-deep);font-size:12px;margin-bottom:8px;line-height:1.2}
.op-theme-preview .tp-nav{padding:6px 8px;border-radius:8px;color:var(--op-deep);font-weight:600;font-size:12px}
.op-theme-preview .tp-nav.on{background:var(--op-blue);color:#fff}
.op-theme-preview .tp-main{padding:14px}
.op-theme-preview .tp-title{font-family:var(--tp-fh,Inter),Arial,sans-serif;font-weight:700;font-size:18px;color:var(--op-deep);margin-bottom:10px}
.op-theme-preview .tp-card{background:#fff;border:1px solid var(--op-line);border-radius:12px;padding:12px}
.op-theme-preview .tp-h{font-family:var(--tp-fh,Inter),Arial,sans-serif;font-weight:700;color:var(--op-deep);margin-bottom:4px}
.op-theme-preview p{margin:0 0 8px}
.op-theme-preview a{color:var(--op-blue);font-weight:600}
.op-theme-preview .tp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.op-theme-preview .tp-tags span{font-size:11px;font-weight:800;border-radius:6px;padding:2px 8px}
.op-theme-preview .tp-ok{background:var(--tp-ok-bg);color:var(--tp-ok)}
.op-theme-preview .tp-warn{background:var(--tp-warn-bg);color:#6b4500}
.op-theme-preview .tp-bad{background:var(--tp-bad-bg);color:var(--tp-bad)}
.op-theme-preview .tp-btn{display:inline-block;background:var(--op-blue);color:#fff;font-weight:700;border-radius:10px;padding:7px 14px}
.op-theme-preview .tp-btn2{display:inline-block;background:#fff;color:var(--op-deep);border:1px solid var(--op-line);font-weight:700;border-radius:10px;padding:6px 13px}
.op-theme-preview .tp-contrast{margin:10px 0 0;font-size:12px;font-weight:600}
.op-theme-preview .tp-contrast.ok{color:var(--tp-ok)}
.op-theme-preview .tp-contrast.bad{color:var(--tp-bad)}
.op-dev{color:var(--op-gray);opacity:.8}
@media(max-width:900px){.op-theme-wrap{grid-template-columns:1fr}.op-theme-preview{position:static}}
@media(max-width:480px){.op-theme-preview{grid-template-columns:1fr}.op-theme-preview .tp-side{display:flex;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--op-line)}}
/* v1.6 – Calendario de patentes */
.op-muni{display:grid;gap:12px}
.op-muni-head{display:flex;flex-wrap:wrap;align-items:end;gap:12px 18px}
.op-muni-head>label:first-child{flex:1 1 260px}
.op-muni-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.op-muni-rule{border:1px solid var(--op-line);border-radius:12px;padding:10px 14px 4px;margin:0;display:grid;gap:10px;background:var(--op-ice)}
.op-muni-rule legend{font-size:13px;font-weight:800;color:var(--op-deep);padding:0 6px}
.op-muni-rule p{margin:0 0 6px}
.op-muni-new{border-style:dashed}
.op-form label[hidden]{display:none!important}
