/* Weavewell Solutions employee workspace. AGPL-3.0-or-later. */
:root {
  --brand-primary: #754359;
  --body-bg: #f5f2ef;
  --link-color: #754359;
  --link-hover-color: #562c40;
  --navbar-bg: #21151e;
  --navbar-color: #e8cfc2;
  --navbar-link-color: #e8cfc2;
  --navbar-link-hover-color: #fff0e5;
  --navbar-link-active-color: #ffd6ae;
  --navbar-link-active-bg: #3a2632;
  --navbar-inverse-bg:#21151e;
  --navbar-inverse-color:#e8cfc2;
  --navbar-inverse-link-color:#e8cfc2;
  --navbar-inverse-link-hover-color:#fff0e5;
  --navbar-inverse-link-active-bg:#3a2632;
  --navbar-inverse-link-hover-bg:#33222c;
  --navbar-inverse-link-icon-color:#c8aaa9;
  --navbar-inverse-link-icon-hover-color:#ffd6ae;
  --navbar-inverse-border:#3a2632;
  --border-radius: 7px;
}
body { font-family: Inter,'Segoe UI',Arial,sans-serif; }
.navbar, #navbar .navbar { background-color:#21151e; }
.navbar .navbar-brand img { width:174px; max-width:100%; object-fit:contain; }
.btn-primary { background:#754359; border-color:#754359; }
.btn-primary:hover,.btn-primary:focus { background:#562c40; border-color:#562c40; }
/* Centered glass login, adapted from the owner's supplied reference. */
.ww-entry {
  --ww-cream:#fff0e5; --ww-muted:#c7adb9; --ww-pink:#ff92e4; --ww-gold:#ffd6ae;
  position:relative; isolation:isolate; min-height:calc(100svh - 56px);
  display:grid; grid-template-columns:minmax(0,1fr); place-items:center; padding:58px 24px 72px;
  background:#130c12; color:var(--ww-cream); overflow:hidden;
}
.ww-atmosphere { position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none;
  background:radial-gradient(ellipse at 50% 35%,#49243d66,transparent 65%),linear-gradient(180deg,#160e19,#0e0b13); }
.ww-glow { position:absolute; border-radius:50%; filter:blur(75px); will-change:transform; }
.ww-glow-rose { width:75vw; height:58vh; left:10%; top:-22%; background:radial-gradient(ellipse,#c3699c65,transparent 70%); animation:ww-rose-drift 26s ease-in-out infinite alternate; }
.ww-glow-plum { width:68vw; height:72vh; left:12%; bottom:-30%; background:radial-gradient(ellipse,#a14e8552,transparent 70%); animation:ww-plum-drift 32s ease-in-out infinite alternate; }
.ww-glow-gold { width:48vw; height:60vh; right:-18%; top:28%; background:radial-gradient(ellipse,#d5a17036,transparent 72%); animation:ww-gold-drift 30s ease-in-out infinite alternate; }
.ww-grain { position:absolute; inset:0; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E"); }
.ww-tech-grid { position:absolute; inset:0; opacity:.45;
  background-image:linear-gradient(#ce8dbb16 1px,transparent 1px),linear-gradient(90deg,#ce8dbb16 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(ellipse at center,transparent 12%,#000 85%); }
.ww-circuits { position:absolute; inset:0; width:100%; height:100%; }
.ww-circuit-lines { stroke:#cc84b4; stroke-width:1; opacity:.22; }
.ww-data-traces { stroke:#ffabd9; stroke-width:1.6; stroke-linecap:round; filter:drop-shadow(0 0 5px #ff92e4); }
.ww-data-traces path { stroke-dasharray:4 96; animation:ww-data-flow 14s linear infinite; }
.ww-data-traces path:nth-child(2) { animation-delay:-6s; animation-duration:18s; stroke:#ffd6ae; }
.ww-data-traces path:nth-child(3) { animation-delay:-9s; animation-duration:16s; }
.ww-data-traces path:nth-child(4) { animation-delay:-3s; animation-duration:19s; stroke:#ffd6ae; }
.ww-data-traces path:nth-child(5) { animation-delay:-12s; animation-duration:17s; }
.ww-circuit-nodes { stroke:#e6a8cf; stroke-width:1; fill:#241322; }
.ww-circuit-nodes circle { animation:ww-node-pulse 7s ease-in-out infinite alternate; }
.ww-circuit-nodes circle:nth-child(even) { animation-delay:-4s; stroke:#ffd6ae; }
.ww-grid-floor { position:absolute; left:-50%; width:200%; height:65%; bottom:-35%;
  background-image:linear-gradient(#ff92e42a 1px,transparent 1px),linear-gradient(90deg,#ff92e42a 1px,transparent 1px);
  background-size:80px 80px; transform:perspective(550px) rotateX(58deg); transform-origin:center top;
  mask-image:linear-gradient(transparent,#000 35%,transparent); animation:ww-grid-travel 24s linear infinite; }
.ww-form-side { width:420px; max-width:100%; min-width:0; position:relative; perspective:1100px; }
.ww-card-frame { position:relative; padding:1px; border-radius:24px;
  transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .28s ease-out;
  background:linear-gradient(140deg,#ffd6ae4a,#ff92e41c 38%,#ffd6ae1c 75%,#ff92e447);
  box-shadow:0 24px 100px #0005,0 0 60px #b9588e0a; }
.ww-card-frame::before { content:''; pointer-events:none; position:absolute; top:0; left:15%; width:70%; height:1px;
  background:linear-gradient(90deg,transparent,#ffd6ae8c,#ff92e481,transparent); box-shadow:0 0 18px #ff92e44d; }
.ww-card-frame::after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none; border-radius:inherit;
  background:radial-gradient(circle at var(--glare-x,50%) var(--glare-y,50%),#ffd6ae0c,transparent 55%);
  opacity:var(--glare-opacity,0); transition:opacity .35s; }
.ww-form-side #login { position:relative; margin:0; width:100%; max-width:none; border:0;
  border-radius:23px; padding:34px 32px 28px; background:linear-gradient(145deg,#291922db,#1b121be8);
  box-shadow:inset 0 1px 0 #ffffff05; backdrop-filter:blur(22px); color:var(--ww-cream); }
.ww-form-side #login .panel-heading { border:0; background:transparent; padding:0; text-align:center; color:inherit; }
.ww-form-side #login .panel-body { padding:0; }
.ww-emblem { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 18px; border:1px solid #ffd6ae30;
  border-radius:50%; color:var(--ww-gold); background:linear-gradient(140deg,#ffd6ae12,#ff92e408); box-shadow:inset 0 0 18px #ffd6ae08; }
.ww-emblem svg { width:33px; height:33px; margin-top:-4px; }
.ww-wordmark { font-size:20px; letter-spacing:4.5px; font-weight:400; line-height:1.35; padding-left:4.5px; }
.ww-wordmark span { display:block; font-size:9px; letter-spacing:6px; color:var(--ww-gold); margin:7px 0 0; }
.ww-form-side h1 { font-size:27px; line-height:1.25; letter-spacing:-.7px; font-weight:500; margin:29px 0 9px; color:var(--ww-cream); }
.ww-form-side .ww-intro { font-size:13px; line-height:1.6; margin:0 0 28px; color:var(--ww-muted); }
.ww-form-side label { font-size:12px; font-weight:400; color:#e2c9d4; margin:0 0 8px; }
.ww-form-side .form-group { margin-bottom:18px; }
.ww-input-wrap { position:relative; }
.ww-input-icon { position:absolute; z-index:1; left:14px; top:15px; width:17px; height:17px; color:#a88c9d; stroke:currentColor; stroke-width:1.5; pointer-events:none; transition:color .2s; }
.ww-form-side .form-control { height:48px; padding:0 45px 0 42px; border-radius:9px; border:1px solid #e9bad01c;
  background:#ffffff04; box-shadow:none; color:var(--ww-cream); font-size:14px; transition:border-color .2s,background .2s,box-shadow .2s; }
.ww-form-side .form-control::placeholder { color:#a98d9e; opacity:1; }
.ww-form-side .form-control:hover { background:#ffffff07; border-color:#e9bad037; }
.ww-form-side .form-control:focus { border-color:#e89fc4a3; box-shadow:0 0 0 3px #ff92e412; background:#ffffff08; }
.ww-input-wrap:focus-within .ww-input-icon { color:var(--ww-gold); }
.ww-form-side .form-control:-webkit-autofill { -webkit-text-fill-color:#fff0e5; box-shadow:0 0 0 60px #32232d inset; caret-color:#fff0e5; }
.ww-password-toggle { position:absolute; right:2px; top:2px; display:grid; place-items:center; width:44px; height:44px;
  padding:0; border:0; background:transparent; color:#c7aaba; border-radius:7px; cursor:pointer; }
.ww-password-toggle:hover { color:var(--ww-gold); background:#ffffff05; }
.ww-entry button:focus-visible,.ww-entry a:focus-visible { outline:2px solid var(--ww-pink); outline-offset:3px; }
.ww-form-side #btn-login { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; height:48px;
  margin:24px 0 0; border:1px solid #ffe0c3; border-radius:9px; background:linear-gradient(110deg,#ffd6ae,#f4c8ad); color:#291822;
  font-size:14px; font-weight:600; box-shadow:0 3px 16px #ffd6ae0b; transition:box-shadow .2s,background .2s; }
.ww-form-side #btn-login svg { width:17px; height:17px; stroke:currentColor; stroke-width:1.7; transition:transform .2s; }
.ww-form-side #btn-login:hover { background:#ffe0c1; box-shadow:0 4px 26px #ffd6ae20; }
.ww-form-side #btn-login:hover svg { transform:translateX(3px); }
.ww-form-side #btn-login:disabled { opacity:.6; cursor:wait; }
.ww-form-side .has-error .form-control { border-color:#f6a0b2; }
.ww-form-side .ww-forgot { display:block; text-align:right; font-size:12px; color:var(--ww-gold); cursor:pointer; margin:0 0 4px; }
.ww-access-note { border-top:1px solid #e9bad014; padding-top:22px; margin:26px 0 0; text-align:center; color:#b39aa8; font-size:11px; line-height:1.8; }
.ww-access-note span { color:#ddc3ce; }
.ww-workspace-note { display:flex; align-items:center; justify-content:center; gap:9px; margin:24px 0 0; color:#b79da9; font-size:11px; letter-spacing:.2px; }
.ww-workspace-note > span { width:4px; height:4px; border-radius:50%; background:#ddb795; box-shadow:0 0 8px #ffd6ae66; }
.ww-motion-toggle { position:absolute; left:28px; bottom:15px; display:flex; align-items:center; gap:9px; min-height:44px;
  border:0; border-radius:6px; background:transparent; color:#b39aa8; font-size:11px; padding:8px 10px; cursor:pointer; }
.ww-motion-toggle:hover { color:var(--ww-gold); background:#ffffff04; }
.ww-motion-icon { font-size:13px; }
.ww-motion-paused .ww-atmosphere * { animation-play-state:paused!important; }
body:has(.ww-entry) { background:#130c12; padding-top:0; }
body:has(.ww-entry) > footer { position:relative; bottom:auto; margin:0; padding:16px 20px; min-height:56px;
  background:#130c12; color:#a88d9d; font-size:10px; border-top:1px solid #ffffff04; }
body:has(.ww-entry) > footer a { color:#c6adba; }
body:has(.ww-entry) > footer .ww-source-link { display:inline-block; margin:0 12px 0 0; }
@keyframes ww-rose-drift { from { transform:translate(-4%,0) scale(1); } to { transform:translate(9%,18%) scale(1.12); } }
@keyframes ww-plum-drift { from { transform:translate(0,0) scale(1); } to { transform:translate(-12%,-13%) scale(1.1); } }
@keyframes ww-gold-drift { from { transform:translate(0,6%); } to { transform:translate(-20%,-9%); } }
@keyframes ww-data-flow { from { stroke-dashoffset:100; } to { stroke-dashoffset:0; } }
@keyframes ww-node-pulse { from { opacity:.35; } to { opacity:.85; } }
@keyframes ww-grid-travel { from { background-position:0 0; } to { background-position:0 80px; } }
@media(max-width:600px) {
  .ww-entry { padding:34px 20px 68px; }
  .ww-form-side #login { padding:28px 25px 24px; }
  .ww-form-side .form-control { font-size:16px; }
  .ww-wordmark { font-size:19px; letter-spacing:3.5px; }
  .ww-glow { filter:blur(48px); }
  .ww-glow-rose { width:150vw; left:-30%; }
  .ww-glow-plum { width:150vw; left:-25%; }
  .ww-glow-gold { width:100vw; right:-60%; }
  .ww-motion-toggle { left:50%; transform:translateX(-50%); bottom:10px; white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce) {
  .ww-atmosphere * { animation:none!important; will-change:auto; }
  .ww-card-frame { transform:none!important; }
  .ww-entry *, .ww-entry *::before { transition:none!important; }
  .ww-motion-toggle { display:none; }
}
