/* Peyala Web App — shared styles */

:root,
html[data-theme="dark"]{
  --g:#119548; --gd:#0b7a38; --gl:#4ade80;
  --g-soft:rgba(17,149,72,0.12); --g-border:rgba(17,149,72,0.38);
  --bg:#0a140a; --bg2:#0f1e0f; --bg3:#162416;
  --text:#fff; --text-mut:rgba(255,255,255,0.6); --text-dim:rgba(255,255,255,0.35);
  --border:rgba(255,255,255,0.08); --border-strong:rgba(255,255,255,0.16);
  --surface:rgba(255,255,255,0.028);
  --surface-hi:rgba(255,255,255,0.05);
  --nav-bg:rgba(10,20,10,0.9);
  --danger:#ef4444; --warn:#f59e0b; --success:#22c55e;
  --radius-sm:8px; --radius:12px; --radius-lg:20px; --radius-xl:28px;
  --shadow-sm:0 2px 10px rgba(0,0,0,0.3);
  --shadow:0 8px 32px rgba(0,0,0,0.45);
  --shadow-lg:0 24px 60px rgba(0,0,0,0.55);
  --shadow-glow:0 0 32px rgba(17,149,72,0.35);
  --nav-h:68px;
  --container:1240px;
  color-scheme:dark;
}
html[data-theme="light"]{
  --g:#119548; --gd:#0b7a38; --gl:#0b7a38;
  --g-soft:rgba(17,149,72,0.10); --g-border:rgba(17,149,72,0.30);
  --bg:#fafaf7; --bg2:#ffffff; --bg3:#f1f1ec;
  --text:#0a140a; --text-mut:rgba(10,20,10,0.65); --text-dim:rgba(10,20,10,0.42);
  --border:rgba(10,20,10,0.08); --border-strong:rgba(10,20,10,0.16);
  --surface:#ffffff;
  --surface-hi:#f5f5f0;
  --nav-bg:rgba(250,250,247,0.85);
  --shadow-sm:0 1px 3px rgba(10,20,10,0.06);
  --shadow:0 6px 20px rgba(10,20,10,0.08);
  --shadow-lg:0 16px 40px rgba(10,20,10,0.12);
  --shadow-glow:0 0 24px rgba(17,149,72,0.22);
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
@font-face{font-family:'Plumpfull';src:url('/web/fonts/Plumpfull.woff') format('woff');font-weight:normal;font-style:normal;font-display:swap;}
body{font-family:'Nunito Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;}
.font-display{font-family:'Plumpfull','Nunito Sans',sans-serif;letter-spacing:-1px;}
.font-condensed{font-family:'Bebas Neue','Nunito Sans',sans-serif;letter-spacing:1px;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,select,textarea{font:inherit;}
img{display:block;max-width:100%;}

::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:var(--g);}

/* Typography */
.h1{font-size:clamp(28px,4vw,42px);font-weight:900;letter-spacing:-1.5px;line-height:1.1;}
.h2{font-size:clamp(22px,3vw,32px);font-weight:800;letter-spacing:-1px;line-height:1.2;}
.h3{font-size:18px;font-weight:700;letter-spacing:-0.3px;}
.text-mut{color:var(--text-mut);} .text-dim{color:var(--text-dim);}
.text-accent{color:var(--gl);} .text-danger{color:var(--danger);} .text-success{color:var(--success);}
.eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2.5px;color:var(--g);margin-bottom:10px;}

/* Layout */
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.page{min-height:calc(100vh - var(--nav-h));padding:40px 0 80px;}
.page-tight{max-width:520px;margin:0 auto;}
.divider{height:1px;background:var(--border);margin:24px 0;}

/* NAV */
.app-nav{position:sticky;top:0;z-index:100;height:var(--nav-h);background:var(--nav-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);}
.app-nav-inner{max-width:var(--container);height:100%;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:28px;}
.app-nav-logo{font-size:22px;font-weight:900;color:var(--g);letter-spacing:-1px;display:inline-flex;align-items:center;gap:8px;line-height:1;}
.app-nav-logo-mark{width:30px;height:30px;object-fit:contain;display:block;}
.app-nav-links{display:flex;gap:24px;}
.app-nav-links a{font-size:14px;font-weight:500;color:var(--text-mut);transition:color 0.2s;position:relative;padding:4px 0;}
.app-nav-links a:hover,.app-nav-links a.active{color:var(--text);}
.app-nav-links a.active::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--g);border-radius:2px;}
.app-nav-spacer{flex:1;}
.app-nav-right{display:flex;align-items:center;gap:10px;}
.nav-cart{position:relative;padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--text-mut);transition:all 0.2s;display:inline-flex;align-items:center;gap:8px;}
.nav-icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-mut);cursor:pointer;transition:all 0.2s;padding:0;text-decoration:none;}
.nav-icon-btn:hover{color:var(--text);border-color:var(--g-border);background:var(--surface-hi);}
.nav-icon-btn.active{color:var(--g);border-color:var(--g-border);background:var(--g-soft);}
.nav-icon-btn svg{width:18px;height:18px;}
.nav-bell{position:relative;}
.nav-bell-dot{position:absolute;top:5px;right:5px;width:9px;height:9px;border-radius:50%;background:#ef4444;border:2px solid var(--nav-bg, var(--bg));box-shadow:0 0 0 1px rgba(239,68,68,0.4);}

.app-verify-banner{background:linear-gradient(90deg,rgba(245,158,11,0.14),rgba(245,158,11,0.06));border-bottom:1px solid rgba(245,158,11,0.35);position:sticky;top:var(--nav-h);z-index:8;}
.app-verify-inner{display:flex;align-items:center;gap:12px;padding:10px 24px;}
.app-verify-icon{width:28px;height:28px;border-radius:8px;background:rgba(245,158,11,0.22);color:#f59e0b;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.app-verify-msg{flex:1;font-size:13px;color:var(--text);font-weight:500;}
.app-verify-cta{padding:6px 14px;background:#f59e0b;color:#1c1000;border-radius:999px;font-size:12px;font-weight:800;text-decoration:none;letter-spacing:0.3px;transition:all 0.18s;}
.app-verify-cta:hover{background:#fbbf24;transform:translateY(-1px);}
.app-verify-close{width:24px;height:24px;border-radius:6px;background:transparent;border:none;color:var(--text-mut);font-size:20px;line-height:1;cursor:pointer;font-family:inherit;transition:color 0.18s;}
.app-verify-close:hover{color:var(--text);}
@media(max-width:540px){
  .app-verify-inner{flex-wrap:wrap;padding:10px 16px;}
  .app-verify-msg{font-size:12px;order:3;width:100%;margin-top:4px;}
}
.theme-toggle{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-mut);cursor:pointer;transition:all 0.2s;padding:0;}
.theme-toggle:hover{color:var(--text);border-color:var(--g-border);background:var(--surface-hi);}
.theme-toggle svg{width:18px;height:18px;}
html[data-theme="dark"] .theme-toggle .icon-sun{display:block;}
html[data-theme="dark"] .theme-toggle .icon-moon{display:none;}
html[data-theme="light"] .theme-toggle .icon-sun{display:none;}
html[data-theme="light"] .theme-toggle .icon-moon{display:block;}
.nav-cart:hover{border-color:var(--g-border);color:var(--text);}
.nav-cart-badge{background:var(--g);color:#fff;font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;min-width:18px;text-align:center;}
.nav-user{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);transition:all 0.2s;}
.nav-user:hover{border-color:var(--g-border);}
.nav-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--g);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;}
.nav-user-avatar img{width:100%;height:100%;object-fit:cover;}
.nav-user-name{font-size:13px;font-weight:600;color:var(--text);}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:700;padding:12px 22px;border-radius:var(--radius);cursor:pointer;transition:all 0.22s;border:1px solid transparent;white-space:nowrap;text-decoration:none;line-height:1;}
.btn-primary{background:var(--g);color:#fff;box-shadow:0 0 28px rgba(17,149,72,0.3);}
.btn-primary:hover:not(:disabled){background:var(--gd);transform:translateY(-2px);box-shadow:0 0 42px rgba(17,149,72,0.5);}
.btn-outline{background:transparent;color:var(--text);border-color:var(--border-strong);}
.btn-outline:hover:not(:disabled){border-color:var(--g);color:var(--g);}
.btn-ghost{background:transparent;color:var(--text-mut);}
.btn-ghost:hover:not(:disabled){color:var(--text);background:rgba(255,255,255,0.04);}
.btn-danger{background:var(--danger);color:#fff;}
.btn-danger:hover:not(:disabled){background:#dc2626;}
.btn-lg{font-size:16px;padding:15px 32px;}
.btn-sm{font-size:12px;padding:8px 14px;}
.btn-block{width:100%;}
.btn:disabled{opacity:0.5;cursor:not-allowed;transform:none !important;}

/* Keyboard focus — visible ring on any interactive element */
button:focus-visible,a:focus-visible,[role="button"]:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gl);outline-offset:2px;border-radius:var(--radius-sm);}
.btn:focus-visible{outline-offset:3px;}

/* Forms */
.form-group{margin-bottom:18px;}
.form-label{display:block;font-size:12px;font-weight:700;color:var(--text-mut);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}
.form-input,.form-select,.form-textarea{width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:13px 16px;font-size:14px;color:var(--text);transition:all 0.2s;outline:none;}
html[data-theme="light"] .form-input,html[data-theme="light"] .form-select,html[data-theme="light"] .form-textarea{background:#ffffff;}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-dim);}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--g);background:rgba(17,149,72,0.04);box-shadow:0 0 0 3px rgba(17,149,72,0.12);}
.form-textarea{resize:vertical;min-height:100px;}
.form-input[readonly]{opacity:0.7;cursor:not-allowed;}
.form-help{font-size:12px;color:var(--text-dim);margin-top:6px;}
.form-error{font-size:12px;color:var(--danger);margin-top:6px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-phone{display:grid;grid-template-columns:120px 1fr;gap:10px;}
.form-otp{display:flex;gap:10px;justify-content:center;direction:ltr;}
.form-otp input{width:50px;height:56px;text-align:center;font-size:22px;font-weight:700;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);outline:none;transition:all 0.2s;padding:0;}
html[data-theme="light"] .form-otp input{background:#ffffff;}
.form-otp input:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(17,149,72,0.15);}

/* Cards */
.card{background:rgba(255,255,255,0.028);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;}
.card-hover{transition:all 0.3s;}
.card-hover:hover{border-color:var(--g-border);transform:translateY(-4px);box-shadow:var(--shadow);}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:0.3px;}
.badge-green{background:var(--g-soft);border:1px solid var(--g-border);color:var(--gl);}
.badge-neutral{background:rgba(255,255,255,0.05);border:1px solid var(--border);color:var(--text-mut);}
.badge-danger{background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.4);color:#fca5a5;}
.badge-warn{background:rgba(245,158,11,0.12);border:1px solid rgba(245,158,11,0.4);color:#fcd34d;}

/* Empty state */
.empty{text-align:center;padding:60px 24px;}
.empty-icon{font-size:48px;margin-bottom:14px;opacity:0.5;}
.empty-title{font-size:18px;font-weight:800;margin-bottom:8px;}
.empty-desc{font-size:14px;color:var(--text-mut);max-width:360px;margin:0 auto 20px;line-height:1.6;}

/* Skeleton */
.skeleton{background:linear-gradient(90deg,rgba(255,255,255,0.04) 0%,rgba(255,255,255,0.08) 50%,rgba(255,255,255,0.04) 100%);background-size:200% 100%;animation:skel 1.4s ease infinite;border-radius:var(--radius-sm);}
@keyframes skel{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

/* Toast */
.toast-wrap{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none;}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;background:var(--bg2);border:1px solid var(--border);border-left:4px solid var(--g);border-radius:var(--radius);padding:14px 18px;min-width:280px;max-width:400px;box-shadow:var(--shadow);animation:toastIn 0.3s ease;}
.toast-icon{font-size:18px;line-height:1;}
.toast-body{flex:1;font-size:14px;font-weight:500;line-height:1.5;}
.toast-close{color:var(--text-dim);font-size:18px;cursor:pointer;padding:0 4px;line-height:1;}
.toast-close:hover{color:var(--text);}
.toast-error{border-left-color:var(--danger);}
.toast-warn{border-left-color:var(--warn);}
@keyframes toastIn{from{transform:translateX(100%);opacity:0;}to{transform:translateX(0);opacity:1;}}

/* Loading overlay */
.loading-overlay{position:fixed;inset:0;background:rgba(10,20,10,0.72);backdrop-filter:blur(6px);z-index:9998;display:flex;align-items:center;justify-content:center;}
.spinner{width:40px;height:40px;border:3px solid rgba(17,149,72,0.2);border-top-color:var(--g);border-radius:50%;animation:spin 0.7s linear infinite;}
.spinner-sm{width:18px;height:18px;border-width:2px;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(8px);z-index:9500;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn 0.22s ease;}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-xl);max-width:460px;width:100%;max-height:90vh;overflow-y:auto;animation:modalIn 0.26s ease;}
.modal-head{padding:22px 26px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);}
.modal-title{font-size:17px;font-weight:800;}
.modal-close{color:var(--text-dim);font-size:22px;cursor:pointer;padding:0 6px;line-height:1;}
.modal-close:hover{color:var(--text);}
.modal-body{padding:22px 26px;font-size:14px;color:var(--text-mut);line-height:1.7;}
.modal-foot{padding:14px 26px 22px;display:flex;gap:10px;justify-content:flex-end;}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes modalIn{from{transform:scale(0.95);opacity:0;}to{transform:scale(1);opacity:1;}}

