/* Dialogs and file tools */
dialog{padding:0;border:1px solid #cfd3d7;max-width:calc(100vw - 32px);width:470px;max-height:calc(100svh - 48px);background:var(--paper);color:var(--ink);box-shadow:0 20px 90px rgba(19,16,10,.18);overflow:auto}dialog::backdrop{background:rgba(31,29,24,.5);backdrop-filter:blur(3px)}dialog.dialog-wide{width:830px}dialog.dialog-preview{width:1020px;background:#f3f4f5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:25px 28px 18px;border-bottom:1px solid var(--line)}.modal-title{font:600 30px/1.12 var(--display);letter-spacing:-.01em;margin:0;overflow-wrap:anywhere}.modal-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:#73777e;margin:0 0 9px}.modal-header .icon-button{margin-top:-3px;margin-right:-8px}.modal-body{padding:23px 28px 27px}.modal-body>p:first-child{margin-top:0}.modal-description{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 21px}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:25px;padding-top:19px;border-top:1px solid var(--line)}.modal-footer .button{font-size:12px;min-height:38px}.color-picker{display:flex;gap:11px;align-items:center;padding-top:3px}.color-option{width:31px;height:31px;position:relative;display:block;cursor:pointer}.color-option input{position:absolute;opacity:0;width:100%;height:100%;inset:0;min-height:0;margin:0}.color-option span{display:block;width:31px;height:31px;background:var(--swatch);border:1px solid rgba(0,0,0,.09)}.color-option input:checked+span{outline:1px solid var(--ink);outline-offset:3px}.color-option input:focus-visible+span{outline:2px solid #263d38;outline-offset:4px}.color-option input:checked+span:after{content:'✓';display:flex;align-items:center;justify-content:center;height:100%;font-size:15px}
/* Menu interaction adapted from Uiverse.io by HetPatel69. */
.context-menu {
  position: fixed;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 200px;
  max-width: calc(100vw - 16px);
  z-index: 60;
  padding: 6px;
  background: #0d1117;
  color: #fff;
  border: 1px solid #30363d;
  border-radius: 5px;
  box-shadow: 0 12px 32px #0d11172b;
}
.context-menu .menu-button {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  background: transparent;
  border: 0;
  border-radius: 4px;
  color: #fff;
  font-size: 12px;
  line-height: 18px;
  text-align: left;
  cursor: pointer;
  transition: background-color 150ms ease, filter 300ms ease, transform 300ms ease;
}
.context-menu .menu-button:not(:active):hover { background: #21262c; }
.context-menu .menu-button:focus,
.context-menu .menu-button:active {
  background: #1a1f24;
  outline: none;
}
.context-menu .menu-button::before {
  content: "";
  position: absolute;
  top: 10%;
  left: -10px;
  width: 5px;
  height: 80%;
  background: #2f81f7;
  border-radius: 5px;
  opacity: 0;
  transition: opacity 150ms ease;
}
.context-menu .menu-button:focus::before,
.context-menu .menu-button:active::before { opacity: 1; }
.context-menu .menu-button .icon { width: 15px; height: 15px; color: currentColor; }
.context-menu .menu-button.danger { color: #ff8585; }
.context-menu .menu-divider { height: 1px; background: #30363d; margin: 5px 7px; }
@media (hover: hover) and (pointer: fine) {
  .context-menu:hover > .menu-button:not(:hover) {
    filter: blur(1px);
    transform: scale(.95);
  }
}
@media (pointer: coarse) {
  .context-menu .menu-button { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .context-menu .menu-button,
  .context-menu .menu-button::before { transition: none; }
  .context-menu:hover > .menu-button:not(:hover) { transform: none; }
}
.preview-surface{height:min(65svh,660px);min-height:260px;display:flex;justify-content:center;align-items:center;background:#e7eaec;padding:20px;position:relative}.preview-surface img{display:block;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 2px 10px rgba(35,33,33,.08)}.preview-surface iframe{border:0;background:white;width:100%;height:100%}.preview-unavailable{display:flex;align-items:center;flex-direction:column;text-align:center;gap:21px;padding:15px}.preview-unavailable .file-paper{transform:scale(1.2);margin:15px 0}.preview-unavailable p{margin:0;color:#62686d;font-size:12px;max-width:330px;line-height:1.8}.preview-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 28px}.preview-meta{font-size:12px;color:#6e747a;line-height:1.8}.preview-meta strong{color:#343a3d;font-weight:600;display:block}.preview-actions{display:flex;gap:8px;flex-shrink:0}.preview-actions .button{font-size:12px;min-height:36px;padding:8px 12px}.share-result{display:flex;align-items:center;gap:8px;padding:12px;background:#f0f2f3;border:1px solid #d6dadd;margin-bottom:12px}.share-result input{border:0;background:none;width:100%;min-width:0;color:#444a4f;font-size:12px;padding:3px;outline-offset:3px}.share-result .icon-button{flex-shrink:0}.share-expiry{font-size:12px;color:#636a70;margin:0 0 18px}.share-notice{display:flex;align-items:flex-start;gap:10px;border-top:1px solid var(--line);padding-top:16px;color:#636a70;font-size:12px;line-height:1.8}.share-notice .icon{width:17px;height:17px;flex-shrink:0;margin-top:2px}.share-file{display:flex;align-items:center;gap:12px;background:#f0f2f3;padding:13px;margin-bottom:20px;min-width:0}.share-file .icon{flex-shrink:0;color:#636a70}.share-file span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650}.folder-picker-path{display:flex;align-items:center;gap:10px;background:#f0f2f3;padding:10px 12px;margin-bottom:13px;font-size:12px}.folder-picker-path .icon-button{height:27px;width:27px}.folder-picker-list{min-height:120px;max-height:250px;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.folder-picker-item{display:flex;align-items:center;gap:11px;width:100%;padding:12px 5px;border:0;border-bottom:1px solid #dfe3e6;background:none;text-align:left;font-size:12px}.folder-picker-item:hover{background:#eef1f3}.folder-picker-item .icon{width:18px;height:18px;color:#4e6b62}.folder-picker-item .icon:last-child{margin-left:auto;width:13px;color:#676e74}.folder-picker-empty{color:var(--muted);text-align:center;font-size:12px;padding:24px 15px}.account-identity{display:flex;align-items:center;gap:14px;padding-bottom:23px;margin-bottom:23px;border-bottom:1px solid var(--line)}.account-identity .avatar{width:46px;height:46px;font-size:22px;background:var(--ink);color:var(--mustard)}.account-identity strong{display:block;font-size:13px}.account-identity span:not(.avatar){color:var(--muted);font-size:12px}.account-section-title{font-size:12px;font-weight:650;margin:0 0 18px}.users-table{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:12px}.users-table td{padding:12px 0;border-bottom:1px solid var(--line)}.users-table td:last-child{text-align:right}.user-sub{font-size:12px;color:var(--muted);display:block}.users-form{border-top:1px solid var(--line);padding-top:21px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.users-form h3{font:600 24px var(--display);margin:0 0 18px}.info-grid{display:grid;grid-template-columns:100px 1fr;gap:14px 15px;margin:0;font-size:12px}.info-grid dt{color:#676e74}.info-grid dd{margin:0;overflow-wrap:anywhere}.info-grid dd .tag{font-size:12px}
/* Independent sharing links. */
.share-lifetime{display:flex;align-items:center;gap:24px;margin-bottom:20px}.share-days-field{width:130px;margin:0;flex-shrink:0}.share-unlimited{display:inline-flex;align-items:center;gap:9px;padding-top:27px;font-size:13px;cursor:pointer}.share-unlimited input{width:16px;height:16px;min-height:0;margin:0;accent-color:var(--focus)}.share-days-field input:disabled{background:#f0f2f3;color:#90979c;cursor:default}.share-recipient-summary{display:flex;flex-direction:column;gap:5px;margin:0 0 20px;overflow-wrap:anywhere}.share-recipient-summary>span{font-size:12px;color:var(--muted)}.share-recipient-summary>strong{font-size:15px;font-weight:500}.share-delete-recipient{font-size:15px;font-weight:600;overflow-wrap:anywhere;margin:0 0 15px}.share-create-footer{justify-content:space-between;gap:10px}.share-create-footer .button-quiet{text-align:left;padding-left:0;justify-content:flex-start}
@media(max-width:650px){.share-lifetime{gap:20px}.share-days-field{width:120px}.share-create-footer{flex-wrap:wrap;justify-content:flex-end}.share-create-footer .button-quiet{margin-right:auto}.share-recipient-summary>strong{font-size:14px}}
/* Transfers stay out of the file canvas. */
.upload-tray{position:fixed;bottom:24px;right:24px;width:340px;max-width:calc(100vw - 32px);z-index:55;background:var(--white);border:1px solid #cfd4d8;box-shadow:7px 8px 24px rgba(35,33,33,.12)}.upload-tray-header{display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:var(--paper);padding:11px 14px}.upload-tray-header strong{font-size:12px;font-weight:600}.upload-tray-header .icon-button{width:25px;height:25px;padding:4px;color:#d0d4d7}.upload-tray-header .icon{width:15px;height:15px}.upload-list{max-height:245px;overflow:auto;padding:0 15px}.upload-item{padding:13px 0;border-bottom:1px solid var(--line)}.upload-item:last-child{border:0}.upload-item-top{display:flex;justify-content:space-between;gap:10px;font-size:12px}.upload-item-top span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:235px}.upload-status{color:#6b7075;white-space:nowrap;font-size:12px}.upload-status.is-error{color:var(--danger)}.upload-progress{height:2px;background:#e7ebed;margin-top:10px}.upload-progress span{height:100%;display:block;background:#3f7461;transition:width .2s;max-width:100%}.upload-error{font-size:12px;color:var(--danger);margin:5px 0 0}.toast-region{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:100;max-width:calc(100vw - 32px);pointer-events:none}.toast{display:flex;align-items:center;gap:11px;padding:13px 19px;background:var(--ink);color:var(--paper);font-size:12px;box-shadow:0 3px 15px #0002;pointer-events:auto;animation:toast-in .18s ease-out;max-width:480px}.toast>.icon{width:17px;height:17px;color:var(--mustard);flex-shrink:0}.toast.is-error{box-shadow:3px 3px 0 var(--coral)}.toast.is-error>.icon{color:var(--coral)}@keyframes toast-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.drop-overlay{position:fixed;inset:12px;background:rgba(238,233,216,.93);z-index:90;border:2px dashed #a39864;display:flex;justify-content:center;align-items:center;pointer-events:none}.drop-card{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:30px}.drop-plus{font:300 95px/1 var(--display);color:#b29b37}.drop-card strong{font:600 43px/1.05 var(--display)}.drop-card>span:last-child{font-size:12px;color:#837962}.sidebar-scrim{display:none}
