/* Web-only additions: in-page consent dialogs and the hidden print frame. */
.frigo-dialog{max-width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;border:0;border-radius:14px;padding:22px 22px 16px;box-shadow:0 12px 40px rgba(16,45,64,.28);color:#102d40;background:#fff;font:inherit}
.frigo-dialog::backdrop{background:rgba(8,29,48,.45)}
.frigo-dialog h2{margin:0 0 12px;font-size:1.15rem}
.frigo-dialog p{margin:0 0 10px;line-height:1.45;overflow-wrap:anywhere}
.frigo-dialog.warning h2{color:#9b2c1c}
.frigo-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px}
.frigo-dialog-actions button{min-height:44px;padding:10px 16px;border-radius:10px;border:1px solid #9fb3bf;background:#fff;color:#102d40;font:inherit;cursor:pointer}
.frigo-dialog-actions button.primary{background:#1d4466;border-color:#1d4466;color:#fff}
.frigo-print{position:fixed;width:0;height:0;border:0;visibility:hidden}
/* Google's button: keep it button-sized even if its own injected style is ever refused by the CSP. */
.google-slot{display:inline-flex;align-items:center;max-width:100%;min-height:44px;overflow:hidden}
.google-slot svg{width:18px;height:18px;flex:none}
/* Phones and narrow windows: menu on top, content full width (web only; desktop keeps its layout). */
@media (max-width:700px){
 body{display:block;min-height:100vh}
 aside{position:static;height:auto;padding:14px 16px 12px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 12px}
 aside .brand{margin:0}
 aside nav{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
 aside nav button{width:auto;flex:1 1 auto;min-height:40px;margin:0;padding:8px 12px}
 #language-label{grid-row:1;grid-column:2;margin:0;font-size:.85rem;justify-self:end}
 #language{grid-column:1/-1;width:100%;max-width:none}
 main{padding:18px 16px;max-width:100%;box-sizing:border-box}
 main *{max-width:100%;box-sizing:border-box}
 .editor{grid-template-columns:1fr;padding:16px;gap:14px;border-radius:16px}
}