/* Footer */
.app-footer{background:var(--footer-bg);border-top:1px solid var(--border);padding:32px 24px;margin-top:80px;}
.app-footer-inner{max-width:var(--container);margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;}
.app-footer-logo{display:inline-flex;align-items:center;gap:10px;font-size:20px;font-weight:900;color:var(--g);letter-spacing:-1px;text-decoration:none;}
.app-footer-logo:hover{color:var(--gl);}
.app-footer-logo-mark{width:28px;height:28px;border-radius:50%;display:block;flex-shrink:0;}
.app-footer-links{display:flex;gap:26px;flex-wrap:wrap;}
.app-footer-links a{font-size:13px;color:var(--text-dim);transition:color 0.2s;}
.app-footer-links a:hover{color:var(--text);}
.app-footer-copy{font-size:12px;color:var(--text-dim);opacity:0.7;}
html[data-theme="dark"]{--footer-bg:#050d05;}
html[data-theme="light"]{--footer-bg:#f5f5ef;}

/* Utilities */
.flex{display:flex;} .flex-col{display:flex;flex-direction:column;} .inline-flex{display:inline-flex;}
.items-center{align-items:center;} .items-start{align-items:flex-start;}
.justify-between{justify-content:space-between;} .justify-center{justify-content:center;} .justify-end{justify-content:flex-end;}
.gap-2{gap:8px;} .gap-3{gap:12px;} .gap-4{gap:16px;} .gap-5{gap:20px;} .gap-6{gap:24px;}
.mt-2{margin-top:8px;} .mt-3{margin-top:12px;} .mt-4{margin-top:16px;} .mt-6{margin-top:24px;} .mt-8{margin-top:32px;} .mt-10{margin-top:40px;}
.mb-2{margin-bottom:8px;} .mb-3{margin-bottom:12px;} .mb-4{margin-bottom:16px;} .mb-6{margin-bottom:24px;}
.hidden{display:none !important;}
.text-center{text-align:center;}
.w-full{width:100%;}

/* Responsive */
@media(max-width:768px){
  .app-nav-links{display:none;}
  .app-nav-inner{gap:12px;padding:0 16px;}
  .nav-user-name{display:none;}
  .form-row{grid-template-columns:1fr;}
  .app-footer-inner{flex-direction:column;text-align:center;}
  .app-footer-links{justify-content:center;}
  .container{padding:0 16px;}
}
