:root{--dekra-green: #017848;--dekra-green-dark: #0e3a2c;--dekra-green-light: #3fa97b;--sidebar-bg: #0e3a2c;--sidebar-fg: #cfe3d8;--sidebar-fg-muted: #7fa593;--bg: #f4f6f5;--surface: #ffffff;--border: #e2e8e4;--text: #1c2b24;--text-muted: #64766d;--danger: #c0392b;--radius: 12px;--shadow: 0 1px 3px rgba(14, 58, 44, .08), 0 1px 2px rgba(14, 58, 44, .04);--sidebar-w: 248px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.boot-screen{display:grid;place-items:center;height:100vh;color:var(--text-muted)}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-fg);display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}.sidebar__brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;color:#fff;padding:6px 8px 20px}.sidebar__group{margin-bottom:18px}.sidebar__group-label{font-size:.68rem;letter-spacing:.09em;color:var(--sidebar-fg-muted);padding:0 12px 8px;font-weight:600}.sidebar__link{display:block;padding:9px 12px;border-radius:8px;color:var(--sidebar-fg);text-decoration:none;font-size:.92rem;margin-bottom:2px;transition:background .12s,color .12s}.sidebar__link:hover{background:#ffffff0f;color:#fff}.sidebar__link--active{background:var(--dekra-green);color:#fff;font-weight:600}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:14px;padding:14px 28px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar__greeting{font-weight:600;font-size:1rem;margin-right:auto}.topbar__burger{display:none;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--text)}.content{padding:28px;max-width:1200px;width:100%}.page__title{font-size:1.5rem;margin:0 0 20px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}.kpi-card__value{font-size:2.2rem;font-weight:700;color:var(--dekra-green);line-height:1}.kpi-card__label{margin-top:8px;color:var(--text-muted);font-size:.9rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.panel__title{font-size:1.05rem;margin:0 0 12px}.panel__empty{color:var(--text-muted);margin:0}.notice{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.notice--error{background:#fdecea;color:var(--danger)}.btn{font:inherit;border:none;border-radius:8px;padding:9px 16px;cursor:pointer;font-weight:600;transition:background .12s,opacity .12s}.btn--primary{background:var(--dekra-green);color:#fff;width:100%;padding:11px}.btn--primary:hover{background:#016a40}.btn--primary:disabled{opacity:.6;cursor:default}.btn--ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn--ghost:hover{background:var(--bg)}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--dekra-green-dark),#10241c);padding:20px}.login__card{background:var(--surface);border-radius:16px;padding:36px 32px;width:100%;max-width:360px;box-shadow:0 20px 50px #0000004d;text-align:center}.login__logo{border-radius:12px}.login__title{margin:14px 0 2px;font-size:1.4rem}.login__subtitle{margin:0 0 24px;color:var(--text-muted);font-size:.9rem}.field{display:block;text-align:left;margin-bottom:18px}.field span{display:block;font-size:.82rem;color:var(--text-muted);margin-bottom:6px}.field input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit}.field input:focus{outline:2px solid var(--dekra-green-light);outline-offset:0;border-color:transparent}.login__error{background:#fdecea;color:var(--danger);padding:9px 12px;border-radius:8px;font-size:.85rem;margin-bottom:16px}@media(max-width:768px){.topbar__burger{display:block}.sidebar{position:fixed;z-index:40;transform:translate(-100%);transition:transform .2s ease;box-shadow:4px 0 24px #00000040}.sidebar--open{transform:translate(0)}.content{padding:20px 16px}}
