/* EDGE CONTROL V4 */
:root{
  --e4-bg:#070809;--e4-panel:#101214;--e4-panel2:#141618;--e4-line:#292a2b;
  --e4-text:#f4efe7;--e4-muted:#9c958b;--e4-dim:#6f6a63;--e4-orange:#ff7a12;
  --e4-orange2:#ffa04d;--e4-green:#91df74;--e4-red:#ff6c66;
  --e4-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --e4-sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
html{background:var(--e4-bg)!important;color-scheme:dark}
body{color:var(--e4-text)!important;font-family:var(--e4-sans)!important}
body.edge-v4{min-height:100vh;background:
radial-gradient(900px 560px at 8% -8%,rgba(255,112,10,.12),transparent 58%),
radial-gradient(780px 580px at 102% 100%,rgba(255,130,28,.07),transparent 58%),var(--e4-bg)!important}
body.edge-v4:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-3;
background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
linear-gradient(90deg,rgba(255,255,255,.016) 1px,transparent 1px);background-size:54px 54px;
mask-image:linear-gradient(to bottom,black 0%,rgba(0,0,0,.76) 45%,transparent 100%)}
#edge-v4-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-2;opacity:.72}
#edge-v4-spotlight{position:fixed;left:0;top:0;width:540px;height:540px;border-radius:50%;pointer-events:none;z-index:-1;
background:radial-gradient(circle,rgba(255,124,25,.065),rgba(255,124,25,.018) 34%,transparent 68%);
transform:translate3d(-1000px,-1000px,0)}

