/* ============================================
   De Kruisboog 10 – Task Manager PWA v3
   Premium UI/UX Redesign
   ============================================ */
:root, [data-theme="dark"] {
  --bg-primary: #050508; 
  --bg-secondary: #0a0a10;
  --bg-card: rgba(255,255,255,0.03); 
  --bg-card-hover: rgba(255,255,255,0.06);
  --bg-glass: rgba(5,5,8,0.75); 
  --border: rgba(255,255,255,0.08);
  --border-hover: rgba(255,255,255,0.15);
  --text-primary: #f8f8f8; 
  --text-secondary: #a0a0b0; 
  --text-muted: #656575;
  --amber: #f59e0b; --amber-dim: rgba(245,158,11,0.15);
  --emerald: #10b981; --emerald-dim: rgba(16,185,129,0.15);
  --rose: #f43f5e; --rose-dim: rgba(244,63,94,0.15);
  --blue: #3b82f6; --blue-dim: rgba(59,130,246,0.15);
  --violet: #8b5cf6; --violet-dim: rgba(139,92,246,0.15);
  --gradient-primary: linear-gradient(135deg, #f59e0b, #ea580c);
  --gradient-success: linear-gradient(135deg, #10b981, #059669);
  --gradient-danger: linear-gradient(135deg, #f43f5e, #e11d48);
  --radius-sm: 10px; --radius-md: 16px; --radius-lg: 24px; --radius-xl: 32px;
  --safe-top: env(safe-area-inset-top,0px); --safe-bottom: env(safe-area-inset-bottom,0px);
}
[data-theme="light"] {
  --bg-primary: #f8f9fa; 
  --bg-secondary: #ffffff;
  --bg-card: rgba(255,255,255,1); 
  --bg-card-hover: rgba(240,240,245,1);
  --bg-glass: rgba(248,249,250,0.85); 
  --border: rgba(0,0,0,0.08);
  --border-hover: rgba(0,0,0,0.15);
  --text-primary: #111827; 
  --text-secondary: #4b5563; 
  --text-muted: #9ca3af;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100dvh;overscroll-behavior:none;-webkit-font-smoothing:antialiased}
.hidden{display:none!important}

/* --- Common UI Elements --- */
.card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

/* --- Splash --- */
.splash{position:fixed;inset:0;z-index:9999;background:var(--bg-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;transition:opacity .4s,visibility .4s}
.splash.out{opacity:0;visibility:hidden}
.splash-icon{font-size:64px;animation:pulse 1.6s infinite cubic-bezier(0.4,0,0.2,1)}
.splash-title{font-size:26px;font-weight:800;letter-spacing:-.5px;background:var(--gradient-primary);-webkit-background-clip:text;color:transparent}
.splash-sub{font-size:14px;color:var(--text-secondary);font-weight:500}
.splash-bar{width:160px;height:4px;border-radius:4px;background:var(--border);margin-top:20px;overflow:hidden}
.splash-fill{height:100%;width:0;border-radius:4px;background:var(--gradient-primary);animation:load 1.2s ease-in-out forwards}
@keyframes load{to{width:100%}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}

/* --- Header --- */
.app-header{position:sticky;top:0;z-index:100;background:var(--bg-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);padding-top:var(--safe-top)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;max-width:640px;margin:0 auto;width:100%}
.header-left{display:flex;align-items:center;gap:14px}
.header-emoji{font-size:32px; filter: drop-shadow(0 2px 8px rgba(0,0,0,0.2))}
.header-title{font-size:19px;font-weight:800;letter-spacing:-.4px}
.header-subtitle{font-size:12px;color:var(--text-secondary);font-weight:500;margin-top:2px}
.header-actions{display:flex;align-items:center;gap:8px}
.icon-btn{width:40px;height:40px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow: 0 2px 10px rgba(0,0,0,0.1)}
.icon-btn:hover{background:var(--bg-card-hover);border-color:var(--border-hover);transform:translateY(-1px)}
.fab-header{width:42px;height:42px;border-radius:50%;background:var(--gradient-primary);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(245,158,11,0.4);transition:all .2s ease}
.fab-header:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(245,158,11,0.5)}
.fab-header:active{transform:scale(.92)}

/* --- Countdown Banner --- */
.countdown-banner{display:flex;align-items:center;gap:20px;padding:20px;max-width:640px;margin:20px auto 16px;width:calc(100% - 40px);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(0,0,0,0.15)}
.cb-ring{position:relative;width:72px;height:72px;flex-shrink:0}
.cb-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.cb-track{fill:none;stroke:var(--border);stroke-width:5}
.cb-fill{fill:none;stroke:url(#cbGradient);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(0.4,0,0.2,1)}
.cb-days{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:var(--amber);text-shadow: 0 2px 10px rgba(245,158,11,0.3)}
.cb-info{display:flex;flex-direction:column;gap:4px}
.cb-label{font-size:15px;font-weight:700;letter-spacing:-0.2px}
.cb-date{font-size:13px;color:var(--text-secondary);font-weight:500}

/* --- Progress Cards --- */
.progress-section{padding:0 20px 16px;max-width:640px;margin:0 auto;width:100%}
.progress-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.progress-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,0.1);position:relative;overflow:hidden}
.progress-card::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;opacity:0.5}
.accent-amber::after{background:var(--amber)}
.accent-emerald::after{background:var(--emerald)}
.accent-rose::after{background:var(--rose)}
.pc-icon{font-size:24px;margin-bottom:2px;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.3))}
.pc-body{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%}
.pc-value{font-size:22px;font-weight:800;line-height:1;display:block}
.pc-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-weight:600;display:block}
.accent-amber .pc-value{color:var(--amber);text-shadow: 0 2px 8px rgba(245,158,11,0.2)}
.accent-emerald .pc-value{color:var(--emerald);text-shadow: 0 2px 8px rgba(16,185,129,0.2)}
.accent-rose .pc-value{color:var(--rose);text-shadow: 0 2px 8px rgba(244,63,94,0.2)}

