/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
    --gold:#b8860b;--gold-d:#8b6914;--gold-l:#fef9e7;
    --blue:#2c5282;--blue-d:#1a365d;--blue-l:#ebf4ff;
    --green:#276749;--green-bg:#c6f6d5;
    --yellow:#744210;--yellow-bg:#fefcbf;
    --red:#742a2a;--red-bg:#fed7d7;
    --orange:#7b341e;--orange-bg:#feebc8;
    --g100:#f7fafc;--g200:#edf2f7;--g300:#e2e8f0;--g400:#cbd5e0;
    --g500:#718096;--g700:#4a5568;--g900:#1a202c;
    --r:8px;--sh:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);
    --sh2:0 4px 6px rgba(0,0,0,.07),0 2px 4px rgba(0,0,0,.05);
    --inp-h:40px;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;color:var(--g900);background:#f0f2f5;line-height:1.5;}
a{color:var(--blue);text-decoration:none;}
a:hover{text-decoration:underline;}

/* ===== NAVBAR ===== */
.navbar{background:linear-gradient(135deg,#1a365d 0%,#2c5282 100%);display:flex;align-items:center;padding:0 20px;height:58px;position:sticky;top:0;z-index:200;box-shadow:0 2px 8px rgba(0,0,0,.2);gap:16px;}
.nav-brand{flex-shrink:0;}
.logo-text{font-family:Georgia,serif;font-size:19px;color:rgba(255,255,255,.7);}
.logo-text strong{color:#f6d860;font-style:italic;font-size:23px;}
.nav-brand:hover{text-decoration:none;}
.nav-links{display:flex;gap:2px;flex:1;}
.nav-links a{color:rgba(255,255,255,.78);padding:6px 14px;border-radius:6px;font-size:13px;transition:background .12s;}
.nav-links a:hover,.nav-links a.active{background:rgba(255,255,255,.18);color:#fff;text-decoration:none;}
.nav-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.nav-username{color:rgba(255,255,255,.7);font-size:12px;white-space:nowrap;}
.nav-toggle{display:none;background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:4px 8px;}

/* ===== CONTAINER ===== */
.container{max-width:1500px;margin:0 auto;padding:22px 20px;}

/* ===== WIDGETS ===== */
.widget-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;}
.widget{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:20px 24px;border-left:4px solid var(--gold);}
.widget-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g500);margin-bottom:10px;}
.widget-val{font-size:26px;font-weight:700;color:var(--g900);line-height:1.3;}
.widget-val small{font-size:12px;font-weight:400;color:var(--g500);display:block;margin-top:2px;}
.text-warn{color:#c53030;}
.progress{background:var(--g200);border-radius:4px;height:8px;margin-top:10px;}
.progress-bar{background:linear-gradient(90deg,var(--gold),#f6c90e);border-radius:4px;height:8px;transition:width .4s;}

/* ===== CARDS ===== */
.card{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:22px;margin-bottom:18px;}
.card h3{font-size:15px;font-weight:600;color:var(--blue);margin-bottom:16px;}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:5px;padding:0 16px;height:38px;border-radius:var(--r);font-size:13px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .12s;white-space:nowrap;text-decoration:none;line-height:1;}
.btn:hover{text-decoration:none;filter:brightness(.94);}
.btn-primary{background:var(--gold);color:#fff;border-color:var(--gold-d);}
.btn-primary:hover{background:var(--gold-d);color:#fff;}
.btn-outline{background:#fff;color:var(--blue);border-color:var(--g300);}
.btn-outline:hover{background:var(--g100);}
.btn-outline-white{background:transparent;color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.4);font-size:12px;height:32px;padding:0 12px;}
.btn-outline-white:hover{background:rgba(255,255,255,.15);color:#fff;}
.btn-sm{height:32px;padding:0 12px;font-size:12px;}
.btn-xs{height:28px;padding:0 9px;font-size:11px;border-radius:4px;border:1px solid var(--g300);color:var(--g700);background:#fff;}
.btn-xs:hover{background:var(--g100);}
.btn-block{width:100%;justify-content:center;}

/* ===== BADGES ===== */
.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;}
.badge-bestaetigt{background:var(--green-bg);color:var(--green);}
.badge-angefragt{background:var(--yellow-bg);color:var(--yellow);}
.badge-storniert{background:var(--red-bg);color:var(--red);}
.badge-vtg-gray{background:var(--g200);color:var(--g500);}
.badge-vtg-blue{background:#bee3f8;color:#2b6cb0;}
.badge-vtg-green{background:var(--green-bg);color:var(--green);}
.badge-vtg-red{background:var(--red-bg);color:var(--red);}

/* ===== STATUS INDIKATOR ===== */
.indikator{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:700;cursor:default;}
.indikator-gruen{background:#c6f6d5;color:#276749;}
.indikator-gelb{background:#fefcbf;color:#744210;}
.indikator-rot{background:#fed7d7;color:#c53030;}
.indikator-grau{background:#e2e8f0;color:#718096;}
.indikator-legende{display:flex;flex-wrap:wrap;gap:16px;padding:12px 16px;background:#f7fafc;border-radius:var(--r);font-size:12px;color:var(--g700);margin-top:8px;align-items:center;}
.indikator-legende span{display:flex;align-items:center;gap:6px;}

/* ===== ALERTS ===== */
.alert{padding:12px 16px;border-radius:var(--r);margin-bottom:14px;font-size:13px;}
.alert-error{background:var(--red-bg);color:var(--red);border-left:4px solid #e53e3e;}
.alert-success{background:var(--green-bg);color:var(--green);border-left:4px solid #38a169;}
.alert-info{background:var(--blue-l);color:var(--blue);border-left:4px solid var(--blue);}
.alert-warning{background:var(--orange-bg);color:var(--orange);border-left:4px solid #dd6b20;}

/* ===== PAGE HEADER ===== */
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:10px;}
.page-header h2{font-size:20px;font-weight:700;}

/* ===== FORMS ===== */
.form-buchung fieldset{border:1px solid var(--g300);border-radius:var(--r);padding:18px;margin-bottom:16px;}
.form-buchung legend{padding:0 8px;font-weight:700;color:var(--gold-d);font-size:11px;text-transform:uppercase;letter-spacing:.06em;}
.form-row{display:flex;gap:14px;flex-wrap:wrap;}
.form-row+.form-row{margin-top:12px;}
.form-group{flex:1;min-width:160px;display:flex;flex-direction:column;gap:5px;}
.fg-sm{flex:0 0 155px;min-width:130px;}
.fg-xs{flex:0 0 105px;min-width:90px;}
.form-group label{font-size:11px;font-weight:700;color:var(--g700);text-transform:uppercase;letter-spacing:.04em;}
input[type=text],input[type=email],input[type=tel],input[type=date],
input[type=number],input[type=password],input[type=search],select,textarea{
    width:100%;height:var(--inp-h);padding:0 11px;
    border:1px solid var(--g400);border-radius:6px;
    font-size:14px;color:var(--g900);background:#fff;
    transition:border-color .12s,box-shadow .12s;font-family:inherit;
}
textarea{height:auto;padding:9px 11px;resize:vertical;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,134,11,.12);}
input[readonly],input[disabled],select[disabled]{background:var(--g100);color:var(--g500);}
input[type=file]{height:auto;padding:9px 11px;border-style:dashed;}
.form-actions{display:flex;justify-content:space-between;align-items:center;padding-top:16px;flex-wrap:wrap;gap:10px;}
.meta-info{font-size:12px;color:var(--g500);}
.check-label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;}
.check-label input{width:auto;height:auto;}

/* ===== PREIS BOX ===== */
.preis-box{background:var(--gold-l);border:1px solid #f0d070;border-radius:var(--r);padding:16px 18px;margin-top:14px;}
.preis-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;border-bottom:1px solid #f0d07055;}
.preis-row:last-child{border-bottom:none;}
.preis-total{font-weight:700;font-size:16px;color:var(--gold-d);padding-top:10px;border-top:2px solid var(--gold)!important;border-bottom:none!important;}

/* ===== TABLES ===== */
.table{width:100%;border-collapse:collapse;}
.table th{background:var(--g100);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--g500);padding:10px 12px;text-align:left;border-bottom:2px solid var(--g200);}
.table td{padding:10px 12px;border-bottom:1px solid var(--g200);vertical-align:middle;font-size:13px;}
.table td small{color:var(--g500);font-size:11px;display:block;margin-top:1px;}
.table-hover tr:hover td{background:var(--gold-l);}
.row-stor td{opacity:.45;}

/* ===== FILTER ===== */
.filter-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;}
.filter-form input,.filter-form select{height:38px;font-size:13px;flex:1;min-width:130px;max-width:210px;}
.filter-form .btn{height:38px;}

/* ===== KALENDER ===== */
.kalender-nav{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.kalender-titel{font-size:18px;font-weight:700;color:var(--gold-d);min-width:180px;text-align:center;}
.kalender-wrap{overflow-x:auto;background:#fff;border-radius:var(--r);box-shadow:var(--sh);margin-bottom:12px;}
.kalender{border-collapse:collapse;min-width:900px;width:100%;}
.kalender th,.kalender td{border:1px solid var(--g200);}
.kalender thead th{background:linear-gradient(135deg,#1a365d,#2c5282);color:#fff;font-size:12px;padding:6px 2px;text-align:center;min-width:32px;}
.kalender .wohnung-col{min-width:155px;text-align:left;padding-left:10px;}
.kalender .tn{display:block;font-size:13px;}
.kalender .tw{display:block;font-size:10px;opacity:.7;}
.kalender thead th.heute{background:#c53030!important;}
.kalender thead th.we{background:#4a5568!important;}
.kalender .haus-hdr td{background:var(--gold-l);font-weight:700;color:var(--gold-d);font-size:12px;padding:6px 10px;}
.kalender .wn{padding:0 10px;font-size:13px;background:var(--g100);white-space:nowrap;}
.kalender td.frei{background:#fff;}
.kalender td.bel{background:#bee3f8;}
.bl{font-size:11px;white-space:nowrap;overflow:hidden;display:block;font-weight:600;}
.wo-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle;flex-shrink:0;}

/* ===== LEGENDE ===== */
.legende{display:flex;flex-wrap:wrap;gap:0;margin:8px 0 16px;padding:14px 20px;background:#fff;border-radius:var(--r);box-shadow:var(--sh);justify-content:space-between;}
.legende-item{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--g700);flex:1;min-width:150px;padding:4px 0;}
.legende-dot{display:inline-block;width:14px;height:14px;border-radius:3px;flex-shrink:0;}

/* ===== JAHRESANSICHT ===== */
.mini-kal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;}
.mini-kal-card{background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;}
.mini-kal-header{background:linear-gradient(135deg,#1a365d,#2c5282);color:#fff;text-align:center;padding:10px;font-weight:600;font-size:14px;}
.mini-kal-header a{color:#fff;text-decoration:none;}
.mini-kal-header a:hover{text-decoration:underline;}
.mini-kal-table{width:100%;border-collapse:collapse;font-size:13px;}
.mini-kal-table th{text-align:center;padding:5px 2px;font-size:11px;color:var(--g500);font-weight:600;background:var(--g100);}
.mini-kal-table td{text-align:center;padding:4px 2px;border:1px solid var(--g200);line-height:1.5;}
.mini-kal-table td a{display:block;color:#fff;font-weight:600;border-radius:3px;text-decoration:none;padding:1px 0;}
.mini-kal-table td.mk-heute{background:#fff3cd;font-weight:700;}
.mini-kal-table td sup{font-size:9px;}
.mini-kal-footer{text-align:center;font-size:12px;color:var(--gold-d);padding:6px;border-top:1px solid var(--g200);background:var(--gold-l);font-weight:600;}

/* ===== DETAIL GRID ===== */
.detail-grid{display:grid;grid-template-columns:1fr 360px;gap:18px;align-items:start;}

/* ===== LOGIN ===== */
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a365d 0%,#2c5282 60%,#b8860b 100%);}
.login-box{background:#fff;padding:40px;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);width:100%;max-width:400px;}
.login-logo{text-align:center;margin-bottom:28px;}
.login-box .form-group{margin-bottom:14px;}
.login-box input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,134,11,.15);}
.login-box .btn-primary{background:var(--gold);border-color:var(--gold-d);}

/* ===== FOOTER ===== */
.site-footer{text-align:center;padding:16px;color:var(--g500);font-size:11px;margin-top:10px;}

/* ===== RESPONSIVE ===== */
@media(max-width:1100px){
    .mini-kal-grid{grid-template-columns:repeat(3,1fr);}
    .widget-row{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:900px){
    .detail-grid{grid-template-columns:1fr;}
    .mini-kal-grid{grid-template-columns:repeat(2,1fr);}
    .nav-username{display:none;}
}
@media(max-width:700px){
    .nav-links{display:none;position:absolute;top:58px;left:0;right:0;background:#1a365d;flex-direction:column;padding:8px;z-index:300;}
    .nav-links.open{display:flex;}
    .nav-toggle{display:block;}
    .container{padding:12px 10px;}
    .form-row{flex-direction:column;}
    .form-group,.fg-sm,.fg-xs{flex:1 1 100%;min-width:100%;}
    .mini-kal-grid{grid-template-columns:1fr 1fr;gap:10px;}
    .widget-row{grid-template-columns:1fr 1fr;}
    .card{padding:16px;}
    .legende{justify-content:flex-start;}
}
