/* base.css — pure functional styles, shared across all apps.
   Layout / visual chrome lives in design.css per-direction. */
html{scroll-behavior:smooth}
.hidden{display:none!important}
body{margin:0;-webkit-font-smoothing:antialiased}

/* Consent banner */
#consent{position:fixed;bottom:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:center;gap:1.5em;
  padding:.9em 1.5em;flex-wrap:wrap;font-size:.9rem}
#consent span{flex:1;min-width:200px}
#consent button{display:inline-flex;align-items:center;gap:.4em;padding:.5em 1.1em;
  border-radius:999px;font-weight:600;cursor:pointer;font-size:.88rem;border:0}

/* Icon + theme toggle */
.icon-btn{background:transparent;border:0;cursor:pointer;font-size:1.15rem;
  padding:.3em .5em;border-radius:6px;color:inherit;opacity:.75}
.icon-btn:hover{opacity:1}

/* Language switcher */
.lang-select{background:transparent;border:1px solid var(--line);border-radius:6px;
  padding:.25em .5em;font-size:.85rem;cursor:pointer;color:inherit}

/* Generic form elements */
input,textarea,select{font-family:inherit;font-size:1rem}
input[type="text"],input[type="email"],input[type="password"],textarea,select{
  display:block;width:100%;padding:.65em .9em;margin:.4em 0 1em;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);
  color:var(--ink);box-sizing:border-box;outline:none;transition:border-color .2s}
input[type="text"]:focus,input[type="email"]:focus,input[type="password"]:focus,
textarea:focus,select:focus{border-color:var(--brand)}
label{display:block;font-size:.9rem;color:var(--muted);margin-bottom:.15em;font-weight:500}
form .row{margin-bottom:.5em}
form .row button{margin-top:.5em}
