/* Issue 206: rules scoped to the two new institutional views. */
.ic-module { color:#103f65; }
.ic-heading { margin-bottom:16px; }
.ic-heading h2 { margin:2px 0 7px; font-size:1.2rem; }
.ic-heading p { margin:4px 0; }
.ic-eyebrow { color:#a76609; font-size:.72rem; font-weight:800; letter-spacing:.08em; }
.ic-toolbar,.ic-card-actions,.ic-pagination,.ic-date-inputs { display:flex; align-items:end; gap:10px; flex-wrap:wrap; }
.ic-toolbar { margin:12px 0; }
.ic-module label,.ic-dialog label { display:grid; gap:5px; font-size:.85rem; }
.ic-toolbar label:first-child { flex:1 1 220px; }
.ic-module input:not([type=radio]):not([type=checkbox]),.ic-module select,
.ic-dialog input:not([type=radio]):not([type=checkbox]),.ic-dialog select,.ic-dialog textarea {
    min-height:40px; max-width:100%; width:100%; box-sizing:border-box; padding:8px 10px;
    border:1px solid #b9d5ed; border-radius:10px; background:#fff; color:#103f65; font:inherit;
}
.ic-button { display:inline-flex; justify-content:center; align-items:center; min-height:38px;
    border:1px solid #aaccee; border-radius:9px; padding:7px 12px; background:#edf6ff; color:#0b5185;
    font:inherit; font-size:.82rem; text-decoration:none; cursor:pointer; }
.ic-button:hover { background:#dfedfa; }
.ic-button:disabled { opacity:.5; cursor:default; }
.ic-button:focus-visible,.ic-document-open:focus-visible { outline:3px solid #139eac; outline-offset:2px; }
.ic-document-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:12px; }
.ic-document-card,.ic-panel { border:1px solid #bdd6ea; border-radius:14px; background:#fff; padding:12px; }
.ic-document-open { display:flex; gap:12px; width:100%; border:0; background:none; color:inherit; text-align:left; font:inherit; padding:0; cursor:pointer; }
.ic-document-open img,.ic-file-icon { width:64px; height:84px; flex-shrink:0; object-fit:contain; border:1px solid #dce6ef; border-radius:7px; background:#f5f9fc; }
.ic-file-icon { display:grid; place-items:center; font-weight:800; font-size:.8rem; color:#127b91; }
.ic-document-open strong { display:block; overflow-wrap:anywhere; }
.ic-document-open small { display:block; margin-top:5px; font-size:.74rem; color:#577087; }
.ic-description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-top:7px; font-size:.82rem; color:#4b6275; }
.ic-card-actions { margin-top:12px; align-items:center; }
.ic-muted { color:#5a7187; font-size:.79rem; line-height:1.45; }
.ic-notice { border:1px solid #d1e1ee; background:#f7fafc; border-radius:9px; padding:10px; font-size:.84rem; }
.ic-error,.ic-validation { color:#9f303b; }
.ic-error { padding:12px; background:#fff7f8; border:1px solid #f0c9ce; border-radius:10px; }
.ic-panel { margin-bottom:14px; }
.ic-panel h3 { font-size:1rem; margin:0 0 8px; }
.ic-panel p { font-size:.85rem; }
.ic-date-inputs label:first-child { width:85px; }
.ic-date-inputs label:last-child { width:190px; }
.ic-audiences,.ic-consent { border:1px solid #ccdeec; border-radius:10px; padding:12px; margin:14px 0; }
.ic-audiences { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px; }
.ic-audiences label,.ic-consent label { display:flex; align-items:start; gap:8px; font-weight:400; }
.ic-consent label { margin:9px 0; }
.ic-audiences input,.ic-consent input { accent-color:#147e9e; flex-shrink:0; }
.ic-birthday-list,.ic-versions { padding:0; list-style:none; }
.ic-birthday-list li,.ic-versions li { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; border-bottom:1px solid #e4edf4; padding:10px 2px; font-size:.85rem; }
.ic-birthday-list li span { color:#577087; }
.ic-birthday-overview > .ic-muted { margin:0 0 12px; }
.ic-birthday-section h3 { display:flex; align-items:center; gap:8px; margin:0; font-size:.95rem; }
.ic-birthday-section + .ic-birthday-section { border-top:1px solid #d0e0ed; padding-top:12px; margin-top:12px; }
.ic-birthday-section + .ic-birthday-section::before { content:""; display:block; width:90px; height:3px; margin:-14px 0 10px;
    border-radius:3px; background:linear-gradient(90deg,#0b5185 45%,#139eac 45% 75%,#e5af38 75%); }
.ic-birthday-section .ic-birthday-list { margin:5px 0 0; }
.ic-birthday-section .ic-birthday-list li { padding:7px 2px; gap:4px 12px; }
.ic-birthday-list strong { overflow-wrap:anywhere; }
.ic-birthday-count { background:#edf6ff; border:1px solid #c5dbea; border-radius:20px; padding:2px 7px; font-size:.73rem; flex-shrink:0; }
.ic-birthday-directory summary,.ic-birthday-preference summary { cursor:pointer; font-size:.85rem; font-weight:700; }
.ic-birthday-directory summary:focus-visible,.ic-birthday-preference summary:focus-visible { outline:3px solid #139eac; outline-offset:3px; border-radius:4px; }
.ic-birthday-directory [data-ic-directory-body],.ic-birthday-preference[open] h3 { margin-top:12px; }
.ic-directory-date:empty { display:none; }
.ic-birthday-section .ic-pagination { margin-top:10px; }
.ic-pagination { margin-top:16px; justify-content:center; align-items:center; font-size:.85rem; }
.ic-dialog { width:min(760px,calc(100vw - 28px)); max-height:calc(100dvh - 40px); overflow:auto; }
.ic-dialog--preview { width:min(1000px,calc(100vw - 28px)); }
.ic-dialog .ic-form { display:grid; gap:12px; }
.ic-dialog .app-dialog-shell__actions { position:sticky; bottom:-1px; padding:10px 0 0; background:#fff; }
.ic-preview-frame { max-height:62dvh; overflow:auto; border:1px solid #c5dbea; border-radius:8px; background:#f6f9fc; }
.ic-preview-image { display:block; width:100%; height:auto; }
.ic-preview-frame.is-zoomed .ic-preview-image { width:1600px; max-width:none; }
.ic-greeting { text-align:center; }
.ic-greeting h3 { color:#0b567f; margin:0 0 12px; font-size:1.3rem; }
.ic-celebration { position:relative; height:200px; overflow:hidden; background:radial-gradient(ellipse,#effaf9 0%,#fff 70%); }
.ic-pinata { width:220px; margin:auto; transform-origin:top center; animation:ic-sway 1.2s ease-in-out; }
.ic-pinata-left { transform-origin:110px 35px; animation:ic-burst-left .8s 1.2s both; }
.ic-pinata-right { transform-origin:110px 35px; animation:ic-burst-right .8s 1.2s both; }
.ic-confetti { position:absolute; left:var(--x); top:85px; width:7px; height:11px; background:var(--color); opacity:0;
    animation:ic-confetti-fall 2.1s var(--delay) ease-out; }
@keyframes ic-sway { 25%{transform:rotate(8deg)} 75%{transform:rotate(-8deg)} }
@keyframes ic-burst-left { to{transform:translate(-18px,8px) rotate(12deg)} }
@keyframes ic-burst-right { to{transform:translate(18px,8px) rotate(-12deg)} }
@keyframes ic-confetti-fall { 15%{opacity:1} to{transform:translateY(130px) rotate(var(--turn));opacity:0} }
@media(prefers-reduced-motion:reduce) { .ic-pinata,.ic-pinata-left,.ic-pinata-right,.ic-confetti { animation:none; } }
@media(max-width:480px) { .ic-toolbar>* { flex:1 1 100%; } .ic-button { padding:8px 10px; } .ic-dialog { max-height:calc(100dvh - 20px); } .ic-preview-frame { max-height:55dvh; } }
