/* ============================================================
   app.css – Standort-App  (feines, kompaktes Design)
   Design-Tokens unter :root anpassbar.
   ============================================================ */
:root{
  --font: "Helvetica Neue", Helvetica, Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --accent:      #0a5cab;   /* Markenblau (Logo) */
  --accent-dark: #08498a;
  --accent-soft: #eaf2fb;
  --ink:         #20303d;   /* Haupttext */
  --muted:       #8a96a3;   /* Sekundärtext */
  --line:        #e7eaee;   /* Trennlinien */
  --line-soft:   #eef1f4;   /* zarte Trennlinien */
  --bg:          #f5f6f8;   /* Seitenhintergrund */
  --card:        #ffffff;
  --ok:          #2f855a;

  --radius: 8px;
  --shadow: 0 1px 2px rgba(20,40,60,.04);
}

*{ box-sizing:border-box; }
html,body{ margin:0; }
body{ font-family:var(--font); color:var(--ink); background:var(--bg);
      font-size:13px; line-height:1.45; -webkit-font-smoothing:antialiased; }

/* ---------- Topbar ---------- */
.topbar{ background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; }
.topbar .inner{ max-width:1120px; margin:0 auto; padding:9px 20px; display:flex; align-items:center; gap:12px; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); flex:0 0 auto; }
.brand img{ height:24px; width:auto; display:block; }
.brand .logo-fallback{ font-weight:700; letter-spacing:.02em; font-size:14px; }
.hsearch{ flex:1; max-width:640px; margin:0 4px; }
.year-select select{ font:inherit; padding:6px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); }

/* ---------- Layout ---------- */
.wrap{ max-width:1120px; margin:0 auto; padding:18px 20px 40px; }
.toolbar{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:16px; }
.toolbar select{ font:inherit; padding:6px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); max-width:220px; }
.toolbar select:disabled{ opacity:.5; cursor:not-allowed; }

