/* ─────────────────────────────────────────────────────────────────────────
   Zenkari Drives V2 — Design System
   ───────────────────────────────────────────────────────────────────────── */

/* Scrollbar */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--c-surface-3);border-radius:3px}
::selection{background:var(--c-accent-bg);color:var(--c-text)}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select{font-family:inherit}
:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}

/* ── Auth Screen ─────────────────────────────────────────────────────────── */
.auth-screen{
  height:100vh;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  position:relative;
  overflow:hidden;
}
.auth-bg{
  position:absolute;inset:0;
  background:radial-gradient(ellipse 90% 70% at 50% 110%, rgba(124,58,237,.22) 0%, transparent 65%);
  pointer-events:none;
}

.auth-card{
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--r-xl);
  padding:40px;
  width:100%;max-width:400px;
  display:flex;flex-direction:column;gap:24px;
  position:relative;
  box-shadow:0 0 60px rgba(0,0,0,.5), 0 0 80px rgba(124,58,237,.1);
}

.auth-header{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.auth-header h1{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}
.auth-header p{font-size:.8rem;color:var(--c-text-2)}

.logo-mark{
  width:44px;height:44px;
  background:linear-gradient(135deg, #7c3aed 0%, #9155ff 100%);
  border-radius:10px;
  display:grid;place-items:center;
  font-size:1.3rem;font-weight:800;color:#fff;
  box-shadow:0 4px 16px rgba(124,58,237,.5);
}
.logo-mark.sm{width:30px;height:30px;font-size:.9rem;border-radius:7px}

.auth-tabs{
  display:flex;
  background:var(--c-surface-2);
  border-radius:var(--r-md);
  padding:3px;
  gap:3px;
}
.auth-tab{
  flex:1;padding:8px;
  border-radius:7px;
  font-size:.85rem;font-weight:500;
  color:var(--c-text-2);
  transition:background .15s, color .15s;
}
.auth-tab.active{background:var(--c-surface-3);color:var(--c-text);box-shadow:0 1px 4px rgba(0,0,0,.3)}

.auth-form{display:flex;flex-direction:column;gap:14px}

.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:.78rem;font-weight:600;color:var(--c-text-2);letter-spacing:.02em}
.field input,.field select{
  height:42px;
  background:var(--c-bg);
  border:1.5px solid var(--c-border);
  border-radius:var(--r);
  padding:0 13px;
  font-size:.875rem;
  color:var(--c-text);
  transition:border-color .15s, background .15s;
  width:100%;
}
.field input::placeholder{color:var(--c-text-3)}
.field input:focus{border-color:var(--c-accent);background:var(--c-surface-2);outline:none}

.btn-cta{
  height:44px;
  background:var(--c-accent);
  color:#fff;border-radius:var(--r);
  font-size:.9rem;font-weight:600;
  width:100%;
  transition:background .15s, box-shadow .15s;
}
.btn-cta:hover{background:var(--c-accent-l);box-shadow:0 0 20px var(--c-accent-glow)}
.btn-cta:active{opacity:.9;transform:translateY(1px)}
.btn-cta:disabled{opacity:.5;cursor:not-allowed}

.auth-error{
  background:var(--c-red-bg);
  border:1px solid var(--c-red);
  border-radius:var(--r);
  padding:9px 12px;
  font-size:.82rem;
  color:var(--c-red);
}

/* ── Header ──────────────────────────────────────────────────────────────── */
.header{
  height:var(--header-h);
  background:var(--c-surface);
  border-bottom:1px solid var(--c-border);
  display:flex;align-items:center;gap:14px;
  padding:0 16px;
  flex:none;
  z-index:50;
}

.header-logo{
  display:flex;align-items:center;gap:9px;
  min-width:calc(var(--sidebar-w) - 24px);
  flex:none;
}
.logo-name{font-size:.9rem;color:var(--c-text-2);white-space:nowrap}
.logo-name strong{color:var(--c-text);font-weight:700}

.header-search-wrap{flex:1;display:flex;justify-content:center;padding:0 8px}

.header-search{
  position:relative;
  width:100%;max-width:480px;
}
.header-search input{
  width:100%;height:36px;
  background:var(--c-surface-2);
  border:1.5px solid var(--c-border);
  border-radius:20px;
  padding:0 16px 0 38px;
  font-size:.875rem;color:var(--c-text);
  transition:border-color .15s, background .15s;
}
.header-search input::placeholder{color:var(--c-text-3)}
.header-search input:focus{border-color:var(--c-accent);background:var(--c-surface);outline:none}

.search-ico{
  position:absolute;left:12px;top:50%;transform:translateY(-50%);
  width:15px;height:15px;color:var(--c-text-3);pointer-events:none;
}

.search-dropdown{
  position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--r-lg);
  box-shadow:0 8px 24px rgba(0,0,0,.5);
  z-index:200;max-height:300px;overflow-y:auto;
  display:none;
}
.search-dropdown.open{display:block}

