/* Gestión Intus Kairos — sistema visual.
   Neutros fríos (zinc) + un único acento azul de marca. Separación por líneas finas y espacio, no por sombras.
   Verde, ámbar y rojo existen solo para indicar estado. */
:root{
  --ink:#0E0E11; --ink-2:#5C5C66; --line:#E7E7EB; --line-2:#D6D6DD;
  --bg:#F7F7F8; --card:#FFFFFF; --soft:#F1F1F4;
  --blue:#2346F5; --blue-ink:#FFFFFF; --blue-soft:#ECEFFE; --cyan:#7C90FF;
  --ok:#14724A; --warn:#8A5300; --bad:#B3261E;
  --okbg:#E9F4EE; --warnbg:#FBF2DF; --badbg:#FBEBE9;
  --r:10px; --r-lg:14px; --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ink:#F4F4F6; --ink-2:#A2A2AD; --line:#25252B; --line-2:#34343C;
    --bg:#09090B; --card:#111114; --soft:#1A1A1F;
    --blue:#6F88FF; --blue-ink:#07091A; --blue-soft:#1A2040; --cyan:#4C63D8;
    --ok:#5FD39C; --warn:#F0B35A; --bad:#FF8F85;
    --okbg:#0F2A1F; --warnbg:#2F2410; --badbg:#321718; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --ink:#F4F4F6; --ink-2:#A2A2AD; --line:#25252B; --line-2:#34343C;
  --bg:#09090B; --card:#111114; --soft:#1A1A1F;
  --blue:#6F88FF; --blue-ink:#07091A; --blue-soft:#1A2040; --cyan:#4C63D8;
  --ok:#5FD39C; --warn:#F0B35A; --bad:#FF8F85;
  --okbg:#0F2A1F; --warnbg:#2F2410; --badbg:#321718; color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:'Geist','Helvetica Neue',Arial,system-ui,sans-serif;font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--blue);text-underline-offset:3px}
.wrap{max-width:1440px;margin:0 auto;padding:0 24px}
::selection{background:var(--blue);color:var(--blue-ink)}

/* cabecera */
header.top{background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.bar{display:flex;align-items:center;gap:28px;min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:650;font-size:15px;letter-spacing:-.01em;white-space:nowrap}
.brand img{width:28px;height:28px;border-radius:7px}
nav{display:flex;gap:2px;flex:1;flex-wrap:wrap;align-self:stretch}
nav a{position:relative;display:flex;align-items:center;padding:0 12px;color:var(--ink-2);text-decoration:none;font-weight:500;font-size:13.5px;transition:color .15s}
nav a:hover{color:var(--ink)}
nav a[aria-current="page"]{color:var(--ink)}
nav a[aria-current="page"]::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--blue);border-radius:2px 2px 0 0}
.who{display:flex;align-items:center;gap:12px;color:var(--ink-2);font-size:13px}
main.wrap{padding-top:36px;padding-bottom:80px}

/* tipografía */
h1{font-size:26px;line-height:1.15;font-weight:650;margin:0 0 6px;letter-spacing:-.025em;text-wrap:balance}
h2{font-size:15px;font-weight:650;margin:0 0 12px;letter-spacing:-.01em}
.sub{color:var(--ink-2);margin:0 0 28px;max-width:62ch}
.muted{color:var(--ink-2);font-size:12.5px}
.neg{color:var(--bad)} .pos{color:var(--ok)}
.err{color:var(--bad);font-weight:550;margin-top:8px;font-size:13px}
.hidden{display:none!important}

/* cifras clave: una franja con divisores, no cuatro tarjetas sueltas */
.cards{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:32px}
.card{flex:1 1 0;min-width:0;padding:16px 18px 14px;border-left:1px solid var(--line)}
.card:first-child{flex:1.5 1 0}
.card:first-child{border-left:0;padding-left:0}
.card .k{color:var(--ink-2);font-size:12px;font-weight:500;letter-spacing:.01em}
.card .v{font-size:28px;line-height:1.1;font-weight:650;margin-top:8px;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.card:first-child .v{font-size:34px}
.card .n{color:var(--ink-2);font-size:12px;margin-top:6px}
.login .card{border:0;padding:0}

/* superficies */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;margin-bottom:14px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.notice{border-radius:var(--r);padding:11px 14px;margin-bottom:16px;background:var(--warnbg);color:var(--warn);font-weight:500;font-size:13.5px}
.notice.ok{background:var(--okbg);color:var(--ok)}
.notice a{color:inherit;font-weight:600}

/* tablas */
.tablebox{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
table{border-collapse:collapse;width:100%;min-width:640px}
th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);font-weight:550;white-space:nowrap;background:var(--soft)}
tbody tr{transition:background .12s}
tbody tr:hover{background:color-mix(in srgb,var(--soft) 60%,transparent)}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td[colspan].muted{padding:44px 16px;text-align:center;color:var(--ink-2)}
td.main a{color:var(--ink);text-decoration:none}
td.main a:hover{color:var(--blue)}

/* estados */
.tag{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:6px;font-size:11.5px;font-weight:550;background:var(--soft);color:var(--ink-2);white-space:nowrap}
.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.75}
.tag.ok{background:var(--okbg);color:var(--ok)} .tag.warn{background:var(--warnbg);color:var(--warn)} .tag.bad{background:var(--badbg);color:var(--bad)}

