:root{
    --ivory: #FFFFFF;
    --ivory-card: #F6FAFA;
    --teal: #3F97A1;
    --teal-dark: #2C6A73;
    --gold: #ABA67A;
    --gold-light: #D2CBA0;
    --deep: #1F4C52;
    --ink: #262626;
    --ink-soft: #5F6368;
    --line: rgba(0,0,0,0.12);
    --danger: #B3413A;
    --danger-bg: rgba(179,65,58,0.08);
    --ok: #2F7A45;
    --ok-bg: rgba(47,122,69,0.08);
    --warn: #96731F;
    --warn-bg: rgba(171,166,122,0.14);
  }
  *{box-sizing:border-box;}
  body{
    margin:0;background:var(--ivory);color:var(--ink);
    font-family:'Mukta Malar',sans-serif;font-size:15px;line-height:1.5;
  }
  h1,h2,.display{font-family:'Rozha One',serif;font-weight:400;color:var(--teal-dark);margin:0;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;cursor:pointer;}
  input,select,textarea{font-family:inherit;}
  .wrap{max-width:1280px;margin:0 auto;padding:0 28px;}

  .kasavu{height:8px;background:repeating-linear-gradient(90deg,var(--gold) 0 3px,transparent 3px 22px);background-color:var(--teal);}

  header.topbar{background:var(--ivory);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;}
  .topbar-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;max-width:1280px;margin:0 auto;gap:20px;}
  .brand{display:flex;align-items:center;gap:12px;}
  .brand .logo-text{font-family:'Rozha One',serif;font-size:20px;color:var(--teal-dark);}
  .brand .tag{font-size:11px;color:var(--ink-soft);background:var(--ivory-card);border:1px solid var(--line);padding:3px 9px;border-radius:999px;font-weight:600;}
  .topbar-actions{display:flex;gap:12px;align-items:center;}
  .admin-user{font-size:13px;color:var(--ink-soft);}
  .btn{padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600;border:1px solid transparent;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;}
  .btn svg{width:15px;height:15px;flex:none;}
  .btn-primary{background:var(--teal);color:#fff;}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-ghost{background:transparent;color:var(--teal-dark);border-color:var(--teal-dark);}
  .btn-ghost:hover{background:rgba(44,106,115,0.06);}
  .btn-outline{background:var(--ivory);color:var(--ink);border-color:var(--line);}
  .btn-outline:hover{border-color:var(--teal);}
  .btn:disabled{opacity:0.5;cursor:not-allowed;}

  main{padding:32px 0 60px;}
  .page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:22px;}
  .page-head h1{font-size:28px;}
  .page-head p{margin:6px 0 0;color:var(--ink-soft);font-size:14px;}

  .stat-strip{display:flex;gap:14px;margin-bottom:26px;flex-wrap:wrap;}
  .stat-chip{background:var(--ivory-card);border:1px solid var(--line);border-radius:12px;padding:14px 18px;min-width:130px;}
  .stat-chip b{font-family:'Rozha One',serif;font-size:24px;color:var(--teal-dark);display:block;}
  .stat-chip span{font-size:12.5px;color:var(--ink-soft);}

  .toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;}
  .toolbar-left{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
  .toolbar-right{display:flex;gap:10px;flex-wrap:wrap;}
  .search-box{position:relative;}
  .search-box input{
    padding:9px 12px 9px 34px;border:1px solid var(--line);border-radius:8px;font-size:14px;
    width:240px;background:var(--ivory-card);
  }
  .search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--ink-soft);}
  .status-tabs{display:flex;gap:6px;background:var(--ivory-card);border:1px solid var(--line);border-radius:9px;padding:3px;}
  .status-tab{padding:7px 14px;border-radius:6px;font-size:13px;font-weight:600;color:var(--ink-soft);background:none;border:none;}
  .status-tab.active{background:var(--teal);color:#fff;}

  .table-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--ivory);}
  table{width:100%;border-collapse:collapse;font-size:13.5px;}
  thead th{
    text-align:left;background:var(--ivory-card);color:var(--ink-soft);font-weight:700;
    font-size:12px;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap;
  }
  tbody td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle;}
  tbody tr:last-child td{border-bottom:none;}
  tbody tr:hover{background:rgba(63,151,161,0.04);}
  .cell-person{display:flex;align-items:center;gap:12px;}
  .cell-person .avatar{width:38px;height:38px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Rozha One',serif;font-size:14px;border:2px solid var(--gold);}
  .cell-person .who b{display:block;font-size:14px;}
  .cell-person .who span{font-size:12px;color:var(--ink-soft);}
  .place-cell{color:var(--ink-soft);}
  .tag-mini{display:inline-block;font-size:11px;font-weight:600;color:var(--teal-dark);background:rgba(63,151,161,0.1);padding:3px 8px;border-radius:999px;margin:1px 3px 1px 0;}
  .badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;}
  .badge.active{background:var(--ok-bg);color:var(--ok);}
  .badge.suspended{background:var(--danger-bg);color:var(--danger);}
  .badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}
  .date-cell{color:var(--ink-soft);font-size:12.5px;line-height:1.4;}
  .row-actions{display:flex;gap:4px;flex-wrap:wrap;}
  .icon-btn{
    width:30px;height:30px;border-radius:7px;border:1px solid var(--line);background:var(--ivory);
    display:flex;align-items:center;justify-content:center;
  }
  .icon-btn svg{width:14px;height:14px;}
  .icon-btn:hover{border-color:var(--teal);}
  .icon-btn.danger:hover{border-color:var(--danger);}

  .empty-row td{padding:50px 16px;text-align:center;color:var(--ink-soft);}
  .empty-row h3{font-size:17px;color:var(--ink);margin-bottom:6px;}

  .modal-backdrop{position:fixed;inset:0;background:rgba(31,76,82,0.45);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:40px 20px;overflow-y:auto;}
  .modal-backdrop.show{display:flex;}
  .modal{background:var(--ivory);border-radius:16px;max-width:640px;width:100%;padding:0;position:relative;}
  .modal-head{display:flex;justify-content:space-between;align-items:center;padding:22px 26px;border-bottom:1px solid var(--line);}
  .modal-head h2{font-size:20px;}
  .modal-close{background:none;border:none;padding:6px;}
  .modal-close svg{width:18px;height:18px;}
  .modal-body{padding:22px 26px;max-height:70vh;overflow-y:auto;}
  .modal-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 26px;border-top:1px solid var(--line);}
  .modal-foot .meta{font-size:12px;color:var(--ink-soft);}

  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .form-field{display:flex;flex-direction:column;gap:6px;}
  .form-field.full{grid-column:1/-1;}
  .section-divider{margin-top:6px;padding-top:14px;border-top:1px solid var(--line);}
  .section-divider label{font-size:13px;font-weight:700;color:var(--teal-dark);text-transform:uppercase;letter-spacing:.04em;}
  .form-field label{font-size:12.5px;font-weight:700;color:var(--ink);}
  .form-field input[type=text],.form-field input[type=number],.form-field textarea,.form-field select{
    border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:14px;color:var(--ink);background:var(--ivory-card);
  }
  .form-field textarea{resize:vertical;min-height:80px;}
  .check-grid{display:flex;flex-wrap:wrap;gap:8px;}
  .check-pill{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12.5px;background:var(--ivory-card);}
  .check-pill input{accent-color:var(--teal);}
  .toggle-field{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--ivory-card);}
  .switch{position:relative;width:38px;height:22px;background:#D9DCDC;border-radius:999px;flex:none;}
  .switch::after{content:'';position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:3px;left:3px;transition:.15s;}
  .switch.on{background:var(--teal);}
  .switch.on::after{left:19px;}

  .photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
  .photo-slot{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--ivory-card);}
  .photo-slot img{width:100%;height:100%;object-fit:cover;display:block;}
  .photo-slot.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px dashed var(--line);cursor:pointer;color:var(--ink-soft);font-size:10.5px;font-weight:600;text-align:center;padding:6px;}
  .photo-slot.empty:hover{border-color:var(--teal);color:var(--teal-dark);}
  .photo-slot.disabled{cursor:not-allowed;opacity:0.5;}
  .photo-slot.empty svg{width:18px;height:18px;}
  .photo-slot input[type=file]{display:none;}
  .photo-slot .remove-photo{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,0.55);border:none;display:flex;align-items:center;justify-content:center;}
  .photo-slot .remove-photo svg{width:11px;height:11px;}
  .photo-slot .slot-label{position:absolute;bottom:3px;left:5px;font-size:9px;font-weight:700;color:#fff;background:rgba(0,0,0,0.45);padding:1px 6px;border-radius:4px;letter-spacing:.02em;}

  .photo-section{margin-bottom:20px;}
  .photo-section > label{font-size:12.5px;font-weight:700;color:var(--ink);display:block;margin-bottom:8px;}
  .photo-main-box{
    width:100%;aspect-ratio:1/1;max-width:220px;border-radius:12px;border:2px dashed var(--line);
    background:var(--ivory-card);display:flex;align-items:center;justify-content:center;position:relative;
    overflow:hidden;cursor:pointer;
  }
  .photo-main-box img{width:100%;height:100%;object-fit:cover;display:block;}
  .photo-main-box .placeholder{text-align:center;color:var(--ink-soft);font-size:12.5px;padding:10px;}
  .photo-main-box .placeholder svg{width:26px;height:26px;margin:0 auto 6px;display:block;}
  .photo-main-box .remove-photo{
    position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:7px;background:rgba(31,76,82,0.85);
    display:flex;align-items:center;justify-content:center;border:none;
  }
  .photo-main-box .remove-photo svg{width:13px;height:13px;}
  .gallery-row{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap;}
  .gallery-slot{
    width:90px;height:90px;border-radius:9px;border:2px dashed var(--line);background:var(--ivory-card);
    display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer;flex:none;
  }
  .gallery-slot img{width:100%;height:100%;object-fit:cover;display:block;}
  .gallery-slot .plus{color:var(--ink-soft);font-size:22px;line-height:1;}
  .gallery-slot .remove-photo{
    position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:6px;background:rgba(31,76,82,0.85);
    display:flex;align-items:center;justify-content:center;border:none;
  }
  .gallery-slot .remove-photo svg{width:10px;height:10px;}
  .photo-hint{font-size:11.5px;color:var(--ink-soft);margin-top:8px;}

  .import-drop{border:2px dashed var(--line);border-radius:12px;padding:30px;text-align:center;color:var(--ink-soft);}

  .import-drop.drag{border-color:var(--teal);background:rgba(63,151,161,0.05);}
  .import-drop input{display:none;}
  .import-summary{margin-top:16px;font-size:13.5px;}
  .import-summary .ok{color:var(--ok);font-weight:600;}
  .import-summary .warn{color:var(--warn);font-weight:600;}
  .import-errors{margin-top:10px;max-height:140px;overflow-y:auto;font-size:12.5px;color:var(--danger);background:var(--danger-bg);border-radius:8px;padding:10px 12px;}
  .import-errors div{margin-bottom:4px;}
  .csv-help{font-size:12.5px;color:var(--ink-soft);margin-top:10px;line-height:1.6;}
  .csv-help code{background:var(--ivory-card);padding:1px 6px;border-radius:4px;font-size:12px;}

  .toast{
    position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
    background:var(--teal-dark);color:#fff;padding:13px 22px;border-radius:10px;font-size:14px;font-weight:600;
    opacity:0;pointer-events:none;transition:.25s;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,0.15);
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
  .toast.danger{background:var(--danger);}

  .confirm-backdrop{position:fixed;inset:0;background:rgba(31,76,82,0.45);display:none;align-items:center;justify-content:center;z-index:110;padding:20px;}
  .confirm-backdrop.show{display:flex;}
  .confirm-box{background:var(--ivory);border-radius:14px;padding:24px;max-width:360px;width:100%;}
  .confirm-box h3{font-size:17px;margin-bottom:8px;color:var(--ink);font-family:'Mukta Malar',sans-serif;font-weight:700;}
  .confirm-box p{font-size:13.5px;color:var(--ink-soft);margin:0 0 18px;}
  .confirm-actions{display:flex;gap:10px;justify-content:flex-end;}

  @media (max-width:760px){
    .form-grid{grid-template-columns:1fr;}
    .toolbar{flex-direction:column;align-items:stretch;}
    .toolbar-left,.toolbar-right{justify-content:space-between;}
    .search-box input{width:100%;}
    table{font-size:12.5px;}
    thead{display:none;}
    tbody tr{display:block;border-bottom:8px solid var(--ivory-card);}
    tbody td{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line);}
    tbody td::before{content:attr(data-label);font-weight:700;color:var(--ink-soft);font-size:11px;flex:none;}
  }
