* { margin:0; padding:0; box-sizing:border-box; }
body {
    font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;
    background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);
    color:#e2e8f0; min-height:100vh; padding:2rem;
}
.container { max-width:1800px; margin:0 auto; }
.page-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1.5rem; flex-wrap:wrap; gap:1rem; }
h1 { font-size:2rem; font-weight:700; background:linear-gradient(135deg,#60a5fa,#3b82f6); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; margin-bottom:.2rem; }
.subtitle { color:#64748b; font-size:.9rem; }
.header-actions { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }

.btn { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .95rem; border-radius:.5rem; border:none; cursor:pointer; font-size:.82rem; font-weight:600; transition:all .15s; white-space:nowrap; }
.btn-primary { background:#3b82f6; color:#fff; } .btn-primary:hover { background:#2563eb; }
.btn-secondary { background:rgba(255,255,255,.08); color:#cbd5e1; border:1px solid rgba(255,255,255,.1); }
.btn-secondary:hover { background:rgba(255,255,255,.13); color:#fff; }
.edit-active { background:rgba(245,158,11,.15); color:#fcd34d; border-color:rgba(245,158,11,.3); }

/* ── Intervall-Dropdown ── */
.iv-wrap { position:relative; }
.iv-dropdown {
    position:absolute; top:calc(100% + .4rem); right:0; z-index:500;
    background:#1a2235; border:1px solid rgba(255,255,255,.1); border-radius:.75rem;
    box-shadow:0 12px 40px rgba(0,0,0,.5); padding:1rem; min-width:480px; max-width:95vw;
}
.iv-year-section { margin-bottom:1rem; }
.iv-year-section:last-child { margin-bottom:0; }
.iv-year-label { font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:#64748b; margin-bottom:.5rem; }
.iv-year-opts { display:flex; flex-direction:column; gap:.5rem; }
.iv-opt-group { display:flex; flex-wrap:wrap; gap:.3rem; align-items:center; }
.iv-group-title { font-size:.68rem; color:#475569; font-weight:600; width:100%; margin-bottom:.15rem; }
.iv-opt { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:.35rem; color:#94a3b8; cursor:pointer; font-size:.75rem; padding:.25rem .55rem; transition:all .12s; }
.iv-opt:hover { background:rgba(59,130,246,.15); border-color:rgba(59,130,246,.3); color:#93c5fd; }
.iv-opt.active { background:rgba(59,130,246,.2); border-color:rgba(59,130,246,.5); color:#60a5fa; font-weight:700; }

/* ── Margen-Grid ── */
.margen-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
@media(max-width:1400px) { .margen-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:800px)  { .margen-grid { grid-template-columns:1fr; } }

.margen-table-card {
    background:rgba(15,23,42,.75); border:1px solid rgba(255,255,255,.07);
    border-radius:.875rem; overflow:hidden; display:flex; flex-direction:column;
}
.mt-header { padding:.85rem 1.1rem; }
.mt-header-1 { background:linear-gradient(135deg,rgba(16,185,129,.15),rgba(16,185,129,.05)); border-bottom:1px solid rgba(16,185,129,.2); }
.mt-header-2 { background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(59,130,246,.05)); border-bottom:1px solid rgba(59,130,246,.2); }
.mt-header-3 { background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(245,158,11,.05)); border-bottom:1px solid rgba(245,158,11,.2); }
.mt-header-4 { background:linear-gradient(135deg,rgba(139,92,246,.15),rgba(139,92,246,.05)); border-bottom:1px solid rgba(139,92,246,.2); }
.mt-title { font-size:.95rem; font-weight:700; color:#f1f5f9; }
.mt-sub   { font-size:.72rem; color:#64748b; margin-top:.15rem; }
.mt-body  { padding:.6rem .9rem; flex:1; display:flex; flex-direction:column; gap:.15rem; }
.mt-result { padding:.65rem .9rem; background:rgba(0,0,0,.25); border-top:1px solid rgba(255,255,255,.06); display:flex; flex-direction:column; gap:.15rem; }

.mt-row { display:flex; justify-content:space-between; align-items:center; gap:.5rem; padding:.2rem 0; }
.mt-row-input { padding:.15rem 0; }
.mt-row-sum { padding-top:.4rem; margin-top:.1rem; }
.mt-row-sep { border-top:1px solid rgba(255,255,255,.06); margin-top:.3rem; padding-top:.4rem; }
.mt-label { font-size:.76rem; color:#94a3b8; flex-shrink:0; max-width:55%; }
.mt-val   { font-size:.82rem; color:#e2e8f0; text-align:right; }
.mt-sum   { font-size:.85rem; font-weight:700; color:#f1f5f9; }
.mt-inherited { font-size:.8rem; color:#64748b; font-style:italic; }
.mt-divider { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#334155; padding:.4rem 0 .15rem; margin-top:.2rem; }
.mt-gewinn { font-size:1.1rem; font-weight:800; }
.mt-marge  { font-size:.92rem; font-weight:700; }
.pos { color:#34d399; }
.neg { color:#f87171; }

.mf-input {
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12);
    border-radius:.35rem; color:#e2e8f0; font-size:.8rem; padding:.25rem .5rem;
    text-align:right; width:110px; font-family:inherit; transition:border-color .15s;
}
.mf-input:focus { outline:none; border-color:rgba(59,130,246,.5); }
.mf-locked { background:rgba(255,255,255,.03); border-color:transparent; cursor:default; color:#64748b; }
.mt-optional-hidden { display:none; }
