:root{--navy:#12204a;--navy2:#1c3471;--blue:#2563eb;--blue2:#3b82f6;--cyan:#06b6d4;--mint:#14b8a6;--bg:#f4f8ff;--card:#fff;--ink:#0f172a;--muted:#64748b;--line:#dbe7f5;--soft:#edf5ff;--good:#dcfce7;--danger:#fee2e2;--shadow:0 18px 45px rgba(15,23,42,.10);--radius:20px}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#f8fbff,#edf5ff);color:var(--ink);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.side{background:linear-gradient(180deg,var(--navy),var(--navy2));padding:18px;color:#e8f1ff;display:flex;flex-direction:column;gap:16px;box-shadow:8px 0 32px rgba(2,6,23,.15)}.brand{display:flex;align-items:center;gap:12px}.brand.big{margin-bottom:22px}.brand b,.brand h1{margin:0;font-weight:850;letter-spacing:-.04em}.brand span,.brand p{display:block;color:#bfd2ff;margin:2px 0 0}.mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#3b82f6,#06b6d4);display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:0 12px 24px rgba(37,99,235,.3)}nav{display:flex;flex-direction:column;gap:6px}.nav,.logout{width:100%;border:0;text-align:left;padding:12px 14px;border-radius:14px;background:transparent;color:#dbeafe;cursor:pointer;font-weight:700}.nav:hover,.logout:hover{background:rgba(255,255,255,.10)}.nav.active{background:linear-gradient(135deg,#4f7fe3,#2857c8);color:#fff;box-shadow:0 12px 24px rgba(20,45,100,.28)}.logout{margin-top:auto}.main{padding:28px 32px 56px;overflow:auto}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.top h1{font-size:31px;line-height:1.1;margin:0 0 8px;letter-spacing:-.05em}.top p{margin:0;color:var(--muted)}.actions,.toolbar,.form-actions,.week-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{border:0;min-height:38px;padding:10px 15px;border-radius:13px;background:#eaf2ff;color:#173b80;font-weight:800;cursor:pointer}.btn:hover{filter:brightness(.98);transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,#2563eb,#0f55d8);color:#fff}.btn.good{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#065f46}.btn.danger,.danger{background:#fee2e2;color:#991b1b}.btn.tiny{min-height:30px;padding:6px 10px;border-radius:10px}.wide{width:100%;justify-content:center;text-align:center}.input,.select,.textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;min-height:44px;padding:10px 13px;color:var(--ink)}.textarea{min-height:82px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:3px solid rgba(37,99,235,.15);border-color:#93b4ff}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#dbeafe,#f8fbff 55%)}.login-card{width:min(560px,100%);background:#fff;border-radius:28px;padding:32px;box-shadow:0 32px 80px rgba(15,23,42,.18);display:grid;gap:16px}.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:14px;padding:12px 14px;font-weight:700}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat,.card,.summary>div,.calendar-panel{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat{padding:20px}.stat b{display:block;font-size:32px;letter-spacing:-.05em}.stat span,.muted,small{color:var(--muted)}.card{padding:20px;margin-bottom:18px}.card h2{margin:0 0 14px;font-size:20px;letter-spacing:-.04em}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.miniweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.miniweek button{border:1px solid var(--line);background:linear-gradient(180deg,#fff,#f5f9ff);border-radius:16px;padding:13px 8px;cursor:pointer}.miniweek strong,.miniweek b{display:block}.miniweek strong{color:var(--muted);font-size:12px}.miniweek b{font-size:18px;color:#1d4ed8}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:16px}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{padding:12px 14px;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:top}.table th{background:#f4f8ff;color:#475569;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.table small{display:block}.week th:first-child{min-width:260px}.cell{width:100%;min-height:42px;border:1px dashed #bfd3f4;border-radius:12px;background:#f8fbff;color:#2563eb;font-weight:850;cursor:pointer}.cell.has{border-style:solid;background:linear-gradient(180deg,#e0f2fe,#dbeafe);color:#173b80}.week-head{justify-content:space-between;margin-bottom:14px}.week-head h2{margin:0;font-size:22px}.strip{border:1px solid #cfe0f6;background:#eef6ff;border-radius:14px;padding:12px 14px;margin-bottom:14px;display:flex;gap:18px}.calendar-panel{padding:16px;overflow:auto}.calendar{width:100%;min-width:1100px;border-collapse:separate;border-spacing:0}.calendar th,.calendar td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar thead th{background:linear-gradient(180deg,#4779cc,#2f62b9);color:white;padding:12px 10px;text-align:center}.calendar thead th.today{background:linear-gradient(180deg,#2563eb,#1649bd)}.calendar thead th span{display:block;font-size:12px;opacity:.92}.calendar tbody th{width:90px;background:#f7fbff;color:#64748b;font-size:12px;text-align:right;padding:12px 10px;position:sticky;left:0;z-index:2}.calendar td{height:70px;background:#fff;position:relative;vertical-align:top;padding:6px;cursor:pointer}.calendar td:hover{background:#f0f7ff;box-shadow:inset 0 0 0 2px #93c5fd}.calendar .leave{height:38px;color:#475569;cursor:default}.plus{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:9px;border:1px dashed #93b7ff;background:#eff6ff;color:#2563eb;font-weight:900;z-index:3;cursor:pointer}.block{display:block;width:calc(100% - 34px);border:0;border-left:4px solid #2563eb;border-radius:10px;background:linear-gradient(180deg,#e0f2fe,#dbeafe);padding:6px 8px;text-align:left;color:#173b80;cursor:pointer;margin:2px 30px 4px 0}.block b,.block span,.block small{display:block}.block small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#334155}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.summary>div{padding:18px}.summary h3{margin:0 0 8px}.summary b{font-size:28px}.bars{height:260px;display:flex;align-items:end;gap:34px;padding:20px;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff)}.bar-col{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:6px;min-width:56px}.bar{width:34px;border-radius:12px 12px 4px 4px;background:linear-gradient(180deg,#67e8f9,#2563eb)}.split{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px}.tree details{margin:8px 0}.tree summary{cursor:pointer;font-weight:800;padding:8px;border-radius:10px}.tree p{margin:6px 0 6px 18px;color:var(--muted)}.badge{display:inline-block;border-radius:999px;padding:5px 10px;font-weight:800;font-size:12px;background:#eaf2ff;color:#1d4ed8}.badge.approved,.badge.open{background:#dcfce7;color:#166534}.badge.rejected,.badge.disabled{background:#fee2e2;color:#991b1b}.badge.submitted{background:#fef3c7;color:#92400e}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;z-index:9999;padding:22px}.modal{width:min(980px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:28px;box-shadow:0 40px 100px rgba(15,23,42,.35);padding:28px}.modal h2{margin:0 0 18px;font-size:26px}.version{font-size:12px;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:6px 9px;vertical-align:middle}.form{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.preview{background:#f8fbff;border:1px solid var(--line);border-radius:14px;padding:12px}.empty{border:1px dashed #bfd3f4;background:#f8fbff;border-radius:16px;padding:24px;text-align:center;color:var(--muted)}#toast{position:fixed;right:18px;bottom:54px;background:#0f172a;color:#fff;padding:12px 16px;border-radius:14px;box-shadow:0 14px 40px rgba(15,23,42,.25);opacity:0;transform:translateY(10px);transition:.2s;z-index:99999}#toast.show{opacity:1;transform:translateY(0)}#buildBadge{position:fixed;right:14px;bottom:12px;z-index:99999;background:linear-gradient(135deg,#020617,#2563eb,#06b6d4);color:#fff;padding:9px 13px;border-radius:999px;font:800 11px/1 system-ui;box-shadow:0 16px 40px rgba(2,6,23,.35);pointer-events:none}@media(max-width:1100px){.shell{grid-template-columns:1fr}.side{position:relative}.main{padding:22px}.stats,.grid2,.summary,.split{grid-template-columns:1fr}.miniweek{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:1fr}}
.readonly-field{min-height:42px;display:flex;align-items:center;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:#f8fbff;color:#10233f;font-weight:700}
.cell.saved{outline:2px solid #22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.16)}

.hintline{border:1px dashed #bfdbfe;background:#f8fbff;color:#334155;border-radius:14px;padding:10px 12px;margin:0 0 14px;font-weight:650}
.week thead small{display:block;text-transform:none;letter-spacing:0;font-size:11px;margin-top:3px;color:#2563eb;font-weight:800}
.cell-summary{display:grid;gap:4px;background:#f8fbff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:14px}
.cell-summary b{font-size:17px}.cell-summary span{color:#475569}

/* V21 QA standard additions */
.report-bars{display:grid;gap:12px}.report-row{display:grid;grid-template-columns:minmax(160px,260px) 1fr 70px;align-items:center;gap:12px}.report-row span{font-weight:700;color:#18243a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-row div{height:12px;border-radius:999px;background:#eaf1ff;overflow:hidden}.report-row i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#06b6d4)}.report-row b{text-align:right}.pill{display:inline-flex;margin-left:8px;padding:2px 8px;border-radius:999px;background:#eef6ff;color:#1d4ed8;font-size:11px}.cell-summary{display:grid;gap:6px;padding:12px;border:1px solid #dbe7ff;border-radius:16px;background:#f8fbff;margin-bottom:14px}.readonly-field{padding:13px 14px;border:1px solid #d7e3f8;background:#f8fbff;border-radius:14px;font-weight:700}.hintline{color:#64748b;margin:12px 0}.miniweek button span{display:block;color:#64748b;font-size:12px;margin-top:4px}.badge.pending,.badge.submitted{background:#fff3cd;color:#92400e}.badge.approved,.badge.active,.badge.open{background:#dcfce7;color:#166534}.badge.rejected,.badge.disabled,.badge.archived{background:#fee2e2;color:#991b1b}.btn.good{background:#dcfce7;color:#166534}.btn.danger{background:#fee2e2;color:#991b1b}.empty{padding:18px;border-radius:16px;background:#f8fbff;color:#64748b}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.report-row{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}}
.comment-pill{display:inline-block;max-width:360px;padding:4px 8px;border-radius:999px;background:#eef6ff;color:#123a6f;border:1px solid #cfe5ff;white-space:normal;line-height:1.35;font-size:12px}
.table td .comment-pill{vertical-align:middle}

/* V21 standards QA refinements */
.select.small{max-width:160px;min-width:120px;height:40px}.select.mini{height:32px;min-width:116px;font-size:13px}.toolbar-wrap{flex-wrap:wrap;gap:10px}.linklike{appearance:none;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer;padding:0}.linklike b{display:block;color:#0f172a}.linklike small{display:block;color:#64748b}.detail-stack{display:grid;gap:14px}.mini-summary{grid-template-columns:repeat(4,minmax(120px,1fr));margin:0}.comment-list{display:grid;gap:10px;margin:10px 0 16px}.comment-row{border:1px solid #dbeafe;background:#f8fbff;border-radius:14px;padding:12px;display:grid;gap:4px}.comment-row b{color:#0f172a}.comment-row span{color:#334155}.comment-row small,.small-empty{color:#64748b}.version{font-size:12px;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:4px 8px;vertical-align:middle}.chart-head{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.bars{min-height:230px}.table td .btn.tiny + .btn.tiny{margin-left:6px}

/* V24 final workflow QA */
.kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf2f7}.kv:last-child{border-bottom:0}.kv span{color:#64748b}.kv b{text-align:right}.warn{color:#b45309!important}.danger-text{color:#b91c1c!important}.task-mini-list{display:grid;gap:10px}.task-mini{border:1px solid #dbe7f5;background:linear-gradient(180deg,#fff,#f8fbff);border-radius:14px;padding:12px;text-align:left;cursor:pointer}.task-mini b,.task-mini span,.task-mini i{display:block}.task-mini span{color:#64748b}.task-mini i{color:#1d4ed8;font-style:normal;font-weight:700;margin-top:4px}.badge.in_progress{background:#e0f2fe;color:#075985}.badge.ready_for_review{background:#fef3c7;color:#92400e}.badge.completed{background:#dcfce7;color:#166534}.cell.closed{background:#f1f5f9;color:#64748b;border-color:#cbd5e1;cursor:not-allowed}.select.mini{min-width:150px}.summary.mini-summary{grid-template-columns:repeat(5,minmax(110px,1fr))}.locked-note{display:inline-block;border:1px solid #cbd5e1;background:#f8fafc;color:#64748b;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}

.checkline{display:flex;align-items:center;gap:10px;font-weight:700}.checkline input{width:auto}.task-mini{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.task-mini .linklike{min-width:0}

/* V29 confirmation QA */
.week-filters{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,1fr) minmax(180px,1fr) minmax(200px,1fr) auto;align-items:center;gap:10px;margin:12px 0 14px;padding:12px;border:1px solid #dbeafe;background:linear-gradient(180deg,#ffffff,#f8fbff);border-radius:16px}.week-filters .input,.week-filters .select{min-height:38px;border-radius:12px}.week-filters .muted{white-space:nowrap;font-size:12px}.week tbody tr{transition:background .15s ease}.week tbody tr:hover{background:#f8fbff}.week tbody th{position:sticky;left:0;background:#fff;z-index:3;box-shadow:1px 0 0 #edf2f7}.week thead th:first-child{position:sticky;left:0;z-index:4}.cell{transition:background .15s ease,border-color .15s ease,transform .1s ease}.cell:hover{transform:translateY(-1px);border-color:#60a5fa}.cell.closed:hover{transform:none}.task-order-note{font-size:12px;color:#64748b}@media(max-width:1200px){.week-filters{grid-template-columns:1fr 1fr}.week-filters .muted{grid-column:1/-1}}@media(max-width:720px){.week-filters{grid-template-columns:1fr}.week th:first-child{min-width:220px}}

/* V29 confirmation QA additions */
.confirm-message{white-space:pre-line;color:#0f172a;font-weight:750;line-height:1.55;background:#f8fbff;border:1px solid #dbe7f5;border-radius:16px;padding:14px;margin:0 0 12px}
.confirm-warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:12px 14px;font-weight:800;margin-bottom:16px}
.status-hint{display:block;color:#64748b;font-size:11px;margin-top:4px;font-weight:700;text-transform:none;letter-spacing:0}
.select.mini{min-height:34px;border-radius:10px;padding:6px 10px;font-weight:750}


/* V29 branding/profile/theme customizer */
.brand-logo-box{width:44px;height:44px;border-radius:14px;overflow:hidden;display:grid;place-items:center;background:rgba(255,255,255,.12);box-shadow:0 12px 24px rgba(2,6,23,.18);flex:0 0 auto;position:relative}
.brand-logo{width:100%;height:100%;object-fit:cover;display:block;background:#020617}
.brand-logo-box .brand-fallback{display:none;position:absolute;inset:0;width:100%;height:100%;border-radius:14px}
.big-logo{width:74px;height:74px;border-radius:22px;background:#020617}.login-logo{object-fit:contain;padding:0;background:#020617}
.side-company{margin-top:auto;padding:12px 14px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.08);display:grid;gap:4px;color:#dbeafe;overflow:hidden}.side-company b,.side-company span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-company span{color:#bfd2ff;font-size:12px}.logout{margin-top:0}.login-company-profile{border:1px solid var(--line);background:#f8fbff;border-radius:16px;padding:12px 14px;display:grid;gap:4px}.login-company-profile b{font-size:16px}.login-company-profile span{color:var(--muted)}
.brand-preview{display:flex;gap:16px;align-items:center}.preview-logo{width:96px;height:96px;border-radius:24px;background:#020617}.preview-logo .brand-logo{object-fit:contain;padding:0}.brand-preview h3{margin:0;font-size:24px;letter-spacing:-.04em}.brand-preview p{margin:4px 0;color:var(--muted)}.brand-preview small{display:block;color:var(--muted);margin-top:3px}.theme-swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.theme-swatches div{border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px;display:grid;gap:7px}.theme-swatches i{height:38px;border-radius:12px;display:block;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}.theme-swatches span{font-weight:800}.theme-swatches b{font-size:12px;color:var(--muted)}
.form-section{border:1px solid var(--line);border-radius:20px;background:#fbfdff;padding:16px;display:grid;gap:12px}.form-section h3{margin:0;font-size:17px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.brand-upload-row{display:flex;gap:16px;align-items:flex-start}.grow{flex:1;display:grid;gap:12px}.color-line{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;align-items:center}.color-line input[type=color]{width:58px;height:44px;border:1px solid var(--line);border-radius:13px;background:white;padding:4px}.checkline{display:flex;align-items:center;gap:8px;font-weight:700;color:#334155}.checkline input{width:18px;height:18px}
@media(max-width:800px){.form-grid.two,.brand-upload-row{grid-template-columns:1fr;display:grid}.preview-logo{width:76px;height:76px}}

/* V29 theme variable overrides */
body{background:linear-gradient(135deg,#ffffff,var(--bg) 48%,var(--soft));}
.login{background:radial-gradient(circle at 50% 0,var(--soft),var(--bg) 55%)}
.mark{background:linear-gradient(135deg,var(--blue),var(--cyan))}
.btn.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.nav.active{background:linear-gradient(135deg,var(--blue2),var(--blue));color:#fff}.miniweek b{color:var(--blue)}.bar{background:linear-gradient(180deg,var(--cyan),var(--blue))}.calendar thead th{background:linear-gradient(180deg,var(--blue2),var(--blue))}.calendar thead th.today{background:linear-gradient(180deg,var(--cyan),var(--blue))}.cell{color:var(--blue)}.cell.has{color:var(--navy)}#buildBadge{background:linear-gradient(135deg,#020617,var(--blue),var(--cyan))}

/* V31 conflict visibility improvements */
.day-entry-panel {
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--primary) 5%, #ffffff 95%);
  border-radius: 16px;
  padding: 12px;
  display: grid;
  gap: 8px;
}
.day-entry-panel > b { color: var(--ink); }
.day-entry-panel > small { color: var(--muted); line-height: 1.35; }
.table.compact th,
.table.compact td { padding: 8px 10px; font-size: 13px; }
.mini-scroll { max-height: 220px; overflow: auto; }
.conflict-row td { background: #fff1f2 !important; }
.conflict-row td:first-child { border-left: 4px solid #ef4444; }

.badge.warning{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.alert.info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a}.maintenance-note{border:1px dashed #f59e0b;background:#fffbeb;padding:12px;border-radius:14px;margin-top:12px}
.day-entry-panel.task-scope .note { display:block; margin-top:10px; font-size:12px; }
.day-entry-panel.task-scope .small-empty { border:1px dashed rgba(37,99,235,.25); background:rgba(37,99,235,.04); }

/* V38 full function/layout review */
.live-timer{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--blue)}
.timer-monitor-note{border:1px solid var(--line);background:#f8fbff;border-radius:14px;padding:12px;color:#475569}
.timer-running-row td{background:#fbfdff}


/* V38 full function/layout review */
.row-running-timer td,
.week tbody tr.row-running-timer th {
  background: linear-gradient(90deg, rgba(20,184,166,.08), rgba(37,99,235,.04));
}
.task-timer-indicator {
  display: inline-grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: 7px 8px;
  min-width: 150px;
  padding: 7px 10px;
  border-radius: 14px;
  border: 1px solid rgba(37,99,235,.20);
  background: #eff6ff;
  color: #1e3a8a;
  font-size: 12px;
  font-weight: 850;
}
.task-timer-indicator small {
  grid-column: 2;
  color: #475569;
  font-weight: 700;
  white-space: nowrap;
}
.task-timer-indicator.mine {
  border-color: rgba(20,184,166,.35);
  background: #ecfdf5;
  color: #065f46;
}
.task-timer-indicator.compact {
  margin-top: 6px;
  padding: 4px 8px;
  min-width: 0;
  display: inline-flex;
  font-size: 11px;
}
.task-timer-indicator.compact small { display: none; }
.pulse-dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #22c55e;
  box-shadow: 0 0 0 0 rgba(34,197,94,.55);
  animation: pulseTimer 1.4s infinite;
}
@keyframes pulseTimer {
  0% { box-shadow: 0 0 0 0 rgba(34,197,94,.55); }
  70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}
.tiny-text { font-size: 12px; }
.task-timer-list { display: grid; gap: 10px; margin: 8px 0 16px; }
.task-timer-row {
  display: grid;
  grid-template-columns: minmax(180px,1fr) minmax(150px,.8fr) minmax(120px,.6fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  background: #f8fbff;
  border-radius: 16px;
  padding: 12px;
}
.task-timer-row.mine {
  border-color: rgba(20,184,166,.35);
  background: #ecfdf5;
}
.task-timer-row b,.task-timer-row span,.task-timer-row small { display: block; }
.task-timer-row small { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; font-weight: 850; }
.task-mini.has-running-timer { border-color: rgba(20,184,166,.35); background: linear-gradient(180deg,#f0fdfa,#ffffff); }
.table td .task-timer-indicator { vertical-align: middle; }
@media(max-width:900px){.task-timer-row{grid-template-columns:1fr}.task-timer-indicator{min-width:0}}

/* V38 full function/layout review polish */
.btn.micro{font-size:11px;padding:2px 7px;border-radius:999px;margin-left:8px;vertical-align:middle}
.table td small,.table th small{display:block;line-height:1.25;color:var(--muted,#64748b);font-weight:500}
.warn-box,.confirm-warning,.hintline{line-height:1.45}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.form-grid.three{grid-template-columns:1fr}.table-scroll{overflow:auto}.split{grid-template-columns:1fr}}
