/* 無邊框 Liquid Glass 後台：以高光、模糊與陰影取代邊框 */
:root{
  --ink:#f6f8fa; --ink-2:rgba(246,248,250,.72); --ink-3:rgba(246,248,250,.5);
  --glass:rgba(255,255,255,.11); --glass-hi:rgba(255,255,255,.18); --field:rgba(12,18,26,.26);
  --accent:#a1a3a5; --danger:#d72222; --warn:#ebb625; --ok:#08ff66;
  --shine:inset 0 1px 0 rgba(255,255,255,.28), inset 0 -1px 0 rgba(255,255,255,.04);
  --lift:0 18px 50px rgba(6,12,20,.28);
  font-family:"Chiron GoRound TC",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI","PingFang TC","Noto Sans TC",sans-serif;
  color:var(--ink); font-synthesis:none;
}
*{box-sizing:border-box}
textarea{resize:none!important}
body{margin:0;min-height:100vh;color:var(--ink);
  background:linear-gradient(rgba(12,16,21,.28),rgba(12,16,21,.28)),url('/images/background.png') center/cover fixed #15181b}
.hidden{display:none!important}
.admin-shell{position:relative;z-index:1;max-width:1320px;margin:0 auto;padding:24px}

/* 頂部列 */
.admin-header{height:56px;display:flex;align-items:center;gap:18px;margin-bottom:20px;color:var(--ink-2)}
.admin-header a{font-weight:700;color:#fff;text-decoration:none;letter-spacing:.01em}
.admin-header span{margin-right:auto}

/* 玻璃卡片 */
.panel{padding:26px;border-radius:26px;background:var(--glass);box-shadow:var(--shine),var(--lift);
  backdrop-filter:blur(28px) saturate(170%);-webkit-backdrop-filter:blur(28px) saturate(170%)}
.panel h1{margin:0;font-size:1.3rem;font-weight:700;color:#fff}

/* 版面 */
.admin-grid{display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;align-items:start}
.index-heading,.editor-heading,.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:16px}
.index-heading{margin-bottom:14px}
.post-index{position:sticky;top:20px}
#post-list{display:grid;gap:4px;max-height:calc(100vh - 150px);overflow:auto;margin:0 -8px;padding:0 8px}
.post-item{display:block;width:100%;text-align:left;padding:12px 14px;border:0;border-radius:14px;background:transparent;color:var(--ink);cursor:pointer;font:inherit;transition:background .18s}
.post-item:hover{background:rgba(255,255,255,.09)}
.post-item.active{background:var(--glass-hi);box-shadow:var(--shine)}
.post-item strong{display:block;font-weight:600;line-height:1.4}
.post-item small{display:flex;align-items:center;gap:7px;margin-top:5px;color:var(--ink-3);font-size:.78rem}
.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
.dot.draft{background:var(--warn)}

/* 表單 */
.editor form{display:grid;gap:16px}
.form-row{display:grid;grid-template-columns:2fr 1fr;gap:14px}
.form-row.even{grid-template-columns:1fr 1fr}
label{display:grid;gap:7px;font-size:.82rem;font-weight:600;color:var(--ink-2)}
input,select,textarea{width:100%;border:0;border-radius:14px;padding:12px 14px;font:inherit;color:var(--ink);background:var(--field);box-shadow:inset 0 2px 5px rgba(0,0,0,.3),inset 0 1px 1px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.035);transition:box-shadow .18s,background .18s}
input::placeholder,textarea::placeholder{color:var(--ink-3)}
input:focus,select:focus,textarea:focus{outline:0;background:rgba(12,18,26,.38);box-shadow:inset 0 2px 5px rgba(0,0,0,.3),inset 0 1px 1px rgba(0,0,0,.2),0 0 0 3px rgba(156,199,234,.3)}
select option{color:var(--ink);background:#27313a}
.title-input{padding:14px 16px;font-size:1.5rem;font-weight:700;letter-spacing:.01em;background:transparent;box-shadow:none}
.title-input:focus{background:var(--field)}

/* Apple-inspired glass buttons */
.primary,
.danger,
.quiet {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  padding: 10px 20px;
  font: inherit;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition:
    background 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 120ms ease;
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
}

/* Primary: muted blue glass */
.primary {
  background: linear-gradient(
    135deg,
    rgba(199, 200, 200, 0.78),
    rgba(162, 162, 162, 0.78)
  );
  border-color: rgba(221, 238, 255, 0.25);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 4px 14px rgba(16, 25, 45, 0.18);
}

.primary:hover {
  background: linear-gradient(
    135deg,
    rgba(215, 215, 216, 0.88),
    rgba(170, 170, 170, 0.88)
  );
  border-color: rgba(235, 245, 255, 0.4);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    0 5px 18px rgba(40, 60, 90, 0.25);
}

/* Danger: subdued rose glass */
.danger {
  color: #ffe2e1;
  background: rgba(184, 75, 82, 0.22);
  border-color: rgba(255, 170, 175, 0.18);
}

.danger:hover {
  background: rgba(210, 85, 92, 0.34);
  border-color: rgba(255, 190, 190, 0.3);
}

/* Quiet: neutral translucent glass */
.quiet {
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.12);
  padding: 8px 18px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.quiet:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.22);
}

