:root{--bg:#0f1115;--card:#1a1d24;--fg:#eceef2;--mut:#8b93a1;--acc:#e5484d;--ok:#3ecf8e}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px system-ui,sans-serif}
[hidden]{display:none!important}
header{display:flex;align-items:center;gap:10px;padding:12px 16px;position:sticky;top:0;background:var(--bg);z-index:5}
.grow{flex:1}.muted{color:var(--mut)}.small{font-size:13px}.err{color:var(--acc)}
main{padding:0 16px 90px}
input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid #2b303a;background:var(--card);color:var(--fg);font-size:16px}
button{border:0;border-radius:10px;padding:10px 14px;background:var(--acc);color:#fff;font-size:15px;cursor:pointer}
button.ghost{background:transparent;color:var(--mut);padding:6px 8px}
#login{display:grid;place-items:center;min-height:100vh;padding:16px}
#loginForm{display:grid;gap:12px;width:100%;max-width:340px}
.bar{margin:8px 0 12px}
.chips{display:flex;gap:8px;overflow-x:auto;margin-bottom:6px}
.chips button{background:var(--card);color:var(--mut);white-space:nowrap}.chips .on{background:var(--acc);color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.card{background:var(--card);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.card img,.card .noimg{width:100%;aspect-ratio:2/3;object-fit:cover;background:#262b35;display:block}
.card .t{padding:8px 10px 2px;font-weight:600;font-size:14px;line-height:1.2}
.card .m{padding:0 10px;color:var(--mut);font-size:12px}
.card button{margin:8px 10px 10px;padding:8px}
.card button.on{background:#2b303a;color:var(--ok)}
.card button.del{background:#3a1f22}
.badge{color:var(--ok)}
#pinsList .row{display:flex;gap:10px;align-items:center;background:var(--card);border-radius:12px;padding:10px;margin-bottom:8px}
#pinsList .row div{flex:1}
nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#14171d;border-top:1px solid #2b303a;padding-bottom:env(safe-area-inset-bottom)}
nav button{flex:1;background:none;color:var(--mut);border-radius:0;padding:16px 4px}nav .on{color:var(--acc);font-weight:700}
iframe{width:100%;height:calc(100vh - 190px);border:0;border-radius:12px;background:#fff}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:90px;background:#2b303a;padding:10px 16px;border-radius:20px;z-index:9}
a{color:var(--acc)}h2{font-size:17px}
