/* APOLYMANSIS v0.15 — ενιαίο φύλλο στυλ (αντικαθιστά όλα τα προηγούμενα επίπεδα διορθώσεων). */

@font-face{
  font-family:"Apoly Sans";
  src:url("fonts/ApolySans-var.woff2") format("woff2");
  font-weight:400 700;font-stretch:75% 100%;font-style:normal;font-display:swap;
}

/* ---------- Tokens ---------- */
:root{
  --font:"Apoly Sans","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --ink:#17242a;--ink-2:#33444b;--muted:#5b6b72;--faint:#8b989d;
  --bg:#edf2f1;--card:#ffffff;--surface:#ffffff;--surface2:#f4f7f6;
  --line:#d6dfdd;--row-line:#e6ecea;--input:#ffffff;
  --btn:#ffffff;--btn-line:#cad4d2;--btn-hover:#f1f5f4;
  --brand:#0f6f78;--brand2:#0a5860;--accent:#1ca66f;--nav-hover:#eaf6f5;--on-brand:#ffffff;
  --danger:#b3262d;--ok:#1d7a47;--warn:#9a6200;--info:#1f5fa6;
  --radius:12px;--radius-sm:8px;
  --shadow-sm:0 1px 2px rgba(15,30,36,.05);
  --shadow:0 6px 22px rgba(15,30,36,.08);
  --shadow-lg:0 18px 48px rgba(8,18,22,.24);
  --side-w:252px;
  --side-bg:color-mix(in srgb,var(--brand) 24%,#0a1315);
  --side-ink:#e8f0f1;--side-muted:rgba(232,240,241,.62);
  --side-line:rgba(255,255,255,.09);--side-hover:rgba(255,255,255,.07);--side-active:rgba(255,255,255,.12);
  --side-accent:color-mix(in srgb,var(--brand) 42%,#ffffff);
  color-scheme:light;
}
html[data-theme="dark"]{
  --ink:#e6eef0;--ink-2:#c8d3d7;--muted:#9eafb5;--faint:#728389;
  --bg:#0e1416;--card:#151f22;--surface:#151f22;--surface2:#1a262a;
  --line:#28363b;--row-line:#203034;--input:#10181b;
  --btn:#1b282c;--btn-line:#33454b;--btn-hover:#223236;
  --danger:#ff8a8f;--ok:#6fd49b;--warn:#f1c160;--info:#8cc2ff;--on-brand:#071214;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow:0 8px 26px rgba(0,0,0,.3);--shadow-lg:0 22px 56px rgba(0,0,0,.5);
  --side-bg:color-mix(in srgb,var(--brand) 13%,#070c0e);
  color-scheme:dark;
}
/* Παλέτες (επιλογή χρήστη) */
html[data-palette="teal"]{--brand:#0f6f78;--brand2:#0a5860;--accent:#1ca66f;--nav-hover:#eaf6f5}
html[data-palette="redgreen"]{--brand:#c8242a;--brand2:#a3191e;--accent:#4f9a2c;--nav-hover:#fff0f1}
html[data-palette="ocean"]{--brand:#1769aa;--brand2:#0f4f85;--accent:#1aa6a6;--nav-hover:#eaf4fb}
html[data-palette="forest"]{--brand:#2f7b45;--brand2:#225d33;--accent:#7aa52b;--nav-hover:#edf7ef}
html[data-palette="violet"]{--brand:#6f4fb3;--brand2:#563a92;--accent:#b0659d;--nav-hover:#f3eefb}
html[data-palette="amber"]{--brand:#a86200;--brand2:#874f00;--accent:#397a72;--nav-hover:#fff5e5}
html[data-theme="light"][data-palette="teal"]{--bg:#ecf2f1}
html[data-theme="light"][data-palette="redgreen"]{--bg:#f5f0ef}
html[data-theme="light"][data-palette="ocean"]{--bg:#ecf1f6}
html[data-theme="light"][data-palette="forest"]{--bg:#edf2ec}
html[data-theme="light"][data-palette="violet"]{--bg:#f1eff5}
html[data-theme="light"][data-palette="amber"]{--bg:#f5f1e9}
html[data-theme="dark"][data-palette="teal"]{--brand:#4cc6c1;--brand2:#76d9d5;--accent:#5ed49a;--nav-hover:#173032}
html[data-theme="dark"][data-palette="redgreen"]{--brand:#ff6267;--brand2:#ff7e82;--accent:#88d45e;--nav-hover:#332224}
html[data-theme="dark"][data-palette="ocean"]{--brand:#67b8f3;--brand2:#89c9f7;--accent:#54d1cc;--nav-hover:#1c2b36}
html[data-theme="dark"][data-palette="forest"]{--brand:#77d492;--brand2:#9be0ad;--accent:#bedb68;--nav-hover:#1f3024}
html[data-theme="dark"][data-palette="violet"]{--brand:#b39af0;--brand2:#c9b6f5;--accent:#e08bc7;--nav-hover:#2b2536}
html[data-theme="dark"][data-palette="amber"]{--brand:#f2b34f;--brand2:#f6c46f;--accent:#65c3b8;--nav-hover:#332b20}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{font-family:var(--font);font-size:15px;line-height:1.45;color:var(--ink);background:var(--app-background,var(--bg));-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--app-background,var(--bg));color:var(--ink);font-family:var(--font)}
button,input,select,textarea{font-family:inherit}
img{max-width:100%}
a{color:var(--brand)}
h1,h2,h3{line-height:1.2;letter-spacing:-.005em}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.muted{color:var(--muted)}.small{font-size:12.5px}.strong{font-weight:600}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.nowrap{white-space:nowrap}.prewrap{white-space:pre-wrap}.right{text-align:right}
.print-only{display:none}.push-right{margin-left:auto}
form.inline{display:inline;margin:0}

/* ---------- Κέλυφος εφαρμογής: σταθερή πλευρική μπάρα (desktop) ---------- */
body.has-nav{padding-left:var(--side-w)}
.sidebar{
  position:fixed;top:0;bottom:0;left:0;z-index:40;width:var(--side-w);
  display:flex;flex-direction:column;background:var(--side-bg);color:var(--side-ink);
  border-right:1px solid rgba(0,0,0,.18);
}
.side-brand{position:relative;padding:18px 18px 12px}
.side-brand>a{display:block}
.side-brand img{display:block;width:100%;height:auto;max-height:110px;object-fit:contain;border-radius:6px}
.nav-close{display:none}
.side-nav{flex:1 1 auto;min-height:0;overflow-y:auto;padding:8px 10px 12px;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin}
.side-nav a{position:relative;display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:8px;color:var(--side-ink);text-decoration:none;font-size:14.5px;font-weight:500}
.side-nav a svg{flex:none;opacity:.72}
.side-nav a:hover{background:var(--side-hover)}
.side-nav a.active{background:var(--side-active);font-weight:600}
.side-nav a.active::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--side-accent)}
.side-nav a.active svg{opacity:1;color:var(--side-accent)}
.side-sep{height:1px;background:var(--side-line);margin:10px 12px}
.side-foot{position:relative;border-top:1px solid var(--side-line);padding:10px 10px 14px;display:grid;gap:6px}
.side-user{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 8px}
.avatar{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--side-accent);color:#0a1315;font-weight:700;font-size:13px}
.who{min-width:0;flex:1;line-height:1.25}
.who strong{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who small{display:block;font-size:12px;color:var(--side-muted)}
.logout{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:8px;color:var(--side-muted)}
.logout:hover{background:var(--side-hover);color:var(--side-ink)}
.side-app{display:block;margin:4px 6px 0;padding:6px 10px;background:#fff;border-radius:8px}
.side-app img{display:block;width:100%;height:58px;object-fit:cover;object-position:50% 56%}

/* Ρυθμίσεις εμφάνισης */
.settings-menu{position:relative}
.settings-menu>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:8px;cursor:pointer;color:var(--side-ink);font-size:14px;user-select:none}
.settings-menu>summary::-webkit-details-marker{display:none}
.settings-menu>summary svg{opacity:.72}
.settings-menu>summary:hover,.settings-menu[open]>summary{background:var(--side-hover)}
.settings-menu-panel{position:absolute;left:calc(100% + 14px);bottom:0;z-index:70;width:310px;padding:14px;display:grid;gap:10px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.settings-menu-logo{display:block;padding:9px 11px;border-radius:var(--radius-sm);background:var(--surface2);color:var(--ink);font-weight:600;font-size:13.5px;text-decoration:none}
.settings-menu-logo:hover{color:var(--brand)}
.theme-control{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}
.theme-control select{width:100%;min-height:36px;padding:6px 9px;border:1px solid var(--btn-line);border-radius:var(--radius-sm);background:var(--input);color:var(--ink);font-size:13.5px;cursor:pointer}
.theme-control input[type=color]{width:100%;height:36px;padding:3px;border:1px solid var(--btn-line);border-radius:var(--radius-sm);background:var(--input);cursor:pointer}
.theme-control input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.theme-control input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}
.theme-control input[type=color]::-moz-color-swatch{border:0;border-radius:5px}
.background-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.background-reset{width:36px;height:36px;padding:0;border:1px solid var(--btn-line);border-radius:var(--radius-sm);background:var(--btn);color:var(--muted);font-size:16px;font-weight:700;line-height:1;cursor:pointer}
.background-reset:hover{color:var(--brand);border-color:var(--brand)}
.login-theme{position:fixed;top:max(12px,env(safe-area-inset-top));right:12px;z-index:20}
.login-theme>summary{list-style:none;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--muted);cursor:pointer;box-shadow:var(--shadow-sm)}
.login-theme>summary::-webkit-details-marker{display:none}
.login-theme[open]>summary,.login-theme>summary:hover{color:var(--brand);border-color:var(--brand)}
.login-theme-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(300px,calc(100vw - 24px));padding:14px;display:grid;gap:10px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg)}

/* Κινητά/tablet: μία μπάρα στην κορυφή + συρτάρι μενού */
.mobilebar{display:none}
.nav-scrim{position:fixed;inset:0;z-index:55;background:rgba(4,10,12,.5)}
@media screen and (max-width:980px){
  body.has-nav{padding-left:0}
  .mobilebar{position:relative;z-index:30;display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));background:var(--side-bg);color:var(--side-ink);box-shadow:0 1px 0 rgba(0,0,0,.2)}
  .nav-toggle{flex:none;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:10px;background:rgba(255,255,255,.09);color:inherit;cursor:pointer}
  .mb-logo{display:block;min-width:0}
  .mb-logo img{display:block;height:42px;width:auto;max-width:100%;border-radius:4px}
  .mb-app{flex:none;margin-left:auto;display:block;padding:3px 7px;background:#fff;border-radius:7px}
  .mb-app img{display:block;height:30px;width:auto}
  .sidebar{width:min(300px,86vw);transform:translateX(-104%);transition:transform .22s ease;box-shadow:var(--shadow-lg);z-index:60}
  body.nav-open .sidebar{transform:none}
  body.nav-open{overflow:hidden}
  .side-brand{padding-right:58px}
  .side-brand img{max-height:84px}
  .nav-close{display:grid;place-items:center;position:absolute;top:14px;right:12px;width:38px;height:38px;border:0;border-radius:9px;background:rgba(255,255,255,.09);color:var(--side-ink);cursor:pointer}
  .settings-menu-panel{position:static;width:auto;margin-top:6px;box-shadow:none}
}
@media screen and (max-width:420px){.mb-app img{height:26px}.mb-logo img{height:38px}}
@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}

/* ---------- Περιεχόμενο ---------- */
.container{max-width:1380px;margin:0 auto;padding:28px clamp(16px,3vw,40px) 72px;min-width:0;overflow-x:clip;color:var(--app-text,var(--ink))}
body.no-nav .container{max-width:1100px}
[id]{scroll-margin-top:16px}
@media screen and (max-width:980px){.container{padding:18px 14px 88px}[id]{scroll-margin-top:12px}}

.pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 24px;margin:0 0 20px}
.pagehead>div:first-child{flex:1 1 340px;min-width:0}
.pagehead h1{margin:0;font-size:clamp(23px,2.3vw,30px);font-weight:600;letter-spacing:-.012em;color:var(--app-text,var(--ink));overflow-wrap:anywhere;text-wrap:balance}
.pagehead p{margin:6px 0 0;color:var(--app-muted,var(--muted));font-size:14.5px}
.pagehead .actions,.head-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin:0}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;align-items:center}
@media screen and (max-width:640px){
  .pagehead{align-items:stretch}
  .pagehead>.btn,.pagehead>form{flex:1 1 100%}
  .pagehead>form .btn{width:100%}
  .pagehead .actions,.head-actions{width:100%;justify-content:stretch}
  .pagehead .actions>*,.head-actions>*{flex:1 1 calc(50% - 8px)}
  .pagehead .actions>form .btn{width:100%}
}

/* Κουμπιά */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 14px;border:1px solid var(--btn-line);border-radius:var(--radius-sm);background:var(--btn);color:var(--ink);font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}
.btn:hover{background:var(--btn-hover);border-color:color-mix(in srgb,var(--brand) 40%,var(--btn-line))}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.btn.primary:hover{background:var(--brand2);border-color:var(--brand2)}
.btn.danger{color:var(--danger);background:color-mix(in srgb,var(--danger) 6%,var(--btn));border-color:color-mix(in srgb,var(--danger) 32%,var(--btn-line))}
.btn.danger:hover{background:color-mix(in srgb,var(--danger) 12%,var(--btn))}
.btn.small{min-height:32px;padding:5px 10px;font-size:13px}
.btn.disabled{opacity:.4;pointer-events:none}
.btn svg{width:17px;height:17px}

/* Κάρτες & πλέγματα */
.card{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin:0 0 18px;box-shadow:var(--shadow-sm);min-width:0}
.card h2{margin:0 0 14px;font-size:18px;font-weight:600}
.card h3{margin:0 0 12px;font-size:15px;font-weight:600}
.cardhead{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 14px;margin-bottom:14px}
.cardhead h2{margin:0}.cardhead p{margin:4px 0 0;font-size:13.5px}
.grid{display:grid;gap:16px;margin-bottom:18px}
.grid>.card{margin:0}
.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.stat{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}
.stat .n{font-size:30px;font-weight:600;line-height:1.1;color:var(--brand)}
.stat .label{margin-top:4px;font-size:13.5px;color:var(--muted)}
@media screen and (max-width:1100px){.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media screen and (max-width:700px){
  .two,.three{grid-template-columns:1fr}
  .stats{gap:8px}.stat{padding:12px}.stat .n{font-size:24px}.stat .label{font-size:12.5px}
  .card{padding:16px}
}

/* Μηνύματα */
.flash{margin:0 0 16px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font-weight:500}
.flash.success{color:var(--ok);background:color-mix(in srgb,var(--ok) 9%,var(--card));border-color:color-mix(in srgb,var(--ok) 30%,var(--line))}
.flash.error{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--card));border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}

/* Ετικέτες κατάστασης */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:18px;white-space:nowrap;vertical-align:1px;background:color-mix(in srgb,var(--muted) 14%,var(--card));color:var(--ink-2)}
.badge.ok,.badge.st-completed{background:color-mix(in srgb,var(--ok) 14%,var(--card));color:var(--ok)}
.badge.warn,.badge.st-in_progress{background:color-mix(in srgb,var(--warn) 16%,var(--card));color:var(--warn)}
.badge.danger,.badge.st-no_show{background:color-mix(in srgb,var(--danger) 13%,var(--card));color:var(--danger)}
.badge.st-confirmed{background:color-mix(in srgb,var(--brand) 14%,var(--card));color:var(--brand)}
.badge.st-cancelled{text-decoration:line-through}
.count-pill{display:inline-block;min-width:20px;padding:1px 7px;border-radius:999px;background:var(--brand);color:var(--on-brand);font-size:12px;line-height:18px;text-align:center}

/* Φόρμες */
.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.formgrid .full{grid-column:1/-1}
.field{min-width:0}
.field>label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--ink-2)}
.field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,.field textarea,
.search input,.bulkbar input,.bulkbar select,.tp-row input,.tp-row select,.cert-sign-form select{
  width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--btn-line);border-radius:var(--radius-sm);background:var(--input);color:var(--ink);font-size:14.5px;line-height:1.3
}
.field textarea{min-height:96px;resize:vertical;line-height:1.45}
.field input[type=file]{width:100%;padding:7px;border:1px dashed var(--btn-line);border-radius:var(--radius-sm);background:var(--surface2);color:var(--ink);font-size:13.5px}
.field input:focus,.field select:focus,.field textarea:focus,.search input:focus,.bulkbar input:focus,.bulkbar select:focus,.tp-row input:focus,.tp-row select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 20%,transparent)}
.checks{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}
.check{display:inline-flex;align-items:center;gap:8px;font-weight:500;cursor:pointer}
.field label.check{margin:0;font-size:14px;color:var(--ink)}
.check input,.table input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--brand)}
.check.locked{opacity:.8}
.checkgroups{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 22px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface2)}
.checkgroups>div{display:flex;flex-direction:column;gap:7px}
@media screen and (max-width:760px){.formgrid{grid-template-columns:1fr}.formgrid .full{grid-column:auto}}

/* Αναζήτηση, φίλτρα, chips, σελιδοποίηση */
.search{display:flex;gap:8px;margin:0 0 12px}
.search input{flex:1;min-height:44px;padding-left:40px;font-size:15px;background:var(--input) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b989d' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E") no-repeat 12px 50%/18px}
.search .btn{min-height:44px}
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin:0 0 14px;padding:12px 14px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.filters .field{flex:0 1 170px}
.filters .field.grow{flex:1 1 260px}
.filters .field>label{font-size:12.5px;margin-bottom:4px}
.filters .field input:not([type=checkbox]),.filters .field select{min-height:38px;padding:7px 10px;font-size:14px}
.filters .check{min-height:38px;font-size:14px}
@media screen and (max-width:760px){.filters .field,.filters .field.grow{flex:1 1 calc(50% - 12px)}.filters>.btn{flex:1 1 100%}}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 12px;border:1px solid var(--btn-line);border-radius:999px;background:var(--card);color:var(--ink);font-size:13.5px;font-weight:500;text-decoration:none}
.chip:hover{border-color:var(--brand);color:var(--brand)}
.chip.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:12px 0;font-size:14px;color:var(--app-muted,var(--muted))}
.pager .muted{margin-right:auto;color:inherit}
.pager>span:not(.muted):not(.btn){color:var(--app-text,var(--ink))}

