:root{
  --bg:#F2F5FA; --panel:#FFFFFF; --panel-2:#F7F9FC; --line:#E1E7F0; --line-2:#CDD6E3;
  --fg:#18233A; --muted:#5D6A80; --faint:#8A96AA;
  --brand:#1565E0; --brand-ink:#0B2A6B; --brand-soft:#E7EFFD; --on-brand:#FFFFFF;
  --note:#FFF6D6; --note-line:#EAD38A; --note-fg:#6B5300;
  --ok:#1C8A57; --ok-soft:#E3F4EB; --warn:#B86E00; --warn-soft:#FFF1DB; --bad:#C93434; --bad-soft:#FCE6E6;
  --violet:#6A4BC9; --violet-soft:#EEE9FB; --grey-soft:#EDF0F5;
  --shadow:0 1px 2px rgba(16,32,64,.06),0 4px 14px rgba(16,32,64,.06);
  --f-body:"Lato",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-brand:"Montserrat","Lato",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0E1421; --panel:#151D2C; --panel-2:#1A2335; --line:#263247; --line-2:#33415A;
  --fg:#E5EAF3; --muted:#9AA6BA; --faint:#6F7C92;
  --brand:#4B8CF7; --brand-ink:#A9C5FF; --brand-soft:#1A2B4C; --on-brand:#FFFFFF;
  --note:#33301A; --note-line:#6B5E25; --note-fg:#F1DC92;
  --ok:#4CC08A; --ok-soft:#173527; --warn:#F0A642; --warn-soft:#3A2C14; --bad:#F07272; --bad-soft:#3D1D22;
  --violet:#A993F2; --violet-soft:#2A2445; --grey-soft:#222C3E;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 4px 14px rgba(0,0,0,.25); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0E1421; --panel:#151D2C; --panel-2:#1A2335; --line:#263247; --line-2:#33415A;
  --fg:#E5EAF3; --muted:#9AA6BA; --faint:#6F7C92;
  --brand:#4B8CF7; --brand-ink:#A9C5FF; --brand-soft:#1A2B4C; --on-brand:#FFFFFF;
  --note:#33301A; --note-line:#6B5E25; --note-fg:#F1DC92;
  --ok:#4CC08A; --ok-soft:#173527; --warn:#F0A642; --warn-soft:#3A2C14; --bad:#F07272; --bad-soft:#3D1D22;
  --violet:#A993F2; --violet-soft:#2A2445; --grey-soft:#222C3E;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 4px 14px rgba(0,0,0,.25); color-scheme:dark}

*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font:14px/1.45 var(--f-body);display:flex;flex-direction:column}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}