.overall-progress{margin-top:20px;background:var(--bg-card);padding:16px;border-radius:var(--radius-md);border:1px solid var(--border)}
.op-header{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:10px}
.op-bar{height:8px;border-radius:8px;background:rgba(255,255,255,0.05);overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,0.2)}
.op-fill{height:100%;border-radius:8px;background:var(--gradient-success);transition:width 1s cubic-bezier(.4,0,.2,1);width:0;box-shadow: 0 0 10px rgba(16,185,129,0.5)}

/* --- Tabs --- */
.tab-nav{display:flex;gap:8px;padding:0 20px 16px;max-width:640px;margin:0 auto;width:100%}
.tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 6px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid transparent;color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(0,0,0,0.05)}
.tab svg{opacity:0.7}
.tab.active{background:var(--bg-card-hover);border-color:var(--border-hover);color:var(--text-primary);box-shadow:0 4px 12px rgba(0,0,0,0.15)}
.tab.active svg{color:var(--amber);opacity:1}
.tab:not(.active):hover{color:var(--text-primary);background:var(--bg-card-hover)}

/* --- Views --- */
.view{display:none}.view.active{display:block;animation:fadeIn 0.3s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.view-inner{max-width:640px;margin:0 auto;width:100%;padding:0 20px 100px}

/* --- This Week --- */
.this-week-section{padding:0 20px 24px;max-width:640px;margin:0 auto;width:100%}
.section-chip{font-size:13px;font-weight:800;color:var(--text-primary);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.tw-list{display:flex;flex-direction:column;gap:8px}
.tw-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;cursor:pointer;transition:all .2s;box-shadow:0 2px 10px rgba(0,0,0,0.05)}
.tw-item:hover{background:var(--bg-card-hover);transform:translateX(4px)}
.tw-item .tw-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}
.tw-item .tw-title{flex:1;font-weight:600}
.tw-item .tw-due{color:var(--text-muted);font-size:12px;font-weight:500;padding:4px 8px;background:rgba(255,255,255,0.05);border-radius:6px}

