:root {
    --navy:#10253c;
    --ink:#172d43;
    --muted:#53677a;
    --line:#dbe4ed;
    --bg:#eef3f8;
    --teal:#00796d;
    --mint:#5ee1d1;
    --blue:#285de5;
    --amber:#8a5500;
    --white:#fff
}
* {
    box-sizing:border-box
}
body {
    margin:0;
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    background:var(--bg);
    color:var(--ink);
    font-size:17px;
    line-height:1.55
}
button,input,textarea,select {
    font:inherit
}
button {
    cursor:pointer
}
button:focus-visible,summary:focus-visible,textarea:focus-visible {
    outline:3px solid var(--blue);
    outline-offset:3px
}
button {
    border:0;
    border-radius:9px;
    padding:11px 16px;
    background:var(--navy);
    color:white;
    font-weight:600
}
button.secondary {
    background:white;
    border:1px solid var(--line);
    color:var(--ink)
}
button:hover {
    filter:brightness(.94)
}
button:disabled {
    opacity:.6;
    cursor:wait
}
a {
    color:var(--blue)
}
.shell {
    display:grid;
    grid-template-columns:248px minmax(0,1fr);
    min-height:100vh
}
.sidebar {
    background:var(--navy);
    color:white;
    padding:30px 20px;
    display:flex;
    flex-direction:column;
    position:sticky;
    top:0;
    height:100vh
}
.brand {
    font-size:25px;
    font-weight:750;
    letter-spacing:-1px
}
.brand span {
    color:var(--mint)
}
.eyebrow {
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:13px;
    font-weight:700;
    color:var(--teal);
    margin:0 0 12px
}
.sidebar .eyebrow {
    color:#a9bfd2;
    margin-top:7px
}
.nav {
    display:grid;
    gap:9px;
    margin-top:38px
}
.nav button {
    text-align:left;
    background:transparent;
    color:#bdcddd;
    padding:14px 12px;
    display:flex;
    gap:13px;
    align-items:center;
    font-size:15px
}
.nav button.active {
    background:#233e57;
    color:white;
    box-shadow:inset 3px 0 var(--mint)
}
.nav small {
    font-size:12px;
    color:var(--mint)
}
.sidebottom {
    margin-top:auto;
    padding-top:24px;
    color:#b6c8d9;
    font-size:14px
}
.sidebottom strong {
    color:white;
    display:block
}
.workspace {
    min-width:0;
    padding:26px 42px 100px;
    max-width:1650px;
    width:100%;
    margin:auto
}
.topbar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    border-bottom:1px solid var(--line);
    padding-bottom:20px;
    margin-bottom:29px
}
.topbar .caption {
    color:var(--muted);
    font-size:14px
}
.topactions {
    display:flex;
    align-items:center;
    gap:10px
}
.timer {
    font-variant-numeric:tabular-nums;
    font-size:20px;
    font-weight:700
}
.timerbutton {
    background:transparent;
    color:var(--ink);
    padding:7px 10px;
    font-size:14px
}
.view {
    display:none;
    animation:enter .25s ease
}
.view.active {
    display:block
}
@keyframes enter {
    from {
        opacity:0;
        transform:translateY(6px)
    }
    to {
        opacity:1;
        transform:none
    }
}
h1 {
    font-size:clamp(32px,3.4vw,54px);
    line-height:1.12;
    letter-spacing:-1.6px;
    margin:0 0 20px;
    max-width:960px
}
h2 {
    font-size:24px;
    line-height:1.25;
    letter-spacing:-.5px;
    margin:0 0 14px
}
h3 {
    font-size:18px;
    margin:0 0 10px
}
.intro {
    color:var(--muted);
    font-size:19px;
    max-width:850px;
    margin:0 0 28px
}
.grid {
    display:grid;
    gap:20px
}
.two {
    grid-template-columns:1.12fr 1fr
}
.three {
    grid-template-columns:repeat(3,1fr)
}
.card {
    background:white;
    border:1px solid var(--line);
    border-radius:16px;
    padding:25px;
    min-width:0
}
.dark {
    background:var(--navy);
    color:white;
    border:0
}
.dark p {
    color:#c8d8e5
}
.dark .eyebrow {
    color:var(--mint)
}
.question {
    font-size:clamp(23px,2.2vw,33px);
    line-height:1.4;
    letter-spacing:-.5px;
    margin:18px 0 22px
}
.pill {
    display:inline-block;
    border-radius:30px;
    padding:4px 10px;
    font-size:13px;
    font-weight:650;
    background:#e5f4ef;
    color:#006658
}
.pill.warn {
    background:#fff1d6;
    color:var(--amber)
}
.pill.neutral {
    background:#eaf0f7;
    color:#455d76
}
.metrics {
    display:flex;
    gap:30px;
    margin-top:20px;
    flex-wrap:wrap
}
.metric strong {
    display:block;
    font-size:32px;
    line-height:1.2
}
.metric span {
    font-size:14px;
    color:var(--muted)
}
.dark .metric span {
    color:#c8d8e5
}
.spaced {
    margin-top:22px
}
.callout {
    padding:17px 20px;
    background:#e5f4ef;
    border-left:3px solid var(--teal);
    border-radius:0 10px 10px 0;
    margin-top:22px
}
.callout p {
    margin:0
}
.tablewrap {
    overflow:auto
}
table {
    width:100%;
    border-collapse:collapse;
    font-size:15px
}
th {
    text-align:left;
    color:var(--muted);
    font-size:13px;
    padding:13px 12px;
    background:#f4f7fb
}
td {
    padding:16px 12px;
    border-bottom:1px solid var(--line);
    vertical-align:top
}
tr:last-child td {
    border-bottom:0
}
.step {
    display:grid;
    grid-template-columns:45px 1fr;
    gap:14px;
    padding:17px 0;
    border-bottom:1px solid var(--line)
}
.step:last-child {
    border:0
}
.number {
    background:#eaf0f7;
    color:var(--blue);
    border-radius:10px;
    display:grid;
    place-items:center;
    font-weight:700;
    width:40px;
    height:40px
}
.step p {
    margin:0;
    color:var(--muted);
    font-size:16px
}
.flow {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    position:relative
}
.flowbox {
    padding:22px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#f7f9fc
}
.flowbox strong {
    display:block;
    font-size:21px
}
.flowbox p {
    font-size:16px;
    color:var(--muted);
    margin:8px 0 0
}
.flowbox .eyebrow {
    color:var(--blue)
}
.code {
    background:#0c1b2d;
    color:#d7e9f6;
    padding:21px;
    border-radius:12px;
    font:15px/1.7 Consolas,monospace;
    white-space:pre-wrap;
    overflow-wrap:anywhere
}
.list {
    padding-left:21px
}
.list li {
    margin-bottom:10px
}
details {
    border:1px solid var(--line);
    border-radius:10px;
    padding:16px;
    margin-top:12px
}
summary {
    font-weight:650;
    cursor:pointer
}
details p {
    color:var(--muted);
    margin:12px 0 0
}
.lab {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);
    gap:20px
}
.chat {
    padding:0;
    overflow:hidden;
    display:flex;
    flex-direction:column
}
.chathead {
    padding:20px 24px;
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px
}
.chathead h3 {
    margin:0
}
.modes {
    display:flex;
    gap:6px;
    background:#f2f5f9;
    padding:5px;
    border-radius:11px;
    margin:18px 22px 0
}
.modes button {
    flex:1;
    background:transparent;
    color:var(--muted);
    font-size:14px;
    padding:9px
}
.modes button.active {
    background:white;
    color:var(--ink);
    box-shadow:0 2px 6px #10253c12
}
.messages {
    padding:24px;
    min-height:270px;
    max-height:440px;
    overflow:auto;
    display:flex;
    flex-direction:column;
    gap:16px
}
.message {
    border-radius:12px;
    padding:16px 18px;
    font-size:16px;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    background:#f1f5f9
}
.message.user {
    background:#e7eefc;
    margin-left:35px
}
.message small {
    display:block;
    white-space:normal;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:1px;
    color:var(--muted);
    margin-bottom:7px
}
.compose {
    padding:20px 24px;
    border-top:1px solid var(--line);
    margin-top:auto
}
.compose textarea {
    width:100%;
    resize:vertical;
    min-height:92px;
    border:1px solid #bbcbd9;
    border-radius:10px;
    padding:12px;
    background:white;
    color:var(--ink)
}
.composeline {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-top:11px
}
.composeline span {
    font-size:13px;
    color:var(--muted)
}
.suggestions {
    display:grid;
    gap:9px
}
.suggestions button {
    text-align:left;
    background:#f5f8fb;
    color:var(--ink);
    border:1px solid var(--line);
    font-size:15px;
    font-weight:500
}
.evidence {
    font-size:15px;
    color:var(--muted);
    padding:12px 0
}
.check {
    display:block;
    padding:14px 0;
    border-bottom:1px solid var(--line)
}
.check input {
    width:19px;
    height:19px;
    accent-color:var(--teal);
    margin-right:10px
}
.answerbox {
    display:none;
    margin-top:18px;
    padding:20px;
    background:#e5f4ef;
    border-radius:10px
}
.answerbox.open {
    display:block
}
.bottom {
    position:fixed;
    bottom:0;
    left:248px;
    right:0;
    background:#ffffffed;
    backdrop-filter:blur(12px);
    padding:14px 42px;
    border-top:1px solid var(--line);
    display:flex;
    gap:20px;
    align-items:center;
    z-index:10
}
.bottom small {
    white-space:nowrap;
    color:var(--muted);
    font-size:14px
}
.track {
    flex:1;
    height:4px;
    background:#dce5ee;
    border-radius:5px;
    overflow:hidden
}
.track span {
    display:block;
    height:100%;
    background:var(--teal);
    width:16.66%;
    transition:width .25s
}
.footercontrols {
    display:flex;
    gap:8px
}
.footercontrols button {
    padding:8px 15px;
    font-size:14px
}
.present .sidebar {
    display:none
}
.present .shell {
    grid-template-columns:1fr
}
.present .bottom {
    left:0
}
.present .workspace {
    max-width:1450px
}
body.present {
    font-size:19px
}
.present .intro {
    font-size:22px
}
.present .message {
    font-size:18px
}
@media(min-width:1500px) {
    .workspace {
        padding-top:35px
    }
    .card {
        padding:30px
    }
}
@media(max-width:1100px) {
    .shell {
        grid-template-columns:205px minmax(0,1fr)
    }
    .sidebar {
        padding:25px 14px
    }
    .workspace {
        padding:22px 25px 100px
    }
    .bottom {
        left:205px;
        padding:14px 25px
    }
    .two,.lab {
        grid-template-columns:1fr
    }
    .three {
        grid-template-columns:1fr
    }
    .card {
        padding:22px
    }
    h1 {
        font-size:38px
    }
    .messages {
        max-height:430px
    }
}
@media(max-width:700px) {
    .shell {
        display:block
    }
    .sidebar {
        position:relative;
        height:auto;
        padding:16px
    }
    .brand {
        font-size:22px
    }
    .sidebar .eyebrow,.sidebottom {
        display:none
    }
    .nav {
        display:flex;
        overflow:auto;
        margin-top:14px;
        gap:5px
    }
    .nav button {
        flex:0 0 auto;
        padding:9px;
        font-size:14px
    }
    .nav small {
        display:none
    }
    .workspace {
        padding:20px 16px 95px
    }
    .topbar {
        flex-wrap:wrap;
        margin-bottom:23px;
        gap:10px
    }
    .topactions {
        width:100%;
        justify-content:space-between
    }
    h1 {
        font-size:32px;
        letter-spacing:-1px
    }
    .intro {
        font-size:17px
    }
    .flow {
        grid-template-columns:1fr
    }
    .bottom {
        left:0;
        padding:12px 16px;
        gap:10px
    }
    .bottom small {
        font-size:12px
    }
    .footercontrols button {
        padding:8px 10px
    }
    .card {
        padding:20px
    }
    .chat {
        padding:0
    }
    .chathead,.messages,.compose {
        padding:18px
    }
    .modes {
        margin:15px 14px 0
    }
    .modes button {
        font-size:13px;
        padding:8px 4px
    }
    .question {
        font-size:25px
    }
    .metrics {
        gap:24px
    }
    .caption {
        max-width:100%
    }
    td,th {
        min-width:100px
    }
    .composeline {
        flex-wrap:wrap
    }
    .present .workspace {
        padding:20px 16px 95px
    }
}
@media(prefers-reduced-motion:reduce) {
    * {
        animation:none!important;
        transition:none!important
    }
}
@media print {
    .sidebar,.topbar,.bottom,.compose,.modes,.suggestions,button {
        display:none!important
    }
    .shell {
        display:block
    }
    .workspace {
        padding:0
    }
    .view {
        display:block!important;
        break-before:page
    }
    .view:first-of-type {
        break-before:auto
    }
    .card {
        break-inside:avoid
    }
    .messages {
        max-height:none
    }
    .answerbox {
        display:block
    }
}