@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Telugu:wght@400;600;700&display=swap');
:root{
  --frv3-green:#2e7d32; --frv3-green-lt:#e8f5e9; --frv3-green-md:#a5d6a7;
  --frv3-gold:#f9a825; --frv3-gold-lt:#fff8e1; --frv3-amber:#e65100;
  --frv3-earth:#5d4037; --frv3-earth-lt:#efebe9;
  --frv3-sky:#e3f2fd; --frv3-blue:#1565c0;
  --frv3-red:#c62828; --frv3-red-lt:#ffebee;
  --frv3-border:#c8e6c9; --frv3-bg:#f9fbe7;
  --frv3-font:'Noto Sans Telugu',sans-serif;
  --frv3-shadow:0 2px 12px rgba(46,125,50,.1);
}
*{box-sizing:border-box;margin:0;padding:0;}

#frv3-wrap,#frv3-admin,#frv3-login,#frv3-pub{
  font-family:var(--frv3-font)!important;
  max-width:840px;margin:20px auto;padding:0 12px;color:#212121;
}

/* HEADER */
.frv3-header{background:linear-gradient(135deg,#2e7d32,#1b5e20);color:#fff;text-align:center;padding:28px 20px 22px;border-radius:10px 10px 0 0;}
.frv3-header h1{font-size:24px;font-weight:700;margin-bottom:5px;font-family:var(--frv3-font);}
.frv3-header p{font-size:14px;opacity:.88;font-family:var(--frv3-font);}

/* CARD */
.frv3-card{background:#fff;border:1.5px solid var(--frv3-border);border-radius:10px;padding:20px 18px 16px;margin-bottom:16px;box-shadow:var(--frv3-shadow);}
.frv3-card-title{font-size:16px;font-weight:700;color:var(--frv3-green);margin-bottom:14px;padding-bottom:8px;border-bottom:2px solid var(--frv3-green-lt);font-family:var(--frv3-font);}

/* STEP 1 CATS */
.frv3-cats{display:flex;gap:14px;flex-wrap:wrap;}
.frv3-cat{flex:1;min-width:160px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 14px;border:2.5px solid var(--frv3-border);border-radius:12px;cursor:pointer;background:#fff;transition:all .2s;text-align:center;font-family:var(--frv3-font);}
.frv3-cat input[type="checkbox"]{position:absolute;opacity:0;pointer-events:none;}
.frv3-cat-icon{font-size:36px;}
.frv3-cat-name{font-size:16px;font-weight:700;color:#212121;font-family:var(--frv3-font);}
.frv3-cat-sub{font-size:12px;color:#757575;font-family:var(--frv3-font);}

/* FIELDS */
.frv3-row{display:flex;gap:14px;flex-wrap:wrap;}
.frv3-field{flex:1;min-width:200px;margin-bottom:12px;}
.frv3-field label{display:block;font-size:13px;font-weight:600;color:var(--frv3-earth);margin-bottom:5px;font-family:var(--frv3-font);}
.frv3-field input{width:100%;padding:10px 12px;border:1.5px solid #bdbdbd;border-radius:8px;font-size:14px;font-family:var(--frv3-font);background:#fafafa;transition:border-color .2s;}
.frv3-field input:focus{outline:none;border-color:var(--frv3-green);background:#fff;}
.frv3-req{color:var(--frv3-red);}

/* ITEM ROWS */
.frv3-item-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:10px;background:var(--frv3-bg);border:1px solid var(--frv3-border);border-radius:8px;padding:10px 12px;}
.frv3-iname{flex:2;min-width:130px;padding:8px 10px;border:1.5px solid #bdbdbd;border-radius:6px;font-size:13px;font-family:var(--frv3-font);background:#fff;}
.frv3-iqty,.frv3-irate,.frv3-iacres{width:84px;padding:8px 8px;border:1.5px solid #bdbdbd;border-radius:6px;font-size:13px;font-family:var(--frv3-font);background:#fff;}
.frv3-iacres{border-color:#a5d6a7;background:#f1f8f1;}
.frv3-unit{font-size:11px;color:#757575;white-space:nowrap;font-family:var(--frv3-font);}
.frv3-rem-btn{background:var(--frv3-red-lt);border:none;color:var(--frv3-red);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;flex-shrink:0;}
.frv3-add-btn{background:var(--frv3-green-lt);border:1.5px dashed var(--frv3-green);color:var(--frv3-green);padding:8px 16px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;font-family:var(--frv3-font);margin-top:4px;transition:background .2s;}
.frv3-add-btn:hover{background:var(--frv3-green-md);}

/* WHEN REQUIRED */
.frv3-when-opts{display:flex;gap:14px;flex-wrap:wrap;}
.frv3-when-lbl{flex:1;min-width:150px;display:flex;align-items:center;gap:10px;padding:14px 18px;border:2px solid var(--frv3-border);border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;font-family:var(--frv3-font);background:#fff;transition:all .2s;}
.frv3-when-lbl input[type="radio"]{width:18px;height:18px;accent-color:var(--frv3-green);}
.frv3-when-lbl:has(input:checked){border-color:var(--frv3-green);background:var(--frv3-green-lt);color:var(--frv3-green);}

/* BILL */
.frv3-bill-card{border-color:#a5d6a7;background:var(--frv3-bg);}
.frv3-bill-tbl{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--frv3-font);margin-bottom:14px;}
.frv3-bill-tbl th{background:var(--frv3-green);color:#fff;padding:8px 10px;text-align:left;font-family:var(--frv3-font);}
.frv3-bill-tbl td{padding:7px 10px;border-bottom:1px solid var(--frv3-border);font-family:var(--frv3-font);}

/* EXTRA CATS */
.frv3-extra-box{background:var(--frv3-gold-lt);border:2px dashed var(--frv3-gold);border-radius:10px;padding:14px 16px;margin-bottom:14px;}
.frv3-extra-title{font-size:14px;font-weight:700;color:var(--frv3-amber);margin-bottom:10px;font-family:var(--frv3-font);}
.frv3-extra-opts{display:flex;gap:10px;flex-wrap:wrap;}
.frv3-extra-lbl{flex:1;min-width:160px;display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border:2px solid #ffe082;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;font-family:var(--frv3-font);transition:all .2s;}
.frv3-extra-lbl input[type="checkbox"]{width:18px;height:18px;accent-color:var(--frv3-amber);}
.frv3-extra-lbl:has(input:checked){border-color:var(--frv3-amber);background:#fff3e0;color:var(--frv3-amber);}

/* DELIVERY NOTE */
.frv3-delivery{display:flex;gap:14px;align-items:flex-start;background:var(--frv3-green-lt);border:1.5px solid var(--frv3-green-md);border-radius:10px;padding:14px 16px;font-size:14px;font-family:var(--frv3-font);color:#1b5e20;margin-top:10px;}

/* BUTTONS */
.frv3-btn-green{background:linear-gradient(135deg,#2e7d32,#388e3c);color:#fff;border:none;padding:14px 20px;border-radius:10px;font-size:16px;font-weight:700;font-family:var(--frv3-font);cursor:pointer;box-shadow:0 4px 12px rgba(46,125,50,.25);transition:opacity .2s,transform .1s;}
.frv3-btn-green:hover{opacity:.92;transform:translateY(-1px);}
.frv3-btn-green:disabled{opacity:.6;cursor:not-allowed;}
.frv3-btn-back{background:var(--frv3-earth-lt);border:1.5px solid #bcaaa4;color:var(--frv3-earth);padding:14px 20px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;font-family:var(--frv3-font);}

/* POPUP */
#frv3-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px;}
#frv3-popup{background:#fff;border-radius:14px;padding:28px 24px 20px;max-width:560px;width:100%;max-height:82vh;overflow-y:auto;box-shadow:0 12px 40px rgba(0,0,0,.25);font-family:var(--frv3-font);}
.frv3-popup-title{font-size:18px;font-weight:700;color:var(--frv3-green);margin-bottom:18px;text-align:center;font-family:var(--frv3-font);}

/* SUCCESS */
.frv3-success{text-align:center;background:var(--frv3-green-lt);border:2px solid var(--frv3-green-md);border-radius:14px;padding:52px 24px;font-family:var(--frv3-font);}
.frv3-success h2{font-size:24px;color:var(--frv3-green);margin:16px 0 10px;font-family:var(--frv3-font);}
.frv3-success p{font-size:15px;color:#757575;margin-bottom:20px;font-family:var(--frv3-font);}

/* ══ ADMIN ══════════════════════════════ */
.frv3-login-box{background:#fff;border:2px solid var(--frv3-border);border-radius:14px;padding:36px 28px;max-width:380px;margin:40px auto;text-align:center;box-shadow:var(--frv3-shadow);font-family:var(--frv3-font);}
.frv3-login-box h3{font-size:20px;color:var(--frv3-green);margin:12px 0 6px;font-family:var(--frv3-font);}
.frv3-login-box p{font-size:13px;color:#757575;margin-bottom:14px;font-family:var(--frv3-font);}
.frv3-login-box input{width:100%;padding:11px 14px;font-size:16px;border:2px solid var(--frv3-border);border-radius:8px;margin-bottom:10px;text-align:center;letter-spacing:4px;font-family:var(--frv3-font);}

.frv3-adm-hdr{background:linear-gradient(135deg,#2e7d32,#1b5e20);color:#fff;padding:16px 20px;border-radius:10px 10px 0 0;display:flex;justify-content:space-between;align-items:center;font-size:18px;font-weight:700;font-family:var(--frv3-font);}
.frv3-adm-btn{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.5);color:#fff;padding:7px 14px;border-radius:6px;cursor:pointer;font-size:13px;font-family:var(--frv3-font);}

.frv3-stats{display:flex;gap:12px;margin:14px 0;flex-wrap:wrap;}
.frv3-stat{flex:1;min-width:100px;padding:14px 10px;border-radius:10px;text-align:center;font-size:13px;font-weight:600;font-family:var(--frv3-font);border:2px solid transparent;}
.frv3-sn{font-size:30px;font-weight:700;display:block;margin-bottom:4px;}
.s-tot{background:var(--frv3-sky);color:var(--frv3-blue);border-color:#bbdefb;}
.s-pen{background:var(--frv3-gold-lt);color:var(--frv3-amber);border-color:#ffe082;}
.s-apr{background:var(--frv3-green-lt);color:var(--frv3-green);border-color:var(--frv3-green-md);}
.s-rej{background:var(--frv3-red-lt);color:var(--frv3-red);border-color:#ef9a9a;}

.frv3-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px;align-items:center;}
.frv3-flt{padding:7px 14px;border:1.5px solid var(--frv3-border);background:#fff;border-radius:20px;cursor:pointer;font-size:13px;font-weight:600;font-family:var(--frv3-font);transition:all .2s;color:#212121;}
.frv3-flt.active{background:var(--frv3-green);color:#fff;border-color:var(--frv3-green);}
#frv3-srch{flex:1;min-width:180px;padding:8px 14px;border:1.5px solid var(--frv3-border);border-radius:20px;font-size:13px;font-family:var(--frv3-font);}

.frv3-bulk-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--frv3-earth-lt);padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:13px;font-family:var(--frv3-font);}
.frv3-b-apr{padding:6px 12px;background:var(--frv3-green-lt);color:var(--frv3-green);border:1.5px solid var(--frv3-green-md);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--frv3-font);}
.frv3-b-rej{padding:6px 12px;background:var(--frv3-gold-lt);color:var(--frv3-amber);border:1.5px solid var(--frv3-gold);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--frv3-font);}
.frv3-b-del{padding:6px 12px;background:var(--frv3-red-lt);color:var(--frv3-red);border:1.5px solid #ef9a9a;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--frv3-font);}
.frv3-b-edt{padding:6px 12px;background:var(--frv3-sky);color:var(--frv3-blue);border:1.5px solid #bbdefb;border-radius:6px;font-size:12px;cursor:pointer;font-family:var(--frv3-font);}
.frv3-b-view{background:var(--frv3-green-lt);color:var(--frv3-green);border:1.5px solid var(--frv3-green-md);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:var(--frv3-font);}

.frv3-tbl{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;font-size:13px;font-family:var(--frv3-font);box-shadow:var(--frv3-shadow);}
.frv3-tbl thead tr{background:var(--frv3-green);color:#fff;}
.frv3-tbl th{padding:11px 8px;text-align:left;font-weight:600;font-family:var(--frv3-font);white-space:nowrap;}
.frv3-tbl td{padding:9px 8px;border-bottom:1px solid var(--frv3-border);vertical-align:top;word-break:break-word;font-family:var(--frv3-font);}
.frv3-tbl tr:hover td{background:var(--frv3-bg);}
.frv3-tbl tr:last-child td{border-bottom:none;}
.frv3-badge{padding:3px 10px;border-radius:12px;font-size:12px;font-weight:700;white-space:nowrap;font-family:var(--frv3-font);}
.frv3-badge.pending{background:var(--frv3-gold-lt);color:var(--frv3-amber);}
.frv3-badge.approved{background:var(--frv3-green-lt);color:var(--frv3-green);}
.frv3-badge.rejected{background:var(--frv3-red-lt);color:var(--frv3-red);}

/* MODALS */
#frv3-view-modal,#frv3-edit-modal,#frv3-add-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px;}
.frv3-modal{background:#fff;border-radius:14px;padding:28px 24px;max-width:500px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 12px 40px rgba(0,0,0,.25);font-family:var(--frv3-font);}
.frv3-modal-title{font-size:18px;font-weight:700;color:var(--frv3-green);margin-bottom:16px;font-family:var(--frv3-font);}
.frv3-ef{margin-bottom:12px;font-family:var(--frv3-font);}
.frv3-ef label{display:block;font-size:13px;font-weight:600;color:var(--frv3-earth);margin-bottom:4px;font-family:var(--frv3-font);}
.frv3-ef input{width:100%;padding:9px 12px;border:1.5px solid #bdbdbd;border-radius:7px;font-size:14px;font-family:var(--frv3-font);}

@media(max-width:600px){
  .frv3-cats{gap:8px;} .frv3-cat{min-width:120px;padding:14px 8px;}
  .frv3-iqty,.frv3-irate,.frv3-iacres{width:68px;}
  .frv3-stats{gap:8px;} .frv3-stat{min-width:80px;}
  .frv3-sn{font-size:24px;}
  .frv3-extra-opts{gap:6px;} .frv3-extra-lbl{min-width:140px;}
}
