:root{
  --blue-900:#043B73;
  --blue-800:#05508E;
  --blue-700:#0868B2; /* logo-like blue */
  --blue-600:#197CC3;
  --blue-500:#2A8BD6;

  --bg:#ffffff;
  --surface:#ffffff;
  --surface-2:#f6f9ff;
  --stroke:#d7e3f5;
  --stroke-2:#c6d8f2;

  --ink:#0b1220;
  --muted:#4d5a73;

  --shadow:0 10px 26px rgba(6, 34, 73, .14);
  --shadow-soft:0 6px 16px rgba(6, 34, 73, .10);
  --r:18px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans";
  color:var(--ink);
  background: var(--bg);
  -webkit-tap-highlight-color: transparent;
}

/* Top bar – no blur */
.topbar{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between;
  padding: env(safe-area-inset-top) 14px 12px;
  gap:12px;
  background: #fff;
  border-bottom: 1px solid var(--stroke);
  box-shadow: var(--shadow-soft);
}

.brand{display:flex; align-items:center; gap:10px; min-width:0}
.brand-logo{
  width:46px; height:46px; object-fit:contain;
  border-radius:14px;
  background: var(--surface-2);
  border:1px solid var(--stroke);
  padding:6px
}
.brand-text{min-width:0}
.brand-title{font-weight:900; letter-spacing:.2px; line-height:1.1; color: var(--blue-900)}
.brand-subtitle{font-size:.9rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:58vw}

.container{
  padding: 12px 14px calc(24px + env(safe-area-inset-bottom));
  display:grid;
  gap:12px;
  max-width: 980px;
  margin: 0 auto;
}

.card{
  background: var(--surface);
  border:1px solid var(--stroke);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 14px;
}

video::-webkit-media-controls {
  display: none !important;
}
video::-webkit-media-controls-enclosure {
  display: none !important;
}
video::-webkit-media-controls-panel {
  display: none !important;
}
video::-webkit-media-controls-play-button {
  display: none !important;
}
video::-webkit-media-controls-start-playback-button {
  display: none !important;
}

.actions{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  margin-top:12px;
}
@media (min-width: 760px){
  .actions{grid-template-columns: 1fr 1fr 1fr;}
}

.btn{
  appearance:none;
  border:1px solid var(--stroke-2);
  background: #fff;
  color: var(--blue-900);
  padding: 12px 14px;
  border-radius: 16px;
  font-weight: 900;
  font-size: 1rem;
  cursor: pointer;
  user-select:none;
  transition: transform .06s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
  box-shadow: 0 4px 10px rgba(6, 34, 73, .06);
}
.btn:active{transform: translateY(1px) scale(.99)}
.btn:hover{border-color: var(--blue-500); background: #f2f7ff}
.btn.primary{
  background: linear-gradient(180deg, var(--blue-700), var(--blue-800));
  border-color: transparent;
  color:#fff;
  box-shadow: 0 10px 18px rgba(4, 59, 115, .22);
}
.btn.primary:hover{filter: brightness(1.02)}
.btn.ghost{
  background: #fff;
  border-color: var(--stroke);
  color: var(--blue-900);
  box-shadow: none;
}
.btn.wide{width:100%}
.btn.file{display:flex; align-items:center; justify-content:center; gap:10px; position:relative; overflow:hidden}
.btn.file input{
  position:absolute; inset:0;
  opacity:0;
  cursor:pointer;
}

.meta{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-top:10px;
}
.pill{
  display:inline-flex; align-items:center; gap:8px;
  background: #f2f7ff;
  border:1px solid var(--stroke);
  padding: 7px 10px;
  border-radius: 999px;
  font-weight:900;
  font-size:.95rem;
  color: var(--blue-900);
}
.pill.subtle{color: var(--blue-900); opacity:.92}

h2{
  margin: 0 0 10px;
  font-size: 1.1rem;
  letter-spacing: .2px;
  color: var(--blue-900);
}

.thumbs{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
  gap:10px;
  padding-bottom: 6px;
}
.thumb{
  position:relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 14px;
  overflow:hidden;
  border:1px solid var(--stroke);
  background: #0b122005;
}
.thumb img{width:100%; height:100%; object-fit:cover; display:block}
.thumb .remove{
  position:absolute; top:6px; right:6px;
  width:30px; height:30px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.70);
  background: rgba(11, 18, 32, .55);
  color: #fff;
  font-weight: 900;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
}

