/* AI Cloud component plugin: Uploads & Attachments */
/* ===== Upload panel ===== */
.upload-panel{
    position:relative;
    overflow:hidden;
}

.upload-panel::after{
    content:"";
    position:absolute;
    right:-120px;
    bottom:-160px;
    width:360px;
    height:360px;
    border-radius:50%;
    background:radial-gradient(circle,var(--mp-hl-16),transparent 62%);
    pointer-events:none;
}

.upload-panel-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:22px;
}

.upload-panel-header h2{margin:0}

.upload-version{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:7px 10px;
    border-radius:5px;
    border:1px solid var(--mp-fill-10);
    background:var(--mp-fill-045);
    color:var(--muted,var(--mp-ink-file));
    font-size:var(--mp-fs-sm,12px);
    font-weight:var(--mp-fw-heavy,800);
}

.modern-upload-form{
    position:relative;
    z-index:1;
    display:grid;
    gap:18px;
}

.upload-dropzone{
    position:relative;
    min-height:210px;
    border:1px dashed var(--mp-slate-34);
    border-radius:14px;
    background:
        radial-gradient(circle at 20% 20%,var(--mp-hl-08),transparent 26%),
        linear-gradient(180deg,var(--mp-fill-045),var(--mp-fill-025));
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:30px;
    cursor:pointer;
    transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease;
}

.upload-dropzone:hover,
.upload-dropzone.is-dragging{
    border-color:var(--mp-hl-62);
    background:
        radial-gradient(circle at 50% 20%,var(--mp-hl-14),transparent 32%),
        linear-gradient(180deg,var(--mp-hl-07),var(--mp-fill-025));
    box-shadow:0 18px 54px var(--mp-hl-10);
    transform:translateY(-1px);
}

.upload-dropzone.has-file{
    border-style:solid;
    border-color:var(--mp-hl-45);
    background:
        radial-gradient(circle at 50% 20%,var(--mp-hl-16),transparent 32%),
        linear-gradient(180deg,var(--mp-hl-08),var(--mp-fill-03));
}

.upload-dropzone input[type="file"]{
    position:absolute;
    inset:0;
    opacity:0;
    cursor:pointer;
}

.upload-icon{
    width:54px;
    height:54px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--mp-hl-30);
    background:var(--mp-hl-12);
    color:var(--mp-ink-upload);
    font-size:var(--mp-fs-4xl,32px);
    font-weight:var(--mp-fw-black,900);
    line-height:var(--mp-lh-none,1);
    box-shadow:0 14px 38px var(--mp-hl-12);
}

.upload-title{color:var(--text);font-size:var(--mp-fs-2xl,20px);font-weight:var(--mp-fw-black,900);line-height:var(--mp-lh-tight,1.1)}
.upload-subtitle{color:var(--muted,var(--mp-ink-file));font-size:var(--mp-fs-md,14px);font-weight:var(--mp-fw-bold,700)}