/* --- Timeline (Deadlines) --- */
.timeline{display:flex;flex-direction:column;padding-top:8px}
.tl-item{display:flex;gap:16px;position:relative;padding:0 0 24px}
.tl-line{display:flex;flex-direction:column;align-items:center;width:24px;flex-shrink:0}
.tl-dot{width:14px;height:14px;border-radius:50%;border:3px solid var(--text-muted);background:var(--bg-primary);flex-shrink:0;z-index:1;transition:all .3s}
.tl-stem{width:2px;flex:1;background:var(--border);margin-top:4px;border-radius:2px}.tl-item:last-child .tl-stem{display:none}
.tl-item.past .tl-dot{border-color:var(--emerald);background:var(--emerald)}
.tl-item.today .tl-dot{border-color:var(--amber);background:var(--amber);box-shadow:0 0 16px rgba(245,158,11,.6)}
.tl-item.overdue .tl-dot{border-color:var(--rose);background:var(--rose);box-shadow:0 0 16px rgba(244,63,94,.5)}
.tl-item.completed-dl .tl-dot{border-color:var(--emerald);background:var(--emerald);box-shadow:0 0 12px rgba(16,185,129,.4)}
.tl-card{flex:1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 16px rgba(0,0,0,0.08)}
.tl-card:hover{background:var(--bg-card-hover);border-color:var(--border-hover);transform:translateY(-2px)}
.tl-card:active{transform:scale(.98)}
.tl-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.tl-card-title{font-size:15px;font-weight:700;line-height:1.4}
.tl-card-badge{flex-shrink:0;padding:4px 8px;border-radius:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.badge-overdue{background:var(--rose-dim);color:var(--rose)}
.badge-today{background:var(--gradient-primary);color:#fff;box-shadow:0 2px 8px rgba(245,158,11,.3)}
.badge-upcoming{background:var(--blue-dim);color:var(--blue)}
.badge-done{background:var(--emerald-dim);color:var(--emerald)}
.tl-card-date{font-size:12px;color:var(--text-secondary);margin-top:8px;font-weight:500;display:flex;align-items:center;gap:6px}
.tl-card-notes{font-size:13px;color:var(--text-muted);margin-top:10px;line-height:1.5;padding-top:10px;border-top:1px dashed var(--border)}
.tl-item.completed-dl .tl-card{opacity:.6}.tl-item.completed-dl .tl-card-title{text-decoration:line-through;color:var(--text-secondary)}

/* --- Todos --- */
.filter-bar{display:flex;gap:8px;margin-bottom:20px;background:var(--bg-card);padding:6px;border-radius:var(--radius-lg);border:1px solid var(--border)}
.filter-chip{flex:1;padding:8px 0;border-radius:var(--radius-md);background:transparent;border:none;color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}
.filter-chip.active{background:var(--bg-card-hover);color:var(--text-primary);box-shadow:0 2px 8px rgba(0,0,0,0.1)}

.phase-group{margin-bottom:24px}
.phase-header{display:flex;align-items:center;justify-content:space-between;padding:10px 0;margin-bottom:12px;border-bottom:2px solid var(--border)}
.phase-title{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--text-primary)}
.phase-count{font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--bg-card);padding:4px 10px;border-radius:12px;border:1px solid var(--border)}

.todo-item{display:flex;align-items:flex-start;gap:12px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 10px rgba(0,0,0,0.05)}
.todo-item:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}
.todo-item:active{transform:scale(.98)}
.todo-check{width:22px;height:22px;border-radius:6px;border:2px solid var(--text-muted);background:transparent;flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:transparent}
.todo-check:hover{border-color:var(--emerald);transform:scale(1.1)}
.todo-item.done .todo-check{border-color:var(--emerald);background:var(--gradient-success);color:#fff;box-shadow:0 2px 8px rgba(16,185,129,.4)}
.todo-body{flex:1;min-width:0}
.todo-title{font-size:14px;font-weight:600;line-height:1.4;margin-bottom:6px;color:var(--text-primary)}
.todo-item.done .todo-title{text-decoration:line-through;color:var(--text-muted)}
.todo-meta{display:flex;gap:8px;flex-wrap:wrap}
.todo-meta-tag{font-size:10px;padding:3px 8px;border-radius:6px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px}
.priority-low{background:var(--blue-dim);color:var(--blue)}
.priority-medium{background:var(--amber-dim);color:var(--amber)}
.priority-high{background:var(--rose-dim);color:var(--rose)}
.priority-critical{background:rgba(244,63,94,.2);color:#ff6b81;border:1px solid rgba(244,63,94,.4)}
.todo-due-tag{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border)}
.todo-subtask-count{background:var(--violet-dim);color:var(--violet)}
.todo-attach-count{background:rgba(255,255,255,0.05);color:var(--text-secondary);border:1px solid var(--border)}

.reorder-btns{display:flex;flex-direction:column;gap:4px;margin-left:auto;flex-shrink:0}
.reorder-btn{width:24px;height:20px;border:none;background:rgba(255,255,255,0.05);border-radius:4px;color:var(--text-muted);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}
.reorder-btn:hover{color:var(--text-primary);background:var(--bg-card-hover)}

/* --- Budget --- */
.budget-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
.bs-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,0.1)}
.bs-value{font-size:28px;font-weight:800;letter-spacing:-1px}
.bs-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-top:6px;font-weight:700}
.bs-total .bs-value{background:var(--gradient-primary);-webkit-background-clip:text;color:transparent}
.bs-count .bs-value{color:var(--violet)}