.search-result{
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;cursor:pointer;
  transition:background .12s;
}
.search-result:hover{background:var(--c-surface-2)}
.search-result .sn{flex:1;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-result .sf{font-size:.75rem;color:var(--c-text-2)}

.header-end{
  display:flex;align-items:center;gap:6px;
  flex:none;margin-left:auto;
}

.hdr-btn{
  width:32px;height:32px;
  border-radius:var(--r);
  display:grid;place-items:center;
  color:var(--c-text-2);
  transition:background .12s, color .12s;
}
.hdr-btn svg{width:16px;height:16px}
.hdr-btn:hover{background:var(--c-surface-2);color:var(--c-text)}

.avatar-wrap{position:relative}
.avatar{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,#7c3aed,#9155ff);
  display:grid;place-items:center;
  font-size:.8rem;font-weight:700;color:#fff;
  cursor:pointer;user-select:none;
}

.user-menu{
  position:absolute;top:calc(100% + 8px);right:0;
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--r-lg);
  box-shadow:0 8px 24px rgba(0,0,0,.5);
  min-width:210px;
  z-index:300;
  overflow:hidden;
}
.user-menu-info{padding:14px 16px 12px}
.user-menu-name{font-weight:600;font-size:.9rem}
.user-menu-email{font-size:.78rem;color:var(--c-text-2);margin-top:2px}
.user-menu-divider{height:1px;background:var(--c-border)}
.user-menu-item{
  display:flex;align-items:center;gap:10px;
  padding:11px 16px;width:100%;
  font-size:.875rem;color:var(--c-text);
  transition:background .12s;
  text-align:left;
}
.user-menu-item:hover{background:var(--c-surface-2)}
.user-menu-item.danger{color:var(--c-red)}

/* ── Sidebar ──────────────────────────────────────────────────────────────── */
.sidebar{
  background:var(--c-surface);
  border-right:1px solid var(--c-border);
  padding:12px 0 0;
}

.sidebar-top{padding:0 12px 12px}

.btn-new{
  display:flex;align-items:center;gap:8px;
  padding:9px 16px;
  background:var(--c-accent);color:#fff;
  border-radius:var(--r-lg);
  font-size:.85rem;font-weight:600;
  width:100%;
  transition:background .15s, box-shadow .15s;
}
.btn-new:hover{background:var(--c-accent-l);box-shadow:0 0 16px var(--c-accent-glow)}
.btn-new svg{width:14px;height:14px;flex:none}

.sidebar-nav{display:flex;flex-direction:column;gap:1px;padding:0 8px}

.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border-radius:var(--r);
  font-size:.875rem;font-weight:500;
  color:var(--c-text-2);
  cursor:pointer;
  transition:background .12s, color .12s;
}
.nav-item:hover{background:var(--c-surface-2);color:var(--c-text)}
.nav-item.active{background:var(--c-accent-bg);color:var(--c-accent);font-weight:600}
.nav-ico{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex:none}
.nav-ico svg{width:18px;height:18px;display:block}
.bulk-btn svg{width:14px;height:14px;vertical-align:-2px;margin-right:3px}

.sidebar-storage{
  margin-top:auto;
  padding:14px 14px 14px;
  border-top:1px solid var(--c-border);
}
.storage-info{margin-bottom:7px}
.storage-text{font-size:.75rem;color:var(--c-text-2)}
.storage-track{
  height:4px;background:var(--c-surface-3);
  border-radius:2px;overflow:hidden;
}
.storage-fill{
  height:100%;background:var(--c-accent);border-radius:2px;
  transition:width .4s ease;
}
.storage-fill.warn{background:var(--c-yellow)}
.storage-fill.danger{background:var(--c-red)}

/* ── Toolbar ──────────────────────────────────────────────────────────────── */
.toolbar{
  display:flex;align-items:center;gap:8px;
  padding:10px 20px;
  border-bottom:1px solid var(--c-border);
  flex:none;min-height:50px;
}

