html,body{margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only}:root{--color-bg:#f7f7f7;--color-surface:#fff;--color-surface-alt:#f7f7f7;--color-surface-2:#efefef;--color-text:#222;--color-text-muted:#717171;--color-text-soft:#b0b0b0;--color-border:#ddd;--color-border-strong:#b0b0b0;--color-navy:#0f172a;--color-navy-700:#1e293b;--color-navy-100:#e2e8f0;--color-primary:#222;--color-primary-hover:#000;--color-primary-text:#fff;--color-primary-500:var(--color-primary);--color-primary-600:var(--color-primary-hover);--color-primary-700:var(--color-primary-hover);--color-primary-50:#f0f0f0;--color-primary-100:#e0e0e0;--color-link:#222;--color-link-700:#000;--color-link-50:#f0f0f0;--color-success:#22c55e;--color-success-700:#16a34a;--color-success-600:#16a34a;--color-success-500:#22c55e;--color-success-50:#f0fdf4;--color-warning:#f59e0b;--color-warning-700:#d97706;--color-warning-600:#d97706;--color-warning-500:#f59e0b;--color-warning-50:#fffbeb;--color-danger:#ef4444;--color-danger-700:#dc2626;--color-danger-600:#dc2626;--color-danger-500:#ef4444;--color-danger-50:#fef2f2;--font-sans:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:4px;--radius:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000f;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000d;--shadow-md:0 4px 12px #0000001a, 0 2px 4px #0000000f;--shadow-lg:0 12px 40px #00000024, 0 4px 12px #0000000f;--shadow-focus:0 0 0 3px #22222229;--transition-fast:.12s cubic-bezier(.4, 0, .2, 1);--transition-base:.2s cubic-bezier(.4, 0, .2, 1);--container-max:1040px;--container-narrow:560px;--header-height:64px}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;line-height:1.5}#root{padding-bottom:env(safe-area-inset-bottom)}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:-.03em;color:var(--color-text);line-height:1.2}h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;color:var(--color-text)}h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}h4{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-soft)}a{color:var(--color-text);text-underline-offset:2px;transition:color var(--transition-fast);text-decoration:underline}a:hover{color:var(--color-primary-hover)}button{font-family:inherit}.muted{color:var(--color-text-muted)}.soft{color:var(--color-text-soft)}.row{align-items:center;gap:var(--space-2);display:flex}.stack{gap:var(--space-3);flex-direction:column;display:flex}.container{max-width:var(--container-max);padding:var(--space-8) var(--space-6) var(--space-16);margin:0 auto}@media (width<=640px){.container{padding:var(--space-5) var(--space-4) var(--space-12)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-base)}.card-pad-0{padding:0}.card-pad-3{padding:var(--space-3)}.card-pad-4{padding:var(--space-4)}.card-pad-5{padding:var(--space-5)}.card-pad-6{padding:var(--space-6)}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.01em}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.field-error{font-size:var(--font-size-xs);color:var(--color-danger-600)}.input{width:100%;padding:0 var(--space-4);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);min-height:48px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.input::placeholder{color:var(--color-text-soft)}.input:focus{border-color:var(--color-text);outline:none;box-shadow:0 0 0 3px #2222221a}.input:hover:not(:focus){border-color:var(--color-border-strong)}.input-error{border-color:var(--color-danger-500)}.input-error:focus{border-color:var(--color-danger-500);box-shadow:0 0 0 3px #ef444426}textarea.input{min-height:auto;padding:var(--space-3) var(--space-4);resize:vertical;line-height:1.5}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23717171' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-4) center;padding-right:var(--space-10);cursor:pointer}.checkbox{align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);cursor:pointer;padding:var(--space-2) 0;display:flex}.checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-family:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border:1.5px solid #0000;text-decoration:none;display:inline-flex}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn:not(:disabled):active{transform:scale(.98)}.btn-sm{padding:0 var(--space-4);font-size:var(--font-size-sm);min-width:64px;height:36px}.btn-md{padding:0 var(--space-5);font-size:var(--font-size-sm);min-width:80px;height:44px}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary);letter-spacing:-.01em}.btn-primary:not(:disabled):hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:not(:disabled):hover{background:var(--color-surface-alt);border-color:var(--color-text)}.btn-ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.btn-ghost:not(:disabled):hover{background:var(--color-surface-alt);color:var(--color-text)}.btn-danger{background:var(--color-surface);color:var(--color-danger-600);border-color:var(--color-border)}.btn-danger:not(:disabled):hover{background:var(--color-danger-50);border-color:var(--color-danger-500);color:var(--color-danger-700)}.btn-loading{pointer-events:none;opacity:.6}.badge{align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;line-height:1.4;display:inline-flex}.badge-neutral{color:var(--color-text-muted);background:#f0f0f0;border-color:#e0e0e0}.badge-success{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.badge-warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.badge-danger{color:#991b1b;background:#fef2f2;border-color:#fecaca}.empty{text-align:center;padding:var(--space-10) var(--space-4);color:var(--color-text-muted);flex-direction:column;align-items:center;display:flex}.empty-icon{border-radius:var(--radius-full);background:var(--color-surface-alt);width:64px;height:64px;color:var(--color-primary-500);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:flex}.empty-title{color:var(--color-text);margin-bottom:var(--space-1)}.empty-desc{font-size:var(--font-size-sm);margin-bottom:var(--space-4);max-width:360px}.spinner{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-4);display:flex}.spinner-xs{gap:2px;padding:0}.spinner-xs .spinner-dot{width:4px;height:4px}.spinner-sm{gap:3px}.spinner-md{gap:4px}.spinner-lg{gap:6px}.spinner-dot{background:var(--color-primary-500);border-radius:50%;animation:1.4s ease-in-out infinite both spinner-bounce}.spinner-sm .spinner-dot{width:6px;height:6px}.spinner-md .spinner-dot{width:8px;height:8px}.spinner-lg .spinner-dot{width:12px;height:12px}.spinner-dot:first-child{animation-delay:-.32s}.spinner-dot:nth-child(2){animation-delay:-.16s}@keyframes spinner-bounce{0%,80%,to{opacity:.4;transform:scale(1)}40%{opacity:1;transform:scale(1.2)}}.modal-backdrop{-webkit-backdrop-filter:blur(2px);padding:var(--space-6) var(--space-4) var(--space-16);z-index:200;animation:modal-fade var(--transition-base) ease-out;background:#0009;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;margin-top:var(--space-8);animation:modal-pop var(--transition-base) cubic-bezier(.16, 1, .3, 1);isolation:isolate}.modal-sm{max-width:400px}.modal-md{max-width:520px}.modal-lg{max-width:680px}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6) var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.modal-header h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.modal-close{border-radius:var(--radius-full);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.modal-close:hover{background:var(--color-surface-alt);color:var(--color-text)}.modal-body{padding:var(--space-6)}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=640px){.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%;max-height:90vh;margin-top:0;overflow-y:auto}}.upload{gap:var(--space-2);flex-direction:column;display:flex}.upload-input{display:none}.upload-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);transition:background-color var(--transition-fast), border-color var(--transition-fast);align-self:flex-start;font-family:inherit;display:inline-flex}.upload-btn:hover{background:var(--color-surface-alt);border-color:var(--color-primary-500);color:var(--color-primary-600)}.upload-btn:disabled{opacity:.6;cursor:not-allowed}.upload-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0}.upload-list{margin:var(--space-2) 0 0;gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.upload-item{align-items:center;gap:var(--space-3);padding:var(--space-2);background:var(--color-surface-alt);border-radius:var(--radius-md);display:flex}.upload-thumb{border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;width:40px;height:40px}.upload-thumb-doc{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);justify-content:center;align-items:center;display:flex}.upload-meta{flex-direction:column;flex:1;min-width:0;display:flex}.upload-meta a{font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;text-decoration:none;overflow:hidden}.upload-meta a:hover{color:var(--color-primary-600);text-decoration:underline}.upload-size{font-size:var(--font-size-xs);color:var(--color-text-soft)}.upload-delete{color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.upload-delete:hover{background:var(--color-danger-50);color:var(--color-danger-600)}.home-topbar{z-index:40;justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:env(safe-area-inset-top) var(--space-6) 0;height:calc(var(--header-height) + env(safe-area-inset-top));display:flex;position:sticky;top:0}.home-brand{align-items:center;gap:var(--space-2);display:flex}.home-logo{background:var(--color-navy);color:#fff;border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.home-brand-name{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-navy);letter-spacing:-.02em}.home-topbar-nav{align-items:center;gap:var(--space-1);display:flex}.topbar-nav-btn{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);min-width:44px;min-height:44px;font-size:var(--font-size-sm);font-family:inherit;font-weight:var(--font-weight-medium);color:var(--color-text-muted);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;display:inline-flex}.topbar-nav-btn:hover{background:var(--color-surface-alt);color:var(--color-text)}.topbar-nav-btn--muted:hover{color:var(--color-danger-600)}@media (width<=560px){.home-topbar{padding:env(safe-area-inset-top) var(--space-4) 0}.topbar-nav-btn{padding:var(--space-2)}.nav-label{display:none}}.home-content{padding-top:var(--space-6)}.home-stats{gap:var(--space-3);margin-bottom:var(--space-8);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=640px){.home-stats{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);gap:var(--space-1);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-navy);letter-spacing:-.02em;line-height:1}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.stat-card--danger{background:var(--color-danger-50);border-color:#ef444433}.stat-card--danger .stat-value{color:var(--color-danger-700)}.stat-card--warning{background:var(--color-warning-50);border-color:#f59e0b33}.stat-card--warning .stat-value{color:var(--color-warning-700)}.stat-card--success{background:var(--color-success-50);border-color:#22c55e33}.stat-card--success .stat-value{color:var(--color-success-700)}.home-section{margin-bottom:var(--space-10)}.home-section-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.home-section-header h2{margin:0}.attention-card{overflow:hidden}.attention-row{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);display:flex}.attention-row--border{border-top:1px solid var(--color-border)}.attention-row-body{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-1) var(--space-2);margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-2));text-align:left;cursor:pointer;border-radius:var(--radius-md);min-width:0;transition:background var(--transition-fast);background:0 0;border:none;flex:1;font-family:inherit;display:flex}.attention-row-body:hover{background:var(--color-surface-alt)}.attention-task-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.attention-asset-name{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);margin-top:2px;display:flex}.attention-check-btn{border-radius:var(--radius-full);background:var(--color-success-50);width:32px;height:32px;color:var(--color-success-700);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);border:1px solid #22c55e40;flex-shrink:0;justify-content:center;align-items:center;display:flex}.attention-check-btn:hover:not(:disabled){background:var(--color-success);color:#fff;transform:scale(1.08)}.attention-check-btn:disabled{opacity:.5;cursor:not-allowed}.home-toolbar{gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;align-items:center;display:flex}.home-search{align-items:center;gap:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:0 var(--space-3);min-width:180px;color:var(--color-text-muted);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex:1;display:flex}.home-search:focus-within{border-color:var(--color-primary-500);box-shadow:var(--shadow-focus)}.home-search input{font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text);padding:var(--space-2) 0;background:0 0;border:0;outline:none;flex:1;min-width:0}.home-filters{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-family:inherit;font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);color:var(--color-text-muted)}.chip:hover{color:var(--color-text);box-shadow:var(--shadow-xs)}.chip:focus-visible{box-shadow:var(--shadow-focus);outline:none}.chip-active{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.chip-partial{opacity:.7}.asset-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));animation:.3s ease-out fade-in;display:grid}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.asset-card{cursor:pointer;transition:box-shadow var(--transition-base), transform var(--transition-base);padding:0;animation:.4s ease-out both card-in;overflow:hidden}.asset-card:first-child{animation-delay:40ms}.asset-card:nth-child(2){animation-delay:80ms}.asset-card:nth-child(3){animation-delay:.12s}.asset-card:nth-child(n+4){animation-delay:.16s}@keyframes card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.asset-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.asset-card:focus-visible{box-shadow:var(--shadow-focus);outline:none}.asset-cover{aspect-ratio:16/10;background:var(--color-surface-alt);width:100%;color:var(--color-primary-500);justify-content:center;align-items:center;display:flex;overflow:hidden}.asset-cover img{object-fit:cover;width:100%;height:100%;display:block}.asset-body{padding:var(--space-4)}.asset-body h3{margin:0 0 var(--space-2);font-size:var(--font-size-base)}.asset-body-row{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.asset-task-count{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex}.htp-intro{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.htp-intro p{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.htp-select-all{font-size:var(--font-size-sm);color:var(--color-primary);cursor:pointer;white-space:nowrap;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.htp-select-all:hover{opacity:.8}.htp-months{gap:var(--space-5);max-height:58vh;padding-right:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex;overflow-y:auto}.htp-month-label{align-items:center;gap:var(--space-2);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;margin-bottom:var(--space-2);color:var(--color-text-soft);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);display:inline-flex}.htp-month-label:hover{background:var(--color-surface);color:var(--color-text)}.htp-month-label--on{background:var(--color-primary-100,#e0f0ff);border-color:var(--color-primary-400,#60a5fa);color:var(--color-primary-700,#1d4ed8)}.htp-month-label--partial{border-color:var(--color-primary-300,#93c5fd);color:var(--color-text)}.htp-month-check{text-align:center;width:14px;font-size:var(--font-size-xs);display:inline-block}.htp-tasks{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.htp-task{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius);cursor:pointer;transition:background var(--transition-fast);display:flex}.htp-task:hover{background:var(--color-surface-alt)}.htp-task--on{background:var(--color-primary-50,#eff6ff)}.htp-task--on:hover{background:var(--color-primary-100,#dbeafe)}.htp-task input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;width:16px;height:16px}.htp-task-title{font-size:var(--font-size-sm);color:var(--color-text);flex:1}.htp-task-freq{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;background:var(--color-surface-alt);border:1px solid var(--color-border);padding:1px var(--space-2);border-radius:var(--radius-full,999px)}.htp-error{color:var(--color-danger-600);font-size:var(--font-size-sm);margin-bottom:var(--space-3)}.htp-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.detail-hero{margin-top:var(--space-3);overflow:hidden}.detail-hero-image{aspect-ratio:21/9;background:var(--color-surface-alt);width:100%;overflow:hidden}.detail-hero-image img{object-fit:cover;width:100%;height:100%;display:block}.detail-hero-body{padding:var(--space-5)}.task-list{gap:var(--space-3);flex-direction:column;display:flex}.task-card{transition:box-shadow var(--transition-fast)}.task-card:hover{box-shadow:var(--shadow-md)}.task-head{align-items:flex-start;gap:var(--space-2);display:flex}.task-toggle{border-radius:var(--radius-md);cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);transition:background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:inline-flex}.task-toggle:hover{background:var(--color-surface-alt);color:var(--color-text)}.task-toggle:focus-visible{box-shadow:var(--shadow-focus);outline:none}.task-meta{gap:var(--space-3);margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.task-meta span{align-items:center;gap:var(--space-1);display:inline-flex}.task-body{margin:var(--space-4) 0 0 var(--space-8);padding-top:var(--space-3);border-top:1px solid var(--color-border)}@media (width<=640px){.task-body{margin:var(--space-3) 0 0 var(--space-5)}.task-meta{gap:var(--space-2)}}.task-section{margin-bottom:var(--space-4)}.task-section h4{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-soft);margin:0 0 var(--space-2);font-weight:var(--font-weight-semibold)}.att-list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.att-item img{object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-border);width:80px;height:80px;display:block}.att-item .att-doc{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text);border:1px solid var(--color-border);text-decoration:none;display:inline-flex}.log-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.log-item{padding:var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-md)}.task-section-header{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.task-group{margin-bottom:var(--space-5)}.task-group-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.task-group-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-soft)}@media (width<=560px){.asset-btn-label{display:none}.task-section-header{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.asset-hero-actions .btn{height:28px;min-width:unset;padding:0 var(--space-2)}.asset-hero-actions .btn svg{width:14px;height:14px}}