/* botones */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.toolbar .grow{flex:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:var(--r);font-weight:550;font-size:13.5px;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .12s var(--ease),filter .15s}
.btn:hover{background:var(--soft);border-color:var(--ink-2)}
.btn:active{transform:scale(.98)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--blue-ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.btn.primary:hover{background:var(--blue);filter:brightness(1.08)}
.btn.sm{min-height:30px;padding:0 11px;font-size:12.5px;border-radius:8px}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--line-2));background:transparent}
.btn.danger:hover{background:var(--badbg);border-color:var(--bad)}
.btn[disabled]{opacity:.45;cursor:default;pointer-events:none}
a.btn{color:var(--ink)} a.btn:hover{color:var(--ink)} a.btn.primary,a.btn.primary:hover{color:var(--blue-ink)}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}

/* formularios: etiqueta arriba, siempre a la izquierda */
label{display:block;font-weight:500;font-size:12.5px;color:var(--ink-2);margin-bottom:6px}
.field{margin-bottom:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
input,select,textarea{width:100%;min-height:40px;border:1px solid var(--line-2);border-radius:var(--r);padding:9px 12px;background:var(--card);transition:border-color .15s,box-shadow .15s}
textarea{line-height:1.5}
input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--ink-2) 65%,transparent)}
input:hover,select:hover,textarea:hover{border-color:var(--ink-2)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 22%,transparent)}
.btn:focus-visible,nav a:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--blue)}
.toolbar select{width:auto;min-width:170px}

