/* =========================================================
   七年四班 · 上传面板（文字 / 照片）
   ========================================================= */
.up-mask{position:fixed;inset:0;z-index:80;display:none;background:rgba(2,5,10,.66);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.up-mask.on{display:block}
.up-sheet{position:fixed;left:0;right:0;bottom:0;z-index:81;display:none;
  padding:0 12px calc(12px + env(safe-area-inset-bottom))}
.up-sheet.on{display:block}
.up-in{max-width:540px;margin:0 auto;border:1px solid var(--line-2);border-radius:20px;overflow:hidden;
  background:linear-gradient(175deg,rgba(16,30,50,.99),rgba(7,12,22,.99));
  box-shadow:0 -20px 70px rgba(0,0,0,.66);animation:upIn .26s cubic-bezier(.22,.7,.3,1)}
@keyframes upIn{from{transform:translateY(26px)}to{transform:translateY(0)}}

.up-hd{display:flex;align-items:center;gap:9px;padding:13px 14px;border-bottom:1px solid var(--line)}
.up-hd .k{font:8.5px/1 ui-monospace,Menlo,monospace;letter-spacing:.2em;color:var(--cyan)}
.up-hd b{font-size:13px;font-weight:600;letter-spacing:.04em}
.up-hd .x{margin-left:auto;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;
  border:1px solid var(--line);color:#9db3d0}
.up-hd .x svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}

.up-body{padding:13px 14px 2px;max-height:var(--upbody,58vh);overflow:auto;-webkit-overflow-scrolling:touch}

.up-ta{display:block;width:100%;min-height:112px;resize:none;padding:11px 12px;border-radius:12px;
  border:1px solid var(--line);background:rgba(4,10,20,.7);color:var(--ink);
  font:16px/1.7 -apple-system,"PingFang SC",sans-serif;outline:none;
  -webkit-appearance:none;appearance:none}
.up-ta:focus{border-color:rgba(95,227,255,.45)}
.up-ta::placeholder{color:#4e6483}

.up-tip{display:flex;align-items:center;gap:5px;margin-top:8px;
  font:10.5px/1.5 -apple-system,"PingFang SC",sans-serif;letter-spacing:.04em;color:#5f7397}
.up-tip svg{width:11px;height:11px;flex:0 0 auto;stroke:currentColor;fill:none;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.up-tip.warn{color:#ffab6b}
.up-tip b{color:#9ec3e8;font-weight:600}

/* emoji 盘 */
.up-emo{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px;max-height:88px;overflow:auto}
.up-emo button{width:32px;height:32px;border-radius:9px;font-size:17px;line-height:1;
  display:grid;place-items:center;background:rgba(120,185,255,.05);border:1px solid rgba(120,185,255,.1);
  transition:.15s}
.up-emo button:active{background:rgba(95,227,255,.18);transform:scale(.94)}

/* 选图 */
.up-drop{display:flex;align-items:center;justify-content:center;gap:9px;height:96px;
  border:1px dashed rgba(120,185,255,.3);border-radius:14px;background:rgba(120,185,255,.035);
  color:#8296b6;font-size:11.5px;letter-spacing:.04em;transition:.16s}
.up-drop:active{background:rgba(95,227,255,.1);border-color:rgba(95,227,255,.5)}
.up-drop svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round}
.up-drop small{display:block;margin-top:4px;font:9px/1 ui-monospace,Menlo,monospace;
  letter-spacing:.14em;color:#4e6483}

.up-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.up-thumbs:empty{display:none}
.up-th{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;border:1px solid var(--line);
  background:#070c16}
.up-th img{width:100%;height:100%;object-fit:cover;display:block}
.up-th b{position:absolute;right:3px;top:3px;width:18px;height:18px;border-radius:50%;
  background:rgba(4,8,16,.82);color:#dcecff;font:11px/18px -apple-system,sans-serif;text-align:center;
  border:1px solid rgba(150,215,255,.3)}
.up-th .lbl{position:absolute;left:4px;bottom:3px;font:8px/1 ui-monospace,Menlo,monospace;
  letter-spacing:.1em;color:#9fc4e6}

/* 底栏 */
.up-ft{display:flex;align-items:center;gap:10px;padding:10px 14px 13px;
  border-top:1px solid var(--line);margin-top:11px}
.up-count{font:9.5px/1 ui-monospace,Menlo,monospace;letter-spacing:.1em;color:#5f7397}
.up-count.hot{color:#ffb648}
.up-send{margin-left:auto;height:36px;padding:0 20px;border-radius:11px;
  border:1px solid rgba(95,227,255,.42);color:#d9f4ff;font-size:12.5px;letter-spacing:.12em;
  background:linear-gradient(120deg,rgba(95,227,255,.2),rgba(160,140,255,.16));transition:.16s}
.up-send:active{transform:scale(.96)}
.up-send:disabled{opacity:.32;border-color:var(--line);background:rgba(120,185,255,.05);color:#6b81a2}

/* ---------- 新卡片 ---------- */
.card.txt{background:linear-gradient(168deg,rgba(18,32,54,.72),rgba(8,14,26,.88))}
.card.txt::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;border-radius:2px;
  background:linear-gradient(to bottom,rgba(95,227,255,0),var(--cyan),rgba(95,227,255,0));
  box-shadow:0 0 14px rgba(95,227,255,.55)}
.up-text{margin:8px 0 0;font-size:14px;line-height:1.72;color:#e2eefc;letter-spacing:.01em;
  word-break:break-word;white-space:pre-wrap}
.up-time{margin-left:auto;flex:0 0 auto;font:9px/1 ui-monospace,Menlo,monospace;
  letter-spacing:.1em;color:#556a8c}

.ph img{display:block;width:100%;height:auto}
.ph .ph-one{max-height:420px;object-fit:cover}
.ph-grid{display:grid;gap:2px;line-height:0}
.ph-grid.n2{grid-template-columns:1fr 1fr}
.ph-grid.n3,.ph-grid.n4{grid-template-columns:1fr 1fr}
.ph-grid img{width:100%;height:100%;aspect-ratio:1;object-fit:cover}
.cap.up-full{display:block;-webkit-line-clamp:unset;white-space:pre-wrap;word-break:break-word}

/* 自己的动态：可删 */
.up-del{position:absolute;right:8px;top:8px;z-index:4;width:26px;height:26px;border-radius:50%;
  display:grid;place-items:center;border:1px solid rgba(150,215,255,.24);
  background:rgba(4,8,16,.7);color:#9fc4e6;font:14px/1 -apple-system,sans-serif}
.up-del:active{background:rgba(255,110,140,.22);color:#ffb0c0}
.up-del svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}
.card.txt .up-del{right:6px;top:6px}
