@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root {
    --ink:#e8f0f5;
    --muted:#8495a3;
    --deep:#071019;
    --navy:#0a1621;
    --panel:#0f1d28;
    --panel2:#132431;
    --line:#213441;
    --cyan:#3dd9c5;
    --cyan2:#6df4df;
    --amber:#ffb84d;
    --green:#63dfa2;
    --white:#f6f9fb;
    --dark:#101a22;
    --font:'DM Sans',sans-serif;
    --display:'Manrope',sans-serif
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    font-family:var(--font);
    background:var(--deep);
    color:var(--ink);
    font-size:16px
}
a {
    color:inherit;
    text-decoration:none
}
button,input {
    font:inherit
}
h1,h2,h3,p {
    margin-top:0
}
h1,h2,h3 {
    font-family:var(--display)
}
.eyebrow {
    font:700 .75rem/1 var(--display);
    letter-spacing:.16em;
    color:var(--cyan)
}
.brand {
    display:flex;
    align-items:center;
    gap:12px;
    font:800 1.15rem/1 var(--display)
}
.brand-mark {
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:11px;
    background:var(--cyan);
    color:#061419;
    font-size:1.35rem
}
.brand small {
    display:block;
    margin-top:5px;
    font-size:.52rem;
    letter-spacing:.26em;
    color:var(--muted)
}
.button {
    border:1px solid var(--line);
    border-radius:10px;
    padding:13px 18px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    cursor:pointer
}
.button.primary {
    background:var(--cyan);
    border-color:var(--cyan);
    color:#07151a;
    box-shadow:0 10px 30px #2ac0ad22
}
.button.ghost {
    background:transparent;
    color:var(--ink)
}
.button:disabled {
    opacity:.48;
    cursor:not-allowed
}
.public-nav {
    height:88px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    max-width:1240px;
    margin:auto;
    padding:0 28px
}
.public-nav nav {
    display:flex;
    align-items:center;
    gap:32px;
    color:#b8c7d1;
    font-size:.92rem
}
.hero {
    min-height:690px;
    max-width:1240px;
    margin:auto;
    padding:74px 28px 100px;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    align-items:center;
    gap:50px
}
.hero h1 {
    font-size:clamp(3.3rem,6vw,5.7rem);
    line-height:.94;
    letter-spacing:-.06em;
    margin:22px 0 28px
}
.hero h1 em {
    font-style:normal;
    color:var(--cyan)
}
.hero-copy>p {
    font-size:1.13rem;
    line-height:1.75;
    color:#9eafbb;
    max-width:590px
}
.hero-actions {
    display:flex;
    align-items:center;
    gap:28px;
    margin:35px 0
}
.text-link {
    color:#a8bbc7;
    font-weight:600
}
.trust {
    display:flex;
    gap:22px;
    color:#758995;
    font-size:.84rem
}
.trust b {
    color:var(--cyan);
    margin-right:5px
}
.server-visual {
    height:500px;
    position:relative;
    display:grid;
    place-items:center
}
.orbit {
    position:absolute;
    border:1px solid #24404a;
    border-radius:50%
}
.o1 {
    width:420px;
    height:420px
}
.o2 {
    width:300px;
    height:300px;
    border-style:dashed;
    animation:spin 32s linear infinite
}
.device {
    width:205px;
    height:245px;
    border:1px solid #36505a;
    border-radius:28px;
    background:linear-gradient(145deg,#182a35,#0a1219);
    box-shadow:0 40px 90px #0009,0 0 80px #25cfb319;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    position:relative;
    z-index:2
}
.device-head {
    position:absolute;
    top:22px;
    display:flex;
    gap:5px
}
.device-head span {
    width:5px;
    height:5px;
    border-radius:50%;
    background:#304b58
}
.device strong {
    font:800 1.65rem var(--display);
    letter-spacing:.15em
}
.device small {
    font-size:.52rem;
    letter-spacing:.23em;
    color:var(--muted)
}
.led {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--cyan);
    position:absolute;
    bottom:25px;
    box-shadow:0 0 15px var(--cyan)
}
.float-card {
    position:absolute;
    z-index:3;
    background:#11212cdd;
    border:1px solid #29404b;
    border-radius:12px;
    padding:14px 18px;
    box-shadow:0 16px 40px #0005
}
.float-card b,.float-card small {
    display:block
}
.float-card small {
    color:var(--muted);
    font-size:.75rem;
    margin-top:3px
}
.fc1 {
    top:90px;
    right:0
}
.fc2 {
    bottom:80px;
    left:10px
}
.fc2 b {
    color:var(--green)
}
@keyframes spin {
    to {
        transform:rotate(360deg)
    }
}
.features {
    padding:110px max(28px,calc((100% - 1184px)/2));
    background:#0b151e
}
.features h2,.future h2 {
    font-size:clamp(2.2rem,4vw,3.7rem);
    letter-spacing:-.04em;
    margin:18px 0 45px
}
.feature-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px
}
.feature-grid article {
    background:#101f2a;
    border:1px solid #1d303b;
    padding:28px;
    border-radius:14px
}
.feature-grid i {
    font-style:normal;
    color:var(--cyan);
    font-size:1.7rem
}
.feature-grid h3 {
    margin:38px 0 7px
}
.feature-grid p {
    color:var(--muted);
    margin:0
}
.future {
    text-align:center;
    padding:140px 28px;
    background:radial-gradient(circle at 50% 100%,#123b3d,#071019 60%)
}
.future p {
    max-width:670px;
    margin:auto;
    color:#98aab5;
    line-height:1.8
}
footer {
    border-top:1px solid var(--line);
    padding:28px max(28px,calc((100% - 1184px)/2));
    display:flex;
    justify-content:space-between;
    color:var(--muted);
    font-size:.85rem
}
.login-wrap {
    min-height:100vh;
    display:grid;
    grid-template-columns:1fr 1fr
}
.login-panel {
    padding:60px 9vw;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    background:radial-gradient(circle at 0 100%,#164340,#0a1621 55%)
}
.login-panel h1 {
    font-size:4rem;
    line-height:1;
    letter-spacing:-.06em;
    margin:18px 0
}
.login-panel p {
    color:#9db0ba;
    max-width:390px;
    line-height:1.7
}
.login-panel>small {
    color:var(--muted)
}
.login-card {
    margin:auto;
    width:min(420px,calc(100% - 48px));
    display:flex;
    flex-direction:column
}
.login-card h2 {
    font-size:2rem;
    margin-bottom:8px
}
.login-card>p {
    color:var(--muted);
    margin-bottom:34px
}
.login-card label,.form-grid label {
    display:flex;
    flex-direction:column;
    gap:9px;
    font-size:.85rem;
    font-weight:600;
    margin-bottom:18px
}
.login-card input,.form-grid input {
    background:#101e29;
    border:1px solid #29404b;
    border-radius:9px;
    padding:14px;
    color:var(--white);
    outline:none
}
.login-card input:focus,.form-grid input:focus {
    border-color:var(--cyan)
}
.login-card>a {
    text-align:center;
    color:var(--muted);
    margin-top:24px;
    font-size:.9rem
}
.app-shell {
    background:#eef2f4;
    color:var(--dark)
}
.sidebar {
    position:fixed;
    inset:0 auto 0 0;
    width:248px;
    padding:28px 18px;
    background:#09141d;
    color:var(--ink);
    display:flex;
    flex-direction:column;
    z-index:20
}
.sidebar .brand {
    padding:0 10px 30px
}
.sidebar nav p {
    margin:26px 12px 8px;
    color:#526775;
    font:700 .65rem var(--display);
    letter-spacing:.14em
}
.sidebar nav a {
    display:flex;
    gap:14px;
    align-items:center;
    padding:11px 13px;
    color:#91a3ae;
    border-radius:8px;
    margin:3px 0;
    font-size:.9rem
}
.sidebar nav a span {
    width:21px;
    text-align:center
}
.sidebar nav a:hover,.sidebar nav a.active {
    background:#142632;
    color:var(--white)
}
.sidebar nav a.active {
    box-shadow:inset 3px 0 var(--cyan)
}
.server-mini {
    margin-top:auto;
    border-top:1px solid #1c303b;
    padding:20px 10px 0;
    display:flex;
    align-items:center;
    gap:10px
}
.server-mini strong,.server-mini small {
    display:block;
    font-size:.77rem
}
.server-mini small {
    color:#657a87;
    margin-top:3px
}
.pulse {
    width:9px;
    height:9px;
    background:var(--green);
    border-radius:50%;
    box-shadow:0 0 12px #63dfa2
}
.main {
    margin-left:248px;
    min-height:100vh
}
.topbar {
    height:108px;
    background:#fff;
    border-bottom:1px solid #dce5e9;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 38px
}
.topbar h1 {
    font-size:1.65rem;
    margin:6px 0 0
}
.topbar .eyebrow {
    color:#80919b;
    font-size:.62rem
}
.profile {
    display:flex;
    gap:20px;
    align-items:center;
    color:#6a7b85;
    font-size:.88rem
}
.profile strong {
    color:var(--dark)
}
.profile a {
    width:36px;
    height:36px;
    border:1px solid #d8e2e6;
    border-radius:50%;
    display:grid;
    place-items:center
}
.menu-button {
    display:none
}
.content {
    padding:34px 38px 60px;
    max-width:1500px;
    margin:auto
}
.notice {
    background:#dff8f2;
    border:1px solid #9fe6d8;
    color:#195c52;
    padding:13px 16px;
    border-radius:9px;
    margin-bottom:20px
}
.welcome,.admin-intro {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:28px
}
.welcome h2,.admin-intro h2 {
    font-size:2rem;
    margin:7px 0
}
.welcome p,.admin-intro p,.toolbar p {
    color:#71828c;
    margin:0
}
.stats {
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr;
    gap:15px;
    margin-bottom:18px
}
.stats article,.panel {
    background:#fff;
    border:1px solid #dbe4e8;
    border-radius:13px;
    padding:24px
}
.stats article {
    display:flex;
    gap:18px
}
.stat-icon {
    width:48px;
    height:48px;
    border-radius:12px;
    display:grid;
    place-items:center;
    font-size:1.3rem;
    flex:0 0 auto
}
.stat-icon.cyan {
    background:#dff8f4;
    color:#159987
}
.stat-icon.amber {
    background:#fff0d9;
    color:#d58b18
}
.stat-icon.green {
    background:#e1f7ea;
    color:#299d61
}
.stats small,.panel .eyebrow {
    color:#82939d;
    font-size:.65rem
}
.stats strong {
    display:block;
    font:700 1.55rem var(--display);
    margin:4px 0
}
.stats strong em {
    font:500 .8rem var(--font);
    color:#82939d
}
.stats p {
    font-size:.76rem;
    color:#81919a;
    margin:0
}
.bar {
    height:5px;
    background:#edf1f2;
    border-radius:4px;
    margin:8px 0
}
.bar i {
    height:100%;
    background:var(--cyan);
    display:block;
    border-radius:4px
}
.dashboard-grid {
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:18px
}
.panel-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:22px
}
.panel-head h3,.panel-head h2 {
    margin:6px 0 0
}
.panel-head>a {
    color:#248f83;
    font-size:.82rem;
    font-weight:700
}
.category-grid {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:10px
}
.category-grid a {
    border:1px solid #e0e7ea;
    border-radius:10px;
    padding:18px 12px;
    min-width:0
}
.category-grid i {
    display:grid;
    place-items:center;
    width:35px;
    height:35px;
    background:#e1f7f3;
    color:#169e8d;
    border-radius:8px;
    font-style:normal;
    margin-bottom:18px
}
.category-grid strong,.category-grid small {
    display:block
}
.category-grid strong {
    font-size:.84rem
}
.category-grid small {
    color:#93a0a7;
    font-size:.69rem;
    margin-top:4px
}
.reminder-list>div {
    display:flex;
    gap:13px;
    padding:12px 0;
    border-bottom:1px solid #edf1f2
}
.reminder-list>div:last-child {
    border:0
}
.reminder-list time {
    width:42px;
    height:48px;
    background:#eef4f5;
    border-radius:7px;
    text-align:center;
    padding:5px;
    font-size:.58rem;
    color:#7b8b94
}
.reminder-list time b {
    display:block;
    font:700 1.1rem var(--display);
    color:#263640
}
.reminder-list p {
    margin:4px 0
}
.reminder-list strong,.reminder-list small {
    display:block;
    font-size:.76rem
}
.reminder-list small {
    color:#8999a2;
    margin-top:4px
}
.toolbar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:24px
}
.filter-row {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:18px
}
.filter-row a {
    background:#fff;
    border:1px solid #dce5e8;
    padding:9px 14px;
    border-radius:8px;
    font-size:.83rem
}
.filter-row a.active {
    background:#10212c;
    color:#fff;
    border-color:#10212c
}
.empty-state {
    background:#fff;
    border:1px dashed #c9d6db;
    border-radius:14px;
    padding:80px 24px;
    text-align:center
}
.empty-state>div {
    font-size:2.5rem;
    color:#49cdbb
}
.empty-state p {
    color:#758791;
    max-width:540px;
    margin:0 auto 24px;
    line-height:1.65
}
.empty-state .ghost {
    color:#253640
}
.library-toolbar small{display:block;margin-top:6px;color:#7b8b94}.library-toolbar-actions{display:flex;gap:10px}.library-toolbar-actions .button.ghost{border-color:#29404b;background:#fff;color:#172832;opacity:1}.library-toolbar-actions .button.ghost:hover{border-color:#21aa99;background:#e8faf7;color:#087b70}.library-breadcrumb{display:flex;align-items:center;gap:9px;margin-bottom:18px;padding:13px 16px;border:1px solid #d9e3e7;border-radius:11px;background:#fff}.library-breadcrumb a{color:#087f73;font-weight:700}.library-breadcrumb span{color:#9aabb3}.library-create{margin-bottom:18px;padding:16px;border:1px solid #bfe8e3;border-radius:12px;background:#effbf9}.library-create[hidden]{display:none}.library-create form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px}.library-create label{display:flex;flex-direction:column;gap:8px;font-size:.85rem;font-weight:700}.library-create input{min-height:48px;padding:11px 13px;border:1px solid #cad8df;border-radius:9px;background:#fff;font:inherit}.library-create .button{min-height:48px}.library-dropzone{position:relative;transition:border-color .18s,background .18s,box-shadow .18s}.library-dropzone.drag-active{border-color:#25b9a8!important;background:#eafbf8!important;box-shadow:0 0 0 4px rgba(37,185,168,.14)}.library-dropzone.drag-active:after{content:'Solte para enviar nesta pasta';position:absolute;z-index:20;inset:12px;display:grid;place-items:center;border:2px dashed #25b9a8;border-radius:12px;background:rgba(234,251,248,.94);color:#087f73;font-size:1.15rem;font-weight:800;pointer-events:none}.library-list{overflow:visible;border:1px solid #d9e3e7;border-radius:14px;background:#fff}.library-list-head,.library-list article{display:grid;grid-template-columns:minmax(260px,1fr) 110px 155px minmax(300px,auto);align-items:center;gap:14px;padding:14px 17px}.library-list-head{border-bottom:1px solid #d9e3e7;background:#f5f8f9;color:#758791;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.library-list article+article{border-top:1px solid #e3eaed}.library-name{display:flex;align-items:center;gap:12px;min-width:0}.library-name i{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#ddf8f4;color:#078b7c;font-style:normal;font-size:1.15rem}.library-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.library-list article>span{color:#71838c;font-size:.84rem}.library-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.library-actions form{margin:0}.library-actions button,.library-action,.library-actions summary{display:inline-flex;align-items:center;padding:7px 9px;border:1px solid #cad8df;border-radius:7px;background:#fff;color:#29404b;font-family:inherit;font-size:.76rem;font-weight:700;cursor:pointer}.library-actions .danger-link{border-color:#efc1c1;color:#a32626}.library-actions details{position:relative}.library-actions details form{position:absolute;z-index:4;right:0;top:36px;display:flex;gap:6px;width:310px;padding:10px;border:1px solid #cad8df;border-radius:9px;background:#fff;box-shadow:0 12px 35px #17313e25}.library-actions details input{min-width:0;flex:1;padding:8px;border:1px solid #cad8df;border-radius:7px}.library-editor textarea{width:100%;padding:15px;border:1px solid #cad8df;border-radius:10px;background:#101e29;color:#eaf7f5;font:14px/1.55 Consolas,monospace;resize:vertical}.library-editor .full-action{margin-top:12px}.library-upload-progress{margin-top:14px;padding:13px 15px;border:1px solid #bfe8e3;border-radius:11px;background:#f3fcfb}.library-upload-progress>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.library-upload-progress strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-upload-progress span{color:#087f73;font-weight:800}.library-upload-progress progress{display:block;width:100%;height:12px;accent-color:#25b9a8}.library-upload-progress small{display:block;margin-top:7px;color:#637985;line-height:1.4}.library-action-play{border-color:#8edfd5!important;background:#e8faf7!important;color:#087f73!important;font-weight:800!important}
.two-col {
    display:grid;
    grid-template-columns:1fr 1.1fr;
    gap:18px
}
.panel h2 {
    margin:8px 0 25px
}
.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 15px
}
.form-grid .wide {
    grid-column:1/-1
}
.form-grid input {
    background:#f8fafb;
    border-color:#d9e3e7;
    color:var(--dark)
}
.reminder-list.large strong {
    font-size:.9rem
}
.disk-list {
    display:grid;
    gap:12px;
    margin-bottom:18px
}
.disk-list article {
    background:#fff;
    border:1px solid #dbe4e8;
    border-radius:12px;
    padding:20px;
    display:flex;
    align-items:center;
    gap:20px
}
.disk-icon {
    width:50px;
    height:50px;
    border-radius:10px;
    background:#e1f7f3;
    color:#169e8d;
    display:grid;
    place-items:center;
    font-size:1.4rem
}
.disk-list h3 {
    margin:4px 0
}
.disk-list code {
    color:#7c8c95;
    font-size:.8rem
}
.disk-cap {
    margin-left:auto;
    text-align:right
}
.disk-cap strong,.disk-cap small {
    display:block
}
.disk-cap small {
    color:#81919a
}
.status {
    font-size:.68rem;
    font-weight:700;
    color:#d38b1e
}
.status.configurado {
    color:#21965c
}
.role-badge {
    font-size:.65rem;
    letter-spacing:.1em;
    font-weight:700;
    background:#dff8f3;
    color:#1c8276;
    padding:8px 10px;
    border-radius:6px
}
.form-panel {
    max-width:760px
}
.form-panel-wide {
    max-width:960px
}
.form-section {
    margin:14px 0 18px;
    padding-bottom:10px;
    border-bottom:1px solid #e2eaed;
    color:#334751;
    font-size:1rem
}
table {
    width:100%;
    border-collapse:collapse
}
th,td {
    text-align:left;
    padding:15px;
    border-bottom:1px solid #e5ebee;
    font-size:.85rem
}
th {
    color:#7b8c96;
    font-size:.68rem;
    letter-spacing:.08em
}
.muted {
    color:#83939b;
    font-size:.82rem;
    margin:20px 0 0
}
.settings-list>div {
    display:flex;
    justify-content:space-between;
    padding:16px 0;
    border-bottom:1px solid #e5ebee
}
.settings-list span {
    color:#71828c
}
@media(max-width:980px) {
    .public-nav nav>a:not(.button) {
        display:none
    }
    .hero {
        grid-template-columns:1fr;
        padding-top:35px
    }
    .server-visual {
        height:400px
    }
    .stats {
        grid-template-columns:1fr 1fr
    }
    .stats article:first-child {
        grid-column:1/-1
    }
    .dashboard-grid {
        grid-template-columns:1fr
    }
    .category-grid {
        grid-template-columns:repeat(3,1fr)
    }
    .two-col {
        grid-template-columns:1fr
    }
}
@media(max-width:720px) {
    .public-nav {
        height:74px;
        padding:0 18px
    }
    .public-nav .button {
        padding:10px;
        font-size:.78rem
    }
    .hero {
        padding:55px 20px 70px
    }
    .hero h1 {
        font-size:3.15rem
    }
    .hero-actions {
        align-items:stretch;
        flex-direction:column
    }
    .trust {
        flex-direction:column;
        gap:8px
    }
    .server-visual {
        height:340px
    }
    .o1 {
        width:300px;
        height:300px
    }
    .o2 {
        width:220px;
        height:220px
    }
    .device {
        width:150px;
        height:190px
    }
    .fc1 {
        right:0;
        top:30px
    }
    .fc2 {
        bottom:20px;
        left:0
    }
    .feature-grid {
        grid-template-columns:1fr 1fr
    }
    .features,.future {
        padding:80px 20px
    }
    footer {
        flex-direction:column;
        gap:8px
    }
    .login-wrap {
        grid-template-columns:1fr
    }
    .login-panel {
        min-height:300px;
        padding:35px 24px
    }
    .login-panel h1 {
        font-size:2.8rem
    }
    .login-panel>small {
        display:none
    }
    .login-card {
        padding:50px 0
    }
    .sidebar {
        transform:translateX(-100%);
        transition:.25s
    }
    .menu-open .sidebar {
        transform:none;
        box-shadow:15px 0 40px #0004
    }
    .main {
        margin-left:0
    }
    .topbar {
        height:90px;
        padding:0 18px
    }
    .menu-button {
        display:block;
        background:none;
        border:0;
        font-size:1.35rem
    }
    .topbar>div:first-of-type {
        margin-right:auto;
        margin-left:14px
    }
    .profile span {
        display:none
    }
    .content {
        padding:24px 18px 50px
    }
    .welcome,.admin-intro {
        align-items:flex-start;
        gap:18px
    }
    .welcome .button {
        padding:12px;
        font-size:.75rem
    }
    .stats {
        grid-template-columns:1fr
    }
    .stats article:first-child {
        grid-column:auto
    }
    .category-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .two-col {
        grid-template-columns:1fr
    }
    .disk-cap {
        display:none
    }
    .form-grid {
        grid-template-columns:1fr
    }
    .form-grid label {
        grid-column:1/-1
    }
    .role-badge {
        display:none
    }
    table {
        display:block;
        overflow:auto
    }
    .filter-row {
        flex-wrap:nowrap;
        overflow:auto;
        padding-bottom:5px
    }
}
.form-grid select {
    background:#f8fafb;
    border:1px solid #d9e3e7;
    border-radius:9px;
    padding:14px;
    color:var(--dark);
    outline:none
}
.form-grid select:focus {
    border-color:var(--cyan)
}
.form-grid select:disabled {
    cursor:not-allowed;
    opacity:.65
}
.notice.erro {
    background:#ffe8e8;
    border-color:#efb6b6;
    color:#8b2929
}
.notice.aviso {
    background:#fff2d9;
    border-color:#ebcd91;
    color:#745018
}
.autofill-trap {
    position:fixed!important;
    left:-10000px!important;
    top:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
    opacity:0!important;
    pointer-events:none!important
}
.admin-links {
    grid-template-columns:repeat(3,minmax(0,1fr))
}
@media(max-width:720px) {
    .admin-links {
        grid-template-columns:1fr
    }
}

