/* Projekttage-Wahl. Layout-Grundlage: projektepoche (MIT), stark angepasst. */
@font-face {
    font-family: 'Fira Sans';
    font-style: normal;
    font-weight: 400;
    src: url("font/firasans-latin-ext.woff2") format('woff2');
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Fira Sans';
    font-style: normal;
    font-weight: 400;
    src: url("font/firasans-latin.woff2") format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    --pt-accent: #0f6674;
    --pt-accent-dark: #0a4b56;
    --pt-bg: #f3f5f6;
    --bs-primary: #0f6674;
    --bs-primary-rgb: 15, 102, 116;
    --bs-link-color-rgb: 15, 102, 116;
    --bs-link-hover-color-rgb: 10, 75, 86;
}

body {
    font-family: "Fira Sans", system-ui, sans-serif;
    background: var(--pt-bg);
    padding-top: 4.25rem;
}

.btn-primary {
    --bs-btn-bg: var(--pt-accent);
    --bs-btn-border-color: var(--pt-accent);
    --bs-btn-hover-bg: var(--pt-accent-dark);
    --bs-btn-hover-border-color: var(--pt-accent-dark);
    --bs-btn-active-bg: var(--pt-accent-dark);
    --bs-btn-active-border-color: var(--pt-accent-dark);
    --bs-btn-disabled-bg: #7fa3a9;
    --bs-btn-disabled-border-color: #7fa3a9;
}
.btn-outline-primary {
    --bs-btn-color: var(--pt-accent);
    --bs-btn-border-color: var(--pt-accent);
    --bs-btn-hover-bg: var(--pt-accent);
    --bs-btn-hover-border-color: var(--pt-accent);
    --bs-btn-active-bg: var(--pt-accent);
    --bs-btn-active-border-color: var(--pt-accent);
}
.nav-pills { --bs-nav-pills-link-active-bg: var(--pt-accent); --bs-nav-link-color: var(--pt-accent-dark); --bs-nav-link-hover-color: var(--pt-accent-dark); }
.form-check-input:checked { background-color: var(--pt-accent); border-color: var(--pt-accent); }

.navbar-brand { font-weight: 600; color: var(--pt-accent-dark); }
.brand-mark { width: 1.7rem; height: 1.7rem; vertical-align: -0.35rem; margin-right: .35rem; }

.sheet {
    background: #fff;
    border-radius: .6rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
    padding: 1.25rem;
    margin-bottom: 1.25rem;
}
@media (min-width: 768px) { .sheet { padding: 1.75rem; } }
h1 { font-size: 1.6rem; font-weight: 600; }
h2 { font-size: 1.2rem; font-weight: 600; margin-top: .25rem; }
.steps { color: #5c6b70; font-size: .9rem; letter-spacing: .02em; }

/* Stundenraster ------------------------------------------------------- */
.tt { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; }
.tt th { font-weight: 600; font-size: .9rem; text-align: center; padding: .2rem; }
.tt th.tt-period { text-align: right; width: 5.3rem; white-space: nowrap; font-weight: 400; color: #5c6b70; line-height: 1.15; }
.tt th.tt-period small { display: block; font-size: .66rem; }
.tt td { padding: 0; height: 3.1rem; vertical-align: stretch; }
.tt .cell {
    display: flex; align-items: center; justify-content: center; text-align: center;
    width: 100%; height: 100%; min-height: 3.1rem; padding: .25rem .35rem;
    border-radius: .4rem; border: 1px solid transparent; font-size: .85rem; line-height: 1.15;
    overflow: hidden; overflow-wrap: anywhere;
}
.tt .cell-off { background: repeating-linear-gradient(135deg, #eceff0, #eceff0 6px, #f5f7f7 6px, #f5f7f7 12px); color: #8a979b; }
.tt .cell-empty { background: #fff; border: 1.5px dashed #b6c2c6; color: var(--pt-accent); }
.tt button.cell { cursor: pointer; }
.tt button.cell-empty:hover, .tt button.cell-empty:focus-visible { background: #e6f1f3; border-color: var(--pt-accent); }
.tt .cell-gap { background: #fdecea; border: 1.5px dashed #d9534f; color: #a52a26; }
.tt .cell-course { background: hsl(var(--hue, 190) 55% 90%); border-color: hsl(var(--hue, 190) 40% 62%); color: #1d2b2f; font-weight: 500; }
.tt-scroll { overflow-x: auto; }
.tt-scroll .tt { min-width: 22rem; }

.course-item { border: 1px solid #dde3e5; border-radius: .5rem; padding: .75rem .9rem; margin-bottom: .6rem; background: #fff; }
.course-item.disabled { background: #f6f7f8; color: #7a878b; }
.course-item .when { font-size: .85rem; color: #45565b; }
.course-item .desc { font-size: .9rem; white-space: pre-line; margin: .35rem 0 0; }
.badge-len { background: #e6f1f3; color: var(--pt-accent-dark); font-weight: 500; }

.submit-bar {
    position: sticky; bottom: 0; z-index: 5; background: #fff; border-top: 1px solid #dde3e5;
    margin: 1rem -1.25rem -1.25rem; padding: .75rem 1.25rem; border-radius: 0 0 .6rem .6rem;
}
@media (min-width: 768px) { .submit-bar { margin: 1rem -1.75rem -1.75rem; padding: .9rem 1.75rem; } }

.class-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr)); gap: .5rem; }
.class-grid .btn-check + label { width: 100%; padding: .6rem .2rem; font-size: 1.05rem; }

.cellpick td, .cellpick th { text-align: center; vertical-align: middle; }
.cellpick input[type=checkbox] { width: 1.3rem; height: 1.3rem; }
.offer-0 { background: #fdecea !important; color: #a52a26; font-weight: 600; }
.offer-low { background: #fff6dd !important; }
.table-sm td, .table-sm th { vertical-align: middle; }
.stat { font-size: 1.6rem; font-weight: 600; line-height: 1.1; }
.stat-label { color: #5c6b70; font-size: .85rem; }

@media print {
    body { background: #fff; padding-top: 0; font-size: 11pt; }
    .navbar, .no-print, .alert { display: none !important; }
    .sheet { box-shadow: none; padding: 0; }
    .page-break { break-after: page; }
    a { color: inherit; text-decoration: none; }
}
