/* ChannelOS Signal — Telegram analytics language without copying a competitor */
:root{--ink:#111d2f;--muted:#728197;--line:#dfe7ef;--soft:#f3f7fa;--canvas:#edf3f7;--nav:#0a1727;--nav2:#10243a;--blue:#18a5cf;--blue2:#0d8db6;--green:#21b88a;--amber:#f0a421;--red:#eb5b67;--violet:#6f78ed;--shadow:0 10px 28px rgba(20,45,68,.07)}
body{background:radial-gradient(circle at 72% -20%,rgba(24,165,207,.11),transparent 32%),var(--canvas)}
.rail{background:linear-gradient(180deg,#091725 0%,#0c1d30 58%,#091725 100%);border-right:1px solid rgba(130,191,219,.08)}.rail:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 0 65%,rgba(30,177,211,.04))}.logo span{background:linear-gradient(145deg,#19b9d9,#1577c6);box-shadow:0 0 0 1px rgba(255,255,255,.12),0 8px 24px rgba(13,144,187,.28)}.workspace{background:rgba(18,42,65,.86);border-color:rgba(93,151,181,.22)}
.nav{position:relative;transition:color .18s ease,background .18s ease,transform .18s ease}.nav:hover{transform:translateX(2px);background:rgba(28,79,105,.35)}.nav.is-active{background:linear-gradient(90deg,rgba(18,133,175,.3),rgba(18,69,99,.48));box-shadow:inset 0 0 0 1px rgba(65,179,218,.08)}
.topbar{box-shadow:0 1px 12px rgba(18,39,58,.04)}.global-search,.table-search{transition:border-color .2s,box-shadow .2s,background .2s}.global-search:focus-within,.table-search:focus-within{background:#fff;border-color:rgba(24,165,207,.55);box-shadow:0 0 0 3px rgba(24,165,207,.09)}
.create,.outline,.range,.segmented button,.tabs button,.full-link,.bulkbar button,.row-arrow,.control-strip button{position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.create{background:linear-gradient(135deg,#15acd3,#168ec4);border-color:#169dc9;box-shadow:0 6px 16px rgba(15,147,194,.23)}.create:hover{transform:translateY(-1px);box-shadow:0 9px 21px rgba(15,147,194,.3);background:linear-gradient(135deg,#20b7da,#117fb4)}.create:active,.outline:active,.range:active,.nav:active{transform:translateY(1px) scale(.985)}.outline:hover,.range:hover{border-color:#a8d5e7;color:#0f88b5;box-shadow:0 5px 14px rgba(24,90,120,.07)}
.panel,.metrics article,.control-strip,.campaign,.site-channel{border-color:rgba(201,216,228,.9);box-shadow:0 8px 30px rgba(26,54,77,.055);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.metrics article:hover,.campaign:hover,.site-channel:hover{transform:translateY(-3px);border-color:rgba(79,172,208,.34);box-shadow:0 15px 34px rgba(20,74,103,.1)}.metrics article{position:relative;overflow:hidden}.metrics article:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--blue),rgba(33,184,138,.68));opacity:.72}
.kicker{color:#0b93bd}.control-strip{border-left:3px solid var(--blue)}.control-strip button:hover{background:#f4fbfd}.control-strip button b,.row-arrow{transition:transform .18s}.control-strip button:hover b,.row-arrow:hover{transform:translateX(3px)}.progress i,.bar i{background:linear-gradient(90deg,#18a5cf,#20b98a);box-shadow:0 0 12px rgba(32,185,138,.22)}
tbody tr{transition:background .16s ease,box-shadow .16s ease}tbody tr:hover{background:#f2fafd;box-shadow:inset 3px 0 var(--blue)}.status{border:1px solid transparent}.status.active{border-color:rgba(25,158,115,.12)}.status.danger{border-color:rgba(219,79,94,.12)}.status.wait{border-color:rgba(233,155,19,.14)}
.detail-drawer{border-top:3px solid var(--blue);animation:drawerReveal .3s cubic-bezier(.2,.8,.2,1)}.modal-layer:not([hidden]) .modal{animation:modalIn .28s cubic-bezier(.2,.8,.2,1)}.toast.is-visible{animation:toastPulse .35s ease}.bubble-chart span{animation:bubbleFloat 5s ease-in-out infinite}.bubble-chart span:nth-child(2){animation-delay:-1.4s}.bubble-chart span:nth-child(3){animation-delay:-2.8s}.bubble-chart span:nth-child(4){animation-delay:-.7s}
.view.is-active .title-row,.view.is-active .control-strip,.view.is-active .metrics,.view.is-active .command-grid,.view.is-active .operations,.view.is-active>.panel,.view.is-active>.campaign-board,.view.is-active>.site-channel-grid,.view.is-active>.analytics-grid{animation:riseIn .38s both}.view.is-active .control-strip{animation-delay:.04s}.view.is-active .metrics{animation-delay:.08s}.view.is-active .command-grid{animation-delay:.12s}.view.is-active .operations{animation-delay:.16s}
.button-ripple{position:absolute!important;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.48);pointer-events:none;transform:translate(-50%,-50%) scale(0);animation:ripple .55s ease-out forwards}
@keyframes riseIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes drawerReveal{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes toastPulse{0%{transform:translateY(100px) scale(.94)}100%{transform:none}}@keyframes bubbleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes ripple{to{transform:translate(-50%,-50%) scale(18);opacity:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
