/* GOLDLEAF OS notifications: gilt ledger on the existing dark brand surface. */
.gn-bell { position:relative; display:inline-grid; place-items:center; width:40px; height:40px; border-radius:9px; border:1px solid var(--line); color:var(--muted); background:var(--panel-2); text-decoration:none; transition:color .18s ease, border-color .18s ease; }
.gn-bell:hover { color:var(--gold-2); border-color:var(--line-strong); }
.gn-bell:focus-visible { outline:3px solid #f2d28f; outline-offset:2px; }
.gn-bell-icon { width:19px; height:19px; }
.gn-badge { position:absolute; top:-6px; right:-6px; min-width:19px; height:19px; padding:0 5px; border-radius:999px; background:var(--gold); color:#141109; font:700 10px/19px var(--font-sans); text-align:center; box-shadow:0 0 0 2px var(--bg); }
.gn-badge[data-empty="true"] { min-width:0; width:0; height:0; padding:0; box-shadow:none; background:transparent; }

.gn-page { max-width:1080px; }
.gn-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:20px; }
.gn-head h1 { margin:7px 0 0; font:500 clamp(34px,4vw,50px)/1 var(--font-display); letter-spacing:-.025em; }
.gn-head h1:focus { outline:none; }
.gn-head p { color:var(--muted); margin:10px 0 0; max-width:620px; line-height:1.6; }
.gn-count { display:flex; align-items:baseline; gap:8px; color:var(--muted); font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.gn-count strong { font:500 44px/1 var(--font-display); color:var(--gold-2); letter-spacing:0; }
.gn-tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:22px; overflow-x:auto; }
.gn-tabs a { padding:11px 14px; color:var(--muted); text-decoration:none; font-size:13px; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; }
.gn-tabs a:hover { color:var(--text); }
.gn-tabs a.active { color:var(--gold-2); border-bottom-color:var(--gold); }
.gn-tabs a:focus-visible, .gn-open:focus-visible { outline:3px solid #f2d28f; outline-offset:2px; }

.gn-list { list-style:none; margin:0; padding:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--panel); }
.gn-row { display:grid; grid-template-columns:14px 1fr auto; gap:14px; padding:18px 20px; border-top:1px solid var(--line); animation:gn-in .32s ease both; }
.gn-row:first-child { border-top:0; }
.gn-unread { background:linear-gradient(90deg, rgba(201,169,107,.07), transparent 55%); }
.gn-dot { width:8px; height:8px; margin-top:7px; border-radius:50%; border:1px solid var(--subtle); }
.gn-unread .gn-dot { background:var(--gold); border-color:var(--gold); }
.gn-main { min-width:0; }
.gn-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:var(--subtle); font-size:11px; }
.gn-kind { color:var(--gold); letter-spacing:.18em; text-transform:uppercase; font-weight:700; }
.gn-title { margin:6px 0 0; font-size:15px; font-weight:600; overflow-wrap:anywhere; }
.gn-row:not(.gn-unread) .gn-title { color:var(--muted); font-weight:500; }
.gn-body { margin:6px 0 0; color:var(--muted); font-size:13px; line-height:1.55; overflow-wrap:anywhere; }
.gn-done { display:inline-block; margin-top:8px; font-size:11px; color:var(--success); }
.gn-actions { display:flex; flex-wrap:wrap; gap:6px; align-items:flex-start; justify-content:flex-end; }
.gn-open { text-decoration:none; }
.gn-msg { min-height:18px; margin:0 0 10px; font-size:12px; color:var(--muted); }
.gn-msg.ok { color:var(--success); } .gn-msg.err { color:var(--danger); }
.gn-pager { display:flex; justify-content:space-between; align-items:center; margin-top:16px; }

