/* =====================================================================
   Plane Scanner — light sky/clouds theme
   ===================================================================== */
:root{
  --sky-1:#eaf4ff;
  --sky-2:#d4e9ff;
  --sky-3:#bfe0ff;
  --ink:#1b2a3a;
  --ink-soft:#5b7088;
  --accent:#1f8fff;
  --accent-dark:#0066d6;
  --cloud:#ffffff;
  --line:rgba(31,143,255,.14);
  --shadow:0 8px 30px rgba(31,80,140,.12);
  --radius:16px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,var(--sky-1) 0%,#f7fbff 60%,#ffffff 100%);
  min-height:100vh;
}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent-dark);}
img{max-width:100%;display:block;}

/* ---- Header ---- */
.ps-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.ps-header-inner{
  max-width:1280px;margin:0 auto;padding:14px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.ps-logo{
  display:flex;align-items:center;gap:10px;
  font-weight:800;font-size:20px;color:var(--ink);letter-spacing:-.02em;
}
.ps-logo i{color:var(--accent);transform:rotate(-45deg);}
.ps-nav{display:flex;align-items:center;gap:8px;}
.ps-nav a{
  padding:8px 16px;border-radius:10px;font-weight:600;font-size:14px;color:var(--ink-soft);
}
.ps-nav a:hover,.ps-nav a.active{background:var(--sky-2);color:var(--accent-dark);}
.ps-lang select{
  border:1px solid var(--line);border-radius:10px;padding:7px 10px;
  background:#fff;color:var(--ink);font-weight:600;font-size:14px;cursor:pointer;
}

/* ---- Hero ---- */
.ps-hero{
  max-width:1280px;margin:0 auto;padding:48px 20px 24px;text-align:center;
}
.ps-hero h1{
  font-size:clamp(28px,5vw,46px);font-weight:800;margin:0 0 10px;letter-spacing:-.03em;
}
.ps-hero p{color:var(--ink-soft);font-size:17px;margin:0;}

/* ---- Gallery grid ---- */
.ps-wrap{max-width:1280px;margin:0 auto;padding:20px;}
.ps-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;
}
.ps-card{
  background:var(--cloud);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;
  border:1px solid rgba(255,255,255,.6);
}
.ps-card:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(31,80,140,.18);}
.ps-card-img{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--sky-2);}
.ps-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.ps-card:hover .ps-card-img img{transform:scale(1.05);}
.ps-card-badge{
  position:absolute;top:10px;left:10px;
  background:rgba(27,42,58,.78);color:#fff;font-size:12px;font-weight:700;
  padding:4px 10px;border-radius:20px;display:flex;align-items:center;gap:5px;
}
.ps-card-badge.video{background:rgba(255,60,60,.85);}
.ps-card-body{padding:14px 16px;}
.ps-card-title{font-weight:700;font-size:16px;margin:0 0 4px;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ps-card-meta{display:flex;gap:14px;color:var(--ink-soft);font-size:13px;}
.ps-card-meta span{display:flex;align-items:center;gap:4px;}

/* ---- Single item page ---- */
.ps-single{max-width:1100px;margin:0 auto;padding:24px 20px;}
.ps-single-media{
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#000;
  margin-bottom:24px;
}
.ps-single-media img{width:100%;height:auto;cursor:zoom-in;}
.ps-single-media video{width:100%;height:auto;display:block;}
.ps-single h1{font-size:28px;font-weight:800;margin:0 0 8px;}
.ps-single-date{color:var(--ink-soft);font-size:14px;margin-bottom:20px;}
.ps-single-desc{font-size:16px;line-height:1.7;color:var(--ink);margin-bottom:24px;}
.ps-specs{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;
  background:var(--sky-1);border-radius:var(--radius);padding:20px;margin-bottom:24px;
}
.ps-spec{display:flex;flex-direction:column;gap:2px;}
.ps-spec-label{font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;}
.ps-spec-val{font-size:15px;font-weight:700;color:var(--ink);}

/* ---- Action bar (likes/views/share) ---- */
.ps-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:24px;}
.ps-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:12px;border:1px solid var(--line);
  background:#fff;color:var(--ink);font-weight:600;font-size:14px;cursor:pointer;transition:all .15s;
}
.ps-btn:hover{border-color:var(--accent);background:var(--sky-1);}
.ps-btn.liked{background:#ffe8e8;border-color:#ff5a5a;color:#d11;}
.ps-btn i{font-size:15px;}
.ps-views{color:var(--ink-soft);font-size:14px;display:flex;align-items:center;gap:6px;}
.ps-share{display:flex;gap:8px;margin-left:auto;}
.ps-share a{
  width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:var(--sky-1);color:var(--accent-dark);font-size:16px;transition:all .15s;
}
.ps-share a:hover{background:var(--accent);color:#fff;}

/* ---- Live map ---- */
#ps-map{height:calc(100vh - 200px);min-height:480px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.ps-map-stats{
  display:flex;gap:20px;justify-content:center;margin:16px 0;color:var(--ink-soft);font-size:14px;
}
.ps-map-stats b{color:var(--accent-dark);}

/* ---- Footer ---- */
.ps-footer{
  margin-top:60px;border-top:1px solid var(--line);background:rgba(255,255,255,.6);
  padding:30px 20px;text-align:center;color:var(--ink-soft);font-size:14px;
}

/* ---- Back / load more ---- */
.ps-loadmore{text-align:center;margin:30px 0;}
.ps-loadmore button{
  padding:12px 30px;border-radius:12px;border:none;background:var(--accent);color:#fff;
  font-weight:700;font-size:15px;cursor:pointer;transition:background .15s;
}
.ps-loadmore button:hover{background:var(--accent-dark);}
.ps-back{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);font-weight:600;margin-bottom:16px;}

/* ---- Empty ---- */
.ps-empty{text-align:center;padding:60px 20px;color:var(--ink-soft);}
.ps-empty i{font-size:48px;opacity:.3;margin-bottom:16px;}

/* ---- Responsive ---- */
@media(max-width:600px){
  .ps-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
  .ps-nav a{padding:6px 10px;font-size:13px;}
  .ps-logo{font-size:17px;}
  .ps-header-inner{padding:12px 14px;}
  .ps-share{margin-left:0;width:100%;}
}
