.solver-global-header{position:sticky;top:0;z-index:1000;background:rgba(245,242,233,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(20,32,25,.08);box-shadow:0 4px 18px rgba(20,32,25,.04)}.solver-nav-inner{height:78px;display:flex;align-items:center;gap:24px}.solver-global-header .brand{text-decoration:none;color:var(--forest,#173f2c);display:flex;align-items:baseline;gap:10px}.solver-global-header .brand-main{font-size:1.35rem;font-weight:900;letter-spacing:-.04em}.solver-global-header .brand-sub{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--moss,#64765f)}.solver-nav{margin-left:auto;display:flex;align-items:center;gap:6px}.solver-nav a,.solver-nav button,.solver-menu-toggle{font:inherit;color:var(--forest,#173f2c);font-weight:700;text-decoration:none;background:transparent;border:1px solid transparent;border-radius:10px;padding:9px 11px;cursor:pointer}.solver-nav a:hover,.solver-nav button:hover,.solver-menu-toggle:hover{background:rgba(20,32,25,.05);border-color:rgba(20,32,25,.09)}.solver-menu-toggle{display:none;margin-left:auto}.solver-auth-modal[hidden]{display:none}.solver-auth-modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px}.solver-auth-backdrop{position:absolute;inset:0;background:rgba(20,32,25,.58);backdrop-filter:blur(3px)}.solver-auth-dialog{position:relative;z-index:1;width:min(440px,100%);background:var(--paper,#fffdf8);color:var(--ink,#142019);border:1px solid var(--line,#d9ddd5);border-radius:22px;padding:28px;box-shadow:0 22px 70px rgba(20,32,25,.28)}.solver-auth-dialog form,.solver-auth-fields{display:grid;gap:14px}.solver-auth-dialog form[hidden],.solver-auth-fields[hidden]{display:none!important}
.solver-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:4px 0 18px;padding:4px;background:rgba(20,32,25,.055);border:1px solid var(--line,#d9ddd5);border-radius:12px}
.solver-auth-tabs button{appearance:none;border:0;border-radius:8px;background:transparent;color:var(--forest,#173f2c);padding:9px 12px;font:inherit;font-weight:800;cursor:pointer}
.solver-auth-tabs button.active{background:var(--forest,#173f2c);color:#fff;box-shadow:0 2px 7px rgba(20,32,25,.14)}
.solver-auth-dialog [data-forgot]{appearance:none;border:0;background:transparent;color:var(--forest,#173f2c);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px}
.solver-auth-dialog h2{margin-bottom:12px}.solver-auth-dialog label{display:grid;gap:6px;font-weight:700}.solver-auth-dialog input{width:100%;box-sizing:border-box;padding:11px;border:1px solid var(--line,#d9ddd5);border-radius:10px;background:#fff}.solver-auth-close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:28px;cursor:pointer;color:var(--forest,#173f2c)}@media(max-width:900px){.solver-menu-toggle{display:block;background:transparent!important;border-color:transparent!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important;touch-action:manipulation}.solver-menu-toggle:hover,.solver-menu-toggle:focus,.solver-menu-toggle:active{background:transparent!important;border-color:transparent!important;box-shadow:none!important}.solver-menu-toggle:focus-visible{outline:2px solid var(--forest,#173f2c)!important;outline-offset:3px!important}.solver-nav{display:none;position:absolute;top:78px;left:0;right:0;background:rgba(245,242,233,.98);backdrop-filter:blur(14px);padding:12px 18px 18px;flex-direction:column;align-items:stretch;border-bottom:1px solid rgba(20,32,25,.08);box-shadow:0 12px 25px rgba(20,32,25,.08)}.solver-nav.open{display:flex}.solver-nav a,.solver-nav button{text-align:left;color:var(--forest,#173f2c)}}
/* CDS 4x4 Tools grouped navigation */
.solver-nav{gap:4px}
.solver-nav-primary{white-space:nowrap}
.solver-nav-group{position:relative}
.solver-nav-group>summary{
 list-style:none;
 font:inherit;
 color:var(--forest,#173f2c);
 font-weight:700;
 border:1px solid transparent;
 border-radius:10px;
 padding:9px 26px 9px 11px;
 cursor:pointer;
 position:relative;
 white-space:nowrap;
 user-select:none;
}
.solver-nav-group>summary::-webkit-details-marker{display:none}
.solver-nav-group>summary::after{
 content:"";
 position:absolute;
 right:10px;
 top:50%;
 width:6px;
 height:6px;
 border-right:1.8px solid currentColor;
 border-bottom:1.8px solid currentColor;
 transform:translateY(-70%) rotate(45deg);
 transition:transform .15s ease;
}
.solver-nav-group[open]>summary::after{transform:translateY(-25%) rotate(225deg)}
.solver-nav-group>summary:hover,.solver-nav-group[open]>summary{background:rgba(20,32,25,.05);border-color:rgba(20,32,25,.09)}
.solver-nav-dropdown{
 position:absolute;
 top:calc(100% + 10px);
 left:0;
 z-index:1100;
 width:290px;
 padding:7px;
 border:1px solid rgba(20,32,25,.1);
 border-radius:14px;
 background:#fffdf8;
 box-shadow:0 14px 36px rgba(20,32,25,.16);
}
.solver-nav-dropdown-right{left:auto;right:0}
.solver-nav .solver-nav-dropdown a{
 display:grid;
 gap:2px;
 padding:10px 11px;
 border:0;
 border-radius:9px;
 line-height:1.15;
}
.solver-nav .solver-nav-dropdown a:hover{border:0;background:rgba(20,32,25,.055)}
.solver-nav-dropdown a strong{font-size:.88rem}
.solver-nav-dropdown a span{font-size:.72rem;line-height:1.25;color:var(--moss,#64765f);font-weight:600}
.solver-nav-dropdown .solver-admin-nav{display:block}
.solver-nav-dropdown .solver-admin-nav[hidden]{display:none!important}
.solver-sign-out{margin-left:2px}
@media(max-width:900px){
 .solver-nav-group{width:100%}
 .solver-nav-group>summary{padding:10px 30px 10px 11px}
 .solver-nav-dropdown,.solver-nav-dropdown-right{
  position:static;
  width:auto;
  margin:3px 0 5px 10px;
  padding:3px 0 3px 10px;
  border:0;
  border-left:2px solid rgba(20,32,25,.1);
  border-radius:0;
  background:transparent;
  box-shadow:none;
 }
 .solver-nav .solver-nav-dropdown a{padding:9px 10px}
 .solver-nav-dropdown a span{display:none}
 .solver-sign-out{margin-left:0}
}

/* Main CDS 4x4 site logo, reused unchanged for Tools */
.solver-global-header .tools-brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.solver-global-header .tools-brand-logo{display:block;width:156px;height:36px;object-fit:contain;border-radius:6px}
.solver-global-header .tools-brand-label{
 display:inline-flex;
 align-items:center;
 height:27px;
 padding:0 9px;
 border-left:1px solid rgba(20,32,25,.16);
 color:var(--forest,#173f2c);
 font-size:.82rem;
 line-height:1;
 font-weight:900;
 letter-spacing:.08em;
 text-transform:uppercase;
}
@media(max-width:900px){
 .solver-global-header .tools-brand-logo{width:142px;height:33px}
 .solver-global-header .tools-brand-label{height:25px;font-size:.76rem;padding-left:8px}
}
@media(max-width:420px){
 .solver-global-header .tools-brand-logo{width:125px;height:30px}
 .solver-global-header .tools-brand-label{font-size:.7rem;padding:0 0 0 7px}
}

/* Auth visibility must override navigation layout display rules */
.solver-nav [data-access="signed-in"][hidden]{display:none!important}
.solver-nav [data-super-admin-tool-access][hidden]{display:none!important}

/* Tool visibility must override dropdown layout display */
.solver-nav .solver-nav-dropdown a[hidden]{display:none!important}
.solver-nav .solver-nav-group[hidden]{display:none!important}

.solver-admin-nav{display:flex;align-items:center;gap:10px}.solver-admin-nav[hidden]{display:none!important}@media(max-width:900px){.solver-admin-nav{display:contents}.solver-admin-nav a{width:100%}}

/* Admin links remain nested rows inside Account dropdown */
.solver-nav-dropdown .solver-admin-nav{display:block!important;width:100%}.solver-nav-dropdown .solver-admin-nav[hidden]{display:none!important}.solver-nav-dropdown .solver-admin-nav>a{display:grid!important;gap:2px;width:100%}@media(max-width:900px){.solver-nav-dropdown .solver-admin-nav{display:contents!important}}

@media(max-width:900px){.solver-menu-toggle,.solver-nav>button,.solver-auth-tabs button,.solver-auth-fields>.primary-button,.solver-auth-fields>button:not(.solver-auth-close){box-sizing:border-box;height:38px;min-height:38px;max-height:38px;padding-top:0;padding-bottom:0;display:inline-flex;align-items:center;justify-content:center}.solver-nav>button{justify-content:flex-start}}

/* Auth state must always win over nav button layout */
.solver-nav [data-sign-in][hidden],.solver-nav [data-create-account][hidden],.solver-nav [data-sign-out][hidden]{display:none!important}

/* Quiet route from Tools back to the main CDS 4x4 website */
.solver-nav .solver-nav-main-site{white-space:nowrap;font-weight:700}.solver-nav .solver-nav-main-site span{font-size:.78em;margin-left:2px}@media(max-width:900px){.solver-nav .solver-nav-main-site{width:100%;padding:10px 11px;border-bottom:1px solid rgba(20,32,25,.1)}}

/* Site-wide CDS 4x4 Tools footer */
.solver-global-footer{margin-top:64px;border-top:1px solid var(--line,#d7ddd5);background:#0f2f22;color:#f6f3e9}.solver-footer-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;padding-top:28px!important;padding-bottom:28px!important}.solver-footer-brand{display:grid;gap:6px}.solver-footer-brand strong{font-size:1.05rem;color:#fff}.solver-footer-brand p{margin:0;max-width:620px;color:#d8e2da;font-size:.9rem;line-height:1.5}.solver-footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px}.solver-footer-links a{color:#fff;text-decoration:none;font-weight:800;font-size:.86rem}.solver-footer-links a:hover{text-decoration:underline}.solver-footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);color:#cbd8ce;font-size:.78rem}.solver-footer-bottom a{color:inherit}.solver-global-footer[data-tools-footer]{clear:both}@media(max-width:760px){.solver-global-footer{margin-top:42px}.solver-footer-inner{grid-template-columns:1fr;align-items:start;padding-top:24px!important;padding-bottom:24px!important}.solver-footer-links{justify-content:flex-start}.solver-footer-bottom{flex-direction:column;gap:6px}}

/* Stable Tools page shell: footer participates in layout from first render. */
html,body{min-height:100%}body{min-height:100vh;display:flex;flex-direction:column}body>[data-solver-header]{flex:0 0 auto}body>main{flex:1 0 auto;width:100%}body>.solver-global-footer{flex:0 0 auto;width:100%}

.solver-footer-inner{grid-template-columns:minmax(0,1fr) auto auto}.solver-footer-privacy h3{font-size:.95rem;margin:0 0 10px;color:#fff}.solver-footer-privacy a{color:#fff;text-decoration:none;font-size:.86rem;font-weight:700}.solver-footer-privacy a:hover{text-decoration:underline}@media(max-width:900px){.solver-footer-inner{grid-template-columns:1fr}}

.solver-auth-dialog .solver-terms-accept{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5}.solver-auth-dialog .solver-terms-accept input{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;padding:0;accent-color:#173b2a}.solver-terms-accept a,.solver-terms-accept a:visited{color:#173b2a;text-decoration:underline;text-underline-offset:3px}

.solver-terms-modal{z-index:10000}.solver-terms-dialog{width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column}.solver-terms-scroll{max-height:55dvh;overflow-y:auto;overscroll-behavior:contain;border:1px solid #d9ddd5;border-radius:10px;padding:18px;font-size:15px;line-height:1.6}.solver-terms-scroll h1{font-size:22px;line-height:1.3}.solver-terms-scroll h2{font-size:18px;line-height:1.4;margin:22px 0 8px}.solver-terms-scroll a,.solver-terms-scroll a:visited{color:#173b2a;text-decoration:underline}.solver-terms-dialog>h2{font-size:20px;padding-right:24px}.solver-terms-dialog [data-terms-status]{font-size:14px}.solver-terms-dialog button:disabled{opacity:.5;cursor:not-allowed}

/* Keep terms geometry fixed while content loads and prevent viewport overflow. */
.solver-terms-modal{box-sizing:border-box;padding:16px}.solver-terms-dialog{box-sizing:border-box;width:min(760px,100%);height:min(720px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);overflow:hidden}.solver-terms-scroll{box-sizing:border-box;flex:1 1 0;min-height:0;max-height:none;scrollbar-gutter:stable}.solver-terms-dialog>h2,.solver-terms-dialog>[data-terms-status],.solver-terms-dialog>[data-accept-terms]{flex:0 0 auto}.solver-terms-dialog>[data-terms-status]{min-height:42px;margin:12px 0}.solver-terms-dialog>[data-accept-terms]{min-height:40px}.solver-auth-dialog{box-sizing:border-box}@media(max-width:600px){.solver-terms-dialog{padding:20px}.solver-terms-scroll{padding:14px}}

/* Terms uses the existing sign-up backdrop without adding another tint or blur. */
.solver-terms-modal>.solver-auth-backdrop{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}

.solver-terms-dialog>[data-decline-terms]{flex:0 0 auto;margin-top:10px;border:0;background:transparent;color:#173b2a;text-decoration:underline;font:inherit;font-size:14px;cursor:pointer}.solver-terms-dialog>[data-decline-terms][hidden]{display:none!important}.solver-idle-notice{margin-top:16px;margin-bottom:0;font-size:15px;color:#173b2a}

/* Updated terms starts with a concise notice before the reading step. */
.solver-terms-dialog>[hidden]{display:none!important}.solver-terms-dialog.solver-terms-intro{height:auto;width:min(520px,100%)}.solver-terms-dialog [data-terms-update-notice]{font-size:15px;line-height:1.6}.solver-terms-dialog [data-proceed-terms]{width:100%;margin-top:14px;min-height:40px}