/* ---------- Πίνακες ---------- */
.tablewrap{overflow-x:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.card .tablewrap{box-shadow:none}
.table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.table th{position:relative;padding:10px 12px;text-align:left;vertical-align:bottom;white-space:nowrap;font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface2);border-bottom:1px solid var(--line)}
.table td{padding:11px 12px;vertical-align:top;line-height:1.4;border-bottom:1px solid var(--row-line)}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr:hover td{background:color-mix(in srgb,var(--brand) 4%,transparent)}
.table th.right,.table td.right{text-align:right}
.table td strong{font-weight:600}
.table td a:not(.btn):not(.rowlink){color:var(--brand);font-weight:600;white-space:nowrap}
.table .dim td,.table tr.dim td{opacity:.55}
.rowlink{color:inherit;text-decoration:none}
.rowlink:hover{color:var(--brand);text-decoration:underline}
.table td>.muted.small,.table td>div.small{margin-top:2px}
.table th.sortable-column{cursor:pointer;user-select:none;padding-right:26px}
.table th.sortable-column::after{content:"";position:absolute;right:10px;bottom:15px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.25}
.table th.sortable-column[data-sort-direction="asc"]::after{border-top:0;border-bottom:5px solid currentColor;opacity:.9}
.table th.sortable-column[data-sort-direction="desc"]::after{opacity:.9}
.table th.sortable-column:hover{color:var(--brand)}
@media screen and (min-width:721px){.table{min-width:720px}}
/* Κινητό: κάθε γραμμή γίνεται κάρτα, ώστε να μη χάνονται στήλες εκτός οθόνης */
@media screen and (max-width:720px){
  .tablewrap{overflow:visible;border-radius:var(--radius)}
  .table.stackable,.table.stackable tbody,.table.stackable tr,.table.stackable td{display:block;width:100%}
  .table.stackable thead{display:none}
  .table.stackable tr{position:relative;padding:12px 14px;border-bottom:1px solid var(--line)}
  .table.stackable tbody tr:last-child{border-bottom:0}
  .table.stackable td{display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);gap:10px;padding:3px 0;border:0;text-align:left!important;white-space:normal;overflow-wrap:anywhere}
  .table.stackable td::before{content:attr(data-label);font-size:12.5px;font-weight:600;color:var(--muted)}
  .table.stackable tbody tr:hover td{background:transparent}
  .table.stackable td.cell-title{display:block;padding:0 34px 6px 0;font-size:15px}
  .table.stackable td.cell-title::before,.table.stackable td.cell-full::before,.table.stackable td.cell-actions::before{content:none}
  .table.stackable td.cell-empty{display:none}
  .table.stackable td.cell-check{position:absolute;top:12px;right:12px;display:block;width:auto;padding:0}
  .table.stackable .cell-val{min-width:0}
  .table.stackable td.cell-check::before{content:none}
  .table.stackable td.cell-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:10px}
  .table.stackable td.cell-actions .btn{flex:1 1 auto}
  .table.stackable td.cell-full{display:block;padding:4px 0}
}

/* Μαζικές ενέργειες: εμφανίζεται μόνο όταν υπάρχει επιλογή */
.bulkbar{position:sticky;bottom:14px;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px;padding:10px 12px;background:var(--card);color:var(--ink);border:1px solid color-mix(in srgb,var(--brand) 45%,var(--line));border-radius:var(--radius);box-shadow:var(--shadow-lg)}
form[data-selection="0"] .bulkbar{display:none}
.bulkbar input,.bulkbar select{width:auto;min-height:36px;padding:6px 10px;font-size:14px}
.bulkbar .w-num{width:84px}
.bulkbar label{font-size:13px;font-weight:600;color:var(--muted)}
.bulkbar [data-check-count]{font-weight:600;color:var(--ink)}
@media screen and (max-width:720px){.bulkbar{bottom:8px}.bulkbar>*{flex:1 1 auto}}

/* Επιλογή πελάτη (αυτόματη συμπλήρωση) */
.picker{position:relative}
.picker-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:340px;overflow:auto;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.picker-item{display:block;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left;font-size:14px;cursor:pointer}
.picker-item strong{display:block;font-weight:600}
.picker-item span{display:block;font-size:12.5px;color:var(--muted)}
.picker-item:hover,.picker-item.on{background:var(--nav-hover)}
html[data-theme="dark"] .picker-item:hover,html[data-theme="dark"] .picker-item.on{background:var(--surface2)}

/* Γραμμές σκευασμάτων εφαρμογής */
.tp-row{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,1.6fr) auto;gap:8px;margin-bottom:8px}
@media screen and (max-width:760px){.tp-row{grid-template-columns:1fr 1fr;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm)}.tp-row select,.tp-row input[name="tp_area[]"],.tp-row [data-remove-row]{grid-column:1/-1}}

.progress{height:12px;margin-bottom:10px;border-radius:999px;background:var(--surface2);overflow:hidden}
.progress-bar{height:100%;background:var(--brand);transition:width .3s ease}

/* ---------- Αρχική ---------- */
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0 0 18px}
.quick a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);font-weight:600;text-decoration:none;box-shadow:var(--shadow-sm);transition:border-color .15s}
.quick a:hover{border-color:color-mix(in srgb,var(--brand) 50%,var(--line))}
.quick a span{display:block;margin-top:3px;font-size:13px;font-weight:400;color:var(--muted)}
.customer-primary{border-color:color-mix(in srgb,var(--brand) 60%,var(--line))!important;box-shadow:inset 4px 0 0 var(--brand),var(--shadow-sm)!important}
.customer-primary strong{color:var(--brand)}
.home-hero{display:none}
@media screen and (max-width:700px){.quick{grid-template-columns:1fr 1fr;gap:8px}.quick a{padding:12px}}

/* Αναδυόμενο εκκρεμοτήτων */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(6,12,14,.56)}
body.modal-open{overflow:hidden}
.modal-box{width:min(580px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:20px 22px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg)}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.modal-head h2{margin:0;font-size:20px;font-weight:600}
.modal-x{width:36px;height:36px;border:1px solid var(--btn-line);border-radius:var(--radius-sm);background:var(--btn);color:var(--ink);font-size:20px;line-height:1;cursor:pointer}
.modal-foot{display:flex;justify-content:flex-end;margin-top:16px}
.pending-list{display:flex;flex-direction:column;gap:8px}
.pending-item{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:var(--radius-sm);background:var(--surface2);color:var(--ink);text-decoration:none}
.pending-item:hover,.pending-item:focus{border-color:var(--brand);outline:none}
.pending-item.danger{border-left-color:var(--danger)}.pending-item.warn{border-left-color:var(--warn)}
.pending-n{font-size:24px;font-weight:600;text-align:center;color:var(--brand)}
.pending-label{font-weight:600}.pending-label small{display:block;margin-top:2px;font-size:12.5px;font-weight:400;color:var(--muted)}
.pending-go{font-size:22px;color:var(--muted)}
@media screen and (max-width:560px){.modal{align-items:flex-end;padding:0}.modal-box{max-height:85vh;border-radius:16px 16px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.pending-item{grid-template-columns:52px 1fr auto}}

/* ---------- Καρτέλα πελάτη ---------- */
.ph-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px;font-size:14.5px;color:var(--app-muted,var(--muted))}
.ph-meta .sep{opacity:.5}
.section-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 18px}
.section-tabs a{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:5px 12px;border:1px solid var(--btn-line);border-radius:999px;background:var(--card);color:var(--ink);font-size:13.5px;font-weight:500;text-decoration:none}
.section-tabs a:hover{border-color:var(--brand);color:var(--brand)}
.section-tabs a span{min-width:18px;padding:0 6px;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:12px;text-align:center}
.kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px 16px;margin:0;font-size:14px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;min-width:0;font-weight:500;overflow-wrap:anywhere}
.kv dd a{color:inherit;text-decoration:none;border-bottom:1px dotted color-mix(in srgb,var(--ink) 40%,transparent)}
.kv dd a:hover{color:var(--brand);border-bottom-color:var(--brand)}
.kv .group{grid-column:1/-1;margin-top:4px;font-size:12.5px;font-weight:600;color:var(--muted)}
.empty-line{color:var(--muted)}
.key-card{border-left:4px solid var(--brand)}
.key-card .cardhead{align-items:center}
.note-card{border-left:4px solid var(--warn);background:color-mix(in srgb,var(--warn) 6%,var(--card))}
.note-card h2{font-size:15px;margin-bottom:8px}
.note-card .prewrap{font-size:14.5px}

