/* Unified stylesheet with overlaps merged (no minification).
   Order base: new.css content first, then newframe.css, but overlapping selectors merged.
*/

/* ===== START OF new.css (merged where needed) ===== */
html, body {
    height: 100%;   /* Beide Elemente auf die volle Höhe setzen */
    margin: 0;
    padding: 0;
    /*cursor: url('../images/pointer.png'), auto;*/
}

/* MERGED from new.css and newframe.css
   - Properties from newframe.css take precedence on conflicts.
   - Media query-specific #content rules remain below and continue to apply. */
#content {
    padding: 25px 0px 0px 25px;
    width: 100%;
    clear:right;
}


body {
    display: flex;
    flex-direction: column; /* Flexbox, damit der Footer am unteren Ende bleibt */
    /*cursor: url('../images/pointer.png'), auto;*/
}



#content::before {
    content: "";
    position: fixed;
    top: 7%;
    left: 0;
    width: 100vw;
    height: 90%;
    background-image: url("../images/logo-large.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
    transform: rotate(0deg);
    z-index: -1;
    opacity: 0.3;
    animation: spin 250s linear infinite;
}

/* Content nimmt den Platz ein, der verfügbar ist */


/* Footer bleibt am unteren Rand des Viewports */   
#footer {
    width: 100%;
    height: 25px;
    background-color: white;
    border-top: 1px solid black;
    color: black;
    margin-top: auto; /* Automatischer Abstand oben für den Footer, damit er unten bleibt */
    position: relative;  /* Keine Fixierung mehr */
    /*box-shadow: 0px -10px 5px -5px rgba(0,0,0,.5);*/
}
#footer::before {
    content: '';
    position: absolute;
    top: -10px; /* push above the box */
    left: 0;
    width: 100%;
    height: 20px; /* controls shadow height */
    background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.9));
    z-index: -1; /* place it behind the box */
}


nav.gimmick-glow::after {
    animation: rainbow-glow2 3s linear infinite;
}

#footer.gimmick-glow::before {
    animation: rainbow-glow2 3s linear infinite;
}
@keyframes spin {
    from {
        transform: rotate(360deg);
    }
    to {
        transform: rotate(0deg);
    }
}

#loginform {
    max-width: 600px;
    box-shadow: 10px 5px 5px black;
    margin: 5% auto 0 auto;
    border: 1px solid black;
    border-radius: 25px;
    padding: 30px;
    text-align: center;
    background-color: white;
}

@media (max-width: 1024px) {
    #loginform {
        max-width: 600px !important;
        width: 90% !important;
    }
}

.prevdays, .calday {
    height: 110px;
    box-sizing: border-box;
    min-width: 14%;
    max-width: 14%;
}
.calday {
    position: relative;
}

.day {
    text-align: center;
    background-color: #EEE;
    position: absolute;
    left: 0px;
    padding: 0px;
    top: 0;
    width: 28px;
    height: 27px;
    box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, .6);
    border-right: 1px solid black;
    border-bottom: 1px solid black;
}

.termblock {
    position: absolute;
    left: 0px;
    padding: 0px;
    top: 30px;
    min-width: 100%;
    min-height: 79px !important;
    max-height: 79px !important;
}

.termblock a {
    text-decoration: none;
    color: black;
}

#tertab {
    margin: 0 auto;
    width: 95%;
}

#end_date_tr {
    display: none;
}
#color_tr {
    display: none;
}

.weekend {
    background-color: #BBB !important;
    background-clip: padding-box;
}
#tertab,#tertab tr,#tertab td, #tertab.weekend {
    border: 1px solid black;
}

#termin {
    height: 120px;
    width: 120px;
    background-color: white;
    transition: all .8s linear;
    background-image: url(../images/kal.jpg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    padding: 10px;
}
.trtitle {
    text-align: center;
}




#askxweeks {
    display: none;
}

#xweeks {
    display: none;
}

#repeatdays {
    display: none;
}
#repeat_end_date_tr {
    display: none;
}
#askxmonths {
    display:none;
}
#xmonths {
    display: none;
}

#tr_repeat_month_nr {
    width: 50px;
}

#tr_repeat_day_nr {
    width: 50px;
}

