:root{--orange:#ed8e28;--blue:#28a5ed;--ink:#303b43;--muted:#6e7b83;--bg:#f3f5f6;--line:#dfe5e8;--green:#177b57;--red:#b83338;font-family:'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:#1675af}button,.button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 15px;font-weight:600;text-decoration:none;display:inline-block}button:hover{border-color:var(--blue)}button.primary{background:var(--orange);border-color:var(--orange);color:#fff}button.danger{color:var(--red)}input:not([type=checkbox]),select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd5da;border-radius:7px;background:white;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid #28a5ed66;outline-offset:1px}textarea{min-height:100px;resize:vertical}label{display:block;font-size:13px;font-weight:600;margin-bottom:15px}label input,label select,label textarea{margin-top:6px}label.check{display:flex;align-items:center;gap:8px;font-weight:400}input[type=checkbox]{accent-color:var(--orange)}.brand{font-size:23px;font-weight:800;letter-spacing:-.8px}.brand span{color:var(--orange)}.brand small{font-weight:400;font-size:13px;letter-spacing:1px;margin-left:9px;color:var(--muted)}.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-story{padding:10vh 7vw;background:#243842;color:white;display:flex;flex-direction:column;justify-content:space-between}.auth-story .brand small{color:#b3c5ce}.auth-story h1{font-size:clamp(35px,4vw,60px);line-height:1.12;letter-spacing:-1.5px;max-width:520px}.auth-story p{color:#c3d4db;line-height:1.8;max-width:440px}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--blue);font-weight:700}.auth-main{display:flex;align-items:center;justify-content:center;padding:40px}.auth-card{max-width:440px;width:100%}.auth-card h2{font-size:30px;margin-bottom:8px}.muted{color:var(--muted);line-height:1.6}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.auth-card .primary{width:100%}.error{color:var(--red);background:#fff0f0;padding:12px;border-radius:8px;white-space:pre-wrap}.notice{background:#eaf6fe;padding:14px;border-left:3px solid var(--blue);line-height:1.55;border-radius:4px}.warning{background:#fff6e5;border-color:var(--orange)}.shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{padding:30px 20px;background:white;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar nav{margin-top:45px;display:flex;flex-direction:column;gap:7px}.sidebar nav button{text-align:left;border:0;background:transparent;font-weight:500}.sidebar nav button.active{background:#fff2e2;color:#a9560d}.sidebar .account{margin-top:auto;font-size:13px;border-top:1px solid var(--line);padding-top:18px}.sidebar .account strong{display:block}.content{padding:40px 45px;min-width:0}.topline{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:28px}.topline h1{font-size:30px;margin:5px 0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:28px 0}.module-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:25px;text-align:left;min-height:180px}.module-card:hover{box-shadow:0 5px 18px #263d4710}.module-card .icon{font-size:24px;color:var(--orange);margin-bottom:18px}.module-card h2{font-size:18px;margin:0 0 8px}.module-card p{font-size:13px;color:var(--muted);font-weight:400;line-height:1.5}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:22px}.panel h2{font-size:19px;margin-top:0}.project-list{display:flex;flex-direction:column;gap:9px}.project-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.project-row:last-child{border-bottom:0}.project-row h3{margin:0 0 6px;font-size:16px}.project-row p{margin:0;font-size:12px;color:var(--muted)}.badge{display:inline-block;background:#edf2f4;color:#52656f;border-radius:5px;padding:4px 7px;font-size:11px;margin-right:8px}.badge.locked{background:#fff1dc;color:#9a600f}.empty{padding:38px;text-align:center;color:var(--muted)}.toolbar{position:sticky;top:0;z-index:10;background:white;border-bottom:1px solid var(--line);padding:14px 22px;display:flex;justify-content:space-between;gap:16px;align-items:center}.toolbar strong{display:block;font-size:15px}.toolbar small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.toolbar .save-status{color:var(--green)}.toolbar .save-status.dirty{color:#aa660a}.editor-page{height:100vh;display:flex;flex-direction:column}.editor-page iframe{border:0;width:100%;flex:1;background:var(--bg)}.editor-alert{padding:12px 22px;background:#fff2de;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.modal-backdrop{position:fixed;inset:0;background:#122a3b66;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:100%;max-width:680px;background:white;border-radius:14px;padding:28px;max-height:90vh;overflow:auto}.modal h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}table{border-collapse:collapse;width:100%;font-size:13px}td,th{padding:11px;border-bottom:1px solid var(--line);text-align:left}td input{accent-color:var(--orange)}.table-scroll{overflow:auto}.secret{padding:14px;background:#edf3f5;word-break:break-all;font-family:monospace;user-select:all}.recovery{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-family:monospace;margin:20px 0}.loading{padding:70px;text-align:center}#toast{position:fixed;bottom:24px;right:24px;max-width:450px;background:#243842;color:white;z-index:80;border-radius:9px;box-shadow:0 8px 30px #0002;white-space:pre-wrap}#toast:not(:empty){padding:16px 20px}.sr-only{position:absolute;left:-9999px}
@media(max-width:1000px){.cards{grid-template-columns:1fr}.content{padding:28px}.shell{grid-template-columns:210px minmax(0,1fr)}}@media(max-width:650px){.auth-wrap{grid-template-columns:1fr}.auth-story{padding:28px}.auth-story h1,.auth-story p,.auth-story footer{display:none}.auth-main{padding:25px}.shell{display:block}.sidebar{height:auto;position:static;padding:20px}.sidebar nav{margin-top:18px;flex-direction:row;flex-wrap:wrap}.sidebar .account{margin-top:15px}.content{padding:20px}.topline,.project-row,.toolbar{align-items:flex-start;flex-direction:column}.toolbar{padding:12px}.toolbar button{padding:7px 9px;font-size:12px}.form-grid{grid-template-columns:1fr}.cards{gap:12px}.editor-page{height:100dvh}}

/* Authenticator-QR bei der Konto-Einrichtung */
.qr{display:block;width:200px;height:200px;image-rendering:pixelated;background:#fff;padding:8px;border-radius:12px;margin:4px 0 16px}
.secret-manual{margin:0 0 16px}
.secret-manual summary{cursor:pointer;color:var(--muted,#667);font-size:.9rem;margin-bottom:8px}

/* Öffentliche Anmeldung – transparente Marken-Grafik, klare Typografie. */
.auth-wrap{grid-template-columns:1fr 1fr;background:#fbfcfd;min-height:100svh}
.auth-story{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(145deg,#edf6fa 0%,#e4eff4 48%,#d7e7ee 100%);color:#213944;padding:clamp(32px,5vw,80px) clamp(30px,5.8vw,92px);gap:48px;border-right:1px solid #d9e5eb}
.auth-brand{display:block;width:clamp(180px,18vw,260px);max-width:100%;height:auto;flex-shrink:0;user-select:none}
.auth-message{position:relative;z-index:1;margin:18px 0 24px}
.auth-rule{height:4px;width:44px;background:var(--orange);margin-bottom:25px}
.auth-story h1{display:block;font-size:clamp(40px,4.5vw,72px);font-weight:650;line-height:1.07;letter-spacing:-2.7px;margin:0;max-width:none}
.auth-story h1 span{color:#147da7}
.auth-story .auth-message p{display:block;color:#536c7a;margin:25px 0 0;line-height:1.5;font-size:14px}
.auth-story footer{display:block;position:relative;z-index:1;color:#58717e;font-size:11px;line-height:1.6;letter-spacing:.1px}
.auth-orbits{position:absolute;z-index:-1;right:-290px;bottom:-190px;width:630px;height:630px;transform:rotate(-30deg);pointer-events:none}
.auth-orbits i{position:absolute;inset:0;border:1px solid #6a9eb326;border-radius:50%}
.auth-orbits i:nth-child(2){inset:60px}.auth-orbits i:nth-child(3){inset:120px}
.auth-main{padding:60px clamp(28px,6vw,100px);background:radial-gradient(ellipse at 100% 0%,#eaf3f84d,transparent 65%),#fbfcfd}
.auth-card{max-width:410px}
.auth-entry-label{display:flex;align-items:center;gap:8px;color:#6c818d;font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;margin-bottom:24px}
.auth-entry-label>span{width:6px;height:6px;background:var(--blue);border-radius:50%}
.auth-card h2{font-size:clamp(29px,2.6vw,39px);line-height:1.15;font-weight:650;letter-spacing:-1.3px;margin:0 0 14px}
.auth-card>.muted{font-size:14px;margin:0 0 38px;color:#71828c}
.auth-card label{font-weight:600;color:#3c535f;font-size:12px;margin-bottom:9px}
.auth-card input:not([type=checkbox]){min-height:54px;border:1px solid #d9e2e7;border-radius:10px;background:#fff;padding:15px 16px;box-shadow:0 2px 3px #1a3d4e03;font-size:14px;transition:border-color .15s,box-shadow .15s}
.auth-card input::placeholder{color:#9aa7af}
.auth-card input:focus{outline:2px solid #209fde40;outline-offset:2px;border-color:#299dd4;box-shadow:0 0 0 4px #299dd40a}
#loginForm>input{margin:0 0 24px}
.password-field{position:relative;margin-bottom:28px}
.password-field input{padding-right:54px!important}
.password-field button{position:absolute;right:5px;top:5px;min-width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;padding:10px;color:#718994;border-radius:7px}
.password-field button:hover,.password-field button[aria-pressed=true]{color:#127da8;background:#eaf4f8}
.password-field svg{width:21px;height:21px}
.auth-card button.primary{min-height:54px;background:#ed8e28;border:1px solid #ed8e28;color:#172f3b;font-size:14px;font-weight:700;border-radius:10px;box-shadow:0 5px 14px #de802719;transition:background .15s,transform .15s}
.auth-card button.primary:hover{background:#f39d3f;border-color:#f39d3f;transform:translateY(-1px)}
.auth-card button:focus-visible{outline:3px solid #209fde70;outline-offset:3px}
.auth-submit{display:flex!important;align-items:center;justify-content:space-between;padding:14px 18px}
.auth-submit>span{font-size:21px;line-height:1}
.auth-account-hint{font-size:12px;line-height:1.7;color:#71828c;margin:26px 0 0;padding-top:23px;border-top:1px solid #e3e9ed}
@media(min-width:651px) and (max-width:1000px){.auth-story{padding:40px 32px}.auth-main{padding:40px 32px}.auth-story h1{font-size:44px;letter-spacing:-1.8px}.auth-brand{width:210px}}
@media(max-width:650px){.auth-wrap{grid-template-columns:1fr;min-height:100svh}.auth-story{padding:25px 28px 30px;gap:20px;border-right:0;border-bottom:1px solid #d9e5eb}.auth-brand{width:155px}.auth-message{margin:0}.auth-rule{width:28px;height:3px;margin-bottom:14px}.auth-story h1{font-size:34px;letter-spacing:-1.3px;line-height:1.08}.auth-story h1 br{display:none}.auth-story h1 br::after{content:' '}.auth-story .auth-message p{font-size:11px;margin:15px 0 0}.auth-story footer{font-size:9px;margin-top:0}.auth-orbits{width:430px;height:430px;right:-270px;bottom:-210px}.auth-main{padding:34px 28px 38px;align-items:flex-start}.auth-entry-label{margin-bottom:14px;font-size:10px}.auth-card h2{font-size:30px}.auth-card>.muted{margin-bottom:26px;font-size:13px}.auth-account-hint{margin-top:20px;padding-top:18px}}
@media(prefers-reduced-motion:reduce){.auth-card input,.auth-card button.primary{transition:none}.auth-card button.primary:hover{transform:none}}

/* Logo oben links im Dashboard */
.sidebar-brand{display:block;width:100%;max-width:190px;height:auto;user-select:none}
@media(max-width:650px){.sidebar-brand{max-width:150px}}

/* Dashboard-Navigation, Projektstatus und Archiv */
.sidebar .main-nav{margin-top:38px}.account-links{display:grid;gap:7px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.account-links button{width:100%;text-align:left;border:0;background:transparent;font-weight:500}.account-links button.active{background:#fff2e2;color:#a9560d}
.account-person p{margin:5px 0 12px}.module-card{position:relative;overflow:hidden;border-top:4px solid transparent;transition:transform .15s,box-shadow .15s}.module-card:hover{transform:translateY(-2px)}
.module-card.module-partner{border-top-color:#7258bd}.module-card.module-general{border-top-color:#168b85}.module-card.module-darmstadt{border-top-color:#2c82c9}
.module-card.module-partner .icon{color:#7258bd}.module-card.module-general .icon{color:#168b85}.module-card.module-darmstadt .icon{color:#2c82c9}
.project-filters{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,.45fr);gap:16px}.project-card{padding:18px 16px;border:1px solid var(--line);border-left:5px solid #87959d;border-radius:10px;background:#fff}.project-card:last-child{border-bottom:1px solid var(--line)}
.project-card.module-partner{border-left-color:#7258bd}.project-card.module-general{border-left-color:#168b85}.project-card.module-darmstadt{border-left-color:#2c82c9}.project-main{min-width:0;flex:1}.project-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.project-title h3{margin:0}
.module-badge.module-partner{background:#eee9fb;color:#58409b}.module-badge.module-general{background:#e3f5f2;color:#126b67}.module-badge.module-darmstadt{background:#e4f1fb;color:#1c659e}
.status-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700}.status-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status-amber{background:#fff0d5;color:#95600e}.status-blue{background:#e3f2ff;color:#176ca7}.status-green{background:#e2f5e9;color:#187044}.status-red{background:#fde8e9;color:#a42b31}.status-violet{background:#eee9fb;color:#684aa6}
.project-actions{display:flex;align-items:center;gap:8px}.project-menu{position:relative}.project-menu>summary{list-style:none;display:grid;place-items:center;min-width:42px;height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:800;letter-spacing:2px;cursor:pointer}.project-menu>summary::-webkit-details-marker{display:none}.project-menu[open]>summary{border-color:var(--blue);background:#eef8fd}.project-menu-popover{position:absolute;z-index:15;right:0;top:48px;width:280px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #1c354526}.project-menu-popover label{margin:0 0 10px}.project-menu-popover button{display:block;width:100%;text-align:left;margin-top:6px}
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}.admin-tabs button{background:#f7fafb}.admin-tabs button:hover{background:#eef7fc}.admin-tabs button.active{background:#e9f5fc;border-color:#77bde6;color:#176c9f}.admin-tabs+section{scroll-margin-top:18px}.admin-tabs~section{scroll-margin-top:18px}
@media(max-width:650px){.account-links{display:flex;flex-wrap:wrap}.account-links button{width:auto}.project-filters{grid-template-columns:1fr}.project-card{align-items:stretch!important}.project-title{align-items:flex-start}.project-actions{align-self:stretch}.project-actions>[data-open]{flex:1}.project-menu-popover{position:fixed;left:18px;right:18px;top:auto;bottom:18px;width:auto;z-index:60}.admin-tabs{display:grid;grid-template-columns:1fr 1fr}}
/* Rechtematrix in der Verwaltung */
.perm-table td:first-child{text-align:left;font-weight:500}
.perm-table th{font-size:12px;font-weight:600;color:var(--muted,#667)}
.perm-table input[type=checkbox]{width:17px;height:17px;cursor:pointer}
.perm-note{font-size:13px;color:var(--muted,#667);margin:6px 0 14px}
.perm-toggle{display:flex;align-items:center;gap:9px;margin:14px 0 6px;font-weight:500}
/* Projektkennungen (Dashboard 2) */
.project-refs{margin-top:4px!important}
.ref-chip{display:inline-block;background:#eef5f9;color:#2c4a5a;border-radius:5px;padding:3px 7px;font-size:11px;margin:0 6px 4px 0}
.ref-chip b{font-weight:600;margin-right:4px;color:#1E7DB5}
