/* CnLoader - shared loading animation (square CivilNext logo + orbiting ring + soft pulse).
   CSS only; reduced-motion respected. Markup comes from cn-loader.js. */
:root{--cnl-o:#ea6a1e;--cnl-t:#1e8aa6;--cnl-bg:rgba(255,255,255,.9);--cnl-ink:#566175}
@media (prefers-color-scheme:dark){:root{--cnl-bg:rgba(11,18,32,.88);--cnl-ink:#9fadc0}}
.cnl{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:26px 16px;text-align:center;color:var(--cnl-ink);font:inherit}
.cnl-mark{position:relative;width:76px;height:76px;flex:none}
.cnl-mark:before{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid rgba(30,138,166,.16);border-top-color:var(--cnl-o);border-right-color:var(--cnl-t);animation:cnls 1.1s linear infinite}
.cnl-mark:after{content:"";position:absolute;inset:-5px;border-radius:50%;background:radial-gradient(circle,rgba(234,106,30,.16),transparent 66%);animation:cnlg 1.8s ease-in-out infinite;z-index:0}
.cnl-mark img{position:absolute;left:16px;top:16px;width:44px;height:44px;z-index:1;animation:cnlp 1.8s ease-in-out infinite}
.cnl-msg{font-size:.92rem;font-weight:600}
.cnl-hint{font-size:.8rem;opacity:0;animation:cnlh .5s ease 8s forwards;max-width:300px}
.cnl-hint:after{content:attr(data-t)}
.cnl-full{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;background:var(--cnl-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.cnl-full[hidden]{display:none}
.cnl.sm{flex-direction:row;padding:12px 8px;gap:10px}.cnl.sm .cnl-mark{width:34px;height:34px}.cnl.sm .cnl-mark img{left:7px;top:7px;width:20px;height:20px}.cnl.sm .cnl-mark:before{border-width:2px}.cnl.sm .cnl-hint{display:none}
@keyframes cnls{to{transform:rotate(360deg)}}
@keyframes cnlp{50%{transform:scale(.88);opacity:.82}}
@keyframes cnlg{50%{opacity:.35;transform:scale(1.08)}}
@keyframes cnlh{to{opacity:.85}}
@media (prefers-reduced-motion:reduce){.cnl-mark:before{animation-duration:3.2s}.cnl-mark:after,.cnl-mark img{animation:none}}
