/* ==============================================================
   PARTES Y ALBARANES · Estilos compartidos
   Todas las páginas deben cargar este archivo.
   ============================================================== */

   :root {
    --navy: #10263d;
    --navy-light: #173c5c;
    --amber: #f5a524;
    --ink: #162536;
    --muted: #687789;
    --line: #dfe7ed;
    --canvas: #f5f7f9;
    --focus: rgba(65, 119, 159, .13);
  }
  
  * { box-sizing: border-box; }
  
  body {
    min-height: 100vh;
    margin: 0;
    color: var(--ink);
    background:
      radial-gradient(circle at 10% 10%, rgba(245, 165, 36, .13), transparent 28rem),
      radial-gradient(circle at 90% 90%, rgba(38, 114, 172, .10), transparent 30rem),
      var(--canvas);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }
  
  button,
  input { font: inherit; }
  
  /* Marca y pie compartidos */
  .app-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--navy);
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.6px;
  }
  
  .app-mark {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    position: relative;
    color: #fff;
    background: var(--navy);
    border-radius: 10px;
    font-size: 20px;
  }
  
  .app-mark::after {
    content: "•";
    position: absolute;
    right: 6px;
    bottom: 0;
    color: #78c8eb;
    font-size: 22px;
    line-height: 1;
  }
  
  .app-brand .ampersand { color: var(--amber); }
  
  .app-footer {
    margin: 27px 0 0;
    padding-top: 21px;
    color: #909ca6;
    border-top: 1px solid var(--line);
    text-align: center;
    font-size: 11px;
    line-height: 1.5;
  }
  
  /* ==============================================================
     PORTADA · index.php
     ============================================================== */
  
  .page-selector {
    display: grid;
    place-items: center;
    padding: 22px;
  }
  
  .selector-card {
    width: min(100%, 780px);
    padding: 42px 34px 34px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: 0 18px 50px rgba(16, 38, 61, .10);
  }
  
  .selector-header { text-align: center; }
  
  .selector-header h1 {
    margin: 34px 0 8px;
    color: var(--navy);
    font-size: clamp(26px, 4vw, 32px);
    letter-spacing: -.9px;
  }
  
  .selector-header p {
    margin: 0;
    color: var(--muted);
    font-size: 15px;
  }
  
  .role-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 34px;
  }
  
  .role-card {
    min-height: 244px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
  }
  
  .role-card:hover,
  .role-card:focus-visible {
    transform: translateY(-4px);
    border-color: #b8c8d5;
    box-shadow: 0 12px 24px rgba(16, 38, 61, .10);
    outline: none;
  }
  
  .role-icon {
    width: 55px;
    height: 55px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    font-size: 28px;
  }
  
  .role-card--operario .role-icon { background: #fff2dc; }
  .role-card--administracion .role-icon { background: #eaf2fb; }
  
  .role-card h2 {
    margin: 20px 0 8px;
    color: var(--navy);
    font-size: 19px;
  }
  
  .role-card p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
  }
  
  .role-enter {
    margin-top: auto;
    padding-top: 22px;
    color: var(--navy);
    font-size: 13px;
    font-weight: 750;
  }
  
  .role-card--operario .role-enter { color: #a4640b; }
  .role-enter::after { content: "  →"; font-size: 17px; }
  
  /* ==============================================================
     ACCESO OPERARIO · operario/index.php
     ============================================================== */
  
  .page-login {
    display: grid;
    place-items: center;
    padding: 22px;
  }
  
  .login-card {
    width: min(100%, 430px);
    padding: 34px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 19px;
    box-shadow: 0 20px 50px rgba(16, 38, 61, .11);
  }
  
  .back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 27px;
    color: #687888;
    text-decoration: none;
    font-size: 13px;
    font-weight: 650;
  }
  
  .back-link:hover { color: var(--navy); }
  
  .login-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 21px;
    background: #fff2dc;
    border-radius: 16px;
    font-size: 30px;
  }
  
  .login-card h1 {
    margin: 0 0 8px;
    color: var(--navy);
    font-size: 27px;
    letter-spacing: -.7px;
  }
  
  .login-intro {
    margin: 0 0 27px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.5;
  }
  
  .login-error {
    margin: -7px 0 19px;
    padding: 10px 12px;
    color: #a13e32;
    background: #fff0ed;
    border: 1px solid #f5d0c9;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.4;
  }
  
  .form-label {
    display: block;
    margin: 18px 0 7px;
    color: #435565;
    font-size: 12px;
    font-weight: 750;
  }
  
  .input-field {
    width: 100%;
    height: 48px;
    padding: 0 13px;
    color: var(--ink);
    background: #fff;
    border: 1px solid #ccd8e1;
    border-radius: 9px;
    outline: none;
    font-size: 15px;
    transition: border-color .16s ease, box-shadow .16s ease;
  }
  
  .input-field:focus {
    border-color: #6c91ae;
    box-shadow: 0 0 0 3px var(--focus);
  }
  
  .password-field { position: relative; }
  .password-field .input-field { padding-right: 58px; }
  
  .password-toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    padding: 8px;
    color: #647789;
    border: 0;
    background: transparent;
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
  }
  
  .login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 17px 0 24px;
    color: var(--muted);
    font-size: 12px;
  }
  
  .remember-access {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
  }
  
  .remember-access input { accent-color: var(--navy); }
  
  .help-link {
    color: #5c7388;
    text-decoration: none;
    font-weight: 700;
  }
  
  .button-primary {
    width: 100%;
    min-height: 49px;
    color: #14293e;
    background: var(--amber);
    border: 0;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: transform .16s ease, background .16s ease;
  }
  
  .button-primary:hover { background: #ffb536; transform: translateY(-1px); }
  
  .button-link {
    display: grid;
    place-items: center;
    color: #14293e;
    text-decoration: none;
  }
  
  /* Mis trabajos */
  .page-trabajos { padding-bottom: 74px; }.app-topbar { height: 68px; padding: 0 max(20px, calc((100% - 760px)/2)); display:flex; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid var(--line); }.app-brand--left { justify-content:flex-start; text-decoration:none; }.logout-link { color:var(--muted); text-decoration:none; font-size:13px; font-weight:750; }.trabajos-main { width:min(100%,760px); margin:auto; padding:30px 20px; }.welcome-panel { margin-bottom:30px; }.eyebrow { margin:0 0 7px; color:#a2640a; font-size:11px; font-weight:800; letter-spacing:.9px; }.welcome-panel h1 { margin:0 0 7px; color:var(--navy); font-size:30px; }.welcome-panel p,.section-heading p { margin:0; color:var(--muted); font-size:14px; }.section-heading { margin-bottom:14px; }.section-heading h2 { margin:0 0 4px; color:var(--navy); font-size:18px; }.trabajos-lista { display:grid; gap:13px; }.trabajo-card { padding:18px; background:#fff; border:1px solid var(--line); border-radius:14px; }.trabajo-card__top { display:flex; gap:7px; }.tipo-badge,.priority-badge { padding:5px 8px; color:#245877; background:#e8f3f8; border-radius:6px; font-size:10px; font-weight:800; text-transform:uppercase; }.priority-badge { color:#98600b; background:#fff4df; }.trabajo-numero { margin:14px 0 4px; color:#81909c; font-size:11px; font-weight:750; }.trabajo-card h3 { margin:0 0 5px; color:var(--navy); font-size:17px; }.trabajo-cliente { margin:0; color:#526575; font-size:13px; }.trabajo-datos { display:grid; gap:8px; margin:16px 0; padding:13px 0; border-top:1px solid #edf1f4; border-bottom:1px solid #edf1f4; }.trabajo-datos div { display:flex; gap:9px; }.trabajo-datos dt { width:17px; }.trabajo-datos dd { margin:0; color:#536675; font-size:12px; }.trabajo-datos dd span { color:#83909b; }.trabajo-abrir { display:flex; justify-content:space-between; color:#9b610c; font-size:13px; font-weight:800; text-decoration:none; }.empty-state { padding:39px 24px; text-align:center; background:#fff; border:1px dashed #bdcad3; border-radius:14px; }.empty-state div { width:46px; height:46px; display:grid; place-items:center; margin:0 auto 15px; color:#2c8167; background:#e8f5ef; border-radius:50%; font-size:22px; }.empty-state h2 { margin:0 0 6px; color:var(--navy); font-size:17px; }.empty-state p { margin:0; color:var(--muted); font-size:13px; }.bottom-nav { position:fixed; bottom:0; left:0; width:100%; height:64px; display:flex; justify-content:center; gap:52px; background:#fff; border-top:1px solid var(--line); }.bottom-nav__item { padding-top:10px; display:grid; justify-items:center; color:#aab5bd; font-size:17px; text-decoration:none; }.bottom-nav__item small { font-size:10px; }.bottom-nav__item--active { color:#a2640a; }
  
  @media (max-width: 590px) {
    .selector-card { padding: 32px 20px 25px; }
    .role-list { grid-template-columns: 1fr; margin-top: 27px; }
    .role-card { min-height: 186px; }
    .selector-header h1 { margin-top: 28px; }
  }
  
  @media (max-width: 450px) {
    .page-selector,
    .page-login { padding: 14px; }
  
    .login-card { padding: 26px 22px; }
  }

  /* ==============================================================
     PANEL DE ADMINISTRACIÓN
     ============================================================== */
  .page-admin { min-height:100vh; background:#f4f7f9; }
  .admin-sidebar { width:248px; height:100vh; position:fixed; inset:0 auto 0 0; z-index:30; display:flex; flex-direction:column; padding:25px 17px 20px; color:#fff; background:var(--navy); }
  .app-brand--admin { justify-content:flex-start; padding:0 8px 24px; color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.1); }
  .app-brand--admin .app-mark { background:rgba(255,255,255,.1); }
  .admin-menu { display:grid; gap:5px; padding-top:22px; }
  .admin-menu__item { min-height:44px; display:flex; align-items:center; gap:12px; padding:0 13px; color:#aec0d0; border-radius:9px; font-size:13px; font-weight:700; text-decoration:none; }
  .admin-menu__item span { width:19px; color:#d6e2eb; text-align:center; font-size:17px; }
  .admin-menu__item:hover,.admin-menu__item--active { color:#fff; background:rgba(255,255,255,.1); }
  .admin-menu__item--active { box-shadow:inset 3px 0 0 var(--amber); }
  .admin-sidebar__footer { margin-top:auto; display:grid; gap:5px; padding:17px 11px 0; border-top:1px solid rgba(255,255,255,.1); }
  .admin-sidebar__footer small { color:#90a7ba; font-size:10px; }
  .admin-sidebar__footer strong { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
  .admin-sidebar__footer a { margin-top:8px; color:#ffbf58; font-size:11px; font-weight:750; text-decoration:none; }
  .admin-shell { min-height:100vh; margin-left:248px; }
  .admin-topbar { height:68px; display:flex; align-items:center; justify-content:flex-end; gap:17px; padding:0 34px; background:#fff; border-bottom:1px solid var(--line); }
  .admin-menu-button { display:none; }
  .admin-topbar__title { display:grid; text-align:right; }
  .admin-topbar__title strong { color:var(--navy); font-size:12px; }
  .admin-topbar__title small { color:var(--muted); font-size:10px; }
  .admin-avatar { width:37px; height:37px; display:grid; place-items:center; color:#fff; background:var(--navy-light); border-radius:50%; font-size:13px; font-weight:800; text-decoration:none; }
  .admin-main { width:min(100%,1440px); margin:auto; padding:34px; }
  .admin-welcome { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:27px; }
  .admin-welcome h1 { margin:0 0 5px; color:var(--navy); font-size:29px; letter-spacing:-.7px; }
  .admin-welcome p:last-child { margin:0; color:var(--muted); font-size:13px; }
  .admin-primary-action { min-height:43px; display:inline-flex; align-items:center; gap:8px; padding:0 17px; color:#192c3f; background:var(--amber); border-radius:9px; font-size:12px; font-weight:800; text-decoration:none; }
  .admin-alert { margin-bottom:18px; padding:12px 14px; color:#9c4035; background:#fff0ed; border:1px solid #f1ccc5; border-radius:9px; font-size:12px; }
  .admin-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:23px; }
  .admin-stat { min-height:105px; display:flex; align-items:center; gap:12px; padding:18px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:13px; text-decoration:none; box-shadow:0 5px 16px rgba(16,38,61,.04); }
  .admin-stat:hover { border-color:#b8c8d5; transform:translateY(-1px); }
  .admin-stat__icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:11px; font-size:18px; font-weight:750; }
  .admin-stat__icon--blue { color:#28678e; background:#e7f2f8; }.admin-stat__icon--amber { color:#9a630a; background:#fff2dc; }.admin-stat__icon--green { color:#26735c; background:#e6f4ee; }
  .admin-stat div { display:grid; min-width:0; }.admin-stat strong { color:var(--navy); font-size:25px; line-height:1; }.admin-stat span { margin-top:7px; color:var(--muted); font-size:11px; }.admin-stat b { margin-left:auto; color:#aeb9c1; }
  .admin-content-grid { display:grid; grid-template-columns:minmax(0,2.2fr) minmax(265px,.8fr); gap:18px; align-items:start; }
  .admin-panel { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:0 5px 16px rgba(16,38,61,.035); }
  .admin-panel__header { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:17px 20px; border-bottom:1px solid #edf1f4; }
  .admin-panel__header h2 { margin:0 0 4px; color:var(--navy); font-size:16px; }.admin-panel__header p { margin:0; color:var(--muted); font-size:11px; }.admin-panel__header>a { color:#86601f; font-size:11px; font-weight:800; text-decoration:none; }
  .admin-table-wrap { overflow-x:auto; }.admin-table { width:100%; border-collapse:collapse; }.admin-table th { padding:11px 14px; color:#83909b; background:#fafbfc; text-align:left; font-size:9px; letter-spacing:.4px; text-transform:uppercase; }.admin-table td { padding:14px; color:#526575; border-top:1px solid #eef2f5; font-size:11px; vertical-align:middle; }.admin-table td strong { display:block; color:#294156; font-size:11px; }.admin-table td small { display:block; max-width:235px; margin-top:3px; overflow:hidden; color:#8a97a1; text-overflow:ellipsis; white-space:nowrap; }
  .status-badge { display:inline-flex; padding:5px 7px; border-radius:6px; color:#556674; background:#edf1f4; font-size:9px; font-weight:800; white-space:nowrap; }.status-badge--enviado { color:#98600b; background:#fff1d8; }.status-badge--en_revision { color:#27658b; background:#e6f2f8; }.status-badge--aprobado,.status-badge--albaran_generado { color:#237259; background:#e4f3ec; }.status-badge--rechazado { color:#a13e32; background:#fff0ed; }
  .table-open { color:#8d620f; font-weight:800; text-decoration:none; }.admin-mobile-list { display:none; }.admin-empty { padding:45px 20px; text-align:center; }.admin-empty>span { width:42px; height:42px; display:grid; place-items:center; margin:auto; color:#25745b; background:#e5f4ed; border-radius:50%; }.admin-empty h3 { margin:13px 0 5px; color:var(--navy); font-size:15px; }.admin-empty p { margin:0; color:var(--muted); font-size:11px; }
  .admin-shortcuts>a { min-height:69px; display:flex; align-items:center; gap:11px; padding:12px 17px; color:var(--ink); border-top:1px solid #eef2f4; text-decoration:none; }.admin-shortcuts>a>span { width:34px; height:34px; display:grid; place-items:center; flex:0 0 34px; color:#345e7b; background:#edf4f8; border-radius:9px; font-size:16px; }.admin-shortcuts>a div { display:grid; min-width:0; }.admin-shortcuts>a strong { color:#2c4052; font-size:11px; }.admin-shortcuts>a small { margin-top:3px; color:#8a96a0; font-size:9px; }.admin-shortcuts>a b { margin-left:auto; color:#aeb8c0; }.admin-overlay { display:none; }

  @media (max-width:1100px) { .admin-stats { grid-template-columns:repeat(2,1fr); }.admin-content-grid { grid-template-columns:1fr; }.admin-shortcuts { display:grid; grid-template-columns:repeat(2,1fr); }.admin-shortcuts .admin-panel__header { grid-column:1/-1; } }
  @media (max-width:760px) {
    .admin-sidebar { transform:translateX(-100%); transition:transform .22s ease; }.admin-sidebar--open { transform:translateX(0); }.admin-shell { margin-left:0; }.admin-topbar { justify-content:space-between; height:61px; padding:0 16px; }.admin-menu-button { display:inline-flex; align-items:center; gap:7px; padding:8px 10px; color:var(--navy); background:#fff; border:1px solid var(--line); border-radius:8px; font-size:11px; font-weight:800; }.admin-topbar__title { display:none; }.admin-main { padding:23px 15px 80px; }.admin-welcome { align-items:flex-start; }.admin-welcome h1 { font-size:24px; }.admin-primary-action { min-height:39px; padding:0 12px; font-size:11px; }.admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.admin-stat { min-height:103px; display:grid; grid-template-columns:37px 1fr; gap:8px; padding:13px; }.admin-stat__icon { width:37px; height:37px; flex-basis:37px; }.admin-stat div { grid-column:1/-1; }.admin-stat strong { font-size:22px; }.admin-stat b { display:none; }.admin-table-wrap { display:none; }.admin-mobile-list { display:grid; }.admin-part-card { display:block; padding:15px 17px; color:var(--ink); border-top:1px solid #edf1f4; text-decoration:none; }.admin-part-card>div { display:flex; align-items:center; justify-content:space-between; gap:10px; }.admin-part-card>div>strong { color:#758491; font-size:10px; }.admin-part-card h3 { margin:11px 0 4px; color:var(--navy); font-size:14px; }.admin-part-card p { margin:0 0 10px; color:#607181; font-size:11px; }.admin-part-card small { color:#8d99a2; font-size:9px; }.admin-shortcuts { grid-template-columns:1fr; }.admin-shortcuts .admin-panel__header { grid-column:auto; }.admin-overlay { position:fixed; inset:0; z-index:20; background:rgba(9,23,37,.5); }.admin-overlay--visible { display:block; }
  }
  @media (max-width:420px) { .admin-welcome { display:grid; }.admin-primary-action { width:max-content; }.admin-panel__header { padding:15px; } }

  /* ==============================================================
     ADMINISTRACIÓN · NUEVO TRABAJO
     ============================================================== */
  .page-admin-form { background:#f4f7f9; }
  .admin-form-topbar { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 max(20px,calc((100% - 1180px)/2)); background:#fff; border-bottom:1px solid var(--line); }
  .admin-form-topbar>div { display:flex; align-items:center; gap:16px; color:#687789; font-size:11px; }.admin-form-topbar>div a { color:#8e610f; font-weight:800; text-decoration:none; }
  .admin-form-main { width:min(100%,1180px); margin:auto; padding:27px 22px 60px; }
  .admin-breadcrumb { display:flex; align-items:center; gap:8px; margin-bottom:23px; color:#91a0ab; font-size:11px; }.admin-breadcrumb a { color:#637789; text-decoration:none; }.admin-breadcrumb strong { color:#344b5f; }
  .admin-form-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:24px; }.admin-form-heading h1 { margin:0 0 6px; color:var(--navy); font-size:28px; letter-spacing:-.7px; }.admin-form-heading p:last-child { margin:0; color:var(--muted); font-size:12px; }.admin-form-heading>a { padding:9px 12px; color:#65798a; border:1px solid var(--line); border-radius:8px; font-size:11px; font-weight:750; text-decoration:none; }
  .admin-success { min-height:70px; display:flex; align-items:center; gap:13px; margin-bottom:22px; padding:13px 17px; color:#255d4c; background:#e8f5ef; border:1px solid #c8e6d9; border-radius:11px; }.admin-success>span { width:37px; height:37px; flex:0 0 37px; display:grid; place-items:center; color:#fff; background:#319271; border-radius:50%; font-weight:900; }.admin-success div { display:grid; }.admin-success strong { font-size:12px; }.admin-success p { margin:4px 0 0; color:#568071; font-size:10px; }.admin-success>a { margin-left:auto; color:#286b55; font-size:10px; font-weight:800; text-decoration:none; }
  .work-form { display:grid; grid-template-columns:minmax(0,1fr) 275px; gap:19px; align-items:start; }.work-form__body { display:grid; gap:16px; }.form-section { padding:22px; background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:0 5px 16px rgba(16,38,61,.035); }.form-section>header { display:flex; align-items:center; gap:11px; margin-bottom:21px; padding-bottom:16px; border-bottom:1px solid #edf1f4; }.form-section>header>span { width:31px; height:31px; flex:0 0 31px; display:grid; place-items:center; color:#fff; background:var(--navy-light); border-radius:8px; font-size:11px; font-weight:850; }.form-section h2 { margin:0 0 3px; color:var(--navy); font-size:15px; }.form-section header p { margin:0; color:#86939d; font-size:10px; }
  .admin-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.admin-field { display:grid; align-content:start; gap:7px; }.admin-field--wide { grid-column:1/-1; }.admin-field>span { color:#435565; font-size:10px; font-weight:800; }.admin-field input,.admin-field select,.admin-field textarea { width:100%; min-height:45px; padding:0 12px; color:#203548; background:#fff; border:1px solid #ccd8e1; border-radius:8px; outline:none; font:inherit; font-size:12px; }.admin-field textarea { min-height:92px; padding:11px 12px; resize:vertical; line-height:1.45; }.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus { border-color:#6c91ae; box-shadow:0 0 0 3px var(--focus); }.admin-field input::placeholder,.admin-field textarea::placeholder { color:#a5afb7; }
  .work-form__aside { position:sticky; top:20px; padding:19px; background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:0 5px 16px rgba(16,38,61,.035); }.work-form__aside h2 { margin:0 0 11px; color:var(--navy); font-size:14px; }.work-form__aside ul { margin:0 0 20px; padding-left:17px; color:#687989; font-size:10px; line-height:1.6; }.work-form__aside li+li { margin-top:6px; }.admin-save-button { width:100%; min-height:44px; color:#182d41; background:var(--amber); border:0; border-radius:8px; font-size:12px; font-weight:850; cursor:pointer; }.admin-save-button:hover { background:#ffb536; }.admin-cancel-button { min-height:38px; display:grid; place-items:center; margin-top:7px; color:#748592; font-size:10px; font-weight:750; text-decoration:none; }
  @media (max-width:850px) { .work-form { grid-template-columns:1fr; }.work-form__aside { position:static; }.work-form__aside>div { display:none; }.admin-cancel-button { min-height:42px; }.admin-form-topbar>div>span { display:none; } }
  @media (max-width:560px) { .admin-form-topbar { min-height:60px; padding:0 15px; }.admin-form-topbar .app-brand { font-size:16px; }.admin-form-topbar .app-mark { width:32px; height:32px; }.admin-form-main { padding:20px 14px 45px; }.admin-form-heading { align-items:flex-start; }.admin-form-heading h1 { font-size:23px; }.admin-form-heading>a { display:none; }.form-section { padding:17px 15px; }.admin-form-grid { grid-template-columns:1fr; gap:14px; }.admin-field--wide { grid-column:auto; }.admin-success { align-items:flex-start; }.admin-success>a { display:none; } }

  /* Alta reutilizable de clientes */
  .admin-field__heading { min-height:17px; display:flex; align-items:center; justify-content:space-between; gap:12px; }.admin-field__heading>span { color:#435565; font-size:10px; font-weight:800; }.admin-field__heading>a { color:#91620d; font-size:10px; font-weight:850; text-decoration:none; }.admin-field__heading>a:hover { text-decoration:underline; }
  .admin-no-clients { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:19px; color:#5f7180; background:#fff; border:1px solid var(--line); border-radius:11px; }.admin-no-clients p { margin:0; font-size:12px; }.admin-no-clients a { min-height:40px; display:inline-flex; align-items:center; padding:0 14px; color:#182d41; background:var(--amber); border-radius:8px; font-size:11px; font-weight:850; text-decoration:none; white-space:nowrap; }
  .admin-form-main--narrow { width:min(100%,830px); }.client-form { display:grid; gap:16px; }.client-form__actions { display:flex; justify-content:flex-end; gap:10px; padding:16px 18px; background:#fff; border:1px solid var(--line); border-radius:11px; }.client-form__actions .admin-cancel-button { width:120px; margin:0; }.client-form__actions .admin-save-button { width:180px; }
  @media (max-width:560px) { .admin-field__heading { align-items:flex-end; }.admin-no-clients { display:grid; }.admin-no-clients a { justify-content:center; }.client-form__actions { position:sticky; bottom:0; z-index:5; padding:11px; box-shadow:0 -5px 18px rgba(16,38,61,.08); }.client-form__actions .admin-cancel-button,.client-form__actions .admin-save-button { width:50%; } }

  /* ==============================================================
     ADMINISTRACIÓN · LISTADO DE TRABAJOS
     ============================================================== */
  .admin-list-main { max-width:1440px; }.work-list-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; margin-bottom:17px; }.work-list-stat { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 17px; color:#657786; background:#fff; border:1px solid var(--line); border-radius:11px; text-decoration:none; }.work-list-stat span { font-size:11px; font-weight:750; }.work-list-stat strong { color:var(--navy); font-size:22px; }.work-list-stat:hover,.work-list-stat--active { border-color:#8ca5b8; box-shadow:0 5px 15px rgba(16,38,61,.06); }.work-list-stat--active { box-shadow:inset 0 -3px 0 var(--amber); }
  .work-list-panel { overflow:visible; }.work-filters { display:grid; grid-template-columns:minmax(240px,1.6fr) repeat(4,minmax(125px,.75fr)) auto auto; gap:9px; padding:16px; border-bottom:1px solid #edf1f4; }.work-filters input,.work-filters select { width:100%; min-height:40px; padding:0 10px; color:#3d5264; background:#fff; border:1px solid #ccd8e1; border-radius:8px; outline:none; font:inherit; font-size:10px; }.work-filters input:focus,.work-filters select:focus { border-color:#6c91ae; box-shadow:0 0 0 3px var(--focus); }.work-search { position:relative; }.work-search>span { position:absolute; top:50%; left:11px; transform:translateY(-50%); color:#81909c; }.work-search input { padding-left:31px; }.work-filters>button { min-height:40px; padding:0 15px; color:#fff; background:var(--navy-light); border:0; border-radius:8px; font-size:10px; font-weight:800; cursor:pointer; }.work-filters__clear { min-height:40px; display:grid; place-items:center; padding:0 8px; color:#8e610f; font-size:10px; font-weight:800; text-decoration:none; }
  .work-list-header { min-height:47px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; color:#71818e; background:#fafbfc; border-bottom:1px solid #edf1f4; font-size:10px; }.work-list-header strong { color:#243c50; }.work-list-header small { font-size:9px; }.work-table td:first-child { min-width:165px; }.work-table td:nth-child(2) { min-width:175px; }.work-table td { padding-top:13px; padding-bottom:13px; }.type-badge { display:inline-flex; padding:5px 7px; color:#566b7b; background:#edf2f5; border-radius:6px; font-size:8px; font-weight:850; text-transform:uppercase; }.type-badge--electricidad { color:#90600d; background:#fff1d9; }.type-badge--fontaneria { color:#27698f; background:#e7f3f9; }.type-badge--climatizacion { color:#436d88; background:#ebf3f7; }.type-badge--mantenimiento { color:#267159; background:#e6f4ed; }
  .work-status { display:inline-flex; padding:5px 7px; color:#566b7b; background:#edf1f4; border-radius:6px; font-size:8px; font-weight:850; white-space:nowrap; }.work-status--pendiente { color:#8d610e; background:#fff1d9; }.work-status--asignado { color:#2d6688; background:#e7f2f8; }.work-status--en_curso { color:#655098; background:#f0ecfa; }.work-status--finalizado { color:#267058; background:#e5f3ec; }.work-status--cancelado { color:#9c443a; background:#fff0ed; }.work-unassigned { color:#9a6510; font-size:9px; font-weight:800; }.priority-text { margin-top:5px!important; color:#9b610c!important; font-size:8px!important; font-weight:850; text-transform:uppercase; }.priority-text--urgente { color:#aa3f34!important; }
  .work-mobile-list { display:none; }.admin-empty>a { min-height:38px; display:inline-flex; align-items:center; margin-top:15px; padding:0 13px; color:#182d41; background:var(--amber); border-radius:8px; font-size:10px; font-weight:850; text-decoration:none; }.admin-pagination { min-height:58px; display:flex; align-items:center; justify-content:center; gap:25px; padding:10px 16px; border-top:1px solid #edf1f4; }.admin-pagination a,.admin-pagination span { color:#788894; font-size:10px; font-weight:750; text-decoration:none; }.admin-pagination span { opacity:.45; }.admin-pagination strong { color:var(--navy); font-size:10px; }
  @media (max-width:1250px) { .work-filters { grid-template-columns:2fr repeat(2,1fr); }.work-filters>button,.work-filters__clear { width:100%; }.work-search { grid-column:span 2; } }
  @media (max-width:760px) { .work-list-stats { grid-template-columns:repeat(2,1fr); gap:9px; }.work-list-stat { min-height:64px; padding:12px 14px; }.work-list-stat strong { font-size:19px; }.work-filters { grid-template-columns:1fr 1fr; padding:12px; }.work-search { grid-column:1/-1; }.work-filters select[name="operario"],.work-filters select[name="orden"] { grid-column:span 1; }.work-filters>button { grid-column:1/-1; }.work-table-wrap { display:none; }.work-mobile-list { display:grid; }.work-mobile-card { display:block; padding:16px; color:var(--ink); border-bottom:1px solid #edf1f4; text-decoration:none; }.work-mobile-card__top { display:flex; align-items:center; justify-content:space-between; gap:10px; }.work-mobile-card__top>strong { color:#7b8995; font-size:9px; }.work-mobile-card h2 { margin:12px 0 5px; color:var(--navy); font-size:15px; }.work-mobile-card>p { margin:0 0 13px; color:#607282; font-size:11px; }.work-mobile-card dl { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0; padding:11px 0; border-top:1px solid #eef2f4; border-bottom:1px solid #eef2f4; }.work-mobile-card dl div { min-width:0; }.work-mobile-card dt { color:#929ea7; font-size:8px; }.work-mobile-card dd { margin:4px 0 0; overflow:hidden; color:#43596b; font-size:9px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }.work-mobile-card__open { display:block; margin-top:12px; color:#8c610f; font-size:10px; font-weight:850; }.work-list-header { padding:0 13px; } }
  @media (max-width:460px) { .work-filters { grid-template-columns:1fr; }.work-search,.work-filters select[name="operario"],.work-filters select[name="orden"],.work-filters>button { grid-column:auto; }.work-filters__clear { min-height:32px; }.work-mobile-card dl { grid-template-columns:1fr 1fr; }.work-mobile-card dl div:last-child { display:none; } }

  /* ==============================================================
     ADMINISTRACIÓN · DETALLE DEL TRABAJO
     ============================================================== */
  .admin-detail-main { max-width:1320px; }.admin-detail-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; }.admin-detail-heading>div>p { margin:12px 0 3px; color:#83909b; font-size:10px; font-weight:800; }.admin-detail-heading h1 { margin:0 0 5px; color:var(--navy); font-size:28px; letter-spacing:-.7px; }.admin-detail-heading>div>strong { color:#596d7e; font-size:12px; }.admin-detail-badges { display:flex; flex-wrap:wrap; gap:7px; }.admin-detail-back { min-height:38px; display:inline-flex; align-items:center; padding:0 12px; color:#617687; background:#fff; border:1px solid var(--line); border-radius:8px; font-size:10px; font-weight:800; text-decoration:none; }
  .admin-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:18px; align-items:start; }.admin-detail-column { display:grid; gap:15px; }.admin-detail-card { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:0 5px 16px rgba(16,38,61,.035); }.admin-detail-card>header { min-height:58px; display:flex; align-items:center; padding:14px 18px; border-bottom:1px solid #edf1f4; }.admin-detail-card>header h2 { margin:0; color:var(--navy); font-size:15px; }.admin-detail-data { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-detail-data>div { min-height:105px; display:flex; flex-direction:column; align-items:flex-start; padding:17px 18px; border-right:1px solid #edf1f4; border-bottom:1px solid #edf1f4; }.admin-detail-data>div:nth-child(even) { border-right:0; }.admin-detail-data span { margin-bottom:9px; color:#7b8b97; font-size:9px; font-weight:800; }.admin-detail-data strong { color:#344b5e; font-size:11px; line-height:1.4; }.admin-detail-data small { margin-top:4px; color:#8996a0; font-size:9px; }.admin-detail-data a { margin-top:auto; padding-top:8px; color:#8d620f; font-size:9px; font-weight:850; text-decoration:none; }.admin-detail-text { padding:18px; color:#4f6373; font-size:12px; line-height:1.65; }.admin-internal-note { margin:0 18px 18px; padding:13px; color:#805a18; background:#fff7e8; border:1px solid #f2dfbb; border-radius:8px; }.admin-internal-note strong { font-size:9px; text-transform:uppercase; }.admin-internal-note p { margin:6px 0 0; font-size:10px; line-height:1.5; }
  .admin-detail-empty { padding:40px 20px; text-align:center; }.admin-detail-empty>span { width:44px; height:44px; display:grid; place-items:center; margin:auto; background:#edf2f5; border-radius:50%; }.admin-detail-empty h2 { margin:14px 0 6px; color:var(--navy); font-size:15px; }.admin-detail-empty p { max-width:480px; margin:auto; color:#7c8b96; font-size:10px; line-height:1.5; }
  .admin-part-detail__header { justify-content:space-between; gap:15px; background:#f9fbfc; }.admin-part-detail__header p { margin:0 0 4px; color:#9b650b; font-size:8px; font-weight:900; letter-spacing:.7px; }.admin-part-detail__header h2 { margin:0 0 3px!important; }.admin-part-detail__header small { color:#8996a0; font-size:9px; }.admin-part-section { padding:18px; border-bottom:1px solid #edf1f4; }.admin-part-section>header { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:13px; }.admin-part-section h3,.admin-part-report h3,.admin-signature h3 { margin:0 0 4px; color:#334b5e; font-size:12px; }.admin-part-section header p { margin:0; color:#8996a0; font-size:9px; }.admin-part-section header>strong { color:var(--navy); font-size:16px; }.admin-detail-muted { margin:0; color:#939fa8; font-size:10px; }
  .admin-record-list { display:grid; gap:7px; }.admin-record-list>div { display:grid; grid-template-columns:70px 75px minmax(100px,1fr) auto; gap:10px; align-items:center; padding:10px 11px; background:#f7f9fa; border-radius:7px; }.admin-record-list span,.admin-record-list small { color:#84929d; font-size:8px; }.admin-record-list strong { color:#3c5365; font-size:10px; }.admin-record-list p { margin:0; color:#596d7d; font-size:9px; }.admin-material-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.admin-material-list>div { display:grid; grid-template-columns:1fr auto; gap:4px 10px; padding:11px; background:#f7f9fa; border-radius:7px; }.admin-material-list strong { color:#3e5567; font-size:10px; }.admin-material-list span { color:#8c610f; font-size:10px; font-weight:850; }.admin-material-list small { grid-column:1/-1; color:#8a97a1; font-size:8px; }
  .admin-detail-photos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }.admin-detail-photos a { position:relative; aspect-ratio:4/3; overflow:hidden; background:#e8edf0; border-radius:8px; }.admin-detail-photos img { width:100%; height:100%; display:block; object-fit:cover; }.admin-detail-photos span { position:absolute; right:5px; bottom:5px; padding:4px 6px; color:#fff; background:rgba(11,28,43,.72); border-radius:5px; font-size:7px; font-weight:850; text-transform:uppercase; }
  .admin-part-report { display:grid; grid-template-columns:1fr 1fr; }.admin-part-report>div { min-height:135px; padding:18px; border-right:1px solid #edf1f4; }.admin-part-report>div:last-child { border-right:0; }.admin-part-report p { margin:8px 0 0; color:#526676; font-size:10px; line-height:1.55; }.admin-signature { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 18px; background:#f7faf8; border-top:1px solid #e4eee9; }.admin-signature div { display:grid; }.admin-signature strong { color:#344e42; font-size:10px; }.admin-signature small { margin-top:4px; color:#7f9188; font-size:8px; }.admin-signature img { width:150px; height:65px; object-fit:contain; background:#fff; border:1px solid #dce7e1; border-radius:6px; }
  .admin-detail-side { position:sticky; top:20px; display:grid; gap:12px; }.admin-detail-side>article { padding:17px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 5px 16px rgba(16,38,61,.035); }.admin-detail-side h2 { margin:0 0 14px; color:var(--navy); font-size:13px; }.admin-detail-side dl { margin:0; }.admin-detail-side dl div { display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-top:1px solid #edf1f4; }.admin-detail-side dt { color:#84929c; font-size:9px; }.admin-detail-side dd { margin:0; color:#344b5e; font-size:9px; font-weight:800; text-align:right; }.admin-detail-side article>p { margin:10px 0 0; color:#87949e; font-size:8px; }
  @media (max-width:980px) { .admin-detail-grid { grid-template-columns:1fr; }.admin-detail-side { position:static; grid-template-columns:repeat(2,1fr); }.admin-detail-side>article:only-child { grid-column:1/-1; } }
  @media (max-width:760px) { .admin-detail-heading { align-items:flex-start; }.admin-detail-heading h1 { font-size:23px; }.admin-detail-back { display:none; }.admin-detail-data { grid-template-columns:1fr; }.admin-detail-data>div,.admin-detail-data>div:nth-child(even) { min-height:90px; border-right:0; }.admin-material-list { grid-template-columns:1fr; }.admin-detail-photos { grid-template-columns:repeat(2,1fr); }.admin-record-list>div { grid-template-columns:60px 65px 1fr; }.admin-record-list small { grid-column:1/-1; }.admin-part-report { grid-template-columns:1fr; }.admin-part-report>div { min-height:0; border-right:0; border-bottom:1px solid #edf1f4; }.admin-signature { align-items:flex-start; }.admin-detail-side { grid-template-columns:1fr 1fr; } }
  @media (max-width:480px) { .admin-detail-side { grid-template-columns:1fr; }.admin-detail-photos { gap:6px; }.admin-signature { display:grid; }.admin-signature img { width:100%; }.admin-record-list>div { grid-template-columns:55px 1fr; }.admin-record-list p,.admin-record-list small { grid-column:1/-1; } }

  /* ==============================================================
     ADMINISTRACIÓN · LISTADO DE PARTES
     ============================================================== */
  .parts-heading { align-items:flex-start; }
  .parts-filters { display:grid; grid-template-columns:minmax(270px,1.7fr) minmax(150px,.7fr) minmax(160px,.8fr) auto auto; gap:9px; padding:16px; border-bottom:1px solid #edf1f4; }
  .parts-filters input,.parts-filters select { width:100%; min-height:40px; padding:0 10px; color:#3d5264; background:#fff; border:1px solid #ccd8e1; border-radius:8px; outline:none; font:inherit; font-size:10px; }
  .parts-filters input:focus,.parts-filters select:focus { border-color:#6c91ae; box-shadow:0 0 0 3px var(--focus); }
  .parts-filters .work-search input { padding-left:31px; }
  .parts-filters>button { min-height:40px; padding:0 16px; color:#fff; background:var(--navy-light); border:0; border-radius:8px; font-size:10px; font-weight:800; cursor:pointer; }
  .parts-filters>button:hover { background:#205173; }
  .parts-table td:first-child { min-width:145px; }
  .parts-table td:nth-child(2) { min-width:220px; }
  .parts-table td:nth-child(3) { min-width:130px; }
  .parts-review-button { min-height:32px; display:inline-flex; align-items:center; padding:0 10px; color:#22384b; background:#fff1d9; border-radius:7px; font-size:9px; font-weight:850; text-decoration:none; white-space:nowrap; }
  .parts-review-button:hover { background:var(--amber); }
  .status-badge--borrador { color:#556674; background:#edf1f4; }
  .parts-mobile-list { display:none; }

  @media (max-width:1050px) {
    .parts-filters { grid-template-columns:2fr 1fr 1fr; }
    .parts-filters>button,.parts-filters>.work-filters__clear { width:100%; }
  }
  @media (max-width:760px) {
    .parts-filters { grid-template-columns:1fr 1fr; padding:12px; }
    .parts-filters .work-search { grid-column:1/-1; }
    .parts-filters>button { grid-column:1/-1; }
    .parts-table-wrap { display:none; }
    .parts-mobile-list { display:grid; }
  }
  @media (max-width:460px) {
    .parts-filters { grid-template-columns:1fr; }
    .parts-filters .work-search,.parts-filters>button { grid-column:auto; }
  }

  /* Edición administrativa del trabajo */
  .admin-detail-actions { display:flex; align-items:center; gap:8px; }.admin-detail-edit { min-height:38px; display:inline-flex; align-items:center; padding:0 13px; color:#192d40; background:var(--amber); border-radius:8px; font-size:10px; font-weight:850; text-decoration:none; }.admin-detail-edit:hover { background:#ffb536; }.admin-success--compact { min-height:54px; margin-top:-7px; }.admin-success--compact>span { width:31px; height:31px; flex-basis:31px; }
  @media (max-width:760px) { .admin-detail-actions .admin-detail-back { display:none; }.admin-detail-edit { min-height:36px; padding:0 11px; }.admin-detail-heading { align-items:flex-end; } }
  @media (max-width:480px) { .admin-detail-heading { display:grid; }.admin-detail-actions { grid-row:1; justify-content:flex-end; }.admin-detail-heading>div { grid-row:2; } }

  /* Ficha consolidada: edición y registros en una sola página */
  .consolidated-records { margin-top:18px; }.consolidated-records>header { background:#f9fbfc; }.page-admin-form .consolidated-records { overflow:hidden; }.page-admin-form .consolidated-records .admin-detail-photos { padding-top:2px; }