body.edge-v4-login{margin:0!important;display:grid!important;grid-template-columns:minmax(0,1.14fr) minmax(420px,.86fr)!important;
align-items:center!important;gap:clamp(45px,7vw,130px)!important;padding:clamp(48px,7vh,100px) clamp(36px,7vw,120px)!important;
overflow:hidden!important;min-height:100vh!important}
.v4-login-stage{position:relative;max-width:820px;z-index:2;animation:v4Intro .9s cubic-bezier(.2,.8,.2,1) both}
.v4-kicker{display:inline-flex;align-items:center;gap:10px;color:var(--e4-orange2);font:800 11px/1 var(--e4-mono);letter-spacing:.15em;text-transform:uppercase}
.v4-kicker:before{content:"";width:24px;height:1px;background:var(--e4-orange);box-shadow:0 0 14px rgba(255,122,18,.7)}
.v4-login-stage h1{margin:26px 0 22px!important;max-width:780px;font-size:clamp(70px,7vw,122px)!important;line-height:.87!important;
letter-spacing:-.066em!important;font-weight:780!important;color:#f5f0e8!important}
.v4-login-stage h1 span{color:var(--e4-orange2);text-shadow:0 0 50px rgba(255,122,18,.10)}
.v4-login-stage>p{max-width:650px;margin:0!important;color:#9a9389!important;font-size:clamp(15px,1.15vw,18px)!important;line-height:1.75!important}
.v4-login-stats{display:flex;gap:44px;margin-top:38px}.v4-login-stat{display:flex;flex-direction:column;gap:6px}
.v4-login-stat strong{font-size:25px;letter-spacing:-.025em}.v4-login-stat span{color:#736e67;font:800 9px var(--e4-mono);letter-spacing:.13em}
.v4-network{position:relative;height:250px;margin-top:35px;max-width:650px}.v4-network svg{width:100%;height:100%;overflow:visible}
.v4-network line{stroke:#5a3b29;stroke-width:1.15;stroke-dasharray:5 8;animation:v4Dash 8s linear infinite}
.v4-network circle{fill:#7c573e}.v4-network circle.hot{fill:var(--e4-orange);filter:drop-shadow(0 0 10px #ff7a12);animation:v4Node 2.4s ease-in-out infinite}
.v4-network .packet{fill:#ffb26b;filter:drop-shadow(0 0 8px #ff7a12);offset-path:path("M36 178 L116 115 L196 151 L284 66 L384 126 L488 82 L598 156");
animation:v4Packet 5.6s linear infinite}

body.edge-v4-login .auth{position:relative!important;isolation:isolate;width:min(100%,535px)!important;max-width:none!important;justify-self:center!important;
padding:42px!important;border-radius:32px!important;background:linear-gradient(180deg,rgba(18,19,20,.94),rgba(13,14,15,.94))!important;
border:1px solid rgba(255,255,255,.085)!important;box-shadow:0 38px 120px rgba(0,0,0,.48),0 0 0 1px rgba(255,125,26,.025)!important;
backdrop-filter:blur(28px)!important;overflow:hidden;transform-style:preserve-3d;animation:v4CardIn 1s .08s cubic-bezier(.2,.8,.2,1) both}
body.edge-v4-login .auth:before{content:"";position:absolute;left:35px;right:35px;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--e4-orange),var(--e4-orange2),transparent)}
body.edge-v4-login .auth:after{content:"";position:absolute;inset:-2px;z-index:-1;pointer-events:none;
background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,126,26,.12),transparent 44%);opacity:.8}
body.edge-v4-login .brand{margin:0 0 38px!important;gap:12px!important}
body.edge-v4-login .brand .mark{width:40px!important;height:40px!important;border-radius:12px!important;background:linear-gradient(145deg,#ffa34f,#ff6d00)!important;
box-shadow:0 0 28px rgba(255,111,5,.24)!important}
body.edge-v4-login .brand .name{font-size:14px!important;letter-spacing:.08em!important;font-weight:850!important;font-family:var(--e4-mono)!important;color:#eee8df!important}
body.edge-v4-login .brand .sub{font:500 10px var(--e4-mono)!important;color:#6d6861!important;letter-spacing:.05em!important}
body.edge-v4-login .auth h1{font-size:38px!important;letter-spacing:-.04em!important;margin:0 0 8px!important;color:#f5f0e9!important}
body.edge-v4-login .auth .lead{margin:0 0 30px!important;color:#8f887f!important;font-size:14px!important;line-height:1.65!important}
body.edge-v4-login .auth .field label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body.edge-v4-login .auth .field{position:relative!important;margin-bottom:14px!important}
body.edge-v4-login .auth .field:before{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:17px;color:#6f6962;z-index:3;pointer-events:none}
body.edge-v4-login .auth .field:nth-of-type(1):before{content:"◎"}body.edge-v4-login .auth .field:nth-of-type(2):before{content:"◌"}
body.edge-v4-login .auth input{width:100%!important;height:68px!important;border-radius:18px!important;padding:0 52px 0 50px!important;background:#090a0b!important;color:#f3eee7!important;
border:1px solid #32312e!important;font-size:16px!important;font-weight:550!important;outline:0!important;transition:.22s!important}
body.edge-v4-login .auth input::placeholder{color:#625e58!important;opacity:1!important}
body.edge-v4-login .auth input:focus{border-color:#ff7a12!important;background:#0b0c0d!important;box-shadow:0 0 0 4px rgba(255,122,18,.08),0 18px 34px rgba(0,0,0,.18)!important;transform:translateY(-1px)}
.v4-field-ok{position:absolute;right:18px;top:50%;transform:translateY(-50%) scale(.6);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
background:rgba(255,122,18,.13);border:1px solid rgba(255,122,18,.28);color:#ff9a47;font-size:12px;opacity:0;transition:.2s}
.v4-field-ok.show{opacity:1;transform:translateY(-50%) scale(1)}
body.edge-v4-login .auth button[type="submit"]{position:relative!important;width:100%!important;height:70px!important;margin-top:10px!important;border-radius:20px!important;border:1px solid #ffa45d!important;
background:linear-gradient(180deg,#ff9b43,#ff7410)!important;color:#1a110b!important;font:900 13px/1 var(--e4-mono)!important;letter-spacing:.09em!important;text-transform:uppercase!important;
cursor:pointer!important;overflow:hidden!important;box-shadow:0 16px 42px rgba(255,108,5,.19)!important;transition:.22s!important}
body.edge-v4-login .auth button[type="submit"]:hover{filter:brightness(1.06)!important;box-shadow:0 22px 52px rgba(255,108,5,.27)!important}
.v4-button-shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 22%,rgba(255,255,255,.24) 42%,transparent 58%);transform:translateX(-120%)}
body.edge-v4-login .auth button[type="submit"]:hover .v4-button-shine{animation:v4Shine .8s ease}
.v4-auth-state{display:flex;align-items:center;justify-content:space-between;margin-top:18px;gap:10px;color:#726d66;font:800 9px var(--e4-mono);letter-spacing:.10em}
.v4-auth-state .left{display:flex;align-items:center;gap:8px}.v4-auth-dot{width:8px;height:8px;border-radius:50%;background:var(--e4-orange);box-shadow:0 0 18px rgba(255,122,18,.8);animation:v4Dot 1.7s ease-in-out infinite}
.v4-auth-state .secure{color:#5f5b55}
.v4-ripple,.v4-pulse-ring{position:fixed;z-index:9999;pointer-events:none;border:1px solid rgba(255,138,48,.55);border-radius:50%;transform:translate(-50%,-50%);animation:v4Ripple .58s ease-out forwards}

/* APP */
body.edge-v4-app{--canvas:var(--e4-bg)!important;--surface:var(--e4-panel)!important;--surface-2:var(--e4-panel2)!important;--border:var(--e4-line)!important;
--border-strong:#39352f!important;--text:var(--e4-text)!important;--muted:var(--e4-muted)!important;--faint:var(--e4-dim)!important;--accent:var(--e4-orange)!important}
body.edge-v4-app header,body.edge-v4-app .topbar{height:70px!important;padding:0 22px!important;background:rgba(8,9,10,.86)!important;border-bottom:1px solid rgba(255,255,255,.065)!important;
backdrop-filter:blur(22px)!important;box-shadow:0 12px 48px rgba(0,0,0,.25)!important}
body.edge-v4-app header .brand .mark,body.edge-v4-app .topbar .logo{background:linear-gradient(145deg,#ffa04b,#ff6f05)!important;color:#1d130c!important;border-radius:11px!important;box-shadow:0 0 25px rgba(255,119,15,.20)!important}
body.edge-v4-app .brand .name,body.edge-v4-app .brandtitle{font:850 14px var(--e4-mono)!important;letter-spacing:.09em!important;color:#eee9e1!important}
body.edge-v4-app .brand .sub,body.edge-v4-app .brandsub{font:500 10px var(--e4-mono)!important;letter-spacing:.05em!important;color:#69645e!important}
body.edge-v4-app .signout,body.edge-v4-app .topbtn{min-height:38px!important;padding:0 14px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:12px!important;background:#0f1011!important;border:1px solid #302f2c!important;color:#aaa49b!important;font-size:12px!important}
body.edge-v4-app .signout:hover,body.edge-v4-app .topbtn:hover{color:#ff9b4a!important;border-color:#66442e!important;background:#181411!important}
body.edge-v4-app .topbtn.active{color:#ff9a48!important;background:rgba(255,122,18,.09)!important;border-color:#68452e!important}
.v4-health{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:12px;border:1px solid rgba(145,223,116,.22);background:rgba(145,223,116,.055);color:#b2e7a2;font:800 9px var(--e4-mono);letter-spacing:.09em}
.v4-health i{width:7px;height:7px;border-radius:50%;background:var(--e4-green);box-shadow:0 0 15px rgba(145,223,116,.8);animation:v4Dot 1.8s ease-in-out infinite}
.v4-command{margin:0 0 16px!important;padding:18px 20px!important;min-height:84px;border-radius:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;
background:radial-gradient(circle at 10% 0,rgba(255,122,18,.065),transparent 38%),linear-gradient(180deg,rgba(18,19,21,.96),rgba(13,14,15,.96));
border:1px solid rgba(255,255,255,.075);box-shadow:0 18px 46px rgba(0,0,0,.22)}
.v4-command-kicker{color:#ff9040;font:850 9px var(--e4-mono);letter-spacing:.14em;margin-bottom:6px}.v4-command-title{font-size:25px;font-weight:760;letter-spacing:-.035em;color:#f1ece4}
.v4-command-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.v4-chip{min-height:32px;padding:0 11px;border-radius:11px;display:inline-flex;align-items:center;gap:7px;background:#0d0e0f;border:1px solid #2e2d2a;color:#89837b;font:750 9px var(--e4-mono);letter-spacing:.06em}.v4-chip b{color:#ddd7cf}.v4-chip.orange{border-color:#5a3c2a;color:#ff9945;background:rgba(255,122,18,.055)}
body.edge-v4-app .container{max-width:1660px!important;padding:20px!important;gap:16px!important;grid-template-columns:255px minmax(0,1fr)!important}
body.edge-v4-app .shell{max-width:1720px!important;padding:18px 20px!important}body.edge-v4-app .layout{grid-template-columns:250px minmax(0,1fr)!important;gap:16px!important}
body.edge-v4-app .card,body.edge-v4-app .sidecard,body.edge-v4-app .toolbar,body.edge-v4-app .contentcard,body.edge-v4-app .flash{background:linear-gradient(180deg,rgba(18,19,21,.98),rgba(13,14,15,.98))!important;border-color:#2b2b29!important;box-shadow:0 12px 35px rgba(0,0,0,.20)!important}
body.edge-v4-app .card,body.edge-v4-app .sidecard{border-radius:18px!important}.card-title,.sidehead{color:#ff9040!important}
body.edge-v4-app input,body.edge-v4-app select,body.edge-v4-app textarea,body.edge-v4-app .input{color-scheme:dark!important;background:#090a0b!important;color:#ddd7cf!important;border-color:#32312e!important;border-radius:12px!important}
body.edge-v4-app input:focus,body.edge-v4-app select:focus,body.edge-v4-app textarea:focus{border-color:#ff7a12!important;box-shadow:0 0 0 3px rgba(255,122,18,.08)!important}
body.edge-v4-app .dropzone{background:radial-gradient(circle at 50% 0,rgba(255,122,18,.075),transparent 65%),#0b0c0d!important;border-color:#4a392d!important;border-radius:16px!important;transition:.22s!important}
body.edge-v4-app .dropzone:hover,body.edge-v4-app .dropzone.dragover{border-color:#ff7a12!important;background:rgba(255,122,18,.045)!important;box-shadow:inset 0 0 60px rgba(255,122,18,.04)!important;transform:translateY(-1px)}
body.edge-v4-app .dropzone svg,body.edge-v4-app .dropicon{color:#ff8c34!important;stroke:#ff8c34!important}
body.edge-v4-app .stat,body.edge-v4-app .overviewrow{border-color:#292825!important}.stat-label,.overviewrow{color:#8f8980!important}.stat-val,.overviewrow b{color:#eee8df!important}
body.edge-v4-app .ampme-storage-widget,body.edge-v4-app .headerstorage,body.edge-v4-app .storagebar{background:linear-gradient(180deg,#151719,#101113)!important;border:1px solid #33312e!important;color:#ded8cf!important;box-shadow:0 14px 40px rgba(0,0,0,.24)!important}
body.edge-v4-app .ampme-storage-bar,body.edge-v4-app .headerstoragebar,body.edge-v4-app .storageline{background:#282724!important}
body.edge-v4-app .ampme-storage-fill,body.edge-v4-app .headerstoragebar span,body.edge-v4-app .storageline span{background:linear-gradient(90deg,#d85e09,#ff9138)!important;box-shadow:0 0 15px rgba(255,122,18,.16)!important}
body.edge-v4-app .btn,body.edge-v4-app .ghost,body.edge-v4-app button:not(.primary):not(.btn-primary),body.edge-v4-app .cardactions a{background:#0b0c0d!important;border-color:#37342f!important;color:#c2bcb4!important;border-radius:11px!important}
body.edge-v4-app .btn:hover,body.edge-v4-app .ghost:hover,body.edge-v4-app button:not(.primary):not(.btn-primary):hover,body.edge-v4-app .cardactions a:hover{background:#191512!important;border-color:#704a30!important;color:#ff9b49!important}
body.edge-v4-app .primary,body.edge-v4-app .btn-primary{background:linear-gradient(180deg,#ff9840,#ff7210)!important;border-color:#ffa059!important;color:#1a110b!important;box-shadow:0 9px 26px rgba(255,108,4,.14)!important;border-radius:11px!important}
body.edge-v4-app .danger{background:rgba(255,108,102,.045)!important;border-color:rgba(255,108,102,.24)!important;color:#ff817b!important}
body.edge-v4-app .library-controls,body.edge-v4-app .toolbar,body.edge-v4-app .breadcrumbbar{background:linear-gradient(180deg,#101214,#0c0d0e)!important;border-color:#2b2a28!important;box-shadow:0 10px 32px rgba(0,0,0,.16)!important}
body.edge-v4-app .library-controls{border-radius:18px!important}body.edge-v4-app .breadcrumbbar{border-radius:16px 16px 0 0!important;color:#8a847c!important}body.edge-v4-app .toolbar{border-radius:0 0 16px 16px!important}
body.edge-v4-app .grid,body.edge-v4-app .filegrid{gap:13px!important}
body.edge-v4-app .grid > *,body.edge-v4-app .filecard{background:linear-gradient(180deg,#151719,#101214)!important;border:1px solid #2e2d2a!important;border-radius:16px!important;overflow:hidden!important;box-shadow:0 8px 24px rgba(0,0,0,.17)!important;transition:.22s!important}
body.edge-v4-app .grid > *:hover,body.edge-v4-app .filecard:hover{transform:translateY(-3px)!important;border-color:#68472f!important;box-shadow:0 18px 44px rgba(0,0,0,.28),0 0 0 1px rgba(255,122,18,.035)!important}
body.edge-v4-app .preview,body.edge-v4-app .folderpreview{background:radial-gradient(circle at 50% 38%,rgba(255,122,18,.055),transparent 42%),#0c0d0e!important;border-bottom:1px solid #292825!important}
body.edge-v4-app .folderpreview{color:#ff8730!important}.filename{color:#eee8df!important}.meta{color:#817b73!important}
body.edge-v4-app .pill{background:#20201e!important;color:#969087!important;border:1px solid #302f2c!important}.pill.ready{background:rgba(145,223,116,.075)!important;color:#afe89d!important;border-color:rgba(145,223,116,.2)!important}
body.edge-v4-app .docs-card,body.edge-v4-app .doc-card,body.edge-v4-app .documentation,body.edge-v4-app .content,body.edge-v4-app .panel{background:linear-gradient(180deg,#121315,#0f1011)!important;border-color:#2b2a28!important;color:#e8e2da!important}
body.edge-v4-app code,body.edge-v4-app pre{background:#090a0b!important;color:#d7d0c8!important;border-color:#2b2a28!important}

#v4-handoff{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(255,122,18,.12),transparent 25%),rgba(6,7,8,.975);transition:opacity .58s cubic-bezier(.2,.8,.2,1)}
#v4-handoff.hide{opacity:0;pointer-events:none}.v4-handoff-inner{text-align:center;animation:v4HandoffIn .55s cubic-bezier(.2,.8,.2,1) both}
.v4-handoff-mark{width:58px;height:58px;margin:0 auto 19px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#ffa14b,#ff6e05);color:#1b110a;font-size:22px;box-shadow:0 0 45px rgba(255,122,18,.27)}
.v4-handoff-kicker{font:850 9px var(--e4-mono);letter-spacing:.15em;color:#ff9140;margin-bottom:9px}.v4-handoff-title{font-size:34px;font-weight:800;letter-spacing:-.04em}.v4-handoff-sub{margin-top:8px;color:#807a72;font-size:12px}
.v4-handoff-track{width:230px;height:3px;margin:20px auto 0;background:#252420;border-radius:99px;overflow:hidden}.v4-handoff-track i{display:block;width:100%;height:100%;background:#ff7a12;transform-origin:left;animation:v4Load .85s ease both}

@keyframes v4Intro{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes v4CardIn{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}
@keyframes v4Dash{to{stroke-dashoffset:-120}}@keyframes v4Node{0%,100%{opacity:.62}50%{opacity:1;filter:drop-shadow(0 0 14px #ff7a12)}}@keyframes v4Packet{to{offset-distance:100%}}
@keyframes v4Dot{0%,100%{opacity:.52;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}@keyframes v4Shine{to{transform:translateX(120%)}}
@keyframes v4Ripple{from{width:12px;height:12px;opacity:1}to{width:86px;height:86px;opacity:0}}@keyframes v4HandoffIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@keyframes v4Load{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@media(max-width:1100px){
 body.edge-v4-login{grid-template-columns:1fr!important;overflow:auto!important;align-items:start!important;padding-top:55px!important}
 .v4-login-stage h1{font-size:72px!important}.v4-network{height:170px}body.edge-v4-login .auth{justify-self:start!important;margin-bottom:45px}
 body.edge-v4-app .container,body.edge-v4-app .layout{grid-template-columns:225px minmax(0,1fr)!important}.v4-health{display:none}
}
@media(max-width:760px){
 body.edge-v4-login{padding:28px 16px 42px!important}.v4-login-stage h1{font-size:55px!important}.v4-network{display:none}
 body.edge-v4-login .auth{padding:27px!important;border-radius:25px!important}body.edge-v4-login .auth input{height:62px!important}
 body.edge-v4-app .container,body.edge-v4-app .layout{display:block!important;padding:12px!important}.v4-command{align-items:flex-start!important;flex-direction:column!important}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}#edge-v4-canvas,#edge-v4-spotlight{display:none!important}}


/* EDGE_CONTROL_V41_MOTION */
/* =========================================================
   EDGE CONTROL V4.1 — MOTION LAYER
   Pure presentation/micro-interaction layer
   ========================================================= */

body.edge-v4-app{
  --v41-ease:cubic-bezier(.2,.8,.2,1);
  --v41-ease-spring:cubic-bezier(.16,1,.3,1);
}

/* Initial page reveal */
body.edge-v4-app.v41-ready header,
body.edge-v4-app.v41-ready .topbar{
  animation:v41TopIn .56s var(--v41-ease) both;
}
body.edge-v4-app.v41-ready .v4-command{
  animation:v41CommandIn .66s .05s var(--v41-ease-spring) both;
}
body.edge-v4-app.v41-ready .sidebar > *{
  animation:v41SideIn .55s var(--v41-ease) both;
}
body.edge-v4-app.v41-ready .sidebar > *:nth-child(1){animation-delay:.06s}
body.edge-v4-app.v41-ready .sidebar > *:nth-child(2){animation-delay:.10s}
body.edge-v4-app.v41-ready .sidebar > *:nth-child(3){animation-delay:.14s}
body.edge-v4-app.v41-ready .sidebar > *:nth-child(4){animation-delay:.18s}
body.edge-v4-app.v41-ready .sidebar > *:nth-child(5){animation-delay:.22s}
body.edge-v4-app.v41-ready .sidebar > *:nth-child(6){animation-delay:.26s}

/* Cards reveal progressively */
body.edge-v4-app .v41-reveal{
  opacity:0;
  transform:translate3d(0,14px,0) scale(.988);
}
body.edge-v4-app .v41-reveal.v41-visible{
  animation:v41CardIn .58s var(--v41-ease-spring) forwards;
}

/* Card hover depth */
body.edge-v4-app .v41-motion-card{
  --v41-rx:0deg;
  --v41-ry:0deg;
  --v41-glow-x:50%;
  --v41-glow-y:50%;
  position:relative;
  isolation:isolate;
  transform:perspective(850px) rotateX(var(--v41-rx)) rotateY(var(--v41-ry));
  transform-style:preserve-3d;
  will-change:transform;
}
body.edge-v4-app .v41-motion-card:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:0;
  border-radius:inherit;
  background:
    radial-gradient(240px circle at var(--v41-glow-x) var(--v41-glow-y),
      rgba(255,126,27,.105),transparent 62%);
  transition:opacity .22s var(--v41-ease);
}
body.edge-v4-app .v41-motion-card:hover:after{opacity:1}

/* Orange scan along top edge */
body.edge-v4-app .v41-motion-card:before{
  content:"";
  position:absolute;
  left:12%;
  right:12%;
  top:-1px;
  height:1px;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(90deg,transparent,#ff7a12,transparent);
  transform:scaleX(.35);
  transition:opacity .24s,transform .4s var(--v41-ease-spring);
}
body.edge-v4-app .v41-motion-card:hover:before{
  opacity:.72;
  transform:scaleX(1);
}

/* Folder icon subtle float */
body.edge-v4-app .folderpreview,
body.edge-v4-app .preview{
  position:relative;
}
body.edge-v4-app .v41-motion-card:hover .folderpreview{
  animation:v41FolderFloat 1.7s ease-in-out infinite;
}
body.edge-v4-app .v41-motion-card:hover .folderpreview{
  text-shadow:0 0 25px rgba(255,122,18,.28);
}

/* Command surface live shimmer */
body.edge-v4-app .v4-command{
  position:relative;
  overflow:hidden;
}
body.edge-v4-app .v4-command:after{
  content:"";
  position:absolute;
  top:0;bottom:0;width:240px;
  left:-280px;
  pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,132,40,.05),transparent);
  animation:v41CommandScan 7.2s ease-in-out infinite;
}

/* Health pulse */
body.edge-v4-app .v4-health{
  position:relative;
  overflow:hidden;
}
body.edge-v4-app .v4-health:after{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  border:1px solid rgba(145,223,116,.18);
  animation:v41Health 2.5s ease-out infinite;
}

/* Storage bars animate from zero once per load */
body.edge-v4-app .ampme-storage-fill,
body.edge-v4-app .headerstoragebar span,
body.edge-v4-app .storageline span,
body.edge-v4-app .progress > span{
  transform-origin:left center;
}
body.edge-v4-app.v41-ready .ampme-storage-fill,
body.edge-v4-app.v41-ready .headerstoragebar span,
body.edge-v4-app.v41-ready .storageline span,
body.edge-v4-app.v41-ready .progress > span{
  animation:v41BarGrow .9s .28s var(--v41-ease-spring) both,
            v41BarGlow 3.2s 1.1s ease-in-out infinite;
}

/* Toolbar / input focus motion */
body.edge-v4-app input,
body.edge-v4-app select,
body.edge-v4-app textarea{
  transition:
    border-color .22s var(--v41-ease),
    box-shadow .22s var(--v41-ease),
    transform .22s var(--v41-ease),
    background .22s var(--v41-ease)!important;
}
body.edge-v4-app input:focus,
body.edge-v4-app select:focus,
body.edge-v4-app textarea:focus{
  transform:translateY(-1px);
}

/* Buttons get tactile motion */
body.edge-v4-app button,
body.edge-v4-app .btn,
body.edge-v4-app .ghost,
body.edge-v4-app .primary,
body.edge-v4-app .topbtn,
body.edge-v4-app .signout{
  transition:
    transform .16s var(--v41-ease),
    box-shadow .22s var(--v41-ease),
    border-color .22s var(--v41-ease),
    color .22s var(--v41-ease),
    background .22s var(--v41-ease)!important;
}
body.edge-v4-app button:hover,
body.edge-v4-app .btn:hover,
body.edge-v4-app .ghost:hover,
body.edge-v4-app .topbtn:hover,
body.edge-v4-app .signout:hover{
  transform:translateY(-1px);
}
body.edge-v4-app button:active,
body.edge-v4-app .btn:active,
body.edge-v4-app .ghost:active,
body.edge-v4-app .topbtn:active,
body.edge-v4-app .signout:active{
  transform:translateY(0) scale(.985);
}

/* Sidebar cards: tiny breathing edge, not distracting */
body.edge-v4-app .sidebar .card,
body.edge-v4-app .sidebar .sidecard{
  position:relative;
  overflow:hidden;
}
body.edge-v4-app .sidebar .card:after,
body.edge-v4-app .sidebar .sidecard:after{
  content:"";
  position:absolute;
  inset:auto 16px 0 16px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,122,18,.18),transparent);
  opacity:.35;
  animation:v41SidebarBreath 4.4s ease-in-out infinite;
}

/* View toggle animation */
body.edge-v4-app .viewtoggle button.active{
  animation:v41Toggle .32s var(--v41-ease-spring);
}

/* Scrollbar less visually harsh */
body.edge-v4-app::-webkit-scrollbar-thumb,
body.edge-v4-app *::-webkit-scrollbar-thumb{
  transition:background .2s;
}
body.edge-v4-app *::-webkit-scrollbar-thumb:hover{
  background:#6a4831!important;
}

/* Page transition veil for in-panel navigation */
#v41-page-veil{
  position:fixed;
  inset:0;
  z-index:99998;
  pointer-events:none;
  opacity:0;
  background:
    radial-gradient(circle at var(--vx,50%) var(--vy,50%),rgba(255,122,18,.08),transparent 28%),
    rgba(7,8,9,.54);
  backdrop-filter:blur(3px);
  transition:opacity .22s var(--v41-ease);
}
#v41-page-veil.show{opacity:1}

/* Tiny moving packet on command bar */
.v41-packet{
  position:absolute;
  top:0;
  left:10%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#ff9a48;
  box-shadow:0 0 16px rgba(255,122,18,.9);
  animation:v41Packet 5.8s linear infinite;
  pointer-events:none;
}

/* Keyframes */
@keyframes v41TopIn{
  from{opacity:0;transform:translateY(-10px)}
  to{opacity:1;transform:none}
}
@keyframes v41CommandIn{
  from{opacity:0;transform:translateY(13px) scale(.99)}
  to{opacity:1;transform:none}
}
@keyframes v41SideIn{
  from{opacity:0;transform:translateX(-10px)}
  to{opacity:1;transform:none}
}
@keyframes v41CardIn{
  from{opacity:0;transform:translate3d(0,14px,0) scale(.988)}
  to{opacity:1;transform:none}
}
@keyframes v41FolderFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
@keyframes v41CommandScan{
  0%,35%{left:-280px}
  58%,100%{left:calc(100% + 40px)}
}
@keyframes v41Health{
  0%{opacity:.7;transform:scale(.98)}
  70%,100%{opacity:0;transform:scale(1.18)}
}
@keyframes v41BarGrow{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}
@keyframes v41BarGlow{
  0%,100%{filter:brightness(.95)}
  50%{filter:brightness(1.18)}
}
@keyframes v41SidebarBreath{
  0%,100%{opacity:.18;transform:scaleX(.75)}
  50%{opacity:.48;transform:scaleX(1)}
}
@keyframes v41Toggle{
  from{transform:scale(.88)}
  to{transform:scale(1)}
}
@keyframes v41Packet{
  from{left:8%;opacity:0}
  8%{opacity:1}
  90%{opacity:1}
  to{left:92%;opacity:0}
}

@media(prefers-reduced-motion:reduce){
  body.edge-v4-app .v41-reveal,
  body.edge-v4-app .v41-reveal.v41-visible{
    opacity:1!important;
    transform:none!important;
    animation:none!important;
  }
  body.edge-v4-app .v41-motion-card{
    transform:none!important;
  }
  .v41-packet,#v41-page-veil{display:none!important}
}


/* EDGE_CONTROL_V411_UI_FIXES */
/* =========================================================
   EDGE CONTROL V4.1.1 — UI FIXES
   - Fixed themed toast for PHP flash messages
   - Upload sidebar card sizing correction
   ========================================================= */

/* ---- Upload card: ensure the V4 dropzone fits inside the card ---- */
body.edge-v4-app .sidebar-card-upload{
  height:auto!important;
  min-height:258px!important;
  max-height:none!important;
  overflow:visible!important;
  align-self:stretch!important;
}
body.edge-v4-app .sidebar-card-upload.card{
  display:block!important;
}
body.edge-v4-app .sidebar-card-upload.card-pad{
  padding:16px!important;
}
body.edge-v4-app .sidebar-card-upload form{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
body.edge-v4-app .sidebar-card-upload .dropzone{
  box-sizing:border-box!important;
  width:100%!important;
  height:auto!important;
  min-height:174px!important;
  max-height:none!important;
  padding:24px 14px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}
body.edge-v4-app .sidebar-card-upload .dropzone svg{
  flex:0 0 auto!important;
  margin-bottom:10px!important;
}
body.edge-v4-app .sidebar-card-upload .dz-main{
  line-height:1.35!important;
}
body.edge-v4-app .sidebar-card-upload .dz-sub{
  line-height:1.45!important;
  max-width:100%!important;
}

/* On smaller screens, let content define the card naturally. */
@media(max-width:860px){
  body.edge-v4-app .sidebar-card-upload{
    min-height:0!important;
  }
  body.edge-v4-app .sidebar-card-upload .dropzone{
    min-height:150px!important;
  }
}

/* ---- Theme-native flash toast system ---- */
#v411-toast-stack{
  position:fixed;
  top:86px;
  right:22px;
  z-index:120000;
  width:min(410px,calc(100vw - 28px));
  display:flex;
  flex-direction:column;
  gap:10px;
  pointer-events:none;
}

.v411-toast{
  --toast-accent:#ff8b35;
  --toast-accent-rgb:255,139,53;
  position:relative;
  overflow:hidden;
  pointer-events:auto;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 30px;
  align-items:start;
  gap:12px;
  padding:14px 14px 13px;
  border-radius:17px;
  background:
    radial-gradient(circle at 0 0,rgba(var(--toast-accent-rgb),.09),transparent 38%),
    linear-gradient(180deg,rgba(20,21,23,.97),rgba(12,13,14,.97));
  border:1px solid rgba(var(--toast-accent-rgb),.25);
  box-shadow:
    0 22px 70px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.025);
  backdrop-filter:blur(20px);
  transform-origin:top right;
  animation:v411ToastIn .46s cubic-bezier(.16,1,.3,1) both;
}

.v411-toast.success{
  --toast-accent:#91df74;
  --toast-accent-rgb:145,223,116;
}
.v411-toast.error,
.v411-toast.warning{
  --toast-accent:#ff8b35;
  --toast-accent-rgb:255,139,53;
}

.v411-toast-icon{
  width:42px;
  height:42px;
  border-radius:13px;
  display:grid;
  place-items:center;
  background:rgba(var(--toast-accent-rgb),.095);
  border:1px solid rgba(var(--toast-accent-rgb),.22);
  color:var(--toast-accent);
  box-shadow:0 0 24px rgba(var(--toast-accent-rgb),.08);
}
.v411-toast-icon svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.v411-toast-copy{
  min-width:0;
  padding-top:2px;
}
.v411-toast-title{
  margin:0 0 4px;
  color:#f0ebe3;
  font-size:13px;
  line-height:1.25;
  font-weight:750;
  letter-spacing:-.01em;
}
.v411-toast-message{
  margin:0;
  color:#9a948b;
  font-size:12px;
  line-height:1.5;
  overflow-wrap:anywhere;
}

.v411-toast-close{
  width:30px!important;
  height:30px!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  color:#746e67!important;
  font-size:20px!important;
  line-height:1!important;
  display:grid!important;
  place-items:center!important;
  box-shadow:none!important;
  transform:none!important;
}
.v411-toast-close:hover{
  background:rgba(255,255,255,.045)!important;
  color:#d7d0c7!important;
  transform:none!important;
}

.v411-toast-progress{
  position:absolute;
  left:14px;
  right:14px;
  bottom:0;
  height:2px;
  overflow:hidden;
  border-radius:99px 99px 0 0;
  background:rgba(255,255,255,.035);
}
.v411-toast-progress i{
  display:block;
  width:100%;
  height:100%;
  background:var(--toast-accent);
  transform-origin:left center;
  animation:v411ToastTimer var(--v411-duration,8s) linear forwards;
  box-shadow:0 0 10px rgba(var(--toast-accent-rgb),.45);
}

.v411-toast:hover .v411-toast-progress i{
  animation-play-state:paused;
}

.v411-toast.is-leaving{
  animation:v411ToastOut .28s ease forwards;
}

@keyframes v411ToastIn{
  from{opacity:0;transform:translate3d(18px,-8px,0) scale(.975)}
  to{opacity:1;transform:none}
}
@keyframes v411ToastOut{
  to{opacity:0;transform:translate3d(20px,-5px,0) scale(.98)}
}
@keyframes v411ToastTimer{
  from{transform:scaleX(1)}
  to{transform:scaleX(0)}
}

@media(max-width:680px){
  #v411-toast-stack{
    top:76px;
    left:12px;
    right:12px;
    width:auto;
  }
  .v411-toast{
    grid-template-columns:38px minmax(0,1fr) 30px;
    border-radius:15px;
  }
  .v411-toast-icon{
    width:38px;
    height:38px;
  }
}

@media(prefers-reduced-motion:reduce){
  .v411-toast,
  .v411-toast.is-leaving,
  .v411-toast-progress i{
    animation:none!important;
  }
}


/* EDGE_CONTROL_V412_SIDEBAR_FLOW_FIX */
/* EDGE CONTROL V4.1.2 — SIDEBAR FLOW FIX
   Root cause fixed:
   flex sidebar cards were allowed to shrink while V4.1 set overflow:hidden.
   All sidebar cards now keep natural content height and the sidebar itself scrolls.
*/

body.edge-v4-app .sidebar{
  align-items:stretch!important;
}

/* Every real sidebar card must keep its natural content height. */
body.edge-v4-app .sidebar > .card,
body.edge-v4-app .sidebar > .sidecard,
body.edge-v4-app .sidebar-summary > .card,
body.edge-v4-app .sidebar-summary > .sidecard,
body.edge-v4-app .sidebar-actions > .card,
body.edge-v4-app .sidebar-actions > .sidecard,
body.edge-v4-app .sidebar .sidebar-card-upload,
body.edge-v4-app .sidebar .sidebar-card-newfolder,
body.edge-v4-app .sidebar .sidebar-card-seoupload,
body.edge-v4-app .sidebar .sidebar-card-overview,
body.edge-v4-app .sidebar .sidebar-card-mediaseo,
body.edge-v4-app .sidebar .sidebar-card-docs,
body.edge-v4-app .sidebar .sidebar-card-status{
  flex:0 0 auto!important;
  flex-shrink:0!important;
  height:auto!important;
  min-height:max-content!important;
  max-height:none!important;
  overflow:visible!important;
  contain:none!important;
}

/* Wrappers from the older panel layout must not impose sizing. */
body.edge-v4-app .sidebar-summary,
body.edge-v4-app .sidebar-actions{
  min-height:0!important;
  max-height:none!important;
}

/* Content inside cards must be allowed to define the card height. */
body.edge-v4-app .sidebar .card-pad,
body.edge-v4-app .sidebar .sidecard{
  box-sizing:border-box!important;
}
body.edge-v4-app .sidebar .card-pad > *,
body.edge-v4-app .sidebar .sidecard > *{
  max-height:none!important;
}
body.edge-v4-app .sidebar form{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}

/* Keep action controls visible, including cards that were previously clipped. */
body.edge-v4-app .sidebar .sidebar-card-newfolder .btn,
body.edge-v4-app .sidebar .sidebar-card-seoupload .btn,
body.edge-v4-app .sidebar .sidebar-card-docs .btn,
body.edge-v4-app .sidebar .sidebar-card-docs a{
  position:relative!important;
  visibility:visible!important;
  opacity:1!important;
}

/* Upload stays spacious but no longer forces siblings to shrink. */
body.edge-v4-app .sidebar-card-upload{
  min-height:0!important;
}
body.edge-v4-app .sidebar-card-upload .dropzone{
  min-height:168px!important;
  height:auto!important;
  max-height:none!important;
}

/* The rail scrolls; cards do not collapse to fit the viewport. */
body.edge-v4-app .sidebar{
  overflow-y:auto!important;
  overflow-x:visible!important;
  scrollbar-width:thin;
  scrollbar-color:#5d422f transparent;
}
body.edge-v4-app .sidebar::-webkit-scrollbar{
  width:7px!important;
}
body.edge-v4-app .sidebar::-webkit-scrollbar-track{
  background:transparent!important;
}
body.edge-v4-app .sidebar::-webkit-scrollbar-thumb{
  background:#49382e!important;
  border:1px solid transparent!important;
  background-clip:padding-box!important;
  border-radius:99px!important;
}
body.edge-v4-app .sidebar::-webkit-scrollbar-thumb:hover{
  background:#735039!important;
}

@media(max-width:860px){
  body.edge-v4-app .sidebar{
    overflow:visible!important;
  }
  body.edge-v4-app .sidebar > .card,
  body.edge-v4-app .sidebar > .sidecard,
  body.edge-v4-app .sidebar .sidebar-card-upload,
  body.edge-v4-app .sidebar .sidebar-card-newfolder,
  body.edge-v4-app .sidebar .sidebar-card-seoupload,
  body.edge-v4-app .sidebar .sidebar-card-overview,
  body.edge-v4-app .sidebar .sidebar-card-mediaseo,
  body.edge-v4-app .sidebar .sidebar-card-docs,
  body.edge-v4-app .sidebar .sidebar-card-status{
    min-height:0!important;
  }
}