/* Guardião e cofre do banco */
.vault-note {
    margin-bottom:18px;
    padding:16px 18px;
    border:1px solid #a9e9df;
    border-radius:14px;
    background:#edfbf8;
    color:#31555c;
    line-height:1.65
}
.vault-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin:20px 0
}
.vault-card {
    padding:22px;
    border:1px solid #d9e3e7;
    border-radius:18px;
    background:#fff
}
.vault-card h3 {margin:8px 0}
.vault-card p {min-height:76px;color:#71838c;line-height:1.65}
.vault-card small {font-size:.72rem}
.admin-intro .button.ghost,
.vault-card .button.ghost {
    border-color:#29404b;
    color:#172832
}
.admin-intro .button.ghost:hover,
.vault-card .button.ghost:hover {
    border-color:#21aa99;
    background:#e8faf7;
    color:#087b70
}
.vault-import,.vault-danger {margin-top:20px}
.form-grid .full {grid-column:1/-1}
.vault-otp-request {
    align-self:end;
    justify-self:start;
    width:auto;
    min-height:48px;
    margin-bottom:18px;
    padding:11px 18px;
    border-color:#29404b;
    background:#fff;
    color:#172832;
    gap:8px
}
.vault-otp-request:hover {
    border-color:#21aa99;
    background:#e8faf7;
    color:#087b70
}
.vault-danger {border-color:#f2b8b8;background:#fffafa}
.button.danger {border-color:#b91c1c;background:#b91c1c;color:#fff}
@media(max-width:900px) {
    .vault-grid {grid-template-columns:1fr}
    .vault-otp-request {width:100%;justify-self:stretch;margin-bottom:18px}
}

/* Central de integrações */
.integration-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px
}
.integration-card {
    padding:22px;
    border:1px solid #d9e3e7;
    border-radius:18px;
    background:#fff
}
.integration-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px
}
.integration-head h3 {margin:7px 0 0}
.status-chip {padding:7px 10px;border-radius:999px;font-size:.7rem;font-weight:800}
.status-chip.online {background:#dcf7e8;color:#08754a}
.status-chip.offline {background:#fff0f0;color:#a32626}
.capability-list {display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}
.capability-list span {display:flex;justify-content:space-between;padding:10px;border-radius:9px;background:#f3f7f8;color:#60747e}
.capability-list b {color:#172832}
.integration-error {color:#a32626}
.integration-card .button.ghost,.integration-actions .button.ghost {border-color:#29404b;color:#172832}
.capability-link {display:flex;justify-content:space-between;padding:10px;border-radius:10px;background:#dcfaf5;color:#087b70}
.capability-link:hover {background:#c6f4ec}
.sonoff-voice-window {display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px;padding:20px;border:1px solid #b9e8e1;border-radius:16px;background:#effcf9}
.sonoff-voice-window h3 {margin:5px 0 4px}
.sonoff-voice-window p {margin:0;color:#6f8491}
.sonoff-voice-times {display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:12px;min-width:390px}
.sonoff-voice-times label {font-weight:700}
.sonoff-voice-times input {margin-top:7px}
.sonoff-monitor-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.sonoff-monitor-card {padding:20px;border:1px solid #d9e3e7;border-radius:18px;background:#fff}
.sonoff-monitor-card h3 {margin:6px 0 0}
.sonoff-schedules {display:grid;gap:7px;margin-top:18px;padding-top:15px;border-top:1px solid #d9e3e7}
.sonoff-schedules small {color:#71838c}
.sonoff-save-bar {position:sticky;bottom:18px;z-index:4;margin-top:22px;padding:12px;border:1px solid #b9e8e1;border-radius:14px;background:#ffffffee;box-shadow:0 12px 35px #10242f22;backdrop-filter:blur(8px)}
.sonoff-save-bar .button {width:100%}
.mmcardoso-event-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mmcardoso-event-card {display:flex;align-items:flex-start;gap:12px;padding:18px;border:1px solid #d9e3e7;border-radius:14px;background:#f7fafb;cursor:pointer}
.mmcardoso-event-card input {width:18px;height:18px;margin-top:2px;accent-color:#24b9aa}
.mmcardoso-event-card strong,.mmcardoso-event-card small {display:block}
.mmcardoso-event-card small {margin-top:5px;color:#71838c}
.mmcardoso-history {display:grid;gap:10px}
.mmcardoso-history article {display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid #dce5e8;border-radius:12px;background:#f8fafb}
.mmcardoso-history strong,.mmcardoso-history small {display:block}
.mmcardoso-history small,.mmcardoso-history article>span {margin-top:4px;color:#71838c}
.integration-actions {margin-top:20px}
.system-integration-card {display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:22px;border:1px solid #cde5e2;border-radius:18px;background:linear-gradient(135deg,#effcf9,#fff);color:#172832}
.system-integration-card:hover {transform:translateY(-2px);box-shadow:0 14px 34px #10242f18}
.system-integration-card i {display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:#d7f8f2;font-size:1.65rem;font-style:normal}
.system-integration-card strong,.system-integration-card small {display:block}
.system-integration-card small {margin-top:5px;color:#71838c}
.system-integration-card b {color:#087b70}
.automation-master {display:flex;align-items:flex-start;gap:12px;margin-bottom:22px;padding:18px;border:1px solid #b9e8e1;border-radius:15px;background:#effcf9}
.automation-master input {width:20px;height:20px;accent-color:#24b9aa}
.automation-master strong,.automation-master small {display:block}.automation-master small{margin-top:5px;color:#71838c}
.clock-times-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 22px;margin:24px 0}.clock-times-grid label{display:flex;flex-direction:column;align-items:stretch;gap:9px;font-weight:700}.clock-times-grid input{width:100%;margin:0}
.week-picker {margin:20px 0;padding:18px;border:1px solid #d9e3e7;border-radius:14px;background:#f8fafb}.week-picker>strong{display:block;margin-bottom:12px}.week-picker>div{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.week-picker label{position:relative;cursor:pointer}.week-picker input{position:absolute;opacity:0;pointer-events:none}.week-picker span{display:block;padding:10px 8px;border:1px solid #cbd8df;border-radius:10px;background:#fff;text-align:center;font-weight:750}.week-picker input:checked+span{border-color:#39cbbb;background:#d9faf5;color:#087b70}
.full-action {width:100%;margin-top:20px}
.crypto-live-summary {display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:16px;margin-bottom:22px;padding:18px;border:1px solid #b9e8e1;border-radius:15px;background:linear-gradient(135deg,#effcf9,#fff)}
.crypto-live-summary span,.crypto-live-summary strong,.crypto-live-summary small {display:block}.crypto-live-summary span{color:#71838c;font-size:.78rem;font-weight:750}.crypto-live-summary strong{margin:5px 0;color:#087b70;font-size:1.45rem}.crypto-live-summary small{color:#71838c}
.crypto-live-summary .button.ghost {border-color:#29404b;background:#fff;color:#172832;opacity:1}
.crypto-live-summary .button.ghost:hover {border-color:#21aa99;background:#e8faf7;color:#087b70}
.admin-intro-actions {display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.ai-settings .button.ghost {border-color:#29404b;background:#fff;color:#172832;opacity:1}
.ai-settings .button.ghost:hover {border-color:#21aa99;background:#e8faf7;color:#087b70}
.ai-settings .form-grid label small {display:block;margin-top:7px;color:#71838c;font-weight:500;line-height:1.45}
.pessoal-settings-grid {grid-template-columns:repeat(2,minmax(0,1fr))}.pessoal-settings-grid .checkbox-setting{align-self:end;height:48px;box-sizing:border-box}.pessoal-whatsapp-box{margin-top:22px;padding:18px;border:1px solid #d9e3e7;border-radius:15px;background:#f8fafb}.pessoal-service-state{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:18px;margin-top:20px;padding-top:18px;border-top:1px solid #d9e3e7}.pessoal-service-state span strong{display:block;margin-bottom:5px}.pessoal-service-state span{color:#71838c}.pessoal-add-term{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px;margin-bottom:18px;padding:18px;border:1px solid #d9e3e7;border-radius:15px;background:#f8fafb}.pessoal-add-term label{display:flex;flex-direction:column;gap:8px;font-weight:700}.pessoal-add-term input{width:100%;min-height:48px;margin:0;padding:12px 14px;border:1px solid #cad8df;border-radius:9px;background:#fff;color:#172832;font:inherit;outline:none}.pessoal-add-term input:focus{border-color:#25b9a8;box-shadow:0 0 0 3px rgba(37,185,168,.12)}.pessoal-add-term .button{min-height:48px}.pessoal-term-list,.pessoal-history{display:grid;gap:10px}.pessoal-term-list article,.pessoal-history article{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px;border:1px solid #d9e3e7;border-radius:12px;background:#f8fafb}.pessoal-term-list strong,.pessoal-term-list small,.pessoal-history strong,.pessoal-history small{display:block}.pessoal-term-list small,.pessoal-history small{margin-top:4px;color:#71838c}.pessoal-term-list form{display:flex;gap:7px}.pessoal-term-list button{padding:8px 11px;border:1px solid #29404b;border-radius:8px;background:#fff;color:#172832;cursor:pointer}.pessoal-term-list .danger-link{border-color:#efc1c1;color:#a32626}.pessoal-service-state .button.ghost,.pessoal-history .button.ghost{border-color:#29404b;background:#fff;color:#172832;opacity:1}.pessoal-service-state .button.ghost:hover,.pessoal-history .button.ghost:hover{border-color:#21aa99;background:#e8faf7;color:#087b70}
.crypto-settings-grid {grid-template-columns:repeat(2,minmax(0,1fr))}.crypto-settings-grid label:first-child{grid-column:1/-1}
.crypto-rule {margin:22px 0 0;padding:16px;border-left:4px solid #39cbbb;border-radius:8px;background:#f3faf9;color:#526b76}
.crypto-market-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.crypto-market-card {display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;padding:15px;border:1px solid #d9e3e7;border-radius:14px;background:#fff}.crypto-market-card.selected{border-color:#39cbbb;background:#effcf9;box-shadow:0 0 0 2px #39cbbb22}.crypto-market-card img{width:34px;height:34px}.crypto-market-card strong,.crypto-market-card small{display:block}.crypto-market-card small{margin-top:3px;color:#71838c}.crypto-rank{min-width:28px;color:#78909a;font-weight:800}.crypto-price{text-align:right}.crypto-price small.up{color:#08754a}.crypto-price small.down{color:#b42318}
.form-grid textarea {
    resize:vertical;
    border:1px solid #cbd8df;
    border-radius:9px;
    padding:14px;
    background:#f8fafb;
    color:#172832;
    font:inherit
}
.device-list {display:grid;gap:10px;margin-top:18px}
.device-list article {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #dce5e8;border-radius:10px}
.device-list strong,.device-list small {display:block}
.device-list small {margin-top:4px;color:#71838c}
.device-list form {display:flex;gap:6px;flex-wrap:wrap}
.device-list button {padding:8px 10px;border:1px solid #29404b;border-radius:8px;background:#fff;cursor:pointer}
@media(max-width:900px) {
    .integration-grid {grid-template-columns:1fr}
    .sonoff-voice-window {display:block}
    .sonoff-voice-times {grid-template-columns:1fr;min-width:0;margin-top:16px}
    .sonoff-monitor-grid {grid-template-columns:1fr}
    .mmcardoso-event-grid {grid-template-columns:1fr}
    .mmcardoso-history article {align-items:flex-start;flex-direction:column}
    .clock-times-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
    .system-integration-card {grid-template-columns:auto 1fr}.system-integration-card>b{grid-column:2}
    .week-picker>div {grid-template-columns:repeat(4,minmax(0,1fr))}
    .crypto-live-summary {grid-template-columns:1fr}.crypto-settings-grid{grid-template-columns:1fr}.crypto-settings-grid label:first-child{grid-column:auto}.crypto-market-grid{grid-template-columns:1fr}
    .pessoal-settings-grid{grid-template-columns:1fr}.pessoal-service-state{grid-template-columns:1fr}.pessoal-add-term{grid-template-columns:1fr}.pessoal-term-list article,.pessoal-history article{align-items:flex-start;flex-direction:column}
    .library-toolbar{align-items:flex-start;gap:14px;flex-direction:column}.library-toolbar-actions{width:100%;flex-wrap:wrap}.library-create form{grid-template-columns:1fr}.library-list-head{display:none}.library-list article{grid-template-columns:1fr;gap:8px}.library-actions{justify-content:flex-start}.library-actions details form{right:auto;left:0}.library-breadcrumb{overflow-x:auto}
}

.table-scroll {
    overflow-x:auto
}
.alarm-time {
    color:#087f73;
    font:800 1.35rem var(--display)
}
.alarm-stats {
    grid-template-columns:repeat(4,minmax(0,1fr))
}
.status-pill {
    display:inline-flex;
    padding:5px 9px;
    border-radius:999px;
    font-size:.7rem;
    font-weight:800
}
.status-pill.on {
    background:#dbf7eb;
    color:#137550
}
.status-pill.off {
    background:#edf0f2;
    color:#687780
}
.alarm-actions{min-width:390px}
.alarm-action-list,.alarm-inline-actions{display:flex;align-items:center;gap:7px}
.alarm-action-list{justify-content:flex-end;flex-wrap:wrap}
.alarm-inline-actions{margin:0}
.alarm-actions .alarm-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:34px;
    margin:0;
    padding:7px 10px;
    border:1px solid #cad8df;
    border-radius:8px;
    background:#fff;
    color:#29404b;
    font:700 .76rem/1 var(--body);
    text-decoration:none;
    white-space:nowrap;
    cursor:pointer;
    transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease
}
.alarm-actions .alarm-action:hover,.alarm-actions .alarm-action:focus-visible{transform:translateY(-1px);box-shadow:0 6px 16px rgba(20,54,68,.12)}
.alarm-actions .alarm-action:focus-visible{outline:3px solid rgba(37,185,168,.2);outline-offset:2px}
.alarm-actions .alarm-action-test{border-color:#9bded5;background:#effbf9;color:#087f73}
.alarm-actions .alarm-action-test:hover{border-color:#35bbaa;background:#ddf8f4}
.alarm-actions .alarm-action-disable{border-color:#f0d293;background:#fff8e8;color:#8b5a00}
.alarm-actions .alarm-action-disable:hover{border-color:#e5b852;background:#fff1cf}
.alarm-actions .alarm-action-enable{border-color:#9ddbbf;background:#edf9f2;color:#137550}
.alarm-actions .alarm-action-enable:hover{border-color:#55be86;background:#dff5e8}
.alarm-actions .alarm-action-edit{border-color:#b9ccea;background:#f2f7ff;color:#315d9b}
.alarm-actions .alarm-action-edit:hover{border-color:#7fa4dc;background:#e6f0ff}
.alarm-actions .alarm-action-delete{border-color:#efc1c1;background:#fff5f5;color:#b02f3b}
.alarm-actions .alarm-action-delete:hover{border-color:#dc737b;background:#ffe8ea}
.alarm-days {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin:0 0 18px;
    padding:0;
    border:0
}
.alarm-days legend {
    width:100%;
    margin-bottom:9px;
    font-size:.85rem;
    font-weight:600
}
.alarm-days label {
    margin:0
}
.alarm-days input {
    position:absolute;
    opacity:0
}
.alarm-days span {
    display:grid;
    min-width:48px;
    min-height:42px;
    place-items:center;
    border:1px solid #d4e0e4;
    border-radius:10px;
    background:#f4f7f8;
    cursor:pointer
}
.alarm-days input:checked + span {
    border-color:#3dd9c5;
    background:#dcf8f4;
    color:#087f73
}
.hidden {
    display:none!important
}
.config-links {
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.ai-settings {
    align-items:stretch
}
.ai-preview {
    text-align:center
}
.ai-preview > p {
    max-width:520px;
    margin:0 auto 28px;
    color:#758894;
    line-height:1.7
}
.ai-orb {
    width:130px;
    height:130px;
    display:grid;
    place-items:center;
    margin:25px auto;
    border:1px solid #bfeee8;
    border-radius:50%;
    background:radial-gradient(circle,#3dd9c54a,#e7faf7 65%);
    box-shadow:0 0 45px #3dd9c535
}
.ai-orb span {
    color:#159989;
    font-size:3rem
}
.form-grid .checkbox-setting {
    flex-direction:row;
    align-items:center;
    padding:14px;
    border:1px solid #d8e2e6;
    border-radius:10px;
    background:#f7f9fa
}
.form-grid .checkbox-setting input {
    width:18px;
    height:18px;
    margin:0;
    padding:0;
    accent-color:#23bca9
}
.service-control {
    margin-top:18px
}
.service-status-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-bottom:22px
}
.service-status-grid div {
    padding:14px;
    border:1px solid #e0e7ea;
    border-radius:10px;
    background:#f7f9fa
}
.service-status-grid span,.service-status-grid strong {
    display:block
}
.service-status-grid span {
    margin-bottom:5px;
    color:#7f9099;
    font-size:.75rem
}
.button.warning {
    border-color:#f0b44c;
    background:#fff3dd;
    color:#8b5a00
}
@media(max-width:1100px) {
    .alarm-stats {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px) {
    .alarm-stats {grid-template-columns:1fr}
    .config-links {grid-template-columns:1fr}
    .service-status-grid {grid-template-columns:1fr}
}
.empty-state.compact {
    padding:45px 24px
}
.table-actions {
    white-space:nowrap
}
.table-actions a + a {
    margin-left:14px
}
.danger-link {
    color:#c43c48
}
.danger-panel {
    border-color:#ecc9cd
}
.confirm-actions {
    display:flex;
    justify-content:flex-end;
    gap:12px;
    margin-top:28px
}
.button.danger {
    border-color:#c53c49;
    background:#c53c49;
    color:#fff
}
.radio-shell {
    display:grid;
    grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr);
    gap:18px;
    color:#eaf6f7
}
.radio-stage {
    position:relative;
    overflow:hidden;
    min-height:620px;
    padding:30px;
    border:1px solid #1d3d48;
    border-radius:22px;
    background:radial-gradient(circle at 22% 25%,#164a4d 0,#0c222d 35%,#07131d 75%);
    box-shadow:0 28px 70px #0a1e2d24
}
.radio-stage::after {
    content:"";
    position:absolute;
    inset:auto -100px -180px auto;
    width:420px;
    height:420px;
    border:1px solid #44d9c522;
    border-radius:50%;
    box-shadow:0 0 0 55px #44d9c50a,0 0 0 110px #44d9c507;
    pointer-events:none
}
.radio-topline {
    display:flex;
    align-items:center;
    gap:10px;
    color:#81a2ae;
    font:700 .68rem var(--display);
    letter-spacing:.15em
}
.radio-topline span:last-child {
    margin-left:auto;
    color:#51d9c7
}
.live-dot {
    width:8px;
    height:8px;
    border-radius:50%;
    background:#50e4c9;
    box-shadow:0 0 13px #50e4c9
}
.radio-display {
    display:grid;
    grid-template-columns:190px minmax(0,1fr) 90px;
    align-items:center;
    gap:28px;
    margin:72px 0 55px
}
.radio-art {
    width:190px;
    aspect-ratio:1;
    display:grid;
    place-items:center;
    overflow:hidden;
    border:1px solid #3f6b72;
    border-radius:50%;
    background:linear-gradient(145deg,#1b444b,#0b1c26);
    box-shadow:inset 0 0 0 14px #08141c,0 24px 50px #0008
}
.radio-art img {
    width:100%;
    height:100%;
    object-fit:cover
}
.radio-art span {
    font-size:3.2rem;
    color:#4bdac6
}
.radio-current h2 {
    margin:10px 0 12px;
    color:#fff;
    font-size:clamp(2rem,4vw,3.6rem);
    line-height:1;
    letter-spacing:-.05em
}
.radio-current p {
    max-width:470px;
    color:#93aab3;
    line-height:1.6
}
.radio-signal {
    height:70px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px
}
.radio-signal i {
    width:5px;
    height:20%;
    border-radius:4px;
    background:#3bd4c0;
    transition:.2s
}
.radio-signal.playing i:nth-child(1) {animation:equalizer .65s infinite alternate}
.radio-signal.playing i:nth-child(2) {animation:equalizer .8s .1s infinite alternate}
.radio-signal.playing i:nth-child(3) {animation:equalizer .55s .2s infinite alternate}
.radio-signal.playing i:nth-child(4) {animation:equalizer .9s .15s infinite alternate}
.radio-signal.playing i:nth-child(5) {animation:equalizer .7s .05s infinite alternate}
@keyframes equalizer {to {height:100%}}
.radio-controls {
    position:relative;
    z-index:1;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:18px
}
.radio-controls button,.volume-control button {
    border:1px solid #31505b;
    background:#102832;
    color:#d7eff1;
    cursor:pointer
}
.round-control {
    width:52px;
    height:52px;
    border-radius:50%;
    font-size:2rem
}
.play-control {
    width:82px;
    height:82px;
    border:0!important;
    border-radius:50%;
    background:#41d8c5!important;
    color:#07161d!important;
    font-size:1.6rem;
    box-shadow:0 14px 35px #3dd9c542
}
.play-control.is-playing {
    background:#ffb84d!important;
    box-shadow:0 14px 35px #ffb84d45
}
.radio-lower {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:16px;
    margin-top:48px
}
.output-switch,.volume-control {
    min-height:78px;
    display:flex;
    align-items:center;
    padding:16px 18px;
    border:1px solid #203e49;
    border-radius:14px;
    background:#0c1c26bb
}
.output-switch {
    justify-content:space-between;
    gap:20px
}
.output-switch strong,.output-switch small {
    display:block
}
.output-switch small {
    margin-top:5px;
    color:#77939e;
    font-size:.72rem
}
.switch input {
    position:absolute;
    opacity:0
}
.switch span {
    position:relative;
    display:block;
    width:48px;
    height:27px;
    border-radius:20px;
    background:#304750;
    cursor:pointer;
    transition:.2s
}
.switch span::after {
    content:"";
    position:absolute;
    top:4px;
    left:4px;
    width:19px;
    height:19px;
    border-radius:50%;
    background:#fff;
    transition:.2s
}
.switch input:checked + span {
    background:#3dd9c5
}
.switch input:checked + span::after {
    transform:translateX(21px)
}
.volume-control {
    gap:10px
}
.volume-control button {
    width:32px;
    height:32px;
    border-radius:8px
}
.volume-control input {
    min-width:80px;
    flex:1;
    accent-color:#3dd9c5
}
.volume-control output {
    width:40px;
    color:#91a8b0;
    font-size:.75rem
}
.station-panel {
    min-height:620px;
    padding:24px;
    border:1px solid #d9e3e7;
    border-radius:22px;
    background:#fff;
    color:#172832
}
.station-panel .panel-head > span {
    color:#80919a;
    font-size:.75rem
}
.station-list {
    display:grid;
    gap:8px
}
.station-item {
    width:100%;
    display:grid;
    grid-template-columns:42px 1fr auto;
    align-items:center;
    gap:12px;
    padding:14px;
    border:1px solid transparent;
    border-radius:12px;
    background:#f4f7f8;
    color:#263842;
    text-align:left;
    cursor:pointer
}
.station-item:hover,.station-item.active {
    border-color:#8ce4d8;
    background:#e9faf7
}
.station-number {
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:10px;
    background:#dff6f2;
    color:#168f81;
    font:700 .75rem var(--display)
}
.station-item strong,.station-item small {
    display:block
}
.station-item small {
    margin-top:3px;
    color:#84949c;
    font-size:.72rem
}
.radio-empty {
    display:flex;
    min-height:330px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    color:#81929b;
    text-align:center
}
.radio-empty span {
    margin-bottom:14px;
    color:#39c8b6;
    font-size:2.5rem
}
.radio-empty small {
    max-width:220px;
    margin-top:6px
}
@media(max-width:1100px) {
    .radio-shell {grid-template-columns:1fr}
    .station-panel {min-height:auto}
}
@media(max-width:720px) {
    .radio-stage {min-height:auto;padding:22px}
    .radio-display {grid-template-columns:1fr;text-align:center;margin:45px 0 35px}
    .radio-art {width:150px;margin:auto}
    .radio-current p {margin-left:auto;margin-right:auto}
    .radio-signal {display:none}
    .radio-lower {grid-template-columns:1fr;margin-top:35px}
    .radio-topline span:last-child {display:none}
}
.library-actions details select{min-width:180px;padding:8px;border:1px solid #cad8df;border-radius:7px;background:#fff}.library-actions details label{display:grid;gap:5px;font-size:.75rem;font-weight:700}.library-actions .library-delete summary{border-color:#efc1c1;color:#a32626}.library-actions .library-delete form{display:grid;width:260px}.library-actions .library-delete input{width:100%;box-sizing:border-box}.library-actions .library-delete button{justify-content:center;border-color:#d94b4b;background:#fff1f1;color:#a32626}
.library-actions .library-action-open{border-color:#9bded5;background:#effbf9;color:#087f73}

/* Biblioteca em miniaturas, inspirada no Explorador de Arquivos */
.library-context-hint{margin:0 0 12px;color:#71838c;font-size:.84rem}
.library-search{display:grid;grid-template-columns:minmax(240px,1fr) auto auto auto;align-items:center;gap:10px;margin:0 0 16px;padding:12px;border:1px solid #d9e3e7;border-radius:12px;background:#fff}
.library-search label{display:flex;align-items:center;min-width:0;overflow:hidden;border:1px solid #cad8df;border-radius:9px;background:#f8fafb}
.library-search label:focus-within{border-color:#25b9a8;box-shadow:0 0 0 3px rgba(37,185,168,.12)}
.library-search label>span{padding-left:13px;color:#087f73;font-size:1.1rem}
.library-search input{width:100%;min-height:44px;padding:10px 13px;border:0;outline:0;background:transparent;font:inherit}
.library-search .button{min-height:44px;margin:0}
.library-search .button.ghost{border-color:#29404b;background:#fff;color:#172832;opacity:1}
.library-search .button.ghost:hover{border-color:#21aa99;background:#e8faf7;color:#087b70}
.library-search>strong{color:#60737d;font-size:.82rem;white-space:nowrap}
.library-explorer{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;min-height:180px;padding:16px;border:1px solid #d9e3e7;border-radius:14px;background:#fff}
.library-tile{position:relative;min-width:0;padding:8px;border:1px solid transparent;border-radius:12px;background:#fff;outline:none;transition:border-color .16s,background .16s,box-shadow .16s}
.library-tile:hover,.library-tile:focus,.library-tile.is-selected{border-color:#8fded4;background:#effbf9;box-shadow:0 7px 22px rgba(16,66,76,.10)}
.library-tile-open{display:grid;width:100%;height:132px;place-items:center;overflow:hidden;border:0;border-radius:9px;background:#f0f5f6;color:inherit;cursor:pointer;text-decoration:none}
.library-image-thumb{padding:0}
.library-image-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
.library-tile:hover .library-image-thumb img{transform:scale(1.035)}
.library-folder-icon,.library-file-icon{font-size:3.8rem}
.library-file-icon{height:132px;background:#f0f5f6}
.library-tile>strong{display:block;overflow:hidden;margin:9px 2px 3px;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}
.library-tile>small{display:block;overflow:hidden;margin:0 2px;color:#7b8b94;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}
.library-context-menu{position:fixed;z-index:3000;width:220px;padding:7px;border:1px solid #cbd9df;border-radius:11px;background:#fff;box-shadow:0 18px 48px rgba(13,37,48,.24);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.library-context-menu[hidden]{display:none}
.library-context-menu>a,.library-context-menu>form>button,.library-context-menu>details>summary{display:flex;width:100%;box-sizing:border-box;align-items:center;min-height:36px;padding:8px 10px;border:0;border-radius:7px;background:#fff;color:#29404b;font-family:inherit;font-size:.82rem;font-weight:600;line-height:1.2;text-align:left;cursor:pointer}
.library-context-menu>a:hover,.library-context-menu>form>button:hover,.library-context-menu>details>summary:hover{background:#eaf9f7;color:#087f73}
.library-context-menu>form{margin:0}
.library-context-menu details{position:relative}
.library-context-menu details>form{display:grid;gap:8px;margin:4px;padding:9px;border:1px solid #d8e3e7;border-radius:8px;background:#f7fafb}
.library-context-menu details label{display:grid;gap:5px;font-size:.74rem;font-weight:700}
.library-context-menu details input,.library-context-menu details select{width:100%;min-width:0;box-sizing:border-box;padding:8px;border:1px solid #cad8df;border-radius:7px;background:#fff;font:inherit}
.library-context-menu details label>span:not(.library-rename-field){color:#71838c;font-size:.68rem;font-weight:500}
.library-rename-field{display:flex;align-items:center;overflow:hidden;border:1px solid #cad8df;border-radius:7px;background:#fff}
.library-context-menu details .library-rename-field input{flex:1;border:0;border-radius:0;outline:none}
.library-rename-field b{align-self:stretch;display:flex;align-items:center;padding:0 8px;border-left:1px solid #d9e3e7;background:#edf3f5;color:#526771;font-size:.75rem;white-space:nowrap}
.library-context-menu details button{padding:8px;border:1px solid #9bded5;border-radius:7px;background:#effbf9;color:#087f73;font-weight:700;cursor:pointer}
.library-context-menu .library-delete>summary,.library-context-menu .library-delete button{color:#a32626}
.library-context-menu .library-delete button{border-color:#efc1c1;background:#fff1f1}
.library-lightbox{position:fixed;z-index:4000;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;padding:58px 28px 24px;background:rgba(4,18,26,.9);backdrop-filter:blur(4px)}
.library-lightbox[hidden]{display:none}
.library-lightbox img{display:block;max-width:min(94vw,1500px);max-height:calc(100vh - 115px);border-radius:10px;box-shadow:0 24px 80px #0008;object-fit:contain}
.library-lightbox>strong{margin-top:14px;color:#fff;font-size:.95rem}
.library-lightbox>button{position:absolute;top:16px;right:22px;width:42px;height:42px;border:1px solid #ffffff66;border-radius:50%;background:#fff;color:#172832;font-size:1.75rem;line-height:1;cursor:pointer}
body.library-preview-open{overflow:hidden}
.library-pagination{display:flex;align-items:center;justify-content:center;gap:7px;margin:20px 0 8px}
.library-pagination a{display:grid;min-width:40px;height:40px;box-sizing:border-box;place-items:center;padding:0 10px;border:1px solid #cddbe0;border-radius:9px;background:#fff;color:#087f73;font-weight:800;box-shadow:0 4px 12px rgba(20,48,59,.06)}
.library-pagination a:hover{border-color:#25b9a8;background:#effbf9}
.library-pagination a.active{border-color:#25b9a8;background:#35cdbc;color:#082f35}
.library-pagination a.disabled{pointer-events:none;opacity:.4}
.library-page-summary{text-align:center;color:#71838c;font-size:.78rem}
@media(max-width:700px){.library-search{grid-template-columns:1fr 1fr}.library-search label,.library-search>strong{grid-column:1/-1}.library-search .button{width:100%;justify-content:center}.library-explorer{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px}.library-tile-open,.library-file-icon{height:112px}.library-context-hint{font-size:.78rem}.library-lightbox{padding:58px 12px 18px}}

.reminder-channel{display:flex!important;min-height:58px;box-sizing:border-box;align-items:center;gap:11px;padding:11px 13px;border:1px solid #cfe0e4;border-radius:10px;background:#f7fafb;cursor:pointer}
.reminder-channel input{width:19px;height:19px;accent-color:#2ac8b7}
.reminder-channel span{display:grid;gap:3px}.reminder-channel strong{font-size:.86rem}.reminder-channel small{color:#71838c;font-size:.74rem;font-weight:400}
.reminder-whatsapp-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:13px;border:1px solid #bfe8e3;border-radius:11px;background:#effbf9}
.reminder-whatsapp-fields[hidden]{display:none}
.reminder-whatsapp-fields label{display:grid;gap:7px;font-size:.82rem;font-weight:700}
.reminder-whatsapp-fields input,.reminder-whatsapp-fields select{width:100%;min-height:46px;box-sizing:border-box;padding:10px 12px;border:1px solid #cad8df;border-radius:9px;background:#fff;font:inherit}
.reminder-delivery{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.reminder-delivery b{padding:3px 7px;border-radius:999px;background:#e5f8f4;color:#087f73;font-size:.68rem}
@media(max-width:700px){.reminder-whatsapp-fields{grid-template-columns:1fr}}
.cron-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}.cron-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0}.cron-status-grid span{display:grid;gap:5px;padding:15px;border:1px solid #d7e2e7;border-radius:12px;background:#f8fafb;color:#647985}.cron-status-grid strong{color:#172832}.cron-result{margin:0 0 18px;padding:14px;border-left:4px solid #39cbbb;border-radius:8px;background:#f1faf8;color:#526b76;overflow-wrap:anywhere}.cron-run-now{display:flex;justify-content:flex-end;margin-top:12px}@media(max-width:720px){.cron-settings-grid,.cron-status-grid{grid-template-columns:1fr}.cron-run-now .button{width:100%;justify-content:center}}
.cron-run-now .button.ghost{border-color:#29404b;background:#fff;color:#172832;opacity:1}.cron-run-now .button.ghost:hover{border-color:#21aa99;background:#e8faf7;color:#087b70}
.crypto-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.crypto-service-grid>span{display:grid;gap:5px;padding:16px;border:1px solid #d7e2e7;border-radius:12px;background:#f8fafb}.crypto-service-grid strong{color:#172832}.crypto-service-grid small{color:#647985}.crypto-service-grid b{margin-top:5px;color:#526b76;font-size:.82rem}.crypto-service-grid b.online{color:#07835f}.crypto-service-grid b.offline{color:#b33a3a}.crypto-test-action{display:flex;justify-content:flex-end;margin-top:15px}.crypto-test-action .button.ghost{border-color:#29404b;background:#fff;color:#172832;opacity:1}.crypto-test-action .button.ghost:hover{border-color:#21aa99;background:#e8faf7;color:#087b70}@media(max-width:760px){.crypto-service-grid{grid-template-columns:1fr}.crypto-test-action .button{width:100%;justify-content:center}}
.station-item-local{border-color:#b5e9e2;background:linear-gradient(135deg,#f4fffd,#edf9f7)}.station-item-local .station-number{color:#087f73}.station-item-local.active{border-color:#e5b93f;background:#fff4bf;box-shadow:0 10px 25px rgba(201,153,22,.18)}.station-item-local.active .station-number{background:#ffe58a;color:#725000}.station-item-local.active strong,.station-item-local.active small,.station-item-local.active>b{color:#513b00}
.radio-playback-modes{display:flex;justify-content:center;gap:8px;margin:-10px auto 22px;flex-wrap:wrap}.radio-playback-modes button{padding:8px 13px;border:1px solid #31515e;border-radius:999px;background:#102d38;color:#a9c6cd;font-family:inherit;font-size:.74rem;font-weight:700;cursor:pointer;transition:.18s}.radio-playback-modes button:hover{border-color:#45d6c4;color:#fff}.radio-playback-modes button.active{border-color:#45d6c4;background:#45d6c4;color:#09232d;box-shadow:0 7px 18px rgba(69,214,196,.2)}.radio-folder{margin-bottom:10px;border:1px solid #b9e7e1;border-radius:14px;background:#f5fffd;overflow:hidden}.radio-folder>summary{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:13px 14px;color:#17333d;cursor:pointer;list-style:none}.radio-folder>summary::-webkit-details-marker{display:none}.radio-folder>summary>span{font-size:1.25rem}.radio-folder>summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radio-folder>summary small{color:#6b828b;font-size:.7rem}.radio-folder>summary b{transition:transform .18s}.radio-folder:not([open])>summary b{transform:rotate(-90deg)}.radio-folder-tracks{display:grid;gap:8px;padding:0 8px 8px}.radio-folder-tracks .station-item{margin:0}.radio-online-label{padding:10px 4px 7px;color:#76909a;font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}@media(max-width:700px){.radio-playback-modes{margin-top:0}.radio-folder>summary{grid-template-columns:auto 1fr auto}.radio-folder>summary small{display:none}}
.radio-local-controls{width:min(520px,90%);margin:8px auto 24px}.radio-local-controls[hidden]{display:none}.radio-track-progress{display:grid;grid-template-columns:42px minmax(120px,1fr) 42px;align-items:center;gap:10px;margin-bottom:16px;color:#b9d2d8;font-size:.72rem;font-weight:700}.radio-track-progress time:last-child{text-align:right}.radio-track-progress progress{width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:#274752;accent-color:#45d6c4}.radio-track-progress progress::-webkit-progress-bar{background:#274752;border-radius:999px}.radio-track-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#45d6c4,#ffd15c);border-radius:999px}.radio-track-progress progress::-moz-progress-bar{background:linear-gradient(90deg,#45d6c4,#ffd15c);border-radius:999px}.radio-local-controls .radio-playback-modes{margin:0}
.radio-progress-bar{--radio-progress:0%;position:relative;width:100%;height:8px;border-radius:999px;background:#274752;box-shadow:inset 0 1px 3px rgba(0,0,0,.28);overflow:visible}.radio-progress-bar>i{position:absolute;inset:0 auto 0 0;width:var(--radio-progress);min-width:0;border-radius:999px;background:linear-gradient(90deg,#e3a900 0%,#ffd85f 45%,#fff09a 60%,#f4b900 100%);background-size:180% 100%;box-shadow:0 0 9px rgba(255,205,55,.48);transition:width .35s linear}.radio-progress-bar>i:after{content:'';position:absolute;right:-5px;top:50%;width:10px;height:10px;border-radius:50%;background:#ffd23f;box-shadow:0 0 0 3px rgba(255,210,63,.18),0 0 12px #ffd23f;transform:translateY(-50%);opacity:0}.radio-progress-bar.is-moving>i{animation:radio-progress-shine 1.5s linear infinite}.radio-progress-bar.is-moving>i:after{opacity:1;animation:radio-progress-pulse 1s ease-in-out infinite alternate}@keyframes radio-progress-shine{to{background-position:-180% 0}}@keyframes radio-progress-pulse{to{transform:translateY(-50%) scale(1.28);box-shadow:0 0 0 5px rgba(255,210,63,.1),0 0 16px #ffe071}}@media(prefers-reduced-motion:reduce){.radio-progress-bar.is-moving>i,.radio-progress-bar.is-moving>i:after{animation:none}}
.library-upload-progress{position:fixed;z-index:5000;right:24px;bottom:24px;width:min(430px,calc(100vw - 32px));box-sizing:border-box;margin:0;padding:17px 18px;border:1px solid #67d9cb;border-radius:14px;background:#f5fffd;box-shadow:0 20px 60px rgba(8,44,55,.28)}.library-upload-progress[hidden]{display:none}.library-upload-progress>div{align-items:center}.library-upload-progress strong{color:#17333d}.library-upload-progress progress{height:14px;border-radius:999px;overflow:hidden}.library-upload-progress small{max-height:70px;overflow:auto}@media(max-width:600px){.library-upload-progress{right:16px;bottom:16px}}
.library-bulk-toolbar{display:flex;justify-content:flex-end;margin:0 0 12px}.library-bulk-toolbar>form{display:flex;align-items:center;justify-content:flex-end;gap:10px;width:100%;padding:12px 14px;border:1px solid #b9e7e1;border-radius:11px;background:#f5fffd;flex-wrap:wrap}.library-bulk-toolbar>form[hidden]{display:none}.library-bulk-toolbar label{display:flex;align-items:center;gap:7px;font-size:.76rem;font-weight:700}.library-bulk-toolbar input[type=password],.library-bulk-toolbar select{width:190px;padding:9px 10px;border:1px solid #b8d3d0;border-radius:8px;background:#fff}.library-bulk-toolbar .button.primary{border-color:#21aa99;background:#35d2c0;color:#092f35}.library-bulk-toolbar .button.danger{border-color:#cf3d4a;background:#cf3d4a;color:#fff}.library-tile{position:relative}.library-select-check{display:none;position:absolute;z-index:5;top:8px;right:8px;width:31px;height:31px;border:2px solid #9db1b9;border-radius:50%;background:#fff;color:transparent;font-weight:900;cursor:pointer}.library-selecting .library-select-check{display:block}.library-tile.is-checked{outline:3px solid #e8b526;background:#fff8d8}.library-tile.is-checked .library-select-check{border-color:#e8b526;background:#ffd75b;color:#513b00}@media(max-width:760px){.library-bulk-toolbar>form{align-items:stretch;flex-direction:column}.library-bulk-toolbar label{justify-content:space-between}.library-bulk-toolbar input[type=password],.library-bulk-toolbar select{flex:1;width:auto}}
.library-bulk-toolbar>.button.ghost,.library-bulk-toolbar>form .button.ghost{border-color:#29404b;background:#fff;color:#172832;opacity:1;text-shadow:none}.library-bulk-toolbar>.button.ghost:hover,.library-bulk-toolbar>form .button.ghost:hover{border-color:#21aa99;background:#e8faf7;color:#087b70}.library-bulk-toolbar>.button[hidden]{display:none!important}
.library-bulk-action{display:flex;align-items:center;gap:10px}.library-bulk-action[hidden]{display:none!important}@media(max-width:760px){.library-bulk-action{align-items:stretch;flex-direction:column;width:100%}}