#option1 {
    background-color: #f0cece !important;
}
#option2 {
    background-color: #f0e3ce !important;
}
#option3 {
    background-color: #eef0ce !important;
}
#option4 {
    background-color: #def0ce !important;
}
#option5 {
    background-color: #cef0e5 !important;
}
#option6 {
    background-color: #cee8f0 !important;
}
#option7 {
    background-color: #ced6f0 !important;
}
#option8 {
    background-color: #e1cef0 !important;
}
#option9 {
    background-color: #f0cee2 !important;
}
#option10 {
    background-color: #d9c7a5 !important;
}
#option11 {
    background-color: #d9a5cf !important;
}
#option12 {
    background-color: #a6a5d9 !important;
}

.today {
    border: 2px solid red !important;
}

.location {
    float: left;
    padding-right: 20px;
}
.trminfo {
    width: 28px;
    height: 21px;
    background-color: red;
    float:left;
    text-align: center;
    font-weight: bold;
    border: 1px solid white;
    color: white;
    font-size: 14px;
    padding-bottom: 3px !important;
}
.mytool {
    font-size: 14px;
}

.mknew {
    text-align: center;
    background-color: #EEE;
    position: absolute;
    left: 35px;
    padding: 0px;
    top: 0;
    width: 30px;
    height: 27px;
    box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, .6);
    border-right: 1px solid black;
    border-bottom: 1px solid black;
}

.time {
    text-align: center;
}

#vthead {
    background-color: #666;
    color:white !important;
    font-weight: bold;
}





/* Default button size (for larger screens) */
.btn-responsive {
    font-size: 16px;  /* Default size */
    padding: 10px 20px; /* Larger padding for bigger screens */
}

/* On smaller screens, reduce button size */
@media (max-width: 768px) {
    .btn-responsive {
        font-size: 14px;  /* Smaller font size */
        padding: 3px 12px; /* Smaller padding */
    }
}

/* On very small screens (mobile), further reduce button size */
@media (max-width: 480px) {
    .btn-responsive {
        font-size: 12px;  /* Even smaller font size */
        padding: 3px 12px; /* Even smaller padding */
    }
}

#demo {
    display: inline;
    font-weight: bold;
    color: white;
    text-align: center;
    padding: 5px;
    position: relative;
    text-shadow: 0 0 5px red;
    animation: pulse 1.5s infinite ease-in-out;
}

/* Pulsing effect animation */
@keyframes pulse {
    0% {
        text-shadow:
            0 0 5px red,
            0 0 7px red,
            0 0 8px red,
            0 0 10px red,
            0 0 12px red,
            0 0 14px red,
            0 0 16px red;
        opacity: 1;
    }
    50% {
        text-shadow:
            0 0 5px red,
            0 0 10px red,
            0 0 15px red,
            0 0 20px red,
            0 0 25px red,
            0 0 30px red,
            0 0 35px red;
        opacity: 1;
    }
    100% {
        text-shadow:
            0 0 5px red,
            0 0 7px red,
            0 0 8px red,
            0 0 10px red,
            0 0 12px red,
            0 0 14px red,
            0 0 16px red;
        opacity: 1;
    }
}

.cardh1 {
    text-align: center;
}
.carddiv {
    display: flex;
    align-items: center;
    gap: 10px;  /* Space between image and text */
}


.scfoto {
    width: 10%;            /* Adjust image size */
    flex-shrink: 0;        /* Prevent image from shrinking */
}


#close {
    color: red;
    font-size: 15px;
    cursor: pointer;
}
.edfield {
    min-width: 260px;
}

/*new stuff*/
#tabcontent {
    max-width: 80%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.myPagination {
    text-align: center;
    padding: 10px 0;
}

