*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;min-height:100%;background:#080808}.sf-cell{display:inline-flex;flex-direction:column;width:22px;height:38px;border-radius:3px;margin:0 1px;overflow:hidden;position:relative;background:#1c1c1c;box-shadow:0 1px 4px #000000b3,inset 0 1px #ffffff0a;flex-shrink:0}.sf-top{flex:1;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;background:#232323;transform-origin:bottom center}.sf-top span{font-family:Share Tech Mono,Courier New,monospace;font-size:21px;color:#f5a623;line-height:38px;height:38px;display:block;transform:translateY(50%);text-shadow:0 0 8px rgba(245,166,35,.4);-webkit-user-select:none;user-select:none}.sf-gap{height:1.5px;background:#080808;flex-shrink:0;z-index:2}.sf-bottom{flex:1;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;background:#1c1c1c}.sf-bottom span{font-family:Share Tech Mono,Courier New,monospace;font-size:21px;color:#f5a623;line-height:38px;height:38px;display:block;transform:translateY(-50%);text-shadow:0 0 8px rgba(245,166,35,.4);-webkit-user-select:none;user-select:none}.sf-cell.sf-flipping .sf-top{animation:flapFold calc(var(--flip-dur, .3s) * .9) ease-in}.sf-cell.sf-landing .sf-bottom{animation:flapUnfold calc(var(--flip-dur, .3s) * .75) ease-out}@keyframes flapFold{0%{transform:perspective(120px) rotateX(0);filter:brightness(1)}60%{transform:perspective(120px) rotateX(-60deg);filter:brightness(.3)}to{transform:perspective(120px) rotateX(-90deg);filter:brightness(0)}}@keyframes flapUnfold{0%{transform:perspective(120px) rotateX(90deg);filter:brightness(0)}40%{transform:perspective(120px) rotateX(30deg);filter:brightness(.5)}to{transform:perspective(120px) rotateX(0);filter:brightness(1)}}.user-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.user-avatar-img{border-radius:50%;object-fit:cover;border:1px solid #2a2a2a;box-shadow:0 0 6px #f5a62340;display:block}.user-avatar-name{font-family:Share Tech Mono,monospace;font-size:8px;color:#555;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;overflow:hidden;max-width:48px;text-overflow:ellipsis;text-align:center}.combined-row{display:flex;align-items:center;gap:20px;padding:0 20px;height:76px;border-bottom:1px solid #1a1a1a;background:#111;position:relative}.combined-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--row-accent, #333);transition:background .6s}.col-combined-name,.col-combined-dest{flex-shrink:0}.board{width:100%;max-width:960px;background:#0d0d0d;border:1px solid #222;border-radius:6px;overflow:hidden;box-shadow:0 0 0 1px #1a1a1a,0 4px 32px #000c,0 0 60px #f5a6230a;font-family:Share Tech Mono,monospace}.board-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:48px;background:#0a0a0a;border-bottom:2px solid #1e1e1e}.board-title{display:flex;align-items:center;gap:10px}.board-icon{font-size:18px;filter:drop-shadow(0 0 6px rgba(245,166,35,.6))}.board-name{color:#f5a623;font-size:14px;letter-spacing:3px;text-transform:uppercase;text-shadow:0 0 10px rgba(245,166,35,.4)}.board-badge{font-size:11px;color:#555;letter-spacing:1px;padding:2px 8px;border:1px solid #2a2a2a;border-radius:3px;margin-left:8px}.board-badge.mock{color:#ff9800;border-color:#3a2a10}.board-header-right{display:flex;align-items:center;gap:14px}.board-clock{color:#f5a623;font-size:20px;letter-spacing:4px;text-shadow:0 0 10px rgba(245,166,35,.5)}.settings-btn{background:none;border:1px solid #2a2a2a;border-radius:4px;color:#444;font-size:16px;width:30px;height:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s;line-height:1;padding:0}.settings-btn:hover,.settings-btn.active{color:#f5a623;border-color:#f5a623}.settings-panel{background:#0b0b0b;border-bottom:1px solid #1e1e1e;padding:12px 20px;display:flex;flex-direction:column;gap:10px}.setting-row{display:flex;align-items:center;gap:12px}.setting-label{font-size:10px;letter-spacing:2px;color:#555;width:110px;flex-shrink:0;text-transform:uppercase}.setting-row input[type=range]{flex:1;accent-color:#F5A623;height:3px;cursor:pointer}.setting-val{font-size:11px;color:#f5a623;letter-spacing:1px;width:44px;text-align:right;flex-shrink:0}.board-cols{display:flex;align-items:center;gap:20px;padding:0 20px;height:26px;background:#0e0e0e;border-bottom:1px solid #1a1a1a}.col-label{color:#3a3a3a;font-size:10px;letter-spacing:2px;text-transform:uppercase;flex-shrink:0}.col-label-dir{width:48px}.col-label-logo{width:90px}.col-label-flight{min-width:168px}.col-label-time{min-width:120px}.col-label-airport{min-width:312px}.col-label-venue{min-width:168px}.col-label-combined-name,.col-label-combined-dest{min-width:288px}.board-rows{min-height:76px}.board-empty{display:flex;align-items:center;justify-content:center;height:152px;color:#2a2a2a;font-size:13px;letter-spacing:3px}.board-progress{height:2px;background:#161616;position:relative;overflow:hidden}.board-progress-bar{position:absolute;top:0;left:0;height:100%;width:0;background:linear-gradient(90deg,#f5a623,#ffd54f);animation:progressFill linear forwards}@keyframes progressFill{0%{width:0%}to{width:100%}}.board-footer{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:30px;background:#090909;border-top:1px solid #1a1a1a;color:#333;font-size:10px;letter-spacing:2px}.board-footer a{color:#444;text-decoration:none}.board-footer a:hover{color:#666}.board-pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4caf50;margin-right:6px;animation:pulse 2s ease-in-out infinite;vertical-align:middle}.board-pulse.stale{background:#ff9800}.board-pulse.error{background:#f44336;animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.flight-row{display:flex;align-items:center;gap:20px;padding:0 20px;height:76px;border-bottom:1px solid #1a1a1a;background:#111;position:relative}.flight-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--row-accent, #333);transition:background .6s}.col-direction{width:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.col-logo{width:90px;flex-shrink:0}.logo-wrap-inner{display:flex;flex-direction:column;align-items:center;gap:4px}.airline-logo{width:76px;height:32px;object-fit:contain;filter:brightness(.92) contrast(1.1)}.airline-logo-fallback{width:76px;height:32px;background:#1e1e1e;border:1px solid #2a2a2a;border-radius:3px;display:flex;align-items:center;justify-content:center;color:#f5a623;font-family:Share Tech Mono,monospace;font-size:13px;letter-spacing:2px}.airline-name{font-family:Share Tech Mono,monospace;font-size:9px;color:#555;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;overflow:hidden;max-width:90px;text-align:center}.col-flight,.col-time,.col-airport{flex-shrink:0}.untappd-row{display:flex;align-items:center;gap:20px;padding:0 20px;height:76px;border-bottom:1px solid #1a1a1a;background:#111;position:relative}.untappd-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--row-accent, #333);transition:background .6s}.col-venue{flex-shrink:0}.app{width:100vw;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px 16px;background:#080808;background-image:radial-gradient(ellipse at 50% 0%,rgba(245,166,35,.03) 0%,transparent 60%)}.mode-bar{display:flex;gap:8px}.mode-btn{background:none;border:1px solid #2a2a2a;border-radius:4px;color:#444;font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:2px;padding:6px 16px;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.mode-btn:hover{color:#888;border-color:#444}.mode-btn.active{color:#f5a623;border-color:#f5a623;background:#f5a6230f;text-shadow:0 0 8px rgba(245,166,35,.4)}