.upload-file-name{
    margin-top:8px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:100%;
    min-height:34px;
    padding:8px 12px;
    border-radius:999px;
    border:1px solid var(--mp-fill-10);
    background:var(--mp-row-deep-48);
    color:var(--mp-ink-item);
    font-size:var(--mp-fs-base,13px);
    font-weight:var(--mp-fw-heavy,800);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.upload-dropzone.has-file .upload-file-name{
    border-color:var(--mp-hl-32);
    color:var(--mp-ink-hl-soft);
    background:var(--mp-hl-10);
}



/* Shared task attachment UI for Tasks and Calendar modals. */
.task-file-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--mp-filepill);font-weight:var(--mp-fw-bold,700);font-size:var(--mp-fs-sm,12px);}
.task-attachments-panel{display:grid;gap:12px;border:1px solid var(--mp-slate-24);border-radius:5px;padding:14px;background:linear-gradient(180deg,var(--mp-fill-045),var(--mp-fill-025));}
.task-attachments-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.task-attachment-list{display:grid;gap:8px;}
.task-attachment-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--mp-slate-22);border-radius:5px;background:var(--mp-row-deep);}
.task-attachment-name{font-weight:var(--mp-fw-bold,700);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.task-attachment-actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;}
.task-email-dialog{width:min(980px,94vw);height:min(860px,92vh);display:flex;flex-direction:column;}
.task-email-meta{display:grid;gap:4px;padding:12px 18px;border-bottom:1px solid var(--border-color,#dfe6ed);font-size:var(--mp-fs-base,13px);}
.task-email-frame{width:100%;flex:1;border:0;background:#fff;}
.task-email-inner-files{padding:10px 18px;border-top:1px solid var(--border-color,#dfe6ed);font-size:var(--mp-fs-base,13px);}

/* Shared compact upload/dropzone variant used by task and calendar modals.
   Visual language is inherited from the package installer dropzone above. */
.upload-dropzone-compact{
    min-height:132px;
    border-radius:5px;
    padding:20px 22px;
    gap:8px;
}

.upload-dropzone-compact .upload-icon{
    width:42px;
    height:42px;
    border-radius:5px;
    font-size:var(--mp-fs-3xl,24px);
}

.upload-dropzone-compact .upload-title{font-size:var(--mp-fs-lg,16px);}
.upload-dropzone-compact .upload-subtitle{font-size:var(--mp-fs-base,13px);}
.upload-dropzone-compact .upload-file-name{max-width:min(520px,100%);}
.upload-dropzone-compact.is-dragging{
    border-color:var(--mp-hl-85);
    box-shadow:0 0 0 3px var(--mp-hl-12),0 18px 42px var(--mp-sh-18);
}

.upload-submit-btn{
    justify-self:start;
    appearance:none;
    -webkit-appearance:none;
    min-height:44px;
    padding:13px 22px;
    border-radius:5px;
    border:1px solid var(--mp-hl-25);
    background:linear-gradient(135deg,#00EA5E,#45d65d);
    color:#001108;
    font-size:var(--mp-fs-md,14px);
    font-weight:var(--mp-fw-black,900);
    cursor:pointer;
    box-shadow:0 18px 44px var(--mp-hl-20);
    transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}

.upload-submit-btn:hover:not(:disabled){
    transform:translateY(-1px);
    box-shadow:0 24px 54px var(--mp-hl-26);
}

.upload-submit-btn:disabled{
    opacity:.45;
    cursor:not-allowed;
    filter:saturate(.45);
}

.upload-submit-btn.is-installing{
    opacity:.8;
    pointer-events:none;
}

/* Hide legacy upload text */
.upload-panel p:not(.keep),
.upload-panel .legacy-help,
.upload-panel .upload-help{
    display:none;
}

.task-attachment-actions{align-items:center;}

#task-email-modal.mp-modal.is-open,
#calendar-email-modal.mp-modal.is-open{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    align-items:center!important;
    justify-content:center!important;
}
#task-email-modal .task-email-dialog,
#calendar-email-modal .task-email-dialog{
    position:relative!important;
    z-index:10061!important;
    width:min(980px, calc(100vw - 72px))!important;
    max-width:980px!important;
    height:auto!important;
    max-height:calc(100vh - 72px)!important;
    margin:auto!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    border-radius:8px!important;
}
#task-email-modal .task-email-inner-files,
#calendar-email-modal .task-email-inner-files{
    margin:0 0 12px 0!important;
}
#task-email-modal .task-email-frame,
#calendar-email-modal .task-email-frame{
    width:100%!important;
    min-height:420px!important;
    height:min(64vh, 680px)!important;
    flex:0 1 auto!important;
    border:1px solid var(--mp-fill-12)!important;
    border-radius:8px!important;
    background:#fff!important;
}
@media(max-width:760px){
    #task-email-modal.mp-modal,
    #calendar-email-modal.mp-modal{padding:16px!important;}
    #task-email-modal .task-email-dialog,
    #calendar-email-modal .task-email-dialog{width:calc(100vw - 32px)!important;max-height:calc(100vh - 32px)!important;}
    #task-email-modal .task-email-frame,
    #calendar-email-modal .task-email-frame{min-height:320px!important;height:62vh!important;}
}

/* v1.10.27 attachment preview polish: remove preview frame hairlines and stabilize icon actions. */
.task-email-meta,
.task-email-inner-files{
    border-top:0!important;
    border-bottom:0!important;
}
#task-email-modal .task-email-frame,
#calendar-email-modal .task-email-frame,
.task-email-frame{
    border:0!important;
    outline:0!important;
    border-radius:8px!important;
    display:block!important;
}
.task-attachment-actions{
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:6px!important;
}
.task-attachment-row{
    min-height:56px;
}
.mp-attachment-icon,
.task-attachment-icon,
.task-file-pill-icon{
    flex:0 0 auto;
    width:18px;
    height:18px;
    color:var(--mp-ink-file);
    background-color:currentColor;
    -webkit-mask:var(--mp-icon-file) center/contain no-repeat;
    mask:var(--mp-icon-file) center/contain no-repeat;
}
.task-file-pill-icon{
    width:14px;
    height:14px;
    color:var(--mp-ink-filepill);
}
.task-file-pill{
    gap:5px!important;
    color:var(--mp-ink-item);
    line-height:var(--mp-lh-none,1);
}

/* v1.10.31: shared attachment preview overlay consistency. */
#task-email-modal.mp-modal,
#calendar-email-modal.mp-modal{
    background:var(--mp-scrim-email)!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
}

/* v1.10.33 attachment actions: compact square icon-only controls aligned with system action colors. */
.task-attachment-actions{
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    flex-wrap:nowrap!important;
}





/* v1.0.3 — More compact task attachment dropzones.
   Scoped to task/calendar attachment panels so installer upload panels keep their spacious layout. */
.task-attachments-panel .upload-dropzone,
.task-attachments-panel .upload-dropzone-compact,
#task-modal .upload-dropzone-compact,
#calendar-task-modal .upload-dropzone-compact,
#project-modal .upload-dropzone-compact{
    min-height:74px;
    padding:10px 12px;
    gap:7px;
    border-radius:5px;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    background:
        linear-gradient(180deg,var(--mp-fill-038),var(--mp-fill-022));
}