.budget-item{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px;cursor:pointer;transition:all .2s;box-shadow:0 2px 10px rgba(0,0,0,0.05)}
.budget-item:hover{background:var(--bg-card-hover);transform:translateX(4px)}
.bi-desc{flex:1;font-size:14px;font-weight:600}
.bi-amount{font-size:16px;font-weight:800;color:var(--amber)}
.btn-add-budget{width:100%;padding:16px;border-radius:var(--radius-md);background:rgba(255,255,255,0.03);border:2px dashed var(--border);color:var(--text-secondary);font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s ease;margin-top:16px}
.btn-add-budget:hover{border-color:var(--amber);color:var(--amber);background:var(--amber-dim)}

/* --- Activity Log --- */
.activity-log{display:flex;flex-direction:column;gap:8px}
.log-item{display:flex;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;animation:fadeUp .3s ease both;align-items:center}
.log-icon{font-size:20px;flex-shrink:0;background:rgba(255,255,255,0.05);padding:8px;border-radius:50%}
.log-body{flex:1}
.log-action{font-weight:600;line-height:1.4;color:var(--text-primary)}
.log-time{font-size:11px;color:var(--text-muted);margin-top:4px;font-weight:500}

/* --- PIN & Modals --- */
.pin-gate{position:fixed;inset:0;z-index:8000;background:var(--bg-primary);display:flex;align-items:center;justify-content:center}
.pin-card{text-align:center;padding:40px;max-width:360px;width:100%}
.pin-emoji{font-size:56px;margin-bottom:20px;filter:drop-shadow(0 4px 12px rgba(0,0,0,0.3))}
.pin-card h2{font-size:24px;font-weight:800;margin-bottom:8px}
.pin-sub{font-size:14px;color:var(--text-secondary);margin-bottom:32px;font-weight:500}
.pin-dots{display:flex;gap:16px;justify-content:center;margin-bottom:32px}
.pin-dots span{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);transition:all .2s;background:rgba(255,255,255,0.05)}
.pin-dots span.filled{background:var(--amber);border-color:var(--amber);box-shadow:0 0 12px rgba(245,158,11,0.5)}
.pin-dots span.wrong{background:var(--rose);border-color:var(--rose);animation:shake .4s}
#pinInput{position:absolute;opacity:0;pointer-events:none}
.pin-numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:280px;margin:0 auto}
.pin-numpad button{height:60px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-size:24px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s;box-shadow:0 4px 12px rgba(0,0,0,0.1)}
.pin-numpad button:active{transform:scale(.92);background:var(--bg-card-hover)}
.pin-error{color:var(--rose);font-size:14px;font-weight:600;margin-top:20px}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}