/* Style for individual page numbers */
.pages {
    display: inline-block;
    margin: 0 5px;
    padding: 5px 10px;
    background-color: #fe0000;
    color: #000;
    cursor: pointer;
    border-radius: 5px;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

/* Hover effect for page numbers */
.pages:hover {
    background-color: #000;
    color: white;
}

/* Style for the current page */
.pages.current {
    background-color: #000;
    color: white;
    pointer-events: none;
}

/* Optional: Style for disabled or unclickable page numbers */
.pages.disabled {
    color: #ccc;
    cursor: not-allowed;
}

nav {
    z-index: 99;
    display: flex;
    justify-content: space-between; /* Space out the center and right nav */
    align-items: center; /* Align items in the center vertically */
    color: black;
    position: sticky;
    top: 0;
    background-color: white;
    min-height: 70px;
    height: auto;
    font-family: Arial, sans-serif;
    margin-top: 10px;
    border-bottom: 1px solid black;
    margin-top: 0px !important;
}
@media (min-width: 1200px) {
    nav::after {
        content: '';
        position: absolute;
        top: 70px; /* push above the box */
        left: 0;
        width: 100%;
        height: 10px; /* controls shadow height */
        background: linear-gradient(to bottom, rgba(0,0,0,.3), rgba(0,0,0,0.0));
        z-index: -1; /* place it behind the box */
    }
}

@keyframes rainbow-glow {
    0% {
        background: linear-gradient(to bottom, rgba(255,0,0,0.4), rgba(0,0,0,0));
    }
    20% {
        background: linear-gradient(to bottom, rgba(255,165,0,0.4), rgba(0,0,0,0));
    }
    40% {
        background: linear-gradient(to bottom, rgba(255,255,0,0.4), rgba(0,0,0,0));
    }
    60% {
        background: linear-gradient(to bottom, rgba(0,128,0,0.4), rgba(0,0,0,0));
    }
    80% {
        background: linear-gradient(to bottom, rgba(0,0,255,0.4), rgba(0,0,0,0));
    }
    100% {
        background: linear-gradient(to bottom, rgba(255,0,255,0.4), rgba(0,0,0,0));
    }
}
@keyframes rainbow-glow2 {
    0% {
        background: linear-gradient(to top, rgba(255,0,0,0.4), rgba(0,0,0,0));
    }
    20% {
        background: linear-gradient(to top, rgba(255,165,0,0.4), rgba(0,0,0,0));
    }
    40% {
        background: linear-gradient(to top, rgba(255,255,0,0.4), rgba(0,0,0,0));
    }
    60% {
        background: linear-gradient(to top, rgba(0,128,0,0.4), rgba(0,0,0,0));
    }
    80% {
        background: linear-gradient(to top, rgba(0,0,255,0.4), rgba(0,0,0,0));
    }
    100% {
        background: linear-gradient(to top, rgba(255,0,255,0.4), rgba(0,0,0,0));
    }
}

@media (min-width: 1200px) {
    nav.gimmick-glow::after {
        animation: rainbow-glow 3s linear infinite;
    }
}


.nav-center {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center; /* horizontally center items inside */
}

.nav-right {
    display: flex;
    flex-direction: column; /* stack .nav-row blocks vertically */
    gap: 5px;
    align-items: flex-end;
    position: relative;
    margin-right: 20px;
}

.nav-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.nav-link {
    color: black;
    text-decoration: none;
    padding: 2px 4px;
    position: relative;
    font-weight: bold;
}

.nav-link:hover {
    color: red;
}

.nav-link::after {
    content: '';
    display: block;
    width: 0;
    height: 2px;
    background: red;
    transition: width 0.3s;
    position: absolute;
    bottom: 0;
    left: 0;
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

.hamburger {
    display: none;
    font-size: 24px;
    background: none;
    border: none;
    cursor: pointer;
    position: absolute;
    top: 15px;
    right: 20px;
    z-index: 1001;
}

@media (max-width: 1200px) {
    .hamburger {
        display: block;
    }

    .nav-center,
    .nav-right {
        display: none; /* hide by default */
        flex-direction: column;
        width: 50%;
        box-sizing: border-box;
        background: white;
        padding: 10px;
        border-top: 1px solid #ccc;
    }

    .nav-center.show,
    .nav-right.show {
        display: flex; /* show only when toggled */
    }

    nav {
        flex-direction: row;       /* keep side by side */
        align-items: flex-start;   /* align children to top */
        height: auto;
        min-height: 70px;
    }
    .nav-row {
        flex-direction: column;
        align-items: center;
        width: 100%;
    }
    #tabcontent {
        max-width: 100%;
    }
    #content {
        padding: 0px;
    }
}

.nav-right .nav-text {
    display: inline;
}

@media (max-width: 1350px) and (min-width: 1201px) {
    .nav-right .nav-icon {
        display: inline;
    }
    .nav-right .nav-text {
        display: none;
    }

    .user-row {
        display: none !important;
    }

}


@media (max-width: 1600px) {
    #tabcontent {
        max-width: 100%;
    }
    #content {
        padding: 0px;
    }
}






.user-info {
    font-weight: bold;
    margin-left: 10px;
    white-space: nowrap;
}

/* Responsive tweak */

.auswertung-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    justify-content: center; /* or space-between/space-around if needed */
}