.task-attachments-panel .upload-dropzone:hover,
.task-attachments-panel .upload-dropzone.is-dragging,
.task-attachments-panel .upload-dropzone-compact:hover,
.task-attachments-panel .upload-dropzone-compact.is-dragging,
#task-modal .upload-dropzone-compact:hover,
#task-modal .upload-dropzone-compact.is-dragging,
#calendar-task-modal .upload-dropzone-compact:hover,
#project-modal .upload-dropzone-compact:hover,
#calendar-task-modal .upload-dropzone-compact.is-dragging,
#project-modal .upload-dropzone-compact.is-dragging{
    transform:none;
    box-shadow:0 0 0 3px var(--mp-hl-08);
    background:
        linear-gradient(180deg,var(--mp-hl-055),var(--mp-fill-024));
}

.task-attachments-panel .upload-icon,
.task-attachments-panel .upload-dropzone-compact .upload-icon,
#task-modal .upload-dropzone-compact .upload-icon,
#calendar-task-modal .upload-dropzone-compact .upload-icon,
#project-modal .upload-dropzone-compact .upload-icon{
    width:34px;
    height:34px;
    min-width:34px;
    border-radius:5px;
    font-size:var(--mp-fs-2xl,20px);
    box-shadow:none;
}

.task-attachments-panel .upload-title,
.task-attachments-panel .upload-dropzone-compact .upload-title,
#task-modal .upload-dropzone-compact .upload-title,
#calendar-task-modal .upload-dropzone-compact .upload-title,
#project-modal .upload-dropzone-compact .upload-title{
    font-size:var(--mp-fs-base,13px);
    line-height:var(--mp-lh-tight,1.1);
    font-weight:var(--mp-fw-black,900);
}

.task-attachments-panel .upload-subtitle,
.task-attachments-panel .upload-dropzone-compact .upload-subtitle,
#task-modal .upload-dropzone-compact .upload-subtitle,
#calendar-task-modal .upload-dropzone-compact .upload-subtitle,
#project-modal .upload-dropzone-compact .upload-subtitle{
    font-size:var(--mp-fs-xs,11px);
    line-height:var(--mp-lh-snug,1.25);
    font-weight:var(--mp-fw-bold,700);
    opacity:.84;
}

.task-attachments-panel .upload-file-name,
.task-attachments-panel .upload-dropzone-compact .upload-file-name,
#task-modal .upload-dropzone-compact .upload-file-name,
#calendar-task-modal .upload-dropzone-compact .upload-file-name,
#project-modal .upload-dropzone-compact .upload-file-name{
    margin-top:0;
    margin-left:auto;
    min-height:26px;
    max-width:min(260px,45%);
    padding:5px 8px;
    font-size:var(--mp-fs-xs,11px);
    flex:0 1 auto;
}

.task-attachments-panel{
    gap:9px;
    padding:10px;
}

.task-attachment-row{
    padding:7px 9px;
}

@media (max-width:700px){
    .task-attachments-panel .upload-dropzone,
    .task-attachments-panel .upload-dropzone-compact,
    #task-modal .upload-dropzone-compact,
    #calendar-task-modal .upload-dropzone-compact,
    #project-modal .upload-dropzone-compact{
        min-height:68px;
        padding:9px 10px;
    }

    .task-attachments-panel .upload-file-name,
    .task-attachments-panel .upload-dropzone-compact .upload-file-name,
    #task-modal .upload-dropzone-compact .upload-file-name,
    #calendar-task-modal .upload-dropzone-compact .upload-file-name,
    #project-modal .upload-dropzone-compact .upload-file-name{
        display:none;
    }
}


/* v1.0.3 — Force compact task attachment dropzone.
   The previous compact layer could be ignored when later/core styles had higher specificity.
   Keep this scoped to task attachment panels and task modals only. */
