:root{
    --gold:#c9a84c;
    --front:#6c7fe8;
    --mid:#8ba3b8;
    --back:#3d8c6e;
    --red:#e05c5c;
    --bg:#0d0f14;
    --surface:#13161e;
    --surface2:#1a1e2a;
    --text:#eef0f5;
    --muted:#6b7388;
    --border:rgba(255,255,255,.07);
}
 *{
    margin:0;
    padding:0;
    box-sizing:border-box;
}
 body{
    font-family:'DM Sans',sans-serif;
    background:var(--bg);
    color:var(--text);
    min-height:100vh;
}
/* PIN */
 .pin-screen{
    position:fixed;
    inset:0;
    background:var(--bg);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:1.5rem;
    padding:2rem;
}
 .pin-screen.hidden{
    display:none;
}
 .pin-logo{
    font-family:'Playfair Display',serif;
    font-size:2rem;
    font-weight:900;
    text-align:center;
}
 .pin-logo span{
    color:var(--gold);
}
 .pin-sub{
    font-family:'DM Mono',monospace;
    font-size:.72rem;
    letter-spacing:.15em;
    text-transform:uppercase;
    color:var(--muted);
}
 .pin-box{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:14px;
    padding:2rem;
    display:flex;
    flex-direction:column;
    gap:1rem;
    width:100%;
    max-width:320px;
}
 .pin-label{
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    letter-spacing:.15em;
    text-transform:uppercase;
    color:var(--muted);
}
 .pin-input{
    background:var(--surface2);
    border:1px solid var(--border);
    border-radius:8px;
    padding:.85rem;
    font-family:'DM Mono',monospace;
    font-size:1.4rem;
    letter-spacing:.4em;
    color:var(--text);
    text-align:center;
    width:100%;
    outline:none;
    transition:border-color .2s;
}
 .pin-input:focus{
    border-color:rgba(201,168,76,.4);
}
 .pin-input.error{
    border-color:rgba(224,92,92,.6);
    animation:shake .3s;
}
 @keyframes shake{
    0%,100%{
        transform:translateX(0);
    }
    25%{
        transform:translateX(-6px);
    }
    75%{
        transform:translateX(6px);
    }
}
 .pin-btn{
    padding:.9rem;
    background:var(--gold);
    border:none;
    border-radius:8px;
    color:#0d0f14;
    font-family:'DM Mono',monospace;
    font-size:.8rem;
    letter-spacing:.2em;
    text-transform:uppercase;
    font-weight:700;
    cursor:pointer;
    transition:background .2s;
}
 .pin-btn:hover{
    background:#e8c97a;
}
 .pin-hint{
    font-size:.72rem;
    color:var(--muted);
    text-align:center;
    font-family:'DM Mono',monospace;
}
/* TOPBAR */
 .topbar{
    background:var(--surface);
    border-bottom:1px solid var(--border);
    padding:.9rem 1.5rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:.75rem;
    position:sticky;
    top:0;
    z-index:100;
}
 .logo{
    font-family:'Playfair Display',serif;
    font-size:1.1rem;
    font-weight:700;
}
 .logo span{
    color:var(--gold);
}
 .event-sub{
    font-family:'DM Mono',monospace;
    font-size:.68rem;
    letter-spacing:.1em;
    color:var(--muted);
    text-transform:uppercase;
    margin-top:.1rem;
}
 .seller-badge{
    display:inline-flex;
    align-items:center;
    gap:.4rem;
    background:rgba(224,92,92,.12);
    border:1px solid rgba(224,92,92,.3);
    border-radius:5px;
    padding:.25rem .75rem;
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    letter-spacing:.1em;
    color:var(--red);
    text-transform:uppercase;
}
 .sync-dot{
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--back);
    display:inline-block;
    animation:pulse 2s infinite;
}
 @keyframes pulse{
    0%,100%{
        opacity:1;
    }
    50%{
        opacity:.3;
    }
}
 .sync-txt{
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    color:var(--muted);
}
 .btn-logout{
    background:none;
    border:1px solid var(--border);
    border-radius:6px;
    padding:.35rem .75rem;
    color:var(--muted);
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    cursor:pointer;
    transition:all .2s;
}
 .btn-logout:hover{
    border-color:rgba(255,255,255,.25);
    color:var(--text);
}
/* STATS */
 .stats-bar{
    display:flex;
    gap:1px;
    background:var(--border);
    border-bottom:1px solid var(--border);
}
 .stat{
    background:var(--surface);
    padding:.65rem 1.25rem;
    flex:1;
    display:flex;
    align-items:center;
    gap:.7rem;
    min-width:100px;
}
 .stat-dot{
    width:9px;
    height:9px;
    border-radius:50%;
    flex-shrink:0;
}
 .stat-label{
    font-size:.75rem;
    color:var(--muted);
}
 .stat-val{
    font-family:'DM Mono',monospace;
    font-size:.9rem;
    font-weight:500;
    margin-left:auto;
}
/* TABS */
 .tabs{
    display:flex;
    background:var(--surface);
    border-bottom:1px solid var(--border);
}
 .tab-btn{
    padding:.75rem 1.5rem;
    background:none;
    border:none;
    border-bottom:2px solid transparent;
    color:var(--muted);
    font-family:'DM Mono',monospace;
    font-size:.72rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    cursor:pointer;
    transition:all .2s;
}
 .tab-btn.active{
    color:var(--gold);
    border-bottom-color:var(--gold);
}
 .tab-btn:hover:not(.active){
    color:var(--text);
}
 .tab-panel{
    display:none;
}
 .tab-panel.active{
    display:block;
}
/* MAP */
 .map-area{
    padding:1.5rem;
    display:flex;
    gap:1.5rem;
    align-items:flex-start;
}
 .map-left{
    flex:1;
    overflow-x:auto;
}
 .map-right{
    width:270px;
    flex-shrink:0;
    display:flex;
    flex-direction:column;
    gap:1rem;
}
 .stage{
    background:linear-gradient(135deg,rgba(201,168,76,.15),rgba(201,168,76,.06));
    border:2px solid rgba(201,168,76,.45);
    border-radius:10px 10px 0 0;
    text-align:center;
    padding:1rem;
    margin-bottom:.75rem;
    font-family:'DM Mono',monospace;
    font-size:.78rem;
    letter-spacing:.28em;
    color:var(--gold);
    text-transform:uppercase;
}
 .section-header{
    display:flex;
    align-items:center;
    gap:.6rem;
    padding:.45rem .6rem;
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    letter-spacing:.15em;
    text-transform:uppercase;
    border-radius:4px 4px 0 0;
    margin-top:.75rem;
}
 .sh-front{
    background:rgba(108,127,232,.08);
    color:#8b9ff5;
    border-left:3px solid #6c7fe8;
}
 .sh-mid{
    background:rgba(139,163,184,.07);
    color:var(--mid);
    border-left:3px solid var(--mid);
}
 .sh-back{
    background:rgba(61,140,110,.06);
    color:var(--back);
    border-left:3px solid var(--back);
}
 .sh-right{
    margin-left:auto;
    font-size:.6rem;
    opacity:.65;
}
 .row-group{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:.35rem 0;
}
 .seat-row{
    display:flex;
    align-items:center;
}
 .row-label{
    font-family:'DM Mono',monospace;
    font-size:.6rem;
    color:var(--muted);
    width:24px;
    flex-shrink:0;
    text-align:right;
    margin-right:6px;
}
 .block{
    display:flex;
    gap:3px;
}
 .center-aisle{
    width:20px;
    flex-shrink:0;
}
 .seat{
    width:22px;
    height:22px;
    border-radius:3px 3px 5px 5px;
    cursor:pointer;
    flex-shrink:0;
    border:none;
    outline:none;
    transition:transform .1s,box-shadow .12s;
}
 .seat.avail-front{
    background:rgba(108,127,232,.65);
}
 .seat.avail-mid{
    background:rgba(139,163,184,.65);
}
 .seat.avail-back{
    background:rgba(61,140,110,.6);
}
 .seat.sold{
    background:rgba(255,255,255,.08);
}
 .seat.selected{
    background:var(--red)!important;
    box-shadow:0 0 8px rgba(224,92,92,.6)!important;
}
 .seat.avail-front:hover{
    background:#8b9ff5;
    transform:translateY(-2px) scale(1.12);
    box-shadow:0 3px 8px rgba(108,127,232,.4);
}
 .seat.avail-mid:hover{
    background:#aac5d8;
    transform:translateY(-2px) scale(1.12);
    box-shadow:0 3px 8px rgba(139,163,184,.4);
}
 .seat.avail-back:hover{
    background:#5bc49a;
    transform:translateY(-2px) scale(1.12);
    box-shadow:0 3px 8px rgba(61,140,110,.4);
}
 .seat.sold:hover{
    transform:translateY(-1px);
    box-shadow:0 2px 5px rgba(224,92,92,.15);
}
/* PANEL */
 .panel-card{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:12px;
    padding:1.25rem;
}
 .pc-title{
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:.85rem;
}
 .no-sel{
    text-align:center;
    color:var(--muted);
    font-size:.82rem;
    line-height:1.75;
    padding:.75rem 0;
}
 .no-sel-icon{
    font-size:1.8rem;
    margin-bottom:.5rem;
    opacity:.4;
}
 .sel-id{
    font-family:'Playfair Display',serif;
    font-size:2rem;
    font-weight:700;
    margin-bottom:.2rem;
}
 .sel-meta{
    font-size:.78rem;
    color:var(--muted);
    margin-bottom:.6rem;
}
 .sel-price{
    font-family:'Playfair Display',serif;
    font-size:1.4rem;
    color:var(--gold);
    margin-bottom:1rem;
}
 .buyer-input{
    background:var(--surface2);
    border:1px solid var(--border);
    border-radius:8px;
    padding:.7rem .85rem;
    font-family:'DM Sans',sans-serif;
    font-size:.85rem;
    color:var(--text);
    width:100%;
    outline:none;
    transition:border-color .2s;
    margin-bottom:.6rem;
}
 .buyer-input:focus{
    border-color:rgba(201,168,76,.4);
}
 .buyer-input::placeholder{
    color:var(--muted);
}
 .btn-sell{
    width:100%;
    padding:.85rem;
    background:var(--red);
    border:none;
    border-radius:8px;
    color:white;
    font-family:'DM Mono',monospace;
    font-size:.78rem;
    letter-spacing:.15em;
    text-transform:uppercase;
    cursor:pointer;
    transition:background .2s,transform .1s;
    font-weight:500;
    margin-bottom:.5rem;
}
 .btn-sell:hover{
    background:#c94a4a;
    transform:translateY(-1px);
}
 .btn-unsell,.btn-cancel{
    width:100%;
    padding:.55rem;
    background:transparent;
    border:1px solid rgba(255,255,255,.08);
    border-radius:7px;
    color:var(--muted);
    font-family:'DM Mono',monospace;
    font-size:.68rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    cursor:pointer;
    transition:all .2s;
    margin-top:.4rem;
}
 .btn-unsell:hover{
    border-color:rgba(255,255,255,.25);
    color:var(--text);
}
 .btn-cancel{
    border:none;
}
 .btn-cancel:hover{
    color:var(--text);
}
 .legend-grid{
    display:flex;
    flex-direction:column;
    gap:.45rem;
}
 .li{
    display:flex;
    align-items:center;
    gap:.6rem;
    font-size:.78rem;
}
 .ls{
    width:16px;
    height:12px;
    border-radius:2px 2px 3px 3px;
    flex-shrink:0;
}
 .ls-f{
    background:rgba(108,127,232,.65);
}
 .ls-m{
    background:rgba(139,163,184,.65);
}
 .ls-b{
    background:rgba(61,140,110,.6);
}
 .ls-s{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
}
 .ls-sel{
    background:var(--red);
}
 .li-lbl{
    color:var(--muted);
    flex:1;
}
 .li-p{
    font-family:'DM Mono',monospace;
    font-size:.7rem;
    color:var(--gold);
}
 .qc-btn{
    width:100%;
    padding:.55rem;
    background:var(--surface2);
    border:1px solid var(--border);
    border-radius:7px;
    color:var(--muted);
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    letter-spacing:.05em;
    text-transform:uppercase;
    cursor:pointer;
    transition:all .2s;
    margin-bottom:.4rem;
    text-align:center;
    display:block;
}
 .qc-btn:hover{
    border-color:rgba(255,255,255,.2);
    color:var(--text);
}
 .qc-btn.danger:hover{
    border-color:rgba(224,92,92,.4);
    color:var(--red);
}
/* SALES TAB */
 .sales-area{
    padding:1.5rem;
}
 .sales-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:1.25rem;
    flex-wrap:wrap;
    gap:.75rem;
}
 .sales-title{
    font-family:'Playfair Display',serif;
    font-size:1.4rem;
}
 .rev-pill{
    background:rgba(201,168,76,.1);
    border:1px solid rgba(201,168,76,.25);
    border-radius:8px;
    padding:.5rem 1rem;
    font-family:'DM Mono',monospace;
    font-size:.9rem;
    color:var(--gold);
}
 .summary-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
    margin-bottom:1.5rem;
}
 .sum-card{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:10px;
    padding:1rem;
    position:relative;
    overflow:hidden;
}
 .sum-card::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:3px;
    height:100%;
}
 .sum-card.sf::before{
    background:#6c7fe8;
}
 .sum-card.sm::before{
    background:var(--mid);
}
 .sum-card.sb::before{
    background:var(--back);
}
 .sc-lbl{
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    letter-spacing:.15em;
    text-transform:uppercase;
    margin-bottom:.5rem;
}
 .sum-card.sf .sc-lbl{
    color:#8b9ff5;
}
 .sum-card.sm .sc-lbl{
    color:var(--mid);
}
 .sum-card.sb .sc-lbl{
    color:var(--back);
}
 .sc-count{
    font-family:'Playfair Display',serif;
    font-size:1.8rem;
    font-weight:700;
    margin-bottom:.15rem;
}
 .sum-card.sf .sc-count{
    color:#8b9ff5;
}
 .sum-card.sm .sc-count{
    color:var(--mid);
}
 .sum-card.sb .sc-count{
    color:var(--back);
}
 .sc-rev{
    font-family:'DM Mono',monospace;
    font-size:.78rem;
    color:var(--muted);
}
 .table-wrap{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:12px;
    overflow:hidden;
}
 .table-head{
    display:grid;
    grid-template-columns:80px 110px 1fr 130px 90px;
    padding:.75rem 1.25rem;
    background:rgba(255,255,255,.02);
    border-bottom:1px solid var(--border);
}
 .table-head span{
    font-family:'DM Mono',monospace;
    font-size:.65rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--muted);
}
 .table-row{
    display:grid;
    grid-template-columns:80px 110px 1fr 130px 90px;
    padding:.75rem 1.25rem;
    border-bottom:1px solid rgba(255,255,255,.03);
    align-items:center;
    transition:background .15s;
}
 .table-row:last-child{
    border-bottom:none;
}
 .table-row:hover{
    background:rgba(255,255,255,.02);
}
 .tr-id{
    font-family:'DM Mono',monospace;
    font-size:.82rem;
    font-weight:500;
}
 .tr-sec span{
    font-family:'DM Mono',monospace;
    font-size:.7rem;
    padding:.2rem .5rem;
    border-radius:4px;
}
 .tr-sec.sf span{
    background:rgba(108,127,232,.12);
    color:#8b9ff5;
}
 .tr-sec.sm span{
    background:rgba(139,163,184,.1);
    color:var(--mid);
}
 .tr-sec.sb span{
    background:rgba(61,140,110,.1);
    color:var(--back);
}
 .tr-buyer{
    font-size:.82rem;
    color:var(--muted);
}
 .tr-time{
    font-family:'DM Mono',monospace;
    font-size:.7rem;
    color:var(--muted);
}
 .tr-price{
    font-family:'DM Mono',monospace;
    font-size:.82rem;
    text-align:right;
    color:var(--gold);
}
 .empty-state{
    text-align:center;
    padding:3rem;
    color:var(--muted);
    font-size:.85rem;
    line-height:1.85;
}
/* TOAST */
 #toast{
    position:fixed;
    bottom:1.5rem;
    left:50%;
    transform:translateX(-50%) translateY(80px);
    background:var(--surface2);
    border:1px solid var(--border);
    border-radius:10px;
    padding:.75rem 1.5rem;
    font-family:'DM Mono',monospace;
    font-size:.78rem;
    color:var(--text);
    transition:transform .3s cubic-bezier(.34,1.56,.64,1);
    z-index:9999;
    pointer-events:none;
    white-space:nowrap;
}
 #toast.show{
    transform:translateX(-50%) translateY(0);
}
 #toast.success{
    border-color:rgba(61,140,110,.5);
    color:#5bc49a;
}
 #toast.error{
    border-color:rgba(224,92,92,.4);
    color:var(--red);
}
 .loading-overlay{
    position:fixed;
    inset:0;
    background:var(--bg);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:1rem;
    z-index:9998;
    transition:opacity .4s;
}
 .loading-overlay.hidden{
    opacity:0;
    pointer-events:none;
}
 .loading-text{
    font-family:'DM Mono',monospace;
    font-size:.8rem;
    letter-spacing:.2em;
    color:var(--muted);
    text-transform:uppercase;
}
 .spinner{
    width:28px;
    height:28px;
    border:2px solid rgba(201,168,76,.2);
    border-top-color:var(--gold);
    border-radius:50%;
    animation:spin .8s linear infinite;
}
 @keyframes spin{
    to{
        transform:rotate(360deg);
    }
}
 ::-webkit-scrollbar{
    width:4px;
}
 ::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.1);
    border-radius:2px;
}
 @media(max-width:900px){
    .map-area{
        flex-direction:column;
    }
    .map-right{
        width:100%;
    }
    .summary-grid{
        grid-template-columns:1fr 1fr;
    }
    .table-head,.table-row{
        grid-template-columns:70px 100px 1fr 90px;
    }
    .tr-time{
        display:none;
    }
}
 @media(max-width:600px){
    .stats-bar{
        flex-wrap:wrap;
    }
    .stat{
        min-width:45%;
    }
    .seat{
        width:18px;
        height:14px;
    }
    .center-aisle{
        width:14px;
    }
}

.pin-input[type="text"], 
.pin-input[type="password"] {
    font-family:'DM Sans',sans-serif;
    font-size:1rem;
    letter-spacing:normal;
    text-align:left;
}

.error-message {
    color:var(--red);
    font-family:'DM Mono',monospace;
    font-size:.7rem;
    text-align:center;
    min-height:1.5rem;
}

.pin-box form {
    width:100%;
    display:flex;
    flex-direction:column;
    gap:1rem;
}
