:root{
  --ink:#0E0D0C; --ink-2:#17150F; --card:#1C1A14; --line:#2E2A20;
  --linen:#F4EFE6; --soft:#CFC7B7; --faint:#8C8275;
  --gold:#C79A4B; --gold-deep:#9E7330;
  --font-display:'Fraunces',Georgia,serif; --font-sans:'Geist',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}*{margin:0}
body{font-family:var(--font-sans);background:var(--ink);color:var(--linen);line-height:1.5;-webkit-font-smoothing:antialiased}
a,button{font:inherit}
.brand{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.01em}
.brand .acc{color:var(--gold)} .brand small{color:var(--faint);font-size:.85rem}
.muted{color:var(--soft)} code{background:rgba(255,255,255,.06);padding:.05rem .35rem;border-radius:3px;font-size:.85em;color:var(--soft)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:.85rem;font-weight:500;letter-spacing:.04em;
  padding:.85rem 1.4rem;border:none;border-radius:4px;cursor:pointer;transition:.2s}
.btn--gold{background:var(--gold);color:#231a09}
.btn--gold:hover{background:#d9ad5c} .btn--gold:disabled{opacity:.45;cursor:not-allowed}
.link{background:none;border:none;color:var(--gold);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-size:inherit}

/* GATE */
.gate{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#1a1810,#0E0D0C);padding:1.5rem}
.gate__box{width:100%;max-width:340px;text-align:center}
.gate__sub{color:var(--faint);letter-spacing:.2em;text-transform:uppercase;font-size:.72rem;margin:.4rem 0 1.6rem}
.gate input{width:100%;padding:.85rem 1rem;background:#121009;border:1px solid var(--line);border-radius:4px;color:var(--linen);margin-bottom:.8rem}
.gate .btn{width:100%}
.gate__err{color:#E89A7E;font-size:.85rem;min-height:1.2em;margin-top:.6rem}

/* APP */
.app{min-height:100vh}
.bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.4rem;background:rgba(14,13,12,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.wrap{max-width:860px;margin:0 auto;padding:2rem 1.4rem 4rem;display:grid;gap:1.6rem}
.panel{background:var(--ink-2);border:1px solid var(--line);border-radius:10px;padding:clamp(1.4rem,3vw,2rem)}
.panel h1{font-family:var(--font-display);font-size:1.7rem}
.panel h2{font-family:var(--font-display);font-size:1.4rem;display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.panel h1+.muted{margin:.5rem 0 1.4rem;font-size:.95rem}
.count{font-family:var(--font-sans);font-size:.8rem;background:var(--gold);color:#231a09;border-radius:999px;padding:.1rem .55rem}

.form{display:grid;gap:1.1rem}
.row{display:grid;gap:1.1rem}
@media(min-width:620px){.row{grid-template-columns:1fr 1fr}}
label{display:grid;gap:.4rem;font-size:.82rem;color:var(--soft)}
input[type=text],input[type=url]{padding:.75rem .85rem;background:#121009;border:1px solid var(--line);border-radius:5px;color:var(--linen);font-size:.95rem}
input::placeholder{color:#6b6457}

.drop{border:1.5px dashed #574e3c;border-radius:8px;padding:1.8rem 1rem;text-align:center;color:var(--soft);transition:.2s;background:rgba(255,255,255,.015)}
.drop.over{border-color:var(--gold);background:rgba(199,154,75,.08)}
.drop svg{color:var(--gold);margin:0 auto .6rem}
.drop__t{color:var(--linen)} .drop__or{font-size:.9rem;margin-top:.2rem}
.drop__hint{font-size:.76rem;color:var(--faint);margin-top:.5rem}
.drop__file{font-size:.85rem;color:var(--gold);margin-top:.5rem;min-height:1em}
.orurl{display:grid;gap:.4rem;font-size:.8rem;color:var(--faint)}

.form__status{font-size:.85rem;color:var(--gold);min-height:1.2em}
.form__status.err{color:#E89A7E}

.props{list-style:none;padding:0;display:grid;gap:.8rem}
.prop{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1rem 1.1rem;display:grid;gap:.6rem}
.prop__top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.prop__name{font-family:var(--font-display);font-size:1.15rem}
.prop__ref{font-size:.8rem;color:var(--faint)}
.prop__link{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.prop__url{flex:1;min-width:0;font-size:.78rem;color:var(--soft);background:#121009;border:1px solid var(--line);border-radius:5px;padding:.5rem .6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prop__actions{display:flex;gap:.4rem;flex-wrap:wrap}
.chip{font-size:.78rem;padding:.45rem .8rem;border-radius:5px;border:1px solid var(--line);background:none;color:var(--linen);cursor:pointer;transition:.2s}
.chip:hover{border-color:var(--gold);color:var(--gold)}
.chip--del:hover{border-color:#c0563b;color:#e89a7e}
.empty{color:var(--faint);font-size:.9rem;text-align:center;padding:1rem 0}
