/* Nuvotrium Trade Manager - front end. Uses theme colour variables with green fallbacks. */
.nv-pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px}
.nv-pcard{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 14px rgba(20,40,15,.08);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.nv-pcard:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(20,40,15,.14)}
.nv-pcard-photo{display:block;aspect-ratio:1/1;overflow:hidden;background:#eef3e8}
.nv-pcard-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.nv-pcard:hover .nv-pcard-photo img{transform:scale(1.05)}
.nv-pcard-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.nv-pcard-body h3{margin:0;font-size:1.15rem}
.nv-pcard-body h3 a{color:var(--nv-dark,#24461B);text-decoration:none}
.nv-pcard-body p{margin:0 0 6px;color:#5a6455;font-size:.92rem;flex:1}
.nv-tag{display:inline-block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--nv-accent,#B8901F)}

.nv-enq{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.nv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:999px;font-weight:600;font-size:.95rem;text-decoration:none;border:2px solid transparent;cursor:pointer;line-height:1.1;transition:filter .15s,transform .15s}
.nv-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.nv-btn svg{width:18px;height:18px;flex:none}
.nv-btn-wa{background:#25D366;color:#fff!important}
.nv-btn-mail{background:var(--nv-primary,#3F7330);color:#fff!important}
.nv-btn-primary{background:var(--nv-primary,#3F7330);color:#fff!important}
.nv-btn-ghost{background:transparent;color:var(--nv-primary,#3F7330)!important;border-color:currentColor}
.nv-enq-sm .nv-btn{padding:8px 13px;font-size:.82rem;flex:1}
.nv-enq-sm .nv-btn svg{width:15px;height:15px}

.nv-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.nv-cat{position:relative;display:flex;align-items:flex-end;min-height:220px;border-radius:16px;overflow:hidden;background-size:cover;background-position:center;text-decoration:none;color:#fff}
.nv-cat:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,40,15,0) 30%,rgba(20,40,15,.85));transition:background .3s}
.nv-cat:hover:before{background:linear-gradient(180deg,rgba(36,70,27,.2),rgba(20,40,15,.9))}
.nv-cat span{position:relative;padding:18px 20px}
.nv-cat b{display:block;font-size:1.35rem}
.nv-cat small{opacity:.9}

/* Forms */
.nv-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.nv-form .full,.nv-form h3,.nv-form .nv-notice{grid-column:1/-1}
.nv-form label{display:block;font-weight:600;font-size:.88rem;margin-bottom:5px;color:#33402e}
.nv-form input,.nv-form select,.nv-form textarea,.nv-track-form input,.nv-portal input[type=text],.nv-portal input[type=password]{width:100%;padding:11px 13px;border:1px solid #cfd9c6;border-radius:9px;font:inherit;background:#fff;box-sizing:border-box}
.nv-form textarea{min-height:120px}
.nv-form input:focus,.nv-form select:focus,.nv-form textarea:focus,.nv-track-form input:focus{outline:2px solid var(--nv-light,#8DB255);border-color:transparent}
.nv-form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.nv-form-actions .nv-enq{margin:0}
.nv-hp{position:absolute!important;left:-9999px!important}
.nv-notice{padding:12px 16px;border-radius:10px;margin:0 0 16px;font-weight:500}
.nv-notice.ok{background:#e7f3dc;color:#24461B;border:1px solid #b9d79c}
.nv-notice.err{background:#fdecea;color:#8a1f11;border:1px solid #f3b8b0}
@media(max-width:640px){.nv-form{grid-template-columns:1fr}}

/* Portal */
.nv-portal-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:24px}
@media(max-width:860px){.nv-portal-grid{grid-template-columns:1fr}}
.nv-card-box{background:#fff;border-radius:16px;padding:26px;box-shadow:0 2px 16px rgba(20,40,15,.08)}
.nv-card-box h2{margin-top:0}
.nv-portal #loginform p{margin:0 0 12px}
.nv-portal #loginform label{display:block;font-weight:600;font-size:.88rem;margin-bottom:5px}
.nv-portal #loginform .login-remember label{display:inline;font-weight:400}
.nv-portal #wp-submit{background:var(--nv-primary,#3F7330);color:#fff;border:0;padding:12px 26px;border-radius:999px;font-weight:600;cursor:pointer}
.nv-portal-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;background:var(--nv-soft,#eef3e8);padding:20px 24px;border-radius:16px;margin-bottom:20px}
.nv-portal-head h2{margin:0}.nv-portal-head p{margin:4px 0 0;color:#5a6455}
.nv-portal-actions{display:flex;gap:10px}
.nv-empty{background:#fff;border:1px dashed #b9cba8;padding:22px;border-radius:14px}
.nv-profile{margin-top:24px}.nv-profile summary{cursor:pointer;font-weight:700}
.nv-profile form{margin-top:16px}

/* Shipment card */
.nv-ship{background:#fff;border-radius:14px;box-shadow:0 2px 14px rgba(20,40,15,.08);margin:0 0 16px;overflow:hidden}
.nv-ship summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:16px 20px;cursor:pointer;list-style:none}
.nv-ship summary::-webkit-details-marker{display:none}
.nv-ship-tn{font-weight:800;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--nv-dark,#24461B)}
.nv-ship-route{flex:1;color:#5a6455}
.nv-badge{display:inline-block;padding:5px 12px;border-radius:999px;background:#e7f3dc;color:#24461B;font-size:.8rem;font-weight:700}
.nv-st-delivered{background:#24461B;color:#fff}
.nv-st-on-hold{background:#fdecea;color:#8a1f11}
.nv-st-in-transit,.nv-st-arrived{background:#fff4d6;color:#7a5a00}
.nv-ship-body{padding:4px 20px 22px;border-top:1px solid #edf1e8}
.nv-progress{height:8px;background:#edf1e8;border-radius:99px;overflow:hidden;margin:18px 0 10px}
.nv-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--nv-light,#8DB255),var(--nv-primary,#3F7330));border-radius:99px}
.nv-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;list-style:none;padding:0;margin:0 0 18px;font-size:.74rem;color:#8a9584;text-align:center}
.nv-steps li:before{content:"";display:block;width:14px;height:14px;border-radius:50%;margin:0 auto 5px;background:#dfe7d6;border:2px solid #fff;box-shadow:0 0 0 1px #cfd9c6}
.nv-steps li.done{color:var(--nv-dark,#24461B);font-weight:700}
.nv-steps li.done:before{background:var(--nv-primary,#3F7330);box-shadow:0 0 0 1px var(--nv-primary,#3F7330)}
@media(max-width:600px){.nv-steps{grid-template-columns:repeat(3,1fr)}}
.nv-ship-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 18px;margin:0 0 14px}
.nv-ship-meta dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:#8a9584}
.nv-ship-meta dd{margin:2px 0 0;font-weight:600}
.nv-ship h4{margin:16px 0 8px}
.nv-timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid #dfe7d6}
.nv-timeline li{position:relative;padding:0 0 16px 14px}
.nv-timeline li:before{content:"";position:absolute;left:-25px;top:3px;width:12px;height:12px;border-radius:50%;background:#cfd9c6;border:2px solid #fff}
.nv-timeline li.latest:before{background:var(--nv-primary,#3F7330);box-shadow:0 0 0 4px rgba(63,115,48,.18)}
.nv-timeline time{display:block;font-size:.82rem;color:#8a9584}
.nv-timeline .loc{font-size:.85rem;color:#5a6455}
.nv-timeline p{margin:4px 0 0}

/* Track */
.nv-track-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;background:#fff;padding:20px;border-radius:16px;box-shadow:0 2px 14px rgba(20,40,15,.08);margin-bottom:20px}
.nv-track-form label{flex:1;min-width:200px}
.nv-track-form label span{display:block;font-weight:600;font-size:.88rem;margin-bottom:5px}
.nv-small{font-size:.9rem;color:#5a6455}
