﻿:root{
    --bg:#f5f5f0;
    --white:#ffffff;
    --ink:#111110;
    --ink-2:#3d3d3a;
    --ink-3:#8a8a85;
    --border:#e4e4e0;
    --tag-bg:#efefeb;

    --green:#166534;
    --green-2:#14532d;
    --green-bg:#edf7f1;
    --green-border:#c2e8d2;

    --red:#c0392b;
    --red-bg:#fef2f2;
    --red-border:#fecaca;

    --amber:#92400e;
    --amber-bg:#fffbeb;
    --amber-border:#fde68a;

    --blue:#2563eb;
    --blue-bg:#eff6ff;
    --blue-border:#bfdbfe;

    --r-card:14px;
    --r-btn:10px;
    --r-input:10px;
    --r-pill:99px;
    --shadow-hover:0 4px 16px rgba(0,0,0,.07);
    --tr:all .15s ease;
  }

  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Plus Jakarta Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.font-display{ font-family:'Sora', sans-serif; }
  button{ font-family:inherit; }
  ::selection{ background:var(--green-border); }

  /* ===== Scrollbar ringan ===== */
  ::-webkit-scrollbar{ width:8px; height:8px; }
  ::-webkit-scrollbar-thumb{ background:var(--border); border-radius:99px; }

  /* ===================================================== */
  /* TOPBAR */
  /* ===================================================== */
  .topbar{
    position:fixed;
    top:0; left:0; right:0;
    height:56px;
    background:var(--white);
    border-bottom:1px solid var(--border);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 20px;
    z-index:500;
  }
  .topbar-left{ display:flex; align-items:center; gap:10px; }
  .brand-logo{
    width:34px; height:34px;
    border-radius:9px;
    background:var(--green);
    color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:17px;
    flex-shrink:0;
  }
  .brand-name{
    font-family:'Sora',sans-serif;
    font-weight:700;
    font-size:15px;
    color:var(--ink);
    line-height:1.1;
  }
  .brand-name small{
    display:block;
    font-family:'Plus Jakarta Sans',sans-serif;
    font-weight:500;
    font-size:11px;
    color:var(--ink-3);
  }
  .topbar-right{ display:flex; align-items:center; gap:14px; font-size:13px; color:var(--ink-2); }
  .status-dot{
    width:8px; height:8px; border-radius:50%;
    background:var(--green);
    display:inline-block;
    box-shadow:0 0 0 3px var(--green-bg);
  }
  .topbar-online{ display:flex; align-items:center; gap:6px; font-weight:600; color:var(--green); }
  .topbar-clock{ color:var(--ink-3); font-weight:500; }
  .btn-menu-mobile{
    display:none;
    align-items:center; justify-content:center;
    width:40px; height:40px;
    border-radius:var(--r-btn);
    border:1px solid var(--border);
    background:var(--white);
    font-size:18px;
    color:var(--ink-2);
  }

  /* ===================================================== */
  /* SIDEBAR (desktop) */
  /* ===================================================== */
  .sidebar{
    position:fixed;
    top:56px; left:0; bottom:0;
    width:230px;
    background:var(--white);
    border-right:1px solid var(--border);
    overflow-y:auto;
    padding:20px 14px;
    z-index:400;
  }
  .sidebar-brandblock{
    padding:0 6px 18px 6px;
    margin-bottom:10px;
    border-bottom:1px solid var(--border);
  }
  .sidebar-brandblock .role-tag{
    display:inline-block;
    margin-top:8px;
    font-size:11px;
    font-weight:700;
    color:var(--green);
    background:var(--green-bg);
    border:1px solid var(--green-border);
    padding:3px 10px;
    border-radius:var(--r-pill);
  }
  .nav-group{ margin-bottom:18px; }
  .nav-group-label{
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.8px;
    text-transform:uppercase;
    color:var(--ink-3);
    padding:0 10px;
    margin-bottom:8px;
  }
  .nav-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 10px;
    border-radius:8px;
    color:var(--ink-2);
    font-size:14px;
    font-weight:600;
    text-decoration:none;
    cursor:pointer;
    margin-bottom:2px;
    transition:var(--tr);
    border:none;
    background:transparent;
    width:100%;
    text-align:left;
  }
  .nav-item i{ font-size:16px; width:16px; text-align:center; flex-shrink:0; }
  .nav-item:hover{ background:var(--bg); }
  .nav-item.active{ background:var(--green); color:#fff; }
  .nav-item.active i{ color:#fff; }

  /* ===================================================== */
  /* CONTENT AREA */
  /* ===================================================== */
  .content-area{
    margin-left:230px;
    padding-top:56px;
    min-height:100vh;
    background:var(--bg);
  }
  .content-inner{
    padding:32px;
    max-width:1280px;
  }
  .page-header{ margin-bottom:24px; }
  .page-header h1{
    font-size:24px;
    font-weight:700;
    margin:0 0 4px 0;
    color:var(--ink);
  }
  .page-header p{
    font-size:13px;
    color:var(--ink-3);
    margin:0;
  }
  .page-header-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
  }

  .app-section{ display:none; }
  .app-section.active{ display:block; }

  /* ===================================================== */
  /* BUTTONS */
  /* ===================================================== */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:44px;
    padding:10px 20px;
    border-radius:var(--r-btn);
    font-weight:600;
    font-size:14px;
    border:none;
    cursor:pointer;
    transition:var(--tr);
    white-space:nowrap;
  }
  .btn i{ font-size:16px; }
  .btn-primary{ background:var(--green); color:#fff; }
  .btn-primary:hover{ background:var(--green-2); box-shadow:var(--shadow-hover); }
  .btn-secondary{ background:transparent; border:1px solid var(--border); color:var(--ink-2); }
  .btn-secondary:hover{ background:var(--bg); }
  .btn-danger{ background:var(--red); color:#fff; }
  .btn-danger:hover{ box-shadow:var(--shadow-hover); filter:brightness(1.05); }
  .btn-sm{ min-height:36px; padding:7px 14px; font-size:13px; }
  .btn-block{ width:100%; }
  .btn-icon-only{ width:44px; padding:0; flex-shrink:0; }

  /* ===================================================== */
  /* INPUTS */
  /* ===================================================== */
  .field{ margin-bottom:16px; }
  .field label{
    display:block;
    font-size:13px;
    font-weight:600;
    color:var(--ink-2);
    margin-bottom:6px;
  }
  .field .hint{ font-size:12px; color:var(--ink-3); margin-top:4px; }
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea{
    width:100%;
    border:1px solid var(--border);
    border-radius:var(--r-input);
    padding:10px 14px;
    font-family:'Plus Jakarta Sans',sans-serif;
    font-size:14px;
    color:var(--ink);
    background:var(--white);
    transition:var(--tr);
  }
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]):focus, select:focus, textarea:focus{
    outline:none;
    border-color:var(--green);
  }
  textarea{ resize:vertical; min-height:80px; font-family:inherit; }
  .search-input-wrap{ position:relative; }
  .search-input-wrap i{
    position:absolute; left:14px; top:50%; transform:translateY(-50%);
    color:var(--ink-3); font-size:16px;
  }
  .search-input-wrap input{ padding-left:40px; min-height:46px; }

  /* Toggle switch */
  .toggle{
    position:relative;
    display:inline-block;
    width:44px; height:24px;
    flex-shrink:0;
  }
  .toggle input{ opacity:0; width:0; height:0; }
  .toggle-slider{
    position:absolute; cursor:pointer;
    top:0; left:0; right:0; bottom:0;
    background:var(--border);
    border-radius:99px;
    transition:var(--tr);
  }
  .toggle-slider::before{
    content:"";
    position:absolute;
    width:18px; height:18px;
    left:3px; bottom:3px;
    background:#fff;
    border-radius:50%;
    transition:var(--tr);
    box-shadow:0 1px 3px rgba(0,0,0,.2);
  }
  .toggle input:checked + .toggle-slider{ background:var(--green); }
  .toggle input:checked + .toggle-slider::before{ transform:translateX(20px); }

  /* ===================================================== */
  /* CARDS UMUM */
  /* ===================================================== */
  .card{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--r-card);
    padding:20px;
  }
  .card-hover:hover{ box-shadow:var(--shadow-hover); }

  /* Summary cards (dashboard) */
  .summary-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-bottom:28px;
  }
  .summary-card{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--r-card);
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:10px;
    transition:var(--tr);
  }
  .summary-card:hover{ box-shadow:var(--shadow-hover); }
  .summary-icon{
    width:38px; height:38px;
    border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    font-size:18px;
  }
  .summary-value{
    font-family:'Sora',sans-serif;
    font-size:28px;
    font-weight:700;
    color:var(--ink);
    line-height:1;
  }
  .summary-label{ font-size:12.5px; color:var(--ink-3); font-weight:500; }

  .icon-green{ background:var(--green-bg); color:var(--green); }
  .icon-blue{ background:var(--blue-bg); color:var(--blue); }
  .icon-red{ background:var(--red-bg); color:var(--red); }
  .icon-amber{ background:var(--amber-bg); color:var(--amber); }

  /* Quick actions */
  .section-title-sm{
    font-family:'Sora',sans-serif;
    font-size:16px;
    font-weight:700;
    margin:0 0 14px 0;
  }
  .quick-actions-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
  }
  .quick-action{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--r-card);
    padding:18px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    cursor:pointer;
    transition:var(--tr);
    text-align:left;
  }
  .quick-action:hover{ box-shadow:var(--shadow-hover); border-color:var(--green-border); }
  .quick-action .qa-icon{
    width:40px; height:40px;
    border-radius:10px;
    background:var(--green-bg);
    color:var(--green);
    display:flex; align-items:center; justify-content:center;
    font-size:19px;
  }
  .quick-action .qa-title{ font-weight:700; font-size:14px; color:var(--ink); }
  .quick-action .qa-desc{ font-size:12px; color:var(--ink-3); }

  .dashboard-row{
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:20px;
  }

  .mini-list-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:12px 0;
    border-bottom:1px solid var(--border);
  }
  .mini-list-item:last-child{ border-bottom:none; }
  .mini-list-left{ display:flex; align-items:center; gap:12px; }
  .mini-avatar{
    width:36px; height:36px;
    border-radius:9px;
    background:var(--tag-bg);
    display:flex; align-items:center; justify-content:center;
    font-size:16px;
    color:var(--ink-2);
    flex-shrink:0;
  }
  .mini-name{ font-weight:600; font-size:13.5px; color:var(--ink); }
  .mini-sub{ font-size:12px; color:var(--ink-3); }

  /* ===================================================== */
  /* BADGES */
  /* ===================================================== */
  .badge{
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:12px;
    font-weight:700;
    padding:4px 10px;
    border-radius:var(--r-pill);
    border:1px solid transparent;
    white-space:nowrap;
  }
  .badge-aktif{ background:var(--green-bg); color:var(--green); border-color:var(--green-border); }
  .badge-belumlengkap{ background:var(--amber-bg); color:var(--amber); border-color:var(--amber-border); }
  .badge-dijual{ background:var(--blue-bg); color:var(--blue); border-color:var(--blue-border); }
  .badge-mati{ background:var(--red-bg); color:var(--red); border-color:var(--red-border); }
  .badge-hilang{ background:var(--bg); color:var(--ink-3); border-color:var(--border); }
  .badge-tersedia{ background:var(--green-bg); color:var(--green); border-color:var(--green-border); }
  .badge-terpakai{ background:var(--blue-bg); color:var(--blue); border-color:var(--blue-border); }
  .badge-rusak{ background:var(--red-bg); color:var(--red); border-color:var(--red-border); }

  /* ===================================================== */
  /* SEARCH & FILTER CHIP */
  /* ===================================================== */
  .toolbar-row{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
    flex-wrap:wrap;
  }
  .toolbar-row .search-input-wrap{ flex:1; min-width:220px; }
  .filter-chips{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:20px;
  }
  .chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 16px;
    border-radius:var(--r-pill);
    border:1px solid var(--border);
    background:var(--white);
    font-size:13px;
    font-weight:600;
    color:var(--ink-2);
    cursor:pointer;
    transition:var(--tr);
    text-decoration:none;
  }
  .chip:hover{ background:var(--bg); }
  .chip.active{ background:var(--green); border-color:var(--green); color:#fff; }

  /* ===================================================== */
  /* EMPTY STATE */
  /* ===================================================== */
  .empty-state{
    text-align:center;
    padding:60px 20px;
    background:var(--white);
    border:1px dashed var(--border);
    border-radius:var(--r-card);
  }
  .empty-state i{
    font-size:38px;
    color:var(--ink-3);
    margin-bottom:14px;
    display:block;
  }
  .empty-state p{
    font-size:14px;
    color:var(--ink-3);
    max-width:320px;
    margin:0 auto 18px auto;
  }

  /* ===================================================== */
  /* TABS */
  /* ===================================================== */
  .tabs{
    display:flex;
    gap:4px;
    border-bottom:1px solid var(--border);
    margin-bottom:20px;
    overflow-x:auto;
  }
  .tab-item{
    padding:10px 16px;
    font-size:13.5px;
    font-weight:600;
    color:var(--ink-3);
    background:none;
    border:none;
    cursor:pointer;
    border-bottom:2px solid transparent;
    white-space:nowrap;
    transition:var(--tr);
  }
  .tab-item:hover{ color:var(--ink-2); }
  .tab-item.active{ color:var(--green); border-bottom-color:var(--green); }

  /* ===================================================== */
  /* TABLE (desktop) / CARD LIST (mobile) */
  /* ===================================================== */
  .table-wrap{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--r-card);
    overflow:hidden;
  }
  table{ width:100%; border-collapse:collapse; }
  thead th{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.8px;
    color:var(--ink-3);
    text-align:left;
    padding:12px 16px;
    border-bottom:1px solid var(--border);
    font-weight:700;
  }
  tbody td{
    padding:12px 16px;
    font-size:13.5px;
    color:var(--ink-2);
    border-bottom:1px solid var(--border);
  }
  tbody tr:last-child td{ border-bottom:none; }
  tbody tr:hover{ background:var(--bg); }

  .data-card-list{ display:none; flex-direction:column; gap:12px; }

  /* ===================================================== */
  /* DRAWER */
  /* ===================================================== */
  .drawer-overlay{
    position:fixed; inset:0;
    background:rgba(0,0,0,.3);
    z-index:900;
    opacity:0;
    pointer-events:none;
    transition:opacity .15s ease;
  }
  .drawer-overlay.show{ opacity:1; pointer-events:auto; }

  .drawer{
    position:fixed;
    top:0; right:0; bottom:0;
    width:420px;
    max-width:100%;
    background:var(--white);
    z-index:901;
    display:flex;
    flex-direction:column;
    transform:translateX(100%);
    transition:transform .2s ease;
    box-shadow:-8px 0 24px rgba(0,0,0,.08);
  }
  .drawer.show{ transform:translateX(0); }
  .drawer > form{
    display:flex;
    flex-direction:column;
    width:100%;
    height:100%;
    min-height:0;
  }
  .drawer-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px 22px;
    border-bottom:1px solid var(--border);
    flex-shrink:0;
  }
  .drawer-header h3{
    font-size:17px;
    font-weight:700;
    margin:0;
  }
  .drawer-close{
    width:34px; height:34px;
    border-radius:8px;
    border:1px solid var(--border);
    background:var(--white);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    font-size:16px;
    color:var(--ink-2);
    flex-shrink:0;
  }
  .drawer-close:hover{ background:var(--bg); }
  .drawer-body{
    flex:1;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:22px;
  }
  .drawer-footer{
    display:flex;
    gap:10px;
    padding:16px 22px;
    border-top:1px solid var(--border);
    background:var(--white);
    flex-shrink:0;
  }
  .drawer-footer .btn{ flex:1; }

  .form-section-label{
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.6px;
    color:var(--ink-3);
    margin:22px 0 12px 0;
  }
  .form-section-label:first-child{ margin-top:0; }
  .estimated-age-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px;}

  /* ===================================================== */
  /* MODAL KONFIRMASI */
  /* ===================================================== */
  .modal-overlay{
    position:fixed; inset:0;
    background:rgba(0,0,0,.3);
    z-index:950;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
  }
  .modal-overlay.show{ display:flex; }
  .modal-card{
    background:var(--white);
    border-radius:var(--r-card);
    max-width:380px;
    width:100%;
    padding:24px;
    animation:modalPop .15s ease;
  }
  @keyframes modalPop{
    from{ transform:scale(.96); opacity:0; }
    to{ transform:scale(1); opacity:1; }
  }
  .modal-icon{
    width:46px; height:46px;
    border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    font-size:22px;
    margin-bottom:14px;
  }
  .modal-card h3{ font-size:16px; margin:0 0 8px 0; font-weight:700; }
  .modal-card p{ font-size:13.5px; color:var(--ink-2); margin:0 0 20px 0; line-height:1.5; }
  .modal-actions{ display:flex; gap:10px; }
  .modal-actions .btn{ flex:1; }

  /* ===================================================== */
  /* TOAST */
  /* ===================================================== */
  .toast-container{
    position:fixed;
    bottom:24px;
    right:24px;
    z-index:1000;
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .toast{
    display:flex;
    align-items:center;
    gap:10px;
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--r-btn);
    padding:14px 18px;
    box-shadow:0 6px 20px rgba(0,0,0,.1);
    font-size:13.5px;
    font-weight:600;
    min-width:260px;
    max-width:340px;
    animation:toastIn .2s ease;
  }
  @keyframes toastIn{
    from{ transform:translateY(10px); opacity:0; }
    to{ transform:translateY(0); opacity:1; }
  }
  .toast i{ font-size:18px; flex-shrink:0; }
  .toast.success{ border-left:4px solid var(--green); }
  .toast.success i{ color:var(--green); }
  .toast.error{ border-left:4px solid var(--red); }
  .toast.error i{ color:var(--red); }
  .toast.info{ border-left:4px solid var(--ink-3); }
  .toast.info i{ color:var(--ink-3); }

  /* ===================================================== */
  /* BOTTOM NAV (mobile) */
  /* ===================================================== */
  .bottom-nav{
    display:none;
    position:fixed;
    left:0; right:0; bottom:0;
    height:64px;
    background:var(--white);
    border-top:1px solid var(--border);
    z-index:500;
    align-items:stretch;
    justify-content:space-around;
  }
  .bottom-nav-item{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    background:none;
    border:none;
    color:var(--ink-3);
    font-size:10.5px;
    font-weight:600;
    cursor:pointer;
  }
  .bottom-nav-item i{ font-size:19px; }
  .bottom-nav-item.active{ color:var(--green); }

  /* ===================================================== */
  /* MOBILE MENU (Lainnya) - drawer kiri sederhana */
  /* ===================================================== */
  .mobile-menu-drawer{
    position:fixed;
    top:0; right:0; bottom:0;
    width:280px;
    max-width:80%;
    background:var(--white);
    z-index:901;
    transform:translateX(100%);
    transition:transform .2s ease;
    display:flex;
    flex-direction:column;
  }
  .mobile-menu-drawer.show{ transform:translateX(0); }

  /* ===================================================== */
  /* RESPONSIVE */
  /* ===================================================== */
  @media (max-width:1024px){
    .summary-grid{ grid-template-columns:repeat(2,1fr); }
    .quick-actions-grid{ grid-template-columns:repeat(2,1fr); }
    .dashboard-row{ grid-template-columns:1fr; }
  }

  @media (max-width:860px){
    .sidebar{ display:none; }
    .content-area{ margin-left:0; }
    .bottom-nav{ display:flex; }
    .btn-menu-mobile{ display:flex; }
    .topbar-right .topbar-online, .topbar-right .topbar-clock{ display:none; }
    .content-inner{ padding:16px; padding-bottom:88px; }
    .page-header h1{ font-size:20px; }
    .summary-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
    .quick-actions-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
    .drawer{ width:100%; }
    .table-wrap{ display:none; }
    .data-card-list{ display:flex; }
  }

  @media (max-width:480px){
    .summary-grid{ grid-template-columns:1fr 1fr; }
    .summary-value{ font-size:24px; }
  }

  /* Utility */
  .flex-between{ display:flex; align-items:center; justify-content:space-between; }
  .text-muted{ color:var(--ink-3); }
  .mt-0{ margin-top:0; }
  .placeholder-box{
    background:var(--white);
    border:1px dashed var(--border);
    border-radius:var(--r-card);
    padding:60px 20px;
    text-align:center;
    color:var(--ink-3);
  }
  .placeholder-box i{ font-size:36px; margin-bottom:12px; display:block; }

  /* ===================================================== */
  /* KAMBING GRID (Data Kambing) */
  /* ===================================================== */
  .kambing-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
  }
  .kambing-card{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--r-card);
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:12px;
    transition:var(--tr);
  }
  .kambing-card:hover{ box-shadow:var(--shadow-hover); }
  .kambing-card-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
  }
  .kambing-photo{
    width:48px; height:48px;
    border-radius:10px;
    background:var(--tag-bg);
    display:flex; align-items:center; justify-content:center;
    font-size:20px;
    color:var(--ink-3);
    flex-shrink:0;
  }
  .kambing-name{ font-weight:700; font-size:15px; color:var(--ink); }
  .kambing-id{ font-size:12px; color:var(--ink-3); font-weight:500; }
  .kambing-info-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 10px;
    font-size:12.5px;
    color:var(--ink-2);
  }
  .kambing-info-grid .label{ color:var(--ink-3); display:block; font-size:11px; margin-bottom:2px; }
  .kambing-card-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding-top:10px;
    border-top:1px solid var(--border);
  }
  .kambing-card-actions .btn{ width:100%; padding:8px 10px; font-size:12.5px; min-height:38px; }
  .kambing-card-actions .inline-form{display:block;min-width:0;}

  @media (max-width:1024px){
    .kambing-grid{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:860px){
    .kambing-grid{ grid-template-columns:1fr; }
  }

  /* ===================================================== */
  /* SCAN RFID */
  /* ===================================================== */
  .scan-hero{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--r-card);
    padding:48px 24px;
    text-align:center;
    max-width:560px;
    margin:0 auto;
  }
  .scan-hero-icon{
    width:72px; height:72px;
    border-radius:20px;
    background:var(--green-bg);
    color:var(--green);
    display:flex; align-items:center; justify-content:center;
    font-size:34px;
    margin:0 auto 18px auto;
  }
  .scan-hero-title{
    font-family:'Sora',sans-serif;
    font-size:19px;
    font-weight:700;
    color:var(--ink);
    margin-bottom:8px;
  }
  .scan-hero-desc{
    font-size:13.5px;
    color:var(--ink-3);
    margin-bottom:22px;
    line-height:1.5;
  }
  .scan-input-row{
    display:flex;
    gap:10px;
  }
  .scan-input-row input{ flex:1; min-height:46px; text-align:center; font-weight:600; }
  @media (max-width:480px){
    .scan-input-row{ flex-direction:column; }
    .scan-hero{ padding:32px 18px; }
  }

  .scan-result-card{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--r-card);
    padding:20px;
    max-width:560px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .scan-result-top{ display:flex; align-items:center; gap:14px; }
  .scan-result-notfound{
    text-align:center;
    padding:36px 20px;
    max-width:560px;
    margin:0 auto;
    background:var(--red-bg);
    border:1px solid var(--red-border);
    border-radius:var(--r-card);
    color:var(--red);
  }
  .scan-result-notfound i{ font-size:30px; display:block; margin-bottom:10px; }

  /* ===================================================== */
  /* PROFIL KAMBING */
  /* ===================================================== */
  .profil-card{ display:flex; flex-direction:column; gap:16px; }
  .profil-top{
    display:flex;
    align-items:flex-start;
    gap:16px;
    flex-wrap:wrap;
  }
  .profil-photo{
    width:64px; height:64px;
    border-radius:14px;
    background:var(--tag-bg);
    display:flex; align-items:center; justify-content:center;
    font-size:26px;
    color:var(--ink-3);
    flex-shrink:0;
  }
  .profil-info-grid{
    flex:1;
    min-width:220px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px 16px;
    font-size:13px;
    color:var(--ink-2);
  }
  .profil-info-grid .label{ display:block; font-size:11px; color:var(--ink-3); margin-bottom:2px; }
  .profil-action-row{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    padding-top:14px;
    border-top:1px solid var(--border);
  }
  .tab-panel{ display:none; }
  .tab-panel.active{ display:block; }

  .lineage-tree{padding:22px;background:var(--white);border:1px solid var(--border);border-radius:var(--r-card);}
  .lineage-generation{margin-bottom:22px;}
  .lineage-generation:last-child{margin-bottom:0;}
  .lineage-label{text-align:center;font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;margin-bottom:9px;}
  .lineage-grid{display:grid;gap:12px;max-width:900px;margin:0 auto;}
  .lineage-grid-four{grid-template-columns:repeat(4,1fr);}
  .lineage-grid-two{grid-template-columns:repeat(2,1fr);max-width:650px;}
  .lineage-card{display:flex;align-items:center;gap:10px;min-width:0;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-input);color:var(--ink);text-decoration:none;}
  .lineage-card:hover{border-color:var(--green);}
  .lineage-card.is-current{max-width:320px;margin:0 auto;background:var(--green-bg);border-color:var(--green);}
  .lineage-card.is-empty{color:var(--ink-3);}
  .lineage-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex:0 0 34px;border-radius:50%;background:var(--white);color:var(--green);}
  .lineage-card span:last-child{min-width:0;display:flex;flex-direction:column;}
  .lineage-card strong,.lineage-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .lineage-card small{font-size:11px;color:var(--ink-3);}
  .lineage-lists{margin-top:18px;}
  .lineage-scan-card{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;}
  .lineage-scan-form{display:flex;gap:8px;flex:1;max-width:520px;}
  .lineage-scan-form input{flex:1;min-width:180px;text-align:center;font-weight:600;}
  .lineage-list-item{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border);color:var(--ink);text-decoration:none;}
  .lineage-list-item:last-child{border-bottom:0;}
  .lineage-list-item span{display:flex;flex-direction:column;}
  .lineage-list-item small{color:var(--ink-3);}

  [hidden]{display:none !important;}
  .lineage-check-layout{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:center;gap:14px;}
  .lineage-check-panel{align-self:stretch;background:var(--white);border:1px solid var(--border);border-radius:var(--r-card);padding:18px;}
  .lineage-step{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--ink-3);}
  .lineage-step>span{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--tag-bg);font-weight:700;}
  .lineage-step div{display:flex;flex-direction:column;}
  .lineage-step small{font-size:11px;}
  .lineage-step.active{color:var(--ink);}
  .lineage-step.active>span{background:var(--green-bg);color:var(--green);}
  .lineage-step.complete>span{background:var(--green);color:var(--white);}
  .lineage-scan-zone{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--border);border-radius:var(--r-input);padding:20px;color:var(--ink-2);}
  .lineage-scan-zone>i{font-size:34px;color:var(--green);margin-bottom:10px;}
  .lineage-scan-zone small{color:var(--ink-3);margin-top:4px;}
  .lineage-scan-zone.disabled{opacity:.55;}
  .lineage-goat-card{min-height:190px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;border:1px solid var(--green-border);background:var(--green-bg);border-radius:var(--r-input);padding:18px;}
  .lineage-goat-main{display:flex;gap:12px;min-width:0;}
  .lineage-goat-main h3{margin:2px 0 5px;font-size:18px;}
  .lineage-goat-main p{margin:2px 0;color:var(--ink-2);font-size:12px;}
  .lineage-goat-main small{color:var(--green);font-weight:700;}
  .lineage-goat-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 42px;border-radius:50%;background:var(--white);color:var(--green);font-size:19px;}
  .lineage-compare-mark{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--white);border:1px solid var(--border);color:var(--green);font-size:18px;}
  .lineage-check-input{display:flex;gap:9px;max-width:720px;margin:20px auto 0;}
  .lineage-check-input input{flex:1;text-align:center;font-weight:700;letter-spacing:0;}
  .lineage-message{max-width:720px;margin:12px auto 0;padding:11px 14px;border:1px solid var(--red-border);background:var(--red-bg);border-radius:var(--r-input);color:var(--red);font-size:13px;text-align:center;}
  .relationship-result{display:flex;align-items:flex-start;gap:15px;margin-top:20px;padding:20px;border:1px solid;border-radius:var(--r-card);}
  .relationship-result.is-related{background:var(--red-bg);border-color:var(--red-border);color:var(--red);}
  .relationship-result.is-clear{background:var(--green-bg);border-color:var(--green-border);color:var(--green);}
  .relationship-result h2{margin:2px 0 7px;font-size:18px;}
  .relationship-result p{margin:0 0 8px;color:var(--ink-2);}
  .relationship-result small{font-size:11px;font-weight:700;text-transform:uppercase;}
  .relationship-icon{font-size:28px;line-height:1;}

  @media (max-width:600px){
    .profil-info-grid{ grid-template-columns:1fr 1fr; }
    .lineage-tree{padding:14px;}
    .lineage-grid-four{grid-template-columns:1fr 1fr;}
    .lineage-grid-two{grid-template-columns:1fr;}
    .lineage-scan-card,.lineage-scan-form{align-items:stretch;flex-direction:column;max-width:none;}
    .lineage-check-layout{grid-template-columns:1fr;}
    .lineage-compare-mark{margin:-2px auto;transform:rotate(90deg);}
    .lineage-check-input{flex-direction:column;}
  }

  .brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;}
  .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  nav[role=navigation]{margin-top:18px;font-size:13px;color:var(--ink-2);}
  nav[role=navigation] a{text-decoration:none;color:var(--green);font-weight:600;}
  nav[role=navigation] span{color:var(--ink-3);}
  .login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg);}
  .login-card{width:100%;max-width:420px;background:var(--white);border:1px solid var(--border);border-radius:var(--r-card);padding:28px;box-shadow:0 10px 30px rgba(0,0,0,.06);}
  .login-card .brand-logo{margin-bottom:12px;}

  .inline-form{display:inline-flex;margin:0;}
  .form-error{margin-top:6px;color:var(--red);font-size:12px;font-weight:600;}
  .role-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--r-input);font-size:12px;font-weight:700;border:1px solid var(--border);background:var(--bg);color:var(--ink-2);}
  .role-super_admin{background:var(--red-bg);border-color:var(--red-border);color:var(--red);}
  .role-admin{background:var(--green-bg);border-color:var(--green-border);color:var(--green);}
  .table-sub{display:block;margin-top:3px;color:var(--ink-3);font-size:11px;}
  .report-filter{margin-bottom:20px;}
  .report-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:14px;}
  .report-filter-grid .field{margin-bottom:0;}
  .report-filter-actions,.report-export{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;}
  .report-filter-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);}
  .report-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:22px 0 12px;}
  .report-heading h2{margin:0;font-size:18px;}
  .report-heading p{margin:4px 0 0;color:var(--ink-3);font-size:13px;}

  @media (max-width:768px){
    .grid-2{grid-template-columns:1fr;}
    .report-filter-grid{grid-template-columns:1fr 1fr;}
    .report-heading{align-items:stretch;flex-direction:column;}
    .report-export{justify-content:flex-start;}
  }
  @media (max-width:480px){.report-filter-grid{grid-template-columns:1fr;}.report-export .btn{flex:1;}}
