/* Shared design tokens & components (student site + admin panel) */
:root {
    --brand: #1b3a6b;
    --brand-2: #254c8f;
    --brand-dark: #12294d;
    --accent: #d9a441;
    --ink: #1f2937;
    --muted: #6b7280;
    --line: #e4e8ef;
    --surface: #f3f5fa;
    --ok: #15803d;
    --danger: #dc2626;
    --radius: 16px;
    --shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
    --shadow: 0 8px 24px rgba(27, 58, 107, .08), 0 2px 6px rgba(16, 24, 40, .05);
    --bs-primary: #1b3a6b;
    --bs-primary-rgb: 27, 58, 107;
    --bs-link-color: #1b3a6b;
    --bs-link-hover-color: #12294d;
    --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
    --bs-body-color: #1f2937;
}

body {
    background: var(--surface);
    color: var(--ink);
    -webkit-text-size-adjust: 100%;
}

.min-w-0 { min-width: 0; }
.text-brand { color: var(--brand) !important; }

/* Buttons */
.btn { border-radius: 10px; font-weight: 500; }
.btn-brand {
    --bs-btn-color: #fff; --bs-btn-bg: var(--brand); --bs-btn-border-color: var(--brand);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--brand-dark); --bs-btn-hover-border-color: var(--brand-dark);
    --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--brand-dark); --bs-btn-active-border-color: var(--brand-dark);
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #6f86ad; --bs-btn-disabled-border-color: #6f86ad;
    --bs-btn-focus-shadow-rgb: 27, 58, 107;
}
.btn-outline-brand {
    --bs-btn-color: var(--brand); --bs-btn-border-color: var(--brand);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--brand); --bs-btn-hover-border-color: var(--brand);
    --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--brand-dark); --bs-btn-active-border-color: var(--brand-dark);
}
.btn-copy {
    background: #eef3fb; color: var(--brand); border: 1px solid #d4e0f3; font-size: .85rem; padding: .3rem .7rem;
}
.btn-copy:hover { background: #dfe9f8; color: var(--brand-dark); }
.btn-copy.copied { background: #dcfce7; border-color: #bbf7d0; color: var(--ok); }

/* Cards */
.card { border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }

/* Inputs */
.form-control, .form-select { border-radius: 10px; border-color: #d5dbe6; padding-top: .6rem; padding-bottom: .6rem; }
.form-control:focus, .form-select:focus {
    border-color: var(--brand-2); box-shadow: 0 0 0 .22rem rgba(37, 76, 143, .16);
}
.input-group-text { background: #f4f6fb; color: var(--brand); border-color: #d5dbe6; min-width: 2.75rem; justify-content: center; }
.input-group > .form-control, .input-group > .form-select { border-top-right-radius: 10px !important; border-bottom-right-radius: 10px !important; }
.input-group > .input-group-text:first-child { border-top-left-radius: 10px; border-bottom-left-radius: 10px; }
.form-label { font-weight: 600; font-size: .9rem; margin-bottom: .35rem; }
.form-text { font-size: .8rem; }
.req { color: var(--danger); font-weight: 700; }
.opt { color: var(--muted); font-weight: 400; font-size: .8rem; }

/* Soft badges */
.badge-soft { font-weight: 600; padding: .4em .7em; border-radius: 999px; font-size: .78rem; white-space: nowrap; }
.bg-teal-subtle { background-color: #d3f3ee !important; }
.text-teal-emphasis { color: #0b5c53 !important; }
.badge-indigo { background: #e5e9ff; color: #2f3fa8; }
.badge-purple { background: #f1e5ff; color: #6a2ba8; }

.section-icon {
    width: 46px; height: 46px; border-radius: 14px; flex: 0 0 46px;
    display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--brand), var(--brand-2)); color: #fff; font-size: 1.15rem;
    box-shadow: 0 6px 14px rgba(27, 58, 107, .25);
}

@media print {
    .no-print { display: none !important; }
    body { background: #fff !important; }
}
