:root{
  --bg:#fff3fa;
  --bg-soft:#ffe7f4;
  --pink:#ff72b6;
  --pink-dark:#e94695;
  --pink-light:#ffb9dc;
  --purple:#ad7bff;
  --purple-dark:#8054d8;
  --cream:#fffafd;
  --text:#56334a;
  --dim:#8c647c;
  --white:#ffffff;
  --border:#f4b9d8;
  --ok:#65d99b;
  --bad:#ff6f91;
  --shadow:0 18px 50px rgba(199,79,143,.16);
  --shadow-soft:0 12px 35px rgba(190,78,140,.10);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  font-family:"Segoe UI","Trebuchet MS",system-ui,-apple-system,sans-serif;
  color:var(--text);
  line-height:1.6;
  background:
    radial-gradient(circle at 10% 10%,rgba(255,185,220,.65),transparent 30%),
    radial-gradient(circle at 90% 15%,rgba(173,123,255,.20),transparent 28%),
    radial-gradient(circle at 50% 90%,rgba(255,114,182,.18),transparent 32%),
    linear-gradient(180deg,#fff7fc 0%,#ffeaf5 50%,#fff8fc 100%);
}
body::before,body::after{
  content:"";position:fixed;z-index:-2;border-radius:50%;filter:blur(8px);opacity:.8;pointer-events:none;
}
body::before{width:280px;height:280px;left:-90px;top:240px;background:rgba(255,139,194,.16)}
body::after{width:340px;height:340px;right:-120px;top:480px;background:rgba(173,123,255,.12)}
a{color:inherit}
button,input{font:inherit}
button{cursor:pointer}

.page-shell{width:min(1100px,calc(100% - 36px));margin:0 auto;padding:0 0 42px}
.sparkle{position:fixed;pointer-events:none;color:#ff8fc7;opacity:.7;z-index:-1;animation:sparkle 3s ease-in-out infinite}
.sparkle.one{left:8%;top:80px;font-size:2rem}.sparkle.two{right:11%;top:160px;font-size:1.5rem;animation-delay:.8s}.sparkle.three{right:22%;top:55px;font-size:1.2rem;animation-delay:1.4s}
@keyframes sparkle{0%,100%{opacity:.35;transform:scale(.85) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(15deg)}}
@keyframes float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(.88)}}

.site-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:34px 0 20px}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;min-width:0}
.brand-mark{position:relative;display:grid;place-items:center;width:62px;height:62px;flex:0 0 62px;border-radius:50%;background:linear-gradient(135deg,#fff,#ffd2e9 45%,#cdb2ff);box-shadow:0 10px 32px rgba(228,70,149,.20),0 0 0 5px rgba(255,255,255,.58)}
.brand-mark img{width:50px;height:50px;object-fit:cover;border-radius:50%;border:3px solid white;animation:float 5s ease-in-out infinite}
.brand-mark .fallback{display:none;place-items:center;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;font-weight:900;font-size:1.45rem}
.brand-copy{display:flex;flex-direction:column;line-height:1.12}.brand-copy strong{font-size:1.16rem;color:var(--pink-dark)}.brand-copy small{margin-top:4px;color:var(--dim)}
.site-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}

.soft-button,.mini-button,.round-button,.download-button,.primary-button,.secondary-button{
  border:1px solid rgba(239,172,208,.95);border-radius:14px;text-decoration:none;font-weight:800;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease,border-color .15s ease,background .15s ease;
}
.soft-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 15px;color:var(--pink-dark);background:rgba(255,255,255,.82);box-shadow:0 7px 20px rgba(191,83,143,.08);backdrop-filter:blur(12px)}
.soft-button:hover,.mini-button:hover,.round-button:hover{transform:translateY(-2px);border-color:var(--pink);background:#fff5fa}

.official-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;margin:13px 0 18px;padding:30px 32px;border:1px solid rgba(244,185,216,.92);border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(255,239,247,.91));box-shadow:var(--shadow)}
.official-hero::before{content:"";position:absolute;width:180px;height:180px;right:-60px;top:-65px;border-radius:50%;background:rgba(173,123,255,.12)}
.official-hero .kicker,.eyebrow{display:inline-block;margin-bottom:6px;color:var(--pink-dark);font-size:.78rem;font-weight:800;letter-spacing:2px;text-transform:uppercase}
.official-hero h1{position:relative;margin:2px 0 8px;font-size:clamp(2rem,5vw,3.35rem);line-height:1.07;letter-spacing:-1px;background:linear-gradient(135deg,var(--pink-dark),var(--pink) 42%,var(--purple) 78%,var(--purple-dark));-webkit-background-clip:text;background-clip:text;color:transparent}
.official-hero p{position:relative;max-width:720px;margin:0;color:var(--dim);font-size:1rem}
.hero-bubble{position:relative;display:grid;place-items:center;width:82px;height:82px;border-radius:24px;font-size:2.25rem;background:linear-gradient(135deg,rgba(255,213,235,.98),rgba(224,207,255,.98));box-shadow:0 12px 28px rgba(193,83,144,.14);animation:float 5s ease-in-out infinite}