.primary:active,
.danger:active,
.quiet:active {
  transform: scale(0.97);
}

button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}

button:focus-visible {
  outline: 2px solid rgba(196, 196, 196, 0.134);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .primary,
  .danger,
  .quiet {
    transition: none;
  }
}

/* Markdown 編輯器 */
.md-editor{border-radius:20px;background:rgba(10,16,24,.22);box-shadow:var(--shine);overflow:hidden}
.md-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:rgba(255,255,255,.07);flex-wrap:wrap}
.md-tools{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.md-tools button{min-width:34px;height:32px;padding:0 10px;border:0;border-radius:10px;background:transparent;color:var(--ink-2);font:inherit;font-size:.84rem;cursor:pointer;transition:background .15s,color .15s}
.md-tools button:hover{background:rgba(255,255,255,.14);color:#fff}
.md-tools .sep{width:1px;height:16px;margin:0 6px;background:rgba(255,255,255,.14)}
.md-modes{display:flex;padding:3px;border-radius:999px;background:rgba(10,16,24,.3)}
.md-modes button{border:0;border-radius:999px;padding:5px 14px;background:transparent;color:var(--ink-2);font:inherit;font-size:.82rem;cursor:pointer;transition:background .18s,color .18s}
.md-modes button.on{background:var(--glass-hi);color:#fff;box-shadow:var(--shine)}
.md-panes{display:grid;grid-template-columns:1fr 1fr;height:min(62vh,640px);min-height:380px}
.md-panes textarea,.md-preview{height:100%;overflow:auto;border-radius:0;box-shadow:none;background:transparent;padding:20px 22px}
.md-panes textarea{resize:none;line-height:1.75;font-size:.95rem;font-family:ui-monospace,SFMono-Regular,Menlo,"PingFang TC",monospace}
.md-panes textarea:focus{background:rgba(255,255,255,.04);box-shadow:none}
.md-preview{background:rgba(255,255,255,.05)}
.mode-edit .md-panes,.mode-preview .md-panes{grid-template-columns:1fr}
.mode-edit .md-preview,.mode-preview textarea{display:none}
.md-count{padding:8px 16px;font-size:.76rem;color:var(--ink-3);text-align:right;background:rgba(255,255,255,.05)}

/* 預覽排版 */
.md-preview{line-height:1.8;font-size:.97rem;color:#eef2f5;overflow-wrap:anywhere}
.md-preview>:first-child{margin-top:0}
.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4{margin:1.5em 0 .6em;line-height:1.35;color:#fff}
.md-preview h1{font-size:1.6rem}.md-preview h2{font-size:1.3rem}.md-preview h3{font-size:1.12rem}
.md-preview p{margin:0 0 1em}
.md-preview a{color:var(--accent);text-underline-offset:3px}
.md-preview ul,.md-preview ol{margin:0 0 1em;padding-left:1.5em}
.md-preview li.sub{margin-left:1.2em}
.md-preview li input{width:auto;margin:0 .4em 0 -1.2em;vertical-align:-1px}
.md-preview blockquote{margin:0 0 1em;padding:.5em 1.1em;border-radius:12px;background:rgba(255,255,255,.08);color:var(--ink-2)}
.md-preview blockquote p:last-child{margin:0}
.md-preview code{padding:.15em .45em;border-radius:7px;background:rgba(255,255,255,.12);font-size:.88em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.md-preview pre{margin:0 0 1em;padding:14px 16px;border-radius:14px;background:rgba(6,10,16,.45);overflow:auto}
.md-preview pre code{padding:0;background:none}
.md-preview img{max-width:100%;border-radius:14px}
.md-preview hr{height:1px;margin:1.6em 0;border:0;background:rgba(255,255,255,.18)}
.md-preview .empty{color:var(--ink-3)}

/* 底部 */
.editor-footer{justify-content:flex-end;padding-top:4px}
.message{min-height:1.3em;margin:0 auto 0 0;color:var(--ink-2);font-size:.88rem}
.message.error{color:var(--danger)}
.about-editor{display:grid;gap:18px}
.about-editor .editor-footer{margin-top:18px}
.about-editor__hint{margin:6px 0 0;color:var(--ink-3);font-size:.86rem}
.about-md-panes{height:min(68vh,720px)}
.about-md-panes textarea{resize:vertical;line-height:1.8}

/* 登入 */
.login-panel{position:fixed;inset:0;z-index:2;display:grid;place-items:center;padding:24px}
.admin-login-home{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));text-decoration:none}
.login-panel form{width:min(300px,calc(100vw - 48px))}
.password-label{position:relative;display:flex;align-items:center;padding:14px 48px 14px 18px;border-radius:999px;background:var(--glass);box-shadow:var(--shine),var(--lift);backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%);font-weight:400}
.password-label input{padding:2px 0;background:transparent;box-shadow:none;font-size:16px}
.password-label input:focus{background:transparent;box-shadow:none}
.password-label:focus-within{box-shadow:var(--shine),var(--lift),0 0 0 3px rgba(156,199,234,.3)}
.password-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;color:var(--ink-2);pointer-events:none}
.login-panel .message{margin:12px 0 0;text-align:center;color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.6)}

::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:10px;border:3px solid transparent;background-clip:content-box}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media (prefers-reduced-transparency:reduce){.panel,.password-label{backdrop-filter:none;background:rgba(36,46,56,.94)}}
@media(max-width:900px){
  .admin-shell{padding:12px}
  .admin-grid{grid-template-columns:1fr}
  .post-index{position:static}
  #post-list{max-height:220px}
  .panel{padding:18px;border-radius:22px}
  .form-row,.form-row.even{grid-template-columns:1fr}
  .md-panes{height:60vh}
  .md-tools{overflow-x:auto;flex-wrap:nowrap;max-width:100%}
  .md-tools button{white-space:nowrap}
  .md-modes [data-mode="split"]{display:none}
  .title-input{font-size:1.25rem}
}

