/* --- Tabellen-Styles (ehemals ascii-table, jetzt generic-table) --- */
.table-scroll-x {
  width: 100%;
  overflow-x: auto;
}
.generic-table {
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 12px;
}
.generic-table th, .generic-table td {
  border: 1px solid #ddd;
  padding: 6px 8px;
}
.generic-table th {
  background-color: #9ebd00;
  color: white;
  font-weight: bold;
}
.generic-table td:first-child, .generic-table th:first-child {
  position: sticky;
  left: 0;
  background: #f8f9fa;
  z-index: 2;
  text-align: center;
  font-weight: bold;
}
.generic-table tr:nth-child(even) {
  background-color: #f9f9f9;
}
.generic-table tr:hover {
  background-color: #e8f4f8;
}
/* --------------- Einstellung für alle Elemente ---------------*/
html * { margin: 0; padding:0; }

/* --------------- Body ---------------*/
body { background-color: #444; text-align: center; font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif; color: #444; font-size: 12px; }

#cpage {width: 910px; margin: 0px auto 0px auto; text-align: left; }
#page {clear: both; float: left; width: 908px; margin: 20px 0px 5px 0px; padding: 1px; background-color: #fff; }

#cheader {position: relative;clear: both; float: left; width: 908px; height: 291px; border-top: 8px solid #ccc; background: url(../images/bg_cheader.jpg) left bottom no-repeat; }
#logo {float: left; width: 400px; height: 71px;}
#logo a{display: block; float: left; width: 400px; height: 71px; background: url(../images/LogoLang.png) left top no-repeat;}
#logo a span{display: none;}

#csearch{float: right; height: 47px; margin: 24px 20px 0px 0px;}
#searchform input.input {float: left; width: 260px; height: 20px; padding: 3px 0px 0px 30px; border: 1px solid #8d8d8d; border-right: none; background: url(../images/bg_searchinput.png) 5px center no-repeat;}
#searchform input.submit {padding: 0px;float: left;width: 57px; height: 25px; background: url(../images/bg_searchsubmit.png) left top no-repeat; border: none; color: #fff;}

#slogan {clear: both; float: right; margin: 84px 40px 20px 0px; height: 76px; width: 370px; color: #fff; overflow: hidden; text-align: right;}
#slogan h1 {font-size: 25px; font-weight: normal; text-transform: uppercase;}
#slogan p {line-height: 1.5em; }

#chm{position: relative;clear: both; float: left; }

#ccontent {clear: both; float: left; width: 908px; margin: 0px 0px 20px 0px; }

#srightmenue {clear: both; float: left; width: 15px; margin: 85px 25px 30px 29px;}
#brightmenue {clear: both; float: left; width: 200px; margin: 85px 25px 30px 29px;}
#rightmenue h2{font-size: 18px; text-transform: uppercase; font-weight: normal; margin: 0px 0px 0.75em 0px; }
#rightmenue ul{list-style-type: none; }
#rightmenue ul li{margin: 8px 0px 8px 0px; }
#rightmenue ul li a{padding: 0px 0px 0px 25px; background: url(../images/p_grey.png) left 3px no-repeat; color: #444; text-decoration: none;}
#rightmenue ul li a:hover{background: url(../images/p_black.png) left 3px no-repeat; color: #7F7F7F;}
#rightmenue ul li a.active:hover, #rightmenue ul li a.active{background: url(../images/pointer.png) left 3px no-repeat; color: #9EBD00;}


#bcontent {float: left; width: 740px; margin: 45px 0px 30px 0px; line-height: 1.5em;}
#scontent {float: left; width: 605px; margin: 45px 0px 30px 0px; line-height: 1.5em;}
#content h1{font-size: 24px; text-transform: uppercase; font-weight: normal; color: #9EBD00; margin: 0px 0px 20px 0px; }
#content h2{font-size: 18px; text-transform: none; font-weight: normal; color: #9EBD00; margin: 0px 0px 10px 0px; }
#content h3{font-size: 14px; text-transform: none; font-weight: bold; color: #444; border-left: 5px solid #9EBD00; margin: 0px 0px 10px 0px; padding: 0px 0px 0px 5px; }
#content h4{font-size: 12px; text-transform: none; font-weight: bold; color: #444; border-bottom: 1px solid #9EBD00; margin: 0px 0px 10px 0px; }
#content h1 span{color: #444;}
#content p {margin: 0px 0px 1.5em 0px; }
#content a {color: #9EBD00; }
#content img {float: left; margin: 0px 10px 10px 0px; padding: 3px; border: 1px solid #ccc;}

#content ul {margin: 10px 0px 10px 30px; list-style-type: none; }
#content ul li {background: url(../images/pointer.png) left 3px no-repeat; padding: 0px 0px 0px 20px;font-weight: bold;}

#content ul.sitemap li li {background: url(../images/p_black.png) left 3px no-repeat; padding: 0px 0px 0px 20px;font-weight: bold; color: #444;}
#content ul.sitemap li li a {color: #444;}
#content ul.sitemap li li li {background: url(../images/p_grey.png) left 3px no-repeat; padding: 0px 0px 0px 20px;font-weight: bold;}
#content ul.sitemap li li li a {color: #666;}

#content ol {margin: 10px 0px 10px 50px; }

#cfooter {clear: both; float: left; width: 908px; color: #919191; margin: 0px 0px 20px 0px; }
#topmenue {float: left; font-size: 9px; }
#topmenue ul {list-style-type: none; }
#topmenue ul li{float: left; border-right: 1px solid #919191; }
#topmenue ul li a{color: #919191; padding: 0px 4px 0px 4px; text-decoration: none; }

#copyright {float: right; text-align: right; font-size: 9px;}
#copyright a {color: #919191; }
#copyright p.design {margin: 10px 0px 0px 0px; color: #6B6B6B;}
#copyright p.design a {color: #6B6B6B;}

/* ---------------Menü ---------------*/
.hm, .hm * { margin:0; padding:0; list-style:none; }

.hm { line-height:1.0; font-size: 11px; text-transform: uppercase; width: 780px; margin: 0px 0px 0px 99px; }
.hm > li > ul { position:absolute; width:180px; display:none; } /* Nur direkte Untermenüs sind versteckt */
.hm ul ul { position:absolute; width:180px; display:none; } /* Alle weiteren Verschachtelungen sind versteckt */
.hm ul li { width:100%; }
.hm li:hover { visibility:inherit; }
.hm li { float:left; position:relative; }
.hm a { display:block; position:relative; }

/* Untermenüs werden bei Hover angezeigt */
.hm li:hover > ul { display:block; position:absolute; left:0; top:100%; z-index:99; background:#333; }
.hm li li:hover > ul { display:block; position:absolute; left:100%; top:0; z-index:99; background:#333; }
.hm li li li ul { position:absolute; left:100%; top:0; display:none; }

.hm { float:left; }
.hm a, .hm a:visited  { color:#fff; }
.hm a:focus, .hm a:hover, .hm a:active { background:#444; outline:0; }

.hm li { width: 110px; min-height: 40px; text-align: center; }
.hm li a { padding: 15px 0px 0px 0px ; text-decoration:none; }
.hm li:hover, .hm li.sfHover { background:#444; outline:0; }

.hm li li { border-left: 1px solid #555; border-right: 1px solid #555; width: 100%; height: auto; background-color:#444; text-transform: none; text-align: left; margin-left: 0; }
.hm li li a {padding: 10px 10px 12px 10px; text-decoration:none; background: url(../image/bg_hm_subli.png) left bottom repeat-x #444; }
.hm li li a:hover { outline:0; background: url(../image/bg_hm_subli.png) left bottom repeat-x #333; }

.hm li li li { background-color:#444; padding-left: 15px; }

.hm a.sf-with-ul { padding-right: 2.25em; min-width:1px; }
.sf-sub-indicator { position:absolute; display:block; right:10px; top:-10px; width:10px; height:10px; text-indent: -999em; overflow:hidden; background:url('../img/arrows-ffffff.png') no-repeat -10px -100px; }

.hm li a .sf-sub-indicator { right: 10px; top:15px; background-position: 0 -100px; }
.hm li li a .sf-sub-indicator { right: 10px; top:10px; background-position: 0 -100px; }

a:focus > .sf-sub-indicator, a:hover > .sf-sub-indicator, a:active > .sf-sub-indicator, li:hover > a > .sf-sub-indicator, li.sfHover > a > .sf-sub-indicator { background-position: -10px -100px; }
.hm ul .sf-sub-indicator { background-position:  -10px 0; }
.hm ul a > .sf-sub-indicator { background-position:  0 0; }
.hm ul a:focus > .sf-sub-indicator, .hm ul a:hover > .sf-sub-indicator, .hm ul a:active > .sf-sub-indicator, .hm ul li:hover > a > .sf-sub-indicator, .hm ul li.sfHover > a > .sf-sub-indicator { background-position: -10px 0; }

/* --------------- Formulare ---------------*/
#kontaktform { clear: left; float: left; line-height: normal; margin: 0px 0px 10px 0px; padding: 0px 10px 10px 10px; }
#kontaktform label { clear: left; float: left; margin: 5px 4px 0px 0px; text-align: left; }
#kontaktform label.plabel { color: #444; font-weight: bold; }
#kontaktform input, #kontaktform select, #kontaktform textarea { float: left; margin: 5px 0px 0px 0px; border: 1px solid #dedede; }
#kontaktform select{ color: #333; }
#kontaktform input{ padding: 2px 4px 2px 4px; color: #333; }
#kontaktform textarea{ padding: 2px 4px 2px 4px; color: #333; }
#kontaktform input.submit { width: auto; float: right; margin: 10px 5px 0px 0px; padding: 2px 10px 2px 10px; background-color: #9EBD00; color: #fff; }
#kontaktform input.reset { width: auto; float: right; margin: 10px 10px 0px 0px; border: 1px solid #444; background-color: #444; padding: 2px 10px 2px 10px; color: #ccc; }

/* --------------- Einheitliche Formularfelder ---------------*/
.tool-form input[type="text"], 
.tool-form input[type="email"], 
.tool-form input[type="number"], 
.tool-form textarea {
    border: 1px solid #ccc;
    padding: 4px 6px;
    font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif;
    font-size: 12px;
    color: #444;
    background-color: #fff;
}

.tool-form input[type="text"]:focus, 
.tool-form input[type="email"]:focus, 
.tool-form input[type="number"]:focus, 
.tool-form textarea:focus {
    border-color: #9ebd00;
    outline: none;
}

.tool-form input[type="submit"] {
    background: linear-gradient(to bottom, #9ebd00 5%, #74880f 100%);
    background-color: #9ebd00;
    border: 1px solid #566316;
    color: #ffffff;
    font-family: Arial;
    font-size: 12px;
    font-weight: bold;
    padding: 6px 12px;
    cursor: pointer;
    text-decoration: none;
}

.tool-form input[type="submit"]:hover {
    background: linear-gradient(to bottom, #74880f 5%, #9ebd00 100%);
    background-color: #74880f;
}

/* --------------- Spenden Button ---------------*/
.DonateButton {
    background:linear-gradient(to bottom, #9ebd00 5%, #74880f 100%);
    background-color:#9ebd00;
    border-radius:20px;
    border:2px solid #566316;
    display:inline-block;
    cursor:pointer;
    color:#ffffff;
    font-family:Arial;
    font-size:16px;
    padding:8px 14px;
    text-decoration:none;
    text-shadow:2px 2px 0px #74880f;
}
.DonateButton:hover {
    background:linear-gradient(to bottom, #74880f 5%, #9ebd00 100%);
    background-color:#74880f;
}
.DonateButton:active {
    position:relative;
    top:1px;
}

/* --------------- Tool-spezifische Styles ---------------*/
.output-container {
    max-width: 800px;
    margin: 20px auto;
    word-wrap: break-word;
}

.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

.form-group input {
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

/* Button Styles für Tools */
.tool-button, button.tool-button, input[type="submit"], button {
    background-color: #9ebd00;
    color: white !important;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    text-decoration: none;
    display: inline-block;
}

.tool-button:hover, button.tool-button:hover, input[type="submit"]:hover, button:hover {
    background-color: #7a9600;
    color: white !important;
}

/* Meldungen */
.error {
    color: #d63638;
    background-color: #fcf0f1;
    border: 1px solid #d63638;
    padding: 10px;
    border-radius: 4px;
    margin: 10px 0;
}

.note {
    color: #8a6914;
    background-color: #fff8e5;
    border: 1px solid #8a6914;
    padding: 10px;
    border-radius: 4px;
    margin: 10px 0;
}

.success {
    color: #155724;
    background-color: #d4edda;
    border: 1px solid #c3e6cb;
    padding: 10px;
    border-radius: 4px;
    margin: 10px 0;
}

/* Tabellen für Tools */
.tool-table, table.tool-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}

.tool-table th, .tool-table td,
table.tool-table th, table.tool-table td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: left;
}

.tool-table th, table.tool-table th {
    background-color: #f5f5f5;
    font-weight: bold;
}

/* Textarea für Tools */
.tool-textarea, textarea.tool-textarea {
    font-family: 'Courier New', monospace;
    font-size: 12px;
    line-height: 1.4;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 10px;
    width: 100%;
    resize: vertical;
}

/* Info-Boxen */
.info-box {
    background-color: #f4f8e8;
    border: 1px solid #9ebd00;
    border-radius: 4px;
    padding: 15px;
    margin: 20px 0;
}

.info-box h3 {
    color: #9ebd00;
    margin-bottom: 10px;
    border: none;
    padding: 0;
}

.info-box ul {
    margin: 10px 0;
    padding-left: 20px;
}

.info-box ul li {
    background: none;
    padding: 0;
    font-weight: normal;
    list-style-type: disc;
}

/* Tool-spezifische H2 Überschriften */
.tool-content h2 {
    color: #9ebd00;
    border-bottom: 2px solid #9ebd00;
    padding-bottom: 5px;
    margin-top: 30px;
    margin-bottom: 15px;
}

/* Erweiterte Tool-Formulare */
.tool-form {
    max-width: 740px;
    margin: 20px 0;
}

.tool-form table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.tool-form td {
    padding: 4px;
    vertical-align: top;
}

.tool-form input[type="text"], 
.tool-form input[type="email"], 
.tool-form input[type="number"], 
.tool-form input[type="tel"], 
.tool-form input[type="url"], 
.tool-form textarea {
    border: 1px solid #ccc;
    padding: 4px 6px;
    font-family: Verdana, Tahoma, Helvetica, Arial, sans-serif;
    font-size: 12px;
    color: #444;
    background-color: #fff;
}

.tool-form input[type="text"]:focus, 
.tool-form input[type="email"]:focus, 
.tool-form input[type="number"]:focus, 
.tool-form input[type="tel"]:focus, 
.tool-form input[type="url"]:focus, 
.tool-form textarea:focus {
    border-color: #9ebd00;
    outline: none;
}

.tool-form input[type="submit"] {
    background: linear-gradient(to bottom, #9ebd00 5%, #74880f 100%);
    background-color: #9ebd00;
    border: 1px solid #566316;
    color: #ffffff;
    font-family: Arial;
    font-size: 12px;
    font-weight: bold;
    padding: 6px 12px;
    cursor: pointer;
    text-decoration: none;
}

.tool-form input[type="submit"]:hover {
    background: linear-gradient(to bottom, #74880f 5%, #9ebd00 100%);
    background-color: #74880f;
}

/* Submit-Button Zentrierung für Tool-Forms */
.tool-form td[colspan="2"] {
    text-align: center;
}

/* Erweiterte Tool-Ausgabe */
.tool-output {
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    padding: 15px;
    margin: 20px 0;
    border-radius: 4px;
    line-height: 1.6;
    font-family: Georgia, 'Times New Roman', serif;
}

/* Kleine Buttons (z.B. Counter-Buttons) */
button.small, .flex-container button {
    padding: 5px 10px;
    min-width: 30px;
    height: 30px;
    font-size: 12px;
}

.flex-container button {
    margin: 0 2px;
}

/* Minimale spezifische Styles für Password Strength Tool */
.mode-btn {
    padding: 10px 20px;
    margin-right: 10px;
    border: none;
    color: white;
    border-radius: 4px;
    cursor: pointer;
    background: #666;
}

.mode-btn.active {
    background: #007cba;
}

.strength-bar {
    width: 200px;
    height: 20px;
    background: #e0e0e0;
    border-radius: 10px;
    position: relative;
    overflow: hidden;
    display: inline-block;
    margin: 0 15px;
}

.strength-fill {
    height: 100%;
    border-radius: 10px;
    transition: width 0.3s;
}

.bruteforce-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    max-width: 800px;
    margin-top: 10px;
}

.bruteforce-card {
    padding: 15px;
    background: #f8f9fa;
    border-radius: 4px;
    border-left: 4px solid #6c757d;
}

.bruteforce-card.gaming { border-left-color: #007cba; }
.bruteforce-card.super { border-left-color: #dc3545; }
.bruteforce-card.quantum { border-left-color: #6f42c1; }

/* Radio Button Groups für Tools */
.radio-group {
    margin-bottom: 15px;
}

.radio-group strong {
    display: block;
    margin-bottom: 5px;
    color: #333;
}

.radio-label {
    display: block;
    margin: 3px 0;
    padding-left: 5px;
    cursor: pointer;
}

.radio-label input[type="radio"] {
    margin-right: 8px;
}