:root{
  --bg:#0a0c0f;
  --bg-soft:#0e1115;
  --sidebar:#0d1014;
  --panel:#14181d;
  --panel-hover:#181d23;
  --panel-strong:#1b2027;
  --input:#0d1014;
  --text:#f5f7fa;
  --text-soft:#d6dbe2;
  --muted:#8f98a5;
  --orange:#ff7a00;
  --orange-hover:#ff8d20;
  --orange-soft:rgba(255,122,0,.12);
  --line:#282e36;
  --line-soft:#20252c;
  --danger:#e15a5a;
  --green:#38b974;
  --yellow:#e7a43c;
  --blue:#59a8e8;
  --radius-sm:9px;
  --radius:13px;
  --radius-lg:18px;
  --shadow:0 18px 55px rgba(0,0,0,.22);
  --shadow-soft:0 8px 28px rgba(0,0,0,.15);
}

*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{
  min-height:100vh;
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at 82% -12%,rgba(62,72,86,.28),transparent 34%),
    linear-gradient(180deg,#0b0e12 0%,#090b0e 100%);
  font:14px/1.55 Inter,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}

/* App shell */
/* 2.6.2 – Desktop: feste Seitenleiste, nur der Inhalt scrollt */
@media(min-width:861px){
  .shell{display:block;min-height:100vh}
  .side{
    position:fixed!important;
    top:0;left:0;bottom:0;
    width:268px;height:100vh;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    z-index:60;
  }
  .main{
    margin-left:268px;
    width:calc(100% - 268px);
    max-width:1500px;
  }
}