.task-attachments-panel .modern-upload-form{
    gap:8px!important;
}
.task-attachments-panel .upload-dropzone,
.task-attachments-panel label.upload-dropzone,
#task-modal .task-attachments-panel .upload-dropzone,
#calendar-task-modal .task-attachments-panel .upload-dropzone,
#project-modal .task-attachments-panel .upload-dropzone,
#task-modal .task-attachments-panel label.upload-dropzone,
#calendar-task-modal .task-attachments-panel label.upload-dropzone,
#project-modal .task-attachments-panel label.upload-dropzone{
    min-height:54px!important;
    height:auto!important;
    padding:8px 10px!important;
    gap:8px!important;
    border-radius:5px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:left!important;
    overflow:hidden!important;
    background:linear-gradient(180deg,var(--mp-fill-035),var(--mp-fill-018))!important;
    box-shadow:none!important;
}
.task-attachments-panel .upload-dropzone:hover,
.task-attachments-panel .upload-dropzone.is-dragging,
#task-modal .task-attachments-panel .upload-dropzone:hover,
#calendar-task-modal .task-attachments-panel .upload-dropzone:hover,
#project-modal .task-attachments-panel .upload-dropzone:hover,
#task-modal .task-attachments-panel .upload-dropzone.is-dragging,
#calendar-task-modal .task-attachments-panel .upload-dropzone.is-dragging,
#project-modal .task-attachments-panel .upload-dropzone.is-dragging{
    transform:none!important;
    box-shadow:0 0 0 2px var(--mp-hl-08)!important;
}
.task-attachments-panel .upload-dropzone .upload-icon,
#task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#project-modal .task-attachments-panel .upload-dropzone .upload-icon{
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    border-radius:5px!important;
    font-size:var(--mp-fs-xl,18px) !important;
    box-shadow:none!important;
}
.task-attachments-panel .upload-dropzone .upload-title,
#task-modal .task-attachments-panel .upload-dropzone .upload-title,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-title,
#project-modal .task-attachments-panel .upload-dropzone .upload-title{
    font-size:var(--mp-fs-base,13px) !important;
    line-height:var(--mp-lh-tight,1.1) !important;
    white-space:nowrap!important;
}
.task-attachments-panel .upload-dropzone .upload-subtitle,
#task-modal .task-attachments-panel .upload-dropzone .upload-subtitle,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-subtitle,
#project-modal .task-attachments-panel .upload-dropzone .upload-subtitle{
    font-size:var(--mp-fs-xs,11px) !important;
    line-height:var(--mp-lh-snug,1.25) !important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}
.task-attachments-panel .upload-dropzone .upload-file-name,
#task-modal .task-attachments-panel .upload-dropzone .upload-file-name,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-file-name,
#project-modal .task-attachments-panel .upload-dropzone .upload-file-name{
    margin:0 0 0 auto!important;
    min-height:24px!important;
    max-width:220px!important;
    padding:4px 8px!important;
    font-size:var(--mp-fs-xs,11px) !important;
    flex:0 1 auto!important;
}
.task-attachments-panel .upload-submit-btn,
#task-modal .task-attachments-panel .upload-submit-btn,
#calendar-task-modal .task-attachments-panel .upload-submit-btn,
#project-modal .task-attachments-panel .upload-submit-btn{
    min-height:34px!important;
    padding:8px 14px!important;
    font-size:var(--mp-fs-sm,12px) !important;
}
.task-attachments-panel > p,
.task-attachments-panel .upload-status,
.task-attachments-panel .upload-help{
    margin:0!important;
    font-size:var(--mp-fs-sm,12px) !important;
    line-height:var(--mp-lh-snug,1.25) !important;
}
@media(max-width:700px){
    .task-attachments-panel .upload-dropzone,
    #task-modal .task-attachments-panel .upload-dropzone,
    #calendar-task-modal .task-attachments-panel .upload-dropzone,
    #project-modal .task-attachments-panel .upload-dropzone{
        min-height:50px!important;
    }
    .task-attachments-panel .upload-dropzone .upload-subtitle,
    .task-attachments-panel .upload-dropzone .upload-file-name{
        display:none!important;
    }
}


/* v1.0.4 — Hide redundant task attachment helper/empty copy.
   Keep the section title and compact dropzone; attachment rows still show when files exist. */
.task-attachments-panel .task-attachments-help,
.task-attachments-panel .task-attachments-description,
.task-attachments-panel .task-attachments-empty,
.task-attachments-panel .attachments-help,
.task-attachments-panel .attachments-description,
.task-attachments-panel .attachments-empty,
.task-attachments-panel .attachment-help,
.task-attachments-panel .attachment-description,
.task-attachments-panel .attachment-empty,
.task-attachments-panel .empty-attachments,
.task-attachments-panel .empty-state,
.task-attachments-panel .no-attachments,
#task-modal .task-attachments-panel > p:not(.keep),
#calendar-task-modal .task-attachments-panel > p:not(.keep),
#project-modal .task-attachments-panel > p:not(.keep){
    display:none!important;
}