.gn-empty, .gn-panel { border:1px dashed var(--line-strong); border-radius:var(--radius); padding:48px 28px; text-align:center; background:rgba(201,169,107,.025); }
.gn-empty h2, .gn-panel h2 { margin:0 0 8px; font:500 26px/1.15 var(--font-display); }
.gn-empty p, .gn-panel p { margin:0 auto 16px; color:var(--muted); max-width:440px; line-height:1.6; }
.gn-empty-mark { width:44px; height:44px; margin:0 auto 18px; border:1px solid var(--gold-3); border-radius:50%; position:relative; }
.gn-empty-mark::after { content:""; position:absolute; inset:14px; border-radius:50%; background:var(--gold-3); }

.gn-skel .gn-row { animation:none; }
.gn-sk { height:46px; border-radius:8px; grid-column:1/-1; background:linear-gradient(90deg, var(--panel-2), var(--panel-3), var(--panel-2)); background-size:200% 100%; animation:gn-shim 1.4s linear infinite; }

.gn-subs { display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:16px; }
.gn-sub { padding:20px; display:grid; gap:14px; }
.gn-sub-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.gn-sub-head h2 { margin:0; font:500 22px/1.1 var(--font-display); }
.gn-fs { border:0; margin:0; padding:0; display:grid; gap:8px; }
.gn-fs legend { color:var(--gold); font-size:10px; letter-spacing:.22em; text-transform:uppercase; font-weight:700; margin-bottom:8px; }
.gn-check, .gn-switch { display:flex; align-items:center; gap:8px; font-size:13px; }
.gn-off { color:var(--subtle); }
.gn-check input, .gn-switch input { accent-color:var(--gold); width:16px; height:16px; }
.gn-note { margin:2px 0 0; font-size:11px; color:var(--subtle); line-height:1.5; }
.gn-quiet { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gn-quiet label { display:grid; gap:5px; font-size:11px; color:var(--muted); }
.gn-quiet .gn-tz { grid-column:1/-1; }
.gn-quiet input { background:var(--bg-2); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:9px 10px; color-scheme:dark; }
.gn-quiet input:focus-visible, .gn-check input:focus-visible, .gn-switch input:focus-visible { outline:3px solid #f2d28f; outline-offset:2px; }
.gn-sub-foot { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.gn-sub-foot .gn-msg { margin:0; }

.gn-tablewrap { border:1px solid var(--line); border-radius:var(--radius); overflow-x:auto; background:var(--panel); }
.gn-table { width:100%; border-collapse:collapse; font-size:12px; }
.gn-table th { text-align:left; color:var(--subtle); font-weight:600; letter-spacing:.12em; text-transform:uppercase; font-size:10px; padding:12px 14px; border-bottom:1px solid var(--line); }
.gn-table td { padding:12px 14px; border-top:1px solid var(--line); vertical-align:top; }
.gn-sub-t { display:block; color:var(--subtle); font-size:11px; margin-top:3px; }
.gn-mono { font-family:ui-monospace, "SF Mono", Menlo, monospace; font-size:11px; color:var(--muted); overflow-wrap:anywhere; }
.gn-st { font-weight:600; } .gn-st-delivered, .gn-st-sent { color:var(--success); } .gn-st-failed { color:var(--danger); } .gn-st-suppressed, .gn-st-skipped { color:var(--warning); }

@keyframes gn-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
@keyframes gn-shim { to { background-position:-200% 0; } }
@media (prefers-reduced-motion: reduce) { .gn-row, .gn-sk { animation:none; } }
@media (max-width: 767px) {
  .gn-head { flex-direction:column; align-items:flex-start; }
  .gn-row { grid-template-columns:12px 1fr; }
  .gn-actions { grid-column:2; justify-content:flex-start; }
  .gn-table thead { display:none; }
  .gn-table tr { display:block; border-top:1px solid var(--line); padding:8px 0; }
  .gn-table td { display:flex; gap:10px; border:0; padding:5px 14px; }
  .gn-table td::before { content:attr(data-label); color:var(--subtle); min-width:96px; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
}