/* Barra superior */
.top{background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 16px;min-height:56px;flex-wrap:wrap;position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--fg)}
.brand .tile{width:34px;height:34px;border-radius:8px;background:#fff;display:grid;place-items:center;border:1px solid var(--line)}
.brand .tile img{width:24px;height:auto;display:block}
.brand b{font:800 15px/1 var(--f-brand);letter-spacing:.2px}
.brand b span{color:var(--brand)}
.brand small{display:block;font-size:10.5px;letter-spacing:1.6px;color:var(--muted);text-transform:uppercase;margin-top:3px}
.modules{display:flex;gap:2px;align-self:stretch}
.modules button{background:none;border:0;padding:0 14px;color:var(--muted);font-weight:700;border-bottom:3px solid transparent;min-height:56px}
.modules button[aria-current="true"]{color:var(--brand);border-bottom-color:var(--brand)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-block:8px}
.search{position:relative}
.search input{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:7px 10px 7px 30px;width:190px;max-width:100%}
.search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--faint)}
.btn{border:1px solid var(--line-2);background:var(--panel);border-radius:6px;padding:7px 12px;font-weight:700;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.btn:hover{border-color:var(--brand);color:var(--brand)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.btn.primary:hover{filter:brightness(1.08);color:var(--on-brand)}
.btn.ghost{border-color:transparent;background:none;color:var(--muted)}
.btn.sm{padding:4px 9px;font-size:12.5px}
.av{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:900;font-size:12px;color:#fff;background:var(--brand-ink);overflow:hidden}
.av img{width:100%;height:100%;object-fit:cover}
.av.sm{width:24px;height:24px;font-size:10px}
.av.lg{width:40px;height:40px;font-size:14px}
.av.xl{width:72px;height:72px;font-size:24px}

/* Área de trabajo */
.work{flex:1;min-height:0;display:grid;grid-template-columns:232px minmax(0,1fr)}
.side{background:var(--panel);border-right:1px solid var(--line);padding:14px 10px;overflow:auto}
.side h3{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--faint);margin:14px 8px 6px}
.side h3:first-child{margin-top:2px}
.vlink{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:none;padding:7px 8px;border-radius:6px;color:var(--fg)}
.vlink:hover{background:var(--panel-2)}
.vlink[aria-current="true"]{background:var(--brand-soft);color:var(--brand);font-weight:700}
.vlink .c{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;background:var(--grey-soft);border-radius:10px;padding:0 7px;min-width:24px;text-align:center}
.vlink .c.hot{background:var(--bad-soft);color:var(--bad);font-weight:700}
.main{min-width:0;overflow:auto;padding:16px}

.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.toolbar h1{font-size:18px;margin:0 8px 0 0}
.toolbar select{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:6px 8px;max-width:100%}
.count{color:var(--muted)}

.list{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center}
.row:last-child{border-bottom:0}
.row:hover{background:var(--panel-2)}
.row .t{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .t .id{color:var(--muted);font-weight:400;margin-left:6px;font-size:12.5px}
.row .meta{color:var(--muted);font-size:12.5px;display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.row .meta .lock{color:var(--violet);font-weight:700}
.row .right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;border-radius:4px;padding:2px 8px;white-space:nowrap}
.st-Nuevo{background:var(--brand-soft);color:var(--brand)}
.st-En{background:var(--violet-soft);color:var(--violet)}
.st-Esperando{background:var(--warn-soft);color:var(--warn)}
.st-Requiere{background:var(--bad-soft);color:var(--bad)}
.st-Resuelto{background:var(--ok-soft);color:var(--ok)}
.st-Cerrado{background:var(--grey-soft);color:var(--muted)}
.pri{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.pri i{width:8px;height:8px;border-radius:2px;display:inline-block}
.p-Baja i{background:var(--faint)} .p-Media i{background:var(--brand)} .p-Alta i{background:var(--warn)} .p-Urgente i{background:var(--bad)}
.due{font-size:12px;color:var(--muted);min-width:96px;text-align:right}
.due.late{color:var(--bad);font-weight:700}
.assignee{display:flex;align-items:center;gap:6px;font-size:12.5px;min-width:122px}
.assignee .none{color:var(--faint);font-style:italic}
.empty{padding:40px 16px;text-align:center;color:var(--muted)}

/* Detalle */
.detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.dhead{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:12px}
.dhead h1{font-size:19px;margin:6px 0 4px;text-wrap:balance}
.dhead .sub{color:var(--muted);font-size:13px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.thread{display:flex;flex-direction:column;gap:10px}
.msg{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px}
.msg.agent{background:var(--panel-2)}
.msg.note{background:var(--note);border-color:var(--note-line)}
.msg .who{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.msg .who b{font-size:13.5px}
.msg .who span{color:var(--muted);font-size:12px}
.msg .tag{font-size:11px;font-weight:900;letter-spacing:.8px;text-transform:uppercase}
.msg.note .tag{color:var(--note-fg)}
.msg.agent .tag{color:var(--brand)}
.msg .body{margin-top:6px;white-space:pre-wrap;overflow-wrap:anywhere}
.msg .sig{margin-top:10px;max-width:420px;border-radius:4px;background:#fff}
.msg .att{display:inline-flex;gap:6px;align-items:center;margin-top:8px;font-size:12.5px;border:1px solid var(--line);border-radius:4px;padding:3px 8px;background:var(--panel)}
.sys{color:var(--muted);font-size:12px;text-align:center;padding:2px 0;display:flex;align-items:center;gap:10px}
.sys::before,.sys::after{content:"";flex:1;border-top:1px dashed var(--line-2)}

.composer{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-top:12px;overflow:hidden}
.ctabs{display:flex;border-bottom:1px solid var(--line);background:var(--panel-2)}
.ctabs button{border:0;background:none;padding:10px 16px;font-weight:700;color:var(--muted);border-bottom:2px solid transparent}
.ctabs button[aria-selected="true"]{color:var(--brand);border-bottom-color:var(--brand);background:var(--panel)}
.ctabs button.n[aria-selected="true"]{color:var(--note-fg);border-bottom-color:var(--note-line);background:var(--note)}
.cbody{padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.composer.isnote .cbody{background:var(--note)}
.crow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.crow select{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:5px 8px}
.composer textarea{width:100%;min-height:110px;border:1px solid var(--line);border-radius:6px;padding:10px;background:var(--panel);resize:vertical}
.warnline{font-size:12.5px;color:var(--note-fg);font-weight:700}
.cfoot{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cfoot .grow{flex:1}
.sigprev{max-width:300px;border:1px solid var(--line);border-radius:4px;background:#fff}

.props{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:12px;position:sticky;top:0}
.props h2{font-size:13px;margin:0;letter-spacing:1px;text-transform:uppercase;color:var(--faint)}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:12px;color:var(--muted);font-weight:700}
.field select,.field input{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:7px 8px;width:100%}
.field .hint{font-size:11.5px;color:var(--faint)}
.contact{display:flex;gap:10px;align-items:center}
.contact div{min-width:0}
.contact b{display:block}
.contact span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.tags{display:flex;gap:4px;flex-wrap:wrap}
.tags .chip{background:var(--grey-soft);color:var(--muted);font-weight:400}
.hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted)}
.hist li b{color:var(--fg);font-weight:700}

/* Correo */
.mailwrap{max-width:760px;margin:0 auto}
.mailtabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.mailtabs button[aria-selected="true"]{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.mailclient{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}
.mailhead{padding:14px 18px;border-bottom:1px solid var(--line);font-size:13px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px}
.mailhead dt{color:var(--muted)} .mailhead dd{margin:0;overflow-wrap:anywhere}
.mailhead .subj{grid-column:1/-1;font-size:18px;font-weight:700;margin-bottom:6px}
.mailcanvas{background:#EEF2F7;padding:22px 12px}
/* El correo usa colores fijos a propósito: así lo verá el cliente en su bandeja */
.email{max-width:600px;margin:0 auto;background:#FFFFFF;color:#1B2433;border-radius:6px;overflow:hidden;font:15px/1.55 Arial,Helvetica,sans-serif}
.email .banner{display:block;width:100%;height:auto}
.email .inner{padding:24px 26px}
.email h2{margin:0 0 12px;font-size:20px;color:#0B2A6B}
.email .ticketbox{background:#F1F5FC;border:1px solid #D6E2F6;border-radius:6px;padding:12px 14px;margin:16px 0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}
.email .ticketbox span{color:#5D6A80}
.email .ticketbox b{color:#0B2A6B}
.email .num{font-size:18px;color:#1565E0}
.email .foot{background:#0B2A6B;color:#C9D7F2;font-size:12px;padding:14px 26px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.email .foot img{height:26px;width:auto;background:#fff;border-radius:4px;padding:2px 4px}
.email .sig{max-width:100%;margin-top:14px}
.email p{margin:0 0 10px;white-space:pre-wrap}
.mailnote{font-size:12.5px;color:var(--muted);margin-top:10px}

/* Administración */
.admin{display:grid;grid-template-columns:232px minmax(0,1fr);flex:1;min-height:0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin-bottom:14px;min-width:0}
.panel h1{font-size:18px;margin:0 0 4px}
.panel h2{font-size:15px;margin:0 0 10px}
.panel .lead{color:var(--muted);margin:0 0 14px;max-width:70ch}
.tbl-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13px}
th{text-align:left;font-size:11.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--faint);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td select,td input[type=number],td input[type=text]{border:1px solid var(--line);background:var(--panel-2);border-radius:5px;padding:5px 7px}
td input[type=number]{width:70px}
.dchip{display:inline-flex;font-size:12px;background:var(--grey-soft);border-radius:4px;padding:1px 7px;margin:1px}
.agentchecks{display:flex;gap:10px;flex-wrap:wrap}
.agentchecks label{display:flex;gap:5px;align-items:center;white-space:nowrap}
.agentchecks.off{opacity:.45}
.restr{color:var(--violet);font-weight:700}
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.agcard{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:10px 12px}
.agcard small{display:block;color:var(--muted);font-size:12px}
.agcard[aria-current="true"]{border-color:var(--brand);background:var(--brand-soft)}
.agcard.add{justify-content:center;color:var(--brand);font-weight:700;border-style:dashed}
.aghead{display:flex;gap:16px;align-items:center}
.seg{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:10px}
.seg label,.empchecks label{display:flex;gap:6px;align-items:center}
.empchecks{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-bottom:10px}
.sigtxt{background:#fff;color:#1B2433;padding:8px 12px;font-size:12.5px;line-height:1.4;border-left:3px solid #1565E0}
.assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.asset{border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.asset .pv{background:repeating-conic-gradient(var(--grey-soft) 0 25%,var(--panel) 0 50%) 0 0/16px 16px;height:120px;display:grid;place-items:center;padding:10px}
.asset .pv img{max-height:100px;max-width:100%;object-fit:contain}
.asset .info{padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.asset .info b{font-size:13px}
.asset .info span{font-size:12px;color:var(--muted)}
.asset label.btn{align-self:flex-start;margin-top:4px}
.asset input[type=file]{display:none}
.colors{display:flex;gap:18px;flex-wrap:wrap}
.colors label{display:flex;gap:8px;align-items:center;font-weight:700}
.colors input[type=color]{width:44px;height:32px;border:1px solid var(--line);border-radius:6px;padding:2px;background:var(--panel)}
.form{display:grid;gap:12px;max-width:720px}
.form .field textarea{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:9px;min-height:170px;width:100%;resize:vertical}
.vars{display:flex;gap:6px;flex-wrap:wrap}
.vars code{background:var(--grey-soft);border-radius:4px;padding:1px 6px;font-size:12px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.macros{display:grid;gap:10px}
.macro{border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.macro b{display:block;margin-bottom:4px}
.macro p{margin:0 0 8px;color:var(--muted);font-size:13px;white-space:pre-wrap}
.macro .acts{display:flex;gap:6px;flex-wrap:wrap}
.macro .acts .chip{background:var(--brand-soft);color:var(--brand);font-weight:700}
.tg{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:14px;background:var(--panel-2)}
.tg .ico{width:38px;height:38px;border-radius:50%;background:#2AABEE;display:grid;place-items:center;color:#fff;flex:none}
.tg code{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:2px 6px}
.ok{color:var(--ok);font-weight:700} .pend{color:var(--warn);font-weight:700}
.switch{display:inline-flex;align-items:center;gap:6px}
.audit li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.audit{list-style:none;margin:0;padding:0}
.audit time{color:var(--muted);font-size:12px}

.scope{display:flex;background:var(--grey-soft);border-radius:7px;padding:3px;margin:0 4px 10px;gap:2px}
.scope button{flex:1;border:0;background:none;border-radius:5px;padding:6px 8px;font-weight:700;color:var(--muted);font-size:12.5px}
.scope button[aria-pressed="true"]{background:var(--panel);color:var(--brand);box-shadow:var(--shadow)}
@media (max-width:820px){.scope{margin:0;flex:none}}
.spambox{border:1px solid var(--bad);background:var(--bad-soft);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.spambox b{color:var(--bad)}
.rules{display:flex;flex-direction:column;gap:10px}
.rules label{display:flex;gap:8px;align-items:flex-start}
.rules label.inl{align-items:center;flex-wrap:wrap}
.rules input[type=number]{width:64px;border:1px solid var(--line);background:var(--panel-2);border-radius:5px;padding:4px 6px}
.txt{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:7px 9px;min-width:240px;max-width:100%}
.dchip .x{border:0;background:none;color:var(--muted);padding:0 0 0 4px;font-size:11px}
.ntgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:600px){.ntgrid{grid-template-columns:1fr}}
.modal textarea{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:9px;min-height:110px;width:100%;resize:vertical}
.modal select,.modal input[type=text],.modal input[type=email]{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:7px 8px;width:100%}
/* Ventanas */
.modal-back{position:fixed;inset:0;background:rgba(8,18,40,.45);z-index:60;display:grid;place-items:center;padding:16px}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:min(560px,100%);max-height:min(700px,calc(100vh - 32px));display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.mhead{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.mhead h2{margin:0;font-size:16px;flex:1}
.mtools{padding:12px 16px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--line)}
.mtools .search input,.modal .search input{width:100%}
.mlist{overflow:auto;flex:1;padding:6px 8px;min-height:140px}
.mitem{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:6px;width:100%;text-align:left;border:0;background:none;cursor:pointer}
.mitem:hover{background:var(--panel-2)}
.mitem.cur{background:var(--brand-soft)}
.mitem b{font-weight:700;font-size:13.5px}
.mitem small{display:block;color:var(--muted);font-size:12px}
.mitem input{flex:none}
.mbox{width:18px;flex:none;color:var(--brand);font-weight:900;text-align:center}
.mfoot{padding:12px 16px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pickfield{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--panel-2);margin-bottom:6px}
.pickbtn{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:7px 8px;width:100%;text-align:left;display:flex;justify-content:space-between;gap:8px;color:var(--fg)}
.pickbtn[aria-disabled="true"]{opacity:.7}
.selbtn{font-weight:400}
.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:10px}
.aglist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;max-height:240px;overflow:auto;margin-top:8px}
.btn[disabled]{opacity:.45;pointer-events:none}
.field input[type=radio],.field input[type=checkbox]{width:auto;flex:none}
.field .seg label,.field label.mitem{font-size:13.5px;font-weight:400;color:var(--fg)}
.modal .search input,.panel .search input{padding-left:30px}

/* Avisos */
.toasts{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;z-index:50;max-width:min(420px,calc(100vw - 32px))}
.toast{background:var(--brand-ink);color:var(--panel);border-radius:8px;padding:12px 14px;box-shadow:var(--shadow);font-size:13px;animation:in .2s ease-out}
.toast b{display:block;margin-bottom:2px}
.toast ul{margin:4px 0 0;padding-left:18px}
@keyframes in{from{transform:translateY(8px);opacity:.4}}
@media (prefers-reduced-motion:reduce){.toast{animation:none}}

/* Teléfono y tablet */
@media (max-width:1100px){.detail{grid-template-columns:minmax(0,1fr)}.props{position:static}}
@media (max-width:820px){
  .work,.admin{grid-template-columns:minmax(0,1fr)}
  .side{border-right:0;border-bottom:1px solid var(--line);display:flex;gap:6px;overflow-x:auto;padding:8px 16px}
  .side h3{display:none}
  .vlink{width:auto;white-space:nowrap;flex:none;border:1px solid var(--line)}
  .search input{width:160px}
  .row{grid-template-columns:32px minmax(0,1fr)}
  .row .right{grid-column:2;justify-content:flex-start}
  .due{text-align:left;min-width:0}.assignee{min-width:0}
  .top{gap:8px}
  .modules button{padding:0 10px;min-height:44px}
  .brand small{display:none}
}