/* Hide passive upload guidance/status copy in task attachment panels, but keep error feedback visible. */
.task-attachments-panel .upload-help,
.task-attachments-panel .upload-status:not(.is-error):not(.error):not([role="alert"]),
#task-modal .task-attachments-panel .upload-help,
#calendar-task-modal .task-attachments-panel .upload-help,
#project-modal .task-attachments-panel .upload-help{
    display:none!important;
}

/* The "No file selected" pill is only useful after a real file is selected. */
.task-attachments-panel .upload-dropzone:not(.has-file) .upload-file-name,
#task-modal .task-attachments-panel .upload-dropzone:not(.has-file) .upload-file-name,
#calendar-task-modal .task-attachments-panel .upload-dropzone:not(.has-file) .upload-file-name,
#project-modal .task-attachments-panel .upload-dropzone:not(.has-file) .upload-file-name{
    display:none!important;
}


/* Task attachments: remove redundant helper copy in task/calendar modals.
   Keep the section title, compact dropzone, upload action and real attachment rows. */
.task-attachments-panel .task-attachments-head > :not(:first-child){
    display:none !important;
}

.task-attachments-panel .upload-subtitle,
.task-attachments-panel .upload-file-name,
.task-attachments-panel .upload-helper,
.task-attachments-panel .upload-help,
.task-attachments-panel .task-upload-help,
.task-attachments-panel .task-attachments-help,
.task-attachments-panel .task-attachments-description{
    display:none !important;
}

.task-attachments-panel .task-attachment-list > .muted,
.task-attachments-panel .task-attachment-list > .empty,
.task-attachments-panel .task-attachment-list > .empty-state,
.task-attachments-panel #cal_existing_attachments > .muted,
.task-attachments-panel #existing_attachments > .muted,
.task-attachments-panel [id$="existing_attachments"] > .muted{
    display:none !important;
}

.task-attachments-panel .modern-upload-form > p,
.task-attachments-panel .modern-upload-form > .muted,
.task-attachments-panel .modern-upload-form > .form-help,
.task-attachments-panel .modern-upload-form > .upload-status,
.task-attachments-panel .modern-upload-form > .upload-message{
    display:none !important;
}

.task-attachments-panel .upload-dropzone-compact{
    min-height:78px !important;
    padding:12px 18px !important;
    flex-direction:row !important;
    justify-content:flex-start !important;
    align-items:center !important;
    gap:12px !important;
}

.task-attachments-panel .upload-dropzone-compact .upload-icon{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    font-size:var(--mp-fs-2xl,20px) !important;
}

.task-attachments-panel .upload-dropzone-compact .upload-title{
    font-size:var(--mp-fs-md,14px) !important;
}


/* v1.0.6 — Auto-upload attachment flow: hide manual upload row in task modals. */
.task-attachments-panel .upload-submit-btn,
#task-modal .task-attachments-panel .upload-submit-btn,
#calendar-task-modal .task-attachments-panel .upload-submit-btn,
#project-modal .task-attachments-panel .upload-submit-btn,
.task-attachments-panel .modern-upload-form > button[type="submit"],
#task-modal .task-attachments-panel .modern-upload-form > button[type="submit"],
#calendar-task-modal .task-attachments-panel .modern-upload-form > button[type="submit"],
#project-modal .task-attachments-panel .modern-upload-form > button[type="submit"]{
    display:none !important;
}

.task-attachments-panel .modern-upload-form{
    margin-bottom:0 !important;
}

.task-attachments-panel .modern-upload-form.is-auto-uploading .upload-dropzone,
#task-modal .task-attachments-panel .modern-upload-form.is-auto-uploading .upload-dropzone,
#calendar-task-modal .task-attachments-panel .modern-upload-form.is-auto-uploading .upload-dropzone,
#project-modal .task-attachments-panel .modern-upload-form.is-auto-uploading .upload-dropzone{
    opacity:.72 !important;
    pointer-events:none !important;
}

.task-attachments-panel .modern-upload-form.is-auto-uploading .upload-title::after{
    content:'…' !important;
}


/* v1.0.8 — Hide the old manual attachment upload row completely. */
.task-attachment-upload-actions,
#task-modal .task-attachment-upload-actions,
#calendar-task-modal .task-attachment-upload-actions,
#project-modal .task-attachment-upload-actions,
.mp-modal .task-attachment-upload-actions{
    display:none !important;
}

#task_attachment_upload_status,
#cal_attachment_upload_status,
#project_attachment_upload_status{
    display:none !important;
}

