/**
 * RechtOS — Admin CSS v1.4.1
 * CI: #3B3B5C, Inter 400–800
 * Design-Sprache: OS Suite (dark sidebar, Inter, clean)
 * @copyright (C) jens-richter.com — OS Suite
 */

:root {
    --ro: #3B3B5C; --ro-dark: #2A2A44; --ro-light: #EDEDF3; --ro-50: #F5F5FA;
    --ro-bg: #F8FAFC; --ro-card: #ffffff; --ro-border: #E2E8F0; --ro-border-2: #CBD5E1;
    --ro-text: #0F172A; --ro-text-2: #475569; --ro-text-3: #94A3B8;
    --ro-accent: #3B3B5C;
    --ro-green: #16A34A; --ro-yellow: #F59E0B; --ro-red: #DC2626; --ro-blue: #2563EB;
    --ro-sidebar-w: 260px; --ro-topbar-h: 56px;
    --ro-r: 10px; --ro-r-sm: 6px; --ro-r-lg: 16px;
    --ro-shadow: 0 1px 3px rgba(15,23,42,.05); --ro-shadow-md: 0 4px 16px rgba(15,23,42,.07);
    --ro-ease: cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,h4,h5,h6,p,ol,ul,figure,blockquote,dl,dd,fieldset,legend{margin:0;padding:0}
body.ro-admin{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:.875rem;background:var(--ro-bg);color:var(--ro-text);display:flex;min-height:100vh;line-height:1.55;-webkit-font-smoothing:antialiased;font-weight:400}
h1,h2,h3,h4{font-family:'Inter',sans-serif;font-weight:700}

/* ═══ Sidebar ═══ */
.ro-sidebar{width:var(--ro-sidebar-w);background:#0F172A;color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent;transition:transform .25s var(--ro-ease)}
.ro-sidebar::-webkit-scrollbar{width:4px}.ro-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
.ro-sidebar__header{padding:20px 22px 16px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}
.ro-sidebar__logo{color:#fff;text-decoration:none;font-weight:800;font-size:.95rem;display:flex;align-items:center;gap:10px;letter-spacing:-.01em}
.ro-sidebar__logo-icon{width:30px;height:30px;background:var(--ro);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.ro-sidebar__version{font-size:.65rem;color:rgba(255,255,255,.2);display:block;margin-top:4px}

.ro-sidebar__nav{flex:1;padding:12px 0;overflow-y:auto}
.ro-nav{display:flex;align-items:center;gap:10px;padding:8px 16px;margin:1px 10px;color:rgba(255,255,255,.45);text-decoration:none;font-size:.8rem;font-weight:500;transition:all .15s var(--ro-ease);border-radius:var(--ro-r-sm);position:relative}
.ro-nav:hover{background:rgba(255,255,255,.05);color:rgba(255,255,255,.85)}
.ro-nav--active{background:rgba(59,59,92,.35);color:#fff;font-weight:600}
.ro-nav--active::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;background:var(--ro-light);border-radius:0 2px 2px 0}
.ro-nav__icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.5}
.ro-nav--active .ro-nav__icon{opacity:1}
.ro-nav__icon svg,.icon{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.icon--sm{width:14px;height:14px}
.ro-nav__group{padding:20px 22px 6px;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.2);font-weight:700}

.ro-sidebar__usercard{display:flex;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}
.ro-sidebar__avatar{width:32px;height:32px;border-radius:50%;background:var(--ro);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}
.ro-sidebar__usercard-name{color:rgba(255,255,255,.7);font-size:.78rem;font-weight:600}
.ro-sidebar__usercard-role{color:rgba(255,255,255,.3);font-size:.68rem}

/* ═══ Main ═══ */
.ro-main{margin-left:var(--ro-sidebar-w);flex:1;min-height:100vh}
.ro-topbar{height:var(--ro-topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:var(--ro-card);border-bottom:1px solid var(--ro-border);position:sticky;top:0;z-index:40}
.ro-topbar__title{font-size:1.05rem;font-weight:700;color:var(--ro-text);letter-spacing:-.01em}
.ro-topbar__actions{display:flex;align-items:center;gap:12px}
.ro-topbar__burger{display:none;background:none;border:none;cursor:pointer;padding:4px}
.ro-topbar__burger span{display:block;width:20px;height:2px;background:var(--ro-text);margin:4px 0;border-radius:1px}
.ro-content{padding:28px}

/* ═══ Cards ═══ */
.ro-card{background:var(--ro-card);border-radius:var(--ro-r);border:1px solid var(--ro-border);padding:1.5rem;box-shadow:var(--ro-shadow)}
.ro-card h3,.ro-card h4{font-size:.9rem;font-weight:700;margin-bottom:1rem;color:var(--ro-text)}
.ro-card--stat{text-align:center;padding:1.25rem}
.ro-card__label{font-size:.7rem;color:var(--ro-text-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.ro-card__value{font-size:2rem;font-weight:800;color:var(--ro);margin-top:.25rem}

/* ═══ Grid ═══ */
.ro-grid{display:grid;gap:1.25rem}
.ro-grid--2{grid-template-columns:repeat(2,1fr)}.ro-grid--3{grid-template-columns:repeat(3,1fr)}.ro-grid--4{grid-template-columns:repeat(4,1fr)}.ro-grid--5{grid-template-columns:repeat(5,1fr)}

/* ═══ Buttons ═══ */
.ro-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--ro-r-sm);font-family:inherit;font-size:.8rem;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:all .15s var(--ro-ease);line-height:1.4}
.ro-btn--primary{background:var(--ro);color:#fff}.ro-btn--primary:hover{background:var(--ro-dark)}
.ro-btn--secondary{background:var(--ro-light);color:var(--ro)}.ro-btn--secondary:hover{background:#DDDDE8}
.ro-btn--danger{background:#FEF2F2;color:var(--ro-red)}.ro-btn--danger:hover{background:#FEE2E2}
.ro-btn--ghost{background:transparent;color:var(--ro-text-3);border:1px solid var(--ro-border)}.ro-btn--ghost:hover{background:var(--ro-bg);color:var(--ro-text)}
.ro-btn--sm{padding:5px 10px;font-size:.75rem}
.ro-btn--lg{padding:12px 24px;font-size:.9rem}
.ro-btn--block{width:100%;justify-content:center}

/* ═══ Forms ═══ */
.ro-form__field{margin-bottom:1.25rem}
.ro-form__label{display:block;font-weight:600;margin-bottom:.375rem;font-size:.8rem;color:var(--ro-text)}
.ro-required{color:var(--ro-red);font-weight:400}
.ro-input{width:100%;padding:9px 12px;border:1.5px solid var(--ro-border);border-radius:var(--ro-r-sm);font-family:inherit;font-size:.85rem;color:var(--ro-text);background:#fff;transition:border-color .15s var(--ro-ease)}
.ro-input:focus{outline:none;border-color:var(--ro);box-shadow:0 0 0 3px rgba(59,59,92,.08)}
.ro-input::placeholder{color:var(--ro-text-3)}
select.ro-input{appearance:auto}
textarea.ro-input{resize:vertical;min-height:80px}

/* ═══ Table ═══ */
.ro-table{width:100%;border-collapse:collapse;font-size:.82rem}
.ro-table th{padding:10px 14px;text-align:left;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ro-text-3);border-bottom:2px solid var(--ro-border);white-space:nowrap}
.ro-table td{padding:10px 14px;border-bottom:1px solid var(--ro-border);vertical-align:middle}
.ro-table tbody tr:hover{background:var(--ro-50)}
.ro-table a{color:var(--ro);font-weight:600;text-decoration:none}
.ro-table a:hover{text-decoration:underline}

/* ═══ Badges ═══ */
.ro-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:.72rem;font-weight:600;white-space:nowrap}
.ro-badge--green{background:#F0FDF4;color:#166534}
.ro-badge--yellow{background:#FFFBEB;color:#92400E}
.ro-badge--red{background:#FEF2F2;color:#991B1B}
.ro-badge--blue{background:#EFF6FF;color:#1E40AF}
.ro-badge--gray{background:#F1F5F9;color:#475569}
.ro-badge--purple{background:var(--ro-light);color:var(--ro)}

/* Fristampel */
.ro-ampel--rot{color:var(--ro-red);font-weight:700}
.ro-ampel--orange{color:var(--ro-yellow);font-weight:700}
.ro-ampel--gruen{color:var(--ro-green)}

/* ═══ Alerts ═══ */
.ro-alert{padding:12px 16px;border-radius:var(--ro-r-sm);font-size:.85rem;margin-bottom:1rem;border:1px solid transparent}
.ro-alert--success{background:#F0FDF4;color:#166534;border-color:#BBF7D0}
.ro-alert--error{background:#FEF2F2;color:#991B1B;border-color:#FECACA}
.ro-alert--warning{background:#FFFBEB;color:#92400E;border-color:#FDE68A}
.ro-alert--info{background:#EFF6FF;color:#1E40AF;border-color:#BFDBFE}

/* ═══ Empty State ═══ */
.ro-empty{text-align:center;padding:48px 24px;color:var(--ro-text-3)}
.ro-empty__icon{font-size:2.5rem;margin-bottom:12px;opacity:.5}

/* ═══ Utilities ═══ */
.ro-muted{color:var(--ro-text-3)}.ro-small{font-size:.78rem}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}

/* ═══ Responsive ═══ */
@media(max-width:1024px){
    .ro-sidebar{transform:translateX(-100%)}
    .ro-sidebar--open{transform:translateX(0)}
    .ro-main{margin-left:0}
    .ro-topbar__burger{display:block}
    .ro-grid--3,.ro-grid--4,.ro-grid--5{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
    .ro-content{padding:16px}
    .ro-grid--2,.ro-grid--3,.ro-grid--4,.ro-grid--5{grid-template-columns:1fr}
    .ro-topbar{padding:0 16px}
}