.breadcrumb{
  display:flex;align-items:center;gap:4px;
  flex:1;overflow:hidden;font-size:.875rem;
}
.bc-sep{color:var(--c-text-3);font-size:.8rem}
.bc-item{
  color:var(--c-text-2);cursor:pointer;
  padding:3px 5px;border-radius:var(--r);
  white-space:nowrap;
  transition:background .12s, color .12s;
}
.bc-item:hover{background:var(--c-surface-2);color:var(--c-text)}
.bc-item.active{color:var(--c-text);font-weight:600;cursor:default}
.bc-item.active:hover{background:none}

.toolbar-end{display:flex;align-items:center;gap:6px;flex:none}

.view-switch{
  display:flex;background:var(--c-surface-2);
  border-radius:var(--r);padding:2px;gap:2px;
}
.view-btn{
  width:28px;height:28px;border-radius:6px;
  display:grid;place-items:center;
  color:var(--c-text-3);
  transition:background .12s, color .12s;
}
.view-btn svg{width:14px;height:14px}
.view-btn.active{background:var(--c-surface-3);color:var(--c-accent);box-shadow:0 1px 3px rgba(0,0,0,.3)}

/* ── Bulk Bar ────────────────────────────────────────────────────────────── */
.bulk-bar{
  align-items:center;gap:6px;
  padding:8px 20px;
  background:var(--c-accent-bg);
  border-bottom:1px solid var(--c-accent);
  flex:none;
}
.bulk-label{font-size:.82rem;font-weight:600;color:var(--c-accent);white-space:nowrap}
.bulk-label span{font-weight:800}
.bulk-btn{
  padding:6px 11px;
  border-radius:var(--r);
  font-size:.78rem;font-weight:500;
  color:var(--c-text-2);
  transition:background .12s, color .12s;
}
.bulk-btn:hover{background:var(--c-surface-2);color:var(--c-text)}
.bulk-btn.red{color:var(--c-red)}
.bulk-btn.red:hover{background:var(--c-red-bg)}

/* ── File Area ───────────────────────────────────────────────────────────── */
.file-area{flex:1;overflow-y:auto;padding:18px 20px}

/* Empty state */
.empty{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:12px;padding:64px 24px;text-align:center;
}
.empty-ico{font-size:3.5rem;opacity:.3}
.empty-t{font-size:1rem;font-weight:600;color:var(--c-text)}
.empty-s{font-size:.85rem;color:var(--c-text-2);max-width:260px;line-height:1.5}

/* ── Grid View ───────────────────────────────────────────────────────────── */
.file-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(152px,1fr));
  gap:10px;
}

.card{
  background:var(--c-surface);
  border:1.5px solid var(--c-border);
  border-radius:var(--r-md);
  overflow:hidden;
  cursor:pointer;
  transition:border-color .15s, box-shadow .15s, background .15s;
  position:relative;
  user-select:none;
}
.card:hover{
  border-color:var(--c-accent);
  box-shadow:0 0 0 1px var(--c-accent), 0 4px 16px rgba(0,0,0,.3);
}
.card.selected{
  background:var(--c-accent-bg);
  border-color:var(--c-accent);
  box-shadow:0 0 0 2px var(--c-accent);
}

/* Thumbnail zone */
.card-thumb{
  width:100%;aspect-ratio:1;
  background:var(--c-surface-2);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;font-size:2.8rem;
  position:relative;
}
.card-thumb img{width:100%;height:100%;object-fit:cover}

/* Checkbox + star */
.card-check{
  position:absolute;top:8px;left:8px;
  width:18px;height:18px;
  background:var(--c-surface);
  border:2px solid var(--c-border);
  border-radius:5px;
  display:grid;place-items:center;
  font-size:11px;color:#fff;
  opacity:0;
  transition:opacity .12s, background .12s, border-color .12s;
}
.card:hover .card-check{opacity:1}
.card.selected .card-check{opacity:1;background:var(--c-accent);border-color:var(--c-accent)}

.card-star-btn{
  position:absolute;top:6px;right:6px;
  width:24px;height:24px;
  background:var(--c-surface);
  border-radius:6px;
  display:grid;place-items:center;
  font-size:13px;
  opacity:0;
  transition:opacity .12s, background .12s;
}
.card:hover .card-star-btn{opacity:1}
.card.starred .card-star-btn{opacity:1}
.card-star-btn:hover{background:var(--c-surface-3)}

