/**
 * @file index.css
 * @description Tech Angular dark theme rewrite
 */

/* ===== Project Switcher Bar (Hero top) ===== */
.hero-left{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.proj-bar{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:6px;padding:8px 12px;background:rgba(18,18,26,.85);backdrop-filter:blur(14px);border-radius:0;max-width:520px;position:relative;margin:0 0 16px;z-index:3;box-shadow:none;border:1px solid #1e293b;border-left:3px solid #3b82f6}
.proj-btn{padding:9px 22px;border-radius:0;font-size:14px;font-weight:600;color:#b8c4d0;cursor:pointer;transition:all .25s ease;text-decoration:none;white-space:nowrap;user-select:none;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.proj-btn:hover{background:rgba(59,130,246,.08);color:#e2e8f0}
.proj-btn.active{background:#3b82f6;color:#fff;box-shadow:0 0 12px rgba(59,130,246,.3)}
.hero-btns .btn-coming-soon{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.8rem 1.8rem;border-radius:0;font-weight:600;font-size:0.95rem;font-family:inherit;background:#1e293b;color:#6b7d94;border:1px solid #1e293b;cursor:not-allowed;pointer-events:none;user-select:none;box-shadow:none;opacity:0.92}
@media(max-width:560px){.proj-bar{flex-wrap:wrap;max-width:340px;gap:4px;padding:6px 8px}.proj-btn{padding:7px 14px;font-size:13px}}

/* ===== Project Hero Cards ===== */
.proj-card{background:#12121a;border-radius:0;border:1px solid #1e293b;box-shadow:none;overflow:hidden;width:100%;max-width:420px;border-left:3px solid #3b82f6}
.proj-card-header{padding:14px 20px;font-size:13px;font-weight:700;color:#e2e8f0;border-bottom:1px solid #1e293b;display:flex;align-items:center;gap:8px}
.proj-card-header i{color:#3b82f6;font-size:14px}
.proj-card-body{padding:20px}
.proj-card-footer{padding:12px 20px;border-top:1px solid #1e293b;display:flex;gap:16px;font-size:11px;color:#b8c4d0}
.proj-card-footer b{color:#e2e8f0;font-weight:700}
.proj-score-ring{display:flex;justify-content:center;margin-bottom:16px}
.proj-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.proj-metric{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:0;background:rgba(59,130,246,.04);font-size:11px;border:1px solid rgba(30,41,59,.5)}
.proj-metric i{font-size:12px;width:16px;text-align:center;color:#3b82f6}
.proj-metric-label{flex:1;color:#b8c4d0}
.proj-metric-val{font-weight:700;font-size:12px;color:#e2e8f0}

/* Table (club-order) */
.proj-table{width:100%;border-collapse:collapse;font-size:12px}
.proj-table th{text-align:left;padding:8px 16px;font-size:10px;font-weight:600;color:#b8c4d0;text-transform:uppercase;letter-spacing:.05em;background:rgba(59,130,246,.04);border-bottom:1px solid #1e293b;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.proj-table td{padding:10px 16px;border-bottom:1px solid rgba(30,41,59,.5);color:#e2e8f0}
.proj-table tr:last-child td{border-bottom:none}
.proj-table tr:hover td{background:rgba(59,130,246,.04)}
.proj-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:middle}

/* Game grid (club-game) */
.proj-game-grid{display:flex;flex-direction:column;gap:10px}
.proj-game-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:0;background:rgba(59,130,246,.03);transition:background .2s;border:1px solid rgba(30,41,59,.5)}
.proj-game-item:hover{background:rgba(59,130,246,.08)}
.proj-game-icon{width:40px;height:40px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.proj-game-info{flex:1;min-width:0}
.proj-game-name{font-size:13px;font-weight:600;color:#e2e8f0}
.proj-game-desc{font-size:10px;color:#b8c4d0;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proj-game-players{font-size:10px;color:#06b6d4;font-weight:600;white-space:nowrap;font-family:"JetBrains Mono","Noto Sans SC",monospace}
/* ===== Global Reset & Variables ===== */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px;overflow-x:hidden}
:root{--bg:#0a0a0f;--bg2:#0e0e16;--bg3:#12121a;--card:#12121a;--text:#e2e8f0;--body:#94a3b8;--accent:#3b82f6;--accent2:#2563eb;--hover:#2563eb;--border:#1e293b;--shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 8px 32px rgba(0,0,0,.4);--shadow-lg:0 20px 60px rgba(0,0,0,.5);--blue:#3b82f6;--cyan:#06b6d4;--purple:#8b5cf6;--indigo:#6366f1;--danger:#ef4444;--radius:0px;--radius-sm:0px}
body{background:var(--bg);color:var(--text);font-family:"Noto Sans SC",sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}
a{text-decoration:none;color:inherit;transition:color .3s}
::selection{background:var(--accent);color:#fff}
body::before{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Nav */
.nav{position:fixed;top:0;left:0;width:100%;height:72px;background:rgba(10,10,15,.92);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);display:flex;align-items:center;justify-content:center;z-index:100;border-bottom:1px solid #1e293b;box-shadow:0 2px 20px rgba(0,0,0,.3)}
.nav-inner{width:100%;max-width:1100px;padding:0 32px;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:0.5rem;font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:20px;font-weight:700;color:#e2e8f0}
.nav-logo span{color:#3b82f6}
.nav-links{display:flex;gap:6px;list-style:none;font-size:13px;font-weight:500;letter-spacing:.03em}
.nav-links a{color:rgba(226,232,240,.55);font-size:13px;padding:8px 14px;border-radius:0;background:rgba(255,255,255,.03);transition:all .3s;display:inline-flex;align-items:center;gap:7px;border:1px solid transparent}
.nav-links a:hover{background:rgba(59,130,246,.08);color:#e2e8f0;border-color:#1e293b}
.nav-links a.active{background:#3b82f6;color:#fff;font-weight:600;box-shadow:0 0 12px rgba(59,130,246,.3);border-color:#3b82f6}
.nav-links a::after,.nav-links a:hover::after,.nav-links a.active::after{display:none !important}
.nav-links a i{font-size:14px}
.nav-mobile{display:none;background:none;border:none;font-size:20px;color:#e2e8f0;cursor:pointer}
.mobile-menu{display:none;position:fixed;inset:0;top:72px;background:rgba(10,10,15,.98);backdrop-filter:blur(20px);z-index:99;flex-direction:column;align-items:center;padding-top:48px;gap:12px}
.mobile-menu.active{display:flex}
.mobile-menu a{font-size:15px;color:rgba(226,232,240,.55);font-weight:500;padding:10px 24px;border-radius:0;background:rgba(255,255,255,.03);display:inline-flex;align-items:center;gap:8px;transition:all .3s;border:1px solid transparent}
.mobile-menu a:hover{color:#e2e8f0;background:rgba(59,130,246,.08);border-color:#1e293b}
.mobile-menu a.active{color:#fff;background:#3b82f6;box-shadow:0 0 12px rgba(59,130,246,.3)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border-radius:0;font-size:15px;font-weight:500;letter-spacing:.03em;cursor:pointer;transition:all .4s;border:none;font-family:inherit;position:relative;overflow:hidden}
.btn-primary{background:#3b82f6;color:#fff;box-shadow:0 0 16px rgba(59,130,246,.2);border:1px solid #3b82f6}
.btn-primary:hover{background:#2563eb;transform:translateY(-3px);box-shadow:0 0 24px rgba(59,130,246,.35);color:#fff}
.btn-primary::before{display:none}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.12) 50%,transparent 70%);transform:translateX(-100%);transition:transform .6s}
.btn-primary:hover::after{transform:translateX(100%)}
.btn-outline{background:transparent;color:#e2e8f0;border:1.5px solid #1e293b}
.btn-outline:hover{border-color:#3b82f6;color:#3b82f6;box-shadow:0 0 16px rgba(59,130,246,.1)}
/* ===== Booking Modal ===== */
.booking-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;padding:20px;overflow-x:hidden;overflow-y:auto}
.booking-overlay.active{display:flex}
.booking-modal{position:relative;width:100%;max-width:860px;overflow:hidden;background:transparent;border-radius:0;padding:0;animation:bk-modalIn .35s ease-out;box-shadow:none;box-sizing:border-box}
@keyframes bk-modalIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.booking-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:0;border:1px solid #1e293b;background:rgba(18,18,26,.8);color:#b8c4d0;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10;line-height:1}
.booking-close:hover{background:rgba(59,130,246,.15);color:#e2e8f0;border-color:#3b82f6}
.booking-modal .btn{display:block;padding:12px 0;border-radius:0;font-size:.9rem;font-weight:600;letter-spacing:0;overflow:visible;position:static;gap:0}
.booking-modal .btn::after{display:none}
.booking-modal .btn-primary{box-shadow:none}
.booking-modal .btn-primary:hover{transform:none;box-shadow:none}
.booking-modal .container{width:100%;max-width:460px}
.booking-modal h1{font-size:1.15rem;font-weight:700;text-align:center;margin-bottom:16px;color:#3b82f6;letter-spacing:.5px;font-family:"JetBrains Mono","Noto Sans SC",monospace}

/* Progress steps */
.booking-modal .progress{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:0;max-width:100%;position:relative}
.booking-modal .step-dot{width:36px;height:36px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:var(--body);background:var(--card);border:2px solid var(--border);transition:all .35s cubic-bezier(.34,1.56,.64,1);position:relative;z-index:1;flex-shrink:0}
.booking-modal .step-dot.active{background:#3b82f6;color:#fff;border-color:#3b82f6;transform:none !important;box-shadow:0 0 12px rgba(59,130,246,.3)}
.booking-modal .step-dot.active::before,.booking-modal .step-dot.active::after{content:"";position:absolute;inset:-3px;border-radius:0;border:2px solid rgba(59,130,246,.50);pointer-events:none}
.booking-modal .step-dot.active::before{animation:bk-step-ripple 3.2s cubic-bezier(.22,.61,.36,1) infinite}
.booking-modal .step-dot.active::after{animation:bk-step-ripple 3.2s cubic-bezier(.22,.61,.36,1) 1.6s infinite}
@keyframes bk-step-ripple{0%{transform:scale(1);opacity:.50}35%{opacity:.24}100%{transform:scale(1.45);opacity:0}}
.booking-modal .step-dot.done{background:#3b82f6;color:#fff;border-color:#3b82f6}
.booking-modal .step-dot.done::after{content:none}
.booking-modal .step-dot.done i{display:inline}
.booking-modal .bk-step-line{display:block;flex:1 1 0;max-width:64px;height:4px;margin:0 6px;align-self:center;background:#1e293b;position:relative;border-radius:0;overflow:hidden}
.booking-modal .bk-step-line::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,#2563eb,#3b82f6);transition:width .62s cubic-bezier(.22,.61,.36,1)}
.booking-modal .bk-step-line::after{content:none;display:none}
.booking-modal .bk-step-line.done{background:#1e293b}
.booking-modal .bk-step-line.done::before{width:100%}
.booking-modal .step-labels{display:flex;justify-content:space-between;margin-top:8px;position:relative}
.booking-modal .step-label{font-size:.7rem;color:var(--body);text-align:center;width:36px;position:absolute;transform:translateX(-50%);white-space:nowrap}

/* Panels */
.booking-modal .panels{position:relative;overflow:hidden}
.booking-modal .panel{display:none;opacity:0;transform:translateX(40px);transition:opacity .3s ease,transform .3s ease}
.booking-modal .panel.entering-left{transform:translateX(-40px);opacity:0}
.booking-modal .panel.entering-right{transform:translateX(40px);opacity:0}
.booking-modal .panel.active{display:block;opacity:1;transform:translateX(0)}
.booking-modal .card{background:transparent;border-radius:0;padding:0;border:none;box-shadow:none;transition:none}
.booking-modal .card:hover{border-color:transparent;box-shadow:none}
.booking-modal .card-title{font-size:.95rem;font-weight:600;margin-bottom:12px;color:#e2e8f0}

/* Fields */
.booking-modal .field{margin-bottom:8px}
.booking-modal .field label{display:block;font-size:.85rem;font-weight:500;color:#e2e8f0;margin-bottom:6px}
.booking-modal .field label .req{color:var(--danger);margin-left:2px}
.booking-modal .field input,.booking-modal .field select{width:100%;padding:10px 14px;border:1.5px solid #1e293b;border-radius:0;font-size:.9rem;color:#e2e8f0;background:#0e0e16;transition:border-color .2s;font-family:inherit}
.booking-modal .field input:focus,.booking-modal .field select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 8px rgba(59,130,246,.15)}
.booking-modal .field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%233b82f6' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}

/* Btn row inside modal */
.booking-modal .btn-row{display:flex;gap:10px;margin-top:14px}
.booking-modal .btn{flex:1;padding:12px 0;border:none;border-radius:0;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,opacity .2s,transform .1s;font-family:inherit}
.booking-modal .btn:active{transform:scale(.97)}
.booking-modal .btn-primary{background:#3b82f6;color:#fff}
.booking-modal .btn-primary:hover{background:#2563eb}
.booking-modal .btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}
.booking-modal .btn-secondary{background:transparent;color:#3b82f6;border:1.5px solid #1e293b}
.booking-modal .btn-secondary:hover{border-color:#3b82f6}
/* ===== Upload area ===== */
.booking-modal .upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.booking-modal .upload-box{border:2px dashed #1e293b;border-radius:0;aspect-ratio:1/1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s,background .2s;overflow:hidden;position:relative;background:#0e0e16}
.booking-modal .upload-box:hover{border-color:#3b82f6;background:rgba(59,130,246,.04)}
.booking-modal .upload-box.has-image{border-style:solid;border-color:#3b82f6;padding:0}
.booking-modal .upload-box.has-image img{width:100%;height:100%;object-fit:cover;display:block}
.booking-modal .upload-box .icon{font-size:1.4rem;color:#3b82f6;margin-bottom:4px;opacity:.6}
.booking-modal .upload-box .label{font-size:.65rem;color:var(--body);text-align:center;padding:0 6px}
.booking-modal .upload-box.has-image .icon,.booking-modal .upload-box.has-image .label{display:none}
.booking-modal .upload-box input[type=file]{display:none}
.booking-modal .upload-box .remove-btn{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:0;background:rgba(0,0,0,.7);color:#fff;border:1px solid #1e293b;font-size:.75rem;cursor:pointer;display:none;align-items:center;justify-content:center;line-height:1}
.booking-modal .upload-box .manage-btn{position:absolute;bottom:6px;right:6px;min-width:42px;height:22px;border-radius:0;background:rgba(0,0,0,.7);color:#fff;border:1px solid #1e293b;font-size:.62rem;cursor:pointer;display:none;padding:0 8px;line-height:1}
.booking-modal .upload-box.has-image .remove-btn{display:flex}
.booking-modal .upload-box.has-image .manage-btn{display:inline-flex;align-items:center;justify-content:center}

/* Image gallery */
.booking-modal .upload-gallery{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.booking-modal .upload-gallery-row{border:1px solid #1e293b;border-radius:0;padding:8px;background:#0e0e16}
.booking-modal .upload-gallery-head{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--body);margin-bottom:6px}
.booking-modal .upload-gallery-list{display:flex;flex-wrap:wrap;gap:6px}
.booking-modal .upload-gallery-item{width:58px;height:58px;border-radius:0;overflow:hidden;position:relative;border:1px solid #1e293b;background:#12121a}
.booking-modal .upload-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.booking-modal .upload-gallery-del{position:absolute;top:2px;right:2px;width:16px;height:16px;border:none;border-radius:0;background:rgba(0,0,0,.75);color:#fff;font-size:10px;cursor:pointer}

/* Payment */
.booking-modal .amount{text-align:center;font-size:1.4rem;font-weight:700;color:#3b82f6;margin-bottom:24px;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.booking-modal .pay-methods{display:flex;flex-direction:column;gap:12px}
.booking-modal .pay-card{padding:16px 18px;border:1.5px solid #1e293b;border-radius:0;cursor:pointer;transition:all .25s;display:flex;align-items:center;gap:14px;background:#12121a}
.booking-modal .pay-card:hover{border-color:#3b82f6}
.booking-modal .pay-card.selected{border-color:#3b82f6;background:rgba(59,130,246,.08);box-shadow:0 0 0 2px rgba(59,130,246,.15)}
.booking-modal .pay-card .pay-icon{font-size:1.5rem;flex-shrink:0}
.booking-modal .pay-card .pay-name{font-weight:600;font-size:.9rem;color:#e2e8f0}
.booking-modal .pay-card .pay-desc{font-size:.75rem;color:var(--body)}
.booking-modal .pay-card.coming-soon{opacity:.55;cursor:not-allowed;filter:grayscale(.2);pointer-events:none}
.booking-modal .pay-card.coming-soon:hover{border-color:#1e293b;transform:none}
.booking-modal .pay-card.coming-soon .pay-desc{color:#6b7d94}
.booking-modal .pay-detail{margin-top:18px;animation:bk-fadeUp .3s ease}
@keyframes bk-fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.qr-placeholder{width:180px;height:180px;background:#1e293b;border-radius:0;display:flex;align-items:center;justify-content:center;color:var(--body);font-size:.85rem;margin:0 auto 16px}

/* Checkbox / code input */
.booking-modal .checkbox-row{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:12px}
.booking-modal .checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:#3b82f6}
.booking-modal .checkbox-row label{font-size:.85rem;color:var(--body);cursor:pointer}
.booking-modal .code-input{text-align:center;font-size:1.15rem;letter-spacing:3px;font-family:"JetBrains Mono","Fira Code",monospace;max-width:320px;margin:0 auto;display:block;background:#0e0e16;color:#e2e8f0;border:1.5px solid #1e293b;border-radius:0}
/* ===== Order Summary ===== */
.booking-modal .summary-section{margin-bottom:20px}
.booking-modal .summary-section h3{font-size:.85rem;font-weight:600;color:#3b82f6;margin-bottom:10px;border-bottom:1px solid #1e293b;padding-bottom:6px;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.booking-modal .summary-row{display:flex;justify-content:space-between;padding:5px 0;font-size:.85rem}
.booking-modal .summary-row .lbl{color:var(--body)}
.booking-modal .summary-row .val{font-weight:500;text-align:right;max-width:60%;color:#e2e8f0}
.booking-modal .summary-images{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.booking-modal .summary-images .thumb{aspect-ratio:1;border-radius:0;overflow:hidden;border:1px solid #1e293b}
.booking-modal .summary-images .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.booking-modal .summary-images .thumb-label{font-size:.7rem;color:var(--body);text-align:center;margin-top:4px}

/* Success overlay */
.booking-modal .success-overlay{display:none;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}
.booking-modal .success-overlay.show{display:flex}
.booking-modal .checkmark-circle{width:80px;height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;position:relative}
.booking-modal .checkmark-circle svg{width:80px;height:80px}
.booking-modal .checkmark-circle .circle{stroke:#3b82f6;stroke-width:2;fill:none;stroke-dasharray:251;stroke-dashoffset:251;animation:bk-drawCircle .5s ease forwards}
.booking-modal .checkmark-circle .check{stroke:#3b82f6;stroke-width:3;fill:none;stroke-dasharray:50;stroke-dashoffset:50;stroke-linecap:square;stroke-linejoin:miter;animation:bk-drawCheck .35s .45s ease forwards}
@keyframes bk-drawCircle{to{stroke-dashoffset:0}}
@keyframes bk-drawCheck{to{stroke-dashoffset:0}}

/* bk-hd / bk-pw / bk-body / bk-left / bk-right */
.bk-hd{padding:18px 24px 0;position:relative}
.bk-hd h2{font-size:1.2rem;font-weight:700;text-align:center;color:#3b82f6;margin:0 0 14px;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.bk-pw{padding:0 24px 14px;border-bottom:1px solid rgba(30,41,59,.4)}
.bk-body{display:flex;flex-wrap:nowrap;gap:20px;align-items:flex-start}
.bk-left{flex:1;width:0;min-width:0;padding:16px 20px 20px;overflow-y:auto;max-height:80vh;background:#12121a;border-radius:0;box-shadow:0 16px 48px rgba(0,0,0,.4);border:1px solid #1e293b;border-left:3px solid #3b82f6;scrollbar-width:thin;scrollbar-color:rgba(59,130,246,.15) transparent}
.bk-left::-webkit-scrollbar{width:3px}
.bk-left::-webkit-scrollbar-thumb{background:rgba(59,130,246,.15);border-radius:0}
.bk-right{width:240px;flex-shrink:0;background:#12121a;border-radius:0;box-shadow:0 16px 48px rgba(0,0,0,.4);border:1px solid #1e293b;border-left:3px solid #06b6d4;padding:20px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;align-self:flex-start;max-height:85vh;scrollbar-width:thin;scrollbar-color:rgba(59,130,246,.15) transparent}
.bk-right::-webkit-scrollbar{width:3px}
.bk-right::-webkit-scrollbar-thumb{background:rgba(59,130,246,.15);border-radius:0}

/* Preview card */
.pv-card{background:#12121a;border-radius:0;padding:14px 12px;box-shadow:none;border:1px solid rgba(30,41,59,.5)}
.pv-title{font-size:.78rem;font-weight:700;color:#06b6d4;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #1e293b;display:flex;align-items:center;gap:5px;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.pv-title i{font-size:.7rem;opacity:.5}
.pv-row{display:flex;justify-content:space-between;align-items:center;padding:5px 6px;margin:0 -6px;border-radius:0;transition:background .3s}
.pv-row.flash{background:rgba(59,130,246,.08)}
.pv-lbl{font-size:.75rem;color:var(--body)}
.pv-val{font-size:.75rem;font-weight:600;color:#e2e8f0;text-align:right;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-val.empty{color:#6b7d94;font-weight:400;font-style:italic}
.pv-imgs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.pv-img{aspect-ratio:1;border-radius:0;border:1.5px dashed rgba(30,41,59,.6);background:#0e0e16;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:all .25s}
.pv-img.filled{border-style:solid;border-color:#3b82f6;box-shadow:0 0 8px rgba(59,130,246,.1)}
.pv-img img{width:100%;height:100%;object-fit:cover;display:none}
.pv-img.filled img{display:block}
.pv-img .pv-ph{font-size:.6rem;color:#6b7d94;text-align:center;line-height:1.3}
.pv-img.filled .pv-ph{display:none}
/* ===== Responsive: booking ===== */
@media(max-width:768px){.booking-modal{max-width:540px;padding:0 10px}.bk-body{flex-direction:column;height:auto}.bk-right{display:none}.bk-left{width:100%;max-height:90vh;padding:16px 20px}.bk-hd{padding:14px 20px 0}.bk-pw{padding:0 20px 10px}}
@media(max-width:768px){.booking-modal .bk-step-line{max-width:42px;margin:0 4px;height:3px}}
@media(max-width:768px){.booking-modal .progress{gap:0;padding:0 6px}.booking-modal .step-dot{width:30px;height:30px;font-size:.7rem}}

.bk-right-title{font-size:.9rem;font-weight:700;color:#06b6d4;text-align:center;padding-bottom:12px;border-bottom:1px solid #1e293b;margin-bottom:4px;font-family:"JetBrains Mono","Noto Sans SC",monospace}

/* ===== Time Slot Picker ===== */
.ts-picker{border:1.5px solid #1e293b;border-radius:0;overflow:hidden;background:#0e0e16}
.ts-days{display:flex;border-bottom:1px solid #1e293b;background:#12121a;position:relative}
.ts-day{flex:1;padding:10px 0;text-align:center;font-size:.78rem;font-weight:600;color:var(--body);cursor:pointer;transition:color .25s,background .25s;border-right:1px solid #1e293b;position:relative}
.ts-day:last-child{border-right:none}
.ts-day:hover{background:rgba(59,130,246,.06)}
.ts-day.active{color:#fff;background:#3b82f6;font-weight:700}
.ts-day .ts-date{font-size:.68rem;margin-top:2px}
.ts-day.active .ts-date{color:rgba(255,255,255,.75)}
.ts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;padding:10px;min-height:120px}
.ts-grid-msg{grid-column:1/-1;text-align:center;padding:24px 10px;color:#6b7d94;font-size:.82rem;line-height:1.6}
.ts-slot{padding:8px 4px;border-radius:0;text-align:center;cursor:pointer;border:1.5px solid transparent;background:#12121a;position:relative}
.ts-slot:hover:not(.disabled):not(.selected){border-color:#3b82f6;background:rgba(59,130,246,.06)}
.ts-slot.selected{border-color:#3b82f6;background:#3b82f6;color:#fff;box-shadow:0 0 12px rgba(59,130,246,.2)}
.ts-slot.selected .ts-remain{color:rgba(255,255,255,.8)}
.ts-slot.selected .ts-time{color:#fff}
.ts-slot.disabled{opacity:1;cursor:not-allowed;background:#0e0e16;border:1.5px dashed #1e293b}
.ts-slot.disabled .ts-remain{color:#6b7d94;font-size:.6rem}
.ts-slot.disabled .ts-time{color:#6b7d94}
.ts-slot .ts-time{font-size:.78rem;font-weight:600;line-height:1.3;color:#e2e8f0;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.ts-slot .ts-remain{font-size:.62rem;color:#b8c4d0;margin-top:2px}
.ts-slot.hot .ts-remain{color:#f59e0b}
@media(max-width:768px){.ts-grid{grid-template-columns:repeat(3,1fr);gap:5px;padding:8px}.ts-slot{padding:7px 2px}.ts-day{padding:8px 0;font-size:.72rem}}
@media(max-width:400px){.ts-grid{grid-template-columns:repeat(2,1fr)}}

.success-text{font-size:1.2rem;font-weight:700;color:#3b82f6;margin-bottom:8px}
.booking-modal .success-sub{display:none}
.booking-modal .success-code-wrap{display:none;width:min(100%,340px);margin:16px auto 12px;padding:12px 14px;border:1px solid #1e293b;border-radius:0;background:#0e0e16;text-align:center;border-left:3px solid #3b82f6}
.booking-modal .success-code-main{font-size:.9rem;font-weight:600;color:#3b82f6;line-height:1.55;word-break:break-all;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.booking-modal .success-code-note{margin-top:4px;font-size:.8rem;color:var(--body)}
.booking-modal .success-code-meta{margin-top:8px;padding:8px 10px;border:1px dashed rgba(59,130,246,.35);border-radius:0;background:rgba(18,18,26,.6);text-align:left}
.booking-modal .success-code-meta-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.78rem;line-height:1.5;color:#b8c4d0}
.booking-modal .success-code-meta-row+.success-code-meta-row{margin-top:4px}
.booking-modal .success-code-meta-row strong{font-weight:700;color:#e2e8f0;text-align:right;word-break:break-all}

.booking-modal .success-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.booking-modal .success-action-btn{display:inline-flex !important;align-items:center;justify-content:center;min-width:132px;padding:8px 14px;font-size:.8rem;border-color:#3b82f6;color:#3b82f6;background:rgba(18,18,26,.9);border:1px solid #3b82f6;border-radius:0}
.booking-modal .success-action-btn:hover{border-color:#2563eb;color:#e2e8f0;background:rgba(59,130,246,.1)}
@media(max-width:768px){.booking-modal .success-code-wrap{width:min(100%,300px);padding:10px 12px}.booking-modal .success-actions{gap:8px}.booking-modal .success-action-btn{min-width:118px;padding:7px 12px;font-size:.76rem}}
/* ===== Success card wrap (VIP card animation) ===== */
.booking-modal .success-card-wrap{width:min(100%,360px);margin:18px auto 14px;display:none;flex-direction:column;align-items:center;gap:12px}
.booking-modal .success-card-wrap.show{display:flex}
.booking-modal .success-card-wrap .card{width:300px;height:200px;background:linear-gradient(120deg,#0e1520 0%,#121a28 52%,#0a1018 100%);position:relative;display:grid;place-content:center;border-radius:0;overflow:hidden;transition:all 0.5s ease-in-out;border:1px solid #1e293b}
.booking-modal .success-card-wrap #logo-main,.booking-modal .success-card-wrap #logo-second{height:100%}
.booking-modal .success-card-wrap #logo-main{fill:#3b82f6}
.booking-modal .success-card-wrap #logo-second{padding-bottom:10px;fill:none;stroke:#3b82f6;stroke-width:1px}
.booking-modal .success-card-wrap .border{position:absolute;inset:0px;border:2px solid #3b82f6;opacity:0;transform:rotate(10deg);transition:all 0.5s ease-in-out}
.booking-modal .success-card-wrap .bottom-text::before,.booking-modal .success-card-wrap .bottom-text::after{content:"";position:absolute;top:50%;width:46px;height:1px;background:rgba(59,130,246,.72)}
.booking-modal .success-card-wrap .bottom-text::before{right:100%;margin-right:8px}
.booking-modal .success-card-wrap .bottom-text::after{left:100%;margin-left:8px}
.booking-modal .success-card-wrap .bottom-text{position:absolute;left:50%;bottom:13px;transform:translateX(-50%);font-size:6px;text-transform:none;padding:0px 5px 0px 8px;color:#3b82f6;background:#0e1520;opacity:0;letter-spacing:.44em;transition:all 0.5s ease-in-out;white-space:nowrap;max-width:88%;overflow:hidden;text-overflow:ellipsis;font-family:"JetBrains Mono",monospace}
.booking-modal .success-card-wrap .content{transition:all 0.5s ease-in-out}
.booking-modal .success-card-wrap .content .logo{height:35px;position:relative;width:108px;margin:0 auto;transform:translateX(12px);overflow:hidden;transition:all 1s ease-in-out}
.booking-modal .success-card-wrap .content .logo .logo1{height:33px;width:100px;position:absolute;left:0;display:flex;align-items:center;justify-content:flex-start}
.booking-modal .success-card-wrap .content .logo .logo2{height:33px;width:150px;position:absolute;left:98px;top:0;display:flex;align-items:center;justify-content:flex-start}
.booking-modal .success-card-wrap .content .logo .logo-char{color:#3b82f6;font-family:"JetBrains Mono",monospace;font-size:26px;font-weight:700;letter-spacing:.02em;line-height:1}
.booking-modal .success-card-wrap .content .logo .logo1::after{content:"";position:absolute;left:0;right:26px;bottom:-3px;height:3px;background:#3b82f6;border-radius:0;opacity:.92}
.booking-modal .success-card-wrap .content .logo .logo2 .logo-char{font-size:34px;letter-spacing:.08em;font-weight:700;white-space:nowrap;color:transparent;-webkit-text-stroke:1.2px #3b82f6;text-stroke:1.2px #3b82f6}
.booking-modal .success-card-wrap .content .logo .trail{position:absolute;right:0;height:100%;width:100%;opacity:0}
.booking-modal .success-card-wrap .content .logo-code-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:46px;color:#3b82f6;font-size:10px;opacity:0;letter-spacing:.08em;transition:all 0.5s ease-in-out 0.55s;white-space:nowrap;max-width:82%;overflow:hidden;text-overflow:ellipsis;font-family:"JetBrains Mono",monospace}
.booking-modal .success-card-wrap .content .logo-bottom-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:26px;color:#3b82f6;padding-left:8px;font-size:11px;opacity:0;letter-spacing:.08em;transition:all 0.5s ease-in-out 0.5s;white-space:nowrap;max-width:82%;overflow:hidden;text-overflow:ellipsis}
.booking-modal .success-card-wrap .card:hover{border-radius:0;transform:none}
.booking-modal .success-card-wrap .card:hover .logo{width:200px;animation:uiv-opacity 1s ease-in-out}
.booking-modal .success-card-wrap .card:hover .border{inset:15px;opacity:1;transform:rotate(0)}
.booking-modal .success-card-wrap .card:hover .bottom-text{letter-spacing:.22em;opacity:1;transform:translateX(-50%)}
.booking-modal .success-card-wrap .card:hover .content .logo-bottom-text{opacity:1;letter-spacing:.08em}
.booking-modal .success-card-wrap .card:hover .content .logo-code-text{opacity:1;letter-spacing:.08em}
.booking-modal .success-card-wrap .card:hover .trail{animation:uiv-trail 1s ease-in-out}
@keyframes uiv-opacity{0%{border-right:1px solid transparent}10%{border-right:1px solid #3b82f6}80%{border-right:1px solid #3b82f6}100%{border-right:1px solid transparent}}
@keyframes uiv-trail{0%{background:linear-gradient(90deg,rgba(59,130,246,0) 90%,rgb(59,130,246) 100%);opacity:0}30%{background:linear-gradient(90deg,rgba(59,130,246,0) 70%,rgb(59,130,246) 100%);opacity:1}70%{background:linear-gradient(90deg,rgba(59,130,246,0) 70%,rgb(59,130,246) 100%);opacity:1}95%{background:linear-gradient(90deg,rgba(59,130,246,0) 90%,rgb(59,130,246) 100%);opacity:0}}
.booking-modal .success-save-btn{display:inline-flex !important;align-items:center;justify-content:center;min-width:158px;padding:9px 18px;font-size:.82rem;border-color:#3b82f6;color:#3b82f6;background:rgba(18,18,26,.9);border:1px solid #3b82f6;border-radius:0}
.booking-modal .success-save-btn:hover{border-color:#2563eb;color:#e2e8f0;background:rgba(59,130,246,.1)}
@media(max-width:768px){.booking-modal .success-card-wrap{width:min(100%,320px)}.booking-modal .success-card-wrap .card{transform:scale(1)}}
/* ===== Upload tabs / QR scan ===== */
.booking-modal .upload-tabs{display:flex;gap:0;margin-bottom:18px;border:1.5px solid #1e293b;border-radius:0;overflow:hidden}
.booking-modal .upload-tab{flex:1;padding:10px 0;text-align:center;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .3s;background:#12121a;color:var(--body);border:none;font-family:inherit}
.booking-modal .upload-tab.active{background:#3b82f6;color:#fff}
.booking-modal .upload-tab:not(.active):hover{background:rgba(59,130,246,.06)}
.booking-modal .upload-content{position:relative}
.booking-modal .upload-mode{transition:opacity .3s ease,transform .3s ease}
.booking-modal .upload-mode.hidden{display:none;opacity:0;transform:translateY(10px)}
.booking-modal .upload-mode.visible{display:block;opacity:1;transform:translateY(0)}
.booking-modal .qr-scan-area{display:flex;flex-direction:column;align-items:center;padding:12px 0}
.booking-modal .qr-code-box{width:200px;height:200px;border:2px solid #1e293b;border-radius:0;display:flex;align-items:center;justify-content:center;background:#0e0e16;margin-bottom:14px;overflow:hidden}
.booking-modal .qr-code-box img{width:100%;height:100%;display:block;object-fit:cover}
.booking-modal .qr-scan-hint{font-size:.85rem;color:var(--body);margin-bottom:18px;text-align:center}
.booking-modal .qr-status{text-align:center;margin-bottom:12px}
.booking-modal .qr-status-text{font-size:.85rem;color:var(--body);display:flex;align-items:center;justify-content:center;gap:8px}
.booking-modal .qr-status-text.done{color:#22c55e;font-weight:600}
.booking-modal .qr-spinner{display:inline-block;width:16px;height:16px;border:2px solid #1e293b;border-top-color:#3b82f6;border-radius:50%;animation:bk-qrSpin 1s linear infinite}
@keyframes bk-qrSpin{to{transform:rotate(360deg)}}
.qr-received-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0;max-width:280px}
.booking-modal .qr-received-thumb{aspect-ratio:1;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#fff;font-weight:600;opacity:0;transform:scale(.8);transition:all .35s cubic-bezier(.34,1.56,.64,1)}
.booking-modal .qr-received-thumb.show{opacity:1;transform:scale(1)}
.booking-modal .qr-received-thumb.empty{border:2px dashed #1e293b;opacity:.4;transform:scale(1)}
.booking-modal .btn-simulate{padding:10px 24px;border:none;border-radius:0;font-size:.85rem;font-weight:600;cursor:pointer;background:#3b82f6;color:#fff;font-family:inherit;transition:background .2s,opacity .2s;margin-top:4px}
.booking-modal .btn-simulate:hover{background:#2563eb}
.booking-modal .btn-simulate:disabled{opacity:.4;cursor:not-allowed}
.booking-modal .summary-images .thumb.phone-thumb{display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;font-weight:600}
.booking-modal .phone-upload-badge{display:inline-block;font-size:.7rem;color:#3b82f6;background:rgba(59,130,246,.08);padding:2px 8px;border-radius:0;margin-top:4px}
@media(max-width:400px){.booking-modal .upload-grid{gap:8px}.booking-modal .bk-step-line{max-width:28px;margin:0 3px;height:3px}.booking-modal .step-dot{width:26px;height:26px;font-size:.65rem}.booking-modal .amount{font-size:1.5rem}}
/* ===== Hero Section ===== */
.hero{padding:72px 32px 0;position:relative;overflow:hidden;min-height:calc(100vh - 72px);display:flex;flex-direction:column;justify-content:center}
.hero-bg1{position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(59,130,246,.06),transparent 70%)}
.hero-bg2{position:absolute;inset:0;background:radial-gradient(circle at 80% 60%,rgba(6,182,212,.04),transparent 50%)}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(59,130,246,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(59,130,246,.03) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse 60% 50% at 50% 30%,#000,transparent)}
.hero-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;position:relative;z-index:2}
.hero-tag{display:inline-flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.08em;color:#3b82f6;margin-bottom:20px;text-transform:uppercase;font-family:"JetBrains Mono","Noto Sans SC",monospace}
.tag-dot{width:6px;height:6px;border-radius:50%;background:#3b82f6;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
#heroText,#heroVisual{transition:opacity .25s ease,transform .25s ease}
.hero-text h1{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:52px;font-weight:700;line-height:1.15;margin-bottom:20px;color:#e2e8f0}
.hero-text h1 .accent{color:#3b82f6}
.hero-text p{font-size:17px;color:#b8c4d0;line-height:1.9;margin-bottom:36px;max-width:480px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap}
.hero-visual{display:flex;justify-content:center;align-items:center;position:relative}
.hero-glow{position:absolute;width:350px;height:350px;border-radius:50%;background:radial-gradient(circle,rgba(59,130,246,.08),transparent 70%);filter:blur(40px)}
.hero-ring{position:absolute;width:480px;height:480px;border-radius:50%;border:1px solid rgba(59,130,246,.06);animation:ring-spin 30s linear infinite}
@keyframes ring-spin{to{transform:rotate(360deg)}}

/* ===== Certificate Display ===== */
.cert-card{width:440px;background:#12121a;border-radius:0;padding:0;position:relative;overflow:visible;z-index:1;transform:rotate(1.5deg);filter:drop-shadow(0 2px 3px rgba(0,0,0,.3)) drop-shadow(0 12px 24px rgba(0,0,0,.2));opacity:0;animation:cert-slide .7s ease-out 0.3s forwards;border:1px solid #1e293b;border-left:3px solid #3b82f6}
.cert-card::before{content:"";position:absolute;bottom:-4px;left:8px;right:8px;height:8px;background:rgba(0,0,0,.2);filter:blur(4px);border-radius:0;z-index:-1}
@keyframes cert-slide{0%{opacity:0;transform:rotate(3deg) translateY(60px) scale(.95)}100%{opacity:1;transform:rotate(1.5deg) translateY(0) scale(1)}}
.cert-shine{display:none}
.cert-print{opacity:0;filter:blur(3px);transform:translateY(4px);transition:opacity .35s ease-out,filter .35s ease-out,transform .35s ease-out}
.cert-print.printed{opacity:1;filter:blur(0);transform:translateY(0)}
.cert-border{border:1px solid #1e293b;border-radius:0;padding:28px 30px 22px;position:relative;background:#12121a;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.02'/%3E%3C/svg%3E")}
.cert-header{text-align:center;margin-bottom:16px}
.cert-badge{font-size:28px;color:#3b82f6;margin-bottom:8px}
.cert-title{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:18px;font-weight:700;color:#e2e8f0;letter-spacing:.04em}
.cert-subtitle{font-size:10px;color:#6b7d94;letter-spacing:.12em;text-transform:uppercase;margin-top:4px;font-family:"JetBrains Mono",monospace}
.cert-result{text-align:center;font-size:17px;font-weight:700;color:#22c55e;margin-bottom:18px;padding:10px 0;border-top:1px solid #1e293b;border-bottom:1px solid #1e293b;display:flex;align-items:center;justify-content:center;gap:8px}
.cert-body{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.cert-row{display:flex;justify-content:space-between;align-items:center}
.cert-label{font-size:12px;color:#b8c4d0;letter-spacing:.06em}
.cert-val{font-size:13px;color:#e2e8f0;font-weight:500}
.cert-divider{height:1px;background:#1e293b;margin:4px 0}
.cert-footer{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid #1e293b}
.cert-id{font-size:11px;color:#6b7d94;letter-spacing:.08em;font-weight:500;font-family:"JetBrains Mono",monospace}
.cert-seal{opacity:0;transform:rotate(-8deg) scale(2.5);position:absolute;right:22px;bottom:-16px;z-index:2;transition:all .3s cubic-bezier(.2,.8,.3,1.2)}
.cert-seal.stamped{opacity:.85;transform:rotate(-8deg) scale(1)}
.vertical-deco{position:absolute;writing-mode:vertical-rl;font-size:11px;letter-spacing:.15em;color:rgba(59,130,246,.12);font-weight:500;font-family:"JetBrains Mono",monospace}
.vertical-deco.left{left:32px;top:50%}
.vertical-deco.right{right:32px;top:40%}
/* ===== Stats Bar ===== */
.stats-bar{padding:40px 32px;background:#12121a;border-top:1px solid #1e293b;border-bottom:1px solid #1e293b;box-shadow:none}
.stats-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:0}
.stat-item{text-align:center;flex:1}
.stat-num{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:36px;font-weight:700;color:#3b82f6;margin-bottom:6px}
.stat-label{font-size:13px;color:#b8c4d0;letter-spacing:.05em}
.stat-sep{width:1px;height:48px;background:#1e293b}

.section{padding:120px 32px;position:relative}
.container{max-width:1000px;margin:0 auto}
.section-inset{background:#0e0e16;border-top:1px solid #1e293b;border-bottom:1px solid #1e293b;box-shadow:inset 0 8px 24px rgba(0,0,0,.15)}
.section-bg-pattern{position:absolute;inset:0;background-image:radial-gradient(rgba(59,130,246,.04) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}
.section-header{margin-bottom:64px;text-align:center;position:relative}
.section-num{display:block;font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:72px;font-weight:700;color:rgba(59,130,246,.04);line-height:1;margin-bottom:-20px}
.section-header .tag{display:inline-block;font-size:12px;letter-spacing:.12em;color:#3b82f6;font-weight:500;margin-bottom:16px;text-transform:uppercase;position:relative;font-family:"JetBrains Mono",monospace}
.section-header h2{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:36px;font-weight:700;margin-bottom:16px;position:relative;color:#e2e8f0}
.section-header h2 .accent{color:#3b82f6}
.section-header p{color:#b8c4d0;font-size:16px;max-width:500px;margin:0 auto}
.section-divider{display:flex;align-items:center;justify-content:center;gap:16px;padding:0 32px;max-width:600px;margin:0 auto}
.divider-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(59,130,246,.2),transparent)}
.divider-diamond{width:8px;height:8px;background:#3b82f6;transform:rotate(45deg);opacity:.3}

/* ===== Service Cards ===== */
.service-cards{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.service-card{border-radius:0;background:#12121a;border:1px solid #1e293b;transition:all .4s;overflow:hidden;box-shadow:none;border-top:2px solid transparent}
.service-card:hover{transform:translateY(-8px);box-shadow:0 0 30px rgba(59,130,246,.1);border-top-color:#3b82f6}
.card-inner{padding:36px 20px 28px;text-align:center;position:relative}
.card-badge{position:absolute;top:12px;right:12px;background:#3b82f6;color:#fff;font-size:11px;font-weight:600;padding:3px 10px;border-radius:0;letter-spacing:.04em;font-family:"JetBrains Mono",monospace}
.service-card-icon{width:56px;height:56px;border-radius:0;background:rgba(59,130,246,.08);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:22px;color:#3b82f6;border:1px solid rgba(59,130,246,.15)}
.service-card h4{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:17px;font-weight:700;margin-bottom:8px;color:#e2e8f0}
.price{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:22px;font-weight:700;color:#06b6d4;margin-bottom:8px}
.service-card p{color:#b8c4d0;font-size:13px;line-height:1.7;margin-bottom:14px}
.card-features{list-style:none;text-align:left;padding:12px 0 0;border-top:1px solid #1e293b}
.card-features li{font-size:13px;color:#b8c4d0;padding:5px 0;display:flex;align-items:center;gap:8px}
.card-features i{color:#3b82f6;font-size:11px}
.card-btn{display:block;text-align:center;margin-top:16px;padding:10px 0;border-radius:0;background:#3b82f6;color:#fff;font-size:13px;font-weight:600;text-decoration:none;transition:all .3s;letter-spacing:.05em}
.card-btn:hover{background:#2563eb;transform:translateY(-2px)}

/* Compare */
.compare-grid{max-width:800px;margin:0 auto;display:flex;align-items:stretch;gap:24px}
.compare-card{flex:1;padding:32px 28px;border-radius:0;border:1px solid #1e293b}
.compare-them{background:rgba(14,14,22,.5)}
.compare-us{background:#12121a;box-shadow:0 0 20px rgba(59,130,246,.08);border-color:rgba(59,130,246,.2)}
.compare-title{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:22px;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:10px}
.compare-them .compare-title{color:#6b7d94}
.compare-them .compare-title i{color:#ef4444;font-size:20px}
.compare-us .compare-title{color:#3b82f6}
.compare-us .compare-title i{color:#3b82f6;font-size:20px}
.compare-card ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.compare-card li{font-size:14px;color:#b8c4d0;line-height:1.6;padding-left:8px}
.compare-them li{text-decoration:line-through;opacity:.6}
.compare-vs{font-family:"JetBrains Mono",monospace;font-size:20px;font-weight:700;color:#3b82f6;display:flex;align-items:center;opacity:.4}
/* ===== Tech Cards ===== */
.tech-cards{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.tech-card{padding:36px 24px;border-radius:0;background:#12121a;border:1px solid #1e293b;transition:all .4s;box-shadow:none;position:relative;overflow:hidden}
.tech-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#3b82f6,transparent);opacity:0;transition:opacity .4s}
.tech-card:hover{transform:translateY(-6px);box-shadow:0 0 30px rgba(59,130,246,.1)}
.tech-card:hover::before{opacity:.5}
.tech-card-icon{font-size:24px;color:#3b82f6;margin-bottom:16px}
.tech-card h4{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:16px;font-weight:700;margin-bottom:8px;color:#e2e8f0}
.tech-card p{color:#b8c4d0;font-size:14px;line-height:1.8}

/* Workflow */
.workflow-grid{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.workflow-step{text-align:center;padding:24px 20px;position:relative}
.step-num{font-family:"JetBrains Mono",monospace;font-size:56px;font-weight:700;color:rgba(59,130,246,.06);line-height:1}
.step-icon{width:64px;height:64px;border-radius:0;background:#3b82f6;display:flex;align-items:center;justify-content:center;margin:16px auto;font-size:20px;color:#fff;position:relative;z-index:2;box-shadow:0 0 20px rgba(59,130,246,.2)}
.workflow-step h4{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:16px;font-weight:700;margin-bottom:8px;color:#e2e8f0}
.workflow-step p{color:#b8c4d0;font-size:14px}
.step-line{position:absolute;top:55%;right:-50%;width:100%;height:1px;background:linear-gradient(90deg,#3b82f6,transparent);opacity:.15;z-index:1}
.workflow-step:last-child .step-line{display:none}

/* ===== FAQ ===== */
.faq-list{max-width:700px;margin:0 auto}
.faq-item{border-bottom:1px solid #1e293b;overflow:hidden}
.faq-q{padding:20px 0;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:16px;font-weight:500;transition:color .3s;color:#e2e8f0}
.faq-q:hover{color:#3b82f6}
.faq-q i{font-size:12px;color:#3b82f6;transition:transform .3s}
.faq-item.open .faq-q i{transform:rotate(180deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .4s ease}
.faq-item.open .faq-a{max-height:200px;padding-bottom:20px}
.faq-a p{font-size:15px;color:#b8c4d0;line-height:1.8}

/* About */
.about-text{max-width:700px;margin:0 auto;text-align:center}
.about-text p{font-size:16px;line-height:2.2;color:#b8c4d0}
.about-block{max-width:800px;margin:0 auto}
.about-quote{text-align:center;margin-bottom:32px;padding:28px 32px;background:#12121a;border-radius:0;border:1px solid #1e293b;box-shadow:none;position:relative;border-left:3px solid #3b82f6}
.about-quote i{font-size:24px;color:#3b82f6;opacity:.4;margin-bottom:8px;display:block}
.about-quote p{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:18px;font-weight:600;color:#e2e8f0;line-height:1.8;margin:0}
.about-desc{text-align:center;margin-bottom:36px}
.about-desc p{font-size:15px;line-height:2;color:#b8c4d0;margin-bottom:12px}
.about-desc p:last-child{margin-bottom:0}
.about-values{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.about-val-item{display:flex;align-items:flex-start;gap:14px;padding:20px;background:#12121a;border-radius:0;border:1px solid #1e293b;box-shadow:none;transition:all .3s}
.about-val-item:hover{transform:translateY(-4px);box-shadow:0 0 20px rgba(59,130,246,.08)}
.about-val-icon{width:40px;height:40px;border-radius:0;background:rgba(59,130,246,.08);display:flex;align-items:center;justify-content:center;font-size:18px;color:#3b82f6;flex-shrink:0;border:1px solid rgba(59,130,246,.15)}
.about-val-item h4{font-size:14px;font-weight:700;color:#e2e8f0;margin-bottom:4px}
.about-val-item p{font-size:12px;color:#b8c4d0;line-height:1.6;margin:0}
/* ===== Responsive: 1024 ===== */
@media(max-width:1024px){.hero-inner{grid-template-columns:1fr;text-align:center}.hero-left{align-items:center;width:100%}.proj-bar{justify-content:center}.hero-text p{margin:0 auto 32px;max-width:520px}.hero-btns{justify-content:center}.hero-visual{margin-top:32px}.vertical-deco{display:none}.stats-inner{flex-wrap:wrap;gap:24px}.stat-sep{display:none}.stat-item{min-width:40%}.service-cards{grid-template-columns:repeat(2,1fr)}.tech-cards{grid-template-columns:repeat(2,1fr)}.workflow-grid{grid-template-columns:repeat(2,1fr);gap:24px}.step-line{display:none}.compare-grid{flex-direction:column}.compare-vs{justify-content:center}.cert-card{max-width:90%;padding:36px 28px}}

/* ===== Responsive: 768 ===== */
@media(max-width:768px){.nav-links{display:none}.nav-mobile{display:block}.hero{padding:72px 20px 0}.hero-text h1{font-size:28px}.hero-text p{font-size:14px}.section{padding:60px 20px}.section-header h2{font-size:24px}.section-num{font-size:40px}.service-cards,.tech-cards,.workflow-grid{grid-template-columns:1fr}.stat-num{font-size:28px}.stat-label{font-size:11px}.stats-bar{padding:28px 20px}.cert-card{max-width:100%;padding:28px 20px;margin:0 auto}.cert-title{font-size:18px}.cert-row{flex-direction:column;align-items:flex-start;gap:2px}.cert-val{text-align:left}.compare-card{padding:24px 20px}.compare-title{font-size:18px}.about-text{font-size:14px}.about-values{grid-template-columns:1fr}.about-quote p{font-size:16px}}

/* ===== Responsive: 480 ===== */
@media(max-width:480px){.hero{padding:72px 16px 0}.hero-text h1{font-size:24px}.section{padding:48px 16px}.section-header h2{font-size:20px}.stat-item{min-width:45%}.stat-num{font-size:24px}.cert-card{padding:24px 16px}.cert-seal svg{width:56px;height:56px}}

/* Scrollbar */
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:#0a0a0f}
::-webkit-scrollbar-thumb{background:rgba(59,130,246,.3);border-radius:0}
::-webkit-scrollbar-thumb:hover{background:rgba(59,130,246,.5)}
html{scrollbar-color:rgba(59,130,246,.3) #0a0a0f;scrollbar-width:thin}

/* ===== Mobile booking/hero extra ===== */
@media(max-width:768px){.booking-modal .upload-tabs{display:none}.booking-modal .upload-content[data-mode="phone"]{display:none!important}.booking-modal .upload-content[data-mode="pc"]{display:block!important}.hero{min-height:auto;padding:110px 16px 32px}.hero-visual{display:none}.hero-inner{gap:16px}.hero-text h1{font-size:24px;line-height:1.3}.hero-text p{font-size:13px;margin:0 auto 20px;max-width:none}.hero-tag{font-size:12px}.hero-btns{gap:10px}.hero-btns .btn-primary,.hero-btns .btn-outline{font-size:13px;padding:10px 20px}.section{padding:32px 16px}.section-header{margin-bottom:20px}.section-header h2{font-size:1.15rem}.section-header p{font-size:.8rem}.section-num{font-size:32px}.container{padding:0 16px}.service-cards{grid-template-columns:repeat(2,1fr);gap:10px}.service-card .card-inner{padding:14px 12px}.service-card-icon{width:32px;height:32px;font-size:1rem;margin:0 auto 6px;border-radius:0}.service-card h4{font-size:.85rem;margin-bottom:4px}.service-card .price{font-size:.95rem;margin-bottom:4px}.service-card p{font-size:.72rem;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-features{display:none}.card-btn{font-size:.75rem;padding:6px 12px}.card-badge{font-size:.65rem;padding:2px 8px}.about-text{font-size:13px;line-height:1.7;padding:0 4px}.about-text p{font-size:13px;line-height:1.7}.compare-grid{gap:12px}.compare-card{padding:16px 14px}.compare-title{font-size:15px;margin-bottom:10px}.compare-card ul{gap:4px}.compare-card li{font-size:.8rem;padding:4px 0}.compare-vs{font-size:1rem;margin:8px 0;padding:6px 0}.stats-bar{padding:20px 16px}.stats-inner{gap:16px}.stat-item{min-width:40%}.stat-num{font-size:1.5rem}.stat-label{font-size:.68rem;white-space:nowrap}.hero-col.right,.hero .hero-col.right{display:none}.plans-grid{grid-template-columns:repeat(2,1fr);gap:10px}.plan-card{padding:14px 12px}.plan-card .card-icon{font-size:1rem;width:32px;height:32px;margin-bottom:6px}.plan-card h3{font-size:.85rem;margin-bottom:4px}.plan-card .price{font-size:.95rem;margin-bottom:4px}.plan-card .price-period{font-size:.65rem}.plan-card p{font-size:.72rem;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.plan-card .features{display:none}.plan-card .btn,.plan-card a{font-size:.75rem;padding:6px 12px}.footer{padding:24px 0 16px}.footer-grid{grid-template-columns:1fr 1fr;gap:12px 20px;text-align:left}.footer-col{font-size:.8rem}.footer-col h3{font-size:.9rem;margin-bottom:8px}.footer-col li,.footer-col p{font-size:.78rem;margin-bottom:4px}.footer-col a{font-size:.78rem}.footer-bottom{font-size:.72rem;padding-top:12px;margin-top:12px}}

@media(max-width:480px){.hero{padding:100px 12px 20px}.hero-text h1{font-size:20px}.section{padding:24px 12px}.section-header h2{font-size:1.05rem}.section-num{font-size:28px}.stats-bar{padding:16px 12px}.stats-inner{gap:12px}.stat-num{font-size:1.25rem}.stat-label{font-size:.62rem}.compare-card{padding:12px 10px}.compare-title{font-size:13px}.compare-card li{font-size:.75rem}.about-text,.about-text p{font-size:12px}.plans-grid{gap:8px}.plan-card{padding:12px 10px}.plan-card .card-icon{width:28px;height:28px;font-size:.9rem}.plan-card h3{font-size:.8rem}.plan-card .price{font-size:.88rem}}
/* Club search dropdown */
.club-search-wrap{position:relative}
.club-search-wrap input{width:100%;box-sizing:border-box}
.club-dropdown{display:none;position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;max-height:200px;overflow-y:auto;background:#12121a;border:1px solid #1e293b;border-radius:0;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.club-dropdown.show{display:block}
.club-dropdown .club-opt{padding:10px 14px;cursor:pointer;font-size:.85rem;color:#e2e8f0;transition:background .15s}
.club-dropdown .club-opt:hover,.club-dropdown .club-opt.active{background:rgba(59,130,246,.08)}
.club-dropdown .club-opt:first-child{border-radius:0}
.club-dropdown .club-opt:last-child{border-radius:0}
.club-dropdown .club-hint{padding:12px 14px;font-size:.8rem;color:#6b7d94;text-align:center}
.club-search-wrap .club-selected{display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(59,130,246,.06);border:1px solid #1e293b;border-radius:0;font-size:.85rem;color:#e2e8f0;cursor:pointer}
.club-search-wrap .club-selected .club-clear{margin-left:auto;cursor:pointer;color:#b8c4d0;font-size:1rem;line-height:1}
.club-search-wrap .club-selected .club-clear:hover{color:#ef4444}

/* Service type custom selector */
.svc-search-wrap{position:relative}
.svc-trigger{width:100%;padding:10px 14px;border:1.5px solid #1e293b;border-radius:0;font-size:.9rem;color:#b8c4d0;background:#0e0e16;cursor:pointer;box-sizing:border-box;transition:border-color .2s;display:flex;align-items:center;justify-content:space-between}
.svc-trigger:hover{border-color:#3b82f6}
.svc-trigger .svc-arrow{width:12px;height:7px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%233b82f6' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;flex-shrink:0}
.svc-dropdown{display:none;position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;max-height:240px;overflow-y:auto;background:#12121a;border:1px solid #1e293b;border-radius:0;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.svc-dropdown.show{display:block}
.svc-dropdown .svc-opt{padding:10px 14px;cursor:pointer;font-size:.85rem;color:#e2e8f0;transition:background .15s;display:flex;align-items:center;gap:10px}
.svc-dropdown .svc-opt:hover{background:rgba(59,130,246,.08)}
.svc-dropdown .svc-opt:first-child{border-radius:0}
.svc-dropdown .svc-opt:last-child{border-radius:0}
.svc-dropdown .svc-opt i{width:20px;text-align:center;color:#3b82f6;font-size:1rem}
.svc-search-wrap .svc-selected{display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(59,130,246,.06);border:1px solid #1e293b;border-radius:0;font-size:.85rem;color:#e2e8f0;cursor:pointer}
.svc-search-wrap .svc-selected i{color:#3b82f6;font-size:1rem}
.svc-search-wrap .svc-selected .svc-clear{margin-left:auto;cursor:pointer;color:#b8c4d0;font-size:1rem;line-height:1}
.svc-search-wrap .svc-selected .svc-clear:hover{color:#ef4444}

/* AOS: project tabs */
.proj-bar .proj-btn[data-aos]{will-change:transform,opacity}
/* ===== Monitor Display (optimize hero) ===== */
.monitor{width:100%;max-width:520px}
.monitor-bezel{background:#0e0e16;border-radius:2px;padding:10px;box-shadow:0 2px 8px rgba(0,0,0,.4),0 20px 60px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.03);position:relative;border:1px solid #1e293b}
.monitor-bezel::before{content:"";position:absolute;top:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:#1e293b;box-shadow:inset 0 0 2px rgba(0,0,0,.5)}
.monitor-screen{background:#0a0a0f;border-radius:0;overflow:hidden;aspect-ratio:16/10;position:relative;border:1px solid #1e293b}
.monitor-screen::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(59,130,246,.02) 0%,transparent 50%);pointer-events:none;z-index:10}
.monitor-neck{width:40px;height:28px;background:linear-gradient(180deg,#12121a,#1e293b);margin:0 auto;position:relative}
.monitor-neck::after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:52px;height:6px;background:#1e293b;border-radius:0}
.monitor-base{width:120px;height:6px;background:linear-gradient(180deg,#1e293b,#12121a);margin:-1px auto 0;border-radius:0;box-shadow:0 3px 10px rgba(0,0,0,.2);position:relative}
.monitor-base::after{content:"";position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:140px;height:3px;background:rgba(0,0,0,.15);border-radius:50%;filter:blur(2px)}

.opt-ui{display:flex;height:100%;font-size:12px;color:#c8ccd4}
.opt-sidebar{width:52px;background:#0a0a0f;display:flex;flex-direction:column;align-items:center;padding:14px 0 10px;gap:2px;border-right:1px solid #1e293b;flex-shrink:0}
.opt-sb-item{width:36px;height:36px;border-radius:0;display:flex;align-items:center;justify-content:center;color:#6b7d94;font-size:14px;cursor:pointer;transition:all .2s}
.opt-sb-item.active{background:rgba(34,197,94,.12);color:#22c55e}
.opt-sb-item:hover{color:#e2e8f0}
.opt-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.opt-topbar{height:36px;background:#0a0a0f;border-bottom:1px solid #1e293b;display:flex;align-items:center;padding:0 14px;gap:8px;flex-shrink:0}
.opt-topbar-title{font-size:11px;color:#b8c4d0;font-weight:500;font-family:"JetBrains Mono",monospace}
.opt-page{display:none;flex:1;padding:14px;gap:12px;overflow:hidden}
.opt-page.active{display:flex}
.opt-page.fade-in{animation:opt-page-fade .35s cubic-bezier(.22,1,.36,1)}
@keyframes opt-page-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.page-col{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.opt-tasks{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.opt-tasks-hd{font-size:11px;font-weight:700;color:#e2e8f0;margin-bottom:2px;display:flex;align-items:center;gap:6px}
.opt-tasks-hd .badge{background:rgba(34,197,94,.15);color:#22c55e;font-size:9px;padding:1px 6px;border-radius:0;font-weight:600}
.task-item{background:rgba(255,255,255,.02);border:1px solid #1e293b;border-radius:0;padding:8px 10px;display:flex;align-items:center;gap:8px;transition:all .3s}
.task-item:hover{background:rgba(59,130,246,.06)}
.task-icon{width:26px;height:26px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.task-icon.green{background:rgba(34,197,94,.12);color:#22c55e}
.task-icon.blue{background:rgba(59,130,246,.12);color:#3b82f6}
.task-icon.orange{background:rgba(245,158,11,.12);color:#f59e0b}
.task-icon.purple{background:rgba(168,85,247,.12);color:#a855f7}
.task-info{flex:1;min-width:0}
.task-name{font-size:10.5px;color:#e2e8f0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-desc{font-size:9px;color:#6b7d94;margin-top:1px}
.task-status{font-size:9px;font-weight:600;padding:2px 7px;border-radius:0;white-space:nowrap;flex-shrink:0}
.task-status.done{background:rgba(34,197,94,.12);color:#22c55e}
.task-status.running{background:rgba(59,130,246,.12);color:#3b82f6}
.task-status.pending{background:rgba(255,255,255,.04);color:#6b7d94}
/* Dashboard */
.opt-dash{width:155px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}
.score-card{background:rgba(255,255,255,.02);border:1px solid #1e293b;border-radius:0;padding:12px;text-align:center}
.score-ring{position:relative;width:72px;height:72px;margin:0 auto 6px}
.score-ring svg{width:100%;height:100%}
.score-ring .ring-bg{fill:none;stroke:#1e293b;stroke-width:6}
.score-ring .ring-fg{fill:none;stroke:#22c55e;stroke-width:6;stroke-linecap:square;stroke-dasharray:201;stroke-dashoffset:30;transform:rotate(-90deg);transform-origin:center}
.score-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.score-num strong{font-size:22px;font-weight:800;color:#22c55e;line-height:1;font-family:"JetBrains Mono",monospace}
.score-num small{font-size:8px;color:#6b7d94;margin-top:1px}
.score-label{font-size:9px;color:#22c55e;font-weight:600;background:rgba(34,197,94,.1);display:inline-block;padding:1px 8px;border-radius:0}
.mini-cards{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.mini-card{background:rgba(255,255,255,.02);border:1px solid #1e293b;border-radius:0;padding:8px 7px;text-align:center}
.mini-card-icon{font-size:13px;margin-bottom:3px}
.mini-card-val{font-size:12px;font-weight:700;color:#e2e8f0;line-height:1.1;font-family:"JetBrains Mono",monospace}
.mini-card-label{font-size:8px;color:#6b7d94;margin-top:2px}
.opt-progress-card{background:rgba(255,255,255,.02);border:1px solid #1e293b;border-radius:0;padding:8px 10px}
.opt-progress-hd{font-size:9px;color:#b8c4d0;margin-bottom:6px;display:flex;justify-content:space-between}
.opt-progress-hd strong{color:#e2e8f0}
.progress-bar{height:5px;background:#1e293b;border-radius:0;overflow:hidden;margin-bottom:4px}
.progress-fill{height:100%;border-radius:0;transition:width 2s cubic-bezier(.22,1,.36,1)}
.progress-fill.green{background:linear-gradient(90deg,#16a34a,#22c55e)}
.progress-fill.blue{background:linear-gradient(90deg,#2563eb,#3b82f6)}
.opt-bottombar{height:26px;background:#0a0a0f;border-top:1px solid #1e293b;display:flex;align-items:center;padding:0 14px;gap:12px;font-size:10px;color:#b8c4d0;flex-shrink:0;font-family:"JetBrains Mono",monospace}
.opt-bottombar .live-dot{width:5px;height:5px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px rgba(34,197,94,.4);animation:mon-pulse 2s infinite}
@keyframes mon-pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* Game items */
.game-item{background:rgba(255,255,255,.02);border:1px solid #1e293b;border-radius:0;padding:8px 10px;display:flex;align-items:center;gap:8px}
.game-icon{width:28px;height:28px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.game-info{flex:1;min-width:0}
.game-name{font-size:10.5px;color:#e2e8f0;font-weight:600}
.game-desc{font-size:9px;color:#6b7d94;margin-top:1px}
.game-btn{font-size:9px;padding:3px 8px;border-radius:0;border:none;font-weight:600;cursor:pointer;flex-shrink:0}
.game-btn.go{background:rgba(59,130,246,.15);color:#3b82f6}
.game-btn.done{background:rgba(34,197,94,.12);color:#22c55e}

/* Checklist */
.chk-item{background:rgba(255,255,255,.02);border:1px solid #1e293b;border-radius:0;padding:7px 10px;display:flex;align-items:center;gap:8px;font-size:10.5px;color:#c8ccd4;cursor:pointer;transition:background .2s}
.chk-item:hover{background:rgba(59,130,246,.06)}
.chk-box{width:14px;height:14px;border-radius:0;border:1.5px solid #1e293b;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;color:transparent;transition:all .2s}
.chk-item.checked .chk-box{background:#22c55e;border-color:#22c55e;color:#fff}
.chk-tag{margin-left:auto;font-size:8px;padding:1px 5px;border-radius:0;font-weight:600;flex-shrink:0}
.chk-tag.safe{background:rgba(34,197,94,.12);color:#22c55e}
.chk-tag.warn{background:rgba(245,158,11,.12);color:#f59e0b}

/* System cards */
.sys-card{background:rgba(255,255,255,.02);border:1px solid #1e293b;border-radius:0;padding:12px;display:flex;flex-direction:column;gap:6px}
.sys-card-hd{display:flex;align-items:center;gap:8px}
.sys-card-icon{width:30px;height:30px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.sys-card-title{font-size:11px;font-weight:700;color:#e2e8f0}
.sys-card-desc{font-size:9px;color:#6b7d94}
.sys-card-btn{margin-top:2px;align-self:flex-start;font-size:9px;padding:3px 10px;border-radius:0;border:none;cursor:pointer;font-weight:600;transition:opacity .2s}
.sys-card-btn:hover{opacity:.85}
.sys-card-btn.primary{background:#22c55e;color:#fff}
.sys-card-btn.ghost{background:rgba(255,255,255,.04);color:#b8c4d0}
.task-status.running{animation:mon-breathe 2.5s ease-in-out infinite}
@keyframes mon-breathe{0%,100%{opacity:1}50%{opacity:.55}}
/* ===== Monitor scrollbar theme ===== */
.opt-ui ::-webkit-scrollbar{width:4px;height:4px}
.opt-ui ::-webkit-scrollbar-track{background:transparent}
.opt-ui ::-webkit-scrollbar-thumb{background:rgba(59,130,246,.15);border-radius:0}
.opt-ui ::-webkit-scrollbar-thumb:hover{background:rgba(59,130,246,.3)}
.opt-ui{scrollbar-width:thin;scrollbar-color:rgba(59,130,246,.15) transparent}

/* ===== Monitor page height fix ===== */
.opt-page{min-height:0}
.opt-page.active{display:flex;flex:1}
.page-col{overflow-y:auto}

/* ===== Enhanced interactions ===== */
.game-btn{transition:all .2s;cursor:pointer}
.game-btn:hover{opacity:.85;transform:scale(1.04)}
.game-btn:active{transform:scale(.97)}
.sys-card-btn{transition:all .2s}
.sys-card-btn:hover{transform:scale(1.03)}
.sys-card-btn:active{transform:scale(.97)}

/* ===== Fixed hover effects (no jitter) ===== */
.task-item{cursor:pointer;transition:all .25s}
.task-item:hover{background:rgba(59,130,246,.06)}
.game-item{cursor:pointer;transition:all .25s}
.game-item:hover{background:rgba(59,130,246,.06)}
.chk-item{transition:all .2s}
.sys-card{transition:all .3s;cursor:pointer}
.sys-card:hover{background:rgba(59,130,246,.04);box-shadow:0 0 12px rgba(0,0,0,.2)}
.opt-sb-item{transition:all .2s}
.mini-card{transition:all .2s;cursor:default}
.mini-card:hover{background:rgba(59,130,246,.04)}

/* ===== Staggered entry animations ===== */
.task-item{opacity:0;animation:mon-slideIn .4s ease forwards}
.task-item:nth-child(2){animation-delay:.05s}
.task-item:nth-child(3){animation-delay:.1s}
.task-item:nth-child(4){animation-delay:.15s}
.task-item:nth-child(5){animation-delay:.2s}
.task-item:nth-child(6){animation-delay:.25s}
.task-item:nth-child(7){animation-delay:.3s}
@keyframes mon-slideIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* Score ring draw animation */
.score-ring .ring-fg{stroke-dashoffset:201;animation:mon-ringDraw 1.6s .3s cubic-bezier(.22,1,.36,1) forwards}
@keyframes mon-ringDraw{to{stroke-dashoffset:30}}

/* Score card pop */
.score-card{opacity:0;transform:scale(.92);animation:mon-cardPop .5s .2s cubic-bezier(.22,1,.36,1) forwards}
@keyframes mon-cardPop{to{opacity:1;transform:scale(1)}}

/* Mini cards stagger */
.mini-card{opacity:0;animation:mon-fadeUp .35s ease forwards}
.mini-cards .mini-card:nth-child(1){animation-delay:.35s}
.mini-cards .mini-card:nth-child(2){animation-delay:.45s}
.mini-cards .mini-card:nth-child(3){animation-delay:.55s}
.mini-cards .mini-card:nth-child(4){animation-delay:.65s}
@keyframes mon-fadeUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

/* Progress bar fill animation */
.progress-fill{transition:width 1.8s .4s cubic-bezier(.22,1,.36,1)}

/* Progress card entry */
.opt-progress-card{opacity:0;animation:mon-fadeIn .4s .7s ease forwards}
@keyframes mon-fadeIn{to{opacity:1}}

/* Task status badges entry */
.task-status{opacity:0;animation:mon-badgePop .3s ease forwards}
.task-item:nth-child(1) .task-status{animation-delay:.15s}
.task-item:nth-child(2) .task-status{animation-delay:.2s}
.task-item:nth-child(3) .task-status{animation-delay:.25s}
.task-item:nth-child(4) .task-status{animation-delay:.3s}
.task-item:nth-child(5) .task-status{animation-delay:.35s}
.task-item:nth-child(6) .task-status{animation-delay:.4s}
@keyframes mon-badgePop{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}

/* Running status pulse */
.task-status.running{animation:mon-badgePop .3s .3s ease forwards,mon-breathe 2.5s 1s ease-in-out infinite}

/* Bottom bar data subtle tick */
.opt-bottombar span{transition:opacity .3s}
.mon-tick{animation:mon-dataTick .3s ease}
@keyframes mon-dataTick{0%{opacity:1}40%{opacity:.5}100%{opacity:1}}

/* Game/sys card entry animations */
.game-item{opacity:0;animation:mon-slideIn .4s ease forwards}
.game-item:nth-child(2){animation-delay:.05s}
.game-item:nth-child(3){animation-delay:.1s}
.game-item:nth-child(4){animation-delay:.15s}
.game-item:nth-child(5){animation-delay:.2s}
.game-item:nth-child(6){animation-delay:.25s}
.sys-card{opacity:0;animation:mon-slideIn .4s ease forwards}
.sys-card:nth-child(2){animation-delay:.08s}
.sys-card:nth-child(3){animation-delay:.16s}
.sys-card:nth-child(4){animation-delay:.24s}
.chk-item{opacity:0;animation:mon-slideIn .35s ease forwards}
.chk-item:nth-child(2){animation-delay:.04s}
.chk-item:nth-child(3){animation-delay:.08s}
.chk-item:nth-child(4){animation-delay:.12s}
.chk-item:nth-child(5){animation-delay:.16s}
.chk-item:nth-child(6){animation-delay:.2s}
.chk-item:nth-child(7){animation-delay:.24s}
.chk-item:nth-child(8){animation-delay:.28s}
.chk-item:nth-child(9){animation-delay:.32s}

/* Overflow fix */
.opt-page{overflow:hidden!important}
.page-col{overflow-y:auto;overflow-x:hidden}
.opt-tasks{overflow-y:auto;overflow-x:hidden}
/* ===== Order Report Card ===== */
.order-card{width:440px;background:#12121a;border-radius:0;padding:0;position:relative;overflow:visible;z-index:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3)) drop-shadow(0 12px 24px rgba(0,0,0,.2));opacity:0;animation:order-slide .7s ease-out .3s forwards;border:1px solid #1e293b;border-left:3px solid #06b6d4}
.order-card::before{content:"";position:absolute;bottom:-4px;left:8px;right:8px;height:8px;background:rgba(0,0,0,.2);filter:blur(4px);border-radius:0;z-index:-1}
@keyframes order-slide{0%{opacity:0;transform:translateY(60px) scale(.95)}100%{opacity:1;transform:translateY(0) scale(1)}}
.order-inner{border:1px solid #1e293b;border-radius:0;padding:26px 28px 20px;position:relative;background:#12121a;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.02'/%3E%3C/svg%3E")}
.order-hd{text-align:center;margin-bottom:14px}
.order-title{font-family:"JetBrains Mono","Noto Sans SC",monospace;font-size:17px;font-weight:700;color:#e2e8f0;letter-spacing:.04em}
.order-subtitle{font-size:9px;color:#6b7d94;letter-spacing:.12em;text-transform:uppercase;margin-top:3px;font-family:"JetBrains Mono",monospace}
.order-status-bar{text-align:center;font-size:14px;font-weight:700;padding:8px 0;margin-bottom:14px;border-top:1px solid #1e293b;border-bottom:1px solid #1e293b;display:flex;align-items:center;justify-content:center;gap:8px}
.order-status-bar.completed{color:#22c55e}
.order-status-bar.progress{color:#3b82f6}
.order-section{margin-bottom:12px}
.order-section-title{font-size:9px;color:#b8c4d0;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;font-weight:600;font-family:"JetBrains Mono",monospace}
.order-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0}
.order-label{font-size:11.5px;color:#b8c4d0;letter-spacing:.04em}
.order-val{font-size:12.5px;color:#e2e8f0;font-weight:500}
.order-divider{height:1px;background:#1e293b;margin:6px 0}
.order-players{display:flex;gap:10px;margin:8px 0}
.order-player-card{flex:1;background:rgba(59,130,246,.04);border:1px solid #1e293b;border-radius:0;padding:8px 10px}
.order-player-role{font-size:8px;color:#b8c4d0;letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin-bottom:4px;font-family:"JetBrains Mono",monospace}
.order-player-name{font-size:13px;font-weight:700;color:#e2e8f0}
.order-player-game{font-size:10px;color:#b8c4d0;margin-top:2px}
.order-screenshot{margin:10px 0 6px;border-radius:0;overflow:hidden;border:1px solid #1e293b;position:relative;height:80px;background:linear-gradient(135deg,#0a0e1a 0%,#0a1020 50%,#0e1828 100%)}
.order-ss-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px}
.order-ss-tag{background:rgba(34,197,94,.15);color:#22c55e;font-size:8px;padding:2px 8px;border-radius:0;font-weight:600;letter-spacing:.05em}
.order-ss-hud{position:absolute;top:6px;left:8px;display:flex;gap:10px;font-size:7px;color:rgba(255,255,255,.4);font-family:"JetBrains Mono",monospace}
.order-ss-game{position:absolute;bottom:6px;right:8px;font-size:8px;color:rgba(255,255,255,.25);font-weight:600;letter-spacing:.06em;font-family:"JetBrains Mono",monospace}
.order-ss-crosshair{width:20px;height:20px;position:relative}
.order-ss-crosshair::before,.order-ss-crosshair::after{content:"";position:absolute;background:rgba(255,255,255,.3)}
.order-ss-crosshair::before{width:1px;height:100%;left:50%;top:0}
.order-ss-crosshair::after{height:1px;width:100%;top:50%;left:0}
.order-ss-minimap{position:absolute;top:6px;right:8px;width:40px;height:40px;border-radius:0;background:rgba(255,255,255,.04);border:1px solid #1e293b}
.order-ss-minimap::after{content:"";position:absolute;width:4px;height:4px;background:#22c55e;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #22c55e}
.order-ss-bar{position:absolute;bottom:6px;left:8px;display:flex;gap:6px;align-items:flex-end}
.order-ss-bar-item{width:3px;border-radius:0;background:rgba(59,130,246,.5)}
.order-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #1e293b}
.order-id{font-size:10px;color:#6b7d94;letter-spacing:.08em;font-weight:500;font-family:"JetBrains Mono",monospace}
.order-stamp{position:absolute;right:18px;bottom:40px;opacity:0;transform:rotate(12deg) scale(2.5);transition:all .3s cubic-bezier(.2,.8,.3,1.2);z-index:2}
.order-stamp.stamped{opacity:.8;transform:rotate(12deg) scale(1)}
.order-print{opacity:0;filter:blur(3px);transform:translateY(4px);transition:opacity .35s ease-out,filter .35s ease-out,transform .35s ease-out}
.order-print.printed{opacity:1;filter:blur(0);transform:translateY(0)}

/* ===== Order Thumbnails ===== */
.order-thumbs{display:flex;gap:8px;margin:8px 0 6px}
.order-thumb{flex:1;display:flex;flex-direction:column;gap:4px}
.order-thumb-img{height:56px;border-radius:0;border:1px solid #1e293b;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.order-thumb-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.2));pointer-events:none}
.order-thumb-label{font-size:8px;color:#b8c4d0;text-align:center;letter-spacing:.02em}