:root{--navy:#07365f;--blue:#126bb4;--pale:#e8f2fc;--bg:#f6f8fc;--ink:#253e5b;--secondary:#7589a3;--border:#dfe7f0;--panel:#fff;--green:#209c6c;--red:#dd4051;--orange:#ed9c21;--shadow:0 3px 14px rgba(37,65,108,.05)}
*{box-sizing:border-box}html{font-size:13px}body{margin:0;background:var(--bg);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);line-height:1.45}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,.btn:disabled{cursor:not-allowed;opacity:.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:none}img{max-width:100%}h1,h2,h3,h4,p{margin-top:0}h1{font-size:24px;letter-spacing:-.5px;margin-bottom:2px}h2{font-size:18px}h3{font-size:14px;margin-bottom:12px}h4{font-size:13px}small,.muted{color:var(--secondary)}.app{min-height:100vh;display:flex}.sidebar{width:196px;flex:none;background:#fff;border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:50;transition:width .18s ease}.brand{height:60px;display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--border);overflow:hidden}.brand-logo{display:flex;align-items:center;flex-shrink:0;width:115px}.brand-logo img{width:115px;height:auto;object-fit:contain}.brand-name{display:none;white-space:nowrap;font-size:13px;color:var(--navy);font-weight:800}.sidebar-toggle{margin-left:auto;font-size:11px}.nav-label{font-size:10px;letter-spacing:1.3px;color:#8da0b9;font-weight:800;margin:21px 14px 10px;white-space:nowrap}.main-nav{padding:0 8px;display:flex;flex-direction:column;gap:4px}.main-nav>a{height:40px;padding:0 13px;border-radius:8px;display:flex;align-items:center;gap:14px;color:#61748e;font-size:13px;font-weight:700;white-space:nowrap}.main-nav>a i{width:16px;text-align:center;font-size:13px}.main-nav>a:hover{background:#f0f5fb}.main-nav>a.selected{background:#e6f1fb;color:var(--navy)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--border);padding:12px 9px}.sidebar-user{display:flex;align-items:center;gap:9px;min-width:0;color:var(--ink)}.sidebar-user>span:last-child{overflow:hidden;white-space:nowrap}.sidebar-user b{font-size:11px;display:block;text-overflow:ellipsis;overflow:hidden}.sidebar-user small{font-size:10px;display:block}.sidebar.collapsed{width:62px}.sidebar.collapsed .brand-logo,.sidebar.collapsed .brand-name,.sidebar.collapsed .nav-label,.sidebar.collapsed .main-nav span,.sidebar.collapsed .sidebar-user>span:last-child{display:none}.sidebar.collapsed .brand{justify-content:center;padding:0}.sidebar.collapsed .sidebar-toggle{margin:0}.sidebar.collapsed .main-nav>a{justify-content:center;padding:0}.sidebar.collapsed .main-nav>a i{font-size:16px}.sidebar.collapsed .sidebar-foot{display:flex;justify-content:center}.workspace{flex:1;min-width:0}.topbar{height:60px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 22px;gap:18px}.global-search{position:relative;width:min(395px,45vw)}.global-search i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9bafc4}.global-search input{background:#f8faff;border:1px solid #dfe7f1;border-radius:7px;width:100%;height:34px;padding:7px 12px 7px 32px;outline:none}.global-search input:focus{border-color:var(--blue);box-shadow:0 0 0 2px #dbeafa}.topbar-right{display:flex;align-items:center;gap:12px}.topbar-right form{margin:0}.icon-btn{border:0;background:transparent;padding:6px 7px;display:inline-flex;align-items:center;justify-content:center;min-width:27px;min-height:27px;border-radius:6px;color:#7086a2}.icon-btn:hover{background:#eff4fa;color:var(--navy)}.mobile-menu{display:none}.notification-holder{position:relative}.notification-btn{position:relative}.count-dot{position:absolute;right:-3px;top:0;background:#d54759;color:#fff;font:10px Arial;border-radius:100px;padding:1px 4px}.notification-menu{position:absolute;top:38px;right:0;background:#fff;z-index:200;width:350px;border:1px solid var(--border);border-radius:9px;box-shadow:0 12px 35px #102e4925;padding:15px;max-height:440px;overflow:auto}.notification-menu>p{margin:12px 0 4px;color:var(--secondary)}.notification-row{display:flex;gap:9px;align-items:center;border-top:1px solid var(--border);padding:10px 0}.notification-row>a{flex:1;font-size:12px}.hidden{display:none!important}.avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;border:2px solid white;font-size:9px;font-weight:800;background:#3169a0;color:white}.avatar-initials{background:#3e79b4}.top-avatar .avatar{width:29px;height:29px}.content{padding:20px 24px 35px;max-width:1900px;margin:0 auto}.page-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;min-height:70px;margin-bottom:15px}.breadcrumb{font-size:11px;color:#90a2b9;margin-bottom:10px}.page-heading p{font-size:12px;color:#899bb2;margin:0}.page-heading-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dce5ee;background:#fff;color:#49617e;border-radius:7px;padding:7px 12px;font-weight:700;min-height:33px;white-space:nowrap}.btn:hover{border-color:#afc8e0;background:#f5faff}.btn.primary{background:#126bb4;color:#fff;border-color:#126bb4}.btn.primary:hover{background:#085795}.btn.danger{border-color:#f1c7cf;color:#c33246;background:#fff7f8}.btn.small{font-size:11px;padding:5px 9px;min-height:28px}.btn.ghost{background:#f6f9fc}.btn.wide{width:100%}.pill-btn{display:inline-flex;gap:0;padding:2px;border:1px solid var(--border);border-radius:7px;background:white}.pill-btn a,.pill-btn button{padding:6px 12px;border:0;background:transparent;border-radius:5px;color:#58708b;font-weight:700}.pill-btn .active{background:#e8f2fc;color:var(--navy)}.tools-row{display:flex;align-items:center;gap:9px;justify-content:space-between;flex-wrap:wrap;margin-bottom:18px}.tools-left,.tools-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.input,.tools-row input,.tools-row select{height:34px;min-width:145px;border:1px solid var(--border);border-radius:7px;padding:7px 10px;color:var(--ink);background:#fff}.tools-row select{min-width:140px}.tools-row input{width:215px}input:focus,textarea:focus,select:focus{outline:none;border-color:#6eaee0;box-shadow:0 0 0 2px #e0effa}.card-panel{background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:18px}.card-panel+.card-panel{margin-top:14px}.notice{padding:12px 14px;border:1px solid var(--border);border-radius:7px;margin-bottom:13px}.notice.error{color:#ae263c;background:#fff1f2;border-color:#fac8d0}.notice.success{color:#236b46;background:#eaf8f1;border-color:#bfe8d1}.notice.info{color:#336287;background:#f0f8ff;border-color:#cce5f5}.empty{color:#a1b0c0;text-align:center;padding:28px 10px;font-size:12px}.section-caption{font-size:11px;color:#8497b0;margin-bottom:10px}.project-grid{display:flex;flex-wrap:wrap;align-content:flex-start;gap:9px}.project-mini{height:58px;width:125px;flex:0 0 125px;border:1px solid #dce5ef;border-radius:8px;background:#fff;padding:8px;display:flex;flex-direction:column;gap:7px;box-shadow:0 1px 3px #213e5808;color:var(--ink)}.project-mini:hover{border-color:#83b6dd;box-shadow:0 4px 12px #214f6d18;transform:translateY(-1px)}.project-mini-head{display:flex;align-items:center;gap:5px;min-width:0}.project-mini-head b{font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-mini-logo{display:inline-flex;width:22px;height:22px;flex:0 0 22px;align-items:center;justify-content:center;border-radius:50%;background:#2a84af;color:#fff;font-size:10px;font-weight:800}.project-mini-logo img{width:100%;height:100%;border-radius:50%;object-fit:cover}.project-mini-sub{display:flex;gap:8px;white-space:nowrap;font-size:10px;color:#7d8da2}.project-mini-sub em{font-style:normal}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:3px;background:#a2b0be}.status-dot.late{background:#ed5361}.status-dot.green{background:var(--green)}.project-list-head{margin-bottom:14px}.section-title{margin-top:24px;margin-bottom:11px;font-size:14px}.project-section{border:1px solid var(--border);border-radius:11px;background:#fff;box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}.project-section-header{min-height:50px;display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}.project-section-header b{font-size:14px}.project-section-header .right{margin-left:auto;display:flex;gap:7px}.project-icon{display:flex;width:27px;height:27px;border-radius:50%;align-items:center;justify-content:center;background:#1a83b0;color:#fff;font-size:11px;font-weight:800;overflow:hidden}.project-icon img{width:100%;height:100%;object-fit:cover}.count-tag{padding:3px 7px;background:#eef4fc;border-radius:5px;font-size:10px;color:#5d7895;font-weight:700}.status-text{color:#8797ab;font-size:11px}.board-columns{display:grid;grid-template-columns:repeat(var(--state-count,4),minmax(180px,1fr));gap:10px;padding:11px;overflow-x:auto}.board-column{min-height:172px;padding:9px 9px 18px;background:#f0f4f9;border:1px solid #e7edf4;border-radius:9px;display:flex;flex-direction:column;gap:9px}.board-column-head{display:flex;align-items:center;gap:7px;color:#33485e;font-size:11px;text-transform:uppercase;font-weight:800;min-height:21px}.board-column-head .count{margin-left:auto;color:#a4b1c0;font-weight:600}.board-slot{min-height:100px;flex:1;display:flex;flex-direction:column;gap:8px}.task-card{min-height:90px;background:white;border:1px solid #dfe6ee;border-radius:7px;box-shadow:0 2px 5px rgba(30,50,80,.06);padding:10px;display:flex;flex-direction:column;justify-content:space-between;gap:12px;cursor:grab;touch-action:pan-y}.task-card:focus-visible,.task-card:hover{outline:1px solid #c4ddec}.task-card:active{cursor:grabbing}.task-card-title{color:#263f5a;line-height:1.35;font-size:12px;font-weight:700;word-break:break-word}.task-card-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center}.avatars{display:flex;padding-left:1px}.avatars>.avatar{margin-left:-5px}.avatars>.avatar:first-child{margin-left:0}.percentage{height:31px;min-width:31px;padding:0 3px;display:inline-flex;align-items:center;justify-content:center;border:3px solid white;box-shadow:0 0 0 1px #e6ecf2;border-radius:100px;font-size:10px;font-weight:900}.percentage.early{background:#d7f8e3;color:#2c9a59}.percentage.ok{background:#d1f3df;color:#138b52}.percentage.warning{background:#fff0ca;color:#ad7209}.percentage.late{background:#ffe3e6;color:#dd2b4a;animation:latePulse 1.5s infinite}.percentage.done{background:#ddf7e9;color:#239d69}@keyframes latePulse{50%{box-shadow:0 0 0 3px #efb9c4}}@media(prefers-reduced-motion:reduce){.percentage.late{animation:none}}.task-card.drag-original{visibility:hidden}.task-drag-ghost{position:fixed;z-index:10000;pointer-events:none;opacity:1!important;filter:none;transform:none;box-shadow:0 14px 38px #25426930;border:1px solid #8ec3ed;cursor:grabbing;user-select:none}.task-drop-placeholder{visibility:hidden;opacity:0!important;flex-shrink:0}.task-card.quick-active{outline:2px solid #126bb4}.quick-panel{position:fixed;right:20px;bottom:20px;width:min(400px,calc(100vw - 40px));background:#fff;border-radius:10px;border:1px solid var(--border);box-shadow:0 13px 40px #20426229;z-index:80;padding:17px}.quick-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.quick-panel h3{margin:0}.quick-panel p{color:#7389a3}.quick-panel .buttons{display:flex;gap:8px;justify-content:flex-end}.board-empty{color:#a3b1c1;text-align:center;padding:31px 4px;font-size:11px}.full-form{width:100%}.form-block{background:#fff;border:1px solid var(--border);border-radius:10px;padding:20px;box-shadow:var(--shadow);margin-bottom:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:14px 20px}.form-grid.three{grid-template-columns:repeat(3,minmax(145px,1fr))}.form-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#3d5670;min-width:0}.form-field input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-field select,.form-field textarea,.form-block textarea{width:100%;background:#fff;border:1px solid #dce5ee;border-radius:7px;padding:9px 10px;min-height:35px;color:#233b55}.form-field textarea{min-height:105px;resize:vertical}.form-field input:disabled,.form-field select:disabled,.form-field textarea:disabled,.rich-editor[contenteditable=false]{background:#f5f7fa;color:#72849a}.form-field small{font-size:10px;font-weight:400}.span-all{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;padding-top:8px}.label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.label-row h3{margin:0}.checkline{display:flex;align-items:center;gap:8px;font-weight:500}.checkline input{width:15px;height:15px}.avatar-big{width:65px;height:65px;object-fit:cover;border-radius:100px;background:#3d86b4;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800}.file-dropzone{min-height:105px;border:1px dashed #b9cbde;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;padding:15px;color:#7790ac;cursor:pointer;background:#fafdff}.file-dropzone i{font-size:20px;color:#7eabc9}.file-dropzone.drag-over{background:#e7f5ff;border:2px dashed #2789ca;color:#126bb4}.file-dropzone small{font-size:10px}.file-dropzone input[type=file]{display:none}.profile-drop{flex:1;min-width:200px}.inline-flex{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tab-nav{display:flex;gap:6px;border-bottom:1px solid var(--border);margin-bottom:18px}.tab-nav button{border:0;background:transparent;padding:10px 16px;color:#70859c;border-bottom:2px solid transparent;font-weight:800}.tab-nav button.active{border-color:var(--blue);color:var(--navy)}.tab-panel{display:none}.tab-panel.active{display:block}.rich-wrap{border:1px solid var(--border);border-radius:9px;overflow:hidden;background:white}.rich-toolbar{background:#f7f9fb;border-bottom:1px solid var(--border);display:flex;gap:3px;padding:6px;flex-wrap:wrap}.rich-toolbar button{padding:6px 9px;border:0;border-radius:5px;background:transparent;color:#657d97}.rich-toolbar button:hover{background:#e6eef7}.rich-editor{min-height:180px;padding:13px;outline:none;background:white;font-weight:400;line-height:1.6;color:#334963;overflow:auto}.rich-editor[contenteditable=true]:focus{box-shadow:inset 0 0 0 1px #a5cde8}.rich-editor img{max-width:min(100%,640px);max-height:380px;object-fit:contain;border-radius:6px;display:block;margin:10px 0}.rich-editor p{margin:0 0 8px}.rich-editor ul{padding-left:25px}.rich-editor a{color:var(--blue)}.rich-editor pre{white-space:pre-wrap}.rich-hint{font-size:11px;color:#8b9fb3;margin-top:8px}.task-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(330px,.75fr);align-items:start;gap:16px}.task-layout .form-block{padding:18px}.file-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:12px}.file-tile{position:relative;border:1px solid #e1e9f1;border-radius:8px;background:#fdfefe;min-height:107px;padding:9px;display:flex;flex-direction:column;gap:5px}.file-tile .preview{width:100%;height:96px;object-fit:cover;border-radius:6px;background:#eef3f9}.file-tile .placeholder-icon{height:75px;display:flex;align-items:center;justify-content:center;background:#f4f7fb;border-radius:6px;font-size:29px;color:#d55460}.file-tile .file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:750}.file-tile small{font-size:10px}.file-tile .file-remove{position:absolute;top:13px;right:12px;background:white;border-radius:100px;box-shadow:0 1px 5px #0002;color:#ca3149}.file-tile a{display:block;min-width:0}.file-tile a:hover .file-name{text-decoration:underline}.history-item{border:1px solid var(--border);border-radius:8px;background:#fff;margin:0 0 9px;overflow:hidden}.history-item summary{padding:12px 13px;display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none}.history-item summary::-webkit-details-marker{display:none}.history-item summary .history-summary{flex:1;min-width:0}.history-item summary .history-summary b{font-size:12px;display:block}.history-item summary .history-summary small{font-size:10px}.history-item .history-detail{border-top:1px solid var(--border);padding:12px 15px;background:#fafcff;word-wrap:break-word}.history-detail .change{display:grid;grid-template-columns:1fr 1fr;gap:8px}.history-detail pre{white-space:pre-wrap;word-break:break-word;border:1px solid #e1eaf5;border-radius:6px;background:#fff;padding:8px;max-height:200px;overflow:auto;font-size:11px;color:#506680}.history-detail .meta{font-size:11px;color:#7c90a8}.works-list{display:flex;flex-direction:column;gap:10px}.work-item{background:#f9fbfe;border:1px solid var(--border);border-radius:8px;padding:12px}.work-top{display:flex;gap:8px;align-items:center;justify-content:space-between}.work-content{font-size:12px;margin-top:7px;overflow-wrap:anywhere}.work-content img{max-width:100%;max-height:250px}.users-table{width:100%;border-collapse:collapse}.users-table th{text-align:left;color:#8496ab;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:10px;border-bottom:1px solid var(--border)}.users-table td{padding:10px;border-bottom:1px solid #ecf0f6;font-size:12px}.users-table tr:hover td{background:#f9fbfd}.users-table .identity{display:flex;align-items:center;gap:9px}.users-table .identity b{font-size:12px}.status-label{display:inline-block;padding:3px 7px;border-radius:6px;background:#e7f4ec;color:#2c875c;font-size:10px;font-weight:800}.status-label.inactive{background:#f4edef;color:#b2576b}.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.permission-group{border:1px solid var(--border);border-radius:9px;overflow:hidden}.permission-group h4{background:#f5f8fd;padding:11px 14px;border-bottom:1px solid var(--border);margin:0}.permission-row{display:flex;align-items:center;gap:9px;padding:8px 13px;font-size:11px;border-bottom:1px solid #f0f2f7;cursor:pointer}.permission-row:last-child{border-bottom:0}.permission-row:hover{background:#fbfdff}.permission-row input{width:15px;height:15px;accent-color:var(--blue)}.permission-row span{flex:1}.permission-row code{color:#9cb0c0;font-size:10px}.permission-row.disabled{opacity:.65;cursor:default}.fixed-save{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:11px 18px;background:#ffffffef;backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:8px;margin-top:12px;box-shadow:0 -4px 24px #203e4b14;z-index:15}.chips{display:flex;flex-wrap:wrap;gap:6px}.user-chip{display:flex;gap:5px;align-items:center;padding:3px 8px 3px 3px;border:1px solid var(--border);border-radius:40px;background:#fff;font-size:10px}.selection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.selection-grid label{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:6px;padding:8px;cursor:pointer;font-size:11px}.selection-grid label:hover{background:#f5faff}.selection-grid input{accent-color:var(--blue)}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px}.report-tile{border:1px solid var(--border);border-radius:10px;background:#fff;padding:17px}.report-tile strong{font-size:29px;display:block;color:#0e4b7a}.report-tile small{text-transform:uppercase;font-weight:800;letter-spacing:.4px}.settings-table{width:100%;border-collapse:collapse}.settings-table td,.settings-table th{padding:10px;border-bottom:1px solid var(--border);text-align:left}.swatch{width:17px;height:17px;border-radius:50%;display:inline-flex;vertical-align:middle;margin-right:5px}.toast-stack{position:fixed;right:19px;bottom:18px;z-index:5000;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:9px;background:#153e62;color:white;border-radius:9px;padding:13px 16px;min-width:210px;box-shadow:0 10px 30px #0f293a36;animation:toastFade .2s ease-out}.toast i{color:#8dddbc}.toast.error{background:#a92c45}.toast.error i{color:white}@keyframes toastFade{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.install-page,.login-page{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;background:#eef4f9;padding:45px 14px}.install-panel,.login-card{width:min(710px,100%);padding:30px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 14px 40px #244b7716}.install-logo{width:150px;height:auto;margin-bottom:11px}.install-panel>p,.login-card>p{color:var(--secondary)}.install-panel .stack{display:flex;flex-direction:column;gap:12px}.install-panel label,.login-card label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700}.install-panel input,.login-card input{width:100%;border:1px solid var(--border);border-radius:7px;padding:10px}.fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.install-panel h3{margin:14px 0 0}.login-page{align-items:center}.login-card{width:380px;padding:36px}.login-card img{width:150px}.login-card h1{margin:15px 0 2px}.login-card label{margin-top:18px}.login-card button{margin-top:23px}.responsive-scroll{max-width:100%;overflow-x:auto}
@media(max-width:1100px){.task-layout{grid-template-columns:1fr}.board-columns{grid-template-columns:repeat(var(--state-count,4),minmax(190px,1fr))}.permission-groups{grid-template-columns:1fr}}@media(max-width:770px){.content{padding:14px}.sidebar{position:fixed;left:-210px;box-shadow:8px 0 30px #0001}.sidebar.mobile-open{left:0}.sidebar.collapsed{width:196px}.sidebar.collapsed .brand-logo,.sidebar.collapsed .brand-name,.sidebar.collapsed .nav-label,.sidebar.collapsed .main-nav span,.sidebar.collapsed .sidebar-user>span:last-child{display:initial}.sidebar.collapsed .main-nav>a{justify-content:initial;padding:0 13px}.mobile-menu{display:inline-flex}.topbar{padding:0 12px}.page-heading{align-items:flex-start}.page-heading h1{font-size:21px}.form-grid,.form-grid.three,.fields-grid{grid-template-columns:1fr}.board-columns{grid-template-columns:repeat(var(--state-count,4),minmax(195px,1fr));overflow-x:auto}.project-section{overflow-x:auto}.project-section-header{min-width:700px}.global-search{width:min(300px,52vw)}.permission-groups{grid-template-columns:1fr}.notification-menu{right:-60px;width:280px}}@media(max-width:420px){.page-heading{flex-direction:column;gap:8px}.content{padding:12px}.tools-row input{width:100%}.topbar-right{gap:3px}.project-section-header{min-width:650px}.file-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tab-nav button{padding:9px 11px}}

/* TaskMonGo 1.1.0: paneles completos, filtros, horas y logotipos */
.project-mini-wrap{position:relative;width:125px;flex:0 0 125px;height:58px}
.project-mini-wrap .project-mini{height:58px;display:flex;width:125px}
.project-mini-wrap.is-editable .project-mini-head{padding-right:18px}
.project-mini-edit{display:inline-flex;align-items:center;justify-content:center;position:absolute;right:5px;top:7px;width:18px;height:18px;border-radius:5px;background:#fff;color:var(--blue);border:1px solid var(--border);font-size:9px;opacity:1;pointer-events:auto;box-shadow:0 1px 4px #0001;z-index:2}
.project-mini-edit:hover,.project-mini-edit:focus-visible{background:var(--pale);border-color:var(--blue);outline-offset:2px}
.project-mini-logo,.project-icon{overflow:hidden}
.project-mini-logo.has-image,.project-icon.has-image{background:#fff;color:inherit}
.project-mini-logo img,.project-icon img{width:100%;height:100%;object-fit:contain;border-radius:50%;background:transparent}
.project-mini-logo.has-image img,.project-icon.has-image img{background:#fff}
.project-logo-preview{width:90px;height:90px;object-fit:contain;border-radius:50%;background:#fff}
#projectLogo{display:flex;align-items:center;justify-content:center;width:90px;height:90px;border-radius:50%;overflow:hidden;background:transparent}
#projectLogo .project-icon{background:transparent;color:var(--blue)}
#projectLogo img{width:100%;height:100%;object-fit:contain;border-radius:50%}
.task-card-bottom{flex-wrap:wrap;row-gap:5px}
.task-metrics{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0}
.task-hours{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border-radius:5px;background:#eff4fa;color:#4f708f;font-size:10px;font-weight:750;padding:5px 6px}
.task-hours-summary{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-top:14px;background:var(--bg);font-size:12px}
.task-page{width:100%;min-width:0}
.task-tabs{display:flex;align-items:stretch;flex-wrap:wrap;gap:5px;margin-bottom:14px;padding:5px;background:var(--panel);border:1px solid var(--border);border-radius:10px}
.task-tab{border:0;background:transparent;color:var(--secondary);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;border-radius:7px;font-size:12px;font-weight:750;white-space:nowrap}
.task-tab:hover{background:var(--bg);color:var(--ink)}
.task-tab.is-active{background:#e6f1fb;color:#07365f;box-shadow:0 1px 3px #133f6515}
.tab-count{background:#ecf1f7;color:#5f7188;border-radius:20px;padding:1px 5px;font-size:10px}
.task-tab-panel[hidden]{display:none!important}
.task-tab-panel .form-block{padding:20px}
.quick-dates{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.quick-dates .btn.selected{background:#e6f1fb;border-color:#75b1e0;color:#0d538b}
/* El modo oscuro se guarda para cada usuario, sin afectar la instalación. */
html[data-theme=dark]{color-scheme:dark;--navy:#e5f2ff;--blue:#79baf1;--pale:#263f57;--bg:#101824;--ink:#e5edf7;--secondary:#a4b4c7;--border:#334358;--panel:#1c2939;--green:#4cc496;--red:#ff7988;--orange:#f8b856;--shadow:0 4px 16px rgba(0,0,0,.17)}
html[data-theme=dark] body{background:var(--bg);color:var(--ink)}
html[data-theme=dark] .sidebar,
html[data-theme=dark] .topbar,
html[data-theme=dark] .card-panel,
html[data-theme=dark] .form-block,
html[data-theme=dark] .project-mini,
html[data-theme=dark] .project-section,
html[data-theme=dark] .quick-panel,
html[data-theme=dark] .notification-menu,
html[data-theme=dark] .history-item,
html[data-theme=dark] .file-tile,
html[data-theme=dark] .work-item,
html[data-theme=dark] .pill-btn,
html[data-theme=dark] .task-tabs,
html[data-theme=dark] .report-tile{background:var(--panel);color:var(--ink);border-color:var(--border)}
html[data-theme=dark] .project-mini-edit{background:var(--panel);border-color:var(--border)}
html[data-theme=dark] .brand{border-color:var(--border)}
html[data-theme=dark] .main-nav>a{color:#b7c5d9}
html[data-theme=dark] .main-nav>a.selected,
html[data-theme=dark] .main-nav>a:hover{background:#294158;color:#ddecfb}
html[data-theme=dark] .sidebar-foot{border-color:var(--border)}
html[data-theme=dark] .sidebar-user{color:var(--ink)}
html[data-theme=dark] .global-search input,
html[data-theme=dark] input:not([type=checkbox]):not([type=radio]):not([type=file]),
html[data-theme=dark] select,
html[data-theme=dark] textarea,
html[data-theme=dark] .input{background:#233246;color:var(--ink);border-color:#40546d}
html[data-theme=dark] input::placeholder,
html[data-theme=dark] textarea::placeholder{color:#93a7be}
html[data-theme=dark] .form-field{color:#cad7e8}
html[data-theme=dark] .form-field input:disabled,
html[data-theme=dark] .form-field select:disabled,
html[data-theme=dark] .form-field textarea:disabled,
html[data-theme=dark] .form-field .input[style]{background:#263243!important;color:#dce7f5}
html[data-theme=dark] .btn{background:#28394c;border-color:#40546a;color:#dce8f7}
html[data-theme=dark] .btn:hover{background:#32485e;border-color:#7598b8;color:#fff}
html[data-theme=dark] .btn.primary{background:#126bb4;border-color:#126bb4;color:#fff}
html[data-theme=dark] .btn.primary:hover{background:#1f81cc}
html[data-theme=dark] .btn.danger{background:#482b37;border-color:#824350;color:#ffabb5}
html[data-theme=dark] .icon-btn{color:#abc1d8}
html[data-theme=dark] .icon-btn:hover{background:#304458;color:#fff}
html[data-theme=dark] .pill-btn .active,
html[data-theme=dark] .task-tab.is-active,
html[data-theme=dark] .quick-dates .btn.selected{background:#294c69;color:#b9ddff;border-color:#47779d}
html[data-theme=dark] .task-tab:hover{background:#26394e;color:#fff}
html[data-theme=dark] .tab-count,
html[data-theme=dark] .count-tag,
html[data-theme=dark] .task-hours,
html[data-theme=dark] .task-hours-summary{background:#26384b;color:#d7e6f5;border-color:var(--border)}
html[data-theme=dark] .board-column{background:#172333;border-color:var(--border)}
html[data-theme=dark] .board-column-head,
html[data-theme=dark] .task-card-title{color:#e2eaf5}
html[data-theme=dark] .task-card,
html[data-theme=dark] .task-drag-ghost{background:#283b50;color:var(--ink);border-color:#4e6580}
html[data-theme=dark] .task-card:hover{outline-color:#6da2cc}
html[data-theme=dark] .percentage{border-color:#283b50;box-shadow:0 0 0 1px #3a5871}
html[data-theme=dark] .percentage.early,
html[data-theme=dark] .percentage.ok{background:#234d41;color:#a5eac5}
html[data-theme=dark] .percentage.warning{background:#5c4725;color:#ffe0a0}
html[data-theme=dark] .percentage.late{background:#642e38;color:#ffc0c7}
html[data-theme=dark] .percentage.done{background:#275b45;color:#acf3cb}
html[data-theme=dark] .avatar{border-color:#293c50}
html[data-theme=dark] .rich-wrap{background:#1d2b3c;border-color:var(--border)}
html[data-theme=dark] .rich-toolbar{background:#263748;border-color:var(--border)}
html[data-theme=dark] .rich-toolbar button{color:#d4e3f2}
html[data-theme=dark] .rich-editor{background:#1e2b3b;color:#e5edf7}
html[data-theme=dark] .rich-editor[contenteditable=false]{background:#253242;color:#bbcada}
html[data-theme=dark] .file-dropzone{background:#223348;border-color:#526780;color:#e3eef8}
html[data-theme=dark] .file-dropzone:hover{background:#293e54}
html[data-theme=dark] .file-tile .placeholder-icon{background:#28394b;color:#e68b9b}
html[data-theme=dark] .file-tile .preview{background:#253446}
html[data-theme=dark] .file-tile .file-remove{background:#3d3140;color:#ff9dac}
html[data-theme=dark] .history-item .history-detail{background:#223146;border-color:var(--border)}
html[data-theme=dark] .history-detail pre{background:#182333;color:#dfeafb;border-color:var(--border)}
html[data-theme=dark] .selection-grid label{background:#223043;border-color:var(--border)}
html[data-theme=dark] .selection-grid label:hover{background:#2b435b}
html[data-theme=dark] .notice.info{background:#203a4b;border-color:#3a6177;color:#badff3}
html[data-theme=dark] .notice.error{background:#432b36;border-color:#774656;color:#ffc4c9}
html[data-theme=dark] .notice.success{background:#234436;border-color:#426e59;color:#b4efcf}
html[data-theme=dark] .notification-row{border-color:var(--border)}
html[data-theme=dark] .toast{background:#253449;color:#f4f8ff;border:1px solid var(--border)}
html[data-theme=dark] .quick-panel p{color:#aec2d8}
html[data-theme=dark] .report-tile strong{color:#9dd1fc}
html[data-theme=dark] a{color:#8fc8fc}
html[data-theme=dark] .btn.primary,
html[data-theme=dark] .btn.primary:hover{color:#fff}
@media(max-width:750px){.task-tab{padding:9px 10px}.task-tabs{gap:2px}.task-metrics{gap:3px}.task-hours{font-size:9px}}

/* Estados ocultos renderizados desde PHP y controles de entrega rapida. */
[hidden],.form-field[hidden],.task-tab-panel[hidden]{display:none!important}

.project-client{max-width:195px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--secondary);background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:3px 7px}
.project-client i{margin-right:3px}

/* V1.1.3: proyecto vertical: logo > nombre > pendientes; boton editar independiente. */
.project-grid{gap:10px}
.project-mini-wrap{width:132px;flex:0 0 132px;height:118px}
.project-mini-wrap .project-mini{width:132px;height:118px;min-height:118px;padding:9px 6px 7px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:4px;text-align:center;overflow:hidden}
.project-mini-wrap .project-mini-logo{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;flex:0 0 44px;font-size:19px;overflow:hidden;border-radius:50%}
.project-mini-wrap .project-mini-logo.has-image{background:#fff!important;color:inherit}
.project-mini-wrap .project-mini-logo img{width:100%;height:100%;object-fit:contain;border-radius:50%;background:#fff}
.project-mini-name{display:block;width:100%;min-width:0;line-height:1.2;font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ink)}
.project-mini-wrap .project-mini-sub{width:100%;justify-content:center;gap:8px;margin-top:0;flex:0 0 auto;line-height:1.15}
.project-mini-wrap .project-mini-sub em{font-size:10px}
.project-mini-wrap.is-editable .project-mini-head{padding-right:0}
.project-mini-wrap .project-mini-edit{right:6px;top:6px;z-index:3}
html[data-theme=dark] .project-mini-name{color:var(--ink)}


/* TaskMonGo 1.1.4: project tiles with larger logo, then name, then pending counters. */
.project-mini-wrap{width:152px;flex:0 0 152px;height:154px}
.project-mini-wrap .project-mini{width:152px;height:154px;min-height:154px;padding:12px 9px 10px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;text-align:center}
.project-mini-wrap .project-mini-logo{display:flex;flex:0 0 66px;width:66px;height:66px;min-width:66px;min-height:66px;align-items:center;justify-content:center;border-radius:50%;font-size:30px;font-weight:800;background:#2482b4;color:white;overflow:hidden}
.project-mini-wrap .project-mini-logo.has-image{background:#fff!important;color:inherit}
.project-mini-wrap .project-mini-logo img{width:100%;height:100%;object-fit:contain;border-radius:50%;background:#fff}
.project-mini-wrap .project-mini-name{display:block;flex:0 0 auto;order:2;width:100%;max-width:100%;min-height:16px;margin:0;font-size:12px;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.project-mini-wrap .project-mini-logo{order:1}
.project-mini-wrap .project-mini-sub{display:flex;order:3;width:100%;justify-content:center;gap:8px;margin-top:auto;white-space:nowrap;line-height:15px}
.project-mini-wrap .project-mini-edit{right:7px;top:7px}
.project-mini-bell{position:absolute;top:7px;left:9px;z-index:3;display:inline-flex;justify-content:center;align-items:center;width:19px;height:20px;color:#dc3049;font-size:15px;pointer-events:none;filter:drop-shadow(0 1px 1px #ffffffaa)}
.project-alert-bell{display:inline-flex;align-items:center;justify-content:center;color:#dc3049;font-size:14px;flex-shrink:0}
.task-bell-label{color:#dc3049;margin:0 3px}
/* A bell on a task stays visible in red; permitted users can also mark it from the Kanban. */
.task-card{position:relative}
.task-card .task-card-bell{position:absolute;top:8px;left:8px;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border:0;border-radius:5px;background:transparent;font-size:15px;padding:0;line-height:1;opacity:1;cursor:pointer}
.task-card .task-card-bell.is-on{color:#dc3049}
.task-card .task-card-bell.is-off{color:#8a9cae;opacity:.05}
.task-card:hover .task-card-bell.is-off,.task-card:focus-within .task-card-bell.is-off{opacity:.85}
.task-card .task-card-bell.readonly{cursor:default;pointer-events:none}
.task-card .task-card-bell:disabled{cursor:wait;opacity:.55}
.task-card .task-card-bell:focus-visible{opacity:1;outline:2px solid var(--blue);outline-offset:2px}
.task-card:has(.task-card-bell) .task-card-title{padding-left:22px}
html[data-theme=dark] .project-mini-wrap .project-mini-logo.has-image,html[data-theme=dark] .project-mini-wrap .project-mini-logo.has-image img{background:#fff!important}
html[data-theme=dark] .project-mini-bell,html[data-theme=dark] .project-alert-bell,html[data-theme=dark] .task-card .task-card-bell.is-on,html[data-theme=dark] .task-bell-label{color:#ff6574}
@media(max-width:700px){.project-mini-wrap{width:145px;flex-basis:145px}.project-mini-wrap .project-mini{width:145px}}


/* TaskMonGo 1.1.5: explicit card layout to prevent cached flex rules from
   putting the project name beside the logo. */
.project-mini-wrap{width:152px;flex:0 0 152px;height:160px}
.project-mini-wrap > .project-mini{
  display:grid!important;grid-template-columns:minmax(0,1fr);
  grid-template-rows:76px minmax(20px,1fr) 19px;
  justify-items:center;align-items:center;
  width:152px;height:160px;min-height:160px;
  padding:12px 9px 9px;gap:5px;overflow:hidden;text-align:center;
}
.project-mini-wrap .project-mini-media{
  display:flex;grid-column:1;grid-row:1;
  width:100%;height:76px;align-items:center;justify-content:center;
}
.project-mini-wrap .project-mini-media > .project-mini-logo{
  display:flex;order:initial;flex:0 0 70px;
  width:70px;height:70px;min-width:70px;min-height:70px;
  align-items:center;justify-content:center;border-radius:50%;
  background:#2482b4;color:white;font-size:31px;font-weight:800;
  overflow:hidden;
}
.project-mini-wrap .project-mini-media > .project-mini-logo.has-image{
  background:#fff!important;color:inherit;
}
.project-mini-wrap .project-mini-media > .project-mini-logo > img{
  display:block;width:100%;height:100%;object-fit:contain;
  border-radius:50%;background:#fff;
}
.project-mini-wrap .project-mini > .project-mini-name{
  display:block;order:initial;grid-row:2;grid-column:1;
  width:100%;min-width:0;margin:0;padding:0;
  align-self:center;text-align:center;font-size:12px;line-height:17px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.project-mini-wrap .project-mini > .project-mini-sub{
  display:flex;order:initial;grid-row:3;grid-column:1;
  align-self:end;justify-content:center;align-items:center;
  width:100%;margin:0;gap:8px;white-space:nowrap;line-height:17px;
}
.project-mini-wrap .project-mini-bell{
  position:absolute;left:7px;top:7px;z-index:8;
  color:#dc3049;font-size:17px;opacity:1;
  pointer-events:none;
}
.project-mini-wrap .project-mini-edit{right:7px;top:7px;z-index:9}
@media(max-width:700px){
  .project-mini-wrap{width:145px;flex-basis:145px}
  .project-mini-wrap > .project-mini{width:145px}
}
/* Keep the flagged-task bell visible at the top-left, even in readonly cards. */
.task-card{position:relative}
.task-card .task-card-bell{top:6px;left:6px;z-index:8}
.task-card .task-card-bell.is-on,
.task-card .task-card-bell.is-on.readonly{color:#dc3049;opacity:1!important}
.task-card .task-card-bell.is-off{opacity:0}
.task-card:hover .task-card-bell.is-off,
.task-card:focus-within .task-card-bell.is-off{opacity:.85}
/* Drag card gets a full-screen, non-interactive top layer. */
body > .task-drag-layer{
  position:fixed!important;inset:0!important;
  z-index:2147483647!important;
  pointer-events:none!important;
  overflow:visible!important;
  isolation:isolate;
}
body > .task-drag-layer > .task-drag-ghost{
  position:fixed!important;z-index:1!important;
  pointer-events:none!important;
  opacity:1!important;visibility:visible!important;
  transform:none!important;filter:none!important;
  flex-shrink:0;box-sizing:border-box;
  cursor:grabbing!important;
  box-shadow:0 18px 48px rgba(12,35,69,.24);
  border:1px solid #71b2e8;
}
body.task-drag-in-progress,
body.task-drag-in-progress *{cursor:grabbing!important}
body.task-drag-in-progress{user-select:none!important}
.task-drop-placeholder{visibility:hidden!important;opacity:0!important;pointer-events:none!important;flex-shrink:0!important}
.task-card{touch-action:none}
html[data-theme=dark] .project-mini-wrap .project-mini-media > .project-mini-logo.has-image,
html[data-theme=dark] .project-mini-wrap .project-mini-media > .project-mini-logo > img{background:#fff!important}
html[data-theme=dark] .task-card .task-card-bell.is-on{color:#ff6574}

/* TaskMonGo 1.1.5: los logos panoramicos se muestran sobre un soporte
   rectangular blanco, sin recortar ni superar la anchura de la tarjeta. */
.project-mini-wrap .project-mini-media > .project-mini-logo.has-image{
  flex:0 1 122px;
  width:min(122px,100%);
  max-width:100%;
  height:72px;
  min-width:0;
  min-height:72px;
  padding:3px;
  border-radius:5px!important;
  background:#fff!important;
  box-shadow:none;
}
.project-mini-wrap .project-mini-media > .project-mini-logo.has-image > img{
  display:block;
  width:100%;height:100%;
  max-width:100%;max-height:100%;
  object-fit:contain;
  border-radius:0!important;
  background:#fff!important;
}
.project-icon.has-image{border-radius:4px;background:#fff}
.project-icon.has-image img{border-radius:0;background:#fff;object-fit:contain}
html[data-theme=dark] .project-mini-wrap .project-mini-media > .project-mini-logo.has-image,
html[data-theme=dark] .project-mini-wrap .project-mini-media > .project-mini-logo.has-image > img{background:#fff!important}

/* TaskMonGo 1.1.6: la campana roja es un indicador visual independiente
   del permiso de edicion y del boton para marcar/desmarcar. */
.task-card .task-card-flag{
  position:absolute;left:8px;top:8px;z-index:10;
  display:flex;align-items:center;justify-content:center;
  width:20px;height:20px;padding:0;
  color:#df273e!important;font-size:17px;line-height:1;
  opacity:1!important;visibility:visible!important;pointer-events:none;
  filter:drop-shadow(0 1px 1px rgba(255,255,255,.8));
}
.task-card[data-campana="1"] .task-card-title{padding-left:24px!important}
.task-card[data-campana="1"] .task-card-bell.is-on{
  z-index:9;opacity:1!important;cursor:pointer;
}
/* El boton conserva el area clicable, pero no duplica la campana roja. */
.task-card[data-campana="1"] .task-card-bell.is-on > i{visibility:hidden}
html[data-theme=dark] .task-card .task-card-flag{color:#ff526c!important}

/* TaskMonGo 1.1.7 — tarjeta de proyecto según diseño aprobado:
   campana / editar en esquinas, logo, nombre en dos líneas, indicadores al pie. */
.project-grid{gap:12px}
.project-mini-wrap{
  position:relative;
  width:212px;
  flex:0 0 212px;
  height:178px;
}
.project-mini-wrap > .project-mini{
  display:grid!important;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:65px minmax(0,1fr) 18px;
  justify-items:center;
  align-items:stretch;
  width:212px;
  height:178px;
  min-height:178px;
  padding:12px 13px 12px;
  gap:5px;
  border-radius:11px;
  overflow:hidden;
  text-align:center;
}
.project-mini-wrap .project-mini-media{
  grid-column:1;
  grid-row:1;
  width:100%;
  height:65px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.project-mini-wrap .project-mini-media > .project-mini-logo:not(.has-image){
  width:65px;
  height:65px;
  min-width:65px;
  min-height:65px;
  flex:0 0 65px;
  border-radius:50%;
  font-size:28px;
  background:#2482b4;
  color:#fff;
}
.project-mini-wrap .project-mini-media > .project-mini-logo.has-image{
  width:160px;
  max-width:100%;
  height:61px;
  min-width:0;
  min-height:61px;
  flex:0 1 160px;
  padding:3px 5px;
  background:#fff!important;
  border-radius:0!important;
  box-shadow:none;
}
.project-mini-wrap .project-mini-media > .project-mini-logo.has-image > img{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  border-radius:0!important;
  object-fit:contain;
  background:#fff!important;
}
.project-mini-wrap .project-mini > .project-mini-name{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  grid-row:2;
  grid-column:1;
  justify-self:center;
  align-self:start;
  width:min(100%,160px);
  max-width:160px;
  max-height:42px;
  margin:0;
  padding:0 5px;
  white-space:normal;
  overflow:hidden;
  overflow-wrap:anywhere;
  text-overflow:ellipsis;
  text-align:center;
  color:#101923;
  font-size:16px;
  font-weight:800;
  line-height:21px;
}
.project-mini-wrap .project-mini > .project-mini-sub{
  grid-row:3;
  grid-column:1;
  width:100%;
  justify-content:center;
  align-items:center;
  align-self:end;
  gap:12px;
  margin:0;
  white-space:nowrap;
  line-height:18px;
}
.project-mini-wrap .project-mini-sub em{font-size:11px}
.project-mini-wrap .project-mini-bell{
  top:13px;
  left:15px;
  z-index:8;
  width:22px;
  height:22px;
  font-size:17px;
  color:#df3049;
  opacity:1;
}
.project-mini-wrap .project-mini-edit{
  top:12px;
  right:15px;
  z-index:9;
  width:25px;
  height:25px;
  border-radius:7px;
}
html[data-theme=dark] .project-mini-wrap .project-mini > .project-mini-name{color:var(--ink)}
html[data-theme=dark] .project-mini-wrap .project-mini-media > .project-mini-logo.has-image,
html[data-theme=dark] .project-mini-wrap .project-mini-media > .project-mini-logo.has-image > img{background:#fff!important}
@media(max-width:700px){
  .project-mini-wrap{width:212px;flex:0 0 212px;height:178px}
  .project-mini-wrap > .project-mini{width:212px;height:178px;min-height:178px}
}


/* TaskMonGo 1.1.8 — filas HTML estructuradas como divs independientes.
   Evita que el nombre del proyecto se sitúe a un lado del logotipo. */
.project-mini-wrap > a.project-mini{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:65px minmax(0,1fr) 18px!important;
  grid-template-areas:"logo" "nombre" "indicadores";
  justify-items:center;
  align-items:stretch;
}
.project-mini-wrap > a.project-mini > div.project-mini-media{
  grid-area:logo!important;
  grid-row:1!important;
  display:flex!important;
  width:100%;height:65px;
  justify-content:center;align-items:center;
}
.project-mini-wrap > a.project-mini > div.project-mini-name{
  grid-area:nombre!important;
  grid-row:2!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  align-self:start!important;
  min-height:0;
  max-height:42px;
  white-space:normal!important;
  overflow:hidden;
  text-align:center;
  font-size:16px;
  font-weight:800;
  line-height:21px;
}
.project-mini-wrap > a.project-mini > div.project-mini-sub{
  grid-area:indicadores!important;
  grid-row:3!important;
  display:flex!important;
  align-self:end!important;
  justify-content:center;
  align-items:center;
}

/* TaskMonGo V1.1.9: zoom global de tarjetas (solo proyectos). */
.project-zoom-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:0 0 12px}
.project-zoom-label{display:inline-flex;gap:7px;align-items:center;color:var(--secondary);font-weight:700;font-size:12px}
.project-zoom-options{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}
.project-zoom-button{background:transparent;color:var(--secondary);padding:6px 10px;border:0;border-radius:6px;font-weight:700;min-width:43px;transition:background-color .13s ease,color .13s ease}
.project-zoom-button:hover{background:var(--pale);color:var(--blue)}
.project-zoom-button.is-active{background:var(--pale);color:var(--navy)}
.project-zoom-button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.project-zoom-button:disabled{cursor:wait;opacity:.8}
.project-zoom-bar small{font-size:11px}
html[data-theme=dark] .project-zoom-button.is-active{background:#294c69;color:#cce9ff}
/* La rejilla conserva sus dimensiones originales de 212 x 178 a 100%;
   zoom reescala tanto las tarjetas como los espacios de forma coherente. */
#projectGrid{transform-origin:top left;align-content:flex-start}
/* El usuario solo cambia la campana desde la ficha de tarea: en Kanban es informativa. */
.task-card .task-card-flag{pointer-events:none;cursor:default}
/* Parpadea unicamente el icono rojo; nunca desaparece la tarjeta. */
@keyframes tm-bell-blink{0%,38%,100%{opacity:1}58%,76%{opacity:.18}}
.project-mini-bell i,.task-card-flag i,.project-alert-bell i{animation:tm-bell-blink 1.5s ease-in-out infinite;display:inline-block}
@media(prefers-reduced-motion:reduce){
 .project-mini-bell i,.task-card-flag i,.project-alert-bell i{animation:none!important;opacity:1!important}
}
@media(max-width:650px){.project-zoom-bar{gap:7px}.project-zoom-options{gap:1px}.project-zoom-button{padding:6px 7px;min-width:39px}}


/* TaskMonGo V1.1.10 — tarjeta compacta sin filas vacías.
   El alto depende de las líneas reales del nombre: sin huecos artificiales. */
.project-grid{align-items:flex-start}
.project-mini-wrap{
  height:auto!important;
  align-self:flex-start;
}
.project-mini-wrap > a.project-mini{
  box-sizing:border-box;
  height:auto!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:48px max-content 18px!important;
  grid-template-areas:"logo" "nombre" "indicadores";
  gap:4px!important;
  padding:10px 12px 9px!important;
  justify-items:center;
  align-items:start;
}
.project-mini-wrap > a.project-mini > div.project-mini-media{
  grid-area:logo!important;
  grid-row:1!important;
  height:48px!important;
  min-height:0!important;
  display:flex!important;
  justify-content:center;
  align-items:center;
}
.project-mini-wrap .project-mini-media > .project-mini-logo:not(.has-image){
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  flex:0 0 48px!important;
  font-size:23px;
}
.project-mini-wrap .project-mini-media > .project-mini-logo.has-image{
  height:48px!important;
  min-height:0!important;
  max-height:48px!important;
  width:140px;
  max-width:100%;
  flex:0 1 140px;
  padding:0 4px!important;
  border-radius:0!important;
  background:#fff!important;
}
.project-mini-wrap .project-mini-media > .project-mini-logo.has-image > img{
  object-fit:contain;
  max-height:100%;
  background:#fff!important;
}
.project-mini-wrap > a.project-mini > div.project-mini-name{
  grid-area:nombre!important;
  grid-row:2!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  width:100%;
  max-height:42px;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0 3px!important;
  line-height:21px;
  text-align:center;
  align-self:start!important;
}
.project-mini-wrap > a.project-mini > div.project-mini-sub{
  grid-area:indicadores!important;
  grid-row:3!important;
  display:flex!important;
  align-items:center;
  align-self:start!important;
  justify-content:center;
  height:18px;
  margin:0!important;
  padding:0!important;
}
/* Parpadeo claro y visible, tanto en proyectos como en tareas.
   La señal permanece roja y se atenúa periódicamente. */
@keyframes tm-bell-flash{
  0%,38%,100%{opacity:1}
  50%,82%{opacity:.12}
}
.project-mini-wrap > .project-mini-bell,
.task-card > .task-card-flag,
.project-section-header > .project-alert-bell:not(.hidden){
  animation:tm-bell-flash 1.2s linear infinite!important;
  will-change:opacity;
}
/* Se anima el contenedor una sola vez para evitar dobles animaciones. */
.project-mini-bell i,.task-card-flag i,.project-alert-bell i{
  animation:none!important;
}
@media(prefers-reduced-motion:reduce){
  .project-mini-wrap > .project-mini-bell,
  .task-card > .task-card-flag,
  .project-section-header > .project-alert-bell{
    animation:none!important;
    opacity:1!important;
    will-change:auto;
  }
}
@media(max-width:700px){
  .project-mini-wrap{height:auto!important}
  .project-mini-wrap > a.project-mini{height:auto!important;min-height:0!important}
}

/* V1.1.13: reducir el relleno de las tarjetas, sin alterar su contenido ni zoom. */
.project-mini-wrap > a.project-mini{padding:7px 8px 6px!important}

/* V1.1.15 · Imágenes insertadas en la definición de la tarea */
.rich-toolbar .rich-image-button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #c5d9eb;background:#eaf3fb;color:#126bb4;font-weight:700;border-radius:6px;margin-left:5px}
.rich-toolbar .rich-image-button:hover{background:#dceeff;border-color:#8fbee0}
.rich-editor img.definition-image-pending{outline:2px dashed #7aa9d1;outline-offset:2px;opacity:.85}
html[data-theme=dark] .rich-toolbar .rich-image-button{background:#29445b;color:#badeff;border-color:#507792}
html[data-theme=dark] .rich-toolbar .rich-image-button:hover{background:#35546e}

/* V1.1.16: adjuntos de la definición de tareas, con previsualización y cola de alta. */
.definition-files-section{margin-top:16px;padding:12px 0 2px;border-top:1px solid var(--border)}
.definition-files-section .label-row{align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.definition-files-section .label-row h3{margin:0}
.definition-files-section .attachments .file-list:empty{display:none}
.definition-files-section .file-tile .definition-file-pending-label{color:#936321;font-weight:700}
html[data-theme=dark] .definition-files-section .file-tile .definition-file-pending-label{color:#f8ce89}