/* Admin areas: article editing, account directory, and B2 media library. */
.admin-header{height:auto;min-height:56px;flex-wrap:wrap}
.admin-nav{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:0;width:350px;padding:4px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:transparent}
.admin-nav__thumb{position:absolute;z-index:0;inset:4px auto 4px 4px;width:calc((100% - 8px)/3);border:1px solid rgba(255,255,255,.2);border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.1));box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 3px 10px rgba(0,0,0,.2);transition:transform .38s cubic-bezier(.22,.8,.25,1),opacity .2s ease;pointer-events:none}
.admin-nav button,.admin-nav button:hover,.admin-nav button.on{position:relative;z-index:1;width:100%;padding:8px 12px;border:1px solid transparent;border-radius:999px;background:transparent!important;box-shadow:none!important;color:var(--ink-2);font:inherit;font-size:.88rem;cursor:pointer;transition:color .18s}
.admin-nav button:hover,.admin-nav button.on{color:#fff}
.admin-nav button:active{transform:none}
.admin-section{min-height:65vh}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.section-heading h1{margin:0;color:#fff;font-size:1.35rem}
.section-heading p{margin:.35rem 0 0;color:var(--ink-2);font-size:.9rem}
.section-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.section-toolbar input{max-width:480px}
.section-count{color:var(--ink-2);font-size:.86rem;white-space:nowrap}
.users-list{display:grid;gap:8px}
.user-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(8,12,18,.18)}
.user-card__avatar{width:54px;height:54px;object-fit:cover;border-radius:50%;background:rgba(255,255,255,.08)}
.user-card__identity{display:grid;gap:2px;min-width:0}
.user-card__identity strong{color:#fff;font-size:.98rem}
.user-card__identity span,.user-card__identity a,.user-card__meta{color:var(--ink-2);font-size:.83rem;overflow-wrap:anywhere}
.user-card__identity a:hover{color:#fff;text-decoration:underline}
.user-card__meta{display:grid;justify-items:end;gap:5px;text-align:right}
.section-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:20px;color:var(--ink-2);font-size:.86rem}
.empty-state{grid-column:1/-1;padding:34px 16px;text-align:center;color:var(--ink-2)}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px}
.media-card{min-width:0;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:20px;background:rgba(8,12,18,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.media-card__preview{display:grid;place-items:center;aspect-ratio:16/10;overflow:hidden;border-radius:14px;background:rgba(0,0,0,.25)}
.media-card__preview img{width:100%;height:100%;object-fit:contain;color:var(--ink-3)}
.media-card__preview img.is-broken{display:none}
.media-card__key{margin:10px 0 2px;color:#fff;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-card__info{margin:0 0 10px;color:var(--ink-3);font-size:.76rem}
.media-card__field{display:grid;gap:5px;margin-top:9px;color:var(--ink-2);font-size:.76rem}
.media-card__field input,.media-card__field select{padding:8px 10px;border-radius:10px;font-size:.82rem}
.media-card__actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.media-card__actions button{padding:7px 11px;font-size:.78rem}
.media-card__actions .danger{background:rgba(184,75,82,.2);border-color:rgba(255,170,175,.18);color:#ffe2e1}
.upload-control{position:relative;display:inline-flex!important;align-items:center;justify-content:center;min-height:42px;overflow:hidden;white-space:nowrap}
.upload-control input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.message.error{color:#ffaaa5}
.md-preview img[data-size="small"]{width:min(100%,30rem)}
.md-preview img[data-size="medium"]{width:min(100%,45rem)}
.md-preview img[data-size="full"]{width:100%}
@media(max-width:900px){
  .admin-header{gap:10px}
  .admin-header>a{margin-right:auto}
  .admin-nav{order:3;width:100%;justify-content:center}
  .section-heading{align-items:flex-start}
  .user-card{grid-template-columns:48px minmax(0,1fr)}
  .user-card__avatar{width:46px;height:46px}
  .user-card__meta{grid-column:2;grid-row:2;display:flex;justify-items:start;gap:12px;text-align:left}
}
@media(max-width:520px){
  .section-toolbar{align-items:stretch;flex-direction:column;gap:8px}
  .section-toolbar input{max-width:none}
  .section-heading{flex-direction:column}
  .upload-control{align-self:flex-start}
  .user-card__meta{flex-direction:column;gap:2px}
  .media-grid{grid-template-columns:1fr}
}

/* Keep all five management destinations on one aligned glass tab rail. */
.admin-nav{grid-template-columns:repeat(5,minmax(0,1fr));width:520px;flex:none}
.admin-nav__thumb{width:calc((100% - 8px)/5)}
.comments-list{display:grid;gap:12px}
.comment-card{padding:16px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(8,12,18,.2)}
.comment-card.is-hidden{opacity:.64}
.comment-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.comment-card__identity{display:grid;gap:3px;min-width:0}
.comment-card__identity strong{color:#fff;font-size:.92rem}
.comment-card__identity a,.comment-card__identity time{color:var(--ink-2);font-size:.8rem;overflow-wrap:anywhere}
.comment-card__identity a:hover{color:#fff}
.comment-card__state{color:var(--ink-2);font-size:.78rem;white-space:nowrap}
.comment-card__body{margin:14px 0;color:#e5e7eb;white-space:pre-wrap;overflow-wrap:anywhere}
.comment-card__actions{display:flex;gap:8px;justify-content:flex-end}
.board-admin-list{gap:14px}
.board-admin-card{padding:18px 20px;border:0;border-radius:16px;background:radial-gradient(ellipse at 12% 12%,rgba(232,145,82,.075),transparent 38%),radial-gradient(ellipse at 88% 88%,rgba(88,148,218,.085),transparent 42%),rgba(12,16,21,.74);box-shadow:0 14px 36px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.055);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%)}
.board-admin-card.is-hidden{opacity:.66}
.board-card__header{display:flex;align-items:center;gap:11px}
.board-card__avatar{flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(255,255,255,.17);border-radius:50%;object-fit:cover}
.board-card__author{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;gap:14px}
.board-card__identity{display:grid;gap:1px;min-width:0}
.board-card__identity strong{overflow:hidden;color:#fff;font-size:.95rem;text-overflow:ellipsis;white-space:nowrap}
.board-card__identity span,.board-card__author time{color:var(--ink-2);font-size:.8rem}
.board-card__author time{flex:none}
.board-admin-card__state{padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.07);color:var(--ink-2);font-size:.73rem;white-space:nowrap}
.board-admin-card__state.is-hidden{background:rgba(235,182,37,.13);color:#f2d783}
.board-card__body{margin:16px 0;color:rgba(246,248,250,.93);font-size:.98rem;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.board-admin-card__parent{margin:14px 0 0;padding:10px 12px;border-left:2px solid rgba(255,255,255,.16);border-radius:0 10px 10px 0;background:rgba(255,255,255,.035);color:var(--ink-2);font-size:.84rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.board-admin-card__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}
.board-admin-card__stats{color:var(--ink-2);font-size:.8rem;font-variant-numeric:tabular-nums}
.board-admin-card__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.board-admin-card__actions button{padding:7px 14px;font-size:.82rem}
@media(max-width:900px){.admin-nav{width:100%;flex:none}}
@media(max-width:520px){.board-admin-card{padding:15px}.board-card__header{align-items:flex-start}.board-card__author{align-items:flex-start;flex-direction:column;gap:1px}.board-admin-card__footer{align-items:flex-start;flex-direction:column}.board-admin-card__actions{align-self:flex-end}}

/* Match the public site's Apple glass material and primary/secondary actions. */
:root{
  --ui-card-radius:18px;
  --ui-card-edge:rgba(255,255,255,.075);
  --ui-card-face:linear-gradient(145deg,rgba(255,255,255,.055),transparent 44%),rgba(8,10,14,.72);
  --ui-card-shadow:inset 0 1px 0 rgba(255,255,255,.1),inset 0 -1px 0 rgba(255,255,255,.025),0 18px 42px rgba(3,5,9,.28);
  --ui-primary-face:linear-gradient(180deg,rgba(255,255,255,.94),rgba(229,235,243,.86));
  --ui-primary-ink:#11161d;
  --ui-secondary-face:rgba(255,255,255,.065);
  --ui-destructive-face:rgba(255,69,58,.12);
  --ui-destructive-ink:#ffb6b0;
  --ui-glass-edge:rgba(255,255,255,.14);
  --ui-glass-shine:inset 0 1px 0 rgba(255,255,255,.13),0 5px 16px rgba(0,0,0,.2);
  --ui-glass-motion:180ms cubic-bezier(.2,.75,.25,1);
}

:is(.panel,.md-editor,.user-card,.media-card,.comment-card,.board-admin-card){
  border:1px solid var(--ui-card-edge);
  border-radius:var(--ui-card-radius);
  background:var(--ui-card-face);
  box-shadow:var(--ui-card-shadow);
  backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
}
.panel{backdrop-filter:blur(24px) saturate(155%);-webkit-backdrop-filter:blur(24px) saturate(155%)}
.media-card__preview{border-radius:12px;background:rgba(0,0,0,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.comment-card,.user-card,.media-card,.board-admin-card{transition:transform 220ms cubic-bezier(.2,.75,.25,1),background 180ms ease,box-shadow 180ms ease}
.post-item{min-height:0!important;border:1px solid transparent!important;border-radius:14px!important;background:transparent!important;box-shadow:none!important;color:var(--ink);transition:background var(--ui-glass-motion),border-color var(--ui-glass-motion),box-shadow var(--ui-glass-motion),transform 120ms ease}
.post-item:hover{border-color:transparent!important;background:rgba(255,255,255,.06)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important}
.post-item.active{border-color:rgba(255,255,255,.075)!important;background:rgba(255,255,255,.09)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 5px 16px rgba(0,0,0,.14)!important}
.post-item:active{transform:scale(.99)}

.admin-shell button:not(.admin-nav button):not(.md-tools button):not(.md-modes button):not(.primary):not(.danger):not(.post-item):not(.admin-mobile-drawer button):not(.admin-menu-toggle):not(.admin-mobile-scrim),
.login-panel .quiet{
  min-height:40px;
  border:1px solid var(--ui-glass-edge);
  border-radius:999px;
  background:var(--ui-secondary-face);
  box-shadow:var(--ui-glass-shine);
  color:rgba(255,255,255,.92);
  font:inherit;
  font-weight:550;
  backdrop-filter:blur(14px) saturate(155%);
  -webkit-backdrop-filter:blur(14px) saturate(155%);
  transition:background var(--ui-glass-motion),border-color var(--ui-glass-motion),box-shadow var(--ui-glass-motion),transform 120ms ease,color var(--ui-glass-motion);
}
.admin-shell button:not(.admin-nav button):not(.md-tools button):not(.md-modes button):not(.primary):not(.danger):not(.post-item):not(.admin-mobile-drawer button):not(.admin-menu-toggle):not(.admin-mobile-scrim):hover:not(:disabled),
.login-panel .quiet:hover:not(:disabled){background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.23);box-shadow:inset 0 1px 0 rgba(255,255,255,.17),0 8px 22px rgba(0,0,0,.24)}
.admin-shell button:not(.admin-nav button):not(.md-tools button):not(.md-modes button):not(.post-item):not(.admin-mobile-drawer button):not(.admin-menu-toggle):not(.admin-mobile-scrim):active:not(:disabled),
.login-panel .quiet:active:not(:disabled){transform:scale(.98)}
.admin-shell .primary,.login-panel .primary{
  border-color:rgba(255,255,255,.4);
  background:var(--ui-primary-face);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 6px 18px rgba(0,0,0,.24);
  color:var(--ui-primary-ink);
  font-weight:650;
}
.admin-shell .primary:hover:not(:disabled){background:linear-gradient(180deg,#fff,rgba(239,243,248,.94));box-shadow:inset 0 1px 0 #fff,0 8px 22px rgba(0,0,0,.28)}
.admin-shell .quiet,.login-panel .quiet{background:var(--ui-secondary-face);color:rgba(255,255,255,.9)}
.admin-shell :is(.comment-card,.board-admin-card,.media-card,.user-card) button.quiet{border-color:rgba(255,255,255,.38);background:var(--ui-primary-face);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 6px 18px rgba(0,0,0,.24);color:var(--ui-primary-ink);backdrop-filter:none;-webkit-backdrop-filter:none}
.admin-shell :is(.comment-card,.board-admin-card,.media-card,.user-card) button.quiet:hover:not(:disabled){border-color:rgba(255,255,255,.5);background:linear-gradient(180deg,#fff,rgba(239,243,248,.94));box-shadow:inset 0 1px 0 #fff,0 8px 22px rgba(0,0,0,.28)}
.admin-shell .danger{
  border-color:rgba(255,120,110,.2);
  background:var(--ui-destructive-face);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 5px 16px rgba(0,0,0,.18);
  color:var(--ui-destructive-ink);
}
.admin-shell .danger:hover:not(:disabled){border-color:rgba(255,120,110,.32);background:rgba(255,69,58,.2);color:#ffd0cb}
.admin-shell button:disabled{opacity:.4;filter:saturate(.35);box-shadow:none}
.admin-shell button:focus-visible,.login-panel button:focus-visible{outline:2px solid rgba(255,255,255,.62);outline-offset:3px}
.md-tools button,.md-modes button{border:1px solid transparent;border-radius:10px;background:transparent;transition:background var(--ui-glass-motion),border-color var(--ui-glass-motion),color var(--ui-glass-motion),transform 120ms ease}
.md-tools button:hover:not(:disabled){border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.09);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.md-modes button.on{border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 4px 12px rgba(0,0,0,.16);color:#fff}

@media(prefers-reduced-transparency:reduce){
  :is(.panel,.md-editor,.user-card,.media-card,.comment-card,.board-admin-card){backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(19,24,31,.96)}
  .admin-shell button:not(.admin-nav button):not(.md-tools button):not(.md-modes button):not(.post-item):not(.admin-mobile-drawer button):not(.admin-menu-toggle):not(.admin-mobile-scrim),.login-panel .quiet{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(36,46,56,.94)}
}

/* Admin navigation hierarchy and action sizing. */
.admin-header{
  display:grid;
  grid-template-columns:max-content minmax(0,1fr) max-content;
  align-items:center;
  gap:clamp(1rem,2.2vw,2rem);
  min-height:64px;
  margin-bottom:22px;
}
.admin-header__brand{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;min-height:2.55rem;padding:.48rem .95rem;overflow:hidden;border:1px solid rgba(255,255,255,.19);border-radius:999px;background:rgba(255,255,255,.055);box-shadow:inset 1px -1px 1px -1px rgba(255,255,255,.9),inset -1px 1px 1px -1px rgba(255,255,255,.82),inset 4px -4px 1px -4px rgba(255,255,255,.5),inset -4px 4px 1px -4px rgba(255,255,255,.46),inset 0 0 2px rgba(0,0,0,.48),0 5px 18px rgba(0,0,0,.2);backdrop-filter:blur(12px) saturate(175%);-webkit-backdrop-filter:blur(12px) saturate(175%);color:rgba(255,255,255,.96)!important;font-size:.88rem;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.admin-header__brand::before{position:absolute;z-index:0;inset:20% 8%;border:1px solid rgba(255,255,255,.3);border-radius:inherit;content:"";filter:blur(5px);pointer-events:none}
.admin-header__brand::after{position:absolute;z-index:1;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.5),transparent 30%,transparent 72%,rgba(255,255,255,.28));content:"";mix-blend-mode:screen;opacity:.56;pointer-events:none}
.admin-header__brand>span{position:relative;z-index:2}
.admin-header__brand:hover{border-color:rgba(255,255,255,.36);background:rgba(255,255,255,.09);box-shadow:inset 1px -1px 1px -1px rgba(255,255,255,.95),inset -1px 1px 1px -1px rgba(255,255,255,.9),inset 4px -4px 1px -4px rgba(255,255,255,.6),inset -4px 4px 1px -4px rgba(255,255,255,.56),inset 0 0 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.28)}
.admin-header__brand:active{transform:scale(.97)}
.admin-nav{
  display:flex;
  overflow:hidden;
  justify-self:center;
  width:min(100%,650px);
  height:50px;
  min-height:50px;
  padding:4px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  background:rgba(8,12,18,.78);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 24px rgba(0,0,0,.2);
  backdrop-filter:blur(18px) saturate(150%);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
}
.admin-nav__thumb{
  inset:4px auto 4px 4px;
  width:var(--admin-thumb-width,calc((100% - 8px)/6));
  transform:translateX(var(--admin-thumb-offset,0px));
  border:1px solid rgba(255,255,255,.24);
  background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 4px 14px rgba(0,0,0,.24);
  backdrop-filter:blur(12px) saturate(160%);
  -webkit-backdrop-filter:blur(12px) saturate(160%);
}
.admin-nav button,.admin-nav button:hover,.admin-nav button.on{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  min-height:40px;
  padding:0 8px;
  font-size:.9rem;
  line-height:1;
  white-space:nowrap;
}
.admin-nav button{flex:1 1 0;width:auto}
.admin-nav button{color:rgba(246,248,250,.7)}
.admin-nav button:hover,.admin-nav button.on{color:#fff}
.admin-header__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.admin-header__actions .danger{border-color:rgba(255,120,110,.3);background:rgba(255,69,58,.18);color:#ffc1bc}
.admin-shell button:not(.admin-nav button):not(.md-tools button):not(.md-modes button):not(.post-item),
.login-panel .quiet{
  height:40px;
  min-height:40px;
  padding:0 16px;
  font-size:.9rem;
  line-height:1;
  white-space:nowrap;
}
.upload-control{height:40px;min-height:40px;padding:0 16px;font-size:.9rem;line-height:1}
.md-tools button{height:36px;min-height:36px;padding:0 10px;font-size:.9rem}
.md-modes button{height:36px;min-height:36px;padding:0 12px;font-size:.9rem}

/* Board moderation keeps the same author, time, body and footer flow as the public feed. */
.board-admin-card{padding:clamp(1rem,2vw,1.4rem)}
.board-admin-card .board-card__header{align-items:center;gap:.8rem}
.board-admin-card .board-card__avatar{flex-basis:2.7rem;width:2.7rem;height:2.7rem}
.board-admin-card .board-card__author{min-width:0;align-items:center;gap:.8rem}
.board-admin-card .board-card__identity{gap:.12rem}
.board-admin-card .board-card__identity strong{font-size:1rem}
.board-admin-card .board-card__identity span,.board-admin-card .board-card__author time{font-size:.8rem}
.board-admin-card .board-card__body{margin:1.1rem 0;font-size:1rem;line-height:1.85}
.board-admin-card__footer{align-items:center;gap:1rem}
.board-admin-card__summary{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .9rem;min-width:0}
.board-admin-card__state{display:inline-flex;align-items:center;gap:.42rem;padding:0;border-radius:0;background:none;color:rgba(255,255,255,.63);font-size:.84rem;line-height:1.4}
.board-admin-card__state::before{width:6px;height:6px;border-radius:50%;background:#51e39a;content:""}
.board-admin-card__state.is-hidden{background:none;color:#f2d783}
.board-admin-card__state.is-hidden::before{background:#ebb625}
.board-admin-card__stats{font-size:.84rem}
.board-admin-card__actions{align-items:center;gap:8px}
.board-admin-card__actions button{height:40px;min-height:40px;padding:0 16px;font-size:.9rem;line-height:1}

@media(max-width:900px){
  .admin-header{grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .admin-header__actions{grid-column:2;grid-row:1}
  .admin-nav{grid-column:1/-1;grid-row:2;width:100%;justify-self:stretch;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;scroll-behavior:smooth}
  .admin-nav::-webkit-scrollbar{display:none}
  .admin-nav button{flex:0 0 auto;padding:0 16px}
}
@media(max-width:520px){
  .admin-header{gap:10px;margin-bottom:16px}
  .admin-header__brand{font-size:.86rem}
  .admin-header__actions{gap:6px}
  .admin-shell button:not(.admin-nav button):not(.md-tools button):not(.md-modes button):not(.post-item):not(.admin-mobile-drawer button):not(.admin-menu-toggle):not(.admin-mobile-scrim),.login-panel .quiet{padding:0 12px;font-size:.88rem}
  .admin-nav button,.admin-nav button:hover,.admin-nav button.on{padding:0 14px;font-size:.88rem}
  .board-admin-card__footer{align-items:flex-start;flex-direction:column}
  .board-admin-card__actions{align-self:flex-end}
}

@media(prefers-reduced-transparency:reduce){
  .admin-nav{background:rgba(10,14,20,.96);backdrop-filter:none;-webkit-backdrop-filter:none}
  .admin-nav__thumb{background:rgba(255,255,255,.24);backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* Reliable white return action and a touch-friendly mobile category drawer. */
.login-panel a.admin-login-home{
  z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:112px;min-height:42px;padding:0 18px;
  border:1px solid rgba(255,255,255,.48);border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(226,233,242,.91));
  box-shadow:inset 0 1px 0 #fff,0 7px 20px rgba(0,0,0,.28);
  color:#11161d!important;font-size:.9rem;font-weight:650;line-height:1.2;text-align:center;text-decoration:none;
  backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);
}
.login-panel a.admin-login-home:hover{background:linear-gradient(180deg,#fff,rgba(239,243,248,.96));color:#11161d!important;transform:translateY(-1px)}
.login-panel a.admin-login-home:active{transform:scale(.98)}
.admin-menu-toggle,.admin-mobile-scrim,.admin-mobile-drawer{display:none}
@media(max-width:900px){
  .admin-header{position:relative;grid-template-columns:44px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:10px}
  .admin-header__brand{position:absolute;top:0;left:50%;grid-column:auto;grid-row:auto;justify-self:auto;transform:translateX(-50%);max-width:calc(100% - 7rem);overflow:hidden;text-overflow:ellipsis}
  .admin-header__actions{grid-column:3;grid-row:1}
  .admin-nav{display:none}
  .admin-shell button.admin-menu-toggle{position:relative;z-index:2;display:flex;grid-column:1;grid-row:1;width:2.55rem;height:2.55rem;min-height:2.55rem;padding:.66rem;flex-direction:column;align-items:center;justify-content:center;gap:.34rem;overflow:visible;border:1px solid rgba(255,255,255,.19);border-radius:.9rem;background:rgba(255,255,255,.055);box-shadow:inset 1px -1px 1px -1px rgba(255,255,255,.9),inset -1px 1px 1px -1px rgba(255,255,255,.82),inset 4px -4px 1px -4px rgba(255,255,255,.5),inset -4px 4px 1px -4px rgba(255,255,255,.46),inset 0 0 2px rgba(0,0,0,.48),0 5px 18px rgba(0,0,0,.2);color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(10px) saturate(175%);-webkit-backdrop-filter:blur(10px) saturate(175%);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
  .admin-shell button.admin-menu-toggle::before{position:absolute;z-index:0;inset:20% 8%;border:1px solid rgba(255,255,255,.3);border-radius:inherit;content:"";filter:blur(5px);pointer-events:none}
  .admin-shell button.admin-menu-toggle::after{position:absolute;z-index:1;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.5),transparent 30%,transparent 72%,rgba(255,255,255,.28));content:"";mix-blend-mode:screen;opacity:.56;pointer-events:none}
  .admin-shell button.admin-menu-toggle:hover{border-color:rgba(255,255,255,.36);background:rgba(255,255,255,.09);box-shadow:inset 1px -1px 1px -1px rgba(255,255,255,.95),inset -1px 1px 1px -1px rgba(255,255,255,.9),inset 4px -4px 1px -4px rgba(255,255,255,.6),inset -4px 4px 1px -4px rgba(255,255,255,.56),inset 0 0 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.28)}
  .admin-shell button.admin-menu-toggle:active{transform:scale(.96)}
  .admin-shell button.admin-menu-toggle span{position:relative;z-index:2;display:block;align-self:center;flex:0 0 2px;width:1.1rem;height:2px;margin:0!important;border-radius:999px;background:rgba(255,255,255,.93);box-shadow:0 0 8px rgba(255,255,255,.12)}
  .admin-mobile-scrim:not([hidden]){position:fixed;inset:0;z-index:90;display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:rgba(0,0,0,.54);opacity:0;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:opacity .22s ease}
  .admin-mobile-scrim.is-open{opacity:1}
  .admin-mobile-drawer:not([hidden]){position:fixed;inset:0 auto 0 0;z-index:91;display:flex;width:min(84vw,330px);height:100vh;height:100dvh;flex-direction:column;gap:20px;padding:max(22px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));border-right:1px solid rgba(255,255,255,.12);border-radius:0 24px 24px 0;background:linear-gradient(150deg,rgba(34,39,48,.98),rgba(12,16,22,.98));box-shadow:18px 0 54px rgba(0,0,0,.38);transform:translateX(-105%);transition:transform .26s cubic-bezier(.2,.75,.25,1)}
  .admin-mobile-drawer.is-open{transform:translateX(0)}
  .admin-mobile-drawer__heading{display:flex;align-items:center;justify-content:space-between;min-height:42px;color:#fff;font-size:1.05rem}
  .admin-mobile-drawer__heading button{display:grid;width:38px;height:38px;min-height:38px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:1.4rem;line-height:1}
  .admin-mobile-drawer__items{display:grid;align-content:start;gap:7px}
  .admin-mobile-drawer__items button{display:flex;width:100%;height:48px;min-height:48px;align-items:center;justify-content:flex-start;padding:0 15px;border:1px solid transparent;border-radius:14px;background:transparent;box-shadow:none;color:rgba(255,255,255,.72);font:inherit;font-size:.96rem;text-align:left;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .16s ease}
  .admin-mobile-drawer__items button:hover,.admin-mobile-drawer__items button.on{border-color:rgba(255,255,255,.18);background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.11));box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 5px 16px rgba(0,0,0,.18);color:#fff}
  .admin-mobile-drawer__items button:active{transform:scale(.98)}
}
@media(max-width:520px){.login-panel a.admin-login-home{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}}
