/* ── LR ToolKit Frontend v4.1.0 ──────────────────────────────────────────
   2-column job card layout matching uploaded design reference.
   Responsive: 2-col desktop / 1-col mobile (<768px)
*/

/* ── Reset & Base ────────────────────────────────────────────────────── */
.lrtk-portal *, .lrtk-portal *::before, .lrtk-portal *::after { box-sizing:border-box; margin:0; padding:0; }
.lrtk-portal { font-family:'Inter',system-ui,sans-serif; font-size:14px; color:#0f172a; background:#f1f5f9; min-height:100vh; padding:0 0 4rem; }

/* ── Preloader ───────────────────────────────────────────────────────── */
.lrtk-preloader { position:fixed;inset:0;background:#1e293b;display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .4s; }
.lrtk-preloader.hidden { opacity:0;pointer-events:none; }
.lrtk-preloader-inner { text-align:center; }
.lrtk-preloader-logo { width:64px;height:64px;background:#0ea5e9;color:#fff;font-size:22px;font-weight:800;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;letter-spacing:1px; }
.lrtk-preloader-label { color:#94a3b8;font-size:13px;margin-bottom:1rem; }
.lrtk-preloader-bar { width:200px;height:3px;background:#334155;border-radius:2px;overflow:hidden; }
.lrtk-preloader-fill { height:100%;background:#0ea5e9;animation:lrtk-load 1.2s ease-in-out infinite; }
@keyframes lrtk-load { 0%{width:0} 50%{width:70%} 100%{width:100%} }

/* ── Portal Header ───────────────────────────────────────────────────── */
.lrtk-portal-header { background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);padding:1.5rem 1.5rem 1.25rem;display:flex;align-items:center;gap:1rem; }
.lrtk-portal-logo { width:44px;height:44px;background:#0ea5e9;color:#fff;font-size:14px;font-weight:800;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:1px; }
.lrtk-portal-header h1 { color:#f8fafc;font-size:18px;font-weight:700;line-height:1.2; }
.lrtk-portal-header p { color:#94a3b8;font-size:12px;margin-top:2px; }

/* ── KPI Strip ───────────────────────────────────────────────────────── */
.lrtk-portal-kpis { display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#fff;border-bottom:1px solid #e2e8f0; }
.lrtk-kpi { padding:1rem;text-align:center;border-right:1px solid #e2e8f0; }
.lrtk-kpi:last-child { border-right:none; }
.lrtk-kpi-num { font-size:22px;font-weight:800;line-height:1; }
.lrtk-kpi-lbl { font-size:11px;color:#64748b;margin-top:4px;text-transform:uppercase;letter-spacing:.5px; }

/* ── Date Nav Bar ────────────────────────────────────────────────────── */
.lrtk-portal-date-bar { background:#fff;padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem;border-bottom:1px solid #e2e8f0;flex-wrap:wrap; }
.lrtk-portal-date-bar .lrtk-input[type=date] { flex:0 0 auto;font-size:14px; }
.lrtk-date-label { font-weight:600;font-size:14px;color:#1e293b;flex:1; }

/* ── Filter Bar ──────────────────────────────────────────────────────── */
.lrtk-filter-bar { background:#fff;padding:.6rem 1rem;display:flex;align-items:center;gap:.5rem;border-bottom:1px solid #e2e8f0;flex-wrap:wrap; }
.lrtk-filter-bar select,.lrtk-filter-bar input { height:32px;font-size:13px; }

/* ── Section Label ───────────────────────────────────────────────────── */
.lrtk-section-label { padding:.75rem 1rem .25rem;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#64748b;font-weight:600; }

/* ── Job Cards Grid — 2-column ───────────────────────────────────────── */
.lrtk-jobs-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:1rem; }
@media(max-width:767px) { .lrtk-jobs-grid { grid-template-columns:1fr; } }
@media(min-width:1280px){ .lrtk-jobs-grid { grid-template-columns:repeat(3,1fr); } }

.lrtk-job-card { background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);overflow:hidden;border:1px solid #e2e8f0;transition:box-shadow .2s,transform .15s;cursor:pointer;position:relative; }
.lrtk-job-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.12);transform:translateY(-1px); }
.lrtk-card-inner { position:relative;overflow:hidden; }

/* ── Job Type Ribbon (top-right diagonal corner) ────────────────────── */
.lrtk-type-ribbon {
    position: absolute;
    top: 12px;
    right: -28px;
    width: 110px;
    background: var(--ribbon-color, #0ea5e9);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .6px;
    padding: 4px 0;
    transform: rotate(45deg);
    transform-origin: center;
    box-shadow: 0 2px 6px rgba(0,0,0,.18);
    pointer-events: none;
    z-index: 2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Order Pill (First / Second / PRIMERO etc.) ──────────────────────── */
.lrtk-order-pill {
    display: inline-flex;
    align-items: center;
    padding: 2px 9px;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    flex-shrink: 0;
    margin-bottom: 4px;
    border: 1.5px solid currentColor;
}
/* English: First / Second / Third — blue-slate palette */
.lrtk-order-en[data-order="0"] { color:#0284c7; background:#e0f2fe; }
.lrtk-order-en[data-order="1"] { color:#0369a1; background:#bae6fd; }
.lrtk-order-en[data-order="2"] { color:#075985; background:#7dd3fc; }
/* Spanish: PRIMERO / SEGUNDO — amber/warm palette */
.lrtk-order-es[data-order="3"] { color:#b45309; background:#fef3c7; }
.lrtk-order-es[data-order="4"] { color:#92400e; background:#fde68a; }

/* ── Card Header ─────────────────────────────────────────────────────── */
.lrtk-card-top { padding:.875rem 1rem .625rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem; }
.lrtk-card-title-wrap { display:flex;flex-direction:column;flex:1;gap:0;min-width:0; }
.lrtk-card-title { font-size:13px;font-weight:700;color:#0f172a;line-height:1.3; }
.lrtk-card-address { font-size:11px;color:#64748b;margin-top:2px;display:flex;align-items:center;gap:3px; }
.lrtk-card-address svg { flex-shrink:0; }
.lrtk-card-badge { display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;font-size:10px;font-weight:600;white-space:nowrap;text-transform:uppercase;letter-spacing:.4px; }

/* Status badge colors */
.lrtk-status-scheduled  { background:#fef3c7;color:#92400e; }
.lrtk-status-in-progress{ background:#ede9fe;color:#5b21b6; }
.lrtk-status-completed  { background:#d1fae5;color:#065f46; }
.lrtk-status-cancelled  { background:#fee2e2;color:#991b1b; }
.lrtk-status-on-hold    { background:#f1f5f9;color:#475569; }

/* ── Card Body ───────────────────────────────────────────────────────── */
.lrtk-card-body { padding:.5rem 1rem .75rem;border-top:1px solid #f1f5f9; }
.lrtk-card-row { display:flex;align-items:center;gap:.5rem;padding:3px 0;font-size:12px;color:#475569; }
.lrtk-card-row-icon { width:14px;height:14px;opacity:.6;flex-shrink:0; }
.lrtk-card-row strong { color:#1e293b;font-weight:600; }

/* ── Card Actions ────────────────────────────────────────────────────── */
.lrtk-card-actions { padding:.5rem 1rem .875rem;display:flex;flex-wrap:wrap;gap:.4rem; }
.lrtk-card-actions .lrtk-btn { font-size:11px;padding:4px 10px;height:28px; }

/* ── Card Expand / Media ─────────────────────────────────────────────── */
.lrtk-card-expand { display:none;padding:.75rem 1rem;border-top:1px solid #f1f5f9; }
.lrtk-card-expand.open { display:block; }
.lrtk-media-row { display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem; }
.lrtk-media-thumb { width:56px;height:56px;object-fit:cover;border-radius:6px;border:1px solid #e2e8f0; }
.lrtk-media-upload { position:relative; }
.lrtk-media-upload input { position:absolute;inset:0;opacity:0;cursor:pointer; }

/* ── Map Container ───────────────────────────────────────────────────── */
.lrtk-map-container { display:none;height:420px;background:#e2e8f0;position:relative; }
.lrtk-map-container.open { display:block; }
#lrtk-day-map { width:100%;height:100%; }

/* ── Shared UI ───────────────────────────────────────────────────────── */
.lrtk-input { height:36px;padding:0 .75rem;border:1px solid #cbd5e1;border-radius:8px;font-family:inherit;font-size:13px;color:#1e293b;background:#fff;outline:none;transition:border-color .15s; }
.lrtk-input:focus { border-color:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,.12); }
select.lrtk-input { padding-right:2rem; }
.lrtk-btn { display:inline-flex;align-items:center;justify-content:center;gap:.3rem;height:36px;padding:0 .875rem;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:background .15s,box-shadow .15s,transform .1s;text-decoration:none; }
.lrtk-btn:active { transform:scale(.97); }
.lrtk-btn-primary { background:#0ea5e9;color:#fff; } .lrtk-btn-primary:hover { background:#0284c7; }
.lrtk-btn-success { background:#10b981;color:#fff; } .lrtk-btn-success:hover { background:#059669; }
.lrtk-btn-warning { background:#f59e0b;color:#fff; } .lrtk-btn-warning:hover { background:#d97706; }
.lrtk-btn-danger  { background:#ef4444;color:#fff; } .lrtk-btn-danger:hover  { background:#dc2626; }
.lrtk-btn-ghost   { background:#f1f5f9;color:#475569;border:1px solid #e2e8f0; } .lrtk-btn-ghost:hover { background:#e2e8f0; }
.lrtk-btn-sm { height:28px;padding:0 .6rem;font-size:11px; }

/* ── Login Wall ──────────────────────────────────────────────────────── */
.lrtk-login-wall { display:flex;align-items:center;justify-content:center;min-height:60vh; }
.lrtk-login-box  { background:#fff;border-radius:16px;padding:2.5rem;text-align:center;box-shadow:0 4px 24px rgba(0,0,0,.1);max-width:340px;width:100%; }
.lrtk-login-logo { width:56px;height:56px;background:#0ea5e9;color:#fff;font-size:18px;font-weight:800;border-radius:14px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center; }
.lrtk-login-box h2 { font-size:18px;font-weight:700;margin-bottom:.5rem; }
.lrtk-login-box p  { color:#64748b;font-size:13px;margin-bottom:1.5rem; }

/* ── Modals ──────────────────────────────────────────────────────────── */
.lrtk-modal-overlay { position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s; }
.lrtk-modal-overlay.open { opacity:1;pointer-events:all; }
.lrtk-modal { background:#fff;border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.2);width:94%;max-width:540px;max-height:90vh;overflow-y:auto; }
.lrtk-modal-header { padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between; }
.lrtk-modal-header h3 { font-size:16px;font-weight:700; }
.lrtk-modal-close { background:none;border:none;cursor:pointer;font-size:18px;color:#94a3b8;padding:.25rem; }
.lrtk-modal-body { padding:1.25rem 1.5rem; }
.lrtk-modal-footer { padding:1rem 1.5rem;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:.5rem; }
.lrtk-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:.875rem; }
.lrtk-form-group { display:flex;flex-direction:column;gap:.35rem; }
.lrtk-form-group.full { grid-column:1/-1; }
.lrtk-form-group label { font-size:12px;font-weight:600;color:#374151; }
.lrtk-form-group .lrtk-input { width:100%; }
textarea.lrtk-input { height:auto;padding:.5rem .75rem;resize:vertical;min-height:72px; }

/* ── Day Map specific ────────────────────────────────────────────────── */
.lrtk-portal-dm { display:flex;flex-direction:column;height:100vh; }
.lrtk-dm-map    { flex:1; }
.lrtk-dm-sidebar{ width:300px;background:#fff;overflow-y:auto;border-right:1px solid #e2e8f0; }
@media(min-width:768px){ .lrtk-portal-dm .lrtk-dm-body { display:flex;flex:1;overflow:hidden; } }

/* ── Empty State ─────────────────────────────────────────────────────── */
.lrtk-empty { grid-column:1/-1;text-align:center;padding:3rem 1rem;color:#94a3b8; }
.lrtk-empty-icon { font-size:2.5rem;margin-bottom:.75rem; }
.lrtk-empty h3 { font-size:15px;font-weight:600;color:#475569;margin-bottom:.35rem; }
.lrtk-empty p  { font-size:13px; }

/* ── Toast notifications ─────────────────────────────────────────────── */
.lrtk-toast-wrap { position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem; }
.lrtk-toast { background:#1e293b;color:#f8fafc;padding:.75rem 1.25rem;border-radius:10px;font-size:13px;font-weight:500;box-shadow:0 4px 16px rgba(0,0,0,.2);animation:lrtk-slide-in .2s ease; }
.lrtk-toast.success { border-left:3px solid #10b981; }
.lrtk-toast.error   { border-left:3px solid #ef4444; }
@keyframes lrtk-slide-in { from{transform:translateY(12px);opacity:0} to{transform:none;opacity:1} }


/* ── Toolkit Dashboard ─────────────────────────────────────────────── */
.lrtk-db-shell{display:flex;min-height:calc(100vh - 40px);background:#f1f5f9;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px rgba(2,6,23,.10);}
.lrtk-db-nav{width:260px;background:#0f172a;color:#e2e8f0;padding:18px 14px;display:flex;flex-direction:column;gap:16px;}
.lrtk-db-brand{display:flex;gap:10px;align-items:center;padding:6px 8px;}
.lrtk-db-logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#4facfe,#00f2fe);display:flex;align-items:center;justify-content:center;font-weight:800;color:#0b1220;}
.lrtk-db-name{font-weight:800;font-size:16px;color:#f8fafc;line-height:1;}
.lrtk-db-sub{font-size:12px;color:#94a3b8;margin-top:2px;}
.lrtk-db-tabs{display:flex;flex-direction:column;gap:8px;}
.lrtk-db-tab{display:flex;align-items:center;gap:10px;padding:10px 10px;border-radius:12px;background:transparent;border:1px solid rgba(148,163,184,.15);color:#e2e8f0;font-weight:700;text-align:left;cursor:pointer;}
.lrtk-db-tab i{width:18px;opacity:.9}
.lrtk-db-tab:hover{background:rgba(148,163,184,.10);}
.lrtk-db-tab.is-active{background:rgba(56,189,248,.18);border-color:rgba(56,189,248,.35);}
.lrtk-db-foot{margin-top:auto;padding:10px 10px;border-top:1px solid rgba(148,163,184,.15);font-size:12px;color:#cbd5e1;}
.lrtk-db-footval code{font-size:11px;color:#e2e8f0;word-break:break-all;}

.lrtk-db-main{flex:1;display:flex;flex-direction:column;padding:18px;gap:14px;}
.lrtk-db-header{background:#fff;border-radius:16px;padding:14px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid #e2e8f0;}
.lrtk-db-h1{font-size:18px;font-weight:800;color:#0f172a;margin:0;}
.lrtk-db-meta{font-size:12px;color:#64748b;margin-top:4px;}
.lrtk-db-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;}
.lrtk-db-controls .lrtk-input{height:36px;}
.lrtk-db-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
@media(max-width:900px){.lrtk-db-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}.lrtk-db-nav{display:none;}.lrtk-db-shell{border-radius:0;min-height:100vh;}}
.lrtk-db-panel{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;}
.lrtk-db-panel-head{padding:12px 14px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.lrtk-db-h2{font-size:15px;font-weight:800;color:#0f172a;margin:0;}
.lrtk-db-panel-body{padding:14px;}
.lrtk-db-tabpanel{display:none;}
.lrtk-db-tabpanel.is-active{display:block;}
.lrtk-db-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px;}
.lrtk-db-simple-table{padding:10px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;color:#475569;}
.lrtk-db-map-card{padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;}