/* Εγκαταστάσεις */
.sites-panel{padding:20px 22px}
.primary-site-wrap{margin:4px 0 20px}
.site-section-title{display:flex;align-items:center;gap:8px;margin:0 0 12px}.site-section-title h3{margin:0}
.site-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.site-card{min-width:0;padding:15px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface2)}
.site-card.primary{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:color-mix(in srgb,var(--brand) 5%,var(--card));box-shadow:inset 4px 0 0 var(--brand)}
.site-card.inactive{opacity:.72}
.site-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.site-card-top>div{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.site-role{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;background:var(--btn);border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600}
.site-role.primary{background:color-mix(in srgb,var(--brand) 14%,var(--card));border-color:transparent;color:var(--brand)}
.site-card h3{margin:0 0 4px;font-size:16px;font-weight:600;overflow-wrap:anywhere}
.site-card.primary h3{font-size:17px}
.site-primary-name{margin:-2px 0 4px;font-size:12.5px;font-weight:600;color:var(--brand)}
.site-address{margin-bottom:10px;font-size:14px;overflow-wrap:anywhere}
.site-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px 14px;margin-top:10px}
.site-meta>div{min-width:0}
.site-meta span{display:block;margin-bottom:1px;font-size:12px;color:var(--muted)}
.site-meta strong{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.site-note{margin-top:11px;padding:9px 11px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--line);color:var(--ink-2);font-size:13.5px;white-space:pre-wrap}
.site-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}
.site-empty{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px dashed var(--btn-line);border-radius:var(--radius-sm);background:var(--surface2);color:var(--muted)}
.site-empty strong{color:var(--ink)}
.site-edit-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font-size:13.5px}
.site-preserve-note{margin:15px 0 0;padding-top:12px;border-top:1px solid var(--line)}
@media screen and (max-width:860px){.site-grid{grid-template-columns:1fr}.site-actions .btn{flex:1 1 auto}}

/* Φωτογραφίες */
.photo-upload{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:end;margin-bottom:16px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.photo-card{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface2)}
.photo-card>a{display:block;aspect-ratio:4/3;background:var(--btn)}
.photo-card img{display:block;width:100%;height:100%;object-fit:cover}
.photo-card figcaption{display:flex;flex-direction:column;gap:5px;padding:9px}
.photo-card figcaption span{font-weight:600;overflow-wrap:anywhere}
.photo-card figcaption small{color:var(--muted)}
.photo-card form{margin-top:3px}.photo-card .btn{width:100%}
@media screen and (max-width:760px){.photo-upload{grid-template-columns:1fr}}

/* Δικαιώματα χρηστών */
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px}
.permission-item{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface2);font-weight:500}
.permission-item input{width:18px;height:18px;margin-top:1px;accent-color:var(--brand)}
@media screen and (max-width:760px){.permission-grid{grid-template-columns:1fr}}

.login-logo{display:block;width:min(100%,340px);height:auto;margin:0 auto 14px;border-radius:8px}
.desktop-only{}
@media screen and (max-width:760px){.desktop-only{display:none}}