.library-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 16px}
.library-switch a{display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid rgba(244,185,216,.9);border-radius:19px;text-decoration:none;background:rgba(255,255,255,.72);box-shadow:var(--shadow-soft);backdrop-filter:blur(12px)}
.library-switch a.active{border-color:#ef9dca;background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(255,231,244,.94));box-shadow:0 14px 40px rgba(198,67,140,.15)}
.library-switch .switch-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#ffd2e9,#d7c4ff);font-size:1.25rem}.library-switch b{display:block;color:var(--pink-dark)}.library-switch small{display:block;color:var(--dim)}

.glass{border:1px solid rgba(244,185,216,.92);background:rgba(255,255,255,.82);box-shadow:var(--shadow-soft);backdrop-filter:blur(14px)}
.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:11px 16px;border-radius:16px;color:var(--dim);font-size:.9rem}.breadcrumbs a{color:var(--pink-dark);font-weight:700;text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.crumb-sep{opacity:.5}

.file-panel{overflow:hidden;border-radius:26px;background:linear-gradient(155deg,rgba(255,255,255,.97),rgba(255,239,248,.92));box-shadow:var(--shadow)}
.file-panel::before{content:"";display:block;height:7px;background:linear-gradient(90deg,var(--pink-light),var(--pink),var(--purple))}
.file-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 26px 17px;border-bottom:1px solid rgba(244,185,216,.7)}
.file-panel-head h2{margin:0;color:var(--text);font-size:1.45rem}.file-panel-head p{margin:3px 0 0;color:var(--dim);font-size:.86rem}
.file-list{padding:0 14px 14px}.file-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;min-height:78px;padding:14px 12px;border-bottom:1px solid rgba(244,185,216,.55);transition:transform .15s ease,background .15s ease,border-color .15s ease}.file-row:last-child{border-bottom:0}.file-row:hover{transform:translateY(-1px);background:rgba(255,247,252,.88)}
.file-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,rgba(255,213,235,.92),rgba(224,207,255,.90));font-size:1.45rem;box-shadow:0 7px 18px rgba(193,83,144,.10)}
.file-main{min-width:0}.file-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:800;text-decoration:none}.file-name:hover{color:var(--pink-dark)}.file-meta{display:block;margin-top:3px;color:var(--dim);font-size:.81rem}
.download-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;color:white;border-color:transparent;background:linear-gradient(135deg,var(--pink-dark),var(--pink) 50%,var(--purple));box-shadow:0 9px 25px rgba(211,86,156,.22)}.download-button:hover{transform:translateY(-2px);filter:brightness(1.04);box-shadow:0 13px 30px rgba(211,86,156,.30)}
.round-button{display:grid;place-items:center;width:42px;height:42px;color:var(--pink-dark);background:#fff}
.empty-state{text-align:center;padding:56px 20px}.empty-state>div{font-size:2.5rem}.empty-state h3{margin:9px 0 2px;color:var(--pink-dark)}.empty-state p{margin:0;color:var(--dim)}

.page-footer{padding:26px 0 4px;text-align:center;color:#987187;font-size:.84rem}.page-footer .footer-heart{margin-bottom:6px;color:var(--pink);font-size:1.15rem}.page-footer a{color:var(--pink-dark);font-weight:700;text-decoration:none}.page-footer a:hover{text-decoration:underline}

/* Admin */
.admin-shell{padding-bottom:44px}.admin-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:2px 0 16px;padding:8px;border-radius:21px}.admin-tab{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:15px;text-decoration:none}.admin-tab>span{display:grid;place-items:center;width:41px;height:41px;border-radius:13px;background:#fff4fa;font-size:1.2rem}.admin-tab b,.admin-tab small{display:block}.admin-tab b{color:var(--text)}.admin-tab small{color:var(--dim)}.admin-tab.active{background:linear-gradient(135deg,#fff,#ffe7f4 60%,#f1e8ff);box-shadow:0 8px 24px rgba(198,67,140,.11)}.admin-tab.active b{color:var(--pink-dark)}
.alert{margin:12px 0;padding:12px 15px;border-radius:14px;font-weight:700}.alert.success{color:#277b52;border:1px solid rgba(101,217,155,.55);background:rgba(224,255,238,.78)}.alert.error{color:#a63255;border:1px solid rgba(255,111,145,.48);background:rgba(255,232,239,.84)}
.admin-tools{margin-bottom:16px;padding:24px;border-radius:25px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-title h1{margin:1px 0 0;font-size:1.7rem;color:var(--text)}.upload-limit{padding:7px 11px;border:1px solid var(--border);border-radius:999px;color:var(--dim);font-size:.78rem;background:#fff8fc}
.tool-grid{display:grid;grid-template-columns:1.45fr 1fr 1fr;gap:14px}.tool-card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:18px;border:1px solid rgba(244,185,216,.85);border-radius:20px;background:linear-gradient(155deg,rgba(255,255,255,.96),rgba(255,240,248,.91))}.tool-card h3{margin:0;color:var(--pink-dark)}.tool-card p{margin:0;color:var(--dim);font-size:.86rem}.tool-card-icon{font-size:1.55rem}.tool-card input[type=text],.tool-card input[type=password],.stack-form input,.dialog-card input[type=text]{width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--border);border-radius:12px;outline:none;color:var(--text);background:#fff}.tool-card input:focus,.stack-form input:focus,.dialog-card input:focus{border-color:var(--pink);box-shadow:0 0 0 4px rgba(255,114,182,.10)}
.primary-button,.secondary-button{min-height:44px;padding:10px 15px}.primary-button{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--pink-dark),var(--pink) 50%,var(--purple));box-shadow:0 9px 25px rgba(211,86,156,.22)}.secondary-button{color:var(--pink-dark);background:#fff}.primary-button:hover,.secondary-button:hover{transform:translateY(-2px);filter:brightness(1.03)}
.drop-zone{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:130px;padding:18px;border:2px dashed #efacd0;border-radius:17px;text-align:center;background:rgba(255,250,253,.8);transition:.15s ease}.drop-zone:hover,.drop-zone.dragging{border-color:var(--pink);background:#fff2f9;transform:translateY(-1px)}.drop-zone input{display:none}.drop-zone strong{color:var(--pink-dark)}.drop-zone small{color:var(--dim)}.drop-icon{font-size:1.65rem}.selected-files{min-height:20px;color:var(--dim);font-size:.78rem;word-break:break-word}
.admin-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.admin-actions form{margin:0}.mini-button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 10px;color:var(--pink-dark);background:#fff}.mini-button.danger{color:#ad3457;border-color:#f5b2c4;background:#fff4f7}

.auth-shell{width:min(520px,calc(100% - 28px));margin:0 auto;padding:70px 0}.auth-card{position:relative;overflow:hidden;padding:34px;border-radius:28px;text-align:center;box-shadow:var(--shadow);background:linear-gradient(155deg,rgba(255,255,255,.97),rgba(255,239,248,.94))}.auth-card::before{content:"";position:absolute;width:170px;height:170px;right:-65px;top:-70px;border-radius:50%;background:rgba(173,123,255,.10)}.auth-card h1{position:relative;margin:3px 0 8px;font-size:2rem;color:var(--pink-dark)}.auth-card p{position:relative;margin:0 0 18px;color:var(--dim)}.auth-orbit{position:relative;display:grid;place-items:center;width:76px;height:76px;margin:0 auto 16px;border-radius:50%;font-size:2rem;background:linear-gradient(135deg,#fff,#ffd2e9 50%,#d7c4ff);box-shadow:0 13px 34px rgba(228,70,149,.18);animation:float 5s ease-in-out infinite}.stack-form{position:relative;display:grid;gap:12px;text-align:left}.stack-form label{display:grid;gap:5px;color:var(--text);font-size:.84rem;font-weight:700}.stack-form .primary-button{width:100%;margin-top:3px}.text-link{position:relative;display:inline-block;margin-top:17px;color:var(--pink-dark);font-weight:700;text-decoration:none}.text-link:hover{text-decoration:underline}

.rename-dialog{width:min(440px,calc(100% - 28px));padding:0;border:0;border-radius:24px;background:transparent}.rename-dialog::backdrop{background:rgba(86,51,74,.30);backdrop-filter:blur(5px)}.dialog-card{position:relative;padding:28px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(155deg,#fff,#fff0f8);box-shadow:0 28px 80px rgba(114,54,88,.30)}.dialog-card h2{margin:2px 0 14px;color:var(--pink-dark)}.dialog-close{position:absolute;right:13px;top:10px;width:34px;height:34px;border:0;border-radius:50%;color:var(--dim);font-size:1.35rem;background:transparent}.dialog-close:hover{background:#fff}

@media(max-width:850px){.tool-grid{grid-template-columns:1fr 1fr}.upload-card{grid-column:1/-1}.official-hero{grid-template-columns:1fr}.hero-bubble{display:none}}
@media(max-width:680px){.page-shell{width:min(100% - 22px,1100px)}.site-topbar{align-items:flex-start;padding-top:24px}.brand-mark{width:54px;height:54px;flex-basis:54px}.brand-mark img,.brand-mark .fallback{width:44px;height:44px}.site-actions{gap:6px}.soft-button{padding:8px 11px;font-size:.82rem}.official-hero{padding:24px 20px}.library-switch,.admin-tabs,.tool-grid{grid-template-columns:1fr}.upload-card{grid-column:auto}.file-panel-head{padding:20px}.file-list{padding:0 8px 8px}.file-row{grid-template-columns:auto minmax(0,1fr);gap:12px}.file-action,.admin-actions{grid-column:2;justify-content:flex-start}.admin-row{padding-bottom:16px}.section-title{align-items:flex-start;flex-direction:column}.upload-limit{align-self:flex-start}.auth-shell{padding-top:40px}}
@media(max-width:430px){.brand-copy small{display:none}.site-actions .soft-button:first-child{display:none}.official-hero h1{font-size:2.15rem}.file-meta{font-size:.74rem}.auth-card{padding:27px 20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* Old builds shortcut */
.old-builds-button{
  border-color:rgba(173,123,255,.42);
  background:linear-gradient(135deg,rgba(255,255,255,.90),rgba(238,229,255,.92));
}
.old-builds-button:hover,
.old-builds-button.active-old{
  color:#8054d8;
  border-color:rgba(173,123,255,.75);
  background:linear-gradient(135deg,#fff,#eee5ff);
  box-shadow:0 10px 26px rgba(128,84,216,.14);
}


/* Maintenance controls + public maintenance page */
.webviewer-button{border-color:rgba(101,217,155,.52);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(231,255,243,.90))}.webviewer-button:hover{color:#277b52;border-color:rgba(101,217,155,.86);box-shadow:0 10px 25px rgba(101,217,155,.15)}
.maintenance-panel{margin-bottom:16px;padding:24px;border-radius:25px}.maintenance-title{align-items:center}.maintenance-summary{padding:7px 11px;border:1px solid rgba(101,217,155,.55);border-radius:999px;color:#277b52;font-size:.78rem;font-weight:800;background:rgba(224,255,238,.78)}.maintenance-summary.is-on{color:#a63255;border-color:rgba(255,111,145,.48);background:rgba(255,232,239,.84)}
.maintenance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.maintenance-control{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;align-items:center;padding:17px;border:1px solid rgba(244,185,216,.85);border-radius:20px;background:linear-gradient(155deg,rgba(255,255,255,.96),rgba(255,240,248,.91))}.maintenance-control.maintenance-active{border-color:rgba(255,111,145,.60);background:linear-gradient(155deg,#fff,rgba(255,232,239,.90))}.maintenance-icon{display:grid;place-items:center;min-width:48px;height:48px;padding:0 6px;border-radius:15px;font-size:1.28rem;background:linear-gradient(135deg,#ffd7ea,#e2d4ff)}.maintenance-copy h3{margin:0;color:var(--text);font-size:1rem}.maintenance-copy p{margin:2px 0 0;color:var(--dim);font-size:.79rem}.status-pill{grid-column:1/2;justify-self:start;padding:5px 8px;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.5px}.status-pill.on{color:#277b52;background:rgba(224,255,238,.88)}.status-pill.off{color:#a63255;background:rgba(255,224,234,.92)}.status-pill.mixed{color:#8054d8;background:#eee5ff}.maintenance-control button{grid-column:2;min-height:38px;padding:8px 11px;border:1px solid var(--border);border-radius:11px;font-weight:800;cursor:pointer}.maintenance-enable{color:#a63255;background:#fff4f7}.maintenance-disable{color:#277b52;border-color:rgba(101,217,155,.55)!important;background:rgba(239,255,246,.95)}.maintenance-note{margin:14px 2px 0;color:var(--dim);font-size:.8rem}
.maintenance-shell{display:grid;place-items:center;min-height:100vh;width:min(100% - 28px,760px);margin:0 auto;padding:44px 0}.maintenance-card{position:relative;overflow:hidden;width:100%;padding:34px;border:1px solid var(--border);border-radius:30px;text-align:center;background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(255,239,248,.95));box-shadow:var(--shadow)}.maintenance-card .brand{justify-content:center;margin-bottom:23px}.maintenance-orbit{display:grid;place-items:center;width:86px;height:86px;margin:0 auto 14px;border-radius:50%;font-size:2.3rem;background:linear-gradient(135deg,#fff,#ffd2e9 50%,#d7c4ff);box-shadow:0 16px 38px rgba(228,70,149,.18);animation:float 5s ease-in-out infinite}.maintenance-card h1{max-width:650px;margin:5px auto 10px;font-size:clamp(2rem,6vw,3.3rem);line-height:1.05;color:var(--pink-dark)}.maintenance-card>p{max-width:590px;margin:0 auto;color:var(--dim);font-size:1rem}.maintenance-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:23px 0}.maintenance-card>small{color:#987187}
@media(max-width:850px){.maintenance-grid{grid-template-columns:1fr}.maintenance-control{grid-template-columns:auto minmax(0,1fr) auto}.status-pill{grid-column:3;grid-row:1}.maintenance-control button{grid-column:2/4}}
@media(max-width:520px){.maintenance-control{grid-template-columns:auto minmax(0,1fr)}.status-pill{grid-column:1;grid-row:2}.maintenance-control button{grid-column:2}.maintenance-card{padding:28px 20px}}