/* diálogos y avisos */
dialog{border:1px solid var(--line);border-radius:18px;padding:0;background:var(--card);color:var(--ink);width:min(540px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;box-shadow:0 30px 80px -20px rgba(8,8,20,.35)}
dialog[open]{animation:dlg-in .22s var(--ease)}
dialog::backdrop{background:rgba(9,9,14,.5);backdrop-filter:blur(3px)}
.dlg-body{padding:24px}
.dlg-body h2{font-size:18px;margin-bottom:14px}
.dlg-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,8px);background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:var(--r);font-weight:500;font-size:13.5px;opacity:0;pointer-events:none;transition:opacity .2s,transform .25s var(--ease);z-index:50;max-width:calc(100vw - 28px)}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* acceso: pantalla partida, marca a la izquierda y formulario a la derecha */
.login-split{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}
.login-brand{position:relative;overflow:hidden;background:#0A0B14;color:#F4F4F6;padding:48px;display:flex;flex-direction:column;justify-content:space-between}
.login-brand::before{content:"";position:absolute;inset:auto -20% -35% auto;width:80%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(35,70,245,.55),rgba(35,70,245,0));pointer-events:none}
.login-brand .mark{display:flex;align-items:center;gap:12px;font-weight:650;font-size:16px;position:relative}
.login-brand .mark img{width:36px;height:36px;border-radius:9px}
.login-brand h2{position:relative;font-size:clamp(28px,3.4vw,40px);line-height:1.1;letter-spacing:-.03em;max-width:14ch;margin:0;color:#F4F4F6}
.login-brand p{position:relative;color:#9E9EAB;max-width:34ch;margin:14px 0 0;font-size:14px}
.login-form{display:flex;align-items:center;justify-content:center;padding:32px 24px}
.login-form form{width:100%;max-width:340px}
.login-form h1{font-size:22px;margin-bottom:6px}
.login-form .sub{margin-bottom:26px}
.login{max-width:380px;margin:12vh auto;padding:0 16px}
.login h1{display:flex;align-items:center;gap:10px;font-size:20px}
.login img{width:34px;height:34px}

.pill-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.pill{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line-2);border-radius:8px;padding:4px 6px 4px 12px;font-size:13px;text-decoration:none;color:var(--ink);background:var(--card)}
a.pill:hover{border-color:var(--blue);color:var(--blue)}
.pill button{border:0;background:transparent;cursor:pointer;color:var(--ink-2);font-size:16px;line-height:1;padding:2px 6px;border-radius:6px}
.pill button:hover{background:var(--soft);color:var(--ink)}

/* carga y entrada */
@keyframes view-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes dlg-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
#view>*{animation:view-in .32s var(--ease) both}
#view>*:nth-child(2){animation-delay:.04s}#view>*:nth-child(3){animation-delay:.08s}#view>*:nth-child(4){animation-delay:.12s}
.skel{display:grid;gap:14px}
.skel i{display:block;height:16px;border-radius:8px;background:linear-gradient(100deg,var(--soft) 30%,var(--line) 50%,var(--soft) 70%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
.skel i:nth-child(1){height:30px;width:38%}.skel i:nth-child(2){width:62%}.skel i:nth-child(3){height:120px;border-radius:14px}.skel i:nth-child(4){height:220px;border-radius:14px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

@media (max-width:900px){.login-split{grid-template-columns:1fr}.login-brand{padding:28px 24px 32px;min-height:0;gap:36px}.login-brand h2{font-size:28px}}
@media (max-width:640px){.two{grid-template-columns:1fr} .who span{display:none}}
@media print{header.top,.toolbar,.row-actions{display:none}}

/* ---------- móvil primero ---------- */
nav.tabs{display:none}
@media (max-width:700px){
  body{font-size:15px;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .wrap{padding:0 16px}
  header.top{padding-top:env(safe-area-inset-top)}
  .bar{min-height:54px;gap:10px;flex-wrap:nowrap}
  .bar nav{display:none}
  .brand{font-size:14px;flex:1;min-width:0}
  .brand img{width:26px;height:26px}
  main.wrap{padding-top:22px;padding-bottom:24px}
  h1{font-size:23px}
  .sub{margin-bottom:22px}
  /* barra inferior: el icono activo se marca con una línea de acento arriba */
  nav.tabs{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:6;background:color-mix(in srgb,var(--card) 90%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--line);padding:0 2px calc(4px + env(safe-area-inset-bottom));align-self:auto}
  nav.tabs a{position:relative;flex:1;flex-direction:column;justify-content:center;gap:3px;padding:9px 2px 6px;min-height:54px;color:var(--ink-2);font-size:10.5px;font-weight:550}
  nav.tabs a svg{width:21px;height:21px}
  nav.tabs a[aria-current="page"]{color:var(--blue)}
  nav.tabs a[aria-current="page"]::after{left:22%;right:22%;top:-1px;bottom:auto;height:2px;border-radius:0 0 3px 3px}
  .cards{display:grid;grid-template-columns:1fr 1fr;margin-bottom:26px}
  .card{padding:16px 14px 14px;border-left:0;border-top:1px solid var(--line)}
  .card .v{font-size:22px}.card:first-child .v{font-size:28px}
  .cards .card:first-child{grid-column:1/-1;padding-left:0;border-top:0}
  .cards .card:nth-child(2n+3){border-left:1px solid var(--line)}
  .cards .card:nth-child(2n+2){padding-left:0}
  .grid2{grid-template-columns:1fr}
  .panel{padding:18px 16px}
  /* tablas apiladas: cada fila es una tarjeta */
  .tablebox{border:0;background:transparent;overflow:visible}
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;min-width:0;width:100%}
  table.stack thead{display:none}
  table.stack tr{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 16px;margin-bottom:10px}
  table.stack tr:hover{background:var(--card)}
  table.stack tr.hidden{display:none!important}
  table.stack td{border:0;padding:5px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;text-align:right}
  table.stack td::before{content:attr(data-l);color:var(--ink-2);font-size:12px;font-weight:500;text-align:left;flex:0 0 auto}
  table.stack td.main{font-weight:600;font-size:16px;text-align:left;justify-content:flex-start;padding-top:2px}
  table.stack td.main::before{display:none}
  table.stack td .muted{text-align:inherit}
  table.stack td.acts{display:block;padding-top:12px;margin-top:8px;border-top:1px solid var(--line)}
  table.stack td.acts::before{display:none}
  table.stack td[colspan]{display:block;text-align:center;padding:28px 0}
  td.num,th.num{white-space:normal}
  /* controles cómodos para el pulgar */
  input,select,textarea{font-size:16px;padding:12px 14px;min-height:48px}
  .btn{min-height:46px;padding:0 18px;font-size:14.5px}
  .btn.sm{min-height:40px;padding:0 14px;font-size:13px}
  .row-actions{gap:8px}
  .row-actions .btn{flex:1 1 auto}
  .toolbar{gap:8px}
  .toolbar .grow{display:none}
  .toolbar select{flex:1 1 45%;min-width:0;width:auto}
  .toolbar .btn.primary{order:-1;flex:1 1 100%}
  .toolbar a.btn{flex:1 1 100%}
  /* formularios como hoja inferior */
  dialog{width:100vw;max-width:100vw;margin:auto 0 0 0;border-radius:20px 20px 0 0;max-height:92dvh}
  dialog[open]{animation:sheet-in .28s var(--ease)}
  dialog::backdrop{background:rgba(9,9,14,.6)}
  .dlg-body{padding:20px 16px calc(18px + env(safe-area-inset-bottom))}
  .dlg-actions{position:sticky;bottom:0;background:var(--card);padding-top:12px}
  .dlg-actions .btn{flex:1}
  #toast{bottom:calc(88px + env(safe-area-inset-bottom));text-align:center}
  .login{margin:6vh auto}
  .login-form{padding:28px 20px 40px;align-items:flex-start}
}
@keyframes sheet-in{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
@media (display-mode:standalone){ body{overscroll-behavior-y:none} }

/* ---------- facturas ---------- */
.inv-line{display:grid;grid-template-columns:1fr 70px 96px 36px;gap:6px;margin-bottom:6px}
.inv-line input{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:16px}
.inv-total{text-align:right;margin:10px 0 14px;font-size:16px}
.inv-sheet{background:#fff;color:#0B0F1A;border:1px solid var(--line);border-radius:12px;padding:20px;font-size:13px}
.inv-sheet .muted{color:#4A5368}
.inv-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.inv-head img{display:block;margin-bottom:6px}
.inv-title{text-align:right;color:#1E40FF;font-weight:700;font-size:20px;display:flex;flex-direction:column}
.inv-title b{color:#0B0F1A;font-size:13px}.inv-title span{color:#4A5368;font-weight:400;font-size:12px}
.inv-to{border-top:1px solid #D5DBEB;padding-top:12px;margin-bottom:12px}.inv-to small,.inv-note small{display:block;color:#4A5368;font-weight:700;font-size:10px;letter-spacing:.06em}
.inv-table{width:100%;border-collapse:collapse;margin-bottom:12px}
.inv-table th{background:#EAF1FF;color:#1E40FF;font-size:11px;text-align:left;padding:7px 8px}
.inv-table td{padding:8px;border-bottom:1px solid #D5DBEB;vertical-align:top}
.inv-table .num,.inv-sheet .num{text-align:right;white-space:nowrap}
.inv-sum{display:flex;justify-content:space-between;align-items:center;background:#1E40FF;color:#fff;border-radius:8px;padding:10px 14px;margin-left:auto;max-width:260px}
.inv-sum b{font-size:18px}
.inv-flag{text-align:right;font-weight:700;margin-top:8px}.inv-flag.ok{color:#0F7B4B}.inv-flag.bad{color:#B42318}
.inv-note{margin-top:12px}.inv-foot{margin-top:16px;text-align:center;color:#1E40FF;font-weight:700}
.inv-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.inv-actions .btn{flex:1 1 140px}
@media (max-width:640px){.inv-sheet{padding:14px}.inv-line{grid-template-columns:1fr 58px 84px 34px}}
.inv-table{min-width:0!important;table-layout:fixed}
.inv-table th:nth-child(2){width:15%}.inv-table th:nth-child(3),.inv-table th:nth-child(4){width:23%}
.inv-table td{overflow-wrap:anywhere}
@media (max-width:640px){.inv-table{font-size:12px}.inv-table th,.inv-table td{padding:6px 4px}}

/* ---------- clientes y proyectos ---------- */
.project{margin-bottom:16px}
.doc-row{display:flex;align-items:center;gap:8px;padding:4px 0;flex-wrap:wrap}
.doc-row .btn{margin-left:auto}
.imp-rows{margin-top:10px}
.imp-row{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;display:grid;gap:6px}
.imp-row input:not([type=checkbox]){min-width:0;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:16px}
.imp-nums{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.imp-chk{font-size:12px;color:var(--ink-2)}
@media (max-width:640px){.imp-nums{grid-template-columns:1fr 1fr}.imp-nums input:first-child{grid-column:1/3}}
.imp-row .imp-chk{display:flex;align-items:center;gap:8px}.imp-row .imp-chk input{width:20px;height:20px;padding:0}

/* ---------- propuestas ---------- */
.pp-cols{display:block;max-width:860px}
.pp-cols[data-view="form"] .pp-docwrap,.pp-cols[data-view="doc"] .pp-form{display:none}
.pp-form{border:0;padding:0;margin:0;min-width:0}
.pp-docwrap{min-width:0}
.pp-docbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;position:sticky;top:60px;background:var(--bg,#fff);padding:6px 0;z-index:2}
.pp-stepbar{display:flex;gap:6px;overflow-x:auto;margin-bottom:14px;padding-bottom:4px}
.pp-stepbar button{flex:1 0 auto;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 12px;font-size:13px;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.pp-stepbar button b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--line);font-size:11px}
.pp-stepbar button.on{border-color:var(--blue);color:var(--ink);font-weight:600}
.pp-stepbar button.on b{background:var(--blue);color:var(--blue-ink)}
.pp-steph{font-size:18px;margin:4px 0 12px}
.pp-step[hidden]{display:none}
.pp-stepnav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}
@media (max-width:640px){.pp-stepbar button span{display:none}.pp-stepbar button.on span{display:inline}.pp-stepnav{flex-wrap:wrap}.pp-stepnav .muted{order:-1;width:100%}.pp-stepnav .btn{flex:1}}
.pp-tabs{display:none}
.pp-sec{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:10px}
.pp-sec>summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:600;display:flex;justify-content:space-between}
.pp-sec>summary::-webkit-details-marker{display:none}
.pp-sec>summary::after{content:"+";color:var(--ink-2)} .pp-sec[open]>summary::after{content:"−"}
.pp-b{padding:0 14px 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.pp-fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.pp-fld.w2,.pp-hint,.pp-mod{grid-column:1/-1}
.pp-fld label{font-size:12.5px;color:var(--ink-2);font-weight:500}
.pp-fld textarea{min-height:64px;resize:vertical}
.pp-chk{flex-direction:row;align-items:center;gap:8px}
.pp-chk input{width:auto} .pp-chk label{color:var(--ink);font-size:14px}
.pp-hint{margin:0}
.pp-mod{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:6px}
.pp-mod:first-child{border-top:0;padding-top:0}
.pp-seg{display:flex;flex-wrap:wrap;gap:6px}
.pp-seg input{position:absolute;opacity:0;pointer-events:none;width:auto}
.pp-seg label{border:1.5px solid var(--line);border-radius:999px;padding:3px 11px;font-size:12.5px;cursor:pointer;background:var(--card);color:var(--ink-2)}
.pp-seg input:checked+label{background:var(--blue);border-color:var(--blue);color:#fff}
.pp-seg input:focus-visible+label{outline:3px solid var(--cyan);outline-offset:1px}
.pp-doc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:clamp(16px,3vw,32px);min-width:0}
.pp-doc h1{font-size:clamp(22px,3vw,28px);line-height:1.15;margin:4px 0 6px}
.pp-doc h2{font-size:17px;margin:28px 0 8px;padding-top:14px;border-top:1px solid var(--line)}
.pp-doc h3{font-size:12px;margin:14px 0 6px;color:var(--blue);text-transform:uppercase;letter-spacing:.06em}
.pp-doc p{margin:6px 0;max-width:68ch}
.pp-doc .kick{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--blue);font-weight:600}
.pp-doc .meta{display:flex;flex-wrap:wrap;gap:4px 20px;color:var(--ink-2);font-size:13px}
.pp-doc .quote{border-left:3px solid var(--blue);padding:2px 0 2px 12px;margin:8px 0;max-width:68ch}
.pp-doc .pend{background:var(--warnbg);color:var(--warn);border-radius:4px;padding:0 6px;font-size:12.5px;font-weight:600;white-space:nowrap}
.pp-doc .sec{color:var(--ink-2)}
.pp-doc .tw{overflow-x:auto;margin:6px 0}
.pp-t{min-width:0;font-size:13.5px}
.pp-t th,.pp-t td{padding:7px 9px}
.pp-doc td.id{font-size:12.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.pp-doc tr.tot td{font-weight:700;border-top:2px solid var(--ink);border-bottom:0}
.pp-doc .obs{list-style:none;margin:6px 0;padding:0;display:grid;gap:6px}
.pp-doc .obs li{padding:8px 11px;border-radius:8px;background:var(--soft);border-left:3px solid var(--blue)}
.pp-doc .obs li.warn{background:var(--warnbg);border-left-color:var(--warn)}
.pp-doc ol,.pp-doc ul.pl{margin:6px 0;padding-left:20px}
.pp-doc .sign{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px}
.pp-doc .sign div{border-top:1px solid var(--ink);padding-top:6px;font-size:13px;color:var(--ink-2)}
@media (max-width:900px){
  .pp-cols{grid-template-columns:minmax(0,1fr)}
  .pp-docwrap{position:static;max-height:none;overflow:visible}
  .pp-tabs{display:flex;margin-bottom:12px;border-bottom:1px solid var(--line)}
  .pp-tabs button.on{color:var(--ink);border-bottom-color:var(--blue)}
  .pp-tabs button{flex:1;border:0;background:transparent;padding:10px;font-weight:600;color:var(--ink-2);border-bottom:3px solid transparent;cursor:pointer}
  .pp-cols[data-view="form"] .pp-docwrap,.pp-cols[data-view="doc"] .pp-form{display:none}
  .pp-b{grid-template-columns:minmax(0,1fr)}
  .pp-doc .sign{grid-template-columns:1fr}
}

/* ---------- relevamiento del sitio y barra móvil ---------- */
.pp-bar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.sv-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}
.sv-card h2{margin:0 0 10px}
.sv-card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:16px}
.sv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.sv-fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.sv-fld label{font-size:12.5px;color:var(--ink-2);font-weight:500}
.sv-fld:has(textarea){grid-column:1/-1}
.sv-photos{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.sv-ph{position:relative;width:92px;height:92px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.sv-ph img{width:100%;height:100%;object-fit:cover;display:block}
.sv-x{position:absolute;top:3px;right:3px;width:28px;height:28px;min-height:0;border-radius:50%;border:0;background:rgba(11,15,26,.75);color:#fff;font-size:18px;line-height:1;cursor:pointer;padding:0}
.sv-cam{display:flex;gap:8px;flex-wrap:wrap}
.sv-presets{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 18px}
.sv-sum{background:var(--soft);border-radius:14px;padding:14px 16px;margin-bottom:16px}
.sv-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}
.sv-kpis b{display:block;font-size:20px;font-variant-numeric:tabular-nums}
.sv-kpis span{font-size:11px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}
.sv-warns{margin:10px 0 0;padding-left:18px;color:var(--warn);font-weight:500}
.sv-bar{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:700px){
  .sv-grid{grid-template-columns:minmax(0,1fr)}
  .sv-ph{width:calc((100% - 16px)/3);height:auto;aspect-ratio:1}
  .sv-cam .btn{flex:1 1 45%;text-align:center}
  .sv-cam label.btn{display:inline-flex;align-items:center;justify-content:center}
  .sv-kpis{grid-template-columns:repeat(2,1fr);row-gap:12px}
  .sv-bar,.pp-bar{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));z-index:4;background:var(--bg);padding:8px 0;margin-bottom:0;box-shadow:0 -8px 12px var(--bg)}
  .sv-bar .btn,.pp-bar .btn{flex:1 1 0;padding-left:8px;padding-right:8px}
  .pp-bar .btn.primary{flex:1.4 1 0}
}

/* ---------- refinamientos de módulos ---------- */
.pp-sec,.sv-card{border-radius:var(--r-lg)}
.pp-sec>summary{font-size:14px}
.pp-sec>summary::after{font-size:18px;font-weight:400}
.pp-seg label,.sv-presets .btn{border-radius:8px}
.pp-seg label{border:1px solid var(--line-2);padding:5px 12px;font-size:12.5px;font-weight:500;transition:background .15s,border-color .15s,color .15s,transform .12s var(--ease)}
.pp-seg label:active{transform:scale(.97)}
.pp-seg input:checked+label{background:var(--blue);border-color:var(--blue);color:var(--blue-ink)}
.pp-seg input:focus-visible+label{outline:2px solid var(--blue);outline-offset:2px}
.pp-fld label,.sv-fld label{font-size:12.5px;font-weight:500;color:var(--ink-2);margin-bottom:0}
.pp-tabs button.on{color:var(--ink);border-bottom-color:var(--blue)}
.pp-doc{border-radius:var(--r-lg);box-shadow:none}
.pp-doc .kick,.pp-doc h3{color:var(--blue)}
.pp-doc .quote{border-left-color:var(--blue)}
.pp-doc .obs li{background:var(--soft);border-left-color:var(--blue);border-radius:8px}
.pp-doc .obs li.warn{background:var(--warnbg);border-left-color:var(--warn)}
.sv-sum{background:var(--blue-soft);border-radius:var(--r-lg)}
.sv-kpis b{letter-spacing:-.02em}
.sv-ph{border-radius:10px}
.imp-row,.doc-row{border-color:var(--line)}
.imp-row{border-radius:var(--r)}
.project{border-radius:var(--r-lg)}
.inv-sheet{border-radius:var(--r)}
@media (max-width:700px){
  .sv-bar,.pp-bar{bottom:calc(60px + env(safe-area-inset-bottom));background:var(--bg);box-shadow:0 -10px 14px var(--bg)}
}

/* fechas y montos sin partir */
td:first-child{white-space:nowrap}
td.num,td.r{white-space:nowrap}

/* ---------- servicio que encaja y documentos ---------- */
.pp-fit{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;background:var(--bg)}
.pp-bar-row{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr 44px;gap:10px;align-items:center;padding:4px 0;font-size:13.5px}
.pp-meter{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.pp-meter i{display:block;height:100%;background:var(--blue);border-radius:99px;transition:width .3s var(--ease)}
.pp-rec{font-size:11px;font-weight:600;color:var(--blue);letter-spacing:.02em}
.pp-rec.alt{color:var(--ink-2)}
.att-up{display:grid;grid-template-columns:140px 1fr;gap:10px;margin-bottom:10px}
.att .doc-row a{font-weight:500;word-break:break-all}
@media (max-width:640px){.pp-bar-row{grid-template-columns:1fr 44px}.pp-bar-row .pp-meter{grid-column:1/-1;order:3}.att-up{grid-template-columns:1fr}}

/* detalles y pedidos especiales */
.pp-note{margin-top:4px}
.pp-note summary{font-size:12.5px;color:var(--blue);cursor:pointer;list-style:none;width:max-content}
.pp-note summary::-webkit-details-marker{display:none}
.pp-note textarea{margin-top:6px;width:100%;min-height:52px;resize:vertical}
.pp-cust{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;border:1px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:10px;background:var(--bg)}
.pp-cust-list{grid-column:1/-1}
@media (max-width:640px){.pp-cust{grid-template-columns:1fr}}

/* ---------- calculadora de precios ---------- */
.pr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.pr-kpis{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:8px 0 12px}
.pr-kpis div{padding:12px 12px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.pr-kpis div:first-child{border-left:0;padding-left:0}
.pr-kpis span{font-size:12px;color:var(--ink-2)}
.pr-kpis b{font-size:24px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pr-kpis div:nth-child(2) b{color:var(--blue)}
.pr-kpis i{font-style:normal;font-size:12px;color:var(--ink-2)}
.pr-tips{margin:0;padding-left:18px;display:grid;gap:8px;font-size:14px}
.pr-sim{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);font-size:14px}
@media (max-width:820px){.pr-grid{grid-template-columns:1fr}}

/* confirmaciones propias */
dialog.cfm{width:min(420px,calc(100vw - 24px));z-index:60}
dialog.cfm h2{font-size:17px;line-height:1.4;margin:0 0 4px}
dialog.cfm .btn.danger{background:var(--bad);color:var(--card);border-color:var(--bad)}
dialog.cfm .btn.danger:hover{filter:brightness(.92);background:var(--bad)}
@media (max-width:720px){dialog.cfm{margin:auto 12px;width:calc(100vw - 24px);max-width:none;border-radius:18px}}

/* selección múltiple de quién visita */
.sv-who{display:flex;flex-wrap:wrap;gap:8px}
.sv-chk{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line-2);border-radius:999px;background:var(--card);cursor:pointer;font-size:14px;min-height:44px}
.sv-chk input{width:18px;height:18px;margin:0;accent-color:var(--blue)}
.sv-chk:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}

/* guía del proceso */
.gd{border:1px solid var(--line,#2a2f3a);border-left:3px solid var(--accent,#1E40FF);border-radius:10px;padding:14px 16px;margin:0 0 18px;background:var(--card,rgba(255,255,255,.03))}
.gd-ok{border-left-color:#2fa36b}
.gd-k{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent,#6b8cff);margin-bottom:6px}
.gd-main{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.gd-main>div{flex:1;min-width:220px}
.gd-more{margin-top:10px}.gd-more summary{cursor:pointer;color:var(--muted,#9aa3b2);font-size:14px}
.gd-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line,#2a2f3a)}
.gd-flow{font-size:12px;margin-top:10px}

/* ---------- editor de propuestas por pasos (v23) ---------- */
.pp-cols{max-width:900px}
.pp-stepbar{gap:4px;padding:4px;background:var(--soft);border-radius:999px;border:1px solid var(--line);scrollbar-width:none}
.pp-stepbar::-webkit-scrollbar{display:none}
.pp-stepbar button{border:0;background:transparent;padding:7px 14px;transition:background .15s,color .15s}
.pp-stepbar button:hover{color:var(--ink)}
.pp-stepbar button.on{background:var(--card);box-shadow:0 0 0 1px var(--line-2,var(--line))}
.pp-steph{font-size:22px;letter-spacing:-.01em;margin:22px 0 4px}
.pp-sec{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;margin:0;padding:20px 0 6px}
.pp-sech{margin:0 0 14px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);font-weight:600}
.pp-sec .pp-b{padding:0 0 14px;gap:14px 16px}
.pp-fld input,.pp-fld select,.pp-fld textarea{width:100%}
.pp-stepnav{position:sticky;bottom:0;background:var(--bg,var(--card));padding:12px 0;border-top:1px solid var(--line);margin-top:20px;z-index:3}
.pp-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;opacity:0!important;visibility:hidden;pointer-events:none;transition:opacity .18s;animation:none!important}
.pp-modal.on{opacity:1!important;visibility:visible;pointer-events:auto}
.pp-mback{position:absolute;inset:0;background:rgba(5,8,15,.6);backdrop-filter:blur(3px)}
.pp-mbox{position:relative;width:min(900px,calc(100vw - 24px));height:min(92vh,100%);background:var(--bg,var(--card));border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;transform:translateY(10px) scale(.985);transition:transform .2s}
.pp-modal.on .pp-mbox{transform:none}
.pp-mhead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.pp-mact{display:flex;gap:8px}
.pp-mbody{overflow:auto;padding:16px;flex:1}
.pp-mbody .pp-doc{border:0;padding:0}
@media (max-width:640px){.pp-mbox{width:100vw;height:100dvh;border-radius:0}.pp-sec .pp-b{grid-template-columns:minmax(0,1fr)}}

/* ---------- estándar de controles (v25): mismos tamaños en toda la app ---------- */
:root{--ctl-h:36px;--ctl-fs:14px}
@media (min-width:701px){
  input:not([type=checkbox]):not([type=radio]),select{min-height:var(--ctl-h);padding:6px 10px;font-size:var(--ctl-fs);border-radius:8px}
  textarea{min-height:60px;padding:7px 10px;font-size:var(--ctl-fs);border-radius:8px}
  .btn{min-height:var(--ctl-h);padding:0 14px;font-size:var(--ctl-fs);border-radius:8px}
  .btn.sm{min-height:30px;padding:0 11px;font-size:12.5px}
}
@media (max-width:700px){input,select{min-height:44px;padding:9px 12px}textarea{min-height:64px;padding:9px 12px}.btn{min-height:42px;padding:0 14px}.btn.sm{min-height:36px;padding:0 12px}}

/* ---------- editor de propuestas ancho y compacto ---------- */
.pp-cols{max-width:none}
.pp-sec .pp-b{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 14px}
.pp-fld.w2{grid-column:span 2}
.pp-hint,.pp-cust-list,#pp-custom,.pp-att{grid-column:1/-1}
.pp-mod{grid-column:span 2;border-top:0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;align-content:start}
.pp-mod:first-child{border-top:1px solid var(--line);padding-top:8px}
.pp-fld textarea{min-height:56px}
.pp-fld .btn{align-self:flex-start}
.pp-sec{padding-top:14px}
.pp-sech{margin-bottom:10px}
.pp-steph{margin:14px 0 2px;font-size:20px}
.pp-stepnav{margin-top:12px;padding:10px 0}
.pp-stepnav .btn{min-width:150px}
@media (max-width:900px){.pp-fld.w2,.pp-mod{grid-column:1/-1}.pp-sec .pp-b{grid-template-columns:minmax(0,1fr)}}
@media (min-width:901px) and (max-width:1200px){.pp-sec .pp-b{grid-template-columns:repeat(2,minmax(0,1fr))}.pp-fld.w2,.pp-mod{grid-column:1/-1}}
@media (min-width:1201px){.pp-sec .pp-b{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pp-fld:has(>button.btn){grid-column:1/-1}
.pp-stepbar{width:max-content;max-width:100%}
.pp-stepbar button{flex:0 0 auto}

/* ---------- red de seguridad: nada se sale del margen (v26) ---------- */
html,body{max-width:100%;overflow-x:hidden}
main,.panel,.card,.tablebox,dialog,form,fieldset,.toolbar>*,.row-actions>*{min-width:0}
h1,h2,h3,p,td,th,label,summary,.muted,.tag,.btn,a{overflow-wrap:anywhere}
.btn,.tag{overflow-wrap:normal}
img,svg,video,canvas{max-width:100%}
.tablebox{overflow-x:auto}
@media (max-width:700px){
  .wrap{padding:0 14px}
  .panel{padding:14px 12px}
  .toolbar{flex-wrap:wrap}
  .pp-stepbar{width:auto}
  .pp-stepnav .btn{min-width:0}
  .pp-mhead{flex-wrap:wrap}
  .pp-mact{width:100%}.pp-mact .btn{flex:1}
  dialog form,dialog .panel{max-width:100%}
  input,select,textarea{max-width:100%}
  .two,.imp-nums{grid-template-columns:minmax(0,1fr)}
}
.pp-stepbar{flex-wrap:nowrap}
@media (max-width:700px){table.stack td,table.stack td *{white-space:normal}.pp-stepbar{width:100%}}
@media (max-width:700px){table.stack td.main{display:block;text-align:left}table.stack td.main>*{display:block}table.stack td.main b{display:inline}}
@media (max-width:700px){.toolbar select{font-size:14.5px;padding:9px 26px 9px 10px;text-overflow:ellipsis}}
.pp-out{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:8px 0}
.pp-doc .pp-out h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--blue)}
.pp-doc .pp-out ul{margin:0;padding-left:16px;font-size:13.5px;color:var(--ink-2)}

/* ---------- tareas (v28) ---------- */
.tk-quick{display:flex;gap:10px;margin:0 0 12px}
.tk-quick input{flex:1}
.tk-bar{gap:8px;flex-wrap:wrap;align-items:center}
.tk-bar input[type=search]{min-width:150px;flex:1;max-width:260px}
.tk-seg{display:inline-flex;background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:3px}
.tk-seg button{border:0;background:transparent;color:var(--ink-2);padding:5px 14px;border-radius:999px;font:inherit;font-size:13.5px;cursor:pointer}
.tk-seg button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--line-2)}
.tk-live{color:var(--ok);font-size:12.5px;white-space:nowrap}
.tk-late{color:var(--bad)}
.tk-group{margin:18px 0 6px}
.tk-group h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2)}
.tk-group h3.bad{color:var(--bad)} .tk-group h3.warn{color:var(--warn)}
.tk-group small,.tk-col h3 small{font-weight:500;opacity:.7;margin-left:4px}
.tk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.tk-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;cursor:pointer;min-width:0;transition:border-color .15s,transform .15s}
.tk-card:hover,.tk-card:focus-visible{border-color:var(--blue);outline:none}
.tk-card:active{transform:scale(.99)}
.tk-card.is-done{opacity:.6}
.tk-card.drag{opacity:.4}
.tk-card h4{margin:6px 0 4px;font-size:14.5px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.tk-top{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-2)}
.tk-code{font-variant-numeric:tabular-nums;font-weight:600}
.tk-sub{opacity:.8}
.tk-pri{margin-left:auto;text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:600}
.tk-pri.p-alta{color:var(--bad)} .tk-pri.p-baja{opacity:.65}
.tk-link{font-size:12px;color:var(--ink-2);overflow-wrap:anywhere}
.tk-wait{margin-top:5px;font-size:12px;color:var(--warn);background:var(--warnbg);border-radius:6px;padding:3px 7px;overflow-wrap:anywhere}
.tk-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.tk-chip{font-size:11.5px;color:var(--ink-2);background:var(--soft);border-radius:999px;padding:2px 8px}
.tk-chip.bad{background:var(--badbg);color:var(--bad)} .tk-chip.warn{background:var(--warnbg);color:var(--warn)}
.tk-who{margin-left:auto;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-size:10.5px;font-weight:700}
.tk-board{display:grid;grid-template-columns:repeat(6,minmax(210px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px;margin-top:14px}
.tk-col{background:var(--soft);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px;min-width:0;display:flex;flex-direction:column;gap:8px;align-content:start;min-height:160px}
.tk-col.over{border-color:var(--blue);background:var(--blue-soft)}
.tk-col h3{margin:0 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2)}
.tk-none{margin:2px 0;font-size:12.5px}
.tk-empty{padding:24px 0}
.tk-st{min-width:150px}
.tk-sec{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.tk-sec h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2)}
.tk-sec summary{cursor:pointer;font-size:13px;color:var(--ink-2)}
.tk-chk{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px}
.tk-chk li{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tk-chk label{display:flex;align-items:center;gap:8px;flex:1;min-width:0;font-size:14px}
.tk-chk .is-done{text-decoration:line-through;opacity:.6}
.tk-add{display:flex;gap:8px;align-items:flex-start}
.tk-add input,.tk-add textarea{flex:1;min-width:0}
.tk-cmt{padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.tk-cmt p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.tk-hist{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:4px;font-size:12.5px}
.tk-del{margin-top:14px}
dialog .tk-cmts{max-height:200px;overflow:auto;margin-bottom:8px}
@media (max-width:700px){
  .tk-quick{flex-direction:column}
  .tk-bar select,.tk-bar input[type=search]{flex:1 1 140px;max-width:none}
  .tk-board{grid-template-columns:repeat(6,78vw);scroll-snap-type:x mandatory}
  .tk-col{scroll-snap-align:start}
  .tk-st{min-width:0;width:100%}
}