.auswertung-wrapper fieldset {
    flex: 1 1 32%; /* two fieldsets per row */
    min-width: 300px; /* fallback for narrow screens */
    box-sizing: border-box;
    background-color: #ccc;
    font-weight: 550;
}
.category-header {
    flex-basis: 100%;  /* full width */
    font-weight: bold;
    font-size: 1.2rem;
    margin: 1rem 0 0.5rem;
    padding-left: 8px;
    border-bottom: 2px solid #333;
}
.btn-red {
    float: right;
    background-color: #fe0000;
    color: black;
    padding: 4px 16px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: bold;
    display: inline-block;
}
.edssave {
    background: url(../images/disk.png) no-repeat left center;
    background-size: 16px 16px;
    background-position: 4px center; /* key part: push icon right */
    background-size: 16px 16px;
    padding-left: 25px !important; /* creates space for the icon + margin */
}

.edsdel {
    background: url(../images/trash2.png) no-repeat left center;
    background-size: 16px 16px;
    background-position: 4px center; /* key part: push icon right */
    background-size: 16px 16px;
    padding-left: 25px !important; /* creates space for the icon + margin */
}

.edsmail {
    background: url(../images/mail2.png) no-repeat left center;
    background-size: 16px 16px;
    background-position: 4px center; /* key part: push icon right */
    background-size: 16px 16px;
    padding-left: 25px !important; /* creates space for the icon + margin */
}

.edsantrag {
    background: url(../images/antrag.png) no-repeat left center;
    background-size: 16px 16px;
    background-position: 4px center; /* key part: push icon right */
    background-size: 16px 16px;
    padding-left: 25px !important; /* creates space for the icon + margin */
}
.edsantragneu {
    background: url(../images/antrag_neu.png) no-repeat left center;
    background-size: 16px 16px;
    background-position: 4px center; /* key part: push icon right */
    background-size: 16px 16px;
    padding-left: 25px !important; /* creates space for the icon + margin */
}

.btn-red:hover {
    background-color: darkred;
    color: white;
}


/*Nachrichten System*/
.nav-icon.mail-icon {
    position: relative;
    display: inline-block;
}

.nav-icon.mail-icon .badge {
    position: absolute;
    top: -6px;
    right: -6px;
    background: red;
    color: white;
    font-size: 12px;
    font-weight: bold;
    padding: 2px 6px;
    border-radius: 50%;
    line-height: 1;
    min-width: 18px;
    text-align: center;
    box-shadow: 0 0 2px rgba(0,0,0,0.3);
}

#messages {
    min-width: 60%;
    max-width: 60%;
    margin: 0 auto;
    font-family: Arial, sans-serif;
    color: #000; /* black text */
}

h4 {
    border-bottom: 2px solid #cc0000; /* red */
    padding-bottom: 6px;
    color: #cc0000; /* red */
    margin-top: 40px;
}

.messages-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 700px;
    margin: 40px auto 20px;
}

.message {
    background: #fff; /* white background */
    border: 1px solid #cc0000; /* red border */
    border-radius: 6px;
    padding: 12px 15px;
    margin: 12px 0;
    box-shadow: 0 2px 5px rgb(0 0 0 / 0.1); /* subtle black shadow */
}

.message.unread {
    border-color: #cc0000; /* red */
    background: #ffe6e6; /* very light red background for unread */
}

.message-text,
.message-actions {
    display: none;
    margin-top: 10px;
}

.message-header {
    cursor: pointer;
    position: relative;
    padding-right: 20px;
}

.message-header::after {
    content: '▶';
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    font-size: 0.9em;
}

.message-header.active::after {
    content: '▼';
}

.message-actions a {
    font-size: 0.9em;
    color: #cc0000; /* red links */
    text-decoration: none;
    padding: 5px 10px;
    border: 1px solid transparent;
    border-radius: 4px;
    transition: background-color 0.2s ease;
}

.message-actions a:hover {
    background-color: #cc0000; /* red background on hover */
    color: white; /* white text on hover */
    border-color: #cc0000;
}



.btn-compose {
    background-color: #e60000; /* red */
    color: white;
    padding: 6px 14px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: bold;
    border: none;
    transition: background-color 0.2s ease;
    font-size: 0.9em;
}
.green {
    background-color: #008800;
}
.black {
    background-color: #000;
}
.special {
    background-color: #e60000; /* red */
    color: white;
    padding:2px 6px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: bold;
    border: none;
    transition: background-color 0.2s ease;
    font-size: 0.9em;
}


.btn-compose:hover {
    background-color: #b30000;
    color: white;
    cursor: pointer;
}

#compose-form {
    max-width: 700px;
    margin: 20px auto;
    font-family: Arial, sans-serif;
    background: #fff;
    border: 1px solid #000;       /* black border */
    border-radius: 6px;
    padding: 20px 25px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