/* v1.0.9 — Center compact task/calendar attachment dropzone content. */
.task-attachments-panel .upload-dropzone,
.task-attachments-panel .upload-dropzone-compact,
#task-modal .task-attachments-panel .upload-dropzone,
#task-modal .task-attachments-panel .upload-dropzone-compact,
#calendar-task-modal .task-attachments-panel .upload-dropzone,
#project-modal .task-attachments-panel .upload-dropzone,
#calendar-task-modal .task-attachments-panel .upload-dropzone-compact,
#project-modal .task-attachments-panel .upload-dropzone-compact,
.mp-modal .task-attachments-panel .upload-dropzone,
.mp-modal .task-attachments-panel .upload-dropzone-compact{
    min-height:64px !important;
    padding:10px 14px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    text-align:center !important;
}

.task-attachments-panel .upload-dropzone .upload-icon,
.task-attachments-panel .upload-dropzone-compact .upload-icon,
#task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#task-modal .task-attachments-panel .upload-dropzone-compact .upload-icon,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#project-modal .task-attachments-panel .upload-dropzone .upload-icon,
#calendar-task-modal .task-attachments-panel .upload-dropzone-compact .upload-icon,
#project-modal .task-attachments-panel .upload-dropzone-compact .upload-icon,
.mp-modal .task-attachments-panel .upload-dropzone .upload-icon,
.mp-modal .task-attachments-panel .upload-dropzone-compact .upload-icon{
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    margin:0 auto !important;
    font-size:var(--mp-fs-xl,18px) !important;
    line-height:var(--mp-lh-none,1) !important;
    flex:0 0 30px !important;
}

.task-attachments-panel .upload-dropzone .upload-title,
.task-attachments-panel .upload-dropzone-compact .upload-title,
#task-modal .task-attachments-panel .upload-dropzone .upload-title,
#task-modal .task-attachments-panel .upload-dropzone-compact .upload-title,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-title,
#project-modal .task-attachments-panel .upload-dropzone .upload-title,
#calendar-task-modal .task-attachments-panel .upload-dropzone-compact .upload-title,
#project-modal .task-attachments-panel .upload-dropzone-compact .upload-title,
.mp-modal .task-attachments-panel .upload-dropzone .upload-title,
.mp-modal .task-attachments-panel .upload-dropzone-compact .upload-title{
    width:100% !important;
    margin:0 !important;
    text-align:center !important;
    font-size:var(--mp-fs-base,13px) !important;
    line-height:var(--mp-lh-tight,1.1) !important;
    white-space:normal !important;
}

.task-attachments-panel .upload-dropzone .upload-subtitle,
.task-attachments-panel .upload-dropzone-compact .upload-subtitle,
.task-attachments-panel .upload-dropzone .upload-file-name,
.task-attachments-panel .upload-dropzone-compact .upload-file-name,
.mp-modal .task-attachments-panel .upload-dropzone .upload-subtitle,
.mp-modal .task-attachments-panel .upload-dropzone-compact .upload-subtitle,
.mp-modal .task-attachments-panel .upload-dropzone .upload-file-name,
.mp-modal .task-attachments-panel .upload-dropzone-compact .upload-file-name{
    display:none !important;
}


/* v1.0.10 — Hard-center the real task/calendar attachment dropzones.
   This intentionally comes last to override earlier compact row rules. */
#task_attachment_dropzone,
#cal_attachment_dropzone,
#project_attachment_dropzone,
.task-attachments-panel #task_attachment_dropzone,
.task-attachments-panel #cal_attachment_dropzone,
.task-attachments-panel #project_attachment_dropzone,
#task-modal #task_attachment_dropzone,
#calendar-task-modal #cal_attachment_dropzone,
#project-modal #project_attachment_dropzone,
#task-modal .task-attachments-panel .upload-dropzone,
#calendar-task-modal .task-attachments-panel .upload-dropzone,
#project-modal .task-attachments-panel .upload-dropzone,
.mp-modal .task-attachments-panel .upload-dropzone,
.task-attachments-panel .upload-dropzone,
.task-attachments-panel .upload-dropzone-compact{
    min-height:66px !important;
    padding:10px 14px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    text-align:center !important;
    overflow:hidden !important;
}

#task_attachment_dropzone > *,
#cal_attachment_dropzone > *,
#project_attachment_dropzone > *,
.task-attachments-panel .upload-dropzone > *,
.task-attachments-panel .upload-dropzone-compact > *{
    margin-left:auto !important;
    margin-right:auto !important;
}