/* ---------- Πιστοποιητικό ---------- */
.cert-actions{justify-content:flex-end;max-width:850px;margin:0 auto 12px}
.cert-sign-form{display:inline-flex;gap:7px;align-items:center}
.cert-sign-form select{width:auto;max-width:300px}
.cert{max-width:850px;margin:0 auto;padding:40px 48px;background:#fff;color:#1b1b1b;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);font-size:15px;line-height:1.5}
.cert-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:3px solid #e31e24}
.cert-logo{display:block;width:300px;max-width:60%;height:auto}
.cert-no{font-size:13px;color:#555;text-align:right;white-space:nowrap}.cert-no strong{display:block;font-size:16px;color:#1b1b1b}
.cert-license{display:block;margin-top:6px;font-size:12.5px;color:#444}.cert-license b{color:#1b1b1b;font-weight:700}
.sign-role{font-size:12px;color:#555}
.cert-title{margin:26px 0 18px;text-align:center;font-size:24px;font-weight:700;letter-spacing:.06em;color:#1b1b1b}
.cert-lead{margin:0 0 16px}
.cert-rows{margin-bottom:22px;border-top:1px solid #ddd}
.cert-row{display:grid;grid-template-columns:190px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #ddd}.cert-row span{color:#555}
.cert-sub{margin:0 0 8px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#1b1b1b}
.cert-table{width:100%;margin-bottom:14px;border-collapse:collapse;font-size:14px}
.cert-table th,.cert-table td{padding:7px 9px;border:1px solid #ccc;text-align:left;vertical-align:top}
.cert-table th{background:#f3f3f3;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#444}
.cert-note{margin:6px 0;font-size:14px}
.cert-block{margin-top:14px;font-size:14px}.cert-block span{display:block;margin-bottom:3px;font-weight:700}
.cert-sign{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:46px;font-size:14px}
.sign-box{display:flex;flex-direction:column;gap:4px;min-width:260px;text-align:center}
.sign-line{height:64px;margin-bottom:2px;border-bottom:1px solid #999}
.sign-box em{font-style:normal;color:#555}
.cert-verify{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;margin:22px 0 0;padding-top:13px;border-top:1px solid #ddd}
.verify-qr-svg{display:block;width:118px;height:118px}
.verify-code{overflow:hidden}
.verify-barcode{display:block;width:100%;height:58px;fill:#000}
.digital-signature{display:grid;gap:4px;max-width:360px;margin:24px 0 0 auto;padding:14px 16px;border:1px solid var(--line);border-left:5px solid var(--ok);border-radius:var(--radius);background:var(--surface2);color:var(--ink);font-size:12px}
.digital-signature strong{font-size:14px}.digital-signature code{font-size:11px;word-break:break-all}
.digital-signature.valid small{color:var(--ok);font-weight:700}
.digital-signature.invalid{border-left-color:var(--danger)}.digital-signature.invalid small{color:var(--danger);font-weight:700}
.verification-card{max-width:820px;margin:4vh auto}
.verification-status{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.verification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.verification-grid>div{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface2)}
.verification-grid span{display:block;margin-bottom:3px;font-size:12px;color:var(--muted)}
.verification-products{margin-top:16px}
[data-disinfection-type][hidden]{display:none!important}
@media screen and (max-width:860px){
  .cert{padding:22px 18px}.cert-top{flex-direction:column}.cert-logo{max-width:100%}.cert-no{text-align:left}
  .cert-row{grid-template-columns:1fr;gap:2px}.cert-sign{flex-direction:column;align-items:stretch}
  .cert-sign-form{display:flex;flex-direction:column;align-items:stretch;width:100%}.cert-sign-form select{max-width:none;width:100%}
  .cert-verify{grid-template-columns:1fr}.verification-grid{grid-template-columns:1fr}
}

/* =====================================================================
   ΠΡΟΓΡΑΜΜΑ — ημερήσιο / εβδομαδιαίο / μηνιαίο / διάστημα (ατζέντα)
   ===================================================================== */
.prog-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 12px}
.seg{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--btn-line);border-radius:10px;background:var(--card)}
.seg a{padding:6px 14px;border-radius:7px;color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.seg a:hover{background:var(--btn-hover)}
.seg a.on{background:var(--brand);color:var(--on-brand)}
.prog-nav{display:inline-flex;align-items:center;gap:6px}
.prog-nav .btn{min-width:38px}
.prog-period{font-size:17px;font-weight:600;color:var(--app-text,var(--ink))}
.prog-filters .field.hours{flex:0 1 190px}
.prog-filters .field.wide{flex:0 1 230px}
.prog-filters .hours-pair{display:flex;gap:6px;align-items:center}
.prog-filters .hours-pair select{min-width:0}
.prog-notice{margin:0 0 12px;color:var(--warn);font-weight:500}
@media screen and (max-width:760px){.seg{width:100%}.seg a{flex:1;text-align:center;padding:7px 6px}.prog-nav{width:100%}.prog-nav .btn{flex:1}}

.sheet{position:relative;margin:0 0 18px;padding:16px 18px 18px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.sheet-head{display:none}
.sheet-sub{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:0 0 12px}
.sheet-sub h2{margin:0;font-size:18px;font-weight:600}
.sheet-sub span{color:var(--muted);font-size:14px}
.sheet-foot{display:none}
.sheet-scroll{overflow-x:auto}
.sheet-empty{padding:28px;text-align:center;color:var(--muted)}

/* Γεγονότα (μπλοκ ραντεβού) */
.ev{position:absolute;z-index:1;display:block;overflow:hidden;padding:3px 6px 3px 8px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-left:4px solid var(--brand);border-radius:6px;background:color-mix(in srgb,var(--brand) 10%,var(--card));color:var(--ink);font-size:12.5px;line-height:1.28;text-decoration:none}
.ev:hover{z-index:5;box-shadow:var(--shadow);background:color-mix(in srgb,var(--brand) 16%,var(--card))}
.ev span{display:block;overflow:hidden;text-overflow:ellipsis}
.ev .t{font-size:11.5px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.ev .t em{font-style:normal;font-weight:600;margin-left:4px}
.ev .c{font-weight:600}
.ev .a,.ev .m{color:var(--muted)}
.ev .n{font-style:italic;color:var(--ink-2)}
.ev.ev-short{padding-top:1px;padding-bottom:1px}
.ev.ev-short span{display:inline;white-space:nowrap}
.ev.ev-short .c{margin-left:4px}
.ev.ev-short .a,.ev.ev-short .m,.ev.ev-short .n{display:none}
.ev.st-confirmed{background:color-mix(in srgb,var(--brand) 18%,var(--card))}
.ev.st-in_progress{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,var(--card));border-color:color-mix(in srgb,var(--warn) 30%,var(--line))}
.ev.st-completed{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok) 11%,var(--card));border-color:color-mix(in srgb,var(--ok) 28%,var(--line))}
.ev.st-no_show{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 9%,var(--card));border-color:color-mix(in srgb,var(--danger) 25%,var(--line))}
.ev.st-cancelled{border-left-color:var(--faint);background:var(--surface2);color:var(--muted)}
.ev.st-cancelled .c{text-decoration:line-through}
.ev.urgent .t em.u,.chipev.urgent em.u{color:var(--danger)}
.ev.urgent{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--danger) 55%,transparent)}
.chipev{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;max-width:100%;padding:3px 8px;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:6px;background:var(--surface2);color:var(--ink);font-size:12.5px;text-decoration:none}
.chipev b{font-weight:600}.chipev i{font-style:normal;color:var(--muted)}
.chipev em{font-style:normal;font-weight:600}

/* Ημερήσια ατζέντα */
.ag{--hour-px:76px}
.ag-allday,.wk-allday-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;padding:8px 10px;border:1px dashed var(--btn-line);border-radius:var(--radius-sm)}
.ag-allday>b{margin-right:4px;font-size:12.5px;color:var(--muted)}
.ag-grid{display:grid;grid-template-columns:60px minmax(0,1fr);height:calc(var(--h-span) * var(--hour-px));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ag-times,.ag-col,.wk-times,.wk-col{display:flex;flex-direction:column;min-height:0}
.ag-times>div,.wk-times>div{position:relative;flex:1 1 0;min-height:0;border-bottom:1px solid var(--line)}
.ag-times>div:last-child,.wk-times>div:last-child,.ag-col .slot:last-child,.wk-col .slot:last-child{border-bottom:0}
.ag-times span,.wk-times span{position:absolute;top:3px;right:8px;font-size:12px;font-weight:600;color:var(--muted)}
.ag-col,.wk-col{position:relative;border-left:1px solid var(--line)}
.slot{position:relative;flex:1 1 0;min-height:0;border-bottom:1px solid var(--line)}
.slot::after{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed color-mix(in srgb,var(--line) 75%,transparent)}
.slot.off{background:color-mix(in srgb,var(--muted) 5%,transparent)}
.ev-layer{position:absolute;inset:0 3px 0 3px}
.now-line{position:absolute;left:0;right:0;z-index:0;border-top:2px solid var(--danger);pointer-events:none}
.now-line::before{content:"";position:absolute;left:-5px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--danger)}

/* Εβδομαδιαίο */
.wk{--hour-px:50px;min-width:760px}
.wk-head,.wk-allday,.wk-grid{display:grid;grid-template-columns:52px repeat(var(--days),minmax(0,1fr))}
.wk-head>div{padding:6px 6px 8px;text-align:center;font-size:13px;color:var(--muted);border-bottom:1px solid var(--line)}
.wk-head>div b{display:block;font-size:17px;font-weight:600;color:var(--ink)}
.wk-head>div.today b{color:var(--brand)}
.wk-head>div.weekend{color:var(--faint)}
.wk-allday>div{min-width:0;padding:4px 3px;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}
.wk-allday>div:first-child{border-left:0;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:11px;font-weight:600;color:var(--muted);text-align:right;line-height:1.15}
.wk-allday .chipev{display:block;margin:0 0 3px;padding:2px 5px;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wk-grid{height:calc(var(--h-span) * var(--hour-px))}
.wk-col.today{background:color-mix(in srgb,var(--brand) 4%,transparent)}
.wk .ev{font-size:11.5px;font-stretch:88%;padding:2px 4px 2px 6px;border-left-width:3px}
.wk .ev .t{font-size:10.5px}
.wk .ev .m,.wk .ev .n{display:none}
.wk .ev.multi span{white-space:nowrap}
.wk .ev-layer{inset:0 2px}

/* Μηνιαίο */
.mo{min-width:700px}
.mo-dow,.mo-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mo-dow>div{padding:6px 8px;font-size:12.5px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line)}
.mo-grid{border-left:1px solid var(--line)}
.mo-cell{min-width:0;min-height:118px;padding:5px 6px 6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.mo-cell.out{background:color-mix(in srgb,var(--muted) 6%,transparent)}
.mo-cell.out .d{color:var(--faint)}
.mo-cell .d{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px;font-size:13px;font-weight:600}
.mo-cell .d a{color:inherit;text-decoration:none}
.mo-cell .d small{font-size:11px;font-weight:500;color:var(--muted)}
.mo-cell.today .d a{display:inline-block;min-width:24px;padding:0 6px;border-radius:999px;background:var(--brand);color:var(--on-brand);text-align:center}
.mo-ev{display:block;overflow:hidden;margin-top:2px;padding:1px 5px;border-left:3px solid var(--brand);border-radius:4px;background:color-mix(in srgb,var(--brand) 9%,var(--card));color:var(--ink);font-size:12px;font-stretch:90%;line-height:1.35;text-decoration:none;white-space:nowrap;text-overflow:ellipsis}
.mo-ev b{font-weight:600}
.mo-ev.st-completed{border-left-color:var(--ok)}.mo-ev.st-in_progress{border-left-color:var(--warn)}.mo-ev.st-no_show{border-left-color:var(--danger)}
.mo-ev.st-cancelled{border-left-color:var(--faint);color:var(--muted);text-decoration:line-through}
.mo-more{display:block;margin-top:3px;font-size:11.5px;font-weight:600;color:var(--brand);text-decoration:none}

/* Αναλυτική λίστα / μορφή λίστας */
.plist-day{margin:0 0 16px}
.plist-day h3{display:flex;align-items:baseline;gap:10px;margin:0 0 6px;padding-bottom:5px;border-bottom:2px solid var(--ink);font-size:15px;font-weight:600}
.plist-day h3 small{font-size:12.5px;font-weight:500;color:var(--muted)}
.plist{width:100%;border-collapse:collapse;font-size:13.5px}
.plist th{padding:6px 8px;text-align:left;font-size:12px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line)}
.plist td{padding:7px 8px;vertical-align:top;border-bottom:1px solid var(--row-line)}
.plist td.time{width:92px;white-space:nowrap;font-weight:600}
.plist td.cust-cell{width:30%}
.plist td.phone{white-space:nowrap}
.plist td.notes{width:28%;min-width:140px}
.plist td.tick{width:28px}
.plist td.tick span{display:block;width:14px;height:14px;border:1.5px solid var(--ink-2);border-radius:2px}
.plist .cust{font-weight:600}
.plist .cust a{color:inherit;text-decoration:none}
.plist .cust a:hover{color:var(--brand)}
.plist .sub{color:var(--muted);font-size:12.5px}
.plist .notes{font-style:italic;color:var(--ink-2)}
.plist tr.st-cancelled td{color:var(--muted)}.plist tr.st-cancelled .cust{text-decoration:line-through}
.plist em.u{font-style:normal;font-weight:700;color:var(--danger)}
.plist-empty{padding:6px 0;color:var(--muted);font-size:13px}
@media screen and (max-width:720px){
  .plist thead{display:none}
  .plist,.plist tbody,.plist tr,.plist td{display:block;width:auto}
  .plist tr{padding:8px 0;border-bottom:1px solid var(--row-line)}
  .plist td{padding:1px 0;border:0}
  .plist td.time{width:auto}
  .plist td.tick{display:none}
  .plist td:empty{display:none}
}


/* =====================================================================
   v0.17 — Χρήση από κινητό
   ===================================================================== */
a,button,summary,.btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.tabbar,.filters-toggle,.m-agenda,.mo-count,.mo-dow .short{display:none}

/* Σύνδεση */
body.page-login .container{max-width:460px;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:64px;padding-bottom:40px}
.login-card{padding:28px 28px 30px}
.login-card .login-logo{width:min(100%,320px);margin:0 auto 18px}
.login-card h1{margin:0;font-size:24px;font-weight:600}
.login-card>p.muted{margin:4px 0 18px}
.login-card .flash{margin:0 0 6px}
.login-card .field{margin-top:14px}
.login-card .field>label{font-size:14px}
.login-card .field input:not([type=checkbox]){min-height:52px;padding:10px 14px;font-size:17px}
.pw-wrap{position:relative}
.login-card .pw-wrap input{padding-right:108px}
.pw-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);min-height:40px;padding:0 12px;border:0;border-radius:6px;background:var(--surface2);color:var(--ink-2);font-size:13.5px;font-weight:600;cursor:pointer}
.login-submit{width:100%;min-height:52px;margin-top:22px;font-size:16.5px}

@media screen and (max-width:980px){
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(10,20,24,.08)}
  .tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:54px;padding:4px 2px;border:0;border-radius:10px;background:none;color:var(--muted);font-size:11.5px;font-weight:600;text-decoration:none;cursor:pointer}
  .tabbar span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tabbar svg{width:23px;height:23px}
  .tabbar a.active{color:var(--brand)}
  .tabbar a.active svg{stroke-width:2.2}
  body.has-nav .container{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .bulkbar{bottom:calc(72px + env(safe-area-inset-bottom))}
  .side-nav a{padding:12px}
}
@media screen and (max-width:720px){
  html{font-size:15.5px}
  .field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,.field textarea,.search input,.bulkbar input,.bulkbar select,.tp-row input,.tp-row select,.theme-control select,.cert-sign-form select,
  .filters .field input:not([type=checkbox]),.filters .field select{min-height:46px;font-size:16px}
  .field>label{font-size:14px}
  .btn{min-height:44px}
  .btn.small{min-height:38px;padding:6px 12px}
  .check input,.table input[type=checkbox]{width:22px;height:22px}
  .chip,.section-tabs a{min-height:38px}
  .pagehead .actions>*,.head-actions>*{flex:1 1 auto}
  .pagehead .actions .btn,.head-actions .btn{padding:8px 10px;font-size:13.5px;white-space:normal;text-align:center}
  .table.stackable td.cell-actions .btn{min-height:42px}
  .picker-item{padding:11px 12px}
  .filters-toggle{display:flex;width:100%;justify-content:space-between;margin:0 0 12px}
  .filters-toggle::after{content:"";width:8px;height:8px;margin-right:4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
  .filters-toggle[aria-expanded="true"]::after{transform:translateY(2px) rotate(-135deg)}
  form.filters.collapsible:not(.open){display:none}

  /* Πρόγραμμα: λίστα αντί για ωριαίο πλέγμα, συμπαγής μήνας */
  .sheet{padding:12px}
  .sheet .ag,.sheet .wk{display:none}
  .m-agenda{display:block}
  .m-day{margin:0 0 16px}
  .m-day h3{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 8px;font-size:16px;font-weight:600}
  .m-day h3 small{font-size:12.5px;font-weight:500;color:var(--muted)}
  .m-day.today h3{color:var(--brand)}
  .m-ev{margin:0 0 8px;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:10px;background:var(--surface2)}
  .m-ev.st-in_progress{border-left-color:var(--warn)}.m-ev.st-completed{border-left-color:var(--ok)}.m-ev.st-no_show{border-left-color:var(--danger)}
  .m-ev.st-cancelled{border-left-color:var(--faint);opacity:.7}.m-ev.st-cancelled .m-cust{text-decoration:line-through}
  .m-time{font-size:13.5px;font-weight:600;color:var(--ink-2)}
  .m-time em{margin-left:6px;font-style:normal;font-weight:600}.m-time em.u{color:var(--danger)}
  .m-cust{display:block;margin-top:2px;font-size:16.5px;font-weight:600;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
  .m-place{margin-top:2px;font-size:14px}
  .m-meta{margin-top:2px;font-size:13px;color:var(--muted)}
  .m-notes{margin-top:6px;padding:6px 8px;border-radius:6px;background:var(--card);font-size:13.5px;font-style:italic}
  .m-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.m-links .btn{flex:1 1 auto}
  .m-empty{padding:4px 0 8px;color:var(--muted)}
  .mo{min-width:0}
  .mo-dow .full{display:none}.mo-dow .short{display:inline}
  .mo-dow>div{padding:4px 2px;text-align:center}
  .mo-cell{position:relative;min-height:58px;padding:5px 2px;text-align:center}
  .mo-cell .d{justify-content:center;margin:0}
  .mo-cell .d small,.mo-ev,.mo-more{display:none}
  .mo-cell .d a::after{content:"";position:absolute;inset:0}
  .mo-count{display:inline-block;margin-top:5px;min-width:24px;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--brand) 15%,var(--card));color:var(--brand);font-size:12.5px;font-weight:700}
}
@media screen and (max-width:560px){
  body.page-login .container{justify-content:flex-start;padding:70px 20px 32px}
  .login-card{padding:4px 2px;border:0;background:transparent;box-shadow:none}
  .login-card .login-logo{width:min(100%,290px);margin-bottom:22px}
}


/* =====================================================================
   v0.18 — Πελάτες: αρχική οθόνη, ευρετήριο, κάρτες
   ===================================================================== */
.cust-search input{min-height:48px}
.az{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 12px}
.az-l{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 6px;border:1px solid var(--btn-line);border-radius:8px;background:var(--card);color:var(--ink);font-size:14px;font-weight:600;text-decoration:none}
.az-l:hover{border-color:var(--brand);color:var(--brand)}
.az-l.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.az-l.off{border-color:transparent;background:transparent;color:var(--faint);opacity:.5}
.az-sep{width:1px;height:22px;margin:0 6px;background:var(--line)}
.cust-section{margin:8px 0 22px}
.cust-section .cardhead,.live-results .cardhead{align-items:center;margin-bottom:10px}
.cust-section .cardhead h2,.live-results .cardhead h2{font-size:17px;color:var(--app-text,var(--ink))}
.live-results .cardhead .muted{color:var(--app-muted,var(--muted))}
.cust-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.cust-card{display:flex;flex-direction:column;gap:3px;min-width:0;padding:13px 15px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-decoration:none;transition:border-color .12s}
.cust-card:hover{border-color:color-mix(in srgb,var(--brand) 55%,var(--line))}
.cc-name{overflow-wrap:anywhere}.cc-name strong{font-size:15px;font-weight:600}
.cc-extra{font-size:12.5px;font-weight:600;color:var(--brand)}
.cc-sub{font-size:13.5px;color:var(--ink-2);overflow-wrap:anywhere}
.cc-meta{font-size:12.5px;color:var(--muted)}
.cust-empty{margin:0 0 16px;padding:22px;text-align:center;color:var(--muted);background:var(--card);border:1px dashed var(--btn-line);border-radius:var(--radius)}
.cust-all{margin:4px 0 0}
.live-results{margin-bottom:16px}
@media screen and (max-width:720px){
  .az{flex-wrap:nowrap;overflow-x:auto;margin:0 -14px 12px;padding:0 14px 4px;scrollbar-width:none}
  .az::-webkit-scrollbar{display:none}
  .az-l{flex:none;min-width:40px;height:40px}
  .az-l.off{display:none}
  .cust-grid{grid-template-columns:1fr}
  .cust-table.stackable td{display:block;padding:1px 0}
  .cust-table.stackable td::before{content:none}
  .cust-table.stackable td.c-vat,.cust-table.stackable td.c-last,.cust-table.stackable td.c-act{display:none}
  .cust-table.stackable td.c-addr,.cust-table.stackable td.c-phone{font-size:13.5px;color:var(--muted)}
  .cust-table.stackable td.c-phone .muted{display:inline;margin-left:8px}
  .cust-table.stackable td.c-name .rowlink::after{content:"";position:absolute;inset:0}
  .cust-table.stackable td.cell-check{z-index:2}
}


/* v0.19 — πρόταση εγκατάστασης εφαρμογής */
.install-banner{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:90;display:flex;align-items:center;gap:12px;max-width:560px;margin:0 auto;padding:12px 12px 12px 14px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg)}
body.has-nav .install-banner{bottom:calc(74px + env(safe-area-inset-bottom))}
.install-banner img{flex:none;width:46px;height:46px;border-radius:11px;border:1px solid var(--line)}
.ib-text{flex:1;min-width:0;font-size:13.5px;line-height:1.4}
.ib-text strong{display:block;font-size:14.5px;margin-bottom:2px}
.ib-text svg{vertical-align:-3px;color:var(--brand)}
.install-banner .btn{flex:none}
.ib-close{flex:none;align-self:flex-start;width:32px;height:32px;margin:-4px -2px 0 0;border:0;border-radius:8px;background:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}
.settings-menu-logo.install-link{width:100%;border:0;text-align:left;cursor:pointer}
@media print{.install-banner{display:none!important}}


/* v0.20 — στοιχεία πιστοποιητικών */
.setup-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 18px;padding:12px 14px 12px 16px;background:color-mix(in srgb,var(--warn) 9%,var(--card));color:var(--ink);border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line));border-left:4px solid var(--warn);border-radius:var(--radius)}
.setup-banner>div{flex:1 1 300px;min-width:0}
.setup-banner strong{display:block;font-weight:600}
.setup-banner span{font-size:14px;color:var(--ink-2)}
.setup-intro{margin:0 0 18px;padding:16px 18px;background:color-mix(in srgb,var(--brand) 7%,var(--card));color:var(--ink);border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:var(--radius)}
.setup-intro h2{margin:0 0 4px;font-size:18px;font-weight:600}
.setup-intro p{margin:0;color:var(--ink-2)}
.field.missing>label{color:var(--warn)}
.field.missing input{border-color:var(--warn)!important;background:color-mix(in srgb,var(--warn) 6%,var(--input))!important}
.setup-actions{margin:0 0 18px}
@media screen and (max-width:720px){.setup-banner .btn{width:100%}.setup-actions .btn{flex:1 1 auto}}


/* v0.21 — σελίδα εγκατάστασης στο κινητό */
.login-install{display:block;margin-top:18px;text-align:center;font-size:14px;font-weight:600;color:var(--brand)}
.install-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
.install-layout>.card{margin:0}
.inst-lead{margin:0 0 12px;font-size:16px;font-weight:600}
.inst-big{width:100%;min-height:52px;font-size:16px}
.inst-state{padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--line)}
.inst-state strong{display:block}
.inst-state.ok{background:color-mix(in srgb,var(--ok) 10%,var(--card));border-color:color-mix(in srgb,var(--ok) 35%,var(--line));color:var(--ok)}
.inst-state span{color:var(--ink-2)}
#inst-oneclick{margin-bottom:18px}
.install-steps{margin:0 0 14px;padding:0;list-style:none;counter-reset:st}
.install-steps li{position:relative;margin:0 0 12px;padding:4px 0 0 44px;font-size:15.5px;line-height:1.45;counter-increment:st}
.install-steps li::before{content:counter(st);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);font-weight:700;font-size:14px}
.install-steps svg{vertical-align:-4px;color:var(--brand)}
.inst-qr{width:200px;max-width:100%;margin:6px 0 10px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm)}
.inst-qr svg{display:block;width:100%;height:auto}
.inst-url{overflow-wrap:anywhere}
.checklist{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}
.checklist li{position:relative;padding:2px 0 0 32px;font-size:14px}
.checklist li b{display:block;font-weight:600}
.checklist li span{color:var(--muted)}
.checklist li::before{content:"…";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--surface2);color:var(--muted)}
.checklist li.ok::before{content:"✓";background:color-mix(in srgb,var(--ok) 16%,var(--card));color:var(--ok)}
.checklist li.bad::before{content:"!";background:color-mix(in srgb,var(--danger) 15%,var(--card));color:var(--danger)}
.checklist li.bad span{color:var(--danger)}
.checklist li.info::before{content:"i";background:color-mix(in srgb,var(--info) 14%,var(--card));color:var(--info)}
@media screen and (max-width:860px){.install-layout{grid-template-columns:1fr}}


