:root {
  --ink: var(--sb-ink); --muted: var(--sb-muted); --navy: var(--sb-navy);
  --blue: var(--sb-blue); --blue-soft: #eaf4ff; --line: var(--sb-line);
  --bg: var(--sb-bg); --card: var(--sb-card); --red: var(--sb-red);
  --red-soft: #fff1ef; --amber: #805500; --amber-soft: #fff8e8;
  --green: #08744c; --radius: var(--sb-radius);
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:15px;min-height:100vh}
.topbar{background:var(--navy);color:#fff;padding:22px max(28px,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;gap:32px;position:relative;overflow:hidden}
.topbar::after{content:"";position:absolute;right:15%;top:-120px;width:330px;height:330px;background:url('/shared/assets/sharkbyte-emblem-light.svg') center/contain no-repeat;opacity:.035;transform:rotate(-8deg);pointer-events:none}
.brand-lockup{display:flex;align-items:center;gap:32px;position:relative;z-index:1}.brand-logo{display:block;width:225px;min-width:150px;height:auto;padding:7px 0}.product-heading{border-left:1px solid rgba(255,255,255,.24);padding-left:28px}.product-heading>span{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--sb-mint);font-weight:800}.topbar h1{font-size:26px;margin:3px 0 1px}.topbar p{margin:0;color:#d2e0e8;font-size:13px}.save-state{font-size:12px;padding:8px 12px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#e4edf2;background:rgba(255,255,255,.06);white-space:nowrap;position:relative;z-index:1}.save-state::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sb-mint);margin-right:7px;box-shadow:0 0 0 3px rgba(29,237,157,.12)}
body>.brand-accent{position:relative;z-index:11}.steps{display:flex;justify-content:center;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;box-shadow:0 5px 20px rgba(7,58,89,.04)}.step{border:0;background:transparent;padding:15px 28px;color:var(--muted);font-weight:700;border-bottom:3px solid transparent;cursor:pointer}.step span{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#edf2f5;margin-right:8px}.step.active{color:var(--sb-purple);border-color:var(--sb-purple)}.step.active span{background:var(--sb-purple);color:#fff}
main{max-width:1280px;margin:0 auto;padding:34px 28px 70px}.page{display:none}.page.active{display:block}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:22px}.page-heading h2{font-size:29px;margin:5px 0 6px;color:var(--navy)}.page-heading p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.13em;color:var(--sb-purple);font-weight:800}
.card,.holiday-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sb-shadow)}.context-grid{display:grid;grid-template-columns:1fr 1fr 180px;gap:18px;padding:18px;margin-bottom:18px}label{display:grid;gap:7px;font-weight:700;font-size:13px}input,select,textarea{width:100%;border:1px solid #bfd0da;border-radius:9px;background:#fff;padding:10px 12px;font:inherit;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:var(--sb-focus)}.prefix{background:var(--blue-soft);border-left:4px solid var(--blue);border-radius:9px;padding:8px 14px;display:grid;align-content:center}.prefix span{font-size:12px;color:var(--muted)}.prefix strong{font-size:22px;color:var(--navy)}
button,.file-button{font:inherit;font-weight:750;border-radius:9px;padding:10px 15px;cursor:pointer;border:1px solid transparent;text-align:center}.primary{background:var(--sb-purple);color:#fff;box-shadow:0 5px 14px rgba(110,30,237,.16)}.primary:hover{background:var(--sb-purple-hover)}.primary:disabled{background:#a9b9c3;box-shadow:none;cursor:not-allowed}.secondary,.file-button{background:#fff;border-color:#b9cbd5;color:var(--navy)}.secondary:hover,.file-button:hover{background:#f3f8fa;border-color:var(--blue)}.file-button input{display:none}
.holiday-list{display:grid;gap:14px}.holiday-card{overflow:hidden}.holiday-header{display:grid;grid-template-columns:minmax(190px,1fr) 150px minmax(190px,.8fr) minmax(260px,1.2fr) auto;gap:13px;padding:18px;align-items:end}.teams-preview{padding:10px 12px;border:1px dashed #8fbbdc;border-radius:9px;background:#f5faff;min-height:42px;font-size:13px}.range-list{background:#f7fafb;border-top:1px solid var(--line);padding:12px 18px}.range-row{display:grid;grid-template-columns:36px 1fr 1fr 42px;gap:12px;align-items:end;padding:7px 0}.range-number{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#e7f1f7;color:var(--navy);font-size:12px;font-weight:800;margin-bottom:7px}.icon-button{border:0;background:transparent;color:#8291a3;padding:8px}.icon-button:hover{color:var(--red);background:var(--red-soft)}.range-add{margin-top:8px}.field-error{border-color:var(--red)!important;background:#fff8f7!important}.issue{padding:11px 13px;border-radius:9px;margin:9px 0;font-size:13px}.issue.error{color:#8c251e;background:var(--red-soft);border:1px solid #f2c1bb}.issue.warning{color:#744500;background:var(--amber-soft);border:1px solid #efd99d}
.empty{text-align:center;border:1px dashed #adc2cf;border-radius:var(--radius);padding:42px 20px;color:var(--muted);background:#fbfdfd}.empty h3{color:var(--navy);margin:7px}.empty-icon{font-size:28px;color:var(--sb-gold)}.footer-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.toolbar{padding:13px;display:flex;align-items:center;gap:15px;margin-bottom:12px}.toolbar input{flex:1}.toolbar span{color:var(--muted);white-space:nowrap}
.footer-spacer{flex:1}.setup-import-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:28px!important;border-top:4px solid var(--sb-blue)!important}.setup-import-card h3{margin:0 0 7px}.setup-import-card p{margin:0;color:var(--muted);line-height:1.55}.setup-import-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:15px;background:#eaf4ff;color:var(--sb-blue);font-size:28px;font-weight:900}.setup-file-button{white-space:nowrap;background:var(--sb-purple);border-color:var(--sb-purple);color:#fff}.setup-file-button:hover{background:var(--sb-purple-hover);border-color:var(--sb-purple-hover)}.setup-summary{margin-top:15px}.setup-waiting{text-align:center;color:var(--muted);padding:20px;border:1px dashed #adc2cf;border-radius:var(--radius)}.setup-loaded{padding:20px;display:flex;align-items:center;gap:16px;border-left:4px solid var(--sb-mint)}.setup-loaded-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#e2fbf1;color:var(--green);font-size:20px;font-weight:900}.setup-loaded h3{margin:3px 0;color:var(--navy)}.setup-loaded p{margin:0;color:var(--muted)}select:disabled{background:#f1f5f7;color:var(--navy);font-weight:700;opacity:1}.public-holiday-import{padding:20px!important;margin-bottom:18px}.holiday-import-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.holiday-import-head h3{margin:4px 0 5px;font-size:20px}.holiday-import-head p{margin:0;color:var(--muted)}.source-badge{padding:6px 10px;border-radius:999px;background:#e2fbf1;color:var(--green);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.holiday-import-controls{display:grid;grid-template-columns:1.5fr .7fr .7fr auto;gap:12px;align-items:end;margin-top:18px}.holiday-source-note{font-size:11px;color:var(--muted);margin-top:10px}.holiday-result-head,.holiday-result-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.holiday-result-head{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.holiday-result-head>div{display:flex;gap:7px}.public-holiday-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;max-height:360px;overflow:auto;padding:12px;background:#f7fafb;border:1px solid var(--line);border-radius:10px}.public-holiday-list label{display:flex;align-items:center;gap:10px;padding:10px;background:#fff;border:1px solid #e2e9ed;border-radius:9px}.public-holiday-list input{width:18px;accent-color:var(--sb-purple)}.public-holiday-list span{display:grid;gap:2px}.public-holiday-list small{color:var(--muted);font-weight:500}.holiday-result-actions{justify-content:flex-end;margin-top:12px}
.matrix-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff;max-height:62vh;box-shadow:var(--sb-shadow)}.matrix{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}.matrix th,.matrix td{padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.matrix th{background:#eef4f7;color:var(--navy);position:sticky;top:0;z-index:2}.matrix th:first-child,.matrix td:first-child{position:sticky;left:0;text-align:left;min-width:245px;background:#fff;z-index:1}.matrix th:first-child{background:#eef4f7;z-index:3}.matrix .conflict-row td:first-child{color:var(--red);font-weight:800}.matrix input[type=checkbox]{width:20px;height:20px;accent-color:var(--sb-purple)}
.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:15px}.summary-card{padding:18px;border-top:4px solid var(--blue)}.summary-card:nth-child(2){border-top-color:var(--sb-purple)}.summary-card:nth-child(3){border-top-color:var(--sb-gold)}.summary-card:nth-child(4){border-top-color:var(--sb-mint)}.summary-card strong{display:block;font-size:28px;color:var(--navy)}.summary-card span{color:var(--muted);font-size:12px}.card h3{margin-top:0;color:var(--navy)}.page>.card:not(.context-grid):not(.toolbar){padding:20px;margin-bottom:15px}.report-ok{color:var(--green);padding:20px;text-align:center}.note textarea{resize:vertical}.danger-text{color:var(--red)}
#toast{position:fixed;right:25px;bottom:25px;background:var(--navy);color:#fff;padding:12px 16px;border-left:4px solid var(--sb-mint);border-radius:10px;box-shadow:0 8px 30px #0003;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}dialog{border:0;border-radius:14px;max-width:500px;padding:25px;box-shadow:0 20px 70px #102a4355}dialog::backdrop{background:#073a5999}.dialog-close{float:right;background:transparent;font-size:20px;padding:2px}
@media(max-width:1000px){.steps .step{padding-left:16px;padding-right:16px}.holiday-import-controls{grid-template-columns:1fr 1fr}.public-holiday-list{grid-template-columns:1fr}}
@media(max-width:900px){.topbar{align-items:flex-start}.brand-lockup{gap:20px}.brand-logo{width:180px}.product-heading{padding-left:20px}.save-state{display:none}}
@media(max-width:700px){.brand-lockup{align-items:flex-start;flex-direction:column;gap:10px}.product-heading{border-left:0;border-top:1px solid rgba(255,255,255,.24);padding:10px 0 0}.steps .step{font-size:0;padding:12px}.steps .step span{font-size:13px;margin:0}.page-heading{align-items:flex-start;flex-direction:column}.context-grid,.holiday-header,.summary-cards,.setup-import-card,.holiday-import-controls{grid-template-columns:1fr}.setup-import-card{justify-items:start}.range-row{grid-template-columns:32px 1fr 1fr 32px}.footer-actions{flex-wrap:wrap}.footer-actions button{flex:1}.footer-spacer{display:none}.holiday-result-head{align-items:flex-start;flex-direction:column}.topbar,main{padding-left:17px;padding-right:17px}}
.brand-version{display:grid;justify-items:start;gap:1px}.brand-version>span{font-size:9px;letter-spacing:.08em;color:#a9bdc9;margin-left:2px}
.holiday-import-mode{display:grid;gap:9px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f7fafb}.holiday-import-mode>strong{color:var(--navy);margin-bottom:2px}.holiday-import-mode>label:not(#combined-holiday-name-wrap){display:flex;align-items:flex-start;gap:10px;padding:10px;background:#fff;border:1px solid #e2e9ed;border-radius:9px;cursor:pointer}.holiday-import-mode input[type=radio]{width:18px;margin-top:2px;accent-color:var(--sb-purple)}.holiday-import-mode span{display:grid;gap:2px}.holiday-import-mode small{color:var(--muted);font-weight:500}.holiday-import-mode #combined-holiday-name-wrap{padding:10px 0 0}

.readonly-panel{padding:20px;margin:0 0 18px;border-left:4px solid var(--sb-blue);background:linear-gradient(135deg,#fff,#f2f8ff)}.readonly-panel h3{margin:3px 0 6px;color:var(--navy)}.readonly-panel p{margin:0 0 12px;color:var(--muted)}.readonly-chip-list{display:flex;gap:8px;flex-wrap:wrap}.readonly-chip{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#eaf4ff;color:var(--navy);font-weight:800;font-size:12px;border:1px solid #c8ddf1}

.readonly-panel{padding:20px;margin:0 0 18px;border-left:4px solid var(--sb-blue);background:linear-gradient(135deg,#fff,#f2f8ff)}.readonly-panel h3{margin:3px 0 6px;color:var(--navy)}.readonly-panel p{margin:0 0 12px;color:var(--muted)}.readonly-chip-list{display:flex;gap:8px;flex-wrap:wrap}.readonly-chip{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#eaf4ff;color:var(--navy);font-weight:800;font-size:12px;border:1px solid #c8ddf1}

.assignment-board{display:grid;gap:16px;padding:16px;background:#f7fafb}.assignment-card{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--sb-shadow);overflow:hidden}.assignment-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;background:linear-gradient(135deg,#eef8ff,#fff);border-bottom:1px solid var(--line)}.assignment-card>header span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:850}.assignment-card>header strong{color:var(--navy);font-size:17px}.assignment-card.conflict-card>header{background:linear-gradient(135deg,#fff1ef,#fff)}.assignment-list{display:grid;gap:0}.assignment-item{border-bottom:1px solid #edf2f5;padding:14px 18px}.assignment-item:last-child{border-bottom:0}.assignment-check{display:flex;align-items:flex-start;gap:11px;font-size:14px;cursor:pointer}.assignment-check input{width:20px;height:20px;margin-top:1px;accent-color:var(--sb-purple)}.assignment-check span{display:grid;gap:2px}.assignment-check small{color:var(--muted);font-weight:550}.routing-box{display:grid;grid-template-columns:minmax(190px,.9fr) minmax(180px,.9fr) minmax(180px,.9fr) minmax(260px,1.2fr);gap:12px;margin:12px 0 0 31px;padding:14px;border:1px solid #d6e6f2;border-radius:12px;background:#f5fbff}.routing-box textarea{resize:vertical;min-height:78px}.is-hidden{display:none!important}.superuser-card p{margin-top:0;color:var(--muted)}.superuser-list{display:grid;gap:10px}.superuser-row{display:grid;grid-template-columns:34px 1fr 1fr;gap:12px;align-items:end}.superuser-row>span{height:39px;width:34px;border-radius:10px;display:grid;place-items:center;background:#eaf4ff;color:var(--navy);font-weight:900}.summary-cards{grid-template-columns:repeat(5,1fr)}
@media(max-width:1000px){.routing-box{grid-template-columns:1fr 1fr}.summary-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.routing-box{grid-template-columns:1fr;margin-left:0}.superuser-row{grid-template-columns:1fr}.superuser-row>span{width:100%}.summary-cards{grid-template-columns:1fr}}

/* ITS-Zug-Instanz */
.logo-full,.brand-logo{filter:none!important;background:#fff;border-radius:6px;padding:8px;object-fit:contain;}
.logo-full{width:142px!important;}
.brand-logo{width:190px!important;}
