:root{
  --ink:#12151B; --ink-2:#191D25; --ink-3:#232833;
  --paper:#EDEAE2; --muted:#8D9199; --brass:#C9986B; --signal:#7098BE; --danger:#C97070;
  --line:rgba(237,234,226,.09); --line-strong:rgba(237,234,226,.16);
  --body:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',sans-serif;
  --display:Georgia,'Times New Roman',serif;
  --mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
[hidden]{display:none !important;}
body{background:var(--ink);color:var(--paper);font-family:var(--body);line-height:1.55;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
::selection{background:var(--brass);color:var(--ink);}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}
.wrap{width:100%;max-width:1100px;margin:0 auto;padding:0 28px;}
main{flex:1;padding:48px 28px 72px;}

.top{border-bottom:1px solid var(--line);background:rgba(18,21,27,.9);position:sticky;top:0;z-index:5;}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;padding-bottom:16px;flex-wrap:wrap;}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-weight:500;font-size:18px;text-decoration:none;letter-spacing:-.02em;}
.logo span{font-size:11px;color:var(--muted);letter-spacing:.08em;font-weight:400;}
.logo-mark{width:26px;height:26px;color:var(--brass);}
.userbox{display:flex;align-items:center;gap:12px;font-size:14px;flex-wrap:wrap;}
.badge{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border:1px solid var(--line-strong);border-radius:2px;}
.badge.techniker{color:var(--signal);border-color:rgba(112,152,190,.4);}
.badge.admin{color:var(--brass);border-color:rgba(201,152,107,.4);}

.btn{display:inline-flex;align-items:center;gap:8px;background:var(--brass);color:var(--ink);font:600 14px var(--body);padding:12px 20px;border:none;border-radius:2px;cursor:pointer;text-decoration:none;transition:filter .2s;}
.btn:hover{filter:brightness(1.08);}
.btn-ghost{font:13px var(--mono);color:var(--muted);background:none;border:1px solid var(--line-strong);padding:8px 14px;border-radius:2px;cursor:pointer;text-decoration:none;transition:color .2s,border-color .2s;}
.btn-ghost:hover{color:var(--paper);border-color:var(--brass);}

.login-card{max-width:440px;margin:60px auto 0;background:var(--ink-3);border:1px solid var(--line-strong);border-radius:3px;padding:40px;}
.login-card h1{font-family:var(--display);font-weight:600;font-size:30px;margin-bottom:12px;}
.login-card p{color:var(--muted);font-size:14.5px;margin-bottom:24px;}
.login-card .btn{width:100%;justify-content:center;}
.login-card .hint{margin:22px 0 0;font-size:13px;}
.login-card .hint a{color:var(--brass);}
.notice{background:rgba(201,112,112,.1);border:1px solid rgba(201,112,112,.4);color:var(--paper) !important;padding:12px 14px;border-radius:2px;font-size:13.5px !important;}

.tabs{display:flex;gap:6px;margin-bottom:32px;flex-wrap:wrap;}
.tab{font:13px var(--mono);color:var(--muted);background:none;border:1px solid var(--line-strong);padding:9px 16px;border-radius:2px;cursor:pointer;}
.tab:hover{color:var(--paper);}
.tab.active{background:var(--brass);border-color:var(--brass);color:var(--ink);}
.panel{display:none;}
.panel.active{display:block;}
h2{font-family:var(--display);font-size:22px;font-weight:600;margin-bottom:18px;}
h3{font-family:var(--mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--brass);margin:36px 0 14px;}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
.card{background:var(--ink-2);padding:26px 24px;}
.card small{display:block;font:11px var(--mono);color:var(--brass);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;}
.card h4{font-size:17px;font-weight:600;margin-bottom:6px;}
.card p{color:var(--muted);font-size:13px;}
.empty{border:1px dashed var(--line-strong);padding:36px 16px;text-align:center;color:var(--muted);font-size:14px;margin-top:16px;}

.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;}
select,input:not([type=checkbox]):not([type=file]){background:var(--ink);color:var(--paper);border:1px solid var(--line-strong);border-radius:2px;padding:11px 12px;font:14px var(--body);width:100%;}
.toolbar select{width:auto;min-width:220px;}
select:focus,input:focus{border-color:var(--brass);outline:none;}
.table-wrap{overflow-x:auto;border:1px solid var(--line);}
table{width:100%;border-collapse:collapse;}
th{text-align:left;font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:12px 16px;background:var(--ink-3);border-bottom:1px solid var(--line-strong);white-space:nowrap;}
td{padding:13px 16px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle;}
tr:last-child td{border-bottom:none;}
td.meta{font:12px var(--mono);color:var(--muted);white-space:nowrap;}
td select{width:auto;padding:7px 10px;font-size:13px;}
.row-actions{display:flex;gap:14px;font:12px var(--mono);}
.row-actions a,.row-actions button{background:none;border:none;color:var(--muted);cursor:pointer;text-decoration:none;font:inherit;}
.row-actions a:hover{color:var(--brass);}
.row-actions button:hover{color:var(--danger);}
.checks{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;}
.checks label{display:flex;align-items:center;gap:6px;color:var(--paper);}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--brass);}

.grid-form{display:grid;grid-template-columns:1.2fr 1.4fr 1fr auto;gap:12px;align-items:end;padding:18px;background:var(--ink-3);border:1px solid var(--line);border-radius:2px;}
.grid-form label{display:flex;flex-direction:column;gap:6px;font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.perm td:first-child{font:12px var(--mono);}
.perm td:not(:first-child),.perm th:not(:first-child){text-align:center;}

.foot{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);}
.foot a{text-decoration:none;margin-left:18px;}
.foot a:hover{color:var(--paper);}

.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:var(--ink-3);border:1px solid var(--line-strong);border-left:3px solid var(--brass);padding:12px 18px;font-size:14px;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:90vw;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast.error{border-left-color:var(--danger);}

@media (max-width:760px){
  main{padding:32px 18px 56px;}
  .grid-form{grid-template-columns:1fr;}
  .login-card{padding:28px;margin-top:20px;}
}
