*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:Verdana,Arial,sans-serif;font-size:14px;color:#222;background:#f7f3e6}
a{color:#3a5d2a}
h1{color:#3a7a4a}
h2{color:#3a7a4a;margin-top:1.5em}

.admin-top{display:flex;align-items:center;gap:1em;background:#5a7a3a;color:#fff;padding:.6em 1em}
.admin-top .brand{color:#fff;text-decoration:none;font-weight:bold;font-size:1.1em}
.admin-top nav{display:flex;align-items:center;gap:1em;margin-left:auto;flex-wrap:wrap}
.admin-top nav a{color:#fff;text-decoration:none}
.admin-top nav a:hover{color:#ffd76b}
.admin-top .who{opacity:.85}
.admin-main{padding:1.2em 1.5em;max-width:1200px;margin:0 auto}
.admin-foot{padding:.5em 1em;color:#777;font-size:.8em}

.bar{display:flex;align-items:center;gap:1em;margin:1em 0;flex-wrap:wrap}
.bar h1{margin:0}
.sticky-bottom{position:sticky;bottom:0;background:#f7f3e6;padding:.6em 0;border-top:1px solid #ddd;z-index:10}

.btn{display:inline-block;padding:.5em .9em;border:1px solid #5a7a3a;background:#fff;color:#3a5d2a;border-radius:3px;text-decoration:none;cursor:pointer;font-size:.95em}
.btn:hover{background:#eef0e3}
.btn.primary{background:#5a7a3a;color:#fff}
.btn.primary:hover{background:#4b6730}
.btn.danger{border-color:#a33;color:#a33}
.btn.danger:hover{background:#fbecec}
.btn.small{padding:.25em .5em;font-size:.85em}

.flash{padding:.6em 1em;border-radius:3px;margin:.6em 0}
.flash-ok{background:#dff5d8;color:#264a1a;border:1px solid #8bc78b}
.flash-error{background:#fbeaea;color:#7a1c1c;border:1px solid #d99}

.cards{display:flex;gap:1em;flex-wrap:wrap}
.card{flex:1 1 200px;background:#fff;border:1px solid #ddd;border-radius:6px;padding:1em}
.card h2{margin:0 0 .2em;color:#3a7a4a}

.form{display:flex;flex-direction:column;gap:.6em;max-width:1100px}
.form label{display:flex;flex-direction:column;gap:.25em;font-weight:bold}
.form .check{flex-direction:row;align-items:center;gap:.4em;font-weight:normal}
.form input[type=text],.form input:not([type]),.form input[type=number],.form select,.form textarea,.form input[type=password]{
  padding:.5em;border:1px solid #ccc;border-radius:3px;font:inherit;width:100%
}
.form.inline{flex-direction:row;flex-wrap:wrap;align-items:center}
.form.inline input,.form.inline select{width:auto}

.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #ddd}
.table th,.table td{padding:.5em .7em;border-bottom:1px solid #eee;text-align:left;vertical-align:top}
.table th{background:#eef0e3}

.tree,.tree ul{list-style:none;padding-left:1em;margin:0}
.tree-row{display:flex;align-items:center;gap:.5em;padding:.3em .5em;background:#fff;border:1px solid #e3e3d4;border-radius:3px;margin:.2em 0}
.tree-row .handle{cursor:grab;color:#777;font-size:1.1em;user-select:none}
.tree-row .title{font-weight:bold;color:#3a5d2a;text-decoration:none}
.tree-row .slug{color:#888;font-family:monospace;font-size:.85em}
.tree-row .pill{background:#f4d35e;color:#553;padding:.05em .4em;border-radius:3px;font-size:.75em}
.tree-row .actions{margin-left:auto;font-size:.85em}

.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#5a7a3a;margin:0}
.login-form{background:#fff;padding:2em;border-radius:6px;width:100%;max-width:340px;box-shadow:0 6px 30px rgba(0,0,0,.2)}
.login-form h1{margin-top:0;color:#3a7a4a;text-align:center}
.login-form label{display:flex;flex-direction:column;gap:.25em;margin:.6em 0}
.login-form input{padding:.55em;border:1px solid #ccc;border-radius:3px}
.login-form button{width:100%;padding:.6em;background:#5a7a3a;color:#fff;border:0;border-radius:3px;font-weight:bold;cursor:pointer}

@media (max-width:700px){
  .admin-top{flex-direction:column;align-items:flex-start}
  .admin-top nav{margin-left:0}
  .form.inline{flex-direction:column;align-items:stretch}
}

.muted{color:#777}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1em;margin-top:1em}
.media-tile{background:#fff;border:1px solid #ddd;border-radius:4px;padding:.5em;margin:0;display:flex;flex-direction:column;gap:.4em}
.media-tile img{width:100%;height:140px;object-fit:contain;background:#f3eed8}
.media-tile .file-icon{display:flex;align-items:center;justify-content:center;height:140px;background:#f3eed8;font-weight:bold;color:#a33;text-decoration:none;font-size:1.5em;border-radius:3px}
.media-tile figcaption{display:flex;flex-direction:column;gap:.25em;font-size:.8em}
.media-tile strong{word-break:break-all}
.copy-url{font-family:monospace;font-size:.75em;padding:.2em;border:1px solid #ddd;width:100%}

/* === Medienverwaltung === */
.media-page{max-width:1280px}
.media-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1em;margin-bottom:1em}
.media-header h1{margin:0}
.media-header .muted{margin:.2em 0 0;font-size:.9em}

.media-toolbar{display:flex;flex-wrap:wrap;gap:1em;background:#fff;border:1px solid #e2dfd0;border-radius:6px;padding:.8em 1em;margin-bottom:1em}
.media-toolbar .t-group{display:flex;align-items:center;gap:.5em;flex-wrap:wrap}
.media-toolbar label{font-weight:bold;margin-right:.2em}
.media-toolbar input,.media-toolbar select{padding:.45em .55em;border:1px solid #ccc;border-radius:3px;font:inherit}
.media-toolbar input[type=search]{min-width:200px}

.media-drop{position:relative;display:flex;align-items:center;gap:1em;background:#fff;border:2px dashed #b9c79b;border-radius:8px;padding:1.2em;margin-bottom:1.5em;transition:background .15s,border-color .15s}
.media-drop.drag{background:#eef5e0;border-color:#5a7a3a}
.media-drop .drop-label{flex:1;display:block;cursor:pointer;text-align:center;padding:.4em}
.media-drop input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.media-drop .drop-text{color:#555}
.media-drop .drop-text strong{color:#3a5d2a}
.media-drop .drop-text small{color:#888}
.media-drop button{flex:0 0 auto;align-self:center}

.media-h{display:flex;align-items:baseline;gap:.6em;margin:1.4em 0 .8em;color:#3a7a4a}
.media-h .muted{font-size:.8em;font-weight:normal;color:#888}

.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1em}
.media-tile{margin:0;background:#fff;border:1px solid #e2dfd0;border-radius:6px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}
.media-tile:hover{box-shadow:0 4px 14px rgba(0,0,0,.08);transform:translateY(-1px)}
.media-tile .thumb{height:160px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f3df 0%,#efe6c5 100%);overflow:hidden}
.media-tile .thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.media-tile .file-badge{font-weight:bold;color:#a33;font-size:1.5em;padding:.6em 1em;background:#fff;border:2px solid #a33;border-radius:4px;letter-spacing:.05em}
.media-tile figcaption{padding:.6em .7em;display:flex;flex-direction:column;gap:.4em;font-size:.85em;flex:1}
.media-tile .fname{font-weight:bold;color:#333;word-break:break-all;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.media-tile .meta{color:#888;font-size:.8em}
.media-tile .actions{display:flex;flex-wrap:wrap;gap:.3em;margin-top:auto;padding-top:.4em;border-top:1px solid #f0ecda}
.media-tile .actions form{margin:0;display:inline}

.media-empty{grid-column:1/-1;text-align:center;padding:3em 1em;color:#888;background:#fff;border:1px dashed #ccc;border-radius:6px}
.media-empty p{margin:.3em 0}

@media (max-width:600px){
  .media-toolbar{flex-direction:column;align-items:stretch}
  .media-toolbar .t-group{flex-direction:column;align-items:stretch}
  .media-toolbar input[type=search]{min-width:0}
  .media-drop{flex-direction:column;text-align:center}
  .media-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .media-tile .thumb{height:120px}
}

/* === Mediapicker (eigener Dialog) === */
.mp-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:99999;display:flex;align-items:center;justify-content:center;padding:1em}
.mp-dialog{background:#fff;width:min(960px,100%);max-height:90vh;display:flex;flex-direction:column;border-radius:6px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.mp-head{display:flex;align-items:center;gap:1em;padding:.7em 1em;background:#5a7a3a;color:#fff}
.mp-head strong{flex:0 0 auto}
.mp-head .mp-folder{flex:1;font-size:.9em;opacity:.9}
.mp-head .mp-folder code{background:rgba(255,255,255,.18);padding:.1em .4em;border-radius:3px}
.mp-head .mp-close{background:transparent;border:0;color:#fff;font-size:1.6em;cursor:pointer;line-height:1}
.mp-body{flex:1;overflow:auto;padding:1em;background:#f7f3e6}
.mp-status{padding:1em;text-align:center;color:#777}
.mp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.8em}
.mp-tile{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;transition:transform .1s,box-shadow .1s}
.mp-tile:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.1);border-color:#5a7a3a}
.mp-tile .mp-thumb{height:110px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f3df,#efe6c5);overflow:hidden}
.mp-tile .mp-thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.mp-tile .mp-icon{font-weight:bold;color:#a33;font-size:1.4em}
.mp-tile .mp-name{padding:.4em .5em;font-size:.8em;text-align:center;word-break:break-all;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;border-top:1px solid #f0ecda}
.mp-foot{padding:.5em 1em;font-size:.85em;background:#fff;border-top:1px solid #e2dfd0;color:#777;text-align:right}

/* === Seitenbaum verbessert === */
.tree, .tree ul{list-style:none;margin:0;padding:0}
.tree ul{padding-left:1.4em;border-left:2px dashed #d4d0bd;margin-left:.6em}
.tree-node{margin:.15em 0;position:relative}
.tree-row{display:flex;align-items:center;gap:.5em;background:#fff;border:1px solid #e3e3d4;border-radius:4px;padding:.4em .6em;transition:box-shadow .12s}
.tree-row:hover{box-shadow:0 2px 6px rgba(0,0,0,.06);border-color:#c4c8a8}
.tree-row .handle{cursor:grab;color:#999;font-size:1.15em;user-select:none;flex:0 0 auto}
.tree-row .depth-indicator{color:#999;font-size:1em;flex:0 0 auto;width:1em;text-align:center}
.tree-row .title{font-weight:600;color:#3a5d2a;text-decoration:none;flex:0 0 auto}
.tree-row .title:hover{text-decoration:underline}
.tree-row .slug{color:#999;font-family:monospace;font-size:.82em;flex:0 0 auto}
.tree-row .actions{margin-left:auto;font-size:.82em;color:#666;flex:0 0 auto}
.tree-row .actions a{color:#3a5d2a;text-decoration:none}
.tree-row .actions a:hover{text-decoration:underline}
.tree-row .actions a.danger{color:#a33}
.tree-row .pill{padding:.05em .45em;border-radius:3px;font-size:.7em;font-weight:bold;text-transform:uppercase;letter-spacing:.03em}
.tree-row .pill-warn{background:#f4d35e;color:#553}
.tree-row .pill-info{background:#dbe7c5;color:#3a5d2a}
.tree-node.has-children > .tree-row{background:#fafaf2}