.shell{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100vh}
.side{
  position:sticky;top:0;height:100vh;
  padding:28px 18px 22px;
  background:linear-gradient(180deg,rgba(15,18,22,.98),rgba(12,15,18,.98));
  border-right:1px solid var(--line-soft);
}
.brand{
  margin:0 10px 34px;
  font-size:18px;font-weight:900;letter-spacing:.055em;
  line-height:1.2;
}
.brand span{color:var(--orange)}
.brand small{
  display:block;margin-top:7px;
  color:#6f7885;font-size:9px;font-weight:800;letter-spacing:.18em;
}
.brand.big{margin:0 0 10px;font-size:23px}
.nav{display:flex;flex-direction:column;gap:5px}
.nav a{
  position:relative;display:flex;align-items:center;min-height:44px;
  padding:0 14px;border:1px solid transparent;border-radius:11px;
  color:#b8c0cb;font-weight:600;transition:.16s ease;
}
.nav a:hover{background:rgba(255,255,255,.035);color:#fff}
.nav a.active{
  color:#fff;background:var(--orange-soft);border-color:rgba(255,122,0,.18);
}
.nav a.active:before{
  content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:3px;
  border-radius:3px;background:var(--orange);
}
.nav a:last-child{margin-top:14px;color:#8e97a3}

.main{width:100%;min-width:0;max-width:1500px;padding:34px 38px 48px}
.top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}
.top h1{margin:0;font-size:29px;line-height:1.18;letter-spacing:-.025em}

/* Cards and sections */
.card{
  margin-bottom:22px;padding:24px;
  background:linear-gradient(180deg,rgba(21,25,30,.98),rgba(18,22,27,.98));
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
}
.card h3{margin:0 0 20px;font-size:17px;line-height:1.25;letter-spacing:-.012em}
.card>p:first-child{margin-top:0}
.card>p:last-child{margin-bottom:0}
.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.sectionhead h3{margin:0}

.grid2,.grid3,.grid4{display:grid;gap:18px}
.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid4{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}

.stat{
  min-height:126px;padding:21px 22px;
  background:linear-gradient(145deg,#171c22,#12161b);
  border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);
}
.stat span,.stat small{display:block;color:var(--muted)}
.stat span{font-size:12px;font-weight:700;letter-spacing:.015em;text-transform:uppercase}
.stat strong{display:block;margin:9px 0 3px;font-size:27px;line-height:1.15;letter-spacing:-.025em}
.stat small{font-size:12px}
.stat.warn strong{color:#ffc266}

/* Forms */
form p{margin:0 0 18px}
.grid2>p,.grid3>p,.grid4>p{margin:0}
label{display:block;margin:0 0 7px;color:#a7b0bc;font-size:12px;font-weight:650}
input,textarea,select{
  width:100%;min-height:43px;padding:10px 12px;
  border:1px solid #323945;border-radius:10px;
  background:var(--input);color:#f7f9fb;outline:none;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
input:hover,textarea:hover,select:hover{border-color:#3b4451;background:#0f1217}
input:focus,textarea:focus,select:focus{
  border-color:var(--orange);background:#101318;
  box-shadow:0 0 0 3px rgba(255,122,0,.12);
}
input:disabled{opacity:.62;cursor:not-allowed}
textarea{min-height:105px;resize:vertical}
input::placeholder,textarea::placeholder{color:#626c79}
label+input+small,label+textarea+small,label+select+small{display:block;margin-top:7px}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:42px;padding:0 17px;
  border:1px solid #3a424d;border-radius:12px;
  background:linear-gradient(180deg,#242b33,#1d232a);color:#f7f8fa;font-weight:700;cursor:pointer;
  box-shadow:0 5px 16px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.025);
  transition:transform .12s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease,filter .15s ease;
}
.btn:hover{background:linear-gradient(180deg,#2b333c,#232a32);border-color:#505b68;transform:translateY(-1px);box-shadow:0 8px 20px rgba(0,0,0,.2)}
.btn:active{transform:translateY(0);box-shadow:0 3px 10px rgba(0,0,0,.15)}
.btn.primary{background:linear-gradient(180deg,#ff8a1b,#ff7600);border-color:#ff7a00;color:#18110b;font-weight:850;box-shadow:0 7px 18px rgba(255,122,0,.18)}
.btn.primary:hover{background:linear-gradient(180deg,#ff982f,#ff8314);border-color:#ff8d20;box-shadow:0 9px 22px rgba(255,122,0,.24)}
.btn.danger{background:#35191a;border-color:#6a2e30;color:#ffd0d0}
.btn.danger:hover{background:#442022;border-color:#814044}
.btn.sm{min-height:34px;padding:0 11px;border-radius:8px;font-size:12px}
.btn.full{width:100%}

.toolbar,.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.toolbar{margin-bottom:20px}
.actions{justify-content:flex-end}
.inline{display:inline-flex;margin:0}

/* Tables */
.tablewrap{overflow:auto;padding:0}
.tablewrap table{min-width:720px}
table{width:100%;border-collapse:separate;border-spacing:0}
th,td{padding:15px 18px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line-soft)}
th{
  padding-top:14px;padding-bottom:12px;
  background:rgba(255,255,255,.015);color:#8d96a3;
  font-size:11px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;
}
tbody tr{transition:background .12s ease}
tbody tr:hover{background:rgba(255,255,255,.018)}
tbody tr:last-child td{border-bottom:0}
tfoot td{border-top:1px solid #39414c;border-bottom:0;background:rgba(255,255,255,.012)}
.tablewrap.card h3{padding:24px 24px 0}
.tablewrap .actions{justify-content:flex-end;white-space:nowrap}

/* Status / helper */
.badge{display:inline-flex;align-items:center;min-height:27px;padding:3px 9px;border-radius:999px;background:#252b32;font-size:11px;font-weight:750}
.badge.final,.badge.open{background:rgba(73,158,219,.14);color:#9bd4ff;border:1px solid rgba(73,158,219,.16)}
.badge.paid{background:rgba(56,185,116,.13);color:#9aebbd;border:1px solid rgba(56,185,116,.16)}
.badge.overdue{background:rgba(231,164,60,.14);color:#ffd08a;border:1px solid rgba(231,164,60,.17)}
.badge.cancelled{background:rgba(225,90,90,.13);color:#ffadad;border:1px solid rgba(225,90,90,.17)}
.badge.cancellation{background:rgba(151,92,196,.14);color:#e0bcff;border:1px solid rgba(151,92,196,.17)}
.money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.muted{color:var(--muted)}
.block{display:block}
.flash,.alert{margin-bottom:20px;padding:13px 15px;border-radius:11px}
.flash{border:1px solid rgba(56,185,116,.28);background:rgba(56,185,116,.105);color:#b8f1cf}
.alert.danger{border:1px solid rgba(225,90,90,.3);background:rgba(225,90,90,.105);color:#ffd0d0}
.details{display:grid;grid-template-columns:145px minmax(0,1fr);gap:11px 18px;margin:0}
.details dt{color:var(--muted);font-weight:600}
.details dd{margin:0}
.hash{word-break:break-all;font-size:11px;color:#7f8996}
.amount{margin:9px 0 14px;font-size:32px;font-weight:850;letter-spacing:-.025em}
.payrow{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-top:1px solid var(--line-soft)}
.dangerzone{border-color:#4c292b;background:linear-gradient(180deg,#211617,#1b1314)}

/* Dedicated login */
.login-page{
  min-height:100vh;display:grid;place-items:center;padding:28px;
  background:
    radial-gradient(circle at 76% 12%,rgba(255,122,0,.08),transparent 27%),
    radial-gradient(circle at 22% 85%,rgba(83,101,124,.14),transparent 33%),
    #090b0e;
}
.login-box{width:min(100%,440px)}
.login-brand{margin-bottom:22px;text-align:center}
.login-brand .mark{
  display:inline-grid;place-items:center;width:48px;height:48px;margin-bottom:14px;
  border-radius:14px;background:var(--orange);color:#16110d;font-size:22px;font-weight:950;
  box-shadow:0 12px 35px rgba(255,122,0,.18);
}
.login-brand h1{margin:0;font-size:25px;letter-spacing:-.025em}
.login-brand h1 span{color:var(--orange)}
.login-brand p{margin:7px 0 0;color:var(--muted);font-size:13px}
.login-card{padding:28px;border-radius:20px}
.login-card form p{margin-bottom:17px}
.login-card .btn{margin-top:4px}
.login-footer{margin-top:16px;text-align:center;color:#626b77;font-size:11px}

/* Responsive */
@media(max-width:1080px){
  .grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:860px){
  .shell{grid-template-columns:1fr}
  .side{position:static;height:auto;padding:18px 16px 13px;border-right:0;border-bottom:1px solid var(--line-soft)}
  .brand{margin:0 7px 14px}
  .nav{flex-direction:row;gap:5px;overflow:auto;padding-bottom:2px}
  .nav a{flex:0 0 auto;white-space:nowrap;min-height:38px;padding:0 12px}
  .nav a.active:before{display:none}
  .nav a:last-child{margin-top:0;margin-left:auto}
  .main{padding:24px 18px 36px}
  .top{margin-bottom:20px}
  .top h1{font-size:24px}
  .grid2,.grid3,.grid4{grid-template-columns:1fr;gap:14px}
  .stat{min-height:auto}
  .card{padding:20px;margin-bottom:18px;border-radius:15px}
  .details{grid-template-columns:110px minmax(0,1fr)}
}
@media(max-width:560px){
  .main{padding:20px 12px 30px}
  .card{padding:17px}
  .toolbar{margin-bottom:16px}
  .toolbar .btn{width:100%}
  .actions{justify-content:flex-start}
  .login-page{padding:18px}
  .login-card{padding:22px 19px}
  .grid4{margin-bottom:18px}
}

/* Orders / technician workflow */
.badge.order-new{background:rgba(89,168,232,.12);color:#a7d7fb}
.badge.order-planned{background:rgba(151,92,196,.14);color:#dfc0ff}
.badge.order-in_progress{background:rgba(255,122,0,.14);color:#ffc485;border:1px solid rgba(255,122,0,.18)}
.badge.order-waiting_customer{background:rgba(231,164,60,.14);color:#ffd08a}
.badge.order-completed{background:rgba(73,158,219,.14);color:#a7d7fb}
.badge.order-signed,.badge.order-invoiced{background:rgba(56,185,116,.14);color:#a6e8c2}
.badge.order-cancelled{background:rgba(225,90,90,.13);color:#ffadad}
.compact-form{padding:16px 0 20px;border-bottom:1px solid var(--line-soft);margin-bottom:4px}
.check,.confirm{display:flex;align-items:flex-start;gap:10px;color:var(--text-soft);font-size:13px}
.check input,.confirm input{width:auto;min-height:0;margin-top:3px}
.service-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.service-row:last-child{border-bottom:0}
.tech-page{min-height:100vh;padding:26px 16px 54px;background:#0b0e12}
.tech-wrap{width:min(100%,1080px);margin:auto}
.tech-brand{margin:0 2px 18px;font-weight:900;letter-spacing:.07em;font-size:17px}.tech-brand span{color:var(--orange)}
.tech-summary{padding:16px 18px;margin-bottom:24px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid var(--line-soft)}
.signature-box{width:100%;height:270px;background:#fff;border:2px solid #d9dde3;border-radius:16px;overflow:hidden;touch-action:none;box-shadow:inset 0 1px 0 rgba(0,0,0,.03),0 8px 22px rgba(0,0,0,.12)}
.signature-box canvas{display:block;width:100%;height:270px;cursor:crosshair}
.tech-submit{width:100%;min-height:52px;margin-top:20px;font-size:15px}
.tech-page h3{margin-top:26px}
@media(max-width:640px){.service-row{gap:10px}.tech-page{padding:12px 8px 34px}.tech-page .card{padding:18px 14px}.signature-box{height:250px}.signature-box canvas{height:250px}.signature-tools{justify-content:center}.signature-tools .btn{width:min(100%,360px)}.tech-submit{width:100%;min-height:54px}}


/* Order detail polish 1.4.2 */
.grid5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.order-view{display:flex;flex-direction:column;gap:22px}
.order-view .card,.order-view .toolbar,.order-view .grid2,.order-view .grid3{margin-bottom:0}
.order-toolbar{min-height:42px}
.order-stats{gap:18px}
.order-status-text{font-size:20px!important}
.order-notice{padding:14px 16px;border:1px solid rgba(255,122,0,.22);border-radius:12px;background:rgba(255,122,0,.075);color:#ffd0a1;font-size:13px}
.order-overview{align-items:stretch}
.order-card{height:100%}
.order-details{gap:13px 20px}
.order-description{margin-top:22px;padding-top:18px;border-top:1px solid var(--line-soft)}
.order-description>span{display:block;margin-bottom:7px;color:#8f99a6;font-size:11px;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
.order-description p{margin:0;color:var(--text-soft);line-height:1.6}
.timer-state{display:flex;align-items:center;gap:12px;margin:4px 0 20px;padding:14px 15px;border:1px solid rgba(56,185,116,.18);border-radius:12px;background:rgba(56,185,116,.07)}
.timer-state strong,.timer-state small{display:block}.timer-state small{margin-top:3px;color:var(--muted)}
.timer-dot{width:10px;height:10px;border-radius:50%;background:#54d18a;box-shadow:0 0 0 5px rgba(84,209,138,.1)}
.quick-form p{margin-bottom:14px}
.order-section{padding:0;overflow:hidden}
.order-section>.sectionhead{margin:0;padding:22px 24px 18px;border-bottom:1px solid var(--line-soft)}
.order-section>.sectionhead h3{margin:0 0 4px}
.order-section>.sectionhead small{display:block}
.order-entry-form{padding:20px 24px 22px;background:rgba(255,255,255,.012);border-bottom:1px solid var(--line-soft)}
.order-fields{margin-bottom:16px}
.order-form-row{display:flex;align-items:flex-end;gap:14px}
.order-form-row p{margin:0}.order-form-row .grow{flex:1;min-width:220px}
.billable-check{align-items:center;min-height:43px;margin:0;padding:0 5px;white-space:nowrap}
.order-table{border-radius:0}
.order-table table{min-width:850px}
.order-table th:first-child,.order-table td:first-child{padding-left:24px}
.order-table th:last-child,.order-table td:last-child{padding-right:24px}
.empty-state{padding:24px;color:var(--muted)}
.report-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid var(--line-soft)}
.report-no{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--orange-soft);color:#ffc180;font-weight:850}
.report-info strong,.report-info span{display:block}.report-info span{margin-top:4px;color:var(--muted);font-size:12px}
.invoice-ready{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 24px;padding:16px 18px;border:1px solid rgba(56,185,116,.2);border-radius:12px;background:rgba(56,185,116,.07)}
.invoice-ready strong,.invoice-ready span{display:block}.invoice-ready span{margin-top:4px;color:#96a1ad;font-size:12px}
.tech-card{padding:26px}.tech-title{margin:0}.tech-section{margin-top:26px}.tech-section h3{margin:0 0 10px}.sign-form{margin-top:28px;padding-top:24px;border-top:1px solid var(--line-soft)}.signature-tools{margin:12px 0 18px}
@media(max-width:1180px){.grid5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.order-view{gap:16px}.grid5{grid-template-columns:repeat(2,minmax(0,1fr))}.order-section>.sectionhead{padding:18px 20px 15px}.order-entry-form{padding:18px 20px}.order-form-row{align-items:stretch;flex-direction:column}.order-form-row .grow{width:100%;min-width:0}.billable-check{min-height:auto}.order-form-row>.btn{width:100%}.report-row{padding:15px 20px}.invoice-ready{margin:18px 20px;align-items:stretch;flex-direction:column}.invoice-ready form,.invoice-ready .btn{width:100%}}
@media(max-width:560px){.grid5{grid-template-columns:1fr}.order-fields{grid-template-columns:1fr}.order-section>.sectionhead{padding:17px}.order-entry-form{padding:16px 17px}.report-row{grid-template-columns:42px 1fr;padding:14px 17px}.report-row>.btn{grid-column:1/-1;width:100%}.invoice-ready{margin:16px 17px}.tech-card{padding:18px 14px}}


/* Mobile controls polish 1.4.2 */
@media(max-width:640px){
  .toolbar{justify-content:center;gap:10px}
  .toolbar .inline{display:flex;width:100%}
  .toolbar .inline .btn{width:100%}
  .actions{justify-content:center;gap:10px}
  .sectionhead{align-items:stretch;flex-direction:column}
  .sectionhead>.btn,.sectionhead>form,.sectionhead>form .btn{width:100%}
  .btn{min-height:46px;padding:0 18px;border-radius:13px;font-size:14px}
  .btn.sm{min-height:40px;padding:0 14px;border-radius:11px;font-size:13px}
  .tech-card .sectionhead{text-align:center}
  .tech-card .sectionhead>div{width:100%}
  .tech-card .sectionhead .btn{width:min(100%,360px);margin:0 auto}
  .sign-form>p{max-width:100%}
  .confirm{padding:14px 15px;border:1px solid var(--line-soft);border-radius:12px;background:rgba(255,255,255,.018)}
}

/* Order detail spacing fix 1.4.3 */
.order-view{display:block}
.order-view > *{margin-bottom:0!important}
.order-view > * + *{margin-top:24px!important}
.order-overview{gap:24px}
.order-stats{gap:20px}
.order-stats .stat{min-height:126px}
.order-card{padding:26px}
.order-card .sectionhead{margin-bottom:22px}
.order-card>h3{margin-bottom:22px}
@media(max-width:860px){
  .order-view > * + *{margin-top:18px!important}
  .order-overview{gap:18px}
  .order-card{padding:21px}
}
@media(max-width:560px){
  .order-view > * + *{margin-top:16px!important}
  .order-stats{gap:14px}
  .order-overview{gap:16px}
  .order-card{padding:18px 17px}
}

/* Mobile readability overhaul 1.4.4 */
@media(max-width:700px){
  body{font-size:16px;line-height:1.6}
  .shell{display:block}
  .side{padding:15px 12px 12px}
  .brand{margin:0 4px 13px;font-size:19px}
  .brand small{font-size:10px;margin-top:5px}
  .nav{gap:8px;padding-bottom:5px;scrollbar-width:thin}
  .nav a{min-height:48px;padding:0 16px;border-radius:13px;font-size:15px;font-weight:700}
  .main{padding:20px 14px 34px}
  .top{margin-bottom:20px;align-items:center}
  .top h1{font-size:27px;line-height:1.2}

  .card{padding:20px 18px;margin-bottom:18px;border-radius:18px}
  .card h3{font-size:20px;margin-bottom:18px}
  .sectionhead{gap:12px;margin-bottom:18px}
  .sectionhead h3{font-size:20px}
  .muted,small{font-size:13px}

  .grid2,.grid3,.grid4,.grid5{grid-template-columns:1fr;gap:16px}
  .stat{min-height:118px;padding:20px 19px;border-radius:17px}
  .stat span{font-size:13px;letter-spacing:.025em}
  .stat strong{margin:10px 0 5px;font-size:30px}
  .stat small{font-size:13px}

  form p{margin-bottom:20px}
  label{margin-bottom:8px;font-size:14px;font-weight:700}
  input,textarea,select{min-height:52px;padding:12px 14px;border-radius:12px;font-size:16px}
  textarea{min-height:130px}
  .check,.confirm{font-size:15px;gap:12px}
  .check input,.confirm input{width:21px;height:21px;min-height:21px;flex:0 0 21px;margin-top:2px}

  .btn{min-height:50px;padding:0 18px;border-radius:13px;font-size:15px}
  .btn.sm{min-height:44px;padding:0 15px;border-radius:11px;font-size:14px}
  .toolbar,.actions{gap:10px}
  .toolbar{justify-content:center;margin-bottom:20px}
  .toolbar>.btn,.toolbar>form,.toolbar>form>.btn,.toolbar>.inline,.toolbar>.inline>.btn{width:100%}
  .actions{justify-content:center}
  .actions>.btn,.actions>form,.actions>form>.btn{width:100%}

  .details{grid-template-columns:1fr;gap:3px;margin:0}
  .details dt{margin-top:13px;font-size:13px;text-transform:uppercase;letter-spacing:.035em}
  .details dt:first-child{margin-top:0}
  .details dd{font-size:16px;padding-bottom:4px}
  .amount{font-size:34px}
  .payrow{font-size:15px;padding:15px 0}
  .flash,.alert{padding:15px 16px;font-size:15px}
  .badge{min-height:30px;padding:4px 10px;font-size:12px}

  /* Keep wide data readable without shrinking it to desktop scale. */
  .tablewrap{margin-left:-2px;margin-right:-2px;-webkit-overflow-scrolling:touch}
  .tablewrap table{min-width:760px;font-size:15px}
  th{font-size:12px;padding:14px 15px}
  td{padding:16px 15px}
  .order-table table{min-width:820px}

  /* Order detail */
  .order-view > * + *{margin-top:20px!important}
  .order-stats{gap:16px}
  .order-overview{gap:18px}
  .order-card{padding:20px 18px}
  .order-card .sectionhead{margin-bottom:20px}
  .order-description{margin-top:20px;padding-top:18px}
  .order-description>span{font-size:13px}
  .order-description p{font-size:16px}
  .timer-state{padding:16px;margin-bottom:20px;font-size:15px}
  .timer-dot{width:12px;height:12px}
  .order-section>.sectionhead{padding:20px 18px 17px}
  .order-entry-form{padding:20px 18px}
  .order-form-row{gap:16px}
  .billable-check{padding:8px 0}
  .empty-state{padding:24px 18px;font-size:15px}
  .report-row{grid-template-columns:48px minmax(0,1fr);gap:13px;padding:17px 18px}
  .report-no{width:44px;height:44px;font-size:16px}
  .report-info strong{font-size:16px}
  .report-info span{font-size:13px}
  .report-row>.btn{grid-column:1/-1;width:100%}
  .invoice-ready{margin:18px;padding:18px;gap:14px}
  .invoice-ready strong{font-size:16px}
  .invoice-ready span{font-size:13px}

  /* Technician / signature view */
  .tech-page{padding:14px 10px 32px}
  .tech-brand{font-size:19px;margin-bottom:16px}
  .tech-card{padding:21px 17px}
  .tech-card h2{font-size:25px;line-height:1.2}
  .tech-card h3{font-size:20px}
  .tech-summary{padding:17px;margin-bottom:22px;font-size:15px}
  .tech-section{margin-top:28px}
  .service-row{display:block;padding:16px 0;font-size:15px}
  .service-row>*+*{margin-top:8px}
  .signature-box{height:320px;border-radius:16px}
  .signature-box canvas{height:320px}
  .signature-tools{display:flex;justify-content:center;margin:14px 0 20px}
  .signature-tools .btn{width:100%;max-width:420px}
  .sign-form{margin-top:30px;padding-top:25px}
  .confirm{padding:16px;border-radius:14px}
  .tech-submit{min-height:56px;font-size:16px}

  /* Login */
  .login-page{padding:18px 14px}
  .login-brand h1{font-size:27px}
  .login-brand p{font-size:14px}
  .login-card{padding:24px 20px}
}

@media(max-width:390px){
  .main{padding-left:11px;padding-right:11px}
  .card,.order-card{padding-left:16px;padding-right:16px}
  .top h1{font-size:25px}
  .stat strong{font-size:28px}
  .signature-box,.signature-box canvas{height:290px}
}

/* Accounting 1.5.0 */
.accounting-tabs{margin-bottom:24px}
.accounting-year{margin:2px 0 20px}
.accounting-year h3{margin:0 0 5px;font-size:20px}
.accounting-year p{margin:0}
.accounting-stats{margin-bottom:22px}
.accounting-actions{display:grid;grid-template-columns:1fr;gap:11px;margin:8px 0 24px}
.accounting-actions .btn{width:100%;min-height:48px}
.accounting-note{padding:16px 17px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.018)}
.accounting-note p{margin:6px 0 0;color:var(--muted)}
.document-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 0;border-top:1px solid var(--line-soft)}
.document-row:first-of-type{border-top:0}
.document-row>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.document-row span,.document-row small{color:var(--muted)}
.document-row small{font-size:10px;overflow-wrap:anywhere}
.document-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}
.span2{grid-column:span 2}
@media(max-width:760px){
  .accounting-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .accounting-tabs .btn{width:100%;min-height:48px;padding:0 10px}
  .accounting-year{display:block}
  .accounting-year .toolbar{display:grid;grid-template-columns:1fr 1fr;margin:16px 0 0;gap:9px}
  .accounting-year .toolbar .btn:last-child{grid-column:1/-1}
  .accounting-stats .stat{padding:22px;min-height:122px}
  .accounting-stats .stat span{font-size:13px}
  .accounting-stats .stat strong{font-size:29px;margin-top:11px}
  .document-row{align-items:stretch;flex-direction:column}
  .document-row .btn{width:100%;min-height:50px}
  .document-add{grid-template-columns:1fr}
  .document-add .btn{width:100%;min-height:50px}
  .span2{grid-column:auto}
}
@media(max-width:480px){
  .accounting-tabs{grid-template-columns:1fr}
  .accounting-tabs .btn{font-size:15px;min-height:52px}
}

/* Accounting dashboard spacing 1.5.3 */
.accounting-year{margin-bottom:26px}
.accounting-stats{gap:22px;margin-bottom:26px}
.accounting-vat{gap:22px;margin-bottom:28px}
.accounting-main-grid{gap:26px;align-items:start}
.accounting-main-grid>.card{margin-bottom:0}
.accounting-main-grid .tablewrap.card h3{padding-top:25px}

@media(max-width:860px){
  .accounting-year{margin-bottom:22px}
  .accounting-stats{margin-bottom:22px}
  .accounting-vat{margin-bottom:22px}
  .accounting-main-grid{gap:22px}
}
@media(max-width:700px){
  .accounting-year{margin-bottom:24px}
  .accounting-stats{gap:18px;margin-bottom:24px}
  .accounting-vat{gap:18px;margin-bottom:26px}
  .accounting-main-grid{gap:24px}
  .accounting-main-grid>.card{margin-bottom:0}
}

/* E-Rechnungscenter 1.6.0 */
.einvoice-status-grid{gap:22px;margin-bottom:28px}
.einvoice-actions-grid{gap:26px;margin-bottom:28px;align-items:start}
.einvoice-actions-grid>.card{margin-bottom:0}
.einvoice-list{margin-top:0}
.einvoice-detail-grid{gap:26px;margin-bottom:28px;align-items:start}
.einvoice-detail-grid>.card{margin-bottom:0}
.einvoice-list .sectionhead{padding:0 0 18px}
.einvoice-list .sectionhead h3{margin-bottom:5px}
@media(max-width:860px){
  .einvoice-status-grid{gap:18px;margin-bottom:24px}
  .einvoice-actions-grid,.einvoice-detail-grid{gap:22px;margin-bottom:24px}
}
@media(max-width:700px){
  .einvoice-status-grid{gap:16px;margin-bottom:24px}
  .einvoice-status-grid .stat{padding:22px;min-height:118px}
  .einvoice-status-grid .stat span{font-size:13px}
  .einvoice-status-grid .stat strong{font-size:24px;margin-top:10px}
  .einvoice-actions-grid,.einvoice-detail-grid{gap:24px;margin-bottom:26px}
  .einvoice-actions-grid .btn,.einvoice-detail-grid .btn{width:100%;min-height:52px;font-size:15px}
  .einvoice-list{margin-top:2px}
}

/* 1.6.3 – Gefahrenbereich / System-Reset */
.btn.danger{background:#b42318;border-color:#b42318;color:#fff;box-shadow:0 5px 14px rgba(180,35,24,.18)}
.btn.danger:hover{background:#912018;border-color:#912018;color:#fff}
.danger-zone{border:1px solid rgba(180,35,24,.28)}
.reset-form{margin-top:22px}
@media(max-width:700px){.danger-zone .sectionhead{align-items:flex-start}.danger-zone .sectionhead>.btn{width:100%;text-align:center}.reset-form .toolbar{display:grid;grid-template-columns:1fr}.reset-form .toolbar .btn{width:100%;justify-content:center}}
/* 1.7.0 Abos & Software */
.nav a[href*="subscriptions"],.nav a[href*="software-projects"]{white-space:nowrap}
@media(max-width:720px){
  .main .toolbar form{width:100%}
  .main .toolbar form .btn{width:100%;justify-content:center}
  .main .card h3{margin-top:0}
  .main .grid2,.main .grid3{gap:18px}
}

/* 1.7.6 – Abo-Kündigung / Kundenportal */
.subscription-cancel-form{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:0}
.subscription-cancel-form input[type=date]{width:auto;min-width:170px}
.subscription-cancel-form .btn{min-height:46px}
@media(max-width:720px){
  .subscription-cancel-form{display:grid;grid-template-columns:1fr;gap:12px;width:100%}
  .subscription-cancel-form input[type=date],.subscription-cancel-form .btn{width:100%}
}

/* 1.9.0 – Angebote */
.summary-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.summary-row:last-child{border-bottom:0;font-size:18px;padding-top:13px}
.nav a[href*="quotes"]{white-space:nowrap}
@media(max-width:720px){
  #quote-items textarea{min-width:240px}
  .main .grid3>.card{min-width:0}
}

/* 2.0.1 – Lagerverwaltung */
.inventory-tabs{margin-bottom:24px;gap:10px;align-items:center}
.inventory-stats{margin-bottom:24px}
.inventory-main{margin-top:0;gap:24px}
.inventory-main .card{min-width:0}
@media(max-width:900px){.inventory-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.inventory-tabs .btn{width:100%;justify-content:center;min-height:48px}.inventory-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.inventory-tabs{grid-template-columns:1fr}.inventory-stats{grid-template-columns:1fr}.inventory-stats .stat{padding:20px}.inventory-main{display:block}.inventory-main>.card{margin-bottom:20px}}

/* 2.0.1 – globaler Layout-Fix: keine verschachtelten Scrollfenster */
html,body{max-width:100%;overflow-x:hidden}
.main,.card,.grid2,.grid3,.grid4,.grid5,.tablewrap{min-width:0;max-width:100%}
.tablewrap{overflow:visible!important;padding:0}
.tablewrap table,.order-table table{width:100%;min-width:0!important;max-width:100%;table-layout:auto}
th,td{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal}
.tablewrap .actions{white-space:normal;flex-wrap:wrap}
.order-section{overflow:visible}
.nav{flex-wrap:wrap;overflow:visible!important}

@media(max-width:860px){
  .nav{display:flex;flex-wrap:wrap;overflow:visible!important;padding-bottom:0}
  .nav a{flex:1 1 auto;min-width:120px;white-space:normal;text-align:center}
  .nav a:last-child{margin-left:0}
}

@media(max-width:700px){
  .tablewrap{margin-left:0!important;margin-right:0!important;overflow:visible!important}
  .tablewrap table,.order-table table,.invoice-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed;font-size:13px}
  th,td{padding:10px 7px;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word}
  th{font-size:10px;letter-spacing:.02em}
  .money{text-align:right;white-space:normal!important}
  .tablewrap .actions{display:flex;justify-content:flex-start;gap:6px;white-space:normal}
  .tablewrap .actions .btn,.tablewrap td .btn.sm{width:100%;min-height:38px;white-space:normal;text-align:center}
  #quote-items textarea{min-width:0!important;width:100%}
}

@media(max-width:520px){
  .nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .nav a{min-width:0;width:100%;white-space:normal}
  .tablewrap table,.order-table table,.invoice-table{font-size:12px}
  th,td{padding:9px 5px}
}

/* 2.2.4 – einheitliches Spacing auf allen Backoffice-Seiten */
:root{
  --space-1:8px;
  --space-2:12px;
  --space-3:16px;
  --space-4:20px;
  --space-5:24px;
  --space-6:32px;
}

/* Seitenrhythmus */
.main{padding-top:var(--space-6)}
.top{margin-bottom:var(--space-5)}
.card{padding:var(--space-5);margin-bottom:var(--space-5)}
.grid2,.grid3,.grid4,.grid5{gap:var(--space-4)}
.grid4{margin-bottom:var(--space-5)}
.sectionhead{gap:var(--space-3);margin-bottom:var(--space-4)}
.sectionhead h3,.card h3{padding:0}
.card h3{margin:0 0 var(--space-4)}
.toolbar{gap:var(--space-2);margin-bottom:var(--space-4)}
.actions{gap:var(--space-2)}

/* Tabellenkarten: tablewrap darf das Card-Padding nicht mehr auf 0 setzen. */
.card.tablewrap,
.tablewrap.card{padding:var(--space-5)!important;overflow:visible!important}
.card.tablewrap>.sectionhead,
.tablewrap.card>.sectionhead{margin:0 0 var(--space-4);padding:0}
.card.tablewrap>.sectionhead h3,
.tablewrap.card>.sectionhead h3,
.tablewrap.card h3{padding:0!important;margin:0 0 4px}
.card.tablewrap>.sectionhead p,
.tablewrap.card>.sectionhead p{margin:0}
.card.tablewrap>table,
.tablewrap.card>table{margin:0;width:100%}
.card.tablewrap>table+*,
.tablewrap.card>table+*{margin-top:var(--space-5)!important}

/* Tabellenzeilen und Summen */
th,td{padding:14px 16px}
th{padding-top:13px;padding-bottom:13px}
tfoot td{padding-top:16px;padding-bottom:16px}
.summary-row{min-height:44px;padding:11px 0;gap:var(--space-4)}
.summary-row:last-child{padding-top:14px;padding-bottom:4px}

/* Formulare und Inhaltsblöcke */
form p{margin:0 0 var(--space-4)}
.flash,.alert{margin-bottom:var(--space-4)}
.details{gap:12px var(--space-4)}
.payrow{padding:14px 0}
.compact-form{padding:var(--space-3) 0 var(--space-4)}
.document-row{padding:var(--space-3) 0}

/* Spezifische Seiten auf dasselbe Raster ziehen */
.inventory-tabs,.inventory-stats,.accounting-tabs,.accounting-stats{margin-bottom:var(--space-5)}
.inventory-main,.accounting-stats,.accounting-vat,.einvoice-status-grid,.einvoice-actions-grid,.einvoice-detail-grid{gap:var(--space-5)}
.order-view > * + *{margin-top:var(--space-5)!important}
.order-card{padding:var(--space-5)}
.order-card .sectionhead{margin-bottom:var(--space-4)}
.order-section>.sectionhead{padding:var(--space-4) var(--space-5)}
.order-entry-form{padding:var(--space-4) var(--space-5) var(--space-5)}
.report-row{padding:var(--space-3) var(--space-5)}
.invoice-ready{margin:var(--space-4) var(--space-5);padding:var(--space-3) var(--space-4)}

@media(max-width:860px){
  .main{padding:24px 18px 36px}
  .top{margin-bottom:20px}
  .card{padding:20px;margin-bottom:20px}
  .card.tablewrap,.tablewrap.card{padding:20px!important}
  .grid2,.grid3,.grid4,.grid5{gap:16px}
  .sectionhead{margin-bottom:16px}
  .order-view > * + *{margin-top:18px!important}
  .order-card{padding:20px}
  .order-section>.sectionhead,.order-entry-form{padding-left:20px;padding-right:20px}
  .report-row{padding-left:20px;padding-right:20px}
}

@media(max-width:560px){
  .main{padding:20px 12px 30px}
  .top{margin-bottom:18px}
  .card{padding:17px;margin-bottom:16px}
  .card.tablewrap,.tablewrap.card{padding:17px!important}
  .card h3{margin-bottom:16px}
  .sectionhead{gap:12px;margin-bottom:16px}
  .grid2,.grid3,.grid4,.grid5{gap:14px}
  .toolbar{margin-bottom:16px}
  th,td{padding:11px 7px}
  .summary-row{min-height:42px;padding:10px 0}
  .order-view > * + *{margin-top:16px!important}
  .order-card{padding:17px}
  .order-section>.sectionhead,.order-entry-form{padding-left:17px;padding-right:17px}
  .report-row{padding-left:17px;padding-right:17px}
}


/* 2.5.0 – Mobile UI: Drawer-Navigation und Karten-Tabellen */
.mobile-header,.nav-backdrop,.mobile-menu-close{display:none}
.side-mobile-head{display:block}

@media(max-width:860px){
  body{overflow-x:hidden}
  .mobile-header{
    position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:space-between;gap:12px;
    min-height:64px;padding:10px 14px;background:rgba(10,12,15,.96);border-bottom:1px solid var(--line-soft);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)
  }
  .mobile-brand{font-size:14px;font-weight:900;letter-spacing:.055em;white-space:nowrap}.mobile-brand span{color:var(--orange)}
  .mobile-menu-toggle{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 13px;border:1px solid #3a424d;border-radius:11px;background:#181e25;color:#fff;font-weight:800;cursor:pointer}
  .mobile-menu-toggle .menu-icon{font-size:20px;line-height:1}
  .nav-backdrop{display:block;position:fixed;inset:0;z-index:80;border:0;background:rgba(0,0,0,.64);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
  .shell{display:block;min-height:0}
  .side{position:fixed!important;z-index:90;left:0;top:0;bottom:0;width:min(86vw,330px);height:100dvh!important;padding:18px 14px;background:#0e1217;border-right:1px solid #2b323a;border-bottom:0;box-shadow:18px 0 55px rgba(0,0,0,.4);transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;overscroll-behavior:contain}
  .side-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;padding:2px 3px 14px;border-bottom:1px solid var(--line-soft)}
  .side .brand{margin:0;font-size:18px}.side .brand small{font-size:9px}
  .mobile-menu-close{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;padding:0;border:1px solid #3a424d;border-radius:11px;background:#171c23;color:#fff;font-size:28px;line-height:1;cursor:pointer}
  .side .nav{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:7px!important;overflow:visible!important;padding:0!important}
  .side .nav a{flex:none!important;width:100%!important;min-width:0!important;min-height:50px!important;padding:0 15px!important;justify-content:flex-start!important;text-align:left!important;white-space:normal!important;border-radius:12px;font-size:15px}
  .side .nav a:last-child{margin:14px 0 0!important;border-color:#563033;background:#281719;color:#ffc8c8}
  .side .nav a.active:before{display:block;left:0;top:11px;bottom:11px}
  .nav-open{overflow:hidden}
  .nav-open .side{transform:translateX(0)}
  .nav-open .nav-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  .main{width:100%;max-width:none;padding:20px 14px 36px}
  .top{margin-bottom:18px;align-items:flex-start}.top h1{font-size:26px}
}

@media(max-width:700px){
  .main{padding:18px 12px 32px}
  .card{padding:18px 16px;margin-bottom:16px;border-radius:16px}
  .card.tablewrap,.tablewrap.card{padding:16px!important}
  .grid2,.grid3,.grid4,.grid5{gap:14px}
  .stat{padding:18px 17px;min-height:auto}
  .toolbar{align-items:stretch}.toolbar .btn,.toolbar form,.toolbar form .btn{width:100%}
  .sectionhead{align-items:stretch;flex-direction:column}
  .sectionhead>.btn,.sectionhead>form,.sectionhead>form>.btn{width:100%}

  /* Tabellen werden auf Mobilgeräten zu beschrifteten Karten statt gequetschten Desktop-Tabellen. */
  .tablewrap table.mobile-card-table{display:block!important;width:100%!important;font-size:14px!important;table-layout:auto!important}
  .tablewrap table.mobile-card-table thead{display:none!important}
  .tablewrap table.mobile-card-table tbody{display:block;width:100%}
  .tablewrap table.mobile-card-table tbody tr{display:block;width:100%;margin:0 0 12px;padding:10px 13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.015);box-shadow:0 5px 18px rgba(0,0,0,.08)}
  .tablewrap table.mobile-card-table tbody tr:last-child{margin-bottom:0}
  .tablewrap table.mobile-card-table tbody td{display:grid!important;grid-template-columns:minmax(108px,38%) minmax(0,1fr);align-items:start;gap:12px;width:100%!important;max-width:none!important;padding:10px 0!important;border-bottom:1px solid var(--line-soft)!important;text-align:right!important;white-space:normal!important;font-size:14px}
  .tablewrap table.mobile-card-table tbody td:last-child{border-bottom:0!important}
  .tablewrap table.mobile-card-table tbody td::before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.045em;text-transform:uppercase;text-align:left}
  .tablewrap table.mobile-card-table tbody td .actions{justify-content:flex-end;width:100%}
  .tablewrap table.mobile-card-table tbody td .actions .btn,.tablewrap table.mobile-card-table tbody td>.btn{width:auto;min-width:110px}
  .tablewrap table.mobile-card-table tfoot{display:block;margin-top:12px;padding:10px 13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02)}
  .tablewrap table.mobile-card-table tfoot tr{display:grid;grid-template-columns:1fr auto;gap:8px}
  .tablewrap table.mobile-card-table tfoot td{display:block!important;width:auto!important;padding:8px 0!important;border:0!important;text-align:right!important}
  .tablewrap table.mobile-card-table tfoot td[colspan]{text-align:left!important}
  .order-table table.mobile-card-table{min-width:0!important}
  .order-table table.mobile-card-table tbody td:first-child,.order-table table.mobile-card-table tbody td:last-child{padding-left:0!important;padding-right:0!important}
}

@media(max-width:430px){
  .mobile-header{padding-left:11px;padding-right:11px}.mobile-brand{font-size:13px}.mobile-menu-toggle{padding:0 11px}
  .main{padding-left:10px;padding-right:10px}.card{padding:16px 14px}.card.tablewrap,.tablewrap.card{padding:14px!important}
  .top h1{font-size:24px}
  .tablewrap table.mobile-card-table tbody td{grid-template-columns:1fr;gap:4px;text-align:left!important}
  .tablewrap table.mobile-card-table tbody td .actions{justify-content:flex-start}
  .tablewrap table.mobile-card-table tbody td .actions .btn,.tablewrap table.mobile-card-table tbody td>.btn{width:100%}
}

/* 2.6.2 – Untermenü Einstellungen */
.nav-group{display:flex;flex-direction:column;gap:4px}
.nav-group>a{width:100%}
.nav-sub{display:flex;flex-direction:column;gap:4px;padding-left:14px}
.nav-sub a{min-height:36px!important;padding-left:18px!important;font-size:13px!important;color:#aab2bd;border-left:1px solid rgba(255,255,255,.08);border-radius:9px!important}
.nav-sub a.active{color:#fff;background:rgba(255,122,0,.12)}
.nav-sub a.active:before{display:none!important}
@media(max-width:900px){
  .side .nav-group{width:100%;gap:5px}
  .side .nav-sub{padding-left:16px}
  .side .nav-sub a{min-height:44px!important;padding-left:18px!important;font-size:14px!important;background:rgba(255,255,255,.02)}
}

/* 2.6.3 – Desktop shell fix: feste Sidebar ohne Grid-Kompression */
@media (min-width:861px){
  .shell{
    display:block!important;
    min-height:100vh;
  }
  .side{
    position:fixed!important;
    top:0!important;
    left:0!important;
    bottom:0!important;
    width:268px!important;
    height:100vh!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    z-index:60;
  }
  .main{
    display:block;
    margin-left:268px!important;
    width:calc(100% - 268px)!important;
    max-width:none!important;
    min-width:0!important;
  }
}
