:root{--primary:#18B7B1;--primary-dark:#0F8F8B;--primary-active:#0D7B78;--primary-ink:#0F8581;--primary-link:#0D6F6C;--primary-rgb:24,183,177;--primary-soft:#E8F8F6;--primary-muted:#DDF5F2;--primary-light:#68D9D2;--primary-accent:#C8F169;--bs-primary:var(--primary);--bs-primary-rgb:var(--primary-rgb);--bs-link-color:var(--primary-ink);--bs-link-hover-color:var(--primary-link);--ink:#17212b;--muted:#6d7885;--line:#e5e9ed;--canvas:#f5f7f9;--sidebar:248px;--radius:14px;--shadow:0 8px 30px rgba(28,45,61,.07)}
.form-check-input:focus{border-color:var(--primary);box-shadow:0 0 0 .25rem rgba(var(--primary-rgb),.2)}.form-check-input:checked,.form-check-input[type=checkbox]:indeterminate{background-color:var(--primary);border-color:var(--primary)}.dropdown-item.active,.dropdown-item:active{background-color:var(--primary)}.text-primary{color:rgba(var(--primary-rgb),var(--bs-text-opacity,1))!important}.bg-primary{background-color:rgba(var(--primary-rgb),var(--bs-bg-opacity,1))!important}.border-primary{border-color:rgba(var(--primary-rgb),var(--bs-border-opacity,1))!important}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--canvas);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px}.min-w-0{min-width:0}a{color:var(--primary);text-decoration:none}.btn{border-radius:9px;font-weight:650;padding:.65rem 1rem}.btn-sm{padding:.42rem .72rem}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--primary-dark);--bs-btn-hover-border-color:var(--primary-dark);--bs-btn-focus-shadow-rgb:var(--primary-rgb);--bs-btn-active-color:#fff;--bs-btn-active-bg:var(--primary-active);--bs-btn-active-border-color:var(--primary-active);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:var(--primary);--bs-btn-disabled-border-color:var(--primary)}.btn-light{--bs-btn-bg:#f2f4f6;--bs-btn-border-color:#f2f4f6}.form-control,.form-select{border-color:#dce1e6;border-radius:9px;padding:.7rem .85rem}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(var(--primary-rgb),.14)}.form-label{font-weight:650;font-size:.88rem}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:800;color:#8a949e}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fff;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;z-index:1040}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:1.08rem;font-weight:800}.sidebar>.brand{padding:0 10px;margin-bottom:36px}.brand-mark{position:relative;display:grid;place-items:center;width:34px;height:34px;color:#fff;background:var(--primary);border-radius:10px;box-shadow:0 5px 14px rgba(var(--primary-rgb),.28)}.sidebar .nav-link{display:flex;gap:12px;align-items:center;color:#66717d;border-radius:9px;padding:11px 12px;font-weight:650}.sidebar .nav-link span{width:20px;text-align:center;font-size:1.1rem}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:var(--primary-soft);color:var(--primary-ink)}.sidebar-user{border-top:1px solid var(--line);padding:18px 6px 0;display:flex;align-items:center;gap:10px}.sidebar-user small{color:var(--muted)}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--primary-muted);color:var(--primary-ink);font-weight:800;flex:none}.avatar-sm{width:32px;height:32px}.btn-icon{border:0;background:transparent;padding:.35rem;color:#687581}.main-content{margin-left:var(--sidebar);min-height:100vh;padding:38px 42px 60px}.mobile-header,.sidebar-backdrop{display:none}.page-heading,.detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.page-heading h1,.detail-heading h1{font-size:2rem;line-height:1.2;margin:.3rem 0 .35rem;font-weight:780;letter-spacing:-.025em}.page-heading p,.detail-heading p{color:var(--muted);margin:0}.heading-actions{display:flex;gap:10px;align-items:center}.heading-actions .form-select{min-width:220px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 1px 2px rgba(22,34,46,.02)}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.panel-header h2,.panel>h2{font-size:1.15rem;margin:.25rem 0 0;font-weight:750}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px;display:flex;align-items:center;gap:15px;color:var(--ink);transition:.2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-card small{display:block;color:var(--muted);margin-bottom:2px}.stat-card strong{display:block;font-size:1.45rem}.stat-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.25rem}.stat-icon.blue{color:#168cba;background:#e4f6fc}.stat-icon.amber{color:#bd7b00;background:#fff2d4}.stat-icon.purple{color:#7655c7;background:#f0ebff}.stat-icon.green{color:#26915c;background:#e5f8ee}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);gap:24px}.task-list{margin:0 -10px}.task-row{display:flex;align-items:center;gap:13px;padding:13px 10px;border-radius:10px;color:var(--ink)}.task-row:hover{background:#f7f9fa}.task-row small,.time-mini-list small{color:var(--muted)}.urgency-dot{width:9px;height:9px;border-radius:50%;flex:none}.urgency-low{--urgency:#4aaf78}.urgency-medium{--urgency:#e5a325}.urgency-high{--urgency:#e45858}.urgency-dot{background:var(--urgency)}.status-pill,.urgency-badge,.billing-badge{display:inline-flex;align-items:center;border-radius:100px;padding:5px 9px;font-size:.72rem;font-weight:750;white-space:nowrap}.status-requested{background:#e8f6fc;color:#177fa8}.status-in_progress{background:#fff2d8;color:#9b6706}.status-review{background:#eee9ff;color:#6849ae}.status-completed,.status-active{background:#e4f7ed;color:#228052}.status-archived{background:#edf0f2;color:#68737e}.urgency-badge{background:color-mix(in srgb,var(--urgency) 13%,white);color:color-mix(in srgb,var(--urgency) 80%,black)}.billing-badge.billed{background:#e4f7ed;color:#228052}.billing-badge.unbilled{background:#fff0ea;color:#b15332}.time-mini-list>a{display:flex;gap:12px;align-items:center;color:var(--ink);padding:9px 0;border-bottom:1px solid #edf0f2}.time-mini-list>a:last-child{border:0}.date-tile{width:42px;height:45px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f1f5f7;border-radius:9px;font-weight:800}.date-tile small{font-size:.55rem}.empty-state{text-align:center;padding:58px 24px;color:var(--muted)}.empty-state>span{width:50px;height:50px;display:grid;place-items:center;margin:0 auto 14px;border-radius:14px;background:#ebf7fb;color:var(--primary);font-size:1.4rem}.empty-state.compact{padding:28px}.empty-state p:last-child{margin-bottom:0}.table-panel{padding:0;overflow:hidden}.table-panel .table-responsive{padding:8px 20px 16px}.table>:not(caption)>*>*{padding:1rem .75rem;border-bottom-color:#edf0f2}.table thead th{text-transform:uppercase;letter-spacing:.06em;font-size:.69rem;color:#89939d}.form-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);align-items:start;gap:24px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.back-link{display:inline-block;color:var(--muted);font-weight:650;font-size:.88rem;margin-bottom:7px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.project-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;min-height:270px}.project-top{display:flex;justify-content:space-between;align-items:center}.project-monogram,.mini-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#e5f6fc;color:#1688b5;font-weight:800}.project-card h2{font-size:1.18rem;margin:18px 0 2px}.project-card>p{color:var(--muted)}.project-card .client-name{font-size:.82rem;color:var(--primary);font-weight:650;margin-bottom:12px}.project-meta{display:flex;gap:20px;padding:15px 0;margin-top:auto;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.project-meta b{display:block;color:var(--ink);font-size:.95rem}.project-actions{display:flex;gap:8px;margin-top:14px}.kanban{display:grid;grid-template-columns:repeat(4,minmax(270px,1fr));gap:16px;align-items:start;overflow-x:auto;padding-bottom:16px}.kanban-column{background:#edf1f4;border-radius:14px;padding:12px;min-height:520px}.kanban-column>header{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 13px}.kanban-column>header>div{display:flex;align-items:center;gap:8px}.kanban-column h2{font-size:.88rem;font-weight:780;margin:0}.column-dot{width:8px;height:8px;border-radius:50%;background:#7e8993}.column-requested .column-dot{background:#2EAADC}.column-in_progress .column-dot{background:#e9a429}.column-review .column-dot{background:#7857c7}.column-completed .column-dot{background:#37a36b}.kanban-column .count{font-size:.7rem;color:#7b8791;background:#fff;padding:2px 7px;border-radius:20px}.kanban-list{min-height:460px}.task-card{background:#fff;border:1px solid #e1e5e8;border-radius:11px;padding:14px;margin-bottom:10px;box-shadow:0 1px 2px rgba(22,34,46,.03);cursor:grab}.task-card:active{cursor:grabbing}.task-card-top{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:10px}.task-card-link{display:block;color:var(--ink)}.task-card h3{font-size:.92rem;line-height:1.35;margin:0 0 7px;font-weight:720}.task-card p{font-size:.79rem;line-height:1.45;color:var(--muted);margin:0 0 15px}.task-card-project{display:flex;align-items:center;gap:9px;font-size:.77rem;font-weight:650;border-top:1px solid #edf0f2;padding-top:12px}.task-card-project small{display:block;color:var(--muted);font-weight:450}.mini-avatar{width:29px;height:29px;border-radius:8px;font-size:.7rem;flex:none}.task-card-footer{display:flex;justify-content:space-between;gap:8px;font-size:.7rem;color:#78838e;margin-top:12px}.task-card.sortable-ghost{opacity:.35}.task-card.sortable-drag{transform:rotate(1deg);box-shadow:var(--shadow)}.column-empty{display:none;text-align:center;border:1px dashed #cdd4d9;border-radius:10px;color:#9aa3aa;padding:20px;font-size:.8rem}.kanban-list:empty .column-empty{display:block}.modal-content{border:0;border-radius:16px;box-shadow:0 24px 70px rgba(25,39,52,.22)}.modal-header,.modal-footer{border-color:var(--line);padding:20px 22px}.modal-body{padding:22px}.modal-title{font-size:1.25rem;font-weight:760;margin-top:3px}.detail-heading h1{margin-top:12px}.task-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.72fr);gap:24px;align-items:start}.detail-main,.detail-side{display:flex;flex-direction:column;gap:24px}.description-text{font-size:.98rem;line-height:1.7;min-height:80px}.detail-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid var(--line);margin-top:26px;padding-top:18px}.detail-facts small{display:block;color:var(--muted);font-size:.74rem;margin-bottom:4px}.status-actions{display:flex;flex-direction:column;gap:8px}.status-action{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 12px;text-align:left;color:#66727d;font-weight:650}.status-action span{width:10px;height:10px;border-radius:50%;border:2px solid #b7c0c7}.status-action:hover,.status-action.active{background:#eaf7fc;border-color:#b9e4f4;color:#1487b4}.status-action.active span{border-color:var(--primary);background:var(--primary);box-shadow:0 0 0 3px #d5f0fa}.status-action:disabled{opacity:.55}.billing-panel p{color:var(--muted);font-size:.84rem}.billing-panel small{display:block;color:var(--muted);text-align:center;margin-top:12px}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:5px;top:7px;bottom:10px;width:1px;background:#dfe4e8}.timeline>div{display:flex;gap:13px;position:relative;margin-bottom:18px}.timeline>div>span{width:11px;height:11px;border:2px solid var(--primary);border-radius:50%;background:#fff;flex:none;margin-top:4px}.timeline p{font-size:.82rem;line-height:1.4;margin:0}.timeline small{display:block;color:var(--muted);margin-top:3px}.progress-track{height:8px;background:#e8ecef;border-radius:20px;margin:4px 0 16px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--primary);border-radius:20px}.full-page-error{max-width:600px;margin:12vh auto}.auth-shell{background:#fff}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-visual{position:relative;overflow:hidden;background:linear-gradient(145deg,var(--primary-dark),var(--primary) 55%,var(--primary-light));color:#fff;padding:8vw}.login-visual:before,.login-visual:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.1)}.login-visual:before{width:420px;height:420px;right:-150px;top:-100px}.login-visual:after{width:300px;height:300px;left:-130px;bottom:-130px}.login-visual-content{position:relative;z-index:1;max-width:630px}.login-visual .eyebrow{color:rgba(255,255,255,.75)}.login-visual h1{font-size:clamp(2.7rem,5vw,5rem);line-height:1.02;letter-spacing:-.05em;margin:20px 0 24px}.login-visual p{font-size:1.14rem;color:rgba(255,255,255,.83);max-width:500px}.visual-board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:70px;padding:15px;border:1px solid rgba(255,255,255,.23);background:rgba(255,255,255,.12);backdrop-filter:blur(10px);border-radius:16px;transform:rotate(-2deg)}.visual-board>div{background:rgba(255,255,255,.16);padding:12px;border-radius:10px}.visual-board small{display:block;font-weight:700;margin-bottom:10px}.visual-board span{display:block;height:46px;background:rgba(255,255,255,.8);border-radius:7px;margin-top:7px}.visual-board span.active{border-left:4px solid var(--primary-accent)}.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:min(420px,100%)}.login-card h2{font-size:2rem;font-weight:780}.auth-alert{position:fixed;z-index:10;top:20px;left:50%;transform:translateX(-50%);max-width:460px;width:calc(100% - 30px)}
@media(max-width:1199px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.project-grid{grid-template-columns:repeat(2,1fr)}.kanban{grid-template-columns:repeat(4,285px)}.task-detail-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.7fr)}}
@media(max-width:991px){:root{--sidebar:270px}.sidebar{transform:translateX(-100%);transition:transform .25s ease;box-shadow:10px 0 40px rgba(20,36,48,.12)}.sidebar.open{transform:none}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,28,38,.36);z-index:1030;opacity:0;visibility:hidden;transition:.2s}.sidebar-backdrop.open{opacity:1;visibility:visible}.mobile-header{position:sticky;top:0;z-index:1020;height:64px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);padding:0 18px}.main-content{margin-left:0;padding:28px 22px 50px}.task-detail-grid{grid-template-columns:1fr}.detail-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-panel{min-height:100vh}.form-layout{grid-template-columns:1fr}}
@media(max-width:767px){.main-content{padding:22px 15px 40px}.page-heading,.detail-heading{flex-direction:column;align-items:stretch;margin-bottom:22px}.page-heading h1,.detail-heading h1{font-size:1.65rem}.page-heading>.btn,.heading-actions>.btn{width:100%}.heading-actions{align-items:stretch;flex-direction:column}.heading-actions .form-select{min-width:0}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px;gap:10px}.stat-icon{width:39px;height:39px}.stat-card strong{font-size:1.12rem}.panel{padding:18px}.project-grid{grid-template-columns:1fr}.kanban{margin-left:-15px;margin-right:-15px;padding:0 15px 18px;scroll-snap-type:x proximity}.kanban-column{width:82vw;min-width:82vw;scroll-snap-align:start;min-height:460px}.kanban-list{min-height:400px}.board-heading p{display:none}.detail-side{grid-template-columns:1fr}.detail-facts{grid-template-columns:1fr 1fr}.table{min-width:600px}.login-panel{padding:25px}.form-layout{gap:16px}}
@media(max-width:420px){.stats-grid{grid-template-columns:1fr}.detail-facts{grid-template-columns:1fr}.project-meta{gap:12px}.status-pill{font-size:.66rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Fluoppo iconography and activity interactions */
.btn .bi{margin-right:.28rem}.btn-icon .bi{margin:0}.sidebar .nav-link i{width:20px;text-align:center;font-size:1.05rem}.task-card{cursor:grab}.task-card:active{cursor:grabbing}.task-badges{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.task-open-link{display:flex;align-items:center;justify-content:space-between;margin:13px -14px -14px;padding:11px 14px;border-top:1px solid #e8edf0;border-radius:0 0 10px 10px;background:#f5fafc;color:#1687b3;font-size:.78rem;font-weight:750;transition:.18s}.task-open-link:hover{background:#dff3fb;color:#0e759f}.task-open-link .bi-chevron-right{font-size:.7rem}.task-admin-actions{display:flex;align-items:center;gap:8px}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;margin-left:5px;padding:0 7px;border-radius:20px;background:#e8f6fc;color:#177fa8;font-size:.72rem;vertical-align:2px}.attachment-existing{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}.attachment-list{display:flex;flex-direction:column;margin-bottom:0}.attachment-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #edf0f2}.attachment-row:last-child{border-bottom:0}.attachment-row small{color:var(--muted)}.attachment-actions{display:flex;align-items:center;gap:6px;flex:none}.attachment-actions form{margin:0}.attachment-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#eaf7fc;color:#1688b5;font-size:1.25rem;flex:none}.attachment-upload{padding:18px;border:1px dashed #bdd5df;border-radius:11px;background:#f8fbfc}.upload-control{display:flex;gap:10px;align-items:center}.upload-control .form-control{min-width:0;width:auto;flex:1 1 0}.upload-control .btn{flex:0 0 auto;white-space:nowrap}.update-message{display:flex;gap:18px;align-items:flex-start;margin-bottom:24px}.update-message>span{display:grid;place-items:center;width:54px;height:54px;border-radius:14px;background:#e4f6fc;color:#1688b5;font-size:1.45rem;flex:none}.update-message h2{margin:0 0 6px;font-size:1.2rem}.detail-facts small .bi{margin-right:4px}
@media(max-width:767px){.task-admin-actions{width:100%}.task-admin-actions>.btn{flex:1}.task-admin-actions .dropdown .btn{white-space:nowrap}.upload-control{align-items:center}.attachment-row{align-items:center;flex-wrap:nowrap}.attachment-row>div.flex-grow-1{width:auto;min-width:0}.attachment-actions{flex:none}.task-open-link{padding-top:13px;padding-bottom:13px}}

/* Toast notifications */
.toast-container{z-index:1090;pointer-events:none}.app-toast{min-width:320px;max-width:min(390px,calc(100vw - 30px));background:#fff;box-shadow:0 14px 45px rgba(22,38,52,.18);pointer-events:auto;border-left:5px solid #71808c!important}.app-toast .toast-body{display:flex;align-items:center;gap:10px;padding:15px;font-weight:650}.app-toast .toast-body>.bi{font-size:1.15rem}.app-toast.toast-success{border-left-color:#2b9b64!important}.app-toast.toast-success .toast-body>.bi{color:#2b9b64}.app-toast.toast-warning{border-left-color:#e2a128!important}.app-toast.toast-warning .toast-body>.bi{color:#c2810b}.app-toast.toast-danger{border-left-color:#dc5353!important}.app-toast.toast-danger .toast-body>.bi{color:#dc5353}.app-toast.toast-info{border-left-color:#2EAADC!important}.app-toast.toast-info .toast-body>.bi{color:#1688b5}

/* Fixed-height Kanban with independent column scrolling */
.board-workspace{display:flex;gap:10px;width:100%;min-width:0;height:var(--board-height,calc(100dvh - 185px));min-height:430px;overflow:hidden}.board-workspace .kanban{flex:1;min-width:0;min-height:0;height:calc(100% - 2px);align-items:stretch;overflow-x:scroll;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;scrollbar-color:#9fc7d7 #e4eaed;scrollbar-width:thin;padding-bottom:8px}.board-workspace .kanban::-webkit-scrollbar{height:10px}.board-workspace .kanban::-webkit-scrollbar-track{background:#e4eaed;border-radius:20px}.board-workspace .kanban::-webkit-scrollbar-thumb{background:#8ebfd2;border:2px solid #e4eaed;border-radius:20px}.board-workspace .kanban-column{display:flex;flex-direction:column;height:calc(100% - 2px);min-height:0}.board-workspace .kanban-column>header{flex:none}.board-workspace .kanban-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:3px}.board-shortcuts{display:grid;grid-template-rows:1fr 1fr;gap:8px;width:48px;flex:none;padding-bottom:12px}.board-shortcut{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#5f6c77;font-size:.73rem;font-weight:800;letter-spacing:.04em;writing-mode:vertical-rl;transform:rotate(180deg);box-shadow:0 1px 2px rgba(22,34,46,.03)}.board-shortcut:hover{background:#eaf7fc;color:#1688b5;border-color:#b9e4f4}.board-shortcut .bi{font-size:1rem}.board-shortcut b{display:grid;place-items:center;min-width:22px;min-height:22px;padding:4px;border-radius:20px;background:#edf1f3;color:#55616b;font-size:.68rem}.board-shortcut.billed:hover{background:#e8f7ef;color:#268658;border-color:#bfe5d1}

/* Archive and billed lists */
.table-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px;white-space:nowrap}.table-actions form{margin:0}.task-list-title{display:block;min-width:220px;color:var(--ink)}.task-list-title small{display:block;margin-top:4px;color:var(--muted);font-weight:400}.archived-card{border-style:dashed}.archive-readonly{margin-top:14px;padding:9px;border-radius:8px;background:#f1f4f6;color:var(--muted);font-size:.78rem;text-align:center}.status-pill .bi{margin-right:4px}
.invoice-panel{border-top:4px solid #2b9b64}.invoice-panel h2{font-size:1.05rem;margin:.35rem 0 1rem}.invoice-facts{display:grid;gap:10px}.invoice-facts span{padding:10px 12px;border-radius:9px;background:#f5f8f9}.invoice-facts small{display:block;color:var(--muted);font-size:.72rem;margin-bottom:2px}.readonly-note{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem}
.legacy-invoice-form{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.legacy-invoice-form>p{color:var(--muted);font-size:.78rem}

/* Daily summary automation */
.automation-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(310px,.7fr);gap:24px;align-items:start}.automation-url-panel>p{color:var(--muted);line-height:1.6}.copy-url-control{display:flex;gap:9px}.copy-url-control .form-control{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;background:#f7f9fa}.copy-url-control .btn{white-space:nowrap}.automation-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.automation-actions form{margin:0}.automation-help h2{font-size:1.15rem;margin:.3rem 0 1rem}.automation-help ol{padding-left:1.2rem;margin:0}.automation-help li{padding:.4rem 0;line-height:1.5}.automation-note{display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding:13px;border-radius:9px;background:#eaf7fc;color:#397084;font-size:.82rem}.automation-note code{color:#176f92}
@media(max-width:991px){.automation-grid{grid-template-columns:1fr}}
@media(max-width:575px){.copy-url-control{flex-direction:column}.copy-url-control .btn{width:100%}.automation-actions{flex-direction:column}.automation-actions form,.automation-actions .btn{width:100%}}

/* Basic rich-text editor */
.rich-text-field{border:1px solid #dce1e6;border-radius:10px;background:#fff;overflow:visible;transition:border-color .15s,box-shadow .15s}.rich-text-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(var(--primary-rgb),.14)}.rich-text-toolbar{display:flex;align-items:center;gap:4px;padding:8px 10px;border-bottom:1px solid var(--line);border-radius:10px 10px 0 0;background:#f7f9fa}.rich-text-toolbar button{display:grid;place-items:center;width:34px;height:32px;padding:0;border:0;border-radius:7px;background:transparent;color:#53616d;font-size:1rem}.rich-text-toolbar button:hover,.rich-text-toolbar button:focus{background:#e4f4fa;color:#1688b5;outline:0}.rich-toolbar-separator{width:1px;height:22px;margin:0 4px;background:#dce2e6}.rich-highlight-picker{position:relative}.rich-highlight-picker>[data-rich-palette-toggle]{display:flex;width:43px;gap:2px}.picker-chevron{font-size:.55rem}.rich-highlight-menu{position:absolute;z-index:1080;top:calc(100% + 7px);left:0;width:156px;padding:9px;grid-template-columns:repeat(3,1fr);gap:7px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(24,39,52,.18)}.rich-highlight-menu:not([hidden]){display:grid}.rich-highlight-menu .highlight-swatch{width:38px;height:30px;border:1px solid rgba(20,35,45,.1);box-shadow:inset 0 0 0 3px rgba(255,255,255,.45)}.highlight-yellow{background:#fff0a8!important}.highlight-green{background:#cdefd8!important}.highlight-blue{background:#cfeeff!important}.highlight-orange{background:#ffddb8!important}.highlight-pink{background:#ffd6e7!important}.highlight-lilac{background:#e4dcff!important}.rich-text-content{min-height:230px;max-height:42vh;overflow-y:auto;padding:15px 16px;border-radius:0 0 10px 10px;line-height:1.65;outline:0}.rich-text-content:empty:before{content:attr(data-placeholder);color:#9aa3ab;pointer-events:none}.rich-text-content p,.rich-text-rendered p{margin:0 0 .85rem}.rich-text-content p:last-child,.rich-text-rendered p:last-child{margin-bottom:0}.rich-text-content ul,.rich-text-rendered ul{padding-left:1.4rem;margin:.5rem 0 .9rem}.rich-text-content mark,.rich-text-rendered mark{padding:.08em .18em;border-radius:3px;background:#fff0a8;color:#111}.rich-text-content mark[data-highlight="green"],.rich-text-rendered mark.highlight-green{background:#cdefd8}.rich-text-content mark[data-highlight="blue"],.rich-text-rendered mark.highlight-blue{background:#cfeeff}.rich-text-content mark[data-highlight="orange"],.rich-text-rendered mark.highlight-orange{background:#ffddb8}.rich-text-content mark[data-highlight="pink"],.rich-text-rendered mark.highlight-pink{background:#ffd6e7}.rich-text-content mark[data-highlight="lilac"],.rich-text-rendered mark.highlight-lilac{background:#e4dcff}.rich-text-rendered{overflow-wrap:anywhere}.rich-text-rendered strong{font-weight:750}

@media(max-width:991px){.board-workspace{height:var(--board-height,calc(100dvh - 175px))}}
@media(max-width:767px){.toast-container{left:0!important;right:0!important;padding:12px!important}.app-toast{width:100%;min-width:0;max-width:none}.board-workspace{min-height:280px}.board-workspace .kanban{margin:0;padding-left:0;padding-right:0;scroll-snap-type:x mandatory}.board-workspace .kanban-column{width:78vw;min-width:78vw;scroll-snap-align:start}.board-shortcuts{width:43px}.board-shortcut{padding:8px 5px}.special-task-list .table{min-width:850px}}

.empty-shortcuts{display:flex;justify-content:center;flex-wrap:wrap;gap:.65rem;margin-top:1rem}
.access-disabled{opacity:.58}.access-disabled .form-control{background:#f3f5f6}.danger-zone{margin-top:24px;padding-top:20px;border-top:1px solid #f0d4d4}.danger-zone p{color:var(--muted);font-size:.82rem}.danger-actions{display:flex;flex-wrap:wrap;gap:8px}
.confirm-modal .modal-content{overflow:hidden}.confirm-modal .modal-body{display:flex;gap:18px;align-items:flex-start;padding:28px}.confirm-modal .modal-title{margin:.3rem 0 .55rem}.confirm-modal .modal-body p{margin:0;color:var(--muted);line-height:1.55}.confirm-modal-icon{width:52px;height:52px;display:grid;place-items:center;flex:none;border-radius:50%;font-size:1.35rem}.confirm-danger .confirm-modal-icon{color:#c73535;background:#fde9e9}.confirm-warning .confirm-modal-icon{color:#a46d00;background:#fff1cf}.confirm-danger .modal-content{border-top:4px solid #dc5353}.confirm-warning .modal-content{border-top:4px solid #e2a128}
.board-filters{padding:18px}.board-filters .input-group-text{border-color:#dce1e6;background:#f7f9fa;color:#78838e}.effort-summary{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.effort-summary>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.82rem}.progress-track .over-budget{background:#dc5353}.comment-list{display:flex;flex-direction:column;gap:13px}.comment-item{position:relative;display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}.comment-internal{border-color:#f0d495;background:#fffaf0}.comment-avatar{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:#e6f6fc;color:#1688b5}.comment-internal .comment-avatar{background:#ffedc5;color:#9a6708}.comment-content{min-width:0;flex:1}.comment-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.comment-meta>span{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.comment-meta small{color:var(--muted);white-space:nowrap}.comment-content>p{margin:9px 0 0;line-height:1.55;overflow-wrap:anywhere}.status-warning{background:#fff0cf;color:#946309}.comment-files{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.comment-files a{display:flex;align-items:center;gap:7px;max-width:100%;padding:7px 10px;border-radius:8px;background:#eef7fa;font-size:.78rem;font-weight:650}.comment-files a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comment-files small{color:var(--muted);white-space:nowrap}.comment-delete{margin:-5px -5px 0 0}.comment-form{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.comment-form-actions{display:flex;align-items:flex-start;gap:12px;margin-top:12px}.comment-form-actions .form-check{min-width:150px;margin-top:8px}.comment-form-actions .form-check small{display:block;color:var(--muted);font-size:.7rem}.comment-form-actions>.btn{margin-top:1px;white-space:nowrap}
@media(max-width:767px){.confirm-modal .modal-body{padding:22px}.comment-item{gap:9px}.comment-avatar{width:32px;height:32px}.comment-meta{flex-direction:column;gap:3px}.comment-form-actions{flex-direction:column}.comment-form-actions>*,.comment-form-actions>.btn{width:100%}.comment-form-actions .form-check{margin:0}.board-filters{padding:14px}}
.detail-facts{grid-template-columns:repeat(4,1fr)}
@media(max-width:767px){.detail-facts{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.detail-facts{grid-template-columns:1fr}}

/* Sortable task list */
.task-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;color:var(--muted)}.task-list-toolbar>div{display:flex;flex-wrap:wrap;gap:7px}.task-list-toolbar .btn b{margin-left:4px}.filter-count{position:absolute;top:-7px;right:-7px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border:2px solid #fff;border-radius:20px;background:#dc5353;color:#fff;font-size:.65rem;font-weight:800}.task-index-panel{min-width:0;max-width:100%;padding:0;overflow:hidden}.task-index-desktop{display:block;width:100%;max-width:100%;overflow-x:scroll;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#8ebfd2 #e4eaed}.task-index-desktop::-webkit-scrollbar{height:10px}.task-index-desktop::-webkit-scrollbar-track{background:#e4eaed}.task-index-desktop::-webkit-scrollbar-thumb{background:#8ebfd2;border:2px solid #e4eaed;border-radius:20px}.task-index-table{min-width:1020px}.task-index-table>:not(caption)>*>*{padding:.9rem .75rem}.sortable-heading{display:inline-flex;align-items:center;gap:6px;color:#7e8993}.sortable-heading:hover,.sortable-heading.active{color:#1688b5}.sortable-heading .bi{font-size:.78rem}.task-index-table .task-list-title{min-width:235px}.task-status-select{width:145px;border:0;font-size:.75rem;font-weight:750}.status-select-requested{background-color:#e8f6fc;color:#177fa8}.status-select-in_progress{background-color:#fff2d8;color:#9b6706}.status-select-review{background-color:#eee9ff;color:#6849ae}.status-select-completed{background-color:#e4f7ed;color:#228052}.due-date{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.due-date small{display:block;margin-left:3px;color:#dc5353;font-weight:750}.due-date.overdue{color:#c13f3f}.table-project-name{font-size:.86rem}.hours-cell{display:block;white-space:nowrap}.hours-cell small{display:block;color:var(--muted);font-size:.7rem}.task-index-mobile{display:none}.filter-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.filter-status-option{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:650;cursor:pointer}.filter-status-option:has(input:checked){border-color:#9cd5e9;background:#eff9fc}.filter-status-option.status-in_progress:has(input:checked){border-color:#edd38f;background:#fff9e9}.filter-status-option.status-review:has(input:checked){border-color:#cfc1f1;background:#f7f4ff}.filter-status-option.status-completed:has(input:checked){border-color:#addbc3;background:#f0faf5}
@media(max-width:767px){.task-list-toolbar{align-items:flex-start;flex-direction:column}.task-list-toolbar>div{width:100%}.task-list-toolbar .btn{flex:1}.task-index-panel{padding:0;background:transparent;border:0;box-shadow:none}.task-index-desktop{display:none}.task-index-mobile{display:flex;flex-direction:column;gap:12px}.mobile-task-row{padding:16px 16px 0;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 1px 2px rgba(22,34,46,.03);overflow:hidden}.mobile-task-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mobile-task-head>a{min-width:0;color:var(--ink)}.mobile-task-head strong,.mobile-task-head small{display:block}.mobile-task-head small{margin-top:3px;color:var(--muted)}.mobile-task-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 13px;margin-top:14px;color:#687581;font-size:.76rem}.mobile-status-control{display:flex;align-items:center;gap:10px;margin-top:13px}.mobile-status-control label{font-size:.75rem;font-weight:650;white-space:nowrap}.mobile-status-control .form-select{padding:.45rem 2rem .45rem .65rem}.mobile-task-row .task-open-link{margin:14px -16px 0}.filter-status-grid{grid-template-columns:1fr}}

/* Project view switch and scrollable form modals */
.view-switcher{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f2f4f6}.view-switcher .btn{border:0;border-radius:0}.view-switcher .btn.active{background:#e5f5fb;color:#137fa9;box-shadow:inset 0 0 0 1px #b9e3f2}.board-readonly .task-card,.board-readonly .task-card:active{cursor:default}.modal-dialog-scrollable .modal-content>form{display:flex;flex-direction:column;width:100%;min-height:0;max-height:calc(100dvh - 3.5rem)}.modal-dialog-scrollable .modal-content>form>.modal-header,.modal-dialog-scrollable .modal-content>form>.modal-footer{flex:none}.modal-dialog-scrollable .modal-content>form>.modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:767px){.view-switcher{display:none}.heading-actions .filter-count{position:static;display:inline-flex;align-items:center;justify-content:center;width:21px;min-width:21px;height:21px;padding:0;margin-left:.35rem;border:0;line-height:1;vertical-align:middle}.task-list-toolbar>div{display:flex;flex-wrap:nowrap;gap:6px}.task-list-toolbar .btn{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;padding:.55rem .35rem;white-space:nowrap;font-size:.72rem}.task-list-toolbar .btn .bi{margin:0}.task-list-toolbar .btn b{margin-left:1px}}
@media(max-width:575px){.modal-dialog-scrollable.modal-fullscreen-sm-down .modal-content>form{height:100dvh;max-height:100dvh}}

/* Keep wide task tables inside their own scroller, never on the whole page. */
html,body{max-width:100%;overflow-x:hidden}.main-content{min-width:0;max-width:calc(100vw - var(--sidebar))}
@media(max-width:1250px) and (min-width:992px){.board-heading{flex-wrap:wrap}.board-heading .heading-actions{margin-left:auto}}
@media(max-width:991px){.main-content{max-width:100vw}}

/* Constrain wide activity content so overflow belongs to its own scroller. */
.task-index-panel,.task-index-desktop,.board-workspace{contain:inline-size}.task-index-desktop{min-width:0}.board-workspace .kanban{width:0;max-width:100%}
@media(max-width:767px){.task-index-panel,.task-index-desktop,.board-workspace{contain:none}.board-workspace .kanban{width:auto;max-width:none}}

/* Single, always reachable horizontal control for wide activity views. */
.activity-scroll-control{display:flex;align-items:center;gap:7px;margin:10px 0 0;padding:7px;border:1px solid var(--line);border-radius:10px;background:#fff}.activity-scroll-control[hidden]{display:none}.task-index-panel>.activity-scroll-control{margin:0;border-width:1px 0 0;border-radius:0;padding:8px 10px}.activity-scroll-control>.btn{width:34px;height:30px;flex:none;padding:0}.activity-scrollbar{min-width:0;height:30px;flex:1;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}.activity-scrollbar:focus-visible{outline:2px solid rgba(var(--primary-rgb),.35);outline-offset:2px;border-radius:20px}.activity-scrollbar::-webkit-slider-runnable-track{height:10px;border-radius:20px;background:#dfe7eb}.activity-scrollbar::-webkit-slider-thumb{width:34px;height:18px;margin-top:-4px;border:2px solid #fff;border-radius:20px;background:#55aeca;box-shadow:0 1px 4px rgba(23,92,119,.28);appearance:none;-webkit-appearance:none}.activity-scrollbar::-moz-range-track{height:10px;border:0;border-radius:20px;background:#dfe7eb}.activity-scrollbar::-moz-range-thumb{width:30px;height:14px;border:2px solid #fff;border-radius:20px;background:#55aeca;box-shadow:0 1px 4px rgba(23,92,119,.28)}[data-activity-scroll-target]{scrollbar-width:none!important}[data-activity-scroll-target]::-webkit-scrollbar{width:0;height:0}
@media(max-width:767px){.activity-scroll-control{display:none!important}}

/* Per-client and per-task pricing */
.pricing-editor{padding:17px;border:1px solid #cfe5ed;border-radius:11px;background:#f7fbfc}.pricing-summary-panel{border-top:4px solid var(--primary)}.pricing-summary-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#e5f6fc;color:#1688b5;font-size:1.2rem}.pricing-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.pricing-facts span{padding:10px 11px;border-radius:9px;background:#f4f7f8}.pricing-facts small,.pricing-total small{display:block;color:var(--muted);font-size:.7rem;margin-bottom:3px}.pricing-total{padding:14px;border-radius:10px;background:#eaf7fc}.pricing-total strong{display:block;color:#137fa9;font-size:1.5rem}.pricing-note{margin:11px 0 0;color:var(--muted);font-size:.75rem;line-height:1.45}
@media(max-width:420px){.pricing-facts{grid-template-columns:1fr}}

.pricing-warning-panel{display:flex;align-items:flex-start;gap:13px;border-color:#efd28a;border-top:4px solid #e2a128;background:#fffaf0}.pricing-warning-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:11px;background:#ffedc5;color:#a66d00;font-size:1.1rem}.pricing-warning-panel h2{margin:.2rem 0 .45rem;font-size:1.05rem}.pricing-warning-panel p{margin:0;color:#765b22;font-size:.82rem;line-height:1.5}.pricing-warning-panel small{display:block;margin-top:8px;color:#8b7444;font-size:.72rem}

/* Compact project identity inside the activity list. */
.task-index-table{min-width:1020px}.table-task-project{min-width:155px;border-top:0;padding-top:0}.table-task-project>span:last-child{min-width:0}.table-task-project small{margin-top:2px}.task-cost{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:#1688b5}.task-cost i{font-size:.83rem}.task-cost strong{font-size:.78rem}.task-cost-fixed{color:#52606b}.task-cost-warning{color:#b47a0b}.task-cost-warning small{font-size:.7rem;font-weight:700}.task-cost-empty{color:var(--muted)}.task-card-footer{flex-wrap:wrap;align-items:center}.task-card-footer .task-cost{margin-left:auto}.task-card-footer .task-card-due{flex-basis:100%}.mobile-task-meta .task-cost{font-size:.76rem}.mobile-task-meta .task-cost strong{font-size:inherit}

/* Time-entry editing and stable toast close position. */
.time-entry-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.time-entry-actions form{margin:0}.app-toast>div{width:100%}.app-toast .toast-body{min-width:0;flex:1}.app-toast .btn-close{flex:none;margin-left:auto!important}

/* Fast billing queue. */
.billing-queue-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}.billing-queue-stats>.panel{display:flex;align-items:center;gap:13px;padding:17px}.billing-queue-stats small{display:block;color:var(--muted);font-size:.74rem}.billing-queue-stats strong{display:block;margin-top:2px;font-size:1.25rem}.billing-unpriced-warning{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;border:1px solid #efd28a;border-radius:11px;background:#fffaf0;color:#765b22}.billing-unpriced-warning>i{color:#b47a0b;font-size:1.15rem}.billing-unpriced-warning>div{min-width:0;flex:1}.billing-unpriced-warning strong,.billing-unpriced-warning small{display:block}.billing-unpriced-warning small{margin-top:2px;color:#8b7444}.billing-queue-panel{padding:0;overflow:hidden}.billing-queue-table{min-width:1050px}.billing-queue-table>:not(caption)>*>*{padding:.95rem .75rem}.billing-date{white-space:nowrap;color:var(--muted);font-size:.8rem}.billing-cost-type{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:.76rem;font-weight:700}.billing-cost-fixed{color:#52606b}.billing-cost-hourly{color:#1688b5}.billing-amount{white-space:nowrap;color:#137fa9}.billing-modal-task{display:grid;grid-template-columns:1fr auto;gap:3px 12px;margin-bottom:18px;padding:13px;border-radius:10px;background:#eef8fb}.billing-modal-task small{grid-column:1/-1;color:var(--muted)}.billing-modal-task strong{min-width:0}.billing-modal-task span{color:#137fa9;font-weight:800;white-space:nowrap}
@media(max-width:767px){.billing-queue-heading{gap:16px}.billing-queue-heading>.btn{width:100%}.billing-queue-stats{grid-template-columns:1fr 1fr;gap:8px}.billing-queue-stats>.panel{padding:13px;gap:9px}.billing-queue-stats .pricing-summary-icon{width:34px;height:34px}.billing-queue-stats strong{font-size:1rem}.billing-unpriced-warning{align-items:flex-start;flex-wrap:wrap}.billing-unpriced-warning .btn{width:100%}}

.billing-queue-mobile{display:none}
@media(max-width:767px){.billing-queue-panel{padding:0;background:transparent;border:0;box-shadow:none;overflow:visible}.billing-queue-desktop{display:none}.billing-queue-mobile{display:flex;flex-direction:column;gap:12px}.billing-queue-mobile article{padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 1px 2px rgba(22,34,46,.03)}.billing-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.billing-mobile-head a{min-width:0;color:var(--ink);font-weight:780}.billing-mobile-head strong{color:#137fa9;white-space:nowrap}.billing-queue-mobile .task-card-project{margin-bottom:13px}.billing-mobile-meta{display:flex;flex-wrap:wrap;gap:8px 13px;margin-bottom:14px;color:var(--muted);font-size:.76rem}.billing-mobile-meta span{display:inline-flex;align-items:center;gap:5px}.billing-mobile-meta .billing-cost-fixed{color:#52606b}.billing-mobile-meta .billing-cost-hourly{color:#1688b5}}

/* Per-client multi-activity billing. */
.billing-client-groups{display:flex;flex-direction:column;gap:18px}.billing-client-group{padding:0;overflow:hidden}.billing-client-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line)}.billing-client-header h2{margin:.2rem 0 2px;font-size:1.15rem}.billing-client-header>div:first-child>small{color:var(--muted)}.billing-client-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px}.billing-client-actions .form-check{display:flex;align-items:center;gap:7px;margin:0;padding:0;white-space:nowrap}.billing-client-actions .form-check-input{position:static;float:none;margin:0}.billing-selection-summary{color:var(--muted);font-size:.76rem;white-space:nowrap}.billing-check-column{width:38px}.billing-bulk-summary{display:grid;grid-template-columns:1fr auto;gap:3px 12px;margin-bottom:18px;padding:13px;border-radius:10px;background:#eef8fb}.billing-bulk-summary small{grid-column:1/-1;color:var(--muted)}.billing-bulk-summary>span{color:#137fa9;white-space:nowrap}.billing-mobile-head label{display:flex;align-items:flex-start;gap:9px;min-width:0}.billing-mobile-head label .form-check-input{flex:none;margin-top:3px}.billing-mobile-head label a{overflow-wrap:anywhere}
@media(max-width:767px){.billing-client-group{padding:0;background:transparent;border:0;box-shadow:none;overflow:visible}.billing-client-header{align-items:flex-start;flex-direction:column;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}.billing-client-actions{width:100%;justify-content:flex-start}.billing-client-actions>[data-bulk-billing-open]{width:100%;order:3}.billing-selection-summary{margin-left:auto}.billing-client-group .billing-queue-mobile{margin-top:10px}.billing-bulk-summary{grid-template-columns:1fr}.billing-bulk-summary>span{white-space:normal}}

/* Protected full-data reset. */
.system-reset-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.7fr);gap:20px;align-items:start}.reset-danger-panel{border-top:4px solid #dc5353}.reset-danger-heading{display:flex;align-items:flex-start;gap:15px}.reset-danger-heading>span{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:13px;background:#fde9e9;color:#c73535;font-size:1.25rem}.reset-danger-heading h2{margin:0 0 5px;font-size:1.2rem}.reset-danger-heading p{margin:0;color:var(--muted);line-height:1.55}.reset-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.reset-summary>div{padding:15px;border-radius:11px;background:#f7f9fa}.reset-summary h3{margin:0 0 10px;font-size:.9rem}.reset-summary ul{margin:0;padding-left:18px;color:var(--muted);font-size:.8rem;line-height:1.65}.reset-summary>div:first-child h3{color:#bd4141}.reset-summary>div:last-child h3{color:#238052}.reset-confirm-panel h2{margin:.25rem 0 .5rem;font-size:1.2rem}.reset-confirm-panel>p{color:var(--muted);font-size:.84rem}.reset-understanding{display:flex;align-items:flex-start;gap:9px;padding:11px;border:1px solid #efd28a;border-radius:9px;background:#fffaf0;font-size:.78rem;cursor:pointer}.reset-understanding .form-check-input{flex:none;margin-top:2px}
@media(max-width:900px){.system-reset-grid{grid-template-columns:1fr}}@media(max-width:575px){.reset-summary{grid-template-columns:1fr}.system-update+.heading-actions{width:100%}}

/* Multi-account clients and drag & drop task attachments. */
.task-dropzone{padding:14px;border:1px solid #cfe3eb;border-radius:12px;background:#f8fcfd;transition:.2s ease}.task-dropzone-target{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;min-height:135px;padding:22px;border:2px dashed #9dcfdf;border-radius:10px;background:#fff;color:var(--ink);transition:.18s ease}.task-dropzone-target:hover,.task-dropzone.is-dragging .task-dropzone-target{border-color:var(--primary);background:#eef9fd}.task-dropzone.is-dragging .task-dropzone-target{transform:scale(.995)}.dropzone-main-icon{display:grid!important;place-items:center;width:46px;height:46px;margin:0 0 9px!important;border-radius:50%;background:#e5f6fc;color:var(--primary)!important}.task-dropzone-target i{margin:0;color:inherit;font-size:1.45rem}.task-dropzone-target>span:last-child{margin-top:4px;color:var(--muted);font-size:.78rem}.task-dropzone.has-files{border-color:#92d2ad;background:#f5fcf8}.task-dropzone.has-files .task-dropzone-target{min-height:105px;border-color:#92d2ad;background:#fff}.task-dropzone.has-files .dropzone-main-icon{background:#e4f7ed;color:#26915c!important;animation:queued-pop .35s ease}.task-dropzone-help{margin-top:9px;color:var(--muted);font-size:.72rem;text-align:center}.task-dropzone-summary{display:flex;align-items:center;gap:10px;margin-top:12px;padding:11px 12px;border-radius:10px;background:#e4f7ed}.task-dropzone-summary[hidden]{display:none}.task-dropzone-summary>span{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;background:#fff;color:#26915c;font-size:1rem}.task-dropzone-summary>div{min-width:0;flex:1}.task-dropzone-summary strong,.task-dropzone-summary small{display:block}.task-dropzone-summary small{margin-top:2px;color:#557363;font-size:.7rem}.task-dropzone-files{display:flex;flex-direction:column;gap:7px;margin-top:9px}.task-dropzone-file{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid #cce8d8;border-radius:9px;background:#fff}.task-dropzone-file.is-queued{animation:queued-slide .28s ease both}.task-dropzone-file>i{color:#26915c}.task-dropzone-file>span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:650}.task-dropzone-file>small{color:var(--muted);white-space:nowrap}.task-dropzone-file .btn{padding:.2rem .35rem;color:#dc5353}@keyframes queued-slide{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}@keyframes queued-pop{0%{transform:scale(.75)}70%{transform:scale(1.12)}100%{transform:scale(1)}}
@media(max-width:575px){.task-dropzone-target{min-height:110px}.task-dropzone-file>small{display:none}}

/* Password tools and personal account settings. */
.sidebar-account-link{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:var(--ink);border-radius:9px}.sidebar-account-link:hover{color:var(--primary)}.sidebar-account-icon{margin-left:auto;color:#8a949e}.sidebar-account-link:hover .sidebar-account-icon{color:var(--primary)}.password-visibility{width:45px;padding-left:.6rem;padding-right:.6rem}.account-password-tools{display:grid;grid-template-columns:minmax(0,1fr) 45px;width:100%}.account-password-tools>.form-control{width:100%!important;min-width:0!important;max-width:none!important;flex:none!important;border-radius:9px 0 0 9px!important}.account-password-tools>.password-visibility{width:45px!important;border-radius:0 9px 9px 0!important}.account-password-tools>.password-generate{grid-column:1/-1;width:100%;margin-top:8px;border-radius:9px!important}.password-generated-feedback{margin-top:8px;padding:8px 10px;border-radius:8px;background:#e4f7ed;color:#268052;font-size:.7rem;font-weight:700}.password-generated-feedback .bi{margin-right:5px}.send-access-option{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid #bfe1ee;border-radius:10px;background:#f1fafd;cursor:pointer}.send-access-option .form-check-input{flex:none;margin-top:3px}.send-access-option strong,.send-access-option small{display:block}.send-access-option small{margin-top:3px;color:var(--muted);font-size:.72rem;line-height:1.45}.account-settings-grid{display:grid;grid-template-columns:minmax(270px,.65fr) minmax(0,1fr);gap:20px;align-items:start;max-width:1000px}.account-identity-panel{display:flex;align-items:center;gap:15px}.account-identity-avatar{display:grid;place-items:center;width:58px;height:58px;flex:none;border-radius:16px;background:#dff3fb;color:#1688b5;font-size:1.35rem;font-weight:800}.account-identity-panel h2{margin:.2rem 0;font-size:1.2rem}.account-identity-panel p{margin:0;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:767px){.account-settings-grid{grid-template-columns:1fr}}

/* Blocking feedback while forms and task updates are being saved. */
.page-loader{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;background:rgba(20,31,41,.48);backdrop-filter:blur(3px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}.page-loader.is-visible{opacity:1;visibility:visible;pointer-events:all}.page-loader-card{display:flex;align-items:center;flex-direction:column;min-width:min(330px,calc(100vw - 36px));padding:27px 30px;border-radius:16px;background:#fff;box-shadow:0 22px 70px rgba(16,27,36,.3);text-align:center}.page-loader-card strong{margin-top:14px;font-size:1rem}.page-loader-card small{margin-top:4px;color:var(--muted)}.page-loader-spinner{width:42px;height:42px;border:4px solid #dceff6;border-top-color:var(--primary);border-radius:50%;animation:page-loader-spin .75s linear infinite}@keyframes page-loader-spin{to{transform:rotate(360deg)}}body.is-saving{overflow:hidden}

/* Task authors, empty descriptions and comments in the activity timeline. */
.task-list-title .task-author,.mobile-task-head .task-author{display:block;margin-top:5px;color:#80909c;font-size:.68rem;font-weight:550}.task-card-author{display:flex;align-items:center;gap:5px;margin:2px 0 12px;color:#80909c;font-size:.68rem;font-weight:550}.task-card-link>h3+.task-card-author{margin-top:9px}.description-empty{min-height:150px;display:flex;align-items:center;justify-content:center;flex-direction:column}.timeline-comment>span{border-color:#7b5bc7!important;background:#f0ebff!important}.timeline-comment p>a{color:#6849ae}.timeline-comment p>em{display:block;margin-top:5px;color:var(--muted);font-size:.75rem;font-style:normal;line-height:1.45}

/* Per-account unread comment indicators. */
.nav-count{display:grid;place-items:center;min-width:21px;height:21px;margin-left:auto;padding:0 6px;border-radius:20px;background:#dc5353;color:#fff;font-size:.65rem}.task-title-line{display:flex;align-items:center;gap:7px;min-width:0}.task-title-line>strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.unread-comment-badge{display:inline-flex;align-items:center;gap:4px;flex:none;padding:4px 7px;border-radius:20px;background:#e9e2ff;color:#6748ad;font-size:.65rem;font-weight:800}.task-badges{display:flex;align-items:center;gap:6px}.task-card .unread-comment-badge{box-shadow:0 0 0 2px rgba(121,87,199,.08)}

/* Secure password recovery. */
.auth-help-link{font-size:.75rem;font-weight:650}.recovery-page .login-visual:after{background:rgba(255,255,255,.13)}.recovery-invalid{text-align:center}.recovery-invalid>span{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 15px;border-radius:16px;background:#fff0ea;color:#b15332;font-size:1.5rem}.recovery-invalid h2{margin-bottom:8px}.recovery-invalid p{margin-bottom:22px;color:var(--muted)}

/* Role-aware operational dashboard. */
.operational-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.operational-stats-admin{grid-template-columns:repeat(5,minmax(0,1fr))}.stat-icon.red{color:#c23f3f;background:#fdeaea}.stat-icon.lilac{color:#704fb9;background:#eee9ff}.stat-icon.coral{color:#b15332;background:#fff0ea}.stat-danger{border-color:#f1cccc}.operational-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:20px}.deadline-list>a,.unread-dashboard-list>a{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #edf0f2;color:var(--ink)}.deadline-list>a:last-child,.unread-dashboard-list>a:last-child{border:0}.deadline-date{display:flex;align-items:center;justify-content:center;flex-direction:column;width:44px;height:48px;flex:none;border-radius:10px;background:#edf7fb;color:#177fa8}.deadline-date b{line-height:1}.deadline-date small{margin-top:3px;font-size:.56rem}.deadline-date.overdue{background:#fdeaea;color:#bd4141}.deadline-date.today{background:#fff2d8;color:#9b6706}.deadline-list>a>span:nth-child(2)>small{color:var(--muted)}.deadline-label{padding:4px 7px;border-radius:20px;background:#f0f3f5;color:#687581;font-size:.65rem;font-weight:750;white-space:nowrap}.deadline-label.overdue{background:#fdeaea;color:#bd4141}.unread-dashboard-list .comment-avatar{width:36px;height:36px}.unread-dashboard-list strong{font-size:.78rem}.unread-dashboard-list small{max-width:320px;color:var(--muted);font-size:.7rem}.unread-dashboard-list time{align-self:flex-start;color:#89939d;font-size:.65rem;white-space:nowrap}.dashboard-time-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}.dashboard-time-grid>a:nth-last-child(-n+2){border-bottom:0}
@media(max-width:1150px){.operational-stats-admin{grid-template-columns:repeat(3,1fr)}.operational-grid{grid-template-columns:1fr}}
@media(max-width:767px){.operational-heading>.btn{width:100%}.operational-stats,.operational-stats-admin{grid-template-columns:1fr 1fr;gap:9px}.operational-stats .stat-card{padding:13px;gap:10px}.operational-stats .stat-icon{width:38px;height:38px}.operational-stats .stat-card strong{font-size:1.12rem}.dashboard-time-grid{grid-template-columns:1fr}.dashboard-time-grid>a:nth-last-child(-n+2){border-bottom:1px solid #edf0f2}.dashboard-time-grid>a:last-child{border:0}.deadline-label{display:none}}

/* Debounced email notification queue. */
.queue-automation-panel{margin-bottom:28px;border-left:4px solid var(--primary)}.queue-automation-panel>p{color:var(--muted);line-height:1.55}.queue-live-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:20px;background:#e5f7ed;color:#248052;font-size:.72rem;font-weight:750}.queue-section-heading{display:flex;align-items:center;gap:8px;margin:0 0 13px}.queue-section-heading h2{margin:.2rem 0 0;font-size:1.25rem}.email-queue-list{display:flex;flex-direction:column;gap:14px}.queue-card{padding:0;overflow:hidden}.queue-card>header{display:flex;align-items:center;gap:14px;padding:18px 20px}.queue-card.queue-status-failed{border-color:#efc3c3}.queue-card.queue-status-processing{border-color:#bfe1ee}.queue-recipient-icon{display:grid;place-items:center;width:43px;height:43px;flex:none;border-radius:12px;background:#e7f6fb;color:#1688b5;font-size:1.1rem}.queue-card h3{margin:5px 0 1px;font-size:1rem}.queue-card header small{color:var(--muted)}.queue-status-pill{display:inline-flex;padding:3px 7px;border-radius:20px;background:#fff0d5;color:#936108;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.queue-status-failed .queue-status-pill{background:#fde9e9;color:#bd4141}.queue-status-processing .queue-status-pill{background:#e7f6fb;color:#1688b5}.queue-when{display:flex;align-items:flex-end;flex-direction:column;min-width:145px}.queue-when small,.queue-when span{color:var(--muted);font-size:.67rem}.queue-when strong{margin:2px 0;font-size:.82rem}.queue-error{display:flex;align-items:flex-start;gap:8px;margin:0 20px 13px;padding:10px 12px;border-radius:9px;background:#fdeeee;color:#a83b3b;font-size:.76rem}.queue-preview{border-top:1px solid var(--line)}.queue-preview>summary{display:flex;align-items:center;gap:7px;padding:12px 20px;color:#52616d;font-size:.78rem;font-weight:700;cursor:pointer;list-style:none}.queue-preview>summary::-webkit-details-marker,.queue-history-list summary::-webkit-details-marker{display:none}.queue-preview>summary>.bi-chevron-down{margin-left:auto;transition:.2s}.queue-preview[open]>summary>.bi-chevron-down,.queue-history-list details[open]>summary>.bi-chevron-down{transform:rotate(180deg)}.queue-preview>div{padding:0 20px 10px;background:#fafbfc}.queue-preview a{display:flex;align-items:flex-start;gap:11px;padding:12px 0;border-bottom:1px solid #e9edef;color:var(--ink)}.queue-preview a:last-child{border:0}.queue-event-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:9px;background:#eee9ff;color:#6849ae}.queue-preview b,.queue-preview small,.queue-preview p{display:block}.queue-preview b{font-size:.78rem}.queue-preview small{margin-top:2px;color:var(--muted);font-size:.67rem}.queue-preview p{margin:5px 0 0;color:#52616d;font-size:.74rem;line-height:1.45}.queue-preview time{color:#89939d;font-size:.64rem;white-space:nowrap}.queue-card>footer{display:flex;justify-content:flex-end;gap:8px;padding:13px 20px;border-top:1px solid var(--line);background:#fff}.queue-card>footer form{margin:0}.queue-history-panel{padding:0;overflow:hidden}.queue-history-list details{border-bottom:1px solid var(--line)}.queue-history-list details:last-child{border:0}.queue-history-list summary{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;list-style:none}.queue-history-list summary small,.queue-history-list summary b{display:block}.queue-history-list summary small{margin-top:2px;color:var(--muted);font-size:.67rem}.queue-history-list summary>span:nth-last-of-type(1){text-align:right;font-size:.72rem}.queue-history-status{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:9px;background:#e5f7ed;color:#248052}.queue-history-status.status-cancelled{background:#edf0f2;color:#68737e}.queue-history-events{padding:2px 62px 13px;background:#fafbfc}.queue-history-events p{margin:0;padding:9px 0;border-bottom:1px solid #e9edef;font-size:.75rem}.queue-history-events p:last-child{border:0}.queue-history-events b,.queue-history-events span{display:block}.queue-history-events span{margin-top:3px;color:var(--muted)}
@media(max-width:767px){.email-queue-heading>form,.email-queue-heading>form .btn{width:100%}.queue-card>header{align-items:flex-start;flex-wrap:wrap;padding:16px}.queue-recipient-icon{width:38px;height:38px}.queue-when{width:100%;min-width:0;align-items:flex-start;margin-left:52px;padding-top:3px}.queue-preview>summary{padding:12px 16px}.queue-preview>div{padding:0 16px 8px}.queue-preview time{display:none}.queue-card>footer{padding:12px 16px}.queue-card>footer form,.queue-card>footer .btn{flex:1}.queue-card>footer .btn{width:100%;white-space:nowrap}.queue-history-list summary{padding:13px}.queue-history-list summary>span:nth-last-of-type(1){display:none}.queue-history-events{padding:2px 16px 12px 56px}}

/* Remembered activity filters with readable, removable chips. */
.active-filter-summary{display:flex;align-items:flex-start;gap:12px;margin:-8px 0 20px;padding:13px 15px;border:1px solid #cde5ee;border-radius:11px;background:#f4fbfd}.active-filter-summary>span{display:inline-flex;align-items:center;gap:7px;flex:none;padding-top:5px;color:#467080;font-size:.75rem;font-weight:750}.active-filter-summary>span i{color:var(--primary)}.active-filter-chips{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-width:0}.active-filter-summary a{display:inline-flex;align-items:center;gap:7px;padding:5px 8px 5px 10px;border:1px solid #bfe1ed;border-radius:20px;background:#fff;color:#176f92;font-size:.7rem;line-height:1.25}.active-filter-summary a:hover{border-color:#87cade;background:#e9f7fb}.active-filter-summary a strong{font-weight:700}.active-filter-summary a i{font-size:.64rem}
@media(max-width:767px){.active-filter-summary{display:none}}

/* Task classification. */
.task-type-badge{display:inline-flex;align-items:center;gap:5px;width:max-content;margin-top:6px;padding:4px 8px;border-radius:20px;font-size:.66rem;font-weight:800;line-height:1.2}.task-type-badge .bi{font-size:.72rem}.task-type-bug{background:#fde9e9;color:#b83d43}.task-type-feature{background:#e5f5fb;color:#137fa9}.task-type-improvement{background:#eee9ff;color:#6849ae}.task-type-other{background:#edf0f2;color:#68737e}.task-badges .task-type-badge,.detail-heading .task-type-badge{margin-top:0}

/* Responsive hardening for task detail pages and large task modals. */
html,body{max-width:100%;overflow-x:hidden}.main-content,.detail-heading>div,.task-detail-grid,.detail-main,.detail-side,.detail-main>.panel,.detail-side>.panel{min-width:0}.detail-heading h1,.detail-heading p,.empty-state p,.timeline p{max-width:100%;overflow-wrap:anywhere}.description-empty p{width:100%;text-align:center}.comment-form-actions>*{min-width:0}.comment-form-actions input[type="file"]{width:100%;max-width:100%}
@media(max-width:1399px){.detail-heading{flex-direction:column;align-items:stretch}.task-admin-actions{width:100%;flex-wrap:wrap}.task-detail-grid{grid-template-columns:minmax(0,1fr)}.detail-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.comment-form-actions{display:grid;grid-template-columns:minmax(0,1fr) auto}.comment-form-actions>.flex-grow-1{grid-column:1/-1;grid-row:1;width:100%}.comment-form-actions>.form-check{grid-column:1;grid-row:2}.comment-form-actions>.btn{grid-column:2;grid-row:2;align-self:start}}
@media(max-width:991px){.task-edit-dialog .modal-content>form{height:100dvh;max-height:100dvh}.task-edit-dialog .modal-body{padding:20px}.task-edit-dialog .row>[class*="col-md-"]{flex:0 0 100%;width:100%;max-width:100%}.task-edit-dialog .rich-text-content{min-height:180px;max-height:34vh}.task-edit-dialog .pricing-editor{padding:15px}.detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-side{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.detail-heading h1{font-size:1.8rem;overflow-wrap:anywhere}.detail-heading>div:first-child{width:100%}.detail-heading .d-flex{row-gap:8px!important}.task-admin-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.task-admin-actions>*{min-width:0;width:100%;margin:0}.task-admin-actions>:first-child{grid-column:1/-1}.task-admin-actions .btn,.task-admin-actions .dropdown>.btn,.task-admin-actions form>.btn{width:100%;height:100%;white-space:normal}.description-empty{min-height:130px;padding-left:0;padding-right:0}.detail-side{display:flex;grid-template-columns:none}.comment-form-actions{display:flex;flex-direction:column}.comment-form-actions>*,.comment-form-actions>.btn{width:100%}.upload-control{align-items:stretch;flex-direction:column}.upload-control .form-control,.upload-control .btn{width:100%}.attachment-row small{display:block;overflow-wrap:anywhere}.panel-header{align-items:flex-start}.panel-header>.btn{flex:none}.pricing-facts{grid-template-columns:1fr}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{padding:16px 18px}.modal-fullscreen-lg-down .modal-body{padding:18px}}
@media(max-width:420px){.detail-facts{grid-template-columns:1fr}.task-edit-dialog .modal-footer{display:grid;grid-template-columns:1fr 1.35fr;gap:8px}.task-edit-dialog .modal-footer .btn{width:100%;padding-left:.65rem;padding-right:.65rem}.task-admin-actions{grid-template-columns:1fr}.task-admin-actions>:first-child{grid-column:auto}}

/* iPhone file controls, full-width detail sidebar and state-specific controls. */
.status-action[data-status="requested"]>span{border-color:#2eaadc}.status-action[data-status="in_progress"]>span{border-color:#e5a325}.status-action[data-status="review"]>span{border-color:#7857c7}.status-action[data-status="completed"]>span{border-color:#37a36b}.status-action[data-status="requested"]:hover,.status-action[data-status="requested"].active{border-color:#9edbed;background:#e8f6fc;color:#177fa8}.status-action[data-status="in_progress"]:hover,.status-action[data-status="in_progress"].active{border-color:#efd28a;background:#fff2d8;color:#9b6706}.status-action[data-status="review"]:hover,.status-action[data-status="review"].active{border-color:#cfc1f1;background:#eee9ff;color:#6849ae}.status-action[data-status="completed"]:hover,.status-action[data-status="completed"].active{border-color:#addbc3;background:#e4f7ed;color:#228052}.status-action[data-status="requested"].active>span{border-color:#2eaadc;background:#2eaadc;box-shadow:0 0 0 3px #d5f0fa}.status-action[data-status="in_progress"].active>span{border-color:#e5a325;background:#e5a325;box-shadow:0 0 0 3px #fff0c8}.status-action[data-status="review"].active>span{border-color:#7857c7;background:#7857c7;box-shadow:0 0 0 3px #e7e0f8}.status-action[data-status="completed"].active>span{border-color:#37a36b;background:#37a36b;box-shadow:0 0 0 3px #d8f0e2}
@media(max-width:767px){.detail-side{display:flex!important;align-items:stretch!important;flex-direction:column!important;width:100%!important;max-width:100%!important}.detail-side>.panel{display:block;width:100%!important;max-width:none!important;flex:0 0 auto!important}.attachment-upload input[type="file"].form-control,.comment-form input[type="file"].form-control{display:block;width:100%;min-height:50px;height:50px;padding:0!important;overflow:hidden;font-size:16px;line-height:48px;background:#fff}.attachment-upload input[type="file"].form-control::file-selector-button,.comment-form input[type="file"].form-control::file-selector-button{height:48px;margin:0 12px 0 0!important;padding:0 14px!important;border:0;border-right:1px solid #dce1e6;border-radius:0;background:#f2f4f6;color:var(--ink);font:inherit;font-weight:650;line-height:48px}.attachment-upload input[type="file"].form-control::-webkit-file-upload-button,.comment-form input[type="file"].form-control::-webkit-file-upload-button{height:48px;margin:0 12px 0 0;padding:0 14px;border:0;border-right:1px solid #dce1e6;background:#f2f4f6;color:var(--ink);font:inherit;font-weight:650;line-height:48px}}
@media(max-width:767px){.detail-side>.pricing-warning-panel{display:flex}}

/* Gestione account cliente responsive e visibilità password del login. */
.client-accounts-table-wrap{max-width:100%;overflow-x:auto}.client-accounts-table{min-width:0}.client-account-person{display:flex;align-items:center;gap:10px;min-width:0}.client-account-person>span:last-child{min-width:0}.client-account-person small{overflow-wrap:anywhere}.client-account-cards{display:flex;flex-direction:column;gap:12px}.client-account-card{min-width:0;padding:15px;border:1px solid var(--line);border-radius:12px;background:#f9fbfc}.client-account-card>.client-account-person{padding-bottom:14px;border-bottom:1px solid var(--line)}.client-account-card-facts{display:flex;flex-direction:column;padding:6px 0 12px}.client-account-card-facts>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}.client-account-card-facts>div>small{flex:none;color:#85919c;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.client-account-card-facts>div>strong{font-size:.78rem}.password-visibility .bi{margin:0}.login-password-group .password-visibility{border-color:#dce1e6;background:#f7f9fa}.login-password-group .password-visibility:hover{background:#edf1f3}
@media(max-width:767px){.client-accounts-panel{padding:18px;overflow:hidden}.client-accounts-heading{display:flex;align-items:stretch;flex-direction:column;gap:16px}.client-accounts-heading>div{width:100%;min-width:0}.client-accounts-heading>.btn{width:100%}.client-account-person .mini-avatar{width:38px;height:38px;flex:none}.client-account-card>.btn{white-space:normal}}
@media(max-width:575px){.client-account-modal-footer{display:flex;align-items:stretch;flex-direction:column;gap:9px}.client-account-modal-footer>span{display:none}.client-account-modal-footer>.account-save-actions{display:flex!important;align-items:stretch;flex-direction:column;order:1;width:100%}.client-account-modal-footer>.account-delete-button{order:2;width:100%}.client-account-modal-footer .account-save-button,.client-account-modal-footer .account-cancel-button{width:100%;min-height:48px;white-space:nowrap}.client-account-modal-footer .account-save-button{order:1}.client-account-modal-footer .account-cancel-button{order:2}.login-password-group .form-control{min-width:0}}

/* Compact activity list controls and operational dates. */
.task-index-table{min-width:1280px}.task-status-select.form-select-sm{min-height:32px;padding-top:.28rem;padding-bottom:.28rem;line-height:1.25}.task-date-cell{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:start;gap:2px 6px;white-space:nowrap;color:#52616d;font-size:.74rem}.task-date-cell .bi{grid-row:1/3;color:#8a959f}.task-date-cell small{grid-column:2;color:var(--muted);font-size:.66rem}.task-date-cell.overdue,.task-date-cell.overdue .bi,.task-date-cell.overdue small{color:#bd4141;font-weight:750}.task-list-title>.task-type-badge+.task-author{margin-top:5px}
.task-status-select.form-select-sm{min-height:30px;padding-top:.2rem;padding-bottom:.2rem;line-height:1.2}

/* Modali operative uniformi e selettori visuali per tipologia/urgenza. */
.task-choice-fieldset{min-width:0;margin:0;padding:0;border:0}.task-choice-fieldset>legend{float:none;width:auto;margin-bottom:8px}.task-choice-grid{display:grid;gap:9px}.task-type-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.urgency-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.task-choice{position:relative;display:flex;align-items:center;gap:9px;min-width:0;min-height:58px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#65717c;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}.task-choice:hover{transform:translateY(-1px)}.task-choice:has(input:focus-visible){outline:3px solid rgba(var(--primary-rgb),.17);outline-offset:1px}.task-choice-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:9px;background:#edf1f3;font-size:1rem}.task-choice>strong{min-width:0;font-size:.76rem;line-height:1.2}.task-choice-check{display:none;margin-left:auto;font-size:.82rem}.task-choice:has(input:checked){font-weight:750}.task-choice:has(input:checked) .task-choice-check{display:block}.task-choice-type-bug:has(input:checked){border-color:#efb7ba;background:#fff1f1;color:#b83d43}.task-choice-type-bug .task-choice-icon{background:#fde9e9;color:#b83d43}.task-choice-type-feature:has(input:checked){border-color:#9edbed;background:#eff9fd;color:#137fa9}.task-choice-type-feature .task-choice-icon{background:#e5f5fb;color:#137fa9}.task-choice-type-improvement:has(input:checked){border-color:#cfc1f1;background:#f6f3ff;color:#6849ae}.task-choice-type-improvement .task-choice-icon{background:#eee9ff;color:#6849ae}.task-choice-type-other:has(input:checked){border-color:#c8d0d5;background:#f4f6f7;color:#596671}.task-choice-type-other .task-choice-icon{background:#edf0f2;color:#68737e}.task-choice-urgency-low:has(input:checked){border-color:#addbc3;background:#f0faf5;color:#228052}.task-choice-urgency-low .task-choice-icon{background:#e4f7ed;color:#228052}.task-choice-urgency-medium:has(input:checked){border-color:#efd28a;background:#fff9e9;color:#9b6706}.task-choice-urgency-medium .task-choice-icon{background:#fff2d8;color:#9b6706}.task-choice-urgency-high:has(input:checked){border-color:#efb7ba;background:#fff1f1;color:#b83d43}.task-choice-urgency-high .task-choice-icon{background:#fde9e9;color:#b83d43}
@media(max-width:991px){.entry-modal-dialog{width:calc(100% - 24px);height:calc(100% - 24px);margin:12px auto}.entry-modal-dialog .modal-content{max-height:100%;border-radius:18px!important;overflow:hidden}.entry-modal-dialog.task-edit-dialog .modal-content>form{height:auto;max-height:100%}.entry-modal-dialog .modal-header{padding:18px 20px}.entry-modal-dialog .modal-body{padding:20px}.entry-modal-dialog .modal-footer{padding:14px 20px}.task-type-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575px){.task-choice{min-height:56px;padding:9px}.task-choice-icon{width:32px;height:32px}.task-choice>strong{font-size:.71rem}.urgency-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.task-choice-urgency{justify-content:center;flex-wrap:wrap;gap:5px;text-align:center}.task-choice-urgency .task-choice-icon{width:28px;height:28px}.task-choice-urgency .task-choice-check{position:absolute;top:5px;right:5px}.entry-modal-dialog .modal-footer{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px}.entry-modal-dialog .modal-footer .btn{width:100%;padding-left:.55rem;padding-right:.55rem;white-space:nowrap}}

/* Badge del dettaglio e icone urgenza coerenti in tutte le viste. */
.urgency-badge{gap:5px}.urgency-badge .bi{font-size:.82em}.detail-heading-badges>.status-pill,.detail-heading-badges>.task-type-badge,.detail-heading-badges>.urgency-badge{padding:7px 12px;font-size:.79rem;line-height:1.2}.detail-heading-badges>.task-type-badge .bi,.detail-heading-badges>.urgency-badge .bi{font-size:.9rem}

/* Badge, titoli e metadati compatti dell'elenco attività. */
.status-pill,.task-type-badge,.urgency-badge{min-height:27px;padding:5px 9px;font-size:.72rem;line-height:1.2;gap:5px}.status-pill .bi,.task-type-badge .bi,.urgency-badge .bi{font-size:.78rem;line-height:1}.detail-heading-badges>.status-pill,.detail-heading-badges>.task-type-badge,.detail-heading-badges>.urgency-badge{min-height:32px;padding:7px 12px;font-size:.79rem}.detail-heading-badges>.status-pill .bi,.detail-heading-badges>.task-type-badge .bi,.detail-heading-badges>.urgency-badge .bi{font-size:.9rem}.task-list-title .task-title-line>strong,.task-card h3{font-size:.87rem;line-height:1.35}.task-date-cell-plain{display:flex;align-items:flex-start;flex-direction:column;gap:2px}.task-date-cell-plain small{display:block}.task-index-table{min-width:1360px}
.task-index-table .task-col-hours{min-width:50px}.task-index-table .task-col-cost{min-width:80px}.task-index-table .task-col-creator{min-width:110px;white-space:nowrap}
.task-index-table .task-col-created{min-width:100px}.task-col-creator .task-date-cell{display:flex;align-items:center;gap:6px}
.task-card-due.overdue{color:#bd4141;font-weight:750}
.mobile-task-due.overdue{color:#bd4141;font-weight:750}.detail-badge-break{flex-basis:100%;width:0;height:0}.deadline-danger-badge{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:7px 12px;border-radius:100px;background:#fde9e9;color:#b83d43;font-size:.79rem;font-weight:800;line-height:1.2;white-space:nowrap}.deadline-danger-badge .bi{font-size:.9rem}

/* Upload multipli e anteprime protette nel dettaglio attività. */
.attachment-upload .task-dropzone{margin-top:18px}.task-dropzone-compact{padding:14px}.task-dropzone-compact .task-dropzone-target{min-height:130px}.task-dropzone-compact .dropzone-main-icon{width:46px;height:46px;font-size:1.15rem}.task-dropzone-error{margin-top:10px;padding:9px 11px;border-radius:8px;background:#fdeaea;color:#b83d43;font-size:.72rem;font-weight:650}.comment-form>.task-dropzone{margin-top:14px}.comment-files.attachment-list{display:flex;flex-direction:column;gap:0;margin-top:12px}.comment-files .attachment-row{width:100%;padding:10px 0}.comment-files .attachment-row:first-child{border-top:1px solid var(--line)}.comment-files .attachment-row:last-child{border-bottom:0}.comment-files .attachment-row strong{font-size:.76rem}.comment-files .attachment-row small{font-size:.65rem}.comment-files .attachment-actions a{display:inline-flex;max-width:none;padding:.375rem .75rem;border-radius:.375rem;background:var(--bs-light);font-size:.875rem;font-weight:600}.attachment-lightbox .modal-content{border:0;border-radius:0;background:rgba(13,20,26,.97);color:#fff}.attachment-lightbox .modal-header{border-color:rgba(255,255,255,.15)}.attachment-lightbox .eyebrow{color:#83d5f2}.attachment-lightbox .modal-title{max-width:min(70vw,900px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-lightbox .modal-body{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:25px 80px}.attachment-lightbox img{display:block;max-width:100%;max-height:calc(100dvh - 165px);object-fit:contain}.lightbox-nav{position:absolute;top:50%;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.25rem;transform:translateY(-50%)}.lightbox-nav:hover{background:rgba(255,255,255,.25)}.lightbox-prev{left:18px}.lightbox-next{right:18px}.attachment-lightbox .modal-footer{justify-content:space-between;border-color:rgba(255,255,255,.15)}.attachment-lightbox .modal-footer>span{color:#cbd3d8;font-size:.75rem}
@media(max-width:767px){.task-dropzone-compact{padding:10px}.task-dropzone-compact .task-dropzone-target{min-height:115px;padding:14px}.task-dropzone-summary{align-items:flex-start;flex-wrap:wrap}.task-dropzone-summary>.btn{width:100%;margin-left:0}.attachment-row{align-items:flex-start;flex-wrap:wrap}.attachment-row>.attachment-actions{width:100%;justify-content:flex-end;padding-left:48px}.comment-files .attachment-row>.attachment-actions{padding-left:0}.attachment-lightbox .modal-body{padding:18px 12px 78px}.attachment-lightbox img{max-height:calc(100dvh - 190px)}.lightbox-nav{top:auto;bottom:14px;width:44px;height:44px;transform:none}.lightbox-prev{left:calc(50% - 52px)}.lightbox-next{right:calc(50% - 52px)}.attachment-lightbox .modal-title{max-width:68vw;font-size:1rem}}

/* Recurring billing */
.recurring-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}.recurring-stats .panel{display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit}.recurring-stats small,.recurring-facts small{display:block;color:var(--muted);font-size:.76rem}.recurring-stats strong{font-size:1.45rem}.recurring-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.recurring-card{border:1px solid var(--line);border-radius:18px;padding:1.25rem;background:#fff}.recurring-card.is-overdue{border-color:#efb3b6;box-shadow:inset 4px 0 #dc4c54}.recurring-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.recurring-card h2{font-size:1.1rem;margin:.5rem 0 .15rem}.recurring-card header p,.recurring-description{color:var(--muted);margin:0}.recurring-amount{color:#1485ad;white-space:nowrap}.recurring-status{display:inline-flex;padding:.3rem .65rem;border-radius:999px;font-size:.72rem;font-weight:800}.recurring-status-active{background:#e3f7ec;color:#227c50}.recurring-status-planned{background:#e6f5fb;color:#1485ad}.recurring-status-paused{background:#fff2d8;color:#9b6706}.recurring-status-ended{background:#edf0f2;color:#65717d}.recurring-description{font-size:.88rem;margin-top:1rem}.recurring-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0;padding:1rem;background:#f7f9fa;border-radius:12px}.recurring-facts b{font-size:.86rem}.recurring-source{display:inline-flex;align-items:center;gap:.4rem;color:#687583;font-size:.82rem;text-decoration:none}.recurring-history{margin-top:1rem;border-top:1px solid var(--line);padding-top:.8rem}.recurring-history summary{cursor:pointer;font-weight:700}.recurring-history>div{display:flex;align-items:center;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.recurring-history>div>span{flex:1;min-width:0}.recurring-history small{display:block;color:var(--muted)}.recurring-card footer{display:flex;gap:.5rem;margin-top:1rem}.task-recurring-list{margin-top:1rem}.task-recurring-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.task-recurring-list small{display:block;color:var(--muted)}.economic-grand-total{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding:1rem;border-radius:12px;background:#eaf7fc;color:#126f91}.economic-grand-total strong{font-size:1.15rem}.task-recurring-editor,.recurring-repeater-row{padding:1rem;border:1px solid #bee2f0;border-radius:14px;background:#f4fbfe}.recurring-repeater-row{margin-top:1rem;background:#fff}.recurring-form-note{padding:.9rem;border-radius:10px;background:#eef8fc;color:#317188}.billing-section-heading{margin:2.25rem 0 1rem}.billing-section-heading h2{margin:.2rem 0;font-size:1.55rem}.billing-section-heading p{color:var(--muted);margin:0}.renewal-invoice-fields{display:grid;grid-template-columns:1fr 1fr 1.3fr auto;gap:1rem;align-items:end;padding:1.25rem;border-top:1px solid var(--line)}.billing-queue-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:991.98px){.recurring-grid{grid-template-columns:1fr}.renewal-invoice-fields{grid-template-columns:1fr 1fr}.renewal-invoice-fields .btn{width:100%}.billing-queue-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.recurring-stats,.recurring-facts,.renewal-invoice-fields{grid-template-columns:1fr}.recurring-card>header{flex-direction:column}.recurring-amount{font-size:1.15rem}.billing-queue-stats{grid-template-columns:1fr 1fr}}

/* Coda di fatturazione unificata: attività, canoni collegati e rinnovi. */
.billing-queue-stats.billing-queue-stats-unified{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-unified-table{min-width:900px}.billing-unified-table th:nth-child(2){min-width:260px}.billing-unified-table th:nth-child(3){min-width:145px}.billing-unified-table th:nth-child(4){min-width:145px}.billing-unified-table th:nth-child(5){min-width:90px}.billing-item-title{display:flex;align-items:flex-start;flex-direction:column;min-width:0;color:var(--ink)}.billing-item-title strong{font-size:.84rem;line-height:1.3}.billing-item-title small{margin-top:4px;color:var(--muted);font-size:.68rem}.billing-reference-date{display:flex;align-items:flex-start;gap:7px;white-space:nowrap;color:#52616d;font-size:.76rem}.billing-reference-date>i{margin-top:1px;color:#89949e}.billing-reference-date span,.billing-reference-date small{display:block}.billing-reference-date small{margin-top:2px;color:var(--muted);font-size:.65rem;font-weight:650}.billing-reference-warning,.billing-reference-warning>i,.billing-reference-warning small{color:#b47506}.billing-reference-danger,.billing-reference-danger>i,.billing-reference-danger small{color:#bd4141}.billing-age-warning>td:first-child{box-shadow:inset 3px 0 #e7a324}.billing-age-danger>td:first-child{box-shadow:inset 3px 0 #dc5353}.billing-cost-recurring{color:#6849ae}.billing-cost-none{color:#9b6706}.billing-quantity{white-space:nowrap;color:#52616d;font-size:.78rem;font-weight:700}.billing-linked-row{background:#fafbfd}.billing-linked-row>td{padding-top:.68rem!important;padding-bottom:.68rem!important}.billing-linked-row>td:first-child{padding-left:1.25rem!important}.billing-linked-row .form-check-input{opacity:.65}.billing-linked-row .billing-item-title strong{font-size:.76rem}.billing-linked-note{display:inline-flex;align-items:center;gap:5px;color:#89949e;font-size:.68rem;white-space:nowrap}.billing-mobile-project{display:block;margin:-7px 0 11px 29px;color:var(--muted)}.billing-mobile-canons{display:flex;flex-direction:column;gap:7px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.billing-mobile-canons>div{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:9px;background:#f6f4fc;color:#6849ae}.billing-mobile-canons>div>span{min-width:0;flex:1}.billing-mobile-canons strong,.billing-mobile-canons small{display:block}.billing-mobile-canons strong{font-size:.72rem}.billing-mobile-canons small{margin-top:2px;color:#806bb2;font-size:.62rem}.billing-mobile-canons b{white-space:nowrap;font-size:.7rem}.billing-modal-table-wrap{margin-bottom:20px;border:1px solid var(--line);border-radius:11px}.billing-modal-table{min-width:620px;margin:0}.billing-modal-table>:not(caption)>*>*{padding:.75rem}.billing-modal-table strong,.billing-modal-table small{display:block}.billing-modal-table td>small{margin-top:3px;color:var(--muted);font-size:.65rem}.billing-modal-linked-row{background:#fafbfd}.billing-modal-linked-row td:first-child{padding-left:1.5rem}.billing-invoice-fields{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:14px}.billing-invoice-fields>div{min-width:0}
@media(max-width:767px){.billing-queue-stats.billing-queue-stats-unified{grid-template-columns:1fr 1fr}.billing-mobile-card.billing-age-warning{border-left:4px solid #e7a324}.billing-mobile-card.billing-age-danger{border-left:4px solid #dc5353}.billing-reference-warning{color:#b47506!important;font-weight:750}.billing-reference-danger{color:#bd4141!important;font-weight:750}.billing-invoice-fields{grid-template-columns:1fr}.billing-modal-table-wrap{overflow-x:auto}.billing-modal-table{min-width:560px}}

/* Tipografia più leggera e verde speranza per i rinnovi. */
.billing-cost-recurring{color:#228052}.billing-mobile-canons>div{background:#eef9f3;color:#228052}.billing-mobile-canons small{color:#4d8268}.billing-client-group,.billing-client-group strong,.billing-client-group b,.billing-client-group .btn,.billing-client-group .billing-cost-type,.billing-client-group .billing-amount,.billing-client-group .billing-item-title strong,.billing-client-group .billing-selection-summary,.billing-client-group .form-check{font-weight:600}.billing-client-header h2,.billing-bulk-summary strong,.billing-bulk-summary b,.billing-modal-table strong,.billing-modal-table .billing-amount{font-weight:600}.billing-reference-date small,.billing-quantity{font-weight:600}

/* Gerarchia tipografica: peso forte solo per titoli e segnalazioni importanti. */
strong,b,.btn,.form-label,.sidebar .nav-link,.back-link,.task-card-project,.status-action,.task-open-link,.active-filter-summary>span,.active-filter-summary a strong,.task-choice:has(input:checked),.queue-preview>summary,.recurring-history summary{font-weight:600}.panel-header h2,.panel>h2,.kanban-column h2,.task-card h3,.task-type-badge,.status-pill,.urgency-badge,.billing-badge,.recurring-status,.task-choice>strong,.table thead th{font-weight:600}

/* Azioni esplicite nella coda di fatturazione. */
.billing-action-column{width:62px}.billing-row-action{display:inline-grid;place-items:center;width:38px;height:38px;padding:0}.billing-row-action .bi{margin:0}.billing-mobile-title{color:var(--ink);font-weight:600}.billing-mobile-action{margin-top:14px}.billing-primary-row{cursor:default}

/* Elenchi fatturati e archiviati coerenti con la pagina Attività. */
.special-task-toolbar{margin-bottom:12px}.special-task-table{min-width:1320px}.special-task-list .task-index-desktop{padding:0}.special-task-list .task-index-table .task-list-title{min-width:220px}.special-task-list .table-task-project{min-width:175px}.special-invoice-column{min-width:145px}.special-date-column{min-width:130px}.special-actions-column{min-width:130px}.special-invoice-reference{display:flex;align-items:flex-start;gap:7px;white-space:nowrap;color:#52616d;font-size:.76rem}.special-invoice-reference>i{margin-top:1px;color:#228052}.special-invoice-reference span,.special-invoice-reference small{display:block}.special-invoice-reference small{margin-top:2px;color:var(--muted);font-size:.66rem}.special-table-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.special-table-actions form{margin:0}.special-table-actions .btn{display:inline-grid;place-items:center;width:36px;height:36px;padding:0}.special-table-actions .btn .bi{margin:0}.special-mobile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.special-mobile-facts>span{padding:10px;border-radius:9px;background:#f5f7f8}.special-mobile-facts small,.special-mobile-facts b,.special-mobile-facts em{display:block}.special-mobile-facts small{color:var(--muted);font-size:.63rem;text-transform:uppercase;letter-spacing:.06em}.special-mobile-facts b{margin-top:3px;font-size:.76rem}.special-mobile-facts em{margin-top:1px;color:var(--muted);font-size:.66rem;font-style:normal}.special-mobile-actions{display:flex;gap:7px;margin:14px -16px 0;padding:12px 16px;border-top:1px solid var(--line);background:#f7fbfc}.special-mobile-actions form{display:flex;flex:1;margin:0}.special-mobile-actions .btn{flex:1;white-space:nowrap}.special-mobile-actions>.btn:first-child{flex:2}
@media(max-width:767px){.special-task-toolbar{margin-left:1px}.special-task-list{background:transparent;border:0;box-shadow:none;overflow:visible}.special-task-mobile .mobile-task-head>div>small{display:block;margin-top:4px;color:var(--muted)}.special-task-mobile .mobile-task-row{padding-top:16px}.special-task-mobile .task-type-badge{margin-top:7px}}
@media(max-width:420px){.special-mobile-facts{grid-template-columns:1fr}.special-mobile-actions{flex-wrap:wrap}.special-mobile-actions>.btn:first-child{flex:1 0 100%}}

/* Gerarchia più snella, descrizioni compatte e azioni attività raccolte. */
h1,h2,h3,h4,h5,h6{font-weight:600!important}
.description-text,.description-empty p{font-size:.88rem}
input::placeholder,textarea::placeholder,.form-control::placeholder{font-size:.88rem}
.rich-text-content:empty:before{font-size:.88rem}
.task-more-toggle{display:inline-grid;place-items:center;min-width:46px;min-height:42px;padding:.65rem}
.task-more-toggle .bi{margin:0;font-size:1.08rem;line-height:1}
.task-action-dropdown{min-width:215px;padding:7px}
.task-action-dropdown form{margin:0}
.task-action-dropdown .dropdown-item{display:flex;align-items:center;gap:9px;border-radius:7px;padding:.65rem .75rem;color:#36434d;font-weight:600}
.task-action-dropdown .dropdown-item:hover,.task-action-dropdown .dropdown-item:focus{background:#eef1f3;color:#202b34}
.task-action-dropdown .dropdown-danger-action{background:#dc3545;color:#fff;font-weight:600}
.task-action-dropdown .dropdown-danger-action:hover,.task-action-dropdown .dropdown-danger-action:focus{background:#bb2d3b;color:#fff}
.task-action-dropdown .dropdown-divider{margin:5px 0}
@media(max-width:575px){.task-more-toggle{min-width:44px}.task-action-dropdown{min-width:205px}}

/* Azioni del dettaglio: allineate a destra da tablet e compatte su mobile. */
@media(min-width:768px){.detail-heading{flex-direction:row;align-items:flex-start}.detail-heading>div:first-child{min-width:0;flex:1 1 auto}.task-admin-actions{width:auto;flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}.task-admin-actions>.btn,.task-admin-actions>form>.btn{white-space:nowrap}.task-admin-actions>.dropdown{flex:0 0 auto}}
@media(max-width:767px){.task-admin-actions{display:flex;grid-template-columns:none;width:100%;align-items:stretch;flex-wrap:nowrap;gap:9px}.task-admin-actions>*{width:auto;min-width:0;margin:0}.task-admin-actions>:first-child{grid-column:auto;flex:1 1 auto}.task-admin-actions>.btn,.task-admin-actions>form{flex:1 1 auto;width:auto}.task-admin-actions>.btn,.task-admin-actions>form>.btn{width:100%;height:100%;white-space:nowrap}.task-admin-actions>.dropdown{flex:0 0 46px;width:46px}.task-admin-actions .dropdown>.task-more-toggle{width:46px;height:100%;min-height:44px;padding:.55rem;white-space:nowrap}}

/* Elenco tabellare delle ricorrenze. */
.recurring-table-panel{padding:0}.recurring-table-wrap{padding:8px 20px 16px}.recurring-table{min-width:1180px}.recurring-table th:nth-child(1){min-width:120px}.recurring-table th:nth-child(2){min-width:245px}.recurring-table th:nth-child(3){min-width:170px}.recurring-table th:nth-child(8){min-width:150px}.recurring-actions-column{min-width:96px}.recurring-table-status{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap}.recurring-table-status-active{background:#e4f7ed;color:#228052}.recurring-table-status-paused{background:#edf0f2;color:#68737e}.recurring-table-status-ended{background:#fde9e9;color:#b83d43}.recurring-table-status-planned{background:#e5f5fb;color:#137fa9}.recurring-table-title,.recurring-table-context{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.recurring-table-title strong,.recurring-table-context strong{font-size:.82rem;font-weight:600}.recurring-table-title small{max-width:370px;margin-top:4px;color:#687581;font-size:.71rem;line-height:1.4;white-space:normal;overflow-wrap:anywhere}.recurring-table-context small{margin-top:3px;color:var(--muted);font-size:.68rem}.recurring-table-frequency,.recurring-table-money{color:#52616d;font-size:.76rem;white-space:nowrap}.recurring-table-date{display:flex;align-items:flex-start;gap:7px;color:#52616d;font-size:.76rem;white-space:nowrap}.recurring-table-date>i{margin-top:1px;color:#89949e}.recurring-table-date small{display:block;margin-top:2px;color:var(--muted);font-size:.65rem}.recurring-table-date.is-overdue,.recurring-table-date.is-overdue>i,.recurring-table-date.is-overdue small{color:#bd4141;font-weight:600}.recurring-row-overdue>td:first-child{box-shadow:inset 3px 0 #dc5353}.recurring-table-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.recurring-table-actions form{margin:0}.recurring-status-fieldset{min-width:0;margin-bottom:0;padding:0;border:0}.recurring-status-fieldset>legend{float:none;width:auto}.recurring-status-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.recurring-status-choice{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:10px;border:1px solid var(--line);border-radius:10px;color:#68737e;cursor:pointer}.recurring-status-choice:has(input:focus-visible){outline:3px solid rgba(var(--primary-rgb),.17);outline-offset:1px}.recurring-status-choice>strong{font-size:.78rem;font-weight:600}.recurring-status-check{display:none;position:absolute;top:5px;right:7px;font-size:.7rem}.recurring-status-choice:has(input:checked) .recurring-status-check{display:block}.recurring-status-choice-active:has(input:checked){border-color:#addbc3;background:#f0faf5;color:#228052}.recurring-status-choice-paused:has(input:checked){border-color:#c8d0d5;background:#f4f6f7;color:#596671}.recurring-status-choice-ended:has(input:checked){border-color:#efb7ba;background:#fff1f1;color:#b83d43}
@media(max-width:767px){.recurring-table-wrap{padding:5px 14px 14px}.recurring-status-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.recurring-status-choice{min-height:52px;gap:5px;padding:8px 5px}.recurring-status-choice>strong{font-size:.7rem}}
.recurring-readonly-date{display:flex;align-items:center;gap:8px;background:#f5f7f8;color:#68737e}.recurring-modal-history{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}

/* Descrizioni operative disponibili anche durante la fatturazione. */
.billing-item-title .billing-item-description{max-width:360px;margin-top:5px;color:#52616d;font-size:.69rem;line-height:1.4;white-space:normal;overflow-wrap:anywhere}.billing-item-title .billing-item-project{color:var(--muted)}.billing-mobile-description{margin:8px 0 0 29px;color:#52616d;font-size:.72rem;line-height:1.45;overflow-wrap:anywhere}.billing-modal-table{min-width:820px}.billing-modal-table th:nth-child(2){min-width:245px}.billing-modal-description{display:block;max-width:330px;color:#52616d;font-size:.72rem;line-height:1.45;white-space:normal;overflow-wrap:anywhere}

/* Filtri, collegamenti e storico sintetico delle ricorrenze. */
.recurring-description-input{min-height:96px;overflow-y:hidden;resize:none}.recurring-filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:15px}.recurring-filter-bar>span{display:inline-flex;align-items:center;gap:6px;margin-right:3px;color:#687581;font-size:.76rem;font-weight:600}.recurring-filter-option{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#68737e;font-size:.73rem;font-weight:600;cursor:pointer;transition:.15s}.recurring-filter-option:hover{background:#f7f9fa}.recurring-filter-current:has(input:checked){border-color:#addbc3;background:#e4f7ed;color:#228052}.recurring-filter-paused:has(input:checked){border-color:#c8d0d5;background:#edf0f2;color:#596671}.recurring-filter-ended:has(input:checked){border-color:#efb7ba;background:#fde9e9;color:#b83d43}.recurring-table{min-width:1370px}.recurring-table th:nth-child(9){min-width:145px}.recurring-task-reference{display:inline-flex!important;align-items:center;gap:4px;color:#687581!important}.recurring-task-reference b{font-weight:600}.recurring-last-invoice{display:flex;align-items:center;gap:8px;white-space:nowrap}.recurring-last-invoice>span>strong,.recurring-last-invoice>span>small{display:block}.recurring-last-invoice>span>strong{font-size:.77rem;font-weight:600}.recurring-last-invoice>span>small{margin-top:2px;color:var(--muted);font-size:.66rem}.recurring-invoice-pdf{color:#bd4141}.recurring-linked-task-callout{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px;padding:12px 14px;border-radius:11px;background:#eef8fc;color:#317188}.recurring-linked-task-callout>span{display:flex;align-items:center;gap:10px;min-width:0}.recurring-linked-task-callout>span>span{font-size:.7rem}.recurring-linked-task-callout strong{display:block;margin-top:2px;color:#1d5368;font-size:.8rem}.billing-modal-description{white-space:pre-line}
@media(max-width:575px){.recurring-filter-bar>span{width:100%;margin-bottom:2px}.recurring-filter-option{flex:1 1 auto;justify-content:center;padding:8px}.recurring-linked-task-callout{align-items:stretch;flex-direction:column}.recurring-linked-task-callout .btn{width:100%}}
.recurring-actions-column{min-width:132px}