/* Card info */
.card-info{padding:9px 10px 8px}
.card-name{
  font-size:.8rem;font-weight:500;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--c-text);margin-bottom:4px;
}
.card-footer{
  display:flex;align-items:center;justify-content:space-between;
}
.card-meta{font-size:.7rem;color:var(--c-text-3)}
.card-actions{
  display:flex;gap:2px;
  opacity:0;transition:opacity .12s;
}
.card:hover .card-actions{opacity:1}
.card-act{
  width:22px;height:22px;border-radius:5px;
  display:grid;place-items:center;
  font-size:12px;color:var(--c-text-2);
  transition:background .12s, color .12s;
}
.card-act:hover{background:var(--c-surface-3);color:var(--c-text)}

/* ── List View ───────────────────────────────────────────────────────────── */
.file-list{display:flex;flex-direction:column}

.list-hd{
  display:grid;
  grid-template-columns:20px 22px 1fr 130px 90px 70px;
  gap:8px;padding:5px 10px;
  font-size:.7rem;font-weight:600;
  color:var(--c-text-3);
  letter-spacing:.05em;text-transform:uppercase;
  border-bottom:1px solid var(--c-border);
  margin-bottom:2px;
}

.list-row{
  display:grid;
  grid-template-columns:20px 22px 1fr 130px 90px 70px;
  gap:8px;align-items:center;
  padding:7px 10px;border-radius:var(--r);
  cursor:pointer;user-select:none;
  transition:background .12s;
}
.list-row:hover{background:var(--c-surface-2)}
.list-row.selected{background:var(--c-accent-bg)}

.row-check{
  width:16px;height:16px;
  border:1.5px solid var(--c-border);
  border-radius:4px;
  display:grid;place-items:center;
  font-size:10px;color:#fff;
  transition:border-color .12s, background .12s;
}
.list-row:hover .row-check{border-color:var(--c-accent)}
.list-row.selected .row-check{background:var(--c-accent);border-color:var(--c-accent)}
.row-ico{font-size:16px;text-align:center}
.row-name{font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-date{font-size:.78rem;color:var(--c-text-2)}
.row-size{font-size:.78rem;color:var(--c-text-2)}
.row-acts{display:flex;gap:2px;justify-content:flex-end;opacity:0;transition:opacity .12s}
.list-row:hover .row-acts{opacity:1}

/* ── Preview Panel ───────────────────────────────────────────────────────── */
.preview-panel{
  background:var(--c-surface);
  border-left:1px solid transparent;
  transition:border-color .2s;
  display:flex;flex-direction:column;
}
.preview-panel.open{border-left-color:var(--c-border)}

.preview-hd{
  display:flex;align-items:center;gap:8px;
  padding:13px 14px;
  border-bottom:1px solid var(--c-border);
  flex:none;
  min-width:var(--preview-w);
}
.preview-name{flex:1;font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--c-text)}

.preview-body{flex:1;overflow-y:auto;min-width:var(--preview-w)}

.preview-media{
  background:var(--c-bg);
  min-height:160px;max-height:240px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.preview-media img{max-width:100%;max-height:240px;object-fit:contain}
.preview-media-ico{font-size:4.5rem;opacity:.2}

.preview-text{
  padding:12px;font-size:.77rem;
  font-family:'SF Mono',Consolas,monospace;
  color:var(--c-text-2);
  white-space:pre-wrap;word-break:break-all;
  max-height:180px;overflow:auto;
}

.preview-meta{border-top:1px solid var(--c-border)}
.meta-row{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:9px 14px;
  border-bottom:1px solid var(--c-border);
  font-size:.78rem;
}
.meta-row:last-child{border:none}
.meta-k{color:var(--c-text-2)}
.meta-v{font-weight:500;max-width:58%;text-align:right;overflow:hidden;text-overflow:ellipsis}

.preview-acts{
  padding:12px;border-top:1px solid var(--c-border);
  display:flex;flex-direction:column;gap:4px;
}
.prev-btn{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:var(--r);
  font-size:.85rem;font-weight:500;color:var(--c-text);
  transition:background .12s;cursor:pointer;
}
.prev-btn:hover{background:var(--c-surface-2)}
.prev-btn.primary{background:var(--c-accent);color:#fff}
.prev-btn.primary:hover{background:var(--c-accent-l)}
.prev-btn.red{color:var(--c-red)}
.prev-btn.red:hover{background:var(--c-red-bg)}

/* ── Context Menu ────────────────────────────────────────────────────────── */
.ctx-menu{
  position:fixed;
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--r-md);
  box-shadow:0 8px 28px rgba(0,0,0,.5);
  min-width:185px;padding:5px;z-index:500;
  animation:fadeIn .1s ease;
}
.ctx-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;border-radius:var(--r);
  font-size:.85rem;color:var(--c-text);
  cursor:pointer;
  transition:background .1s;
}
.ctx-item:hover{background:var(--c-surface-2)}
.ctx-item.red{color:var(--c-red)}
.ctx-sep{height:1px;background:var(--c-border);margin:4px 0}