/* =====================================================================
   v0.22 — Κατόψεις & παγίδες
   ===================================================================== */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.plan-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface2);overflow:hidden}
.plan-thumb{display:block;background:#fff;border-bottom:1px solid var(--line)}
.plan-thumb-svg{display:block;width:100%;height:auto;max-height:200px}
.plan-info{display:flex;flex-direction:column;gap:2px;padding:10px 12px 4px}
.plan-info strong{font-weight:600}.plan-info span{font-size:13.5px;color:var(--ink-2)}.plan-info small{font-size:12px;color:var(--muted)}
.plan-actions{display:flex;gap:6px;padding:8px 12px 12px}
.plan-meta{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(0,1fr);gap:12px 14px;padding:14px 16px}
.plan-tools{position:sticky;top:0;z-index:15;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:0 0 10px;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.pt-group{display:flex;flex-wrap:wrap;gap:4px}
.pt-group+.pt-group{padding-left:12px;border-left:1px solid var(--line)}
.plan-tools button{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 11px;border:1px solid transparent;border-radius:8px;background:none;color:var(--ink);font-size:13.5px;font-weight:600;cursor:pointer}
.plan-tools button:hover{background:var(--btn-hover);border-color:var(--btn-line)}
.plan-tools button.on{background:color-mix(in srgb,var(--brand) 14%,var(--card));border-color:color-mix(in srgb,var(--brand) 55%,var(--line));color:var(--brand)}
.plan-tools svg{flex:none}
.plan-work{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;align-items:start}
.plan-canvas-wrap{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
#plan-svg{display:block;width:100%;height:auto;touch-action:none;user-select:none;-webkit-user-select:none;cursor:default}
#plan-svg[data-tool="room"],#plan-svg[data-tool="wall"]{cursor:crosshair}
#plan-svg[data-tool="door"],#plan-svg[data-tool="text"],#plan-svg[data-tool="trap"]{cursor:copy}
#plan-svg[data-tool="select"] .pe-item{cursor:move}
#plan-svg .pe-handle{cursor:nwse-resize}
.plan-hint{padding:7px 12px;border-top:1px solid #e3e8e7;background:#f7f9f8;color:#4a5a60;font-size:12.5px}
.plan-side{display:grid;gap:12px}
.plan-side .card{margin:0;padding:14px 16px}
.plan-side h3{margin:0 0 10px;font-size:14.5px}
.plan-side .cardhead{margin-bottom:8px}.plan-side .cardhead h3{margin:0}
.plan-side .field{margin-bottom:10px}
.pe-kind{margin:0 0 10px;font-weight:600;color:var(--brand)}
.pe-row{display:flex;flex-wrap:wrap;gap:6px}
.pe-sum{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pe-sum li{display:grid;grid-template-columns:20px 1fr auto;gap:8px;align-items:center;font-size:13.5px}
.pe-sum li.tot{grid-template-columns:1fr auto;padding-top:6px;border-top:1px solid var(--line);font-weight:600}
.plan-range{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px;font-weight:600;color:var(--muted)}
.plan-range input{flex:1;accent-color:var(--brand)}
.plan-danger{padding:0 4px}
.pe-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:120;padding:10px 16px;border-radius:10px;background:#183236;color:#fff;font-weight:600;box-shadow:var(--shadow-lg);transition:opacity .4s}
.pe-toast.bad{background:var(--danger)}.pe-toast.out{opacity:0}
body.has-nav .pe-toast{bottom:calc(88px + env(safe-area-inset-bottom))}
@media screen and (min-width:981px){body.has-nav .pe-toast{bottom:24px}}
@media screen and (max-width:1100px){.plan-work{grid-template-columns:1fr}.plan-side{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
@media screen and (max-width:720px){
  .plan-meta{grid-template-columns:1fr 1fr}.plan-meta .field:first-child{grid-column:1/-1}
  .plan-tools{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -14px 10px;border-radius:0;border-left:0;border-right:0}
  .plan-tools::-webkit-scrollbar{display:none}
  .pt-group{flex-wrap:nowrap}.plan-tools button{white-space:nowrap}
  .plan-tools .traps span{display:none}
  .plan-canvas-wrap{margin:0 -14px;border-radius:0;border-left:0;border-right:0}
}
/* Εκτύπωση κάτοψης */
.plan-sheet{max-width:1100px;margin:0 auto 18px;padding:18px 20px;background:#fff;color:#1b1b1b;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow)}
.ps-head{display:flex;align-items:center;gap:14px;padding-bottom:10px;margin-bottom:10px;border-bottom:2px solid #1b1b1b}
.ps-head img{height:48px;width:auto}
.ps-title{flex:1;min-width:0}.ps-title small{display:block;font-size:12px;color:#555}.ps-title strong{display:block;font-size:19px;line-height:1.2}.ps-title span{display:block;font-size:13px;color:#333}
.ps-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:#444;white-space:nowrap}
.ps-plan{display:flex;justify-content:center;border:1px solid #bbb}
.ps-plan .plan-svg{display:block;width:100%;height:auto;max-height:70vh}
.ps-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:10px}
.ps-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px}
.ps-legend span{display:inline-flex;align-items:center;gap:6px}
.ps-sign{min-width:220px;text-align:center;font-size:12.5px}.ps-sign span{color:#555}.ps-line{height:36px;border-bottom:1px solid #888;margin:2px 0 3px}.ps-sign b{display:block}.ps-sign small{color:#555}
.ps-table{width:100%;border-collapse:collapse;font-size:13px}
.ps-table th,.ps-table td{padding:5px 8px;border:1px solid #bbb;text-align:left;vertical-align:middle}
.ps-table th{background:#f2f2f2;font-size:12px}
.ps-table td.no{width:44px;text-align:center}.ps-table td.no svg{display:block;margin:0 auto}
.ps-table td.chk{width:90px}
@media print{
  body.page-plan-print .plan-sheet{max-width:none;margin:0;padding:0;border:0;box-shadow:none;border-radius:0}
  body.page-plan-print .plan-sheet+.plan-sheet{break-before:page;page-break-before:always;padding-top:.4mm}
  body.pp-landscape .ps-plan .plan-svg{width:auto;max-width:100%;max-height:126mm}
  body.pp-portrait .ps-plan .plan-svg{width:auto;max-width:100%;max-height:205mm}
  .ps-foot{margin-top:2.5mm;break-inside:avoid}.ps-legend{font-size:9pt}.ps-sign{min-width:58mm;font-size:9pt}.ps-line{height:9mm}
  .ps-head{padding-bottom:2.5mm;margin-bottom:2.5mm}.ps-head img{height:12mm}
  .ps-plan{border-color:#999}
  .ps-table tr{break-inside:avoid}
}


/* =====================================================================
   v0.23 — Έλεγχος παγίδων
   ===================================================================== */
.tc-field>label{font-size:15px}
.tc-none{padding:12px 14px;border:1px dashed var(--btn-line);border-radius:var(--radius-sm);background:var(--surface2);color:var(--muted);font-size:14px}
.tc-enable{margin:2px 0 10px;font-weight:600}
[data-tc-content].loading{opacity:.5;pointer-events:none}
.tc-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 10px}
.tc-plan{margin:0 0 14px}
.tc-plan h4{margin:0 0 6px;font-size:14px;font-weight:600;color:var(--ink-2)}
.tc-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--card)}
.tc-table th{padding:7px 8px;text-align:left;font-size:12px;font-weight:600;color:var(--muted);background:var(--surface2);border-bottom:1px solid var(--line);white-space:nowrap}
.tc-table td{padding:6px 8px;border-bottom:1px solid var(--row-line);vertical-align:middle}
.tc-table tbody tr:last-child td{border-bottom:0}
.tc-table select,.tc-table input:not([type=checkbox]){min-height:36px;padding:5px 8px;border:1px solid var(--btn-line);border-radius:7px;background:var(--input);color:var(--ink);font-size:14px}
.tc-table input[type=number]{width:84px}
.tc-table .tc-note input{width:100%;min-width:140px}
.tc-no{width:40px}.tc-no svg{display:block}
.tc-what strong{display:block;font-weight:600;font-size:13px}.tc-what span{display:block;font-size:12.5px;color:var(--muted)}
.tc-table .check{font-size:13px;white-space:nowrap}
.tc-row.off td{opacity:.5}.tc-row.off td.tc-chk{opacity:1}
.tc-row.act td{background:color-mix(in srgb,var(--danger) 7%,var(--card))}
.tc-row.act .tc-val select,.tc-row.act .tc-val input{border-color:var(--danger);color:var(--danger);font-weight:700}
.tc-row.issue .tc-cond select{border-color:var(--warn);color:var(--warn);font-weight:600}
@media screen and (max-width:900px){
  .tc-table,.tc-table tbody,.tc-table tr,.tc-table td{display:block;width:100%}
  .tc-table{border:0;background:none}
  .tc-table thead{display:none}
  .tc-table tr{display:grid;grid-template-columns:40px 1fr 1fr;gap:6px 10px;align-items:center;margin:0 0 8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
  .tc-table td{padding:0;border:0}
  .tc-table .tc-what{grid-column:2/-1}
  .tc-table .tc-chk{grid-column:1/-1}
  .tc-table .tc-cond,.tc-table .tc-val{grid-column:span 1}.tc-table .tc-cond{grid-column:1/3}
  .tc-table .tc-repl,.tc-table .tc-note{grid-column:1/-1}
  .tc-table select,.tc-table input:not([type=checkbox]){width:100%;min-height:44px;font-size:16px}
  .tc-row.off td{opacity:1}.tc-row.off{opacity:.6}
  .tc-row.act td{background:none}.tc-row.act{background:color-mix(in srgb,var(--danger) 7%,var(--card));border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}
}
/* Αναφορά */
.tr-sum,.tr-stats{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12.5px}
.tr-stats{margin:0 0 10px;padding:8px 10px;border:1px solid #ccc;border-radius:6px;background:#f7f7f7}
.tr-plan{margin:12px 0 6px;font-size:14px}
.tr-table td .sub{display:block;font-size:11.5px;color:#666}
.tr-table tr.act td{background:#fdecec;font-weight:600}
.tr-table tr.off td{color:#888}
.tr-table td.val b{font-size:13.5px}
.tr-signs{display:flex;justify-content:space-between;gap:30px;margin-top:16px;break-inside:avoid}
@media print{.tr-table tr.act td{background:#f3d6d6!important}.tr-stats{background:#f3f3f3!important}}


/* v0.24 — Πιστοποιήσεις ISO */
.iso-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.3fr) 160px auto;gap:10px;align-items:end;margin:0 0 10px;padding:0 0 10px;border-bottom:1px solid var(--row-line)}
.iso-row .iso-x{min-height:40px;font-size:18px}
.iso-row.soon input[type=date]{border-color:var(--warn);color:var(--warn)}
.iso-row.expired input[type=date]{border-color:var(--danger);color:var(--danger)}
.cert-iso{display:block;margin-top:3px;font-size:12px;color:#444;white-space:normal;max-width:330px;margin-left:auto}
@media screen and (max-width:860px){.iso-row{grid-template-columns:1fr 1fr}.iso-row .field:first-child{grid-column:1/-1}.iso-row .iso-x{grid-column:1/-1}.cert-iso{margin-left:0}}
@media print{.cert-iso{font-size:9pt}}


/* GDPR & ασφάλεια */
.consent-wrap{max-width:820px;margin:0 auto}
.consent-card{padding:28px 30px}
.consent-card h1{margin:6px 0 10px;font-size:24px}
.consent-card h2{margin:20px 0 8px;font-size:16px}
.consent-badge{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 8px;border-radius:999px;background:color-mix(in srgb,var(--brand) 12%,var(--card));color:var(--brand);font-size:12.5px;font-weight:700;letter-spacing:.02em}
.consent-badge svg{width:22px;height:22px}
.consent-list{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.consent-list li{position:relative;padding-left:26px;line-height:1.45}
.consent-list li::before{position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700}
.consent-list.ok li::before{content:"✓";background:color-mix(in srgb,var(--ok) 15%,var(--card));color:var(--ok)}
.consent-list.no li::before{content:"✕";background:color-mix(in srgb,var(--danger) 13%,var(--card));color:var(--danger)}
.consent-list.pen li::before{content:"!";background:color-mix(in srgb,var(--warn) 18%,var(--card));color:var(--warn)}
.consent-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.consent-form .check{font-weight:600;margin-bottom:12px}
.login-remember{margin-top:14px;font-size:14px}
.side-privacy{display:flex;align-items:center;gap:10px;margin:0 6px;padding:7px 10px;border-radius:8px;color:var(--side-muted);font-size:12.5px;text-decoration:none}
.side-privacy svg{width:17px;height:17px}.side-privacy:hover{background:var(--side-hover);color:var(--side-ink)}
.gdpr-card h2 svg,.pagehead h1 svg{width:24px;height:24px;vertical-align:-4px;color:var(--brand)}
@media screen and (max-width:720px){.consent-card{padding:18px 16px}}


/* Αρίθμηση παγίδων & ετικέτες */
.pe-gaps{margin:8px 0 0;padding:7px 9px;border-radius:7px;background:color-mix(in srgb,var(--warn) 12%,var(--card));color:var(--warn);font-size:12.5px;font-weight:600}
.trap-label.needs-reprint{outline:2px dashed var(--warn);outline-offset:2px}
.label-renumbered{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--warn) 12%,var(--card));color:var(--warn);font-weight:600;font-size:14px}
@media print{.trap-label.needs-reprint{outline:0}}


/* Ραντεβού: ολοκληρωμένα πράσινα, ακυρωμένα με πρόταση νέας ημερομηνίας · 24ωρη ώρα */
.badge.appt-ok{background:color-mix(in srgb,var(--ok) 18%,var(--card));color:var(--ok);font-weight:700}
.appt-row.appt-completed td{background:color-mix(in srgb,var(--ok) 7%,var(--card))}
.appt-row.appt-completed td:first-child{box-shadow:inset 4px 0 0 var(--ok)}
.appt-row.appt-cancelled td{background:color-mix(in srgb,var(--danger) 4%,var(--card))}
.appt-row.appt-cancelled td:first-child{box-shadow:inset 4px 0 0 var(--danger)}
.appt-row.appt-cancelled td strong{text-decoration:line-through;opacity:.75}
.appt-resched{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}
.appt-resched small{color:var(--muted);font-weight:600}
.appt-resched-form{display:contents}
.appt-new{font-weight:600;white-space:nowrap}
.appt-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.appt-state-completed{border-left:4px solid var(--ok)}.appt-state-cancelled{border-left:4px solid var(--danger)}
.ev.st-completed{background:color-mix(in srgb,var(--ok) 20%,var(--card))!important;border-left-color:var(--ok)!important}
.ev.st-completed .t em,.m-ev.st-completed .m-time em{color:var(--ok)}


/* Έκδοση στην Αρχική */
.version-chip{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:12.5px;font-weight:600;text-decoration:none}
.version-chip:hover{color:var(--brand);border-color:var(--brand)}
@media print{.version-chip{display:none}}

.app-version{display:block;margin-top:4px;font-size:12px;font-weight:600;opacity:.85}

/* Αρχική: ραντεβού ανά μήνα/έτος */
.up-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.up-tools .seg a{padding:5px 12px;font-size:13px}
#upcoming .cardhead h2 small{font-size:13px;font-weight:500}
@media screen and (max-width:720px){.up-tools{width:100%}.up-tools .seg{flex:1 1 100%}}

.m-links form.inline{display:contents}
#upcoming td.right form.inline{display:inline}

/* Κουμπιά ολοκλήρωσης ραντεβού */
.qa-group{display:inline-flex;flex-wrap:wrap;gap:6px;vertical-align:middle}
.btn.qa-done{background:var(--ok);border-color:var(--ok);color:#fff;font-weight:700}
.btn.qa-done:hover{background:color-mix(in srgb,var(--ok) 85%,#000);border-color:color-mix(in srgb,var(--ok) 85%,#000)}
.btn.qa-done-light{background:color-mix(in srgb,var(--ok) 10%,var(--btn));border-color:color-mix(in srgb,var(--ok) 55%,var(--btn-line));color:var(--ok);font-weight:700}
.btn.qa-done-light:hover{background:color-mix(in srgb,var(--ok) 18%,var(--btn))}
html[data-theme="dark"] .btn.qa-done{color:#06130c}
.qa-group form.inline{display:inline}
.table td .qa-group{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin-top:5px}
.table td .qa-group .btn,.table td .qa-group form .btn{width:100%;white-space:normal;line-height:1.25;text-align:center}
.table td .qa-group{max-width:126px;margin-left:auto}
.table td .qa-group .btn{font-size:12.5px;padding:5px 8px}
@media screen and (min-width:721px){.appt-row td:nth-child(2){white-space:normal;min-width:84px}}
@media screen and (max-width:720px){.qa-group{display:flex;width:100%}.qa-group .btn,.qa-group form{flex:1 1 100%}.qa-group form .btn{width:100%}}


/* Πρόγραμμα: στήλες ανά συνεργείο · κατηγορίες παγίδων */
.ag-crew-head{display:grid;grid-template-columns:60px repeat(var(--crews),minmax(0,1fr));border-bottom:1px solid var(--line)}
.ag-crew-head>div{display:flex;align-items:baseline;justify-content:center;gap:6px;padding:6px 4px;border-left:1px solid var(--line);font-size:13.5px;min-width:0}
.ag-crew-head>div:first-child{border-left:0}
.ag-crew-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-crew-head small{color:var(--muted);font-weight:600}
.ag-grid.ag-grid-crews{grid-template-columns:60px repeat(var(--crews),minmax(0,1fr))}
.pt-cat{align-self:center;padding:0 6px 0 2px;font-size:12px;font-weight:700;color:var(--muted);text-transform:none}
@media print{.ag-crew-head>div{font-size:9pt;padding:1mm;border-color:#8c8c8c}}

/* ---------- Εκτύπωση ---------- */
@page{size:A4;margin:14mm}
@media print{
  .az,.live-results,.cust-search{display:none!important}
  html,html[data-theme][data-palette]{--ink:#000;--ink-2:#222;--muted:#444;--faint:#777;--bg:#fff;--card:#fff;--surface:#fff;--surface2:#f2f2f2;--line:#9a9a9a;--row-line:#cfcfcf;--btn:#fff;--btn-line:#999;--brand:#000;--on-brand:#fff;--ok:#000;--warn:#000;--danger:#000;color-scheme:light}
  html,body{background:#fff!important;color:#000!important;font-size:11pt}
  body.has-nav{padding-left:0}
  .sidebar,.mobilebar,.nav-scrim,.login-theme,.no-print,.actions,.bulkbar,.chips,.filters,.pager,.flash,.search,.section-tabs,.prog-bar,.prog-notice{display:none!important}
  .print-only{display:block}
  .container{max-width:none;margin:0;padding:0;overflow:visible;color:#000}
  .pagehead{margin-bottom:8px}.pagehead h1{color:#000}.pagehead p{color:#333}
  .card,.stat,.tablewrap{box-shadow:none;border-color:#bbb}
  .tablewrap{overflow:visible;border:0;background:#fff}
  .table{min-width:0;font-size:9.5pt}
  .table th,.table td{padding:4px 6px;color:#000;background:#fff!important}
  .table th.sortable-column::after{display:none}
  .badge{padding:0;background:none!important;color:#000!important}
  .rowlink{color:#000}
  .cert{max-width:none;padding:0;border:0;border-radius:0;box-shadow:none;font-size:13.5px}
  .cert-top{flex-direction:row}.cert-logo{width:270px;max-width:60%}.cert-no{text-align:right}
  .cert-title{margin:20px 0 14px}.cert-row{grid-template-columns:170px 1fr;gap:12px;padding:6px 0}
  .cert-sign{flex-direction:row;align-items:flex-end;margin-top:34px}.sign-line{height:56px}
  .cert-table{page-break-inside:avoid}
  .cert-verify{grid-template-columns:auto minmax(0,1fr);margin-top:14px}.verify-barcode{height:44px}
  .verify-qr-svg{width:27mm;height:27mm}
  .cert-sign,.cert-verify{break-inside:avoid;page-break-inside:avoid}
  .cert-sign-form{display:none!important}
  .digital-signature{background:#fff!important;color:#000!important;border-color:#aaa!important}

  /* Πρόγραμμα σε χαρτί */
  body.page-program .pagehead{display:none}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sheet{margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:#fff;color:#000}
  .sheet+.sheet{break-before:page;page-break-before:always;padding-top:.4mm}
  .sheet.fixed{display:flex;flex-direction:column;height:var(--page-h,270mm);overflow:hidden;contain:paint}
  .sheet-scroll{overflow:visible}
  .sheet-sub{display:none}
  .sheet-head{display:flex;align-items:center;gap:5mm;margin:0 0 3mm;padding:0 0 2.5mm;border-bottom:1.6pt solid #000}
  .sheet-head img{height:13mm;width:auto}
  .sheet-head .ttl{flex:1;min-width:0}
  .sheet-head .ttl small{display:block;font-size:8.5pt;letter-spacing:.02em;color:#333}
  .sheet-head .ttl strong{display:block;font-size:15pt;font-weight:600;line-height:1.15}
  .sheet-head .who{text-align:right;font-size:9pt;line-height:1.35}
  .sheet-head .who b{display:block;font-size:11pt}
  .sheet-foot{display:flex;justify-content:space-between;margin-top:auto;padding-top:1.5mm;font-size:7.5pt;color:#555}
  .sheet:not(.fixed) .sheet-foot{margin-top:4mm}
  .ag,.wk{--hour-px:auto}
  .sheet.fixed .ag{display:flex;flex-direction:column;flex:1;min-height:0}
  .sheet.fixed .ag-grid,.sheet.fixed .wk-grid{flex:1 1 auto;height:auto;min-height:0}
  .sheet.fixed .wk{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
  .sheet.fixed .sheet-scroll{display:flex;flex-direction:column;flex:1;min-height:0}
  .sheet.fixed .mo{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
  .sheet.fixed .mo-grid{flex:1 1 0;min-height:0;grid-auto-rows:minmax(0,1fr)}
  .mo-cell{min-height:0;overflow:hidden;contain:paint;padding:1mm 1.3mm}
  .ag-grid{border-color:#000}
  .slot,.ag-times>div,.wk-times>div{border-color:#8c8c8c}
  .slot::after{border-top-color:#c4c4c4}
  .ag-col,.wk-col{border-left-color:#8c8c8c}
  .ag-times span,.wk-times span{color:#000;font-size:8.5pt}
  .now-line,.wk-col.today,.slot.off{display:none}
  .wk-col.today{display:flex;background:none}
  .ev{border:0.6pt solid #555;border-left:2.4pt solid #000;background:#ececec!important;color:#000;font-size:8.3pt;line-height:1.22;border-radius:1.2mm;box-shadow:none}
  .ev .t{font-size:7.8pt;color:#000}.ev .a,.ev .m{color:#333}.ev .n{color:#222}
  .ev.st-completed,.ev.st-confirmed,.ev.st-in_progress,.ev.st-no_show{background:#ececec!important;border-left-color:#000}
  .ev.st-cancelled{background:#fff!important;border-left-color:#999;color:#777}
  .ev.urgent{border:1.2pt solid #000;border-left-width:2.4pt}
  .wk .ev{font-size:7.4pt}.wk .ev .t{font-size:7pt}
  .wk-head>div{color:#000;font-size:8.5pt;padding:1mm}.wk-head>div b{font-size:11pt;color:#000}
  .chipev{background:#f0f0f0!important;border-color:#888;border-left-color:#000;font-size:8.2pt}
  .ag-allday,.wk-allday-row{border-color:#888}
  .mo-dow>div{color:#000;font-size:8.5pt;padding:1mm 1.3mm}
  .mo-grid{border-color:#8c8c8c}.mo-cell{border-color:#8c8c8c}
  .mo-cell .d{font-size:9pt}.mo-cell.today .d a{background:none;color:#000;padding:0}
  .mo-ev{margin-top:.6mm;background:#efefef!important;border-left-color:#000;font-size:7.4pt;line-height:1.3}
  .mo-more{margin-top:.6mm;font-size:7.4pt;color:#000}
  .mo-cell.out{background:#f6f6f6!important}
  .plist{font-size:9pt}
  .plist th{color:#000;border-bottom:1pt solid #000;padding:1.2mm 1.5mm}
  .plist td{padding:1.4mm 1.5mm;border-bottom:.5pt solid #aaa}
  .plist tr{break-inside:avoid;page-break-inside:avoid}
  .plist-day{break-inside:auto}
  .plist-day h3{break-after:avoid;page-break-after:avoid;border-bottom-color:#000;font-size:11pt}
  .plist td.tick span{border-color:#000}
  a{color:#000!important;text-decoration:none!important}
}


/* Release information */
.release-modal-box{width:min(680px,100%)}
.release-kicker{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--brand);margin-bottom:4px}
.release-meta{display:flex;flex-wrap:wrap;gap:10px 18px;padding:11px 13px;margin:0 0 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface2);font-size:14px}
.release-meta span{display:flex;gap:6px;align-items:center}
.release-notes{margin:0;padding:0 0 0 21px;display:grid;gap:10px;line-height:1.5}
.release-actions{gap:10px;flex-wrap:wrap}
.release-page{max-width:760px;margin:0 auto}
.release-page h1{margin-bottom:6px}
.release-version-card{margin-top:18px}
@media(max-width:560px){.release-actions{display:grid;grid-template-columns:1fr}.release-actions .btn,.release-actions form,.release-actions form .btn{width:100%}.release-meta{display:grid;gap:8px}}


.settings-version{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.settings-version strong{color:var(--ink);font-size:12px}
.settings-version small{white-space:nowrap}


/* v0.27 — compact single-page certificate */
.cert-license b{font-weight:700}
.digital-signature.compact{
  margin:6px 0 0;
  padding:7px 9px;
  max-width:310px;
  gap:1px;
  border-left-width:3px;
  font-size:10.5px;
  line-height:1.2;
}
.digital-signature.compact strong{font-size:11.5px}
.digital-signature.compact code{font-size:9.5px}
.digital-signature.compact small{font-size:9.5px}
.cert-place-date{white-space:nowrap}

@page{size:A4;margin:8mm}
@media print{
  body.page-certificate{margin:0!important;padding:0!important}
  body.page-certificate .container{padding:0!important;margin:0!important;max-width:none!important}
  body.page-certificate .cert{
    zoom:var(--cert-print-zoom,1);
    max-width:none!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
    font-size:10pt!important;
    line-height:1.24!important;
  }
  body.page-certificate .cert-top{
    gap:8mm!important;
    padding-bottom:2.2mm!important;
    border-bottom-width:1.5pt!important;
  }
  body.page-certificate .cert-logo{width:52mm!important;max-height:19mm!important;object-fit:contain!important}
  body.page-certificate .cert-no{font-size:8.5pt!important;line-height:1.2!important}
  body.page-certificate .cert-no strong{font-size:10.5pt!important}
  body.page-certificate .cert-license{margin-top:1.2mm!important;font-size:8.3pt!important}
  body.page-certificate .cert-iso{margin-top:.6mm!important;font-size:7.7pt!important;line-height:1.15!important}
  body.page-certificate .cert-title{margin:3.2mm 0 2.5mm!important;font-size:15pt!important;line-height:1.1!important}
  body.page-certificate .cert-lead{margin:0 0 2.3mm!important;font-size:9.6pt!important;line-height:1.25!important}
  body.page-certificate .cert-rows{margin-bottom:3mm!important}
  body.page-certificate .cert-row{grid-template-columns:38mm 1fr!important;gap:2mm!important;padding:1.2mm 0!important;font-size:9.4pt!important}
  body.page-certificate .cert-sub{margin:0 0 1.5mm!important;font-size:9.2pt!important;line-height:1.15!important}
  body.page-certificate .cert-table{margin-bottom:2mm!important;font-size:8.8pt!important}
  body.page-certificate .cert-table th,
  body.page-certificate .cert-table td{padding:1.2mm 1.5mm!important;line-height:1.18!important}
  body.page-certificate .cert-table th{font-size:7.7pt!important}
  body.page-certificate .cert-note{margin:1mm 0!important;font-size:8.5pt!important;line-height:1.18!important}
  body.page-certificate .cert-block{margin-top:2mm!important;font-size:8.7pt!important;line-height:1.2!important}
  body.page-certificate .cert-verify{
    grid-template-columns:22mm 1fr!important;
    gap:3mm!important;
    margin:2.5mm 0 0!important;
    padding-top:2mm!important;
  }
  body.page-certificate .verify-qr-svg{width:20mm!important;height:20mm!important}
  body.page-certificate .cert-verify .small{font-size:7.5pt!important;line-height:1.15!important}
  body.page-certificate .cert-verify .mono{font-size:7pt!important}
  body.page-certificate .cert-sign{
    margin-top:3mm!important;
    gap:8mm!important;
    font-size:8.7pt!important;
    align-items:flex-end!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.page-certificate .sign-box{min-width:58mm!important}
  body.page-certificate .sign-role{font-size:7.8pt!important}
  body.page-certificate .sign-line{height:9mm!important}
  body.page-certificate .digital-signature.compact{
    margin-top:1.2mm!important;
    padding:1.5mm 2mm!important;
    max-width:64mm!important;
    font-size:7.6pt!important;
    line-height:1.12!important;
    border-left-width:2pt!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.page-certificate .digital-signature.compact strong{font-size:8.4pt!important}
  body.page-certificate .digital-signature.compact code,
  body.page-certificate .digital-signature.compact small{font-size:6.8pt!important}
  body.page-certificate .cert-top,
  body.page-certificate .cert-table,
  body.page-certificate .cert-verify,
  body.page-certificate .cert-sign{break-inside:avoid!important;page-break-inside:avoid!important}
}


/* Certificate print repair — full, balanced A4 page without wasting half the sheet */
@page{size:A4;margin:10mm}
@media print{
  body.page-certificate{margin:0!important;padding:0!important}
  body.page-certificate .container{padding:0!important;margin:0!important;max-width:none!important}

  body.page-certificate .cert{
    zoom:var(--cert-print-zoom,1);
    width:100%!important;
    min-height:277mm!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
    display:flex!important;
    flex-direction:column!important;
    font-size:10.7pt!important;
    line-height:1.34!important;
  }

  body.page-certificate .cert-top{
    gap:10mm!important;
    padding-bottom:4mm!important;
    border-bottom-width:1.6pt!important;
  }
  body.page-certificate .cert-logo{
    width:58mm!important;
    max-height:23mm!important;
    object-fit:contain!important;
  }
  body.page-certificate .cert-no{font-size:9.2pt!important;line-height:1.28!important}
  body.page-certificate .cert-no strong{font-size:12pt!important}
  body.page-certificate .cert-license{margin-top:2mm!important;font-size:9pt!important}
  body.page-certificate .cert-iso{margin-top:1mm!important;font-size:8.3pt!important;line-height:1.2!important}

  body.page-certificate .cert-title{
    margin:6mm 0 4mm!important;
    font-size:18pt!important;
    line-height:1.12!important;
  }
  body.page-certificate .cert-lead{
    margin:0 0 4mm!important;
    font-size:10.6pt!important;
    line-height:1.38!important;
  }

  body.page-certificate .cert-rows{margin-bottom:5mm!important}
  body.page-certificate .cert-row{
    grid-template-columns:42mm 1fr!important;
    gap:3mm!important;
    padding:2mm 0!important;
    font-size:10.3pt!important;
  }

  body.page-certificate .cert-sub{
    margin:0 0 2.5mm!important;
    font-size:10.2pt!important;
    line-height:1.2!important;
  }
  body.page-certificate .cert-table{
    margin-bottom:3mm!important;
    font-size:9.4pt!important;
  }
  body.page-certificate .cert-table th,
  body.page-certificate .cert-table td{
    padding:2mm 2.2mm!important;
    line-height:1.25!important;
  }
  body.page-certificate .cert-table th{font-size:8.2pt!important}

  body.page-certificate .cert-note{
    margin:1.5mm 0!important;
    font-size:9.1pt!important;
    line-height:1.28!important;
  }
  body.page-certificate .cert-block{
    margin-top:3mm!important;
    font-size:9.3pt!important;
    line-height:1.3!important;
  }

  /* Push verification + signature toward the lower part of A4 when content is short. */
  body.page-certificate .cert-verify{
    grid-template-columns:26mm 1fr!important;
    gap:4mm!important;
    margin-top:auto!important;
    padding-top:4mm!important;
  }
  body.page-certificate .verify-qr-svg{
    width:24mm!important;
    height:24mm!important;
  }
  body.page-certificate .cert-verify .small{font-size:8.1pt!important;line-height:1.25!important}
  body.page-certificate .cert-verify .mono{font-size:7.6pt!important}

  body.page-certificate .cert-sign{
    margin-top:5mm!important;
    gap:10mm!important;
    font-size:9.3pt!important;
    align-items:flex-end!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.page-certificate .sign-box{min-width:64mm!important}
  body.page-certificate .sign-role{font-size:8.4pt!important}
  body.page-certificate .sign-line{height:14mm!important}

  body.page-certificate .digital-signature.compact{
    margin-top:2mm!important;
    padding:2.3mm 2.8mm!important;
    max-width:68mm!important;
    font-size:8.2pt!important;
    line-height:1.2!important;
    border-left-width:2pt!important;
  }
  body.page-certificate .digital-signature.compact strong{font-size:9.2pt!important}
  body.page-certificate .digital-signature.compact code,
  body.page-certificate .digital-signature.compact small{font-size:7.3pt!important}

  body.page-certificate .cert-top,
  body.page-certificate .cert-table,
  body.page-certificate .cert-verify,
  body.page-certificate .cert-sign{
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
}


/* v0.28 — crews and richer daily program */
.crew-member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.crew-member-check{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);cursor:pointer}
.crew-member-check input{margin-top:3px}
.crew-member-check span{display:grid;gap:1px}
.crew-member-check small{color:var(--muted)}
.ev .crew-members{font-size:11px;color:var(--ink-2);font-weight:600}
.day-notes{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.day-notes h3{margin:0 0 6px;font-size:13px}
.day-note-row{display:grid;grid-template-columns:48px 1fr;gap:8px;padding:4px 0;border-bottom:1px solid var(--row-line);font-size:12px}
.day-note-row>span{display:grid;gap:1px}
.day-note-row small{color:var(--muted)}
.day-note-row em{font-style:normal;color:var(--ink-2)}
.route-btn{margin:0 0 10px}
.m-crew-members{margin-top:3px;font-size:12.5px;font-weight:600;color:var(--ink-2)}

@media screen{
  /* Do not throw useful text away on the day view: the complete text is repeated in the notes panel. */
  .ag .ev .n{white-space:normal}
}

@media print{
  body.page-program .route-btn{display:none!important}
  body.page-program .day-notes{margin-top:2.5mm;padding-top:1.5mm;border-top:.6pt solid #999}
  body.page-program .day-notes h3{margin:0 0 1mm;font-size:8.5pt}
  body.page-program .day-note-row{grid-template-columns:11mm 1fr;gap:1.5mm;padding:.7mm 0;font-size:7.7pt;line-height:1.18;border-bottom:.3pt solid #ccc}
  body.page-program .day-note-row small{font-size:7.1pt}
  body.page-program .day-note-row em{font-size:7.5pt}
  body.page-program .sheet.fixed .ag-grid{min-height:80mm}
  body.page-program .ev .crew-members{font-size:6.8pt}
  body.page-program .plist td.notes{width:31%;white-space:normal}
}


/* Program daily view repair: do not lose appointment text. */
.ag .ev{
  overflow:hidden;
  padding:5px 8px;
}
.ag .ev .ev-head{
  display:flex;
  align-items:baseline;
  gap:10px;
  min-width:0;
}
.ag .ev .ev-head .t{
  flex:0 0 auto;
  white-space:nowrap;
}
.ag .ev .ev-head .c{
  flex:1 1 auto;
  min-width:0;
  font-weight:700;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}
.ag .ev .ev-info{
  display:block;
  margin-top:2px;
  color:var(--muted);
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
}
.ag .ev .n{
  display:block;
  margin-top:3px;
  color:var(--ink-2);
  font-style:normal;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
}
.ag .ev .n b{font-weight:700}
.ag .ev.ev-short{
  padding:4px 7px;
}
.ag .ev.ev-short span,
.ag .ev.ev-short .ev-head,
.ag .ev.ev-short .ev-info,
.ag .ev.ev-short .n{
  display:block;
  white-space:normal;
}
.ag .ev.ev-short .ev-head{
  display:flex;
}
.ag .ev.ev-short .c{margin-left:0}
.ag .ev.ev-short .ev-info,
.ag .ev.ev-short .n{
  display:block!important;
}

/* The day view can grow vertically when needed; this is intentional so no useful text is clipped. */
.ag-grid{min-height:calc(var(--h-span) * var(--hour-px))}

@media print{
  body.page-program .ag .ev .ev-head{display:flex!important}
  body.page-program .ag .ev .ev-info,
  body.page-program .ag .ev .n{display:block!important;white-space:normal!important}
}


/* v0.32 — monthly recurring appointments */
.monthly-repeat-box{padding:10px 12px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--brand) 5%,var(--card))}
.monthly-repeat-box .check{font-weight:600}
.monthly-repeat-box small{display:block;margin-top:4px}
.monthly-sunday-alert{font-weight:700}
.ev .t em.sun,.chipev em.sun{color:var(--danger);font-weight:800}
@media print{
  .ev .t em.sun,.chipev em.sun{color:#000!important;text-decoration:underline}
}

/* 24-hour date/time picker — static stylesheet.
   Kept in app.css because the application CSP may block dynamically injected <style> tags. */
.dt24-source{display:none!important}
.dt24-trigger{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;width:100%!important;min-height:46px!important;margin:0!important;padding:10px 13px!important;border:1px solid var(--line,#cbd5d8)!important;border-radius:12px!important;background:var(--input,#fff)!important;color:var(--ink,#162126)!important;font:inherit!important;line-height:1.25!important;text-align:left!important;cursor:pointer!important;box-sizing:border-box!important}
.dt24-trigger:hover{border-color:var(--brand,#26677a)!important}
.dt24-trigger:focus-visible{outline:0!important;border-color:var(--brand,#26677a)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand,#26677a) 20%,transparent)!important}
.dt24-trigger.dt24-empty .dt24-trigger-value{color:var(--muted,#68767c)!important}
.dt24-trigger-value{display:block!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.dt24-trigger-icon{display:inline-flex!important;flex:0 0 20px!important;width:20px!important;height:20px!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.dt24-trigger-icon svg{display:block!important;width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;max-width:19px!important;max-height:19px!important}
.dt24-modal[hidden]{display:none!important}
.dt24-modal{position:fixed!important;inset:0!important;z-index:2147483000!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:16px!important;background:rgba(10,22,27,.42)!important;box-sizing:border-box!important}
.dt24-panel{width:min(430px,100%)!important;max-height:calc(100vh - 32px)!important;overflow:auto!important;padding:18px!important;border:1px solid var(--line,#d8e0e2)!important;border-radius:16px!important;background:var(--card,#fff)!important;color:var(--ink,#162126)!important;box-shadow:0 22px 60px rgba(0,0,0,.25)!important;box-sizing:border-box!important}
.dt24-panel h3{margin:0 0 16px!important;font-size:18px!important}
.dt24-form-row{margin-top:12px!important}
.dt24-form-row>label{display:block!important;margin:0 0 6px!important;font-weight:700!important}
.dt24-form-row input[type=date],.dt24-form-row select{display:block!important;width:100%!important;height:44px!important;min-height:44px!important;margin:0!important;padding:8px 10px!important;font:inherit!important;line-height:1.2!important;box-sizing:border-box!important}
.dt24-form-row input[type=date]::-webkit-calendar-picker-indicator{width:18px!important;height:18px!important;padding:2px!important;margin:0!important;cursor:pointer!important}
.dt24-time-grid{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;align-items:center!important;gap:8px!important}
.dt24-colon{font-size:22px!important;font-weight:800!important;text-align:center!important}
.dt24-help{margin:7px 0 0!important;color:var(--muted,#68767c)!important;font-size:13px!important}
.dt24-error{min-height:20px!important;margin:10px 0 0!important;color:var(--danger,#b42318)!important;font-weight:700!important;font-size:13px!important}
.dt24-actions{display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;gap:8px!important;margin-top:16px!important}
.dt24-clear{margin-right:auto!important}
@media(max-width:600px){
  .dt24-modal{align-items:flex-end!important;padding:0!important}
  .dt24-panel{width:100%!important;max-height:88vh!important;border-radius:18px 18px 0 0!important;padding:18px 16px 20px!important}
  .dt24-trigger{min-height:48px!important}
  .dt24-form-row input[type=date],.dt24-form-row select{height:48px!important;min-height:48px!important;font-size:16px!important}
}

/* Αυτοματισμοί: κάρτες προτάσεων, Η μέρα μου, Πίνακας Διεύθυνσης */
.auto-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 14px;padding:12px 14px;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius);background:var(--card)}
.auto-card strong{display:block}.auto-card span{color:var(--muted);font-size:14px}.auto-card ol{margin:6px 0 0;padding-left:20px;font-size:14px}
.auto-card form{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.auto-card.overdue{border-left-color:var(--warn)}.auto-card.next{border-left-color:var(--ok)}
.md-list{display:grid;gap:10px}.md-card{padding:12px 14px;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius);background:var(--card)}
.md-card.appt-completed{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok) 6%,var(--card))}.md-card.appt-cancelled{border-left-color:var(--danger);opacity:.8}
.md-time{font-weight:700;color:var(--ink-2)}.md-cust{display:block;margin:2px 0;font-size:17px;font-weight:600;color:var(--ink);text-decoration:none}.md-addr{font-size:14px}.md-meta{font-size:13px;color:var(--muted);margin-top:2px}
.md-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.md-overdue{border-left:4px solid var(--warn)}
.dir-stats .stat.bad .n{color:var(--danger)}
.dir-att{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.dir-att-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:10px;background:var(--surface2,var(--card));color:var(--ink);text-decoration:none}
.dir-att-item.danger{border-left-color:var(--danger)}.dir-att-item b{font-size:20px;min-width:30px;text-align:center}
.dir-crews{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.dir-crew h3{margin:0 0 6px;font-size:15px}.dir-crew h3 small{color:var(--muted)}
.dir-row{display:grid;grid-template-columns:48px 1fr auto;gap:8px;align-items:center;padding:6px 8px;margin-bottom:4px;border-radius:8px;background:var(--surface2,var(--card));color:var(--ink);text-decoration:none;font-size:13.5px}
.dir-row .c{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dir-row .s{font-size:12px;font-weight:600;color:var(--muted)}
.dir-row.appt-completed{background:color-mix(in srgb,var(--ok) 12%,var(--card))}.dir-row.appt-completed .s{color:var(--ok)}
.dir-row.late{background:color-mix(in srgb,var(--danger) 10%,var(--card))}.dir-row.late .s{color:var(--danger)}.dir-row.appt-cancelled .c{text-decoration:line-through;opacity:.7}
/* Μητρώο παγίδων */
.st-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}.st-add .field{flex:0 1 110px}.st-add .field.grow{flex:1 1 230px}
.st-table input{width:100%;min-width:140px}.st-table td svg{vertical-align:middle}
@media print{body.page-custom-background::before,body.page-custom-background::after{display:none!important}}
/* Στόλος οχημάτων */
.veh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:14px}
.veh-card{display:flex;flex-direction:column;gap:3px;margin:0}.veh-card.dim{opacity:.6}
.veh-photo{height:150px;margin:-4px -4px 8px;border-radius:10px;overflow:hidden;background:var(--surface2,#eef2f1);display:grid;place-items:center;color:var(--muted);font-size:13px}
.veh-photo img{width:100%;height:100%;object-fit:cover}
.veh-plate{align-self:flex-start;padding:3px 10px;border:2px solid #1b1b1b;border-radius:6px;background:#fff;color:#111;font-weight:800;letter-spacing:.06em}
.veh-tag{margin-left:6px;padding:1px 7px;border:1px solid var(--line);border-radius:5px;font-size:11.5px;font-weight:700;color:var(--ink-2)}
/* Δρομολόγια ημέρας */
.dir-routes{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.dir-route h3{margin:0 0 8px;font-size:15px}.dir-route h3 small{color:var(--brand);font-weight:700}
.rt-list{margin:0;padding:0 0 0 18px;display:grid;gap:7px;font-size:13.5px}
.rt-list li{padding-left:4px}.rt-base{color:var(--muted);font-weight:600}.rt-done{opacity:.75}
.rt-addr{display:block;color:var(--ink-2);font-size:12.5px}.rt-leg{display:block;font-size:12.5px;font-weight:600;color:var(--brand)}
/* Φόντο με εικόνα: ημιδιάφανη επιφάνεια πίσω από το περιεχόμενο, ώστε κείμενα και κάρτες να διαβάζονται σε κάθε εικόνα */
body.has-nav.page-custom-background main.container{background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;box-shadow:0 12px 40px rgba(0,0,0,.22);margin-top:16px;margin-bottom:16px;padding-top:20px;padding-bottom:12px}
body.has-nav.page-custom-background .app-footer{color:var(--muted)}
@media screen and (max-width:980px){body.has-nav.page-custom-background main.container{border-radius:0;margin-top:0;margin-bottom:0;box-shadow:none}}
@media print{body.page-custom-background main.container{background:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}
.release-history{margin-top:14px}.release-history summary{cursor:pointer;font-weight:600;color:var(--brand)}.release-history h3{margin:12px 0 4px;font-size:14px}
.veh-docs{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}
.auto-card.overdue strong+span{color:var(--danger)}
.veh-card.oos .veh-photo{filter:grayscale(1);opacity:.7}
/* Επιλογές με ένα πάτημα */
.qp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.qp-chip{padding:6px 11px;border:1px solid var(--btn-line,var(--line));border-radius:999px;background:var(--card);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;line-height:1.2}
.qp-chip:hover{border-color:var(--brand)}
.qp-chip.on{background:color-mix(in srgb,var(--brand) 14%,var(--card));border-color:var(--brand);color:var(--brand);font-weight:600}
.qp-chip.on::before{content:"✓ "}
@media screen and (max-width:720px){.qp-chip{padding:8px 12px;font-size:14px}}
/* Απλοποίηση: μενού «Περισσότερα», καρτέλες φορμών και καρτέλας πελάτη */
.tab-hidden{display:none!important}
.nav-more{margin-top:4px}
.nav-more>summary{display:flex;align-items:center;gap:10px;padding:9px 12px;margin:0 6px;border-radius:9px;cursor:pointer;color:var(--side-muted,#9fb3b6);font-weight:600;list-style:none}
.nav-more>summary::-webkit-details-marker{display:none}
.nav-more>summary::after{content:"▾";margin-left:auto;font-size:12px;transition:transform .15s}
.nav-more[open]>summary::after{transform:rotate(180deg)}
.nav-more>summary:hover{background:var(--side-hover,rgba(255,255,255,.06))}
.nav-more>summary svg{width:19px;height:19px}
.nav-more[open]{padding-bottom:4px}
.form-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 16px;border-bottom:2px solid var(--line);grid-column:1/-1}
.form-tabs button{margin-bottom:-2px;padding:9px 16px;border:1px solid transparent;border-bottom:0;border-radius:9px 9px 0 0;background:none;color:var(--muted);font:inherit;font-size:14.5px;font-weight:600;cursor:pointer}
.form-tabs button:hover{color:var(--ink)}
.form-tabs button.on{background:var(--card);color:var(--brand);border-color:var(--line);box-shadow:0 -2px 0 var(--brand) inset;border-bottom:2px solid var(--card)}
.section-tabs.as-tabs a.on{background:color-mix(in srgb,var(--brand) 12%,var(--card));color:var(--brand);border-color:var(--brand)}
@media screen and (max-width:720px){.form-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.form-tabs button{white-space:nowrap;padding:10px 13px}}
/* Σπάνια πεδία */
form:not(.show-rare) .rare-field{display:none!important}
.rare-toggle{margin:4px 0 12px}
/* Συμπτυγμένο μενού σε ομάδες */
.nav-group>summary{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:1px 6px;border-radius:9px;cursor:pointer;list-style:none;color:var(--side-ink,#e8f1f1);font-weight:600}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::after{content:"▾";margin-left:auto;font-size:11px;opacity:.7;transition:transform .15s}
.nav-group[open]>summary::after{transform:rotate(180deg)}
.nav-group>summary:hover{background:var(--side-hover,rgba(255,255,255,.07))}
.nav-group>summary svg{width:19px;height:19px;flex:none}
.nav-sub{padding:2px 0 4px}
.nav-sub a{padding-top:6px!important;padding-bottom:6px!important;padding-left:40px!important;font-size:13.5px}
.nav-sub a svg{display:none}
.side-nav>a{padding-top:8px;padding-bottom:8px}
/* Αρχική: λογότυπα και μεγάλα κουμπιά */
.quick.quick-big{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.quick.quick-big a{display:flex;flex-direction:column;justify-content:center;min-height:132px;padding:22px 24px;font-size:20px;font-weight:700}
.quick.quick-big a strong{font-size:20px}
.quick.quick-big a span:not(.qk-ico){margin-top:6px;font-size:15px;font-weight:400}
.qk-ico{display:inline-grid;place-items:center;width:46px;height:46px;margin-bottom:10px;border-radius:12px;background:color-mix(in srgb,var(--brand) 12%,var(--card));color:var(--brand)}
.qk-ico svg{width:26px;height:26px}
@media screen and (max-width:720px){.quick.quick-big{grid-template-columns:1fr 1fr}.quick.quick-big a{min-height:110px;padding:16px;font-size:17px}}
a.app-version{color:inherit;text-decoration:none}a.app-version:hover{color:var(--brand);text-decoration:underline}
/* Κουμπιά κλεισίματος */
main.container{position:relative}
.page-close{position:absolute;top:12px;right:14px;z-index:5;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink-2);font-size:26px;line-height:1;text-decoration:none;box-shadow:var(--shadow-sm,0 1px 3px rgba(0,0,0,.08))}
.page-close:hover{color:var(--danger);border-color:var(--danger)}
.apx-close{position:absolute;top:10px;right:10px;z-index:3;width:36px;height:36px;border:0;border-radius:50%;background:var(--surface2,#eef2f1);color:var(--ink-2);font-size:24px;line-height:1;cursor:pointer}
.apx-close:hover{color:var(--danger)}
@media screen and (max-width:720px){.page-close{top:8px;right:8px;width:36px;height:36px}}
