:root{
	--snc-primary:#0f6e8c;
	--snc-primary-dark:#0a4d63;
	--snc-primary-light:#e7f5f8;
	--snc-accent:#17b3c9;
	--snc-success:#1aa260;
	--snc-warning:#e08a00;
	--snc-danger:#e5484d;
	--snc-bg:#f3f6f9;
	--snc-border:#e3e9ee;
	--snc-radius:16px;
}
.cursor-pointer{cursor:pointer;}
html,body{background:var(--snc-bg);color:#26333d;}
body{font-family:"Segoe UI","Sarabun","Prompt",Tahoma,sans-serif;}

/* ---------- Navbar ---------- */
.snc-navbar{background:#fff;box-shadow:0 2px 10px rgba(15,60,80,.06);position:sticky;top:0;z-index:1030;}
.snc-navbar .navbar-brand{font-weight:700;color:var(--snc-primary-dark)!important;display:flex;align-items:center;gap:.5rem;}
.snc-navbar .navbar-brand i{color:var(--snc-accent);font-size:1.4rem;}
.snc-navbar .nav-link{color:#42525c!important;font-weight:500;border-radius:8px;padding:.5rem .9rem!important;}
.snc-navbar .nav-link.active,.snc-navbar .nav-link:hover{color:var(--snc-primary-dark)!important;background:var(--snc-primary-light);}
.snc-navbar .nav-link i{margin-right:.35rem;color:var(--snc-accent);}

/* ---------- Layout shell ---------- */
.snc-shell{max-width:960px;margin:0 auto;padding:24px 16px 60px;}
.snc-card{background:#fff;border:1px solid var(--snc-border);border-radius:var(--snc-radius);box-shadow:0 4px 18px rgba(15,60,80,.05);padding:24px;margin-bottom:20px;}
.snc-card-head{display:flex;align-items:center;gap:.6rem;margin-bottom:1.1rem;}
.snc-card-head i{font-size:1.3rem;color:var(--snc-accent);}
.snc-card-head h5{margin:0;font-weight:700;color:var(--snc-primary-dark);}

/* ---------- Stepper ---------- */
.snc-stepper{display:flex;list-style:none;padding:0;margin:0 0 26px;}
.snc-stepper li{flex:1;text-align:center;position:relative;font-size:.82rem;color:#93a1ac;}
.snc-stepper li:not(:first-child)::before{content:"";position:absolute;top:18px;left:-50%;width:100%;height:2px;background:var(--snc-border);z-index:0;}
.snc-stepper li.done:not(:first-child)::before{background:var(--snc-success);}
.snc-stepper .circle{width:36px;height:36px;border-radius:50%;background:#fff;border:2px solid var(--snc-border);color:#93a1ac;display:flex;align-items:center;justify-content:center;margin:0 auto 6px;font-weight:700;position:relative;z-index:1;}
.snc-stepper li.active .circle{background:var(--snc-primary);border-color:var(--snc-primary);color:#fff;}
.snc-stepper li.active{color:var(--snc-primary-dark);font-weight:700;}
.snc-stepper li.done .circle{background:var(--snc-success);border-color:var(--snc-success);color:#fff;}
.snc-stepper li.done{color:var(--snc-success);}

/* ---------- Search form ---------- */
.snc-search .input-group-text{background:var(--snc-primary-light);color:var(--snc-primary-dark);border:1px solid var(--snc-border);}
.snc-search .form-control,.snc-search .form-select{border:1px solid var(--snc-border);}
.btn-snc-primary{background:linear-gradient(135deg,var(--snc-primary),var(--snc-accent));border:none;color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(15,110,140,.25);}
.btn-snc-primary:hover{filter:brightness(1.05);color:#fff;}

/* ---------- Trip list (Step 2) ---------- */
.trip-card{border:1px solid var(--snc-border);border-radius:14px;padding:16px 18px;margin-bottom:14px;transition:box-shadow .15s,border-color .15s;background:#fff;}
.trip-card:hover{box-shadow:0 6px 20px rgba(15,60,80,.08);border-color:#cfe6ec;}
.trip-time{font-size:1.35rem;font-weight:700;color:var(--snc-primary-dark);}
.trip-badge-bus{background:var(--snc-primary-light);color:var(--snc-primary-dark);font-weight:600;}
.trip-price{font-size:1.15rem;font-weight:700;color:var(--snc-primary-dark);}
.seat-avail-ok{color:var(--snc-success);font-weight:600;}
.seat-avail-full{color:var(--snc-danger);font-weight:600;}
.trip-warn{color:var(--snc-warning);font-weight:600;}
.ttable-toggle{color:var(--snc-primary);text-decoration:none;font-size:.88rem;}
.ttable-toggle:hover{text-decoration:underline;}
.ttable-box{background:var(--snc-bg);border-radius:10px;padding:10px 14px;margin-top:8px;font-size:.88rem;}

/* ---------- Seat map (Step 3) ---------- */
.seatmap-summary{background:linear-gradient(135deg,var(--snc-primary),var(--snc-primary-dark));color:#fff;border-radius:14px;padding:16px 20px;margin-bottom:18px;}
.seatmap-summary span{opacity:.92;}
.seatmap-legend{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;margin-bottom:14px;font-size:.85rem;color:#546472;}
.seatmap-legend .swatch{display:inline-block;width:16px;height:16px;border-radius:4px;margin-right:6px;vertical-align:-3px;}
.sw-free{background:#fff;border:2px solid #cfd8e0;}
.sw-taken{background:#b7c0c9;}
.sw-selected{background:var(--snc-success);}
.seatmap-frame{background:#fbfdfe;border:1px solid var(--snc-border);border-radius:18px;padding:20px 12px 26px;}
.seatmap-frontlabel{text-align:center;font-size:.8rem;color:#7c8b96;margin-bottom:10px;letter-spacing:.05em;}
.seatmap-frontlabel i{margin-right:4px;}
#div-seat .btn-ml{width:44px;height:44px;padding:0;border-radius:10px;font-weight:600;font-size:.85rem;margin:4px;line-height:1;}
#div-seat .btn-secondary{background:#fff;color:var(--snc-primary-dark);border:2px solid #cfd8e0;}
#div-seat .btn-secondary:hover:not(:disabled){border-color:var(--snc-accent);}
#div-seat .btn-info{background:#b7c0c9;border-color:#b7c0c9;color:#fff;opacity:.9;}
#div-seat .btn-success{background:var(--snc-success)!important;border-color:var(--snc-success)!important;color:#fff!important;}
#lbseatselected{display:block;}
#lbseatselected:empty{display:none;}

/* ---------- Info / line section ---------- */
.snc-info-strip{background:#fff;border:1px solid var(--snc-border);border-radius:14px;padding:16px 20px;font-size:.9rem;color:#42525c;}
.snc-line-card{background:#fff;border:1px solid var(--snc-border);border-radius:14px;padding:18px;text-align:center;}
.snc-line-card img{max-width:90px;height:auto;}