#task_attachment_dropzone .upload-icon,
#cal_attachment_dropzone .upload-icon,
#project_attachment_dropzone .upload-icon,
#task-modal #task_attachment_dropzone .upload-icon,
#calendar-task-modal #cal_attachment_dropzone .upload-icon,
#project-modal #project_attachment_dropzone .upload-icon,
#task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#project-modal .task-attachments-panel .upload-dropzone .upload-icon,
.mp-modal .task-attachments-panel .upload-dropzone .upload-icon,
.task-attachments-panel .upload-dropzone .upload-icon,
.task-attachments-panel .upload-dropzone-compact .upload-icon{
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    flex:0 0 30px !important;
    margin:0 auto !important;
    align-self:center !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:var(--mp-fs-xl,18px) !important;
    line-height:var(--mp-lh-none,1) !important;
}

#task_attachment_dropzone .upload-title,
#cal_attachment_dropzone .upload-title,
#project_attachment_dropzone .upload-title,
#task-modal #task_attachment_dropzone .upload-title,
#calendar-task-modal #cal_attachment_dropzone .upload-title,
#project-modal #project_attachment_dropzone .upload-title,
#task-modal .task-attachments-panel .upload-dropzone .upload-title,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-title,
#project-modal .task-attachments-panel .upload-dropzone .upload-title,
.mp-modal .task-attachments-panel .upload-dropzone .upload-title,
.task-attachments-panel .upload-dropzone .upload-title,
.task-attachments-panel .upload-dropzone-compact .upload-title{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    text-align:center !important;
    align-self:center !important;
    font-size:var(--mp-fs-base,13px) !important;
    line-height:var(--mp-lh-tight,1.1) !important;
    white-space:normal !important;
}

#task_attachment_dropzone .upload-subtitle,
#cal_attachment_dropzone .upload-subtitle,
#project_attachment_dropzone .upload-subtitle,
#task_attachment_dropzone .upload-file-name,
#cal_attachment_dropzone .upload-file-name,
#project_attachment_dropzone .upload-file-name,
.task-attachments-panel .upload-dropzone .upload-subtitle,
.task-attachments-panel .upload-dropzone-compact .upload-subtitle,
.task-attachments-panel .upload-dropzone .upload-file-name,
.task-attachments-panel .upload-dropzone-compact .upload-file-name{
    display:none !important;
}


/* v1.0.14 — Canonical task/calendar dropzone alignment + readonly removal.
   Keeps every task attachment dropzone visually identical in Tasks and Calendar. */
.task-attachments-panel[data-can-edit="0"],
.task-attachments-panel.is-readonly{
    gap:8px !important;
}

.task-attachments-panel[data-can-edit="0"] .upload-dropzone,
.task-attachments-panel[data-can-edit="0"] .task-attachment-upload-actions,
.task-attachments-panel.is-readonly .upload-dropzone,
.task-attachments-panel.is-readonly .task-attachment-upload-actions,
#task-modal .task-attachments-panel[data-can-edit="0"] #task_attachment_dropzone,
#calendar-task-modal .task-attachments-panel[data-can-edit="0"] #cal_attachment_dropzone,
#project-modal .task-attachments-panel[data-can-edit="0"] #project_attachment_dropzone,
.mp-modal .task-attachments-panel[data-can-edit="0"] .upload-dropzone{
    display:none !important;
}

#task_attachment_dropzone.upload-dropzone,
#cal_attachment_dropzone.upload-dropzone,
#project_attachment_dropzone.upload-dropzone,
#task-modal .task-attachments-panel .upload-dropzone,
#calendar-task-modal .task-attachments-panel .upload-dropzone,
#project-modal .task-attachments-panel .upload-dropzone,
.mp-modal .task-attachments-panel .upload-dropzone{
    box-sizing:border-box !important;
    width:100% !important;
    min-height:66px !important;
    padding:10px 14px !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    place-items:center !important;
    justify-items:center !important;
    align-items:center !important;
    align-content:center !important;
    gap:7px !important;
    text-align:center !important;
}

#task_attachment_dropzone.upload-dropzone input[type="file"],
#cal_attachment_dropzone.upload-dropzone input[type="file"],
#project_attachment_dropzone.upload-dropzone input[type="file"],
.task-attachments-panel .upload-dropzone input[type="file"]{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
}

#task_attachment_dropzone.upload-dropzone .upload-icon,
#cal_attachment_dropzone.upload-dropzone .upload-icon,
#project_attachment_dropzone.upload-dropzone .upload-icon,
#task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#project-modal .task-attachments-panel .upload-dropzone .upload-icon,
.mp-modal .task-attachments-panel .upload-dropzone .upload-icon{
    grid-column:1 !important;
    justify-self:center !important;
    align-self:center !important;
    margin:0 auto !important;
    transform:none !important;
    position:relative !important;
    left:auto !important;
    right:auto !important;
}