/* ── Modals ──────────────────────────────────────────────────────────────── */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(4px);
  z-index:400;
  place-items:center;
  padding:24px;
}
.modal{
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--r-xl);
  box-shadow:0 8px 32px rgba(0,0,0,.7);
  width:100%;max-width:440px;
  animation:modalIn .18s ease;
}
.modal-hd{
  display:flex;align-items:center;gap:10px;
  padding:18px 20px 14px;
  border-bottom:1px solid var(--c-border);
}
.modal-title{flex:1;font-size:.95rem;font-weight:700}
.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}
.modal-foot{
  display:flex;gap:8px;justify-content:flex-end;
  padding:14px 20px;border-top:1px solid var(--c-border);
}
.modal-p{font-size:.875rem;color:var(--c-text-2);line-height:1.55}
.m-btn{
  padding:8px 16px;border-radius:var(--r);
  font-size:.85rem;font-weight:600;
  transition:background .12s, opacity .12s;
}
.m-btn.outline{border:1.5px solid var(--c-border);color:var(--c-text)}
.m-btn.outline:hover{background:var(--c-surface-2)}
.m-btn.primary{background:var(--c-accent);color:#fff}
.m-btn.primary:hover{background:var(--c-accent-l)}
.m-btn.danger{background:var(--c-red);color:#fff}
.m-btn.danger:hover{opacity:.88}

.share-url-row{display:flex;gap:6px}
.share-url-row input{
  flex:1;height:36px;
  background:var(--c-surface-2);border:1.5px solid var(--c-border);
  border-radius:var(--r);padding:0 10px;
  font-size:.78rem;color:var(--c-text);
}
.share-url-row button{
  padding:0 12px;height:36px;
  background:var(--c-surface-2);border:1.5px solid var(--c-border);
  border-radius:var(--r);font-size:.78rem;color:var(--c-text-2);
  white-space:nowrap;
}
.share-url-row button:hover{background:var(--c-surface-3)}

.qr-img{display:block;margin:0 auto;border-radius:var(--r-md);max-width:172px;width:100%}
.secret-key{
  font-family:monospace;font-size:.8rem;
  background:var(--c-surface-2);padding:9px 12px;
  border-radius:var(--r);text-align:center;
  cursor:pointer;color:var(--c-accent);word-break:break-all;
  border:1.5px solid var(--c-border);
  transition:background .12s;
}
.secret-key:hover{background:var(--c-surface-3)}

/* ── Drop Overlay ────────────────────────────────────────────────────────── */
.drop-overlay{
  position:fixed;inset:4px;
  background:rgba(11,11,18,.92);
  border:2.5px dashed var(--c-accent);
  border-radius:var(--r-xl);
  z-index:600;
  flex-direction:column;align-items:center;justify-content:center;gap:12px;
  animation:glowPulse 1.2s ease-in-out infinite alternate;
}
.drop-icon{font-size:4rem}
.drop-label{font-size:1.1rem;font-weight:700;color:var(--c-accent)}
.drop-sub{font-size:.82rem;color:var(--c-text-2)}

/* ── Toasts ──────────────────────────────────────────────────────────────── */
.toast-container{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  z-index:700;display:flex;flex-direction:column-reverse;gap:8px;
  align-items:center;pointer-events:none;
}
.toast{
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--r-lg);
  padding:10px 18px;font-size:.85rem;font-weight:500;
  box-shadow:0 4px 16px rgba(0,0,0,.5);
  display:flex;align-items:center;gap:8px;
  animation:toastIn .18s ease;pointer-events:all;white-space:nowrap;
}
.toast.ok{border-color:var(--c-green);color:var(--c-green)}
.toast.err{border-color:var(--c-red);color:var(--c-red)}
.toast.info{border-color:var(--c-accent);color:var(--c-accent)}
.toast.warn{border-color:var(--c-yellow);color:var(--c-yellow)}
.toast.out{animation:toastOut .18s ease forwards}

/* ── Upload progress ─────────────────────────────────────────────────────── */
.upload-toasts{
  position:fixed;bottom:24px;right:16px;
  z-index:650;display:flex;flex-direction:column;gap:8px;
  max-width:270px;pointer-events:none;
}
.up-toast{
  background:var(--c-surface);border:1px solid var(--c-border);
  border-radius:var(--r-lg);padding:12px 14px;
  box-shadow:0 4px 16px rgba(0,0,0,.5);
  animation:toastIn .18s ease;pointer-events:all;
}
.up-name{font-size:.78rem;font-weight:500;margin-bottom:8px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up-bar{height:3px;background:var(--c-surface-3);border-radius:2px;overflow:hidden}
.up-fill{height:100%;background:var(--c-accent);border-radius:2px;transition:width .1s}

/* ── Shared links view ───────────────────────────────────────────────────── */
.shared-list{display:flex;flex-direction:column;gap:8px}
.shared-row{
  display:flex;align-items:center;gap:12px;
  background:var(--c-surface);border:1.5px solid var(--c-border);
  border-radius:var(--r-md);padding:12px 14px;
  transition:border-color .12s;
}
.shared-row:hover{border-color:var(--c-accent)}
.shared-info{flex:1;min-width:0}
.shared-fn{font-weight:500;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shared-meta{font-size:.75rem;color:var(--c-text-2);margin-top:2px}
.shared-link{font-size:.73rem;color:var(--c-accent);font-family:monospace;cursor:pointer;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}
.shared-link:hover{text-decoration:underline}

/* ── Keyframes ───────────────────────────────────────────────────────────── */
@keyframes fadeIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@keyframes modalIn{from{opacity:0;transform:scale(.96) translateY(-10px)}to{opacity:1;transform:none}}
@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(8px)}}
@keyframes glowPulse{from{box-shadow:inset 0 0 30px var(--c-accent-bg)}to{box-shadow:inset 0 0 70px var(--c-accent-bg)}}

/* logo-mark : nuage SVG */
.logo-mark{display:flex;align-items:center;justify-content:center;line-height:0}
.logo-mark svg{width:62%;height:62%}
.logo-mark.sm svg{width:68%;height:68%}

/* ═══ ZK MOBILE — filet de securite ═══ */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
img,video,canvas,svg,iframe,table,pre{max-width:100%;height:auto}

/* ═══ ZK MOBILE — Drive ═══ */
@media (max-width:768px){
  .list-hd,.list-row{
    grid-template-columns:20px 22px 1fr 60px;
    gap:6px;padding-left:8px;padding-right:8px;
  }
  .list-hd>*:nth-child(4),.list-hd>*:nth-child(5),
  .list-row>*:nth-child(4),.list-row>*:nth-child(5){display:none}
  .list-row>*:nth-child(3),.list-hd>*:nth-child(3){
    min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .user-menu{min-width:0;width:min(260px,calc(100vw - 24px));right:8px}
  .modal{max-width:calc(100vw - 24px)}
}
@media (max-width:768px){
  .header-logo{min-width:0;flex:0 1 auto}
  .logo-name{display:none}
  .header-search-wrap{padding:0 4px}
}

/* ═══ ZK MOBILE — layout Drive ═══ */
@media (max-width:768px){
  body,.app-shell{height:100dvh}

  .sidebar{
    position:fixed;left:0;right:0;bottom:0;
    width:auto;height:auto;
    flex-direction:row;align-items:center;gap:6px;
    padding:6px 8px;
    border-right:0;border-top:1px solid var(--c-border);
    background:var(--c-surface);
    overflow-x:auto;overflow-y:hidden;
    z-index:120;
  }
  .sidebar-top{padding:0;flex:none}
  .btn-new{width:auto;padding:8px 13px;white-space:nowrap}
  .sidebar-nav{flex-direction:row;gap:4px;padding:0;flex:1}
  .sidebar-nav>*{white-space:nowrap}
  .sidebar-storage{display:none}
  .main{padding-bottom:60px}

  .preview-panel{
    position:fixed;top:0;left:0;right:0;bottom:0;
    width:auto;display:none;z-index:400;
    background:var(--c-surface);transition:none;
  }
  .preview-panel.open{display:block;width:auto;overflow-y:auto}
}