.modal-overlay{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:flex-end;justify-content:center;opacity:0;visibility:hidden;transition:all .3s ease}
.modal-overlay.open{opacity:1;visibility:visible}
.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:560px;max-height:88dvh;overflow-y:auto;padding:24px 24px calc(24px + var(--safe-bottom));transform:translateY(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:0 -10px 40px rgba(0,0,0,0.3)}
.modal-overlay.open .modal{transform:translateY(0)}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.modal-header h2{font-size:20px;font-weight:800}
.modal-close{width:36px;height:36px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}
.modal-close:hover{background:var(--bg-card-hover);color:var(--text-primary)}
.modal-form{display:flex;flex-direction:column;gap:16px}
.form-group{display:flex;flex-direction:column;gap:8px}
.form-group label{font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}
.form-group .optional{font-weight:500;text-transform:none;letter-spacing:0;color:var(--text-muted)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
input[type="text"],input[type="date"],input[type="number"],input[type="url"],select,textarea{background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:15px;padding:12px 14px;transition:all .2s;outline:none;width:100%;font-weight:500}
input:focus,select:focus,textarea:focus{border-color:var(--amber);background:rgba(255,255,255,0.06);box-shadow:0 0 0 3px var(--amber-dim)}
textarea{resize:vertical}select{cursor:pointer}

.priority-picker{display:flex;gap:8px}
.pp-btn{flex:1;padding:10px 4px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}
.pp-btn.active{border-color:var(--amber);color:var(--amber);background:var(--amber-dim);box-shadow:0 2px 8px rgba(245,158,11,0.2)}
.pp-btn[data-priority="high"].active{border-color:var(--rose);color:var(--rose);background:var(--rose-dim);box-shadow:0 2px 8px rgba(244,63,94,0.2)}
.pp-btn[data-priority="critical"].active{border-color:#ff6b81;color:#fff;background:var(--gradient-danger);box-shadow:0 4px 12px rgba(225,29,72,0.4)}
.pp-btn[data-priority="low"].active{border-color:var(--blue);color:var(--blue);background:var(--blue-dim)}

.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:12px}
.btn-save{padding:14px 32px;border-radius:var(--radius-md);background:var(--gradient-primary);border:none;color:#fff;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px rgba(245,158,11,.4)}
.btn-save:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(245,158,11,.5)}
.btn-save:active{transform:scale(.96)}
.btn-remote{background:var(--gradient-success);box-shadow:0 4px 16px rgba(16,185,129,.4)}
.btn-delete{padding:14px 24px;border-radius:var(--radius-md);background:var(--rose-dim);border:1px solid var(--rose);color:var(--rose);font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s}
.btn-delete:active{transform:scale(.96)}

.subtask-list,.attachment-list{display:flex;flex-direction:column;gap:8px}
.sub-row,.att-row{display:flex;gap:8px;align-items:center}
.sub-row input[type="text"],.att-row input[type="url"],.att-row input[type="text"]{flex:1;font-size:14px;padding:10px 12px}
.btn-remove-row{width:32px;height:32px;border-radius:50%;background:var(--rose-dim);border:none;color:var(--rose);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}
.btn-remove-row:hover{background:var(--rose);color:#fff}
.btn-add-sub{background:none;border:1px dashed var(--border);border-radius:var(--radius-md);padding:10px;color:var(--text-muted);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}
.btn-add-sub:hover{border-color:var(--amber);color:var(--amber);background:var(--amber-dim)}

.settings-body{display:flex;flex-direction:column;gap:16px}
.setting-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
.setting-row span{font-size:15px;font-weight:600}
.setting-row.danger span{color:var(--rose)}
.settings-body hr{border:none;border-top:1px solid var(--border);margin:4px 0}
.btn-sm{padding:10px 20px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}
.btn-sm:hover{border-color:var(--amber);color:var(--amber)}
.btn-danger{border-color:var(--rose);color:var(--rose)}
.btn-danger:hover{background:var(--rose-dim)}
.btn-file{cursor:pointer;display:inline-block;text-align:center}

.toggle{position:relative;width:52px;height:28px;display:inline-block}
.toggle input{opacity:0;width:0;height:0}
.slider{position:absolute;inset:0;background:rgba(255,255,255,0.1);border-radius:28px;transition:.3s;cursor:pointer;border:1px solid var(--border)}
.slider::before{content:'';position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;left:3px;bottom:3px;transition:.3s;box-shadow:0 2px 4px rgba(0,0,0,0.2)}
.toggle input:checked+.slider{background:var(--gradient-success);border-color:transparent}
.toggle input:checked+.slider::before{transform:translateX(24px)}

.conflict-desc{font-size:15px;color:var(--text-secondary);margin-bottom:24px;line-height:1.6;font-weight:500}
.conflict-actions{display:flex;gap:12px}
.conflict-actions button{flex:1}

@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}
.empty-state-icon{font-size:48px;margin-bottom:16px;filter:drop-shadow(0 4px 12px rgba(0,0,0,0.2))}
.empty-state-text{font-size:15px;font-weight:500}

@media(max-width:480px){
  .progress-cards{gap:8px}
  .progress-card{padding:12px 8px}
  .pc-value{font-size:18px}
  .pc-icon{font-size:20px}
  .form-row{grid-template-columns:1fr;gap:12px}
  .tab{font-size:12px;gap:4px;padding:10px 4px}
  .budget-summary{grid-template-columns:1fr;gap:8px}
  .header-title{font-size:17px}
  .cb-ring{width:60px;height:60px}
  .cb-days{font-size:18px}
}
