html, body { min-height: 100%; }
body { color: var(--sim-ink); background: var(--sim-paper); font-family: Inter, "Segoe UI", sans-serif; }
a, .btn-link { color: var(--sim-green); }
.btn-primary { color: #fff; background-color: var(--sim-green); border-color: var(--sim-green); }
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { box-shadow: 0 0 0 .12rem white, 0 0 0 .25rem rgba(53, 111, 78, .42); }

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
:root {
    --sim-ink: #14211e;
    --sim-ink-soft: #485954;
    --sim-green: #174d3b;
    --sim-green-dark: #103b2e;
    --sim-mint: #cde8a8;
    --sim-lime: #d2ee9b;
    --sim-paper: #f5f5ef;
    --sim-line: #dfe4d9;
    --sim-muted: #75817b;
    --sim-amber: #c79045;
}

html, body { min-height: 100%; }
body { color: var(--sim-ink); background: var(--sim-paper); font-family: Inter, "Segoe UI", sans-serif; }
.page { background: var(--sim-paper); }
.sidebar { background: var(--sim-green-dark); }
.top-row.navbar { min-height: 74px; border-bottom: 1px solid rgba(255,255,255,.11); }
.navbar-brand { font-size: 1.16rem; font-weight: 850; letter-spacing: .1em; }
.brand-period { color: var(--sim-lime); }
.sim-rail-label { display: block; margin: 0 0 20px 12px; color: rgba(255,255,255,.52); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.nav-section-label { padding: 25px 24px 9px; color: rgba(255,255,255,.42); font-size: .63rem; font-weight: 700; letter-spacing: .16em; }
.nav-item { padding-top: 3px !important; padding-bottom: 3px !important; }
.nav-item .nav-link { display: flex; align-items: center; gap: 12px; border-radius: 7px; color: rgba(255,255,255,.75); font-size: .9rem; }
.nav-item .nav-link.active { background: rgba(211,238,155,.13); color: #e5f4c9; }
.nav-icon { width: 18px; color: var(--sim-lime); text-align: center; font-size: 1.05rem; }
.nav-logout form { margin: 0; }
.nav-logout button { width: 100%; border: 0; background: transparent; text-align: left; }
.nav-footnote { position: absolute; bottom: 22px; left: 26px; display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.47); font-size: .72rem; }
.nav-footnote-dot { width: 7px; height: 7px; border-radius: 50%; background: #a8d36f; box-shadow: 0 0 0 4px rgba(168,211,111,.13); }
.top-row:not(.navbar) { min-height: 52px; }
.content { padding-top: 2.1rem; }

.sim-home { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .85fr); min-height: calc(100vh - 4rem); overflow: hidden; padding: clamp(36px, 7vw, 100px) clamp(28px, 7vw, 108px) 72px; background: #f5f5ef; }
.sim-home-content { position: relative; z-index: 1; max-width: 680px; align-self: center; padding-bottom: 40px; }
.sim-home-mark { display: flex; align-items: center; gap: 6px; margin-bottom: 64px; font-size: 1.2rem; font-weight: 850; letter-spacing: .12em; }
.sim-home-mark span { color: var(--sim-green); }.sim-home-mark i { color: #84937e; font-style: normal; font-weight: 450; }
.sim-home-kicker,.sim-eyebrow { color: #748078; font-size: .68rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.sim-home-kicker { display: flex; align-items: center; gap: 10px; }.sim-home-kicker span { width: 22px; height: 2px; background: #c28c46; }
.sim-home h1 { max-width: 710px; margin: 22px 0 22px; font-size: clamp(2.6rem, 5.1vw, 5.1rem); font-weight: 620; letter-spacing: -.055em; line-height: 1.02; }
.sim-home h1 em { color: var(--sim-green); font-family: Georgia, serif; font-weight: 450; }
.sim-home-description { max-width: 520px; margin-bottom: 30px; color: var(--sim-ink-soft); font-size: 1.05rem; line-height: 1.75; }
.sim-button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; padding: 13px 18px; border: 0; border-radius: 5px; font-size: .88rem; font-weight: 650; text-decoration: none; transition: transform .18s ease, background .18s ease; }
.sim-button:hover { transform: translateY(-2px); }
.sim-button-primary { background: var(--sim-green); color: #fff; }.sim-button-primary:hover { background: #236449; color: #fff; }
.sim-home-cta { padding: 15px 20px; }.sim-home-secondary { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 15px; }.sim-home-login { margin: 0; color: var(--sim-green); font-size: .85rem; text-decoration: none; }.sim-home-login:hover { text-decoration: underline; }
.sim-home-rule { width: min(100%, 530px); height: 1px; margin: 43px 0 21px; background: #d8ded2; }
.sim-home-facts { display: flex; flex-wrap: wrap; gap: 38px; }.sim-home-facts div { display: grid; gap: 2px; }.sim-home-facts strong { font-size: 1.05rem; }.sim-home-facts span { color: #7a857e; font-size: .72rem; }
.sim-home-aside { position: relative; min-height: 420px; align-self: center; }.sim-orbit { position: absolute; top: 50%; left: 50%; border: 1px solid #dce2d6; border-radius: 50%; transform: translate(-50%,-50%); }.orbit-outer { width: min(37vw,420px); aspect-ratio: 1; }.orbit-inner { width: min(27vw,310px); aspect-ratio: 1; border-style: dashed; border-color: #cfd8c8; }
.sim-core { position: absolute; top: 50%; left: 50%; display: flex; width: 150px; height: 150px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #c4d2c1; border-radius: 50%; background: #e5eddd; color: var(--sim-green); transform: translate(-50%,-50%); box-shadow: 0 14px 40px rgba(37,72,53,.09); }.sim-core span { font-size: .61rem; letter-spacing: .16em; }.sim-core strong { font-size: 2rem; font-weight: 450; }.sim-core small { color: #758378; font-size: .55rem; letter-spacing: .13em; }
.sim-node { position: absolute; display: grid; gap: 4px; min-width: 112px; padding: 10px 12px; border: 1px solid #e0e4d9; border-radius: 5px; background: rgba(250,251,246,.94); box-shadow: 0 8px 24px rgba(30,53,40,.05); color: #78847c; font-size: .54rem; letter-spacing: .1em; }.sim-node b { color: var(--sim-green); font-size: .7rem; letter-spacing: .02em; }.node-market { top: 14%; left: 8%; }.node-growth { top: 34%; right: 0; }.node-cash { bottom: 16%; left: 10%; }
.sim-home-footer { position: absolute; right: clamp(28px, 7vw, 108px); bottom: 21px; left: clamp(28px, 7vw, 108px); display: flex; justify-content: space-between; border-top: 1px solid #dfe3da; padding-top: 13px; color: #849087; font-size: .59rem; letter-spacing: .13em; }

.sim-page-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 22px auto 30px; max-width: 1120px; }.sim-eyebrow { margin-bottom: 7px; }.sim-page-heading h1 { margin: 0; font-size: clamp(2rem,3vw,2.7rem); font-weight: 630; letter-spacing: -.045em; }.sim-page-lead { margin: 8px 0 0; color: #728078; font-size: .95rem; }.sim-count { padding: 7px 11px; border: 1px solid var(--sim-line); border-radius: 30px; color: #52645b; font-size: .76rem; }
.sim-games-layout { display: grid; grid-template-columns: minmax(290px, .82fr) minmax(340px, 1.18fr); align-items: start; gap: 22px; max-width: 1120px; margin: 0 auto; }.sim-panel,.sim-game-card { border: 1px solid #e0e5dc; border-radius: 8px; background: #fbfcf8; box-shadow: 0 7px 22px rgba(30,56,42,.035); }.sim-create-panel { padding: 23px; }.sim-panel-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }.sim-panel-heading h2,.sim-empty-state h2 { margin: 0; font-size: 1.2rem; font-weight: 640; letter-spacing: -.025em; }.sim-step-number { color: #aab79c; font-family: Georgia,serif; font-size: 1.35rem; }.sim-field { display: grid; gap: 7px; margin-bottom: 16px; color: #394a42; font-size: .78rem; font-weight: 620; }.sim-field input,.sim-field select { min-height: 42px; padding: 9px 11px; border: 1px solid #dce3d8; border-radius: 5px; outline: none; background: #fff; color: #20342a; font-size: .85rem; font-weight: 430; }.sim-field input:focus,.sim-field select:focus { border-color: #6f987b; box-shadow: 0 0 0 3px rgba(66,126,87,.1); }.sim-field small { color: #859189; font-size: .68rem; font-weight: 430; }.sim-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }.sim-field .validation-message,.sim-validation-summary { color: #a44838; font-size: .73rem; font-weight: 450; }.sim-validation-summary:empty { display:none; }.sim-alert { margin: 9px 0 14px; padding: 10px 12px; border-radius: 5px; background: #f8e9e4; color: #963f31; font-size: .78rem; }.sim-create-button { width: 100%; justify-content: space-between; margin-top: 3px; }
.sim-round-calendar { margin-top: 15px; border-top: 1px solid #e6eae2; padding-top: 12px; color: #53635a; font-size: .76rem; }.sim-round-calendar summary { cursor: pointer; font-weight: 620; }.sim-round-calendar ol { display: grid; gap: 8px; margin: 11px 0 2px; padding-left: 20px; }.sim-round-calendar li { padding-left: 3px; }.sim-round-calendar li strong,.sim-round-calendar li span { display: block; }.sim-round-calendar li span { margin-top: 2px; color: #748078; font-size: .7rem; }
.sim-auth-page { min-height: calc(100vh - 90px); display: grid; place-items: start center; padding: 44px 20px; background: #f5f5ef; }.sim-auth-card { width: min(100%, 520px); padding: 30px; border: 1px solid #e0e5dc; border-radius: 8px; background: #fbfcf8; box-shadow: 0 7px 22px rgba(30,56,42,.035); }.sim-auth-card h1,.sim-student-home h1 { margin: 0 0 9px; font-size: 1.8rem; }.sim-auth-card .sim-page-lead { margin-bottom: 24px; }.sim-auth-switch { margin: 18px 0 0; color: #718078; font-size: .82rem; }.sim-join-game-info { display: grid; gap: 4px; margin: 0 0 16px; padding: 12px; border-left: 3px solid #86aa66; background: #f0f4e9; color: #53635a; font-size: .8rem; }.sim-join-game-info strong { color: #20342a; }.sim-enrollment-button { margin-top: 14px; }.sim-enrollment-code { display: flex; align-items: center; gap: 11px; margin-top: 14px; padding: 10px 12px; border-radius: 5px; background: #eef3e6; color: #53635a; font-size: .77rem; }.sim-enrollment-code code { color: #174f3e; font-size: .95rem; font-weight: 700; letter-spacing: .08em; }.sim-enrollment-code a { margin-left: auto; color: #27644f; }.sim-student-home { max-width: 720px; margin: 60px auto; padding: 38px; border: 1px solid #e0e5dc; border-radius: 8px; background: #fbfcf8; }
.sim-games-list { display: grid; gap: 13px; }.sim-game-card { padding: 19px 20px; }.sim-card-topline,.sim-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.sim-status-pill { border-radius: 30px; padding: 5px 9px; background: #edf3e3; color: #567043; font-size: .65rem; font-weight: 670; }.sim-game-date { color: #8a948d; font-size: .7rem; }.sim-game-card h2 { margin: 16px 0 4px; font-size: 1.08rem; font-weight: 650; }.sim-niche-label { margin: 0; color: #718078; font-size: .78rem; }.sim-game-meta { display: flex; flex-wrap: wrap; gap: 8px 17px; margin: 18px 0; color: #839087; font-size: .7rem; }.sim-game-meta strong { color: #40534a; font-weight: 630; }.sim-card-footer { border-top: 1px solid #edf0e9; padding-top: 11px; color: #849087; font-size: .68rem; }.sim-card-footer span:last-child { color: #467154; font-size: 1rem; }.sim-empty-state { display: grid; min-height: 250px; place-content: center; justify-items: center; padding: 25px; text-align: center; }.sim-empty-state p:last-child { max-width: 280px; margin: 8px 0 0; color: #819087; font-size: .8rem; line-height: 1.6; }.sim-empty-icon { display: grid; width: 42px; height: 42px; place-items: center; margin-bottom: 14px; border-radius: 50%; background: #edf2e5; color: #507458; font-size: 1.2rem; }.sim-loader { width: 24px; height: 24px; margin-bottom: 12px; border: 2px solid #dce5d8; border-top-color: #3d7554; border-radius: 50%; animation: sim-spin .8s linear infinite; }@keyframes sim-spin { to { transform: rotate(360deg); } }

@media (max-width: 1100px) { .sim-home { grid-template-columns: 1fr; }.sim-home-content { max-width: 720px; }.sim-home-aside { display:none; }.sim-home { min-height: calc(100vh - 4rem); }.sim-games-layout { grid-template-columns: minmax(0,1fr); }.sim-create-panel { order: 0; }.sim-games-list { order: 1; } }
@media (max-width: 600px) { .sim-home { padding: 34px 24px 80px; }.sim-home h1 { font-size: 2.65rem; }.sim-home-description { font-size: .96rem; }.sim-home-cta { width: 100%; }.sim-home-secondary { align-items: flex-start; flex-direction: column; gap: 11px; }.sim-home-secondary .sim-home-login { display: inline-block; margin: 0; }.sim-home-facts { gap: 19px; }.sim-home-facts strong { font-size: .96rem; }.sim-home-facts span { max-width: 90px; font-size: .65rem; }.sim-home-footer { right: 24px; left: 24px; font-size: .5rem; }.sim-home-footer span:last-child { display:none; }.sim-page-heading { align-items: start; margin-top: 7px; }.sim-games-layout { gap: 14px; }.sim-create-panel { padding: 18px; }.sim-field-row { gap: 9px; } }
.sim-top-context { color: #7d8a81; font-size: .75rem; letter-spacing: .04em; }
.sim-access-denied { max-width: 620px; margin: 8vh auto; padding: 36px; }.sim-access-denied h1 { margin-bottom: 22px; font-size: 1.5rem; }
@media (max-width: 600px) { .sim-rail-label { display: none; } }

.sim-status-pill-pending { background: #f6ecd9; color: #8a6224; }
.sim-student-layout { grid-template-columns: minmax(340px, 1.18fr) minmax(290px, .82fr); }
.sim-game-card > .sim-button { margin-top: 2px; }
.sim-alert-info { border-color: #cfdcc0; background: #f0f4e9; color: #3f5a47; }
.sim-canvas-message { max-width: 1120px; margin: 22px auto; }
.sim-canvas-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); align-items: start; gap: 22px; max-width: 1120px; margin: 0 auto 60px; }
.sim-canvas-blocks { display: grid; gap: 14px; }
.sim-canvas-block { padding: 22px 23px 8px; }
.sim-canvas-block > header { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.sim-canvas-block > header .sim-step-number { min-width: 30px; line-height: 1.2; }
.sim-canvas-block h2 { margin: 0 0 4px; font-size: 1.08rem; font-weight: 650; letter-spacing: -.02em; }
.sim-canvas-block > header p { margin: 0; color: #66756c; font-size: .84rem; line-height: 1.5; }
.sim-choice-title { margin: 4px 0 9px; color: #394a42; font-size: .78rem; font-weight: 620; }
.sim-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 9px; margin-bottom: 16px; }
.sim-choice { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; padding: 11px 12px; border: 1px solid #dce3d8; border-radius: 6px; background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.sim-choice:hover { border-color: #a9bd98; }
.sim-choice.is-selected { border-color: var(--sim-green); background: #eef4e6; }
.sim-choice:has(input:disabled) { cursor: default; opacity: .62; }
.sim-choice.is-selected:has(input:disabled) { opacity: 1; }
.sim-choice:has(input:focus-visible) { outline: 2px solid rgba(53, 111, 78, .55); outline-offset: 2px; }
.sim-choice input { flex: none; width: 16px; height: 16px; margin-top: 2px; accent-color: var(--sim-green); }
.sim-choice span { display: grid; gap: 3px; min-width: 0; }
.sim-choice strong { color: #24372e; font-size: .84rem; font-weight: 630; }
.sim-choice small { color: #6d7b72; font-size: .75rem; line-height: 1.45; }
.sim-field textarea { padding: 9px 11px; border: 1px solid #dce3d8; border-radius: 5px; background: #fff; color: var(--sim-ink); font: inherit; font-weight: 450; line-height: 1.5; resize: vertical; }
.sim-field textarea:focus { border-color: #7fa06c; outline: 2px solid rgba(53, 111, 78, .25); }
.sim-field > span small { margin-left: 6px; color: #8a948d; font-weight: 500; }
.sim-canvas-summary { position: sticky; top: 16px; display: grid; gap: 12px; padding: 22px; }
.sim-canvas-summary > * { margin: 0; }
.sim-canvas-summary h2 { font-size: 1.12rem; font-weight: 650; letter-spacing: -.02em; }
.sim-save-state { color: #6d7b72; font-size: .76rem; }
.sim-canvas-deadline { display: grid; gap: 2px; padding: 11px 12px; border-left: 3px solid var(--sim-amber); background: #f8f3e8; }
.sim-canvas-deadline span, .sim-canvas-deadline small { color: #7a6a4d; font-size: .7rem; }
.sim-canvas-deadline strong { color: #4b3d22; font-size: .9rem; }
.sim-canvas-note { color: #66756c; font-size: .78rem; line-height: 1.5; }
.sim-canvas-list { display: grid; gap: 7px; color: #44554c; font-size: .78rem; }
.sim-canvas-list ul { display: grid; gap: 5px; margin: 0; padding-left: 17px; line-height: 1.45; }
.sim-canvas-list small { color: #7d6a47; }
.sim-canvas-warnings { padding: 11px 12px; border-radius: 6px; background: #fbf1dd; color: #6b4f1d; }
@media (max-width: 1100px) { .sim-canvas-layout { grid-template-columns: minmax(0, 1fr); }.sim-canvas-summary { position: static; order: -1; }.sim-student-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .sim-canvas-block { padding: 18px 16px 4px; }.sim-choice-grid { grid-template-columns: minmax(0, 1fr); } }
.sim-link-danger { padding: 2px 0; border: 0; background: transparent; color: #a2463a; font-size: .72rem; font-weight: 620; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.sim-link-danger:hover { color: #7e2f25; }
.sim-confirm { display: grid; gap: 8px; margin-top: 12px; padding: 13px 14px; border: 1px solid #ecc9c1; border-radius: 6px; background: #fbf0ed; color: #5f2f27; font-size: .8rem; }
.sim-confirm p { margin: 0; line-height: 1.5; }
.sim-confirm-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.sim-confirm-actions .sim-button { padding: 9px 14px; gap: 8px; font-size: .8rem; }
.sim-button-danger { background: #a2463a; color: #fff; }.sim-button-danger:hover { background: #8a382d; color: #fff; }
.sim-button-quiet { border: 1px solid #d9c3bd; background: #fff; color: #5f2f27; }
.sim-button:disabled { opacity: .6; cursor: default; transform: none; }
.sim-card-link { display: inline-block; margin: 10px 0 0 14px; color: var(--sim-green); font-size: .8rem; }
.sim-hours-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 13px; }
.sim-hours-balance { margin: 0 0 16px; padding: 10px 12px; border-radius: 5px; background: #eef4e6; color: #3f5a47; font-size: .8rem; }
.sim-hours-balance.is-over { background: #f8e9e4; color: #963f31; }
.sim-segment-list { display: grid; gap: 9px; margin-bottom: 16px; }
.sim-segment-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 11px 12px; border: 1px solid #dce3d8; border-radius: 6px; background: #fff; }
.sim-segment-row.is-selected { border-color: var(--sim-green); background: #eef4e6; }
.sim-segment-toggle { display: flex; align-items: center; gap: 10px; min-height: 30px; cursor: pointer; }
.sim-segment-toggle input { width: 16px; height: 16px; accent-color: var(--sim-green); }
.sim-segment-toggle strong { color: #24372e; font-size: .86rem; font-weight: 630; }
.sim-segment-price { display: flex; align-items: center; gap: 9px; color: #5c6b62; font-size: .76rem; }
.sim-segment-price input { width: 120px; min-height: 38px; padding: 7px 10px; border: 1px solid #dce3d8; border-radius: 5px; background: #fff; }
.sim-segment-price input:disabled { background: #f1f3ee; color: #9aa59d; }
.sim-confirm-neutral { border-color: #d8dfd0; background: #f3f6ee; color: #33473c; }
.sim-close-round-button { margin-top: 14px; padding: 9px 14px; border-color: #cfd8c8; color: var(--sim-green); font-size: .8rem; }
.sim-round-state { color: #5d7a52; font-style: normal; font-weight: 500; }
.sim-results-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 1120px; margin: 0 auto 60px; }
.sim-result-round { padding: 22px 23px; }
.sim-result-round > header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 16px; }
.sim-result-round h2 { margin: 0; font-size: 1.2rem; font-weight: 650; letter-spacing: -.02em; }
.sim-result-round > header span { color: #75817b; font-size: .76rem; }
.sim-kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-bottom: 18px; }
.sim-kpi { display: grid; gap: 3px; padding: 13px 14px; border: 1px solid #e0e5dc; border-radius: 6px; background: #fff; }
.sim-kpi span { color: #66756c; font-size: .72rem; }
.sim-kpi strong { color: #1d3027; font-size: 1.25rem; font-weight: 650; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.sim-kpi small { color: #75817b; font-size: .72rem; line-height: 1.4; }
.sim-kpi.is-bad strong { color: #a2463a; }
.sim-kpi.is-good strong { color: #1f6a47; }
.sim-result-subtitle { margin: 18px 0 8px; color: #394a42; font-size: .82rem; font-weight: 650; }
.sim-table-wrap { overflow-x: auto; }
.sim-table { width: 100%; border-collapse: collapse; font-size: .8rem; font-variant-numeric: tabular-nums; }
.sim-table th { padding: 7px 10px; border-bottom: 1px solid #dfe4d9; color: #66756c; font-size: .7rem; font-weight: 620; text-align: right; white-space: nowrap; }
.sim-table td { padding: 8px 10px; border-bottom: 1px solid #eef1ea; color: #2c3e35; text-align: right; white-space: nowrap; }
.sim-table th:first-child, .sim-table td:first-child { text-align: left; }
.sim-table tr.is-total td { border-top: 1px solid #cfd8c8; border-bottom: 0; font-weight: 650; }
.sim-table td.is-muted { color: #9aa59d; }
.sim-result-notes { display: grid; gap: 6px; margin: 0 0 16px; padding: 12px 14px 12px 30px; border-radius: 6px; background: #fbf1dd; color: #6b4f1d; font-size: .8rem; line-height: 1.45; }
.sim-heading-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.sim-card-link-first { margin-left: 0; }
.sim-score-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 14px; }
.sim-score-total, .sim-score-block { display: grid; gap: 3px; align-content: start; padding: 13px 14px; border: 1px solid #e0e5dc; border-radius: 6px; background: #fff; }
.sim-score-total { border-color: var(--sim-green); background: var(--sim-green); color: #fff; }
.sim-score-total span, .sim-score-block span { font-size: .72rem; }
.sim-score-block span { color: #66756c; }
.sim-score-total strong, .sim-score-block strong { font-size: 1.5rem; font-weight: 650; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.sim-score-total small { color: rgba(255,255,255,.8); font-size: .72rem; }
.sim-score-bar { height: 5px; border-radius: 3px; background: #e6eae2; overflow: hidden; }
.sim-score-bar i { display: block; height: 100%; border-radius: 3px; background: #6f9a5c; }
.sim-scorecard th[scope=row] { max-width: 190px; color: #24372e; font-size: .78rem; font-weight: 650; text-align: left; vertical-align: top; white-space: normal; }
.sim-scorecard td { text-align: left; }
.sim-scorecard td:last-child { min-width: 220px; color: #55655c; white-space: normal; }
.sim-scorecard tr.is-section > * { border-top: 2px solid #dfe4d9; }
.sim-light { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px 3px 7px; border-radius: 20px; font-size: .72rem; font-weight: 650; white-space: nowrap; }
.sim-light::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; }
.sim-light.is-green, .sim-light-dot.is-green { background: #e3f1dc; color: #23643c; }
.sim-light.is-yellow, .sim-light-dot.is-yellow { background: #fbedc6; color: #7a5a06; }
.sim-light.is-red, .sim-light-dot.is-red { background: #f8dcd6; color: #9b3324; }
.sim-light.is-none, .sim-light-dot.is-none { background: #eceee9; color: #707b74; }
.sim-light-row { display: inline-flex; gap: 4px; }
.sim-light-dot { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; font-size: .68rem; font-weight: 700; }
.sim-ranking td, .sim-ranking th { text-align: center; }
.sim-ranking td:nth-child(2), .sim-ranking th:nth-child(2) { text-align: left; }
.sim-table tr.is-own td { background: #eef4e6; font-weight: 620; }
.sim-table-legend { margin: 8px 0 0; color: #75817b; font-size: .72rem; line-height: 1.5; }
.sim-lesson { display: grid; gap: 4px; margin-top: 20px; padding: 14px 16px; border-left: 3px solid var(--sim-amber); background: #f8f3e8; }
.sim-lesson span { color: #7a6a4d; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sim-lesson strong { color: #4b3d22; font-size: .95rem; }
.sim-lesson p { margin: 0; color: #5b4c30; font-size: .84rem; line-height: 1.55; }
.sim-round-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.sim-round-tabs button { padding: 8px 14px; border: 1px solid #dce3d8; border-radius: 20px; background: #fff; color: #44554c; font-size: .8rem; font-weight: 620; cursor: pointer; }
.sim-round-tabs button.is-selected { border-color: var(--sim-green); background: var(--sim-green); color: #fff; }
.sim-company-detail { margin-top: 12px; border: 1px solid #e0e5dc; border-radius: 6px; background: #fff; }
.sim-company-detail > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 12px 14px; cursor: pointer; font-size: .86rem; }
.sim-company-detail > summary span { color: #6d7b72; font-size: .76rem; }
.sim-company-detail[open] { padding-bottom: 14px; }
.sim-company-detail > :not(summary) { margin-left: 14px; margin-right: 14px; }
.sim-detail-line { margin: 0 14px 8px; color: #44554c; font-size: .8rem; line-height: 1.55; }
.sim-table td.sim-cell-wrap { min-width: 240px; white-space: normal; text-align: left; }
.sim-invite { margin-top: 12px; }
.sim-invite .sim-field { margin-top: 10px; }
.sim-invite .sim-button { padding: 9px 14px; font-size: .8rem; }
.sim-round-actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 16px; margin-top: 14px; }
.sim-round-actions .sim-close-round-button { margin-top: 0; }
.sim-reschedule { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: #55655c; font-size: .76rem; }
.sim-reschedule input { min-height: 38px; padding: 6px 9px; border: 1px solid #dce3d8; border-radius: 5px; background: #fff; font-size: .8rem; }
.sim-reschedule .sim-button { padding: 9px 12px; font-size: .78rem; }
.sim-audit td, .sim-audit th { text-align: left; }
.sim-freelancer { display: grid; gap: 2px; min-width: 0; }
.sim-freelancer strong { color: #24372e; font-size: .86rem; font-weight: 630; }
.sim-freelancer small { color: #6d7b72; font-size: .75rem; line-height: 1.4; }
.sim-kpi .sim-kpi-text { font-size: 1.02rem; letter-spacing: -.01em; }
.sim-admin-note { margin-top: 14px; }
.sim-setup-link { display: grid; gap: 7px; padding: 16px 18px; border-left: 3px solid #86aa66; background: #f0f4e9; color: #33473c; font-size: .82rem; }
.sim-setup-link p { margin: 0; line-height: 1.5; }
.sim-setup-link code { padding: 8px 10px; border-radius: 5px; background: #fff; color: #24372e; font-size: .74rem; overflow-wrap: anywhere; user-select: all; }
.sim-teacher-actions { margin-top: 14px; }