#compose-form h3 {
    color: #000; /* black heading */
    margin-bottom: 20px;
    border-bottom: 2px solid #000;
    padding-bottom: 8px;
}

#compose-form label {
    display: block;
    font-weight: bold;
    margin-bottom: 8px;
    color: #222;
}
#compose-form input,
#compose-form select,
#compose-form textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #000;
    border-radius: 4px;
    font-size: 1em;
    font-family: Arial, sans-serif;
    color: #000;
    margin-bottom: 20px;
    background-color: #fff;
    resize: vertical;
}

#compose-form textarea {
    min-height: 120px;
}

#compose-form button[type="submit"] {
    background-color: #000;  /* black button */
    color: #fff;             /* white text */
    padding: 10px 18px;
    border: none;
    border-radius: 4px;
    font-size: 1em;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

#compose-form button[type="submit"]:hover {
    background-color: #cc0000; /* red hover */
}

#footerdiv {
    z-index: 10;
    text-align: right;
    padding-right: 5px;
}
/* ===== END OF new.css ===== */

/* ===== START OF newframe.css ===== */
.navbar {
    position:relative;
    width: 100%;
    z-index: 90;
}





#status {
    position:absolute;
}

#status p {
    margin: 0;
    padding: 0;
}

#statusicon {
    float: left;
    width: 40%;
    height: 100%;
    display:flex;
}
#statusicon img {
    margin:auto 0;
    width: 50%;
}

#statustext {
    margin: auto 0;
    left: 30%;
    position: absolute;
    top: 36%;
    vertical-align: middle;
}

@keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes fadeout {
    from { opacity: 1; }
    to   { opacity: 0; }
}


#formtable th {
    font-weight: bold;
    padding-right: 10px;
    text-align: left;
}

#formtable td:nth-child(1) {
    font-weight: bold;
    text-align: left;
}

#formtable tr:nth-child(even) {
    color: black;
    text-align: left;
}

#formtable tr:nth-child(odd) {
    color: black;
    text-align: left;
}


#prtable {
    margin: 0 auto;
    font-size: 14px !important;
}

#prtable tr:nth-child(even):not(.footer-row) {
    background-color: #cccccc;
    color: black;
}

#prtable tr:nth-child(odd):not(.footer-row) {
    background-color: gray;
    color: black;
}

#prtable tr:nth-child(n+2):not(.footer-row):hover {
    box-shadow: inset 0 0 100px 100px rgba(255, 255, 255, 0.6) !important;
}
#prtable tr:nth-child(1n+2):not(.footer-row):hover {
    box-shadow: inset 0 0 100px 100px rgba(255, 255, 255, 0.4) !important;
}

/* Optional: explicitly style the footer row to be neutral */

#prtable th {
    background-color: #fe0000;
    color: white;
    font-size: 15px;
}

#prtable th a {
    color: white !important;
}

#prtable th, #prtable td {
    text-align: left;
    padding: 0 8px;
    border-right: 1px solid white;
}


#prtable td {
    max-width: 290px;
    font-size: 15px;

}

#prtable tr.footer-row {
    background: none;
    box-shadow: none;
}



#maxresults {
    background-color: black !important;
}

option{
    width: 180px;
}

a, a:hover, a:active {
    text-decoration: none;
    color: blue;
}

#delform {
    display: inline-block;
}

#welcome {
    position: fixed;
    color: #e30514;
    top: 300px;
    width: 100%;
    text-align: center;
}

#welcome img {
    width:100%;
}
#schlr {
    background-color:#000000 !important;
    font-weight: bold !important;
    text-align: center !important;
    font-size: 16px !important;
}

#btrz {
    background-color:#0071Ae !important;
    font-weight: bold !important;
    text-align: center !important;
    font-size: 16px !important;
}


/*new stuff*/
.newtable {
    min-width: 100%;
}
.newtable tr td {
    padding: 5px 0 5px 5px !important;
}
/* ===== END OF newframe.css ===== */
#signature {
    max-width: 600px;
    margin: 40px auto !important;     /* centers horizontally */
    text-align: left !important;     /* prevents everything from being centered */
}
.checkbox-option {
    transform: scale(2.2) !important;      /* fingerprint-sized */
    margin-right: 12px !important;
    margin-top: 8px !important;
    cursor: pointer !important;
}
.checkbox-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
    cursor: pointer;
    font-size: 18px;
}

.checkbox-option {
    transform: scale(2.2);
    cursor: pointer;
}
