/* Shared layout and components for the Knightsman platform tools: Economic Calendar, Scenario Lab, Academy and Company Research. */
:root{--bg:#080a0c;--panel:#101417;--panel-2:#14191b;--gold:#e6c68b;--muted:#b0b4bc;--faint:#8d939b;--edge:#8e744b55;--line:#2a3035;--ink:#f7f5ef;--ink-2:#d1d2d2;--series-1:#c98500;--series-2:#3987e5;--series-3:#199e70;--up:#5be6a0;--down:#ff8f8f}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}
.shell{width:min(1240px,calc(100% - 48px));margin:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:#15120e;padding:10px 14px;border-radius:6px;z-index:200}.skip:focus{left:12px}
/* Header and navigation */
header.site{position:sticky;top:0;z-index:40;background:#08090bed;backdrop-filter:blur(15px);border-bottom:1px solid #d7b77b2b}
.top{display:flex;justify-content:space-between;align-items:center;min-height:78px;gap:20px}
.logo{display:flex;align-items:center;gap:12px;flex:none}.logo .mark{font-size:46px;line-height:.8;color:var(--gold);text-shadow:0 0 25px #d5b36a35}.logo .word{font:21px Georgia,serif;letter-spacing:.15em}.logo .word small{display:block;font:9px Arial;letter-spacing:.55em;margin-top:7px}
.nav{display:flex;gap:22px;align-items:center;font-size:13px}.nav a{padding:6px 0;border-bottom:1px solid transparent}.nav a:hover{color:var(--gold)}.nav a[aria-current="page"]{color:var(--gold);border-bottom-color:var(--gold)}
.nav .outline{border:1px solid var(--gold);border-radius:7px;padding:11px 18px}.nav .outline:hover{background:#c6a36822}
.menu-toggle{display:none;background:transparent;border:1px solid #8e744b;border-radius:7px;padding:10px 9px;flex-direction:column;gap:4px;min-width:44px;min-height:44px;align-items:center;justify-content:center}.menu-toggle span{display:block;width:20px;height:2px;background:var(--gold);transition:.2s}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:980px){.top{flex-wrap:wrap;min-height:70px}.menu-toggle{display:flex}.nav{display:none;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:4px 0 14px}.nav.open{display:flex}.nav a{font-size:15px;padding:13px 2px;border-bottom:1px solid #ffffff12}.nav a[aria-current="page"]{border-bottom-color:#ffffff12}.nav .outline{margin-top:12px;text-align:center;border-bottom:1px solid var(--gold)}}
/* Page hero */
.tool-hero{padding:46px 0 26px;background:radial-gradient(ellipse at 80% 0,#5a463230,transparent 50%);border-bottom:1px solid #8e744b26}
.crumbs{font-size:13px;color:var(--faint);margin-bottom:16px}.crumbs a{color:var(--gold)}.crumbs a:hover{text-decoration:underline}
.eyebrow{color:var(--gold);letter-spacing:.32em;font-size:11px;text-transform:uppercase}
.tool-hero h1{font:normal clamp(36px,4.4vw,60px)/1.05 Georgia,serif;letter-spacing:-.02em;margin:14px 0 14px}.tool-hero h1 span{color:var(--gold)}
.tool-hero .lead{font-size:17px;line-height:1.7;color:#c6c8cc;max-width:760px;margin:0}
.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.back-ask{display:inline-flex;align-items:center;gap:9px;border:1px solid #8e744b;border-radius:8px;padding:12px 16px;font-size:13px;color:#f1e3c4;white-space:nowrap}.back-ask:hover{border-color:var(--gold);color:var(--gold)}.back-ask b{color:var(--gold);font-size:18px;line-height:1}
main.tool{padding:30px 0 70px}
/* Panels and type */
.panel{border:1px solid var(--edge);background:linear-gradient(140deg,#111619f5,#090c0ef8);border-radius:13px;padding:24px;box-shadow:0 20px 50px #0004}
.panel h2,.h2{font:normal 26px Georgia,serif;margin:0 0 6px;color:#f7f5ef}.panel h3,.h3{font:normal 19px Georgia,serif;margin:0 0 10px;color:#f1e3c4}
.sub{color:var(--muted);font-size:13px;line-height:1.6}.small{font-size:12px;color:var(--faint);line-height:1.6}.prose p{line-height:1.8;color:var(--ink-2);font-size:15px;margin:0 0 12px}
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.g2,.g3,.g4{grid-template-columns:1fr}}
ul.clean{list-style:none;padding:0;margin:0;display:grid;gap:9px}ul.clean li{position:relative;padding-left:18px;line-height:1.65;color:var(--ink-2);font-size:14px}ul.clean li:before{content:'◆';position:absolute;left:0;top:1px;color:var(--gold);font-size:9px}
/* Buttons and controls */
.cta{background:linear-gradient(130deg,#f5dfaa,#d8b577);color:#15120e;border:0;border-radius:7px;padding:13px 22px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.cta:hover{filter:brightness(1.08)}.cta[disabled]{opacity:.6;cursor:wait}
.ghost{background:transparent;border:1px solid #8e744b;border-radius:7px;color:#f1e3c4;padding:11px 16px;font-size:13px;min-height:42px;display:inline-flex;align-items:center;gap:7px}.ghost:hover{border-color:var(--gold);color:var(--gold)}
.chip{background:#181d1f;color:#e6e4de;border:1px solid #54462f;border-radius:25px;padding:8px 14px;font-size:12px;min-height:36px}.chip:hover,.chip[aria-pressed="true"]{border-color:var(--gold);color:var(--gold)}.chip[aria-pressed="true"]{background:#c6a3681f}
.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);letter-spacing:.04em}
.field select,.field input,.input{background:#151a1d;color:#fff;border:1px solid #3a4148;border-radius:8px;padding:11px 12px;font-size:14px;min-height:44px}
.field select:focus,.input:focus,textarea:focus{border-color:var(--gold);outline:none}
.seg{display:inline-flex;border:1px solid #54462f;border-radius:9px;overflow:hidden}.seg button{background:transparent;border:0;color:#d2d2d0;padding:9px 14px;font-size:12px;min-height:38px}.seg button+button{border-left:1px solid #54462f}.seg button[aria-pressed="true"]{background:#dfc18a;color:#15120e}
/* Badges and notices */
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:3px 10px;font-size:11px;letter-spacing:.06em;border:1px solid #54462f;color:#d8d6cf;white-space:nowrap}
.imp-high{border-color:#e6c68b;color:#f5dfaa}.imp-high:before{content:'●●●';letter-spacing:1px;font-size:8px;color:var(--gold)}.imp-medium:before{content:'●●○';letter-spacing:1px;font-size:8px;color:var(--gold)}.imp-low{color:var(--faint)}.imp-low:before{content:'●○○';letter-spacing:1px;font-size:8px;color:#8e744b}
.notice{border:1px solid #d7b77b66;border-left:4px solid var(--gold);border-radius:10px;padding:14px 16px;background:#16140f;line-height:1.65;color:#ece6d6;font-size:13px}
.notice.warn{border-color:#ff8f8f66;border-left-color:#ff8f8f;background:#1a1111}
.hypo{display:inline-flex;align-items:center;gap:8px;background:#2a2213;border:1px dashed var(--gold);color:#f5dfaa;border-radius:8px;padding:7px 12px;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.sources{margin-top:26px;border-top:1px solid #4a4236;padding-top:18px}.sources h2{font:normal 20px Georgia,serif;margin:0 0 12px;color:#f1e3c4}
.src-list{display:grid;gap:8px;font-size:13px;color:var(--ink-2)}.src-list a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.st{display:inline-block;min-width:62px;text-align:center;border-radius:12px;padding:2px 8px;font-size:11px;margin-right:8px;border:1px solid}.st.ok{color:var(--up);border-color:#5be6a066}.st.stale{color:#f5dfaa;border-color:#e6c68b66}.st.failed{color:var(--down);border-color:#ff8f8f66}
.skeleton{background:linear-gradient(90deg,#14191b,#1d2327,#14191b);background-size:200% 100%;animation:sk 1.4s infinite;border-radius:10px;min-height:120px}@keyframes sk{to{background-position:-200% 0}}
.loading{color:var(--muted);font-size:14px;padding:30px 0;text-align:center}
.empty{color:var(--muted);text-align:center;padding:40px 10px;font-size:14px}
.up{color:var(--up)}.down{color:var(--down)}
/* Charts */
.chart{position:relative;width:100%}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart .grid-line{stroke:#ffffff14;stroke-width:1}.chart .axis-text{fill:#9ba2a6;font-size:11px}
.chart-tip{position:absolute;pointer-events:none;background:#1b2125;border:1px solid #8e744b;border-radius:8px;padding:8px 11px;font-size:12px;color:#f1efe8;white-space:nowrap;box-shadow:0 10px 25px #0008;transform:translate(-50%,-110%);display:none;z-index:3}.chart-tip b{color:#fff}.chart-tip .t{color:#aab0b9;font-size:11px;display:block;margin-bottom:3px}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:8px 0}.legend span{display:inline-flex;align-items:center;gap:7px}.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.table-toggle{background:none;border:0;color:var(--gold);font-size:12px;text-decoration:underline;padding:6px 0}
table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th,table.data td{text-align:left;padding:9px 10px;border-bottom:1px solid #ffffff12;vertical-align:top}table.data th{color:var(--faint);font-weight:400;font-size:11px;letter-spacing:.08em;text-transform:uppercase}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Footer */
footer.site{border-top:1px solid #554b39;padding:30px 0 calc(45px + env(safe-area-inset-bottom));color:#9da2a8;font-size:12px;line-height:1.8}footer.site a{color:#e5c68d}footer.site .links{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0}footer.site .risk{margin:12px 0 0;line-height:1.7}footer.site .risk strong{color:#e5c68d}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media(max-width:680px){.shell{width:calc(100% - 32px)}.tool-hero{padding:30px 0 20px}.tool-hero .lead{font-size:15px}.panel{padding:18px}.logo .mark{font-size:38px}.logo .word{font-size:17px}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cal-day{margin-bottom:16px;padding:18px 20px}.cal-day .h3{margin-bottom:6px}table.cal td{font-size:13px;line-height:1.5}table.cal td.t{white-space:nowrap;color:#f1e3c4;font-variant-numeric:tabular-nums}table.cal .src a{color:var(--faint);text-decoration:underline}table.cal td:nth-child(n+4){min-width:110px}
@media(max-width:860px){table.cal thead{display:none}table.cal,table.cal tbody,table.cal tr,table.cal td{display:block;width:100%}table.cal tr{border-bottom:1px solid #ffffff1f;padding:12px 0}table.cal td{border:0;padding:4px 0}table.cal td[data-l="Previous"],table.cal td[data-l="Forecast"],table.cal td[data-l="Actual"]{display:inline-block;width:31%;vertical-align:top;margin-right:2%}table.cal td[data-l="Previous"]:before,table.cal td[data-l="Forecast"]:before,table.cal td[data-l="Actual"]:before{content:attr(data-l);display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}}
.dir{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700}.dir .ic{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;border:1px solid}.dir.rise .ic{color:var(--up);border-color:#5be6a066}.dir.fall .ic{color:var(--down);border-color:#ff8f8f66}.dir.mixed .ic{color:#f5dfaa;border-color:#e6c68b66}
.snap{border:1px solid #8e744b44;border-radius:11px;padding:12px 14px;background:#12171a;text-align:left;color:inherit;min-height:44px}.snap[aria-pressed="true"]{border-color:var(--gold);background:#c6a36814}.snap .lab{font-size:11px;color:var(--faint);letter-spacing:.06em}.snap .val{font:normal 20px Georgia,serif;margin:4px 0}.snap .chart{height:42px}
