:root {
  color-scheme: light;
  --bg: #f4f5f7;
  --panel: #ffffff;
  --text: #17191c;
  --muted: #6d727a;
  --line: #dfe2e6;
  --accent: #1c66f2;
  --accent-soft: #eef4ff;
  --on-accent: #ffffff;
  --danger: #c62f2f;
  --success: #1f7a48;
  --warning: #9a6300;
  --panel-soft: #fafbfc;
  --field: #ffffff;
  --shadow: rgba(0,0,0,.08);
  --sequence-frame: #789182;
  --sequence-cached: #23845b;
  --sequence-missing: #c75252;
}
html[data-theme=dark] {
  color-scheme: dark;
  --bg: #0b1016;
  --panel: #151c24;
  --panel-soft: #1d2732;
  --field: #101720;
  --text: #f7f9fc;
  --muted: #b5c0cd;
  --line: #354454;
  --accent: #82aaff;
  --accent-soft: #263d61;
  --on-accent: #0b1424;
  --danger: #ff8585;
  --success: #67d497;
  --warning: #e5b75e;
  --shadow: rgba(0,0,0,.4);
  --sequence-frame: #53685d;
  --sequence-cached: #45b982;
  --sequence-missing: #c45b63;
}
* { box-sizing: border-box; }
[hidden] { display:none !important; }
html { background:var(--bg); }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
main[data-app-main] { opacity:1; transform:translateY(0); transition:opacity .28s ease, transform .28s ease; }
html.appnavigating main[data-app-main] { opacity:.72; transform:translateY(2px); }
a { color: inherit; }
.shell { width:min(1240px, calc(100% - 32px)); margin:32px auto; }
.wideshell { width: min(1380px, calc(100% - 32px)); margin: 36px auto; }
.authshell { width: min(480px, calc(100% - 28px)); margin: 64px auto; }
.authbrand { display: inline-block; margin-bottom: 22px; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.brand { font-size:22px; font-weight:780; letter-spacing:-0.025em; text-decoration:none; white-space:nowrap; }
.nav { display:flex; align-items:center; justify-content:flex-end; gap:14px; flex-wrap:wrap; }
.navlink, .navbutton { font-size:14px; color:var(--muted); text-decoration:none; }
.navlink.current { color:var(--text); font-weight:750; }
.navbutton { padding:0; border:0; background:transparent; font-weight:650; }
.useremail { font-size:12px; color:var(--muted); border-left:1px solid var(--line); padding-left:14px; }
.badge { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--accent); color:var(--on-accent); font-size:11px; font-weight:750; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:18px; padding:28px; box-shadow:0 12px 36px rgba(0,0,0,.05); }
.authcard { padding:30px; }
.oauthcard { padding:30px 28px; }
.oauthbrand { display:flex; align-items:center; gap:11px; margin-bottom:24px; }
.oauthbrandmark { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:var(--accent); color:var(--on-accent); font-size:15px; font-weight:850; box-shadow:0 6px 16px color-mix(in srgb, var(--accent) 24%, transparent); }
.oauthbrand small, .oauthbrand strong { display:block; }
.oauthbrand small { color:var(--muted); font-size:10px; font-weight:750; letter-spacing:.16em; line-height:1.2; }
.oauthbrand strong { font-size:16px; letter-spacing:-.02em; }
.googleoauthbutton { display:flex; width:100%; align-items:center; justify-content:center; gap:10px; margin-top:22px; text-decoration:none; }
.googlemark { display:grid; place-items:center; width:21px; height:21px; border-radius:50%; background:#fff; color:#2463d4; font-size:12px; font-weight:850; }
.oauthdomain { margin:20px 0 0; text-align:center; font-size:12px; }
.oauthwarning { margin-top:20px; padding:12px 13px; border:1px solid color-mix(in srgb, var(--warning) 35%, var(--line)); border-radius:10px; background:color-mix(in srgb, var(--warning) 9%, var(--panel)); color:var(--warning); font-size:13px; }
h1 { margin:0 0 8px; font-size:32px; letter-spacing:-0.035em; }
h2 { margin:0 0 14px; font-size:20px; }
p { color:var(--muted); line-height:1.55; }
strong { color:var(--text); }
.formgrid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.uploadcard { padding:24px 26px; }
.uploadcard > p { margin:0; }
.uploadworkspace { display:grid; grid-template-columns:minmax(0, 1.08fr) minmax(360px, .92fr); gap:24px; align-items:stretch; margin-top:18px; }
.uploadfields { min-width:0; }
.uploadfields .formgrid { grid-template-columns:1fr; gap:0; }
.uploadfields .fieldlabel { margin-top:14px; }
.uploadfields .formgrid > div:first-child .fieldlabel { margin-top:0; }
.uploadfields textarea { min-height:98px; resize:vertical; }
.uploadcard .dropzone { min-height:0; margin-top:0; padding:24px; }
.uploadcard .filelist { max-height:180px; }
.uploadcard > .actions { margin-top:14px; }
.uploadcard > .notice { margin-bottom:0; }
.fieldlabel { display:flex; justify-content:space-between; gap:12px; margin-top:22px; margin-bottom:7px; font-size:13px; font-weight:750; }
.fieldlabel span { color:var(--muted); font-weight:500; }
.wideinput, select.wideinput { width:100%; border:1px solid var(--line); border-radius:10px; padding:12px 13px; font:inherit; background:#fff; min-height:46px; }
.wideinput:focus, select.wideinput:focus { outline:2px solid rgba(28,102,242,.18); border-color:var(--accent); }
.stephead { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:22px; padding:13px 14px; border:1px solid var(--line); border-radius:11px; background:#fafbfc; }
.dropzone {
  margin-top:24px; min-height:270px; border:2px dashed #b8bec7; border-radius:18px;
  display:flex; align-items:center; justify-content:center; text-align:center; padding:30px;
  transition:.15s ease; background:#fafbfc; cursor:pointer;
}
.dropzone.active { border-color:var(--accent); background:#f2f6ff; transform:scale(1.002); }
.dropzone strong { display:block; font-size:21px; margin-bottom:6px; }
.dropzone span { color:var(--muted); }
.dropzone.locked { pointer-events:none; opacity:.68; }
.pagedropoverlay {
  position:fixed; inset:12px; z-index:140; display:grid; place-items:center; padding:28px;
  border:2px dashed var(--accent); border-radius:18px; background:rgba(245,248,255,.96);
  box-shadow:0 24px 80px var(--shadow); color:var(--text); text-align:center; pointer-events:none;
  opacity:0; visibility:hidden; transform:scale(.992); transition:opacity .2s ease-out, transform .24s ease-out, visibility 0s linear .24s;
}
.pagedropoverlay.visible { opacity:1; visibility:visible; transform:scale(1); transition-delay:0s; }
.pagedropoverlay strong { display:block; max-width:24ch; font-size:clamp(26px, 4vw, 44px); line-height:1.08; letter-spacing:-.03em; }
.pagedropoverlay span { display:block; margin-top:12px; color:var(--muted); font-size:15px; }
.pagedropoverlay.blocked { border-color:var(--danger); }
.actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.actions.center { justify-content:center; }
button, .button {
  appearance:none; border:0; border-radius:10px; padding:11px 16px; font-weight:700; font-size:14px;
  background:var(--accent); color:var(--on-accent); cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center;
  transition:transform .22s ease, box-shadow .24s ease, background-color .24s ease, color .24s ease, opacity .22s ease;
}
button:not(:disabled):active, .button:active { transform:translateY(1px) scale(.985); }
button:not(:disabled):hover, .button:hover { box-shadow:0 7px 18px rgba(28,102,242,.16); }
button.secondary, .button.secondary { background:#eef0f3; color:var(--text); }
button.danger { background:#fff0f0; color:var(--danger); border:1px solid #f3caca; }
button.compact, .button.compact { padding:7px 10px; font-size:12px; border-radius:8px; }
button:disabled { opacity:.45; cursor:not-allowed; }
button.textbutton { padding:0; border-radius:0; background:transparent; color:var(--muted); font-size:12px; font-weight:650; }
button.textbutton:hover { color:var(--danger); }
.filelist { margin-top:18px; border:1px solid var(--line); border-radius:12px; overflow:hidden; display:none; max-height:420px; overflow-y:auto; }
.filelist.visible { display:block; }
.filelisthead { padding:11px 12px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fafbfc; font-size:13px; position:sticky; top:0; z-index:1; border-bottom:1px solid var(--line); }
.filerow { padding:10px 12px; display:flex; justify-content:space-between; gap:12px; border-top:1px solid var(--line); font-size:13px; }
.filerow:first-of-type { border-top:0; }
.filepath { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.filesize, .muted { color:var(--muted); }
.small { font-size:12px; }
.fileactions { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
button.removefile { padding:0; border-radius:0; background:transparent; color:var(--muted); font-size:12px; font-weight:650; }
button.removefile:hover { color:var(--danger); }
.progresswrap { margin-top:18px; display:none; }
.progresswrap.visible { display:block; }
.progress { height:12px; background:#e9ecf0; border-radius:999px; overflow:hidden; }
.progress > div { height:100%; width:0%; background:var(--accent); transition:width .12s linear; }
.progressmeta { display:flex; justify-content:space-between; color:var(--muted); font-size:13px; margin-top:8px; gap:12px; }
.uploadfloat { position:fixed; z-index:75; right:22px; bottom:22px; width:min(390px, calc(100vw - 32px)); padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--panel); box-shadow:0 20px 60px var(--shadow); opacity:0; transform:translateY(18px) scale(.97); pointer-events:none; transition:opacity .3s ease, transform .36s cubic-bezier(.2,.8,.2,1); }
.uploadfloat.visible { opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.uploadfloat.complete { border-color:color-mix(in srgb, var(--success) 42%, var(--line)); }
.uploadfloat.failed { border-color:color-mix(in srgb, var(--danger) 45%, var(--line)); }
.uploadfloathead { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; }
.uploadfloathead strong, .uploadfloathead span { display:block; }
.uploadfloathead span { margin-top:3px; color:var(--muted); font-size:12px; }
.uploadfloatclose { padding:0; width:28px; height:28px; border-radius:50%; background:var(--panel-soft); color:var(--muted); font-size:20px; line-height:1; }
.uploadfloatprogress { height:8px; margin-top:13px; border-radius:999px; overflow:hidden; background:var(--panel-soft); }
.uploadfloatprogress span { display:block; width:0; height:100%; border-radius:inherit; background:var(--accent); transition:width .16s linear; }
.uploadfloat.complete .uploadfloatprogress span { background:var(--success); }
.uploadfloat.failed .uploadfloatprogress span { background:var(--danger); }
.uploadfloatmeta { display:flex; justify-content:space-between; gap:12px; margin-top:8px; color:var(--muted); font-size:12px; }
.uploadfloatmeta [data-upload-detail] { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.uploadfloatactions { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.undoupload { float:right; margin:-4px 0 8px 12px; }
.notice { margin-top:14px; color:var(--muted); font-size:13px; }
.successbox { padding:18px; background:#f3f8ff; border:1px solid #d5e4ff; border-radius:14px; margin-top:22px; }
.saveconfirmation { position:fixed; z-index:60; top:20px; left:50%; transform:translate(-50%, -18px); width:min(520px, calc(100vw - 32px)); padding:13px 16px; border:1px solid #b9e7ca; border-radius:12px; background:#effbf3; color:#176135; font-size:14px; font-weight:700; text-align:center; opacity:0; box-shadow:0 16px 45px rgba(20,70,40,.16); transition:opacity .18s ease, transform .18s ease; }
.saveconfirmation.visible { transform:translate(-50%, 0); opacity:1; }
form.saving { opacity:.78; }
form.saving button[aria-busy=true] { cursor:wait; }
.linkrow { display:flex; gap:10px; margin-top:12px; }
.linkrow input { flex:1; min-width:0; border:1px solid var(--line); border-radius:10px; padding:11px 12px; font-size:14px; background:#fff; }
.error { background:#fff3f3; border:1px solid #f0caca; color:#8c2222; padding:13px 15px; border-radius:10px; margin-top:16px; }
.adminwarning { margin:0 0 16px; }
.sectionhead { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.sectionhead p { margin-bottom:0; }
.listfilters { display:grid; grid-template-columns:minmax(180px,2fr) repeat(4,minmax(120px,1fr)); gap:12px; align-items:end; margin-top:22px; padding:14px; border:1px solid var(--line); border-radius:12px; background:#fafbfc; }
.listfilters label { display:block; margin-bottom:6px; color:var(--muted); font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.filteractions { display:flex; gap:8px; grid-column:1/-1; }
.listresultmeta { display:flex; justify-content:space-between; gap:12px; margin-top:18px; color:var(--muted); font-size:12px; }
.pagination { display:flex; justify-content:space-between; gap:12px; margin-top:18px; }
.sharelist { margin-top:20px; border:1px solid var(--line); border-radius:13px; overflow:hidden; }
.shareitem { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px; border-top:1px solid var(--line); }
.shareitem.unread { background:#f4f8ff; border-radius:10px; }
.shareitem:first-child { border-top:0; }
.sharemain { min-width:0; }
.sharetitle { font-weight:760; font-size:16px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sharetitle a { text-decoration:none; }
.sharetitle a:hover { color:var(--accent); }
.sharemeta, .sharepeople { color:var(--muted); font-size:12px; margin-top:5px; }
.sharemessage { max-width:720px; margin-top:8px; color:var(--text); font-size:13px; white-space:pre-wrap; overflow-wrap:anywhere; }
.transfermessage { margin:18px 0; padding:14px; border-left:4px solid var(--accent); border-radius:8px; background:#f7f9ff; white-space:pre-wrap; overflow-wrap:anywhere; }
.shareaside { text-align:right; flex:0 0 auto; }
.rowactions { display:flex; justify-content:flex-end; gap:8px; margin:8px 0 5px; }
.status { display:inline-flex; border-radius:999px; padding:5px 8px; font-size:11px; font-weight:760; white-space:nowrap; }
.status.active { background:#eaf7ef; color:var(--success); }
.status.pending { background:#eaf1ff; color:#245dc1; }
.status.expired { background:#fff6df; color:var(--warning); }
.status.deleted { background:#f3f3f3; color:var(--muted); }
.empty { text-align:center; padding:60px 20px; }
.details { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:22px 0; }
.details > div { border:1px solid var(--line); border-radius:11px; padding:13px; min-width:0; }
.details span { display:block; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.05em; margin-bottom:5px; }
.details strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.details strong.recipientlist { overflow:visible; white-space:normal; overflow-wrap:anywhere; }
.downloads { margin-top:24px; }
.shareback { display:inline-flex; margin-bottom:18px; color:var(--muted); font-size:13px; font-weight:700; text-decoration:none; }
.shareback:hover { color:var(--accent); }
.downloadrow { display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-top:1px solid var(--line); align-items:center; }
.downloadrow:first-of-type { border-top:0; }
.downloadname { min-width:0; }
.downloadname a { text-decoration:none; font-weight:650; overflow-wrap:anywhere; }
.downloadname button.filepreview { display:flex; align-items:center; gap:7px; max-width:100%; padding:0; border:0; border-radius:0; background:transparent; color:var(--text); text-align:left; font:inherit; font-weight:650; }
.downloadname button.filepreview:hover { color:var(--accent); }
.filename { min-width:0; overflow-wrap:anywhere; }
.medialabel { flex:0 0 auto; padding:2px 5px; border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line)); border-radius:5px; background:var(--accent-soft); color:var(--accent); font-size:9px; font-weight:850; letter-spacing:.04em; line-height:1.2; }
.sharetree { overflow:hidden; border:1px solid var(--line); border-radius:13px; }
.sharetree > .downloadrow { padding-left:14px; padding-right:14px; }
.foldergroup { border-top:1px solid var(--line); background:#fff; }
.foldergroup:first-child { border-top:0; }
.foldergroup summary { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:58px; padding:10px 12px; cursor:pointer; list-style:none; background:#fafbfc; }
.foldergroup summary::-webkit-details-marker { display:none; }
.foldertitle { display:flex; align-items:center; min-width:0; gap:9px; }
.foldertitle strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.folderchevron { flex:0 0 auto; color:var(--muted); font-size:22px; line-height:1; transition:transform .15s ease; }
.foldergroup[open] > summary .folderchevron { transform:rotate(90deg); }
.folderdownload { flex:0 0 auto; }
.foldercontents { display:grid; grid-template-rows:0fr; margin-left:20px; border-left:1px solid var(--line); overflow:hidden; transition:grid-template-rows .22s ease; }
.foldercontentsinner { min-height:0; overflow:hidden; opacity:0; transform:translateY(-6px); transition:opacity .18s ease, transform .22s ease; }
.foldergroup[open] > .foldercontents { grid-template-rows:1fr; }
.foldergroup[open] > .foldercontents > .foldercontentsinner { opacity:1; transform:translateY(0); }
.foldercontentsinner > .downloadrow { padding-left:14px; padding-right:14px; }
.foldercontentsinner > .foldergroup:first-of-type { border-top:1px solid var(--line); }
.previewdialog { width:min(1180px, calc(100% - 28px)); height:min(880px, calc(100vh - 28px)); max-height:none; padding:0; border:1px solid var(--line); border-radius:18px; background:var(--panel); color:var(--text); box-shadow:0 24px 80px rgba(0,0,0,.3); }
.previewdialog[open] { display:flex; flex-direction:column; }
.previewdialog::backdrop { background:rgba(13,15,18,.68); }
.previewhead { min-height:78px; display:flex; flex:0 0 auto; align-items:flex-start; justify-content:space-between; gap:20px; padding:18px 20px; border-bottom:1px solid var(--line); }
.previewhead > div { min-width:0; }
.previewhead h2, .previewhead p { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.previewstage { position:relative; min-height:0; max-height:none; display:flex; flex:1 1 auto; align-items:center; justify-content:center; overflow:auto; background:radial-gradient(circle at 50% 42%, #252932, #101216 72%); }
.previewmedia.image, .previewmedia.video { display:block; max-width:100%; max-height:100%; }
.previewmedia.audio { width:min(640px, calc(100% - 40px)); }
.previewmedia.pdf, .previewmedia.text { width:100%; height:100%; min-height:0; border:0; background:#fff; }
.previewunsupported { padding:50px 24px; color:#fff; text-align:center; }
.previewunsupported p { color:#c7cbd1; }
.previewicon { display:block; font-size:72px; margin-bottom:14px; }
.previewloading { display:flex; align-items:center; gap:12px; color:#e9edf5; font-size:14px; }
.previewspinner { width:22px; height:22px; border:3px solid rgba(255,255,255,.25); border-top-color:#fff; border-radius:50%; animation:previewspin .75s linear infinite; }
.panoramacanvas { display:block; width:100%; height:100%; min-height:0; cursor:grab; touch-action:none; }
.panoramacanvas:active { cursor:grabbing; }
.panoramahint { position:absolute; left:50%; bottom:16px; transform:translateX(-50%); padding:7px 11px; border:1px solid rgba(255,255,255,.16); border-radius:999px; background:rgba(12,14,18,.72); color:#f5f7fa; font-size:12px; pointer-events:none; backdrop-filter:blur(8px); }
.sequenceframe { object-fit:contain; width:100%; height:100%; min-height:0; }
.sequencecontrols { display:grid; gap:8px; padding:10px 20px 12px; border-top:1px solid var(--line); background:var(--panel-soft); }
.sequencecontrols[hidden] { display:none; }
.sequencetimeline { display:block; width:100%; height:34px; border:1px solid var(--line); border-radius:8px; background:#11161a; cursor:ew-resize; touch-action:none; }
.sequencetimeline:focus { outline:2px solid color-mix(in srgb, var(--accent) 35%, transparent); outline-offset:2px; }
.sequencetoolbar { display:grid; grid-template-columns:auto minmax(260px, 1fr) auto; align-items:center; gap:14px; }
.sequencescrubber { display:grid; grid-template-columns:auto minmax(160px, 1fr); align-items:center; gap:12px; min-width:0; font-size:12px; font-weight:650; }
.sequencescrubber input { width:100%; accent-color:var(--accent); }
.previewactions { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 20px; border-top:1px solid var(--line); }
.previewactions [hidden] { display:none; }
.previewnavigation, .previewmodes { display:flex; align-items:center; gap:9px; }
.previewnavigation button:disabled { opacity:.4; cursor:not-allowed; }
@keyframes previewspin { to { transform:rotate(360deg); } }
@keyframes pagefade { from { opacity:0; } }
@keyframes successarrive { 0% { opacity:0; transform:translateY(12px) scale(.985); } 65% { transform:translateY(-2px) scale(1.004); } }
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:20px 0 28px; }
.stats.four { grid-template-columns:repeat(4,1fr); }
.stat { border:1px solid var(--line); border-radius:12px; padding:14px; }
.stat b { display:block; font-size:18px; margin-bottom:4px; }
.settingsform { display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; border:1px solid var(--line); border-radius:13px; padding:16px; }
.settingsform .fieldlabel { margin-top:0; }
.recipientcombobox { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:7px; width:100%; min-height:46px; border:1px solid var(--line); border-radius:10px; padding:6px 9px; background:var(--field); }
.recipientcombobox:focus-within { outline:2px solid rgba(28,102,242,.18); border-color:var(--accent); }
.recipientcombobox input { flex:1; min-width:180px; border:0; outline:0; padding:5px 3px; background:transparent; color:var(--text); font:inherit; }
.recipientchips { display:contents; }
.recipientchip { display:inline-flex; align-items:center; gap:5px; max-width:100%; padding:5px 8px; border-radius:999px; background:var(--accent-soft); color:var(--text); font-size:12px; overflow-wrap:anywhere; }
.recipientchip button { padding:0; border-radius:50%; background:transparent; color:var(--muted); font-size:16px; line-height:1; }
.recipientsuggestions { position:absolute; z-index:5; top:calc(100% + 6px); left:0; right:0; max-height:240px; overflow:auto; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 12px 30px rgba(0,0,0,.12); }
.recipientsuggestion { display:block; width:100%; padding:10px 12px; border-radius:0; background:#fff; color:var(--text); text-align:left; font-weight:600; }
.recipientsuggestion:hover, .recipientsuggestion:focus { background:var(--accent-soft); }
.recentrecipients { display:flex; align-items:center; flex-wrap:wrap; gap:7px; min-height:29px; margin-top:9px; }
.recentrecipients > span { color:var(--muted); font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.recentrecipients button { padding:5px 9px; border:1px solid var(--line); border-radius:999px; background:var(--panel-soft); color:var(--text); font-size:11px; box-shadow:none; }
.recentrecipients button:hover { border-color:var(--accent); background:var(--accent-soft); box-shadow:none; }
.accountsettings { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:22px; }
.accountsettings > form { padding:18px; border:1px solid var(--line); border-radius:13px; }
.notificationsettings { margin-top:18px; padding:18px; border:1px solid var(--line); border-radius:13px; }
.notificationsettings p { margin:6px 0 14px; }
.notificationprompt { position:fixed; z-index:90; right:24px; bottom:24px; width:min(520px, calc(100vw - 32px)); display:grid; grid-template-columns:44px minmax(0, 1fr) auto; align-items:center; gap:14px; padding:16px; border:1px solid color-mix(in srgb, var(--accent) 24%, var(--line)); border-radius:18px; background:color-mix(in srgb, var(--panel) 96%, transparent); box-shadow:0 24px 60px var(--shadow); backdrop-filter:blur(14px); }
.notificationprompt[hidden] { display:none; }
.notificationbell { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(145deg, var(--accent), #58a0ff); color:#fff; font-size:0; }
.notificationbell::before { content:'🔔'; font-size:21px; }
.notificationcopy { display:grid; gap:3px; min-width:0; }
.notificationcopy strong { font-size:15px; }
.notificationcopy span { color:var(--muted); font-size:12px; line-height:1.45; }
.notificationcopy span[data-tone=error] { color:var(--danger); }
.notificationactions { display:flex; align-items:center; gap:9px; }
.notificationactions button { white-space:nowrap; }
.notificationsettings [data-tone=success] { color:var(--success); }
.notificationsettings [data-tone=warning] { color:var(--warning); }
.notificationsettings [data-tone=error] { color:var(--danger); }
.livetoast { position:fixed; z-index:85; top:24px; right:24px; width:min(380px, calc(100vw - 32px)); display:grid; gap:4px; padding:15px 17px; border:1px solid color-mix(in srgb, var(--accent) 24%, var(--line)); border-radius:14px; background:color-mix(in srgb, var(--panel) 97%, transparent); color:var(--text); text-decoration:none; box-shadow:0 20px 55px var(--shadow); animation:livetoastin .3s ease-out; }
.livetoast span { color:var(--muted); font-size:12px; }
@keyframes livetoastin { from { opacity:0; transform:translateY(10px); } }
.sitefooter { padding:18px 4px 0; color:var(--muted); font-size:11px; text-align:center; }
.themetoggle { position:fixed; z-index:95; left:18px; bottom:18px; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:color-mix(in srgb, var(--panel) 94%, transparent); color:var(--text); font-size:21px; box-shadow:0 12px 32px var(--shadow); backdrop-filter:blur(14px); }
.themetoggle:hover { transform:translateY(-2px); box-shadow:0 16px 38px var(--shadow); }
.inputunit { display:flex; align-items:center; gap:10px; }
.inputunit input { width:120px; }
.inputunit span { color:var(--muted); font-size:13px; }
.checkrow { display:flex; gap:9px; align-items:center; font-size:14px; }
input[type=number], input[type=text], input[type=email], input[type=password] { border:1px solid var(--line); border-radius:9px; padding:10px 11px; font:inherit; }
input[type=checkbox] { width:17px; height:17px; }
form { margin:0; }
.spaced { margin-top:30px; }
.tablewrap { overflow:auto; border:1px solid var(--line); border-radius:12px; }
table { width:100%; border-collapse:collapse; min-width:760px; }
.admintable { min-width:1120px; }
th, td { text-align:left; padding:12px 14px; border-top:1px solid var(--line); font-size:13px; vertical-align:middle; }
th { border-top:0; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.05em; }
.tablesort { color:inherit; text-decoration:none; white-space:nowrap; }
.tablesort:hover, .tablesort:focus { color:var(--accent); text-decoration:underline; }
.adminactions { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.adminshell { min-height:100vh; display:grid; grid-template-columns:240px minmax(0, 1fr); }
.adminsidebar { position:sticky; top:0; height:100vh; padding:28px 20px; background:#17191c; color:#fff; display:flex; flex-direction:column; gap:30px; }
.adminsidebar nav { display:grid; gap:5px; }
.adminsidebar nav a { padding:11px 12px; border-radius:9px; color:#b9bec6; text-decoration:none; font-size:14px; font-weight:650; }
.adminsidebar nav a:hover, .adminsidebar nav a.current { background:#2a2d32; color:#fff; }
.adminsidebarfoot { margin-top:auto; display:grid; gap:14px; color:#aeb4bd; font-size:12px; }
.adminsidebarfoot a { text-decoration:none; }
.adminsidebarfoot button.textbutton { color:#aeb4bd; }
.admincontent { width:min(1200px, 100%); padding:42px 38px 24px; }
.adminquick { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.adminquick a { color:inherit; text-decoration:none; }
.adminquick a:hover { border-color:#b9cdf8; }
.adminfilters { display:grid; grid-template-columns:minmax(260px, 2fr) minmax(140px, .7fr) minmax(140px, .7fr) auto; gap:10px; align-items:center; margin-top:22px; }
.copyhelper { position:fixed; left:-9999px; top:-9999px; opacity:0; }
code { background:#f0f1f3; padding:2px 5px; border-radius:5px; }

.mailshell { width:min(1240px, calc(100% - 32px)); }
.mailcard { overflow:hidden; }
.filterdrawer { margin-top:18px; border:1px solid var(--line); border-radius:12px; background:var(--panel-soft); }
.filterdrawer > summary { padding:11px 14px; color:var(--muted); cursor:pointer; font-size:12px; font-weight:750; list-style:none; }
.filterdrawer > summary::-webkit-details-marker { display:none; }
.filterdrawer > summary::before { content:'›'; display:inline-block; margin-right:8px; font-size:18px; line-height:.6; transform-origin:center; transition:transform .28s ease; }
.filterdrawer[open] > summary::before { transform:rotate(90deg); }
.filterdrawer .listfilters { margin:0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; animation:filterreveal .18s ease-out; }
@keyframes filterreveal { from { opacity:0; transform:translateY(-5px); } }
.mailworkspace { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 0fr); min-height:560px; margin-top:18px; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--panel); transition:grid-template-columns .36s cubic-bezier(.2,.72,.2,1); }
.mailworkspace.has-preview { grid-template-columns:minmax(330px, 370px) minmax(0, 1fr); }
.mailcolumn { min-width:0; max-height:72vh; overflow:auto; background:var(--panel); transition:background-color .18s ease; }
.mailcolumncontent { min-width:0; padding:0 18px 14px 14px; }
.mailcolumn .sharelist { margin-top:10px; border:0; border-radius:0; }
.mailcolumn .shareitem { position:relative; align-items:flex-start; padding:14px 12px 14px 10px; gap:12px; cursor:pointer; transition:background-color .24s ease, transform .24s ease, box-shadow .24s ease; }
.mailcolumn .shareitem:hover { background:var(--panel-soft); }
.mailcolumn .shareitem:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; background:var(--panel-soft); }
.mailcolumn .shareitem.selected { z-index:1; background:var(--accent-soft); box-shadow:inset 3px 0 var(--accent); }
.mailcolumn .sharemain { flex:1 1 auto; min-width:0; }
.mailcolumn .shareaside { width:120px; display:grid; justify-items:end; gap:7px; }
.mailcolumn .rowactions { margin:0; gap:6px; flex-wrap:nowrap; }
.mailcolumn .shareexpiry { white-space:nowrap; }
.mailworkspace.has-preview .sharemeta { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mailworkspace.has-preview .sharepeople, .mailworkspace.has-preview .sharemessage { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; overflow-wrap:anywhere; }
.mailworkspace.has-preview .sharepeople { -webkit-line-clamp:2; line-height:1.35; }
.mailworkspace.has-preview .sharemessage { -webkit-line-clamp:1; }
.iconbutton { width:34px; height:34px; padding:8px; border:1px solid var(--line); border-radius:9px; box-shadow:none; }
.iconbutton svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.iconbutton:hover { box-shadow:none; border-color:var(--accent); }
.iconbutton.confirmed { background:var(--success); border-color:var(--success); color:#fff; }
.sharepane { min-width:0; max-height:72vh; overflow:hidden auto; border-left:0 solid transparent; opacity:0; transform:translateX(18px); background:var(--panel); transition:opacity .3s ease, transform .36s cubic-bezier(.2,.72,.2,1), border-color .3s ease; }
.mailworkspace.has-preview .sharepane { border-left-width:1px; border-left-color:var(--line); opacity:1; transform:translateX(0); }
.sharepanebody { min-width:520px; min-height:100%; }
.sharepanecontent { padding:22px 24px 32px; animation:panereveal .32s ease-out both; }
.sharepanecontent h1 { overflow-wrap:anywhere; }
.sharecancelled { display:grid; align-content:start; justify-items:start; }
.sharecancelled h1 { margin:18px 0 8px; }
.sharecancelled p { max-width:560px; }
.sharepanehead { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.sharepanehead p { margin:0; }
.sharepaneclose { margin-bottom:16px; color:var(--accent); }
.sharepaneempty, .sharepaneloading, .sharepaneerror { min-height:520px; display:grid; place-content:center; justify-items:center; padding:40px; text-align:center; color:var(--muted); }
.sharepaneempty > span { display:grid; place-items:center; width:58px; height:58px; margin-bottom:14px; border-radius:18px; background:var(--accent-soft); color:var(--accent); font-size:25px; }
.sharepaneempty p, .sharepaneerror p { max-width:300px; margin:7px 0 0; }
.sharepaneloading { grid-auto-flow:column; gap:12px; }
.shareactions { align-items:center; }
.shareactions form { display:flex; }
.externalshare { margin:24px 0; padding:18px; border:1px solid var(--line); border-radius:13px; background:var(--panel-soft); }
.externalshare h2 { margin:0 0 10px; font-size:16px; }
.externalshare p { margin:8px 0; }
.externalshareshell { max-width:920px; }
@keyframes panereveal { from { opacity:0; transform:translateX(10px); } }
.actiontoast { position:fixed; z-index:100; left:50%; bottom:28px; width:min(560px, calc(100vw - 32px)); padding:13px 16px; border:1px solid var(--line); border-radius:12px; background:var(--panel); color:var(--text); font-size:13px; font-weight:700; text-align:center; opacity:0; transform:translate(-50%, 16px); box-shadow:0 18px 50px var(--shadow); transition:opacity .3s ease, transform .32s ease; }
.actiontoast.visible { opacity:1; transform:translate(-50%, 0); }
.copyshare.confirmed { background:var(--success); color:#fff; }
.successbox:not([hidden]) { animation:successarrive .38s cubic-bezier(.2,.75,.2,1); }
.previewdialog[open] { animation:dialogarrive .2s ease-out; }
.previewdialog::backdrop { animation:backdropfade .2s ease-out; }
@keyframes dialogarrive { from { opacity:0; transform:translateY(10px) scale(.99); } }
@keyframes backdropfade { from { background:rgba(13,15,18,0); } }

html[data-theme=dark] .card,
html[data-theme=dark] .foldergroup,
html[data-theme=dark] .recipientsuggestions,
html[data-theme=dark] .recipientsuggestion,
html[data-theme=dark] .notificationprompt,
html[data-theme=dark] .livetoast,
html[data-theme=dark] .linkrow input { background:var(--panel); }
html[data-theme=dark] .wideinput,
html[data-theme=dark] select.wideinput,
html[data-theme=dark] input[type=number],
html[data-theme=dark] input[type=text],
html[data-theme=dark] input[type=email],
html[data-theme=dark] input[type=password],
html[data-theme=dark] input[type=search] { background:var(--field); color:var(--text); }
html[data-theme=dark] .stephead,
html[data-theme=dark] .dropzone,
html[data-theme=dark] .filelisthead,
html[data-theme=dark] .listfilters,
html[data-theme=dark] .foldergroup summary,
html[data-theme=dark] .sequencecontrols { background:var(--panel-soft); }
html[data-theme=dark] button.secondary,
html[data-theme=dark] .button.secondary { background:#2a2f36; color:var(--text); }
html[data-theme=dark] button.danger { background:#3b2226; border-color:#68343a; color:var(--danger); }
html[data-theme=dark] .dropzone.active { background:#1e2a40; }
html[data-theme=dark] .pagedropoverlay { background:rgba(20,23,28,.97); }
html[data-theme=dark] .progress { background:#2b3037; }
html[data-theme=dark] .successbox { background:#192b25; border-color:#28533f; }
html[data-theme=dark] .saveconfirmation { background:#173326; border-color:#2d6848; color:#82e7ad; }
html[data-theme=dark] .error { background:#3a2024; border-color:#6b3439; color:#ffaaaa; }
html[data-theme=dark] .transfermessage { background:#1e2738; }
html[data-theme=dark] .shareitem.unread { background:#1d2940; }
html[data-theme=dark] .status.active { background:#183528; }
html[data-theme=dark] .status.pending { background:#1f3155; color:#9dbfff; }
html[data-theme=dark] .status.expired { background:#3a301c; }
html[data-theme=dark] .status.deleted { background:#292d32; }
html[data-theme=dark] code { background:#252a31; }

@view-transition { navigation:auto; }
::view-transition-old(root) { animation:pageleave .2s ease-in both; }
::view-transition-new(root) { animation:pagefade .3s ease-out both; }
@keyframes pageleave { to { opacity:0; } }

@media (max-width: 900px) {
  .uploadworkspace { grid-template-columns:1fr; }
  .uploadcard .dropzone { min-height:230px; }
  .mailworkspace, .mailworkspace.has-preview { display:block; min-height:480px; }
  .mailcolumn { max-height:none; }
  .sharepane { position:fixed; z-index:65; inset:72px 12px 12px; max-height:none; border:1px solid var(--line); border-radius:16px; opacity:0; transform:translateX(105%); box-shadow:0 24px 80px var(--shadow); pointer-events:none; }
  .mailworkspace.has-preview .sharepane { border-left-width:1px; opacity:1; transform:translateX(0); pointer-events:auto; }
  .sharepanebody { min-width:0; }
}
@media (max-width: 820px) {
	.adminshell { grid-template-columns:1fr; }
	.adminsidebar { position:static; height:auto; padding:18px 20px; gap:16px; }
	.adminsidebar nav { display:flex; flex-wrap:wrap; }
	.adminsidebarfoot { margin-top:0; display:flex; justify-content:space-between; }
	.admincontent { padding:28px 20px 20px; }
	.adminquick { grid-template-columns:1fr; }
	.adminfilters { grid-template-columns:1fr 1fr; }
  .topbar { align-items:flex-start; flex-direction:column; }
  .nav { justify-content:flex-start; }
  .useremail { border-left:0; padding-left:0; width:100%; }
  .formgrid, .settingsform { grid-template-columns:1fr; }
  .accountsettings { grid-template-columns:1fr; }
  .listfilters { grid-template-columns:1fr 1fr; }
  .details { grid-template-columns:1fr; }
  .shareitem { align-items:flex-start; flex-direction:column; }
  .shareaside { text-align:left; width:100%; }
  .rowactions { justify-content:flex-start; }
  .previewactions { align-items:stretch; flex-direction:column; }
  .previewnavigation, .previewmodes { justify-content:space-between; }
  .sequencetoolbar { grid-template-columns:auto 1fr; }
  .sequencetoolbar > .muted { grid-column:1 / -1; }
}
.chataudit { display:grid; gap:12px; max-width:900px; }
.chataudit article { border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:var(--panel); }
.chataudit article > div { display:flex; justify-content:space-between; gap:16px; }
.chataudit article time { color:var(--muted); font-size:.85rem; }
.chataudit article p { margin:8px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }

@media (max-width: 640px) {
	.adminfilters { grid-template-columns:1fr; }
  .shell, .wideshell { width:min(100% - 20px, 980px); margin:22px auto; }
  .authshell { margin:28px auto; }
  .card { padding:20px; border-radius:14px; }
  h1 { font-size:26px; }
  .stats, .stats.four { grid-template-columns:1fr 1fr; }
  .linkrow { flex-direction:column; }
  .sectionhead { flex-direction:column; }
  .progressmeta { flex-direction:column; }
  .notificationprompt { right:10px; bottom:10px; width:calc(100vw - 20px); grid-template-columns:40px minmax(0, 1fr); gap:11px; padding:14px; border-radius:16px; }
  .notificationbell { width:40px; height:40px; }
  .notificationactions { grid-column:2; justify-content:flex-start; }
  .livetoast { top:10px; right:10px; width:calc(100vw - 20px); }
  .previewdialog { width:calc(100% - 12px); height:calc(100vh - 12px); max-height:none; border-radius:14px; }
  .previewhead { padding:14px; }
  .previewstage { min-height:0; max-height:none; }
  .previewmedia.image, .previewmedia.video { max-height:100%; }
  .sequenceframe, .panoramacanvas { height:100%; min-height:0; }
  .panoramahint { bottom:10px; white-space:nowrap; }
  .sequencecontrols { padding:10px 14px 12px; }
  .sequencetoolbar { grid-template-columns:1fr; }
  .sequencetoolbar > .muted { grid-column:auto; }
  .sequencescrubber { grid-template-columns:1fr; gap:6px; }
  .previewactions { padding:12px 14px; }
  .previewnavigation, .previewmodes { flex-wrap:wrap; }
}
@media (max-width: 420px) {
  .stats, .stats.four { grid-template-columns:1fr; }
  .listfilters { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .pagedropoverlay { transform:none; }
}

/* Direct chat launcher and panel */
.chatwidget { position:fixed; right:20px; bottom:20px; z-index:60; font-size:14px; }
.chatlauncher { display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border:none; border-radius:999px; background:var(--accent); color:var(--on-accent); font-weight:600; cursor:pointer; box-shadow:0 6px 20px var(--shadow); transition:transform .15s ease, box-shadow .15s ease; }
.chatlauncher:hover { transform:translateY(-1px); box-shadow:0 10px 26px var(--shadow); }
.chatlauncher svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linejoin:round; }
.chatlauncherlabel { white-space:nowrap; }
.chatwidget.open .chatlauncher { display:none; }
.chatunread { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--danger); color:#fff; font-size:11px; font-weight:700; line-height:1; }
.chatlauncher .chatunread { background:#fff; color:var(--danger); }
.chatpanel { position:absolute; right:0; bottom:0; width:340px; max-width:calc(100vw - 32px); height:460px; max-height:calc(100vh - 40px); display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--line); border-radius:14px; box-shadow:0 16px 40px var(--shadow); overflow:hidden; }
.chatpanelhead { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--line); background:var(--panel-soft); }
.chatpanelhead strong { font-size:15px; }
.chatpeople { padding:10px 12px; border-bottom:1px solid var(--line); position:relative; }
.chatpeople input { width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:var(--field); color:var(--text); }
.chatpeopleresults { position:absolute; left:12px; right:12px; top:calc(100% - 2px); z-index:2; max-height:220px; overflow-y:auto; background:var(--panel); border:1px solid var(--line); border-radius:8px; box-shadow:0 10px 24px var(--shadow); }
.chatperson { display:flex; align-items:center; gap:8px; width:100%; padding:9px 12px; border:none; background:none; color:var(--text); text-align:left; cursor:pointer; }
.chatperson:hover, .chatperson:focus-visible { background:var(--accent-soft); }
.chatconversations { flex:1; overflow-y:auto; padding:6px; }
.chatconversation { display:flex; align-items:center; gap:10px; width:100%; padding:10px; border:none; border-radius:10px; background:none; color:var(--text); text-align:left; cursor:pointer; }
.chatconversation:hover, .chatconversation:focus-visible { background:var(--accent-soft); }
.chatconversation.unread .chatconvname { font-weight:700; }
.chatconvmain { flex:1; min-width:0; }
.chatconvname { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chatconvmeta { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; }
.chatpresence { flex:none; width:9px; height:9px; border-radius:50%; background:var(--muted); opacity:.5; }
.chatpresence.online { background:var(--success); opacity:1; }
.chatempty { padding:16px; color:var(--muted); text-align:center; font-size:13px; }
.chatview { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }
.chatview[hidden] { display:none; }
/* Conversation thread */
.chatthread { position:relative; }
.chatthreadhead { gap:8px; }
.chatthreadback { font-size:18px; line-height:1; padding:0 2px; }
.chatthreadtitle { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.chatthreadhead .chatpresence { margin:0; }
.chatmessages { flex:1; overflow-y:auto; padding:12px; display:flex; flex-direction:column; gap:8px; }
.chatmsg { display:flex; flex-direction:column; align-items:flex-start; max-width:82%; }
.chatmsg.mine { align-self:flex-end; align-items:flex-end; }
.chatmsgsender { font-size:11px; color:var(--muted); margin:2px 0 2px 4px; }
.chatmsgbubble { padding:7px 11px; border-radius:14px; background:var(--panel-soft); border:1px solid var(--line); color:var(--text); overflow-wrap:anywhere; }
.chatmsg.mine .chatmsgbubble { background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
.chatmsgbody { white-space:pre-wrap; }
.chatmsgtime { display:block; margin-top:3px; font-size:10px; opacity:.6; text-align:right; }
.chatcomposer { display:flex; align-items:flex-end; gap:8px; padding:10px; border-top:1px solid var(--line); background:var(--panel-soft); }
.chatattach { flex:none; width:36px; height:36px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--field); color:var(--muted); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.chatattach:hover { color:var(--accent); border-color:var(--accent); }
.chatattach svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
.chatsharepicker { position:absolute; left:10px; right:10px; bottom:60px; z-index:3; max-height:320px; overflow-y:auto; background:var(--panel); border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 30px var(--shadow); }
.chatuploadform { display:flex; flex-direction:column; gap:8px; padding:12px; }
.chatuploadname { width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:var(--field); color:var(--text); }
.chatuploadrow { display:flex; align-items:center; gap:8px; }
.chatuploadsummary { color:var(--muted); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chatuploadprogress { height:6px; border-radius:999px; background:var(--line); overflow:hidden; }
.chatuploadprogress > div { height:100%; width:0; background:var(--accent); transition:width .15s ease; }
.chatuploaderror { color:var(--danger); font-size:12px; }
.chatuploadsend { padding:9px 12px; border:none; border-radius:8px; background:var(--accent); color:var(--on-accent); font-weight:600; cursor:pointer; }
.chatuploadsend:disabled { opacity:.5; cursor:default; }
.chatattachview[hidden] { display:none; }
.chatpickerdivider { display:flex; align-items:center; gap:8px; padding:0 12px; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.chatpickerdivider::before, .chatpickerdivider::after { content:""; flex:1; height:1px; background:var(--line); }
.chatshareexistingtoggle { display:flex; align-items:center; justify-content:center; gap:8px; width:calc(100% - 24px); margin:0 12px 12px; padding:9px 12px; border:1px solid var(--line); border-radius:8px; background:var(--field); color:var(--text); font-weight:600; cursor:pointer; }
.chatshareexistingtoggle:hover { border-color:var(--accent); color:var(--accent); }
.chatshareexistingtoggle svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.chatexistinghead { display:flex; align-items:center; gap:8px; padding:12px 12px 8px; border-bottom:1px solid var(--line); }
.chatexistingback { font-size:18px; line-height:1; padding:0 2px; }
.chatshareexistinglist { max-height:260px; overflow-y:auto; padding:4px 0 6px; }
.chatshareoption { display:flex; flex-direction:column; gap:2px; width:100%; padding:10px 12px; border:none; border-bottom:1px solid var(--line); background:none; color:var(--text); text-align:left; cursor:pointer; }
.chatshareoption:last-child { border-bottom:none; }
.chatshareoption:hover, .chatshareoption:focus-visible { background:var(--accent-soft); }
.chatshareoption span { color:var(--muted); font-size:12px; }
.chatsharecard { display:flex; flex-direction:column; gap:3px; min-width:180px; }
.chatsharecardhead { display:flex; align-items:center; gap:6px; font-size:11px; text-transform:uppercase; letter-spacing:.04em; opacity:.75; }
.chatsharecardhead svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; }
.chatsharecardlabel { font-size:14px; overflow-wrap:anywhere; }
.chatsharecardmeta { font-size:12px; opacity:.7; }
.chatsharecardopen { margin-top:4px; font-weight:600; color:inherit; text-decoration:underline; }
.chatmsg.mine .chatsharecardopen { color:var(--on-accent); }
.chatmsg:not(.mine) .chatsharecardopen { color:var(--accent); }
.chatsharecardexpired { margin-top:4px; font-size:12px; opacity:.7; }
.chatcomposer textarea { flex:1; resize:none; max-height:120px; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:var(--field); color:var(--text); font:inherit; line-height:1.4; }
.chatcomposersend { flex:none; width:36px; height:36px; padding:0; border:none; border-radius:50%; background:var(--accent); color:var(--on-accent); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.chatcomposersend:disabled { opacity:.45; cursor:default; }
.chatcomposersend svg { width:18px; height:18px; fill:currentColor; }
@media (max-width:520px) { .chatwidget { right:12px; bottom:12px; } .chatlauncherlabel { display:none; } .chatpanel { width:calc(100vw - 24px); height:calc(100vh - 24px); } }
.shareoperations {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}
.shareoperations form {
  display: grid;
  gap: .65rem;
}
.shareoperations h2,
.shareoperations p { margin: 0; }
.shareoperations .actions { align-items: center; margin-top: 0; }
.shareoperations .wideinput { min-width: 0; }
.shareoperationstatus:not(:empty) {
  padding: .65rem .85rem;
  border-radius: .7rem;
  background: var(--accent-soft);
}
.transfermessage a,
.chatmsgbody a { overflow-wrap: anywhere; }
.receiveshell { width:min(720px, calc(100vw - 28px)); }
.receivecard { width:100%; }
.receivecard .dropzone { width:100%; min-height:150px; margin:1rem 0; }
.receivecard .dropzone.active { border-color:var(--accent); background:var(--accent-soft); }
.receivecard input[type=file] { max-width:100%; }
.receivecard #status { min-height:1.5em; overflow-wrap:anywhere; }

/* ---- v0.7.2 UI fixes ---- */

/* Share facts: let long names/emails wrap instead of clipping mid-address */
.details { grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); }
.details strong { white-space:normal; overflow-wrap:break-word; line-height:1.35; }

/* Email-style Forward / Add people composer */
.sharecompose { display:grid; gap:10px; margin:4px 0 22px; padding:16px; border:1px solid var(--line); border-radius:13px; background:var(--panel-soft); animation:composein .18s ease-out; }
.sharecompose[hidden] { display:none; }
@keyframes composein { from { opacity:0; transform:translateY(-4px); } }
.composehead { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.composehead strong { font-size:15px; }
.composerow { display:grid; grid-template-columns:64px minmax(0, 1fr); align-items:center; gap:10px; }
.composelabel { color:var(--muted); font-size:13px; font-weight:650; }
.composerow > input { width:100%; min-height:42px; padding:9px 12px; border:1px solid var(--line); border-radius:10px; background:var(--field); color:var(--text); font:inherit; }
.composerow > input:focus, .sharecompose textarea:focus { outline:2px solid color-mix(in srgb, var(--accent) 25%, transparent); border-color:var(--accent); }
.sharecompose textarea { width:100%; min-height:72px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--field); color:var(--text); font:inherit; resize:vertical; }
.composeactions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.composeactions .shareoperationstatus { flex:1 1 220px; margin:0; font-size:13px; }
.shareoperationstatus:not(:empty) { padding:.55rem .8rem; border-radius:.6rem; background:var(--accent-soft); }
.shareoperationstatus.success { background:color-mix(in srgb, var(--success, #1f8a4c) 14%, transparent); }
.shareoperationstatus.error { background:color-mix(in srgb, var(--danger) 14%, transparent); color:var(--danger); }
.shareactions button[aria-expanded=true] { border:1px solid var(--accent); background:var(--accent-soft); color:var(--text); }
.recipientpicker { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-height:42px; padding:5px 8px; border:1px solid var(--line); border-radius:10px; background:var(--field); cursor:text; }
.recipientpicker:focus-within { outline:2px solid color-mix(in srgb, var(--accent) 25%, transparent); border-color:var(--accent); }
.recipientpicker input { flex:1; min-width:140px; min-height:30px; border:0; outline:0; padding:3px 4px; background:transparent; color:var(--text); font:inherit; }
.pickerchips { display:contents; }
.pickerchip { display:inline-flex; align-items:center; gap:4px; max-width:100%; padding:4px 4px 4px 10px; border-radius:999px; background:var(--accent-soft); color:var(--text); font-size:12px; font-weight:600; }
.pickerchip button { width:20px; height:20px; padding:0; border-radius:50%; background:transparent; color:var(--muted); font-size:15px; line-height:1; box-shadow:none; }
.pickerchip button:hover { background:color-mix(in srgb, var(--text) 10%, transparent); color:var(--text); box-shadow:none; }
.pickerresults { position:absolute; z-index:20; top:calc(100% + 6px); left:0; right:0; max-height:240px; overflow:auto; border:1px solid var(--line); border-radius:10px; background:var(--panel); box-shadow:0 14px 34px var(--shadow, rgba(0,0,0,.14)); }
.pickerresults[hidden] { display:none; }
.pickerresults button { display:grid; justify-content:start; justify-items:start; gap:1px; width:100%; padding:9px 12px; border-radius:0; background:transparent; color:var(--text); text-align:left; font-weight:600; box-shadow:none; }
.pickerresults button span { color:var(--muted); font-size:12px; font-weight:500; }
.pickerresults button:hover, .pickerresults button.active { background:var(--accent-soft); box-shadow:none; }
.externalshare { margin:22px 0 4px; }

/* Receive links (signed-in) */
.inlineform { display:flex; gap:10px; align-items:stretch; }
.inlineform .wideinput { flex:1; min-width:0; }
.inlineform button { flex:none; white-space:nowrap; }
.receivecreate .fieldlabel { margin-top:18px; }
.receiveresult:not(:empty) { margin-top:14px; padding:12px 14px; border-radius:11px; background:var(--accent-soft); font-size:13px; }
.receiveresult.error { background:color-mix(in srgb, var(--danger) 14%, transparent); color:var(--danger); }
.receiveresult .linkrow { margin-top:8px; }
.receivelist { display:grid; margin-top:24px; border:1px solid var(--line); border-radius:13px; overflow:hidden; }
.receiverow { display:grid; grid-template-columns:minmax(0, 1fr) auto auto; align-items:center; gap:14px; padding:14px 16px; border-top:1px solid var(--line); }
.receiverow:first-child { border-top:0; }
.receivemain { display:grid; gap:3px; min-width:0; }
.receivemain strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.receiveactions { display:flex; align-items:center; gap:8px; }
.receiveactions form { margin:0; }
.receiveempty { padding:44px 20px; margin-top:24px; border:1px dashed var(--line); border-radius:13px; }
.receiveempty h2 { margin:0 0 6px; font-size:17px; }
.status.pending { white-space:nowrap; }

/* Public client drop-off */
.publicpage { min-height:100vh; display:grid; place-items:center; padding:28px 14px; }
.receiveshell { width:min(620px, 100%); }
.receivecard { width:100%; padding:30px; }
.receivebrand { margin:0 0 18px; color:var(--accent); font-size:13px; font-weight:800; letter-spacing:.02em; }
.receivecard h1 { margin:0; }
.receivelabel { margin:6px 0 20px; color:var(--muted); font-size:15px; }
.receivedrop { display:grid; justify-items:center; gap:8px; padding:34px 20px; border:2px dashed var(--line); border-radius:16px; background:var(--panel-soft); text-align:center; cursor:pointer; transition:border-color .15s ease, background-color .15s ease; }
.receivedrop:hover, .receivedrop:focus-visible, .receivedrop.active { border-color:var(--accent); background:var(--accent-soft); outline:0; }
.receivedrop.disabled { opacity:.6; pointer-events:none; }
.receivedrop svg { width:34px; height:34px; fill:none; stroke:var(--accent); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.receivedrop strong { font-size:17px; }
.receivepick { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:4px; }
.receiveselection { margin-top:16px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.receiveselection[hidden] { display:none; }
.receiveselectionhead { display:flex; justify-content:space-between; align-items:center; padding:10px 14px; background:var(--panel-soft); border-bottom:1px solid var(--line); font-size:13px; }
.receivefiles { max-height:220px; overflow:auto; margin:0; padding:4px 0; list-style:none; font-size:13px; }
.receivefiles li { display:flex; justify-content:space-between; gap:12px; padding:6px 14px; }
.receivefiles li span:first-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.receivefiles li span.muted { flex:none; }
.receiveprogress { height:8px; margin-top:16px; border-radius:999px; background:var(--line); overflow:hidden; }
.receiveprogress[hidden] { display:none; }
.receiveprogress > div { width:0; height:100%; border-radius:inherit; background:var(--accent); transition:width .15s linear; }
.receivesubmit { display:flex; gap:10px; margin-top:18px; }
.receivesubmit button[type=submit] { flex:1; min-height:46px; }
.receivestatus { min-height:1.4em; margin:12px 0 0; font-size:13px; color:var(--muted); overflow-wrap:anywhere; }
.receivedone { display:grid; justify-items:center; gap:6px; padding:30px 10px 10px; text-align:center; }
.receivedone[hidden] { display:none; }
.receivedone svg { width:48px; height:48px; padding:10px; border-radius:50%; background:color-mix(in srgb, var(--success, #1f8a4c) 16%, transparent); fill:none; stroke:var(--success, #1f8a4c); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.receivedone h2 { margin:6px 0 0; }
.receivefoot { margin:18px 0 0; padding-top:14px; border-top:1px solid var(--line); }

/* Settings: stack cards at one width */
.accountsettings { grid-template-columns:1fr; }

/* Admin: keep sidebar footer clear of the fixed theme toggle; access audit */
.adminsidebarfoot { padding-bottom:58px; }
.accessallow { max-width:560px; }
.accessallow .fieldlabel { margin-top:20px; }
.accesssection { margin-top:30px; }
.accesssection h2 { margin:0 0 10px; font-size:17px; }
.accesssection > p.muted { margin:-4px 0 10px; }
.admintable.compacttable { min-width:720px; }
.admintable td.mono, .admintable .mono { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:12px; }
.admintable .nowrap { white-space:nowrap; }
.admintable .refcell { max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); }
.admintable .rowaction { width:1%; white-space:nowrap; text-align:right; }
.admintable .rowaction form { margin:0; }
.accessempty { margin:0; padding:14px 16px; border:1px dashed var(--line); border-radius:12px; color:var(--muted); font-size:13px; }
.admincontent code { padding:1px 5px; border-radius:5px; background:var(--panel-soft); font-size:12px; }

@media (max-width:640px) {
  .inlineform { flex-direction:column; }
  .receiverow { grid-template-columns:minmax(0, 1fr) auto; }
  .receiveactions { grid-column:1 / -1; flex-wrap:wrap; }
  .composerow { grid-template-columns:1fr; gap:4px; }
  .receivecard { padding:22px; }
}

/* ---- v0.7.3 chat presence directory ---- */
.chatpresence.online { background:#22c55e; opacity:1; box-shadow:0 0 0 2px color-mix(in srgb, #22c55e 22%, transparent); }
.chatpresence.away { background:#f59e0b; opacity:1; box-shadow:0 0 0 2px color-mix(in srgb, #f59e0b 22%, transparent); }
.chatpresence.offline { background:var(--muted); opacity:.45; }
.chatgroup + .chatgroup { margin-top:6px; }
.chatgrouphead { margin:0; padding:10px 14px 4px; color:var(--muted); font-size:11px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.chatgrouphead span { font-weight:600; opacity:.8; }
.chatconvmain { display:grid; gap:1px; }
.chatconvstatus { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:11.5px; font-weight:500; }
.chatthreadtext { flex:1; min-width:0; display:grid; line-height:1.2; }
.chatthreadtext .chatthreadtitle { flex:none; }
.chatthreadstatus { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:11px; font-weight:500; }
.chatsharetabs { display:flex; gap:4px; margin:10px 12px 4px; padding:3px; border-radius:10px; background:var(--panel-soft); border:1px solid var(--line); }
.chatsharetabs button { flex:1; padding:6px 8px; border-radius:7px; background:transparent; color:var(--muted); font-size:12px; font-weight:650; box-shadow:none; }
.chatsharetabs button span { opacity:.75; font-weight:500; }
.chatsharetabs button[aria-selected=true] { background:var(--panel); color:var(--text); box-shadow:0 1px 3px var(--shadow); }
.chatsharenote { margin:6px 14px 4px; color:var(--muted); font-size:11.5px; }
.chatsharetabs button span { margin-left:5px; }
.chatshareoption { align-items:flex-start; }

/* ---- v0.8.0 receive folders ---- */
.drivepage { min-height:100vh; }
.driveshell { width:min(1080px, calc(100vw - 28px)); margin:0 auto; padding:34px 0 140px; }
.drivehead { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 24px; margin-bottom:18px; }
.drivetitle h1 { margin:0; font-size:clamp(24px, 3.4vw, 32px); overflow-wrap:anywhere; }
.drivetitle p { margin:6px 0 0; }
.driveactions { display:flex; flex-wrap:wrap; gap:10px; }
.drivelocked { margin:0 0 16px; padding:12px 14px; border:1px solid color-mix(in srgb, var(--warning, #b7791f) 40%, var(--line)); border-radius:11px; background:color-mix(in srgb, var(--warning, #b7791f) 12%, transparent); font-size:13px; font-weight:600; }
.drivelocked[hidden] { display:none; }
.drivelockedmode .driveactions, .drivelockedmode .driverowactions, .drivelockedmode .drivefoot, .drivelockedmode .driveempty span { display:none; }
.drivecrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin:0 0 10px; font-size:14px; }
.drivecrumbs button { padding:4px 6px; border-radius:6px; background:transparent; color:var(--accent); font-weight:600; box-shadow:none; }
.drivecrumbs button:hover { background:var(--accent-soft); box-shadow:none; }
.drivecrumbs [aria-current] { padding:4px 6px; font-weight:700; }
.drivesep { color:var(--muted); }
.drivelist { border:1px solid var(--line); border-radius:14px; background:var(--panel); overflow:hidden; }
.drivecolumns, .driverow { display:grid; grid-template-columns:22px minmax(0, 1fr) 96px minmax(150px, 230px) 104px; align-items:center; gap:12px; padding:0 14px; }
.drivecolumns { min-height:38px; border-bottom:1px solid var(--line); color:var(--muted); font-size:11px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.driverow { min-height:50px; border-bottom:1px solid var(--line); font-size:14px; }
.driverow:last-child { border-bottom:0; }
.driverow:hover { background:var(--panel-soft); }
.drivename { display:flex; align-items:center; gap:10px; min-width:0; padding:0; background:transparent; color:var(--text); font-weight:600; text-align:left; box-shadow:none; justify-content:flex-start; }
button.drivename:hover { color:var(--accent); box-shadow:none; }
.drivename span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.driveglyph { flex:none; width:18px; height:22px; border-radius:3px; border:1.6px solid var(--muted); opacity:.75; }
.driveglyph.folder { width:22px; height:16px; border:0; border-radius:3px; background:color-mix(in srgb, var(--accent) 70%, #f5b942); opacity:1; position:relative; }
.driveglyph.folder::before { content:""; position:absolute; left:0; top:-3px; width:9px; height:5px; border-radius:2px 2px 0 0; background:inherit; }
.drivesize { color:var(--muted); font-size:13px; white-space:nowrap; }
.drivestatuscell { min-width:0; font-size:12.5px; }
.drivestatus { display:grid; gap:4px; }
.drivestatus span { color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.drivestatus.failed span { color:var(--danger); }
.driveprogress { height:5px; border-radius:999px; background:var(--line); overflow:hidden; }
.driveprogress > div { height:100%; border-radius:inherit; background:var(--accent); transition:width .25s linear; }
.drivestatus.paused .driveprogress > div, .drivequeuelist li.paused .driveprogress > div { background:var(--muted); }
.drivestatus.failed .driveprogress > div, .drivequeuelist li.failed .driveprogress > div { background:var(--danger); }
.drivedone { color:var(--success); font-weight:600; }
.driveincomplete { color:var(--warning, #b7791f); }
.drivemuted { color:var(--muted); }
.driverowactions { display:flex; justify-content:flex-end; gap:2px; }
.driveicon { width:30px; height:30px; padding:0; border-radius:8px; background:transparent; color:var(--muted); font-size:13px; box-shadow:none; }
.driveicon:hover { background:var(--accent-soft); color:var(--text); box-shadow:none; }
.driveicon.driveicondelete:hover { background:color-mix(in srgb, var(--danger) 14%, transparent); color:var(--danger); }
.driverow .driverowactions { opacity:.35; transition:opacity .15s; }
.driverow:hover .driverowactions, .driverow:focus-within .driverowactions { opacity:1; }
.driverename { display:flex; gap:6px; align-items:center; min-width:0; }
.driverename input { flex:1; min-width:0; padding:7px 9px; border:1px solid var(--accent); border-radius:8px; background:var(--field); color:var(--text); font:inherit; }
.driverename button { padding:7px 11px; font-size:12px; }
.driveempty { display:grid; justify-items:center; gap:8px; padding:64px 20px; text-align:center; }
.driveempty[hidden] { display:none; }
.driveempty svg, .driveoverlay svg { width:40px; height:40px; fill:none; stroke:var(--accent); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.driveempty strong { font-size:17px; }
.drivefoot { margin-top:14px; }
.driveoverlay { position:fixed; inset:0; z-index:120; display:grid; place-items:center; background:color-mix(in srgb, var(--accent) 12%, rgba(0,0,0,.35)); backdrop-filter:blur(2px); pointer-events:none; }
.driveoverlay[hidden] { display:none; }
.driveoverlay > div { display:grid; justify-items:center; gap:6px; padding:30px 44px; border:2px dashed var(--accent); border-radius:18px; background:var(--panel); box-shadow:0 20px 60px var(--shadow); }
.driveoverlay strong { font-size:18px; }
.driveoverlay span { color:var(--muted); font-size:13px; }
.drivequeue { position:fixed; z-index:110; right:20px; bottom:20px; width:min(400px, calc(100vw - 28px)); max-height:min(460px, 70vh); display:flex; flex-direction:column; border:1px solid var(--line); border-radius:14px; background:var(--panel); box-shadow:0 18px 50px var(--shadow); overflow:hidden; }
.drivequeue[hidden] { display:none; }
.drivequeue header { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:12px 14px 8px; }
.drivequeue header strong { font-size:14px; }
.drivequeue header div { display:flex; gap:4px; }
.drivequeue header .textbutton { padding:4px 6px; font-size:12px; color:var(--accent); }
.drivequeuebar { height:4px; margin:0 14px; border-radius:999px; background:var(--line); overflow:hidden; }
.drivequeuebar > div { height:100%; width:0; background:var(--accent); transition:width .3s linear; }
.drivequeuebar.paused > div { background:var(--muted); }
.drivequeuemeta { margin:6px 14px 8px; color:var(--muted); font-size:12px; }
.drivequeuelist { flex:1; margin:0; padding:0 0 6px; overflow:auto; list-style:none; border-top:1px solid var(--line); }
.drivequeuelist li { display:grid; grid-template-columns:minmax(0, 1fr) 30px; grid-template-areas:"name action" "state action"; gap:3px 8px; align-items:center; padding:8px 14px; border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent); }
.drivequeuename { grid-area:name; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; font-weight:600; }
.drivequeuestate { grid-area:state; display:grid; gap:3px; }
.drivequeuestate span { color:var(--muted); font-size:11.5px; }
.drivequeuelist li.failed .drivequeuestate span { color:var(--danger); }
.drivequeuelist li.done .driveprogress, .drivequeuelist li.skipped .driveprogress { display:none; }
.drivequeuelist li.done .drivequeuestate span, .drivequeuelist li.skipped .drivequeuestate span { color:var(--success); }
.drivequeuelist .driveicon { grid-area:action; }
.drivequeue.collapsed .drivequeuelist, .drivequeue.collapsed .drivequeuemeta { display:none; }
.drivequeue.collapsed { padding-bottom:10px; }
@media (max-width:720px) {
  .drivecolumns { display:none; }
  .driverow { grid-template-columns:22px minmax(0, 1fr) auto; grid-template-areas:"check name actions" ". status size"; padding:10px 12px; gap:6px 10px; }
  .driverow > .drivecheck { grid-area:check; }
  .driverow > .drivename, .driverow > .driverename { grid-area:name; }
  .driverow .drivesize { grid-area:size; text-align:right; }
  .driverow .drivestatuscell { grid-area:status; }
  .driverow .driverowactions { grid-area:actions; opacity:1; }
}

/* Owner view of a receive folder */
.receivelabellink { color:inherit; text-decoration:none; }
.receivelabellink:hover strong { color:var(--accent); }
.receivedetailhead { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-top:10px; }
.receivedetailhead h1 { margin:0; overflow-wrap:anywhere; }
.receivedetailhead p { margin:6px 0 0; }
.receivetree { margin-top:22px; border:1px solid var(--line); border-radius:13px; overflow:hidden; }
.receivetreerow { display:grid; grid-template-columns:minmax(0, 1fr) 96px 170px; align-items:center; gap:12px; min-height:40px; padding:0 14px; border-top:1px solid var(--line); font-size:13.5px; }
.receivetreerow:first-child { border-top:0; }
.receivetreerow.folder { background:var(--panel-soft); font-weight:650; }
.receivetreename { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.receivetreeicon { display:inline-block; width:16px; color:var(--muted); }
.receivetreesize { color:var(--muted); white-space:nowrap; }
.receivetreestatus { text-align:right; }
.receivetreerow[data-depth="1"] { padding-left:34px; }
.receivetreerow[data-depth="2"] { padding-left:54px; }
.receivetreerow[data-depth="3"] { padding-left:74px; }
.receivetreerow[data-depth="4"] { padding-left:94px; }
.receivetreerow[data-depth="5"] { padding-left:114px; }
.receivetreerow[data-depth="6"] { padding-left:134px; }
.receivetreerow[data-depth="7"] { padding-left:154px; }
.receivetreerow[data-depth="8"] { padding-left:174px; }
.receivetreerow[data-depth="9"] { padding-left:194px; }
.receivetreerow[data-depth="10"] { padding-left:214px; }
.receivetreerow[data-depth="11"] { padding-left:234px; }
.receivetreerow[data-depth="12"] { padding-left:254px; }
.driveicon.driveicondelete { border:0; background:transparent; color:var(--muted); }
.drivekeepopen { margin:0 14px 8px; padding:7px 10px; border-radius:8px; background:var(--accent-soft); color:var(--text); font-size:11.5px; line-height:1.4; }
.drivekeepopen[hidden], .driveresume[hidden] { display:none; }
.driveresume { margin:0 0 14px; padding:12px 14px; border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line)); border-radius:11px; background:var(--accent-soft); font-size:13px; font-weight:600; }
.drivequeue.collapsed .drivekeepopen { display:none; }

/* v0.8.1 selection and bulk delete */
.drivecheck { display:flex; align-items:center; justify-content:center; width:22px; height:22px; cursor:pointer; }
.drivecheck input { width:16px; height:16px; margin:0; accent-color:var(--accent); cursor:pointer; }
.drivecolumns .drivecheck input:disabled { cursor:default; opacity:.4; }
.driverow.selected { background:var(--accent-soft); }
.driverow.selected:hover { background:color-mix(in srgb, var(--accent-soft) 80%, var(--panel-soft)); }
.drivebar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; min-height:40px; margin:0 0 10px; }
.drivebar .drivecrumbs { margin:0; }
.driveselection { display:flex; align-items:center; gap:10px; padding:5px 6px 5px 12px; border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line)); border-radius:10px; background:var(--accent-soft); font-size:13px; animation:composein .15s ease-out; }
.driveselection[hidden] { display:none; }
.driveselection .textbutton { color:var(--text); font-size:12.5px; }
button.textbutton.driveclearall { color:var(--danger); font-weight:650; padding:8px 6px; }
.driveclearall:hover { text-decoration:underline; }
.driveclearall[hidden] { display:none; }
.driveconfirm { width:min(440px, calc(100vw - 32px)); padding:0; border:1px solid var(--line); border-radius:16px; background:var(--panel); color:var(--text); box-shadow:0 30px 80px var(--shadow); }
.driveconfirm::backdrop { background:rgba(10,12,16,.55); backdrop-filter:blur(2px); }
.driveconfirm form { display:grid; gap:10px; padding:22px; }
.driveconfirm h2 { margin:0; font-size:18px; overflow-wrap:anywhere; }
.driveconfirm p { margin:0; font-size:14px; line-height:1.5; }
.driveconfirmwarn { padding:10px 12px; border-radius:10px; background:color-mix(in srgb, var(--danger) 13%, transparent); color:var(--danger); font-size:13px !important; font-weight:600; }
.driveconfirmactions { display:flex; justify-content:flex-end; gap:10px; margin-top:6px; }
button.dangersolid { background:var(--danger); color:#fff; }
html[data-theme=dark] button.dangersolid { color:#1a0b0b; }
.drivefinish { background:var(--success); color:#fff; }
html[data-theme=dark] .drivefinish { color:#062b15; }
.drivefinish:disabled { opacity:.55; cursor:not-allowed; }
.drivefinish[hidden] { display:none; }
.drivelocked.delivered { border-color:color-mix(in srgb, var(--success) 45%, var(--line)); background:color-mix(in srgb, var(--success) 14%, transparent); }
.driveconfirmwarn.info { background:color-mix(in srgb, var(--accent) 14%, transparent); color:var(--text); }
.drivelockedmode .drivecolumns .drivecheck { visibility:hidden; }

/* ---- v0.9.0 access control ---- */
.accesscard { margin-top:22px; padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--panel); }
.accesscard h2 { margin:0 0 12px; font-size:17px; display:flex; align-items:center; gap:8px; }
.accesscard > p.muted.small { margin:-6px 0 12px; }
.accesscardhead { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px; }
.accesscardhead h2 { margin:0; }
.accesscardhead form { margin:0; }
.accessmodes { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; }
.accessmode { position:relative; display:grid; gap:4px; padding:14px 14px 14px 40px; border:1px solid var(--line); border-radius:12px; cursor:pointer; background:var(--panel-soft); }
.accessmode input { position:absolute; left:14px; top:16px; accent-color:var(--accent); }
.accessmode strong { font-size:14px; }
.accessmode span { color:var(--muted); font-size:12.5px; line-height:1.45; }
.accessmode:has(input:checked) { border-color:var(--accent); background:var(--accent-soft); }
.accessmode:has(input[value="enforce"]:checked) { border-color:color-mix(in srgb, var(--success) 55%, var(--line)); background:color-mix(in srgb, var(--success) 12%, transparent); }
.accessoptions { display:grid; gap:14px; margin-top:16px; }
.accesscheck { display:flex; gap:12px; align-items:flex-start; cursor:pointer; }
.accesscheck input { margin-top:3px; width:16px; height:16px; accent-color:var(--accent); }
.accesscheck > span, .accessselect > span { display:grid; gap:2px; }
.accessselect { display:grid; grid-template-columns:minmax(0, 1fr) minmax(220px, 300px); gap:14px; align-items:center; }
.accessselect select.wideinput { min-height:42px; padding:8px 10px; }
.accessadd { display:grid; grid-template-columns:minmax(0, 1.2fr) minmax(0, 1fr) auto; gap:10px; margin:0 0 14px; }
.accessadd .wideinput { min-height:42px; padding:9px 12px; }
.accessrename { display:flex; gap:6px; align-items:center; }
.accessrename input { min-width:0; width:200px; padding:6px 9px; border:1px solid var(--line); border-radius:8px; background:var(--field); color:var(--text); font:inherit; font-size:13px; }
.accesswarn { margin:14px 0 0; padding:12px 14px; border-radius:11px; background:color-mix(in srgb, var(--warning, #b7791f) 14%, transparent); border:1px solid color-mix(in srgb, var(--warning, #b7791f) 40%, var(--line)); font-size:13px; font-weight:600; }
.accessnotice { margin-top:14px; padding:11px 14px; border:1px solid color-mix(in srgb, var(--success) 45%, var(--line)); border-radius:11px; background:color-mix(in srgb, var(--success) 12%, transparent); font-size:13.5px; font-weight:650; }
.admintable .rowaction .adminactions { flex-wrap:nowrap; justify-content:flex-end; }
.adminsidebar nav a .badge { margin-left:6px; }
.accessdenied h1 { margin:0 0 8px; }
.accessdetails { display:grid; gap:8px; margin:18px 0; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:var(--panel-soft); }
.accessdetails div { display:grid; grid-template-columns:110px minmax(0, 1fr); gap:10px; font-size:13.5px; }
.accessdetails dt { color:var(--muted); }
.accessdetails dd { margin:0; overflow-wrap:anywhere; }
.accessdenied .actions form { margin:0; }
@media (max-width:820px) {
  .accessmodes, .accessadd, .accessselect { grid-template-columns:1fr; }
}

/* v0.10.0 connection hint and receive-link deletion */
.drivequeuehint { margin:0 14px 8px; padding:8px 10px; border-radius:8px; background:color-mix(in srgb, var(--danger) 12%, transparent); color:var(--text); font-size:11.5px; font-weight:600; line-height:1.45; }
.drivequeuehint.info { background:var(--accent-soft); font-weight:500; }
.drivequeuehint[hidden], .drivequeue.collapsed .drivequeuehint { display:none; }