#task_attachment_dropzone.upload-dropzone .upload-title,
#cal_attachment_dropzone.upload-dropzone .upload-title,
#project_attachment_dropzone.upload-dropzone .upload-title,
#task-modal .task-attachments-panel .upload-dropzone .upload-title,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-title,
#project-modal .task-attachments-panel .upload-dropzone .upload-title,
.mp-modal .task-attachments-panel .upload-dropzone .upload-title{
    grid-column:1 !important;
    justify-self:center !important;
    align-self:center !important;
    display:block !important;
    width:auto !important;
    max-width:100% !important;
    margin:0 auto !important;
    text-align:center !important;
}


/* v1.0.16 — Safe final attachment dropzone normalization.
   Important: no global .mp-modal form selectors, no :has(), no broad button hiding.
   Only task attachment panels and the two known task/calendar dropzone ids are affected. */
.task-attachments-panel #task_attachment_dropzone.upload-dropzone,
.task-attachments-panel #cal_attachment_dropzone.upload-dropzone,
.task-attachments-panel #project_attachment_dropzone.upload-dropzone,
#task-modal .task-attachments-panel .upload-dropzone,
#calendar-task-modal .task-attachments-panel .upload-dropzone,
#project-modal .task-attachments-panel .upload-dropzone{
    box-sizing:border-box !important;
    width:100% !important;
    min-height:66px !important;
    height:auto !important;
    padding:10px 14px !important;
    border-radius:5px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    text-align:center !important;
    overflow:hidden !important;
}

.task-attachments-panel #task_attachment_dropzone .upload-dropzone-content,
.task-attachments-panel #cal_attachment_dropzone .upload-dropzone-content,
.task-attachments-panel #project_attachment_dropzone .upload-dropzone-content,
#task-modal .task-attachments-panel .upload-dropzone .upload-dropzone-content,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-dropzone-content,
#project-modal .task-attachments-panel .upload-dropzone .upload-dropzone-content{
    position:relative !important;
    z-index:1 !important;
    width:100% !important;
    max-width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    margin:0 auto !important;
    padding:0 !important;
    text-align:center !important;
    pointer-events:none !important;
}

.task-attachments-panel #task_attachment_dropzone .upload-icon,
.task-attachments-panel #cal_attachment_dropzone .upload-icon,
.task-attachments-panel #project_attachment_dropzone .upload-icon,
#task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-icon,
#project-modal .task-attachments-panel .upload-dropzone .upload-icon{
    position:relative !important;
    inset:auto !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
    float:none !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    align-self:center !important;
    justify-self:center !important;
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    max-width:30px !important;
    flex:0 0 30px !important;
    margin:0 auto !important;
    padding:0 !important;
    font-size:var(--mp-fs-xl,18px) !important;
    line-height:var(--mp-lh-none,1) !important;
}

.task-attachments-panel #task_attachment_dropzone .upload-title,
.task-attachments-panel #cal_attachment_dropzone .upload-title,
.task-attachments-panel #project_attachment_dropzone .upload-title,
#task-modal .task-attachments-panel .upload-dropzone .upload-title,
#calendar-task-modal .task-attachments-panel .upload-dropzone .upload-title,
#project-modal .task-attachments-panel .upload-dropzone .upload-title{
    position:relative !important;
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 auto !important;
    padding:0 !important;
    text-align:center !important;
    align-self:center !important;
    justify-self:center !important;
    white-space:normal !important;
    font-size:var(--mp-fs-base,13px) !important;
    line-height:var(--mp-lh-tight,1.1) !important;
}

.task-attachments-panel #task_attachment_dropzone input[type="file"],
.task-attachments-panel #cal_attachment_dropzone input[type="file"],
.task-attachments-panel #project_attachment_dropzone input[type="file"],
#task-modal .task-attachments-panel .upload-dropzone input[type="file"],
#calendar-task-modal .task-attachments-panel .upload-dropzone input[type="file"],
#project-modal .task-attachments-panel .upload-dropzone input[type="file"]{
    position:absolute !important;
    inset:0 !important;
    z-index:2 !important;
    width:100% !important;
    height:100% !important;
    opacity:0 !important;
    cursor:pointer !important;
}

.task-attachments-panel .upload-subtitle,
.task-attachments-panel .upload-file-name,
.task-attachments-panel .task-attachment-upload-actions,
#task_attachment_upload_status,
#cal_attachment_upload_status,
#project_attachment_upload_status{
    display:none !important;
}

.task-attachments-panel[data-can-edit="0"] .upload-dropzone,
.task-attachments-panel[data-can-edit="0"] .modern-upload-form,
.task-attachments-panel.is-readonly .upload-dropzone,
.task-attachments-panel.is-readonly .modern-upload-form,
.task-attachments-panel.has-disabled-upload .upload-dropzone,
.task-attachments-panel.has-disabled-upload .modern-upload-form{
    display:none !important;
}