.note{margin-top: 12px; display:grid; gap:8px}
.note label{font-weight:900; color: var(--blue-900)}
textarea{
  width:100%;
  border-radius: 16px;
  border:1px solid var(--stroke);
  background: #fff;
  color: var(--ink);
  padding: 12px 12px;
  font-size: 1rem;
  line-height:1.3;
  resize: vertical;
  outline:none;
  box-shadow: 0 4px 10px rgba(6, 34, 73, .06);
}
textarea:focus{border-color: var(--blue-500); box-shadow: 0 6px 14px rgba(6, 34, 73, .10)}
textarea::placeholder{color: #667693}

.send-row{
  margin-top: 12px;
  display:grid;
  gap:10px;
}
@media (min-width: 760px){
  .send-row{grid-template-columns: 1fr 1fr;}
}
.badge{
  margin-left:8px;
  font-size:.75rem;
  padding:4px 8px;
  border-radius:999px;
  background: rgba(4, 59, 115, .10);
  border:1px solid rgba(4, 59, 115, .18);
  color: var(--blue-900);
}

.help{
  margin: 10px 0 0;
  color: #4d5a73;
  font-size: .95rem;
}
code{
  background: #f2f7ff;
  padding:2px 6px;
  border-radius: 8px;
  border:1px solid var(--stroke);
}

/* Toast */
.toast{
  position: fixed;
  left: 50%;
  bottom: calc(14px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  background: rgba(11, 18, 32, .88);
  color:#fff;
  border: 1px solid rgba(255,255,255,.18);
  padding: 10px 12px;
  border-radius: 14px;
  box-shadow: 0 10px 20px rgba(0,0,0,.22);
  max-width: min(720px, calc(100vw - 28px));
  width: fit-content;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.toast.show{
  opacity:1;
  transform: translateX(-50%) translateY(-2px);
}

/* Viewer page helpers */
.viewer .note-pre{
  white-space: pre-wrap;
  margin: 0;
  background: #f2f7ff;
  border:1px solid var(--stroke);
  border-radius: 16px;
  padding: 12px;
  color: var(--ink);
}
.grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
@media (min-width: 760px){
  .grid{grid-template-columns: repeat(3, minmax(0, 1fr))}
}
.grid-item{
  text-decoration:none;
  color: inherit;
  border-radius: 16px;
  overflow:hidden;
  border:1px solid var(--stroke);
  background: #fff;
  box-shadow: 0 8px 16px rgba(6, 34, 73, .10);
  cursor: pointer;
  transition: transform .15s ease;
}
.grid-item:hover{transform: scale(1.02)}
.grid-item img{width:100%; height: 180px; object-fit: cover; display:block}
.grid-cap{padding: 8px 10px; font-weight:900; font-size:.95rem; color: var(--blue-900)}

/* Camera Modal */
.camera-modal{
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: #000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.camera-modal video{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.camera-close{
  position: absolute;
  top: max(20px, env(safe-area-inset-top));
  right: 20px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(0, 0, 0, .6);
  border: 2px solid rgba(255, 255, 255, .4);
  color: #fff;
  font-size: 32px;
  font-weight: 300;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2001;
  transition: background .2s ease;
}
.camera-close:hover{background: rgba(0, 0, 0, .8)}
.camera-controls{
  position: absolute;
  bottom: max(40px, calc(40px + env(safe-area-inset-bottom)));
  left: 50%;
  transform: translateX(-50%);
  z-index: 2001;
}
.camera-shutter{
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: transparent;
  border: 4px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform .1s ease;
  padding: 0;
}
.camera-shutter:active{transform: scale(.9)}
.shutter-button{
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #fff;
  transition: background .1s ease;
}
.camera-shutter:active .shutter-button{background: #e0e0e0}

/* Lightbox */
.lightbox{
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(11, 18, 32, .95);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.lightbox-img{
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}
.lightbox-close{
  position: absolute;
  top: 20px;
  right: 20px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .15);
  border: 1px solid rgba(255, 255, 255, .3);
  color: #fff;
  font-size: 32px;
  font-weight: 300;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease;
  z-index: 1001;
}
.lightbox-close:hover{background: rgba(255, 255, 255, .25)}
.lightbox-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .15);
  border: 1px solid rgba(255, 255, 255, .3);
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease;
  z-index: 1001;
}
.lightbox-nav:hover{background: rgba(255, 255, 255, .25)}
.lightbox-prev{left: 20px}
.lightbox-next{right: 20px}
.lightbox-counter{
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, .15);
  border: 1px solid rgba(255, 255, 255, .3);
  color: #fff;
  padding: 8px 16px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 14px;
}