/* ---------- Suchfeld ---------- */
.search{ position:relative; }
.search-ic{ position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--muted); display:flex; pointer-events:none; }
.search-ic svg{ width:16px; height:16px; }
.search input[type=search]{ width:100%; font:inherit; padding:7px 12px 7px 36px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.search input[type=search]:focus{ outline:none; border-color:var(--accent); }

/* ---------- Buttons ---------- */
.btn{ font:inherit; border:1px solid var(--line); background:#fff; color:var(--ink); padding:7px 13px; border-radius:6px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.btn:hover{ border-color:#cbd2d9; }
.btn.primary{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn.primary:hover{ background:var(--accent-dark); border-color:var(--accent-dark); }
.btn.danger{ color:var(--accent); border-color:transparent; }
.btn.danger:hover{ background:var(--accent-soft); }

/* ---------- Icon-Buttons ---------- */
.ic{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
     border:1px solid transparent; background:none; border-radius:6px; cursor:pointer; color:#aab3bd; padding:0; transition:color .12s, background .12s; }
.ic:hover{ color:var(--accent); background:var(--accent-soft); }
.ic svg{ display:block; width:15px; height:15px; }
.firma > header .ic, .ort > .ort-head .ic, .fb-top .ic{ flex:0 0 auto; }

/* ---------- Firma / Ort / Fachbereich ---------- */
.chev{ transition:transform .15s; color:#b6bec7; font-size:10px; flex:0 0 auto; }
.firma.collapsed > header .chev,
.ort.collapsed > .ort-head .chev{ transform:rotate(-90deg); }
.firma.collapsed > .box-body,
.ort.collapsed > .box-body{ display:none; }

/* Firma – grösste Ebene: Name in Markenblau */
.firma{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); margin-bottom:9px; overflow:hidden; }
.firma > header{ display:flex; align-items:center; gap:9px; padding:11px 15px; cursor:pointer; }
.firma > header:hover{ background:#fcfcfd; }
.firma > header .fname{ font-size:14.5px; font-weight:700; letter-spacing:-.01em; color:var(--accent); }
.firma > header .web{ color:var(--muted); font-size:12px; text-decoration:none; }
.firma > header .web:hover{ color:var(--accent); text-decoration:underline; }
.firma > header .count{ color:var(--muted); font-size:11.5px; margin-left:auto; }
.firma > .box-body{ padding:2px 14px 12px; }

/* Standort – mittlere Ebene */
.ort{ border:1px solid var(--line); border-radius:7px; margin:7px 0; background:#fbfcfd; overflow:hidden; }
.ort > .ort-head{ display:flex; align-items:center; gap:9px; padding:8px 12px; cursor:pointer; }
.ort > .ort-head:hover{ background:#f3f6f9; }
.ort > .ort-head .oname{ font-size:13px; font-weight:600; }
.ort > .ort-head .oaddr{ color:var(--muted); font-size:12px; }
.ort > .ort-head .count{ color:var(--muted); font-size:11px; margin-left:auto; }
.ort > .ort-head .actions{ display:flex; gap:1px; }
.ort > .box-body{ padding:2px 12px 11px; }

/* Fachbereiche – kleinste Ebene */
.fb-list{ margin-top:5px; display:grid; gap:7px; }
.fb{ border:1px solid var(--line); border-radius:6px; padding:9px 12px; background:#fff; }
.fb-top{ display:flex; align-items:center; gap:8px; }
.fb-top .fbname{ font-weight:600; font-size:12.5px; }
.fb-top .actions{ margin-left:auto; display:flex; gap:1px; }
.fb-meta{ color:var(--muted); font-size:11.5px; margin-top:3px; display:flex; flex-wrap:wrap; gap:4px 14px; }
.fb-meta b{ color:var(--ink); font-weight:600; }
.tag{ display:inline-block; font-size:10px; padding:1px 7px; border-radius:99px; background:var(--accent-soft); color:var(--accent); margin-left:4px; font-weight:600; letter-spacing:.01em; }

.empty{ color:var(--muted); font-size:12px; padding:6px 0; }
.loading{ text-align:center; color:var(--muted); padding:44px; }

/* ---------- Aufklappbare Abschnitte im Fachbereich ---------- */
.fb-sec{ margin-top:7px; border-top:1px solid var(--line-soft); padding-top:5px; }
.fb-sec > summary{ cursor:pointer; list-style:none; font-size:11px; font-weight:600; color:var(--muted);
                   text-transform:uppercase; letter-spacing:.04em; padding:2px 0; display:flex; align-items:center; gap:6px; user-select:none; }
.fb-sec > summary::-webkit-details-marker{ display:none; }
.fb-sec > summary::before{ content:'▸'; color:#b6bec7; font-size:9px; transition:transform .15s; display:inline-block; }
.fb-sec[open] > summary::before{ transform:rotate(90deg); }

/* Wochentage untereinander */
.wk{ margin:5px 0 2px; max-width:420px; }
.wk-row{ display:flex; justify-content:space-between; gap:16px; padding:3px 0; border-bottom:1px dotted var(--line-soft); font-size:12px; }
.wk-row .wk-d{ color:var(--muted); }
.wk-row.closed .wk-t{ color:#c2c9d1; }

/* Feiertage im Fachbereich */
.ft{ margin:5px 0 2px; max-width:600px; }
.ft-line{ display:flex; align-items:baseline; gap:12px; padding:3px 0; border-bottom:1px dotted var(--line-soft); font-size:12px; }
.ft-line .ftd{ color:var(--muted); white-space:nowrap; min-width:92px; }
.ft-line .ftnm{ flex:1; }
.ft-line .fth{ text-align:right; }
.ft-line.closed .fth{ color:#c2c9d1; }
.ft-prev-inline{ color:var(--muted); font-size:11px; margin-left:8px; white-space:nowrap; }
.ft-prev-inline.closed{ color:#c2c9d1; }

/* ---------- Burger-Menü ---------- */
.menu{ position:relative; flex:0 0 auto; }
.burger{ font:inherit; line-height:1; background:#fff; border:1px solid var(--line);
         border-radius:6px; padding:6px 9px; cursor:pointer; color:var(--ink); display:flex; }
.burger:hover{ border-color:#cbd2d9; }
.menu-pop{ position:absolute; right:0; top:calc(100% + 6px); background:#fff; border:1px solid var(--line);
           border-radius:8px; box-shadow:0 12px 34px rgba(20,40,60,.14); min-width:240px; padding:6px; display:none; z-index:70; }
.menu-pop.open{ display:block; }
.menu-h{ font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); padding:8px 10px 4px; }
.menu-item{ display:block; width:100%; text-align:left; font:inherit; background:none; border:0; border-radius:6px;
            padding:8px 10px; cursor:pointer; color:var(--ink); }
.menu-item:hover{ background:var(--accent-soft); color:var(--accent); }
.menu-sep{ height:1px; background:var(--line); margin:6px 4px; }

/* ---------- Inline-Export-Popover ---------- */
.exp-menu{ position:absolute; background:#fff; border:1px solid var(--line); border-radius:8px;
           box-shadow:0 12px 34px rgba(20,40,60,.16); padding:6px; min-width:210px; z-index:80; }
.exp-item{ display:block; width:100%; text-align:left; font:inherit; background:none; border:0; border-radius:6px;
           padding:8px 10px; cursor:pointer; color:var(--ink); }
.exp-item:hover{ background:var(--accent-soft); color:var(--accent); }

/* ---------- Modal ---------- */
.overlay{ position:fixed; inset:0; background:rgba(20,32,42,.42); display:none; align-items:flex-start; justify-content:center; z-index:60; padding:38px 16px; overflow:auto; }
.overlay.open{ display:flex; }
.modal{ background:#fff; border-radius:12px; width:100%; max-width:600px; box-shadow:0 24px 64px rgba(0,0,0,.22); }
.modal header{ padding:15px 20px; border-bottom:1px solid var(--line); display:flex; align-items:center; }
.modal header h3{ margin:0; font-size:15px; font-weight:600; }
.modal header .x{ margin-left:auto; }
.modal .content{ padding:18px 20px; }
.modal footer{ padding:13px 20px; border-top:1px solid var(--line); display:flex; gap:8px; justify-content:flex-end; }
.field{ margin-bottom:12px; }
.field label{ display:block; font-size:12px; color:var(--muted); margin-bottom:4px; }
.field input, .field select{ width:100%; font:inherit; padding:8px 10px; border:1px solid var(--line); border-radius:6px; }
.field input:focus, .field select:focus{ outline:none; border-color:var(--accent); }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }
.section-title{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin:16px 0 9px; border-bottom:1px solid var(--line); padding-bottom:6px; }
.hint{ font-size:12px; color:var(--muted); margin:-2px 0 12px; }
@media(max-width:560px){ .grid2{ grid-template-columns:1fr; } }

/* Öffnungszeiten-Eingabe: Vormittag / Nachmittag */
.day2{ display:grid; grid-template-columns:84px 1fr 1fr; align-items:center; gap:10px; margin-bottom:7px; }
.day2 > label{ margin:0; font-size:12.5px; color:var(--ink); }
.seg{ display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--muted); }
.seg-l{ width:40px; }
.seg input[type=time]{ font:inherit; padding:6px 8px; border:1px solid var(--line); border-radius:6px; width:auto; }
@media(max-width:560px){ .day2{ grid-template-columns:1fr; gap:4px; } }

/* Kein natives Uhr-Icon in Zeit-Feldern */
input[type=time]::-webkit-calendar-picker-indicator{ display:none; -webkit-appearance:none; }
input[type=time]{ -webkit-appearance:none; appearance:none; }

/* Feiertage-Editor: Zeiten nur bei "geöffnet" (ohne Häkchen) sichtbar */
.ft-edit{ display:grid; grid-template-columns:1fr; gap:6px; padding:7px 0; border-bottom:1px dotted var(--line-soft); }
.ft-cb{ display:flex; align-items:center; gap:8px; font-size:12.5px; margin:0; cursor:pointer; }
.ft-cb input{ width:15px; height:15px; }
.ft-cb small{ color:var(--muted); }
.ft-edit .ft-times{ display:none; grid-template-columns:1fr 1fr; gap:8px 18px; padding-left:23px; }
.ft-edit.open .ft-times{ display:grid; }
@media(max-width:560px){ .ft-edit .ft-times{ grid-template-columns:1fr; padding-left:0; } }

/* Jahr-Auswahl im Feiertage-Dialog */
.modal-bar{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.modal-bar label{ font-size:12px; color:var(--muted); }
.modal-bar select{ font:inherit; padding:6px 10px; border:1px solid var(--line); border-radius:6px; }

/* Sortier-Liste (Reihenfolge anpassen) */
.reorder{ list-style:none; margin:6px 0 0; padding:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.reorder li{ display:flex; align-items:center; justify-content:space-between; gap:10px;
             padding:8px 11px; background:#fff; border-bottom:1px solid var(--line-soft); }
.reorder li:last-child{ border-bottom:0; }
.reorder li .ro-name{ font-size:13px; }
.reorder .ro-btns{ display:flex; gap:2px; }
.reorder .ro-btns .ic{ width:26px; height:26px; font-size:12px; }

/* Feiertage verwalten */
.mng-head{ display:grid; grid-template-columns:42px 1fr 150px 32px; gap:10px; align-items:center;
           font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em;
           padding:0 2px 6px; border-bottom:1px solid var(--line); margin-top:4px; }
.mng-row{ display:grid; grid-template-columns:42px 1fr 150px 32px; gap:10px; align-items:center;
          padding:5px 2px; border-bottom:1px dotted var(--line-soft); }
.mng-row.off{ opacity:.5; }
.mng-sw{ display:flex; justify-content:center; }
.mng-sw input{ width:17px; height:17px; cursor:pointer; }
.mng-name{ font:inherit; padding:6px 9px; border:1px solid var(--line); border-radius:6px; width:100%; }
.mng-date{ font-size:12px; color:var(--muted); white-space:nowrap; }
.mng-date small{ display:block; font-size:10px; }
.mng-date input{ width:50px; font:inherit; padding:5px 6px; border:1px solid var(--line); border-radius:6px; }
.mng-act{ display:flex; justify-content:flex-end; }
.mng-add{ margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
.mng-add strong{ font-size:12.5px; }
.mng-add-row{ display:flex; align-items:center; gap:8px; margin-top:9px; flex-wrap:wrap; }
.mng-add-row #add_name{ flex:1; min-width:160px; font:inherit; padding:7px 10px; border:1px solid var(--line); border-radius:6px; }
.mng-add-row input[type=number]{ width:60px; font:inherit; padding:7px; border:1px solid var(--line); border-radius:6px; }
.mng-add-row label{ font-size:12px; color:var(--muted); }
@media(max-width:560px){
  .mng-head{ display:none; }
  .mng-row{ grid-template-columns:38px 1fr; grid-auto-rows:auto; }
  .mng-row .mng-date{ grid-column:2; }
  .mng-row .mng-act{ grid-column:2; justify-content:flex-start; }
}

/* ============================================================
   v13 – Button-Navigation statt Accordions
   ============================================================ */

/* Filterleiste im Header (zweite Zeile) */
.filterbar{ background:#fff; border-bottom:1px solid var(--line); }
.filterbar{ max-width:1120px; margin:0 auto; padding:8px 20px; display:flex; gap:8px; flex-wrap:wrap; }
.filterbar > div, .filterbar{ }
.filterbar select{ font:inherit; padding:6px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); min-width:150px; }
.filterbar select:disabled{ opacity:.5; cursor:not-allowed; }
/* Filterleiste zentriert wie der restliche Header */
.topbar .filterbar{ border-bottom:1px solid var(--line); }

/* Breadcrumb */
.crumb{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:14px; font-size:12.5px; }
.crumb-b{ background:none; border:0; padding:2px 4px; font:inherit; font-size:12.5px; color:var(--accent); cursor:pointer; border-radius:4px; }
.crumb-b:hover{ background:var(--accent-soft); }
.crumb-b.here{ color:var(--ink); font-weight:600; cursor:default; }
.crumb-b.here:hover{ background:none; }
.crumb-sep{ color:#b6bec7; }

/* Abschnitt + Label */
.nav-sec{ margin-bottom:18px; }
.nav-label{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:8px; }

/* Pills (Firmen / Standorte) */
.pills{ display:flex; flex-wrap:wrap; gap:7px; }
.pill{ display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:12.5px;
       background:#fff; border:1px solid var(--line); color:var(--ink); padding:7px 13px; border-radius:99px;
       cursor:pointer; transition:border-color .12s, background .12s, color .12s; }
.pill:hover{ border-color:var(--accent); color:var(--accent); }
.pill.active{ background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:0 1px 4px rgba(10,92,171,.25); }
.pill-n{ font-size:10.5px; line-height:1; padding:2px 6px; border-radius:99px; background:#eef1f4; color:var(--muted); }
.pill:hover .pill-n{ background:var(--accent-soft); color:var(--accent); }
.pill.active .pill-n{ background:rgba(255,255,255,.25); color:#fff; }

/* Fachbereich-Raster (Kacheln, 4–5 Spalten) */
.fb-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(195px, 1fr)); gap:10px; }
.fb-card{ border:1px solid var(--line); border-radius:9px; padding:11px 13px; background:#fff; cursor:pointer;
          transition:border-color .12s, box-shadow .12s, transform .12s; display:flex; flex-direction:column; gap:3px; min-height:74px; }
.fb-card:hover{ border-color:var(--accent); box-shadow:0 4px 16px rgba(20,40,60,.08); transform:translateY(-1px); }
.fb-card-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:6px; }
.fb-card-name{ font-weight:700; font-size:13px; color:var(--ink); }
.fb-card-path{ font-size:11px; color:var(--accent); }
.fb-card-meta{ font-size:11.5px; color:var(--muted); }
.fb-card-actions{ display:flex; gap:1px; margin-top:auto; padding-top:6px; }
.fb-card .tag{ margin:0; }

.pick-hint{ color:var(--muted); font-size:12.5px; padding:4px 2px; }

/* Detail-Modal */
.detail-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:4px; }
.detail-path{ font-size:12px; color:var(--accent); }
.detail-bar{ display:flex; gap:8px; }
.detail-meta{ margin-bottom:4px; }
.detail-meta a{ color:var(--accent); text-decoration:none; }
.detail-meta a:hover{ text-decoration:underline; }

/* ============================================================
   v14 – Vergleich (Auge), Kopieren, Toast
   ============================================================ */
.btn.sm{ padding:5px 11px; font-size:12px; }

/* aktiver Auge-Button + gepinnte Karte */
.ic.on{ color:var(--accent); background:var(--accent-soft); }
.fb-card.pinned{ border-color:var(--accent); box-shadow:0 0 0 1px var(--accent) inset; }

/* Mini-Kopier-Icon (neben E-Mail) */
.ic-mini{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; vertical-align:middle;
          border:0; background:none; border-radius:5px; cursor:pointer; color:#aab3bd; padding:0; }
.ic-mini:hover{ color:var(--accent); background:var(--accent-soft); }
.ic-mini svg{ width:13px; height:13px; }

/* Vergleichs-Panel */
.cmp-sec{ border-top:2px solid var(--line); padding-top:14px; }
.cmp-bar{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.cmp-grid{ display:grid; gap:12px; }
.cmp-col{ border:1px solid var(--line); border-radius:9px; padding:12px 13px; background:#fff; min-width:0; }
.cmp-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:8px; }
.cmp-name{ font-weight:700; font-size:13.5px; color:var(--accent); }
.cmp-path{ font-size:11px; color:var(--muted); margin-top:1px; }
.cmp-meta{ margin-bottom:8px; }
.cmp-meta a{ color:var(--accent); text-decoration:none; }
.cmp-sub{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin:10px 0 4px; }
.cmp-col .wk, .cmp-col .ft{ max-width:none; }
@media(max-width:760px){ .cmp-grid{ grid-template-columns:1fr !important; } }

/* Toast */
.toast{ position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(12px);
        background:#20303d; color:#fff; font-size:13px; padding:10px 16px; border-radius:8px;
        box-shadow:0 8px 28px rgba(0,0,0,.25); opacity:0; pointer-events:none; transition:opacity .18s, transform .18s; z-index:200; }
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ============================================================
   v15 – schönere Filterleiste, Bearbeiten-Listen, Breadcrumb-Edit
   ============================================================ */

/* Filterleiste: zentriert, mit Icon + hübschen Selects + Zurücksetzen */
.filterbar{ align-items:center; }
.filter-ic{ display:inline-flex; color:var(--muted); margin-right:2px; }
.filterbar select{
  -webkit-appearance:none; appearance:none;
  font:inherit; padding:7px 30px 7px 12px; border:1px solid var(--line); border-radius:7px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a96a3' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 10px center;
  color:var(--ink); min-width:160px; cursor:pointer; transition:border-color .12s, box-shadow .12s; }
.filterbar select:hover{ border-color:#cbd2d9; }
.filterbar select:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.filterbar select:disabled{ opacity:.5; cursor:not-allowed; }
.filter-reset{ font:inherit; font-size:12px; border:0; background:none; color:var(--accent); cursor:pointer;
               padding:6px 8px; border-radius:6px; margin-left:auto; }
.filter-reset:hover{ background:var(--accent-soft); }

/* Edit-Icon in der Breadcrumb */
.ic-crumb{ width:24px; height:24px; }
.ic-crumb svg{ width:13px; height:13px; }

/* Bearbeiten-Listen (Firma / Standort) */
.mng-list{ border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.mng-line{ display:flex; align-items:center; justify-content:space-between; gap:10px;
           padding:9px 12px; border-bottom:1px solid var(--line-soft); }
.mng-line:last-child{ border-bottom:0; }
.mng-line-name{ font-size:13px; }
.mng-line-name small{ color:var(--muted); font-size:11.5px; margin-left:6px; }

/* ============================================================
   v16 – Zeiten übernehmen (Öffnungszeiten / Feiertage)
   ============================================================ */
.oz-tools{ margin:0 0 8px; }
.day2{ grid-template-columns:84px 1fr 1fr auto; }
.day-copy{ width:28px; height:28px; border:1px solid var(--line); background:#fff; border-radius:6px;
           cursor:pointer; color:var(--muted); font-size:14px; line-height:1; }
.day-copy:hover{ border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }
.day-copy-sp{ width:28px; display:inline-block; }

.ft-bulk{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin:0 0 12px;
          padding:9px 10px; background:#f7f9fb; border:1px solid var(--line); border-radius:8px; }
.ft-bulk-sep{ width:1px; align-self:stretch; background:var(--line); margin:0 3px; }
.ft-tpl-l{ font-size:12px; color:var(--muted); }
.ft-bulk input[type=time]{ font:inherit; padding:5px 7px; border:1px solid var(--line); border-radius:6px; width:auto; }
.ft-dash, .ft-amp{ color:var(--muted); font-size:12px; }
@media(max-width:560px){ .ft-bulk{ gap:6px; } .ft-bulk-sep{ display:none; } }
