:root{--bg:#f5f7fb;--card:#fff;--line:#d8dee8;--text:#152033;--muted:#667085;--blue:#2563eb;--green:#15803d;--orange:#b45309;--red:#b91c1c;--shadow:0 10px 30px #0f172a14;--radius:16px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:Arial,sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}.page-wrap{max-width:1280px;margin:0 auto;padding:12px}.panel,.subpanel,.task-row,.file-card,.stat-card,.mini-card,.empty-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{margin-bottom:12px;padding:12px}.subpanel{box-shadow:none;background:#fafcff;margin-top:8px;padding:10px}.login-panel{gap:10px;max-width:520px;margin:48px auto 0;display:grid}.status-box{color:#1849a9;background:#eef4ff;border-radius:12px;margin-bottom:10px;padding:10px 12px;font-weight:700;display:none}.status-box.show{display:block}.status-box.error{color:#991b1b;background:#fef2f2}label{gap:4px;min-width:0;font-size:12px;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;min-height:40px;padding:9px 11px}textarea{resize:vertical;min-height:88px}button{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:10px;width:auto;min-height:36px;padding:9px 12px;font-weight:700}button.secondary{background:#475467}button.warn{background:var(--orange)}button.danger{background:var(--red)}button.small{min-height:32px;padding:6px 10px;font-size:12px}button:disabled{opacity:.7;cursor:not-allowed}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.topbar-actions{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.topbar-actions label{min-width:220px}.pill-row,.badge-row,.button-row{flex-wrap:wrap;gap:6px;display:flex}.button-row.wrap-right{justify-content:flex-end}.pill,.badge,.chip-link{color:#3730a3;background:#eef2ff;border-radius:999px;align-items:center;padding:5px 9px;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.pill.subtle{color:#344054;background:#f2f4f7}.badge.muted-badge{color:#475467;background:#f2f4f7}.badge.compact{margin-top:6px}.badge.warn{color:#b54708;background:#fffaeb}.status-not-started{color:#344054;background:#f2f4f7}.status-in-progress{color:#9a3412;background:#fff7ed}.status-complete,.review-approved{color:#166534;background:#ecfdf3}.review-pending-review{color:#1d4ed8;background:#eff6ff}.review-rejected{color:#991b1b;background:#fef2f2}.status-waiting-materials{color:#b54708;background:#fffaeb}.tabs{z-index:10;scrollbar-width:thin;flex-wrap:nowrap;gap:8px;display:flex;position:sticky;top:0;overflow-x:auto}.tab-btn{color:var(--text);border:1px solid var(--line);white-space:nowrap;background:#fff;flex:none}.tab-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.form-grid,.filters-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;display:grid}.full-width{grid-column:1/-1}.tab-stack,.three-col,.task-list,.mini-list-grid,.group-stack,.gallery-grid,.card-grid,.report-preview,.attachment-list{gap:12px;display:grid}.three-col{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.report-preview{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:10px}.attachment-list{grid-template-columns:1fr;gap:6px;margin-top:8px}.stat-card{padding:10px}.stat-value{font-size:22px;font-weight:800}.muted{color:var(--muted)}.small{font-size:12px}.soft-note{border:1px solid var(--line);color:var(--muted);background:#fafcff;border-radius:12px;margin-bottom:10px;padding:10px}.warn-note{color:#92400e;background:#fffbeb;border-color:#f59e0b}.task-row{box-shadow:none;padding:10px}.tree-0{border-left:5px solid #98a2b3}.tree-1{border-left:5px solid #2563eb}.tree-2,.tree-3,.tree-4{border-left:5px solid #12b76a}.task-row.task-row-role-parent{border-left-color:#98a2b3}.task-row.task-row-role-leaf{border-left-color:#2563eb}.task-row.task-row-role-parent.task-row-expanded{border-left-color:#98a2b3}.task-row.task-row-role-leaf.task-row-expanded{border-left-color:#2563eb}.task-head{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.task-title-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.task-meta-row{color:var(--muted);flex-wrap:wrap;gap:10px;margin-top:4px;font-size:12px;display:flex}.task-notes{margin-top:6px}.history-item{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:8px;padding:8px 9px}.file-card{gap:8px;padding:10px;display:grid}.file-thumb,.file-placeholder{border:1px solid var(--line);object-fit:cover;background:#eef2f7;border-radius:10px;width:100%;height:180px}.file-placeholder{color:var(--muted);justify-content:center;align-items:center;font-weight:700;display:flex}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.report-card{align-content:start}.mini-card,.empty-card{box-shadow:none;padding:10px}.empty-card{color:var(--muted)}.link{color:var(--blue);font-weight:700;text-decoration:none}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:9px 7px;font-size:13px}.right{text-align:right}@media (max-width:860px){.page-wrap{padding:9px}.panel{margin-bottom:10px;padding:10px}.topbar-actions{width:100%}.topbar-actions>div{flex:220px}.stats-grid{grid-template-columns:1fr 1fr}.gallery-grid,.card-grid{grid-template-columns:1fr}.file-thumb,.file-placeholder{height:150px}input,select,textarea{font-size:16px}}@media (max-width:640px){.page-wrap{padding:8px}.panel{border-radius:14px;padding:9px}.subpanel{padding:8px}.tabs{gap:6px;padding-bottom:2px}.tab-btn{min-height:34px;padding:8px 10px;font-size:12px}.form-grid,.filters-grid,.three-col,.report-preview,.upload-attach-row,.upload-file-meta-row{grid-template-columns:1fr}.button-row.mobile-stack,.topbar-actions,.button-row.wrap-right{width:100%}.button-row.mobile-stack>button,.button-row.mobile-stack>a,.button-row.wrap-right>button{justify-content:center;width:100%}.task-head{gap:8px}.task-meta-row{gap:6px}.file-thumb,.file-placeholder{height:132px}.pill-row{gap:4px}.pill,.badge,.chip-link{padding:4px 8px;font-size:10px}}@media (max-width:520px){.stats-grid{grid-template-columns:1fr}.button-row>button,.button-row>a{flex:auto}.topbar-actions label{width:100%;min-width:0}}.section-head.compact-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.section-head.compact-head h3{margin:0}.task-summary-line{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px;display:flex}.task-inline-meta{color:var(--muted,#667085);font-size:13px}.hide-filters-mobile{display:grid}.mobile-sticky-actions{background:inherit;padding-top:10px;position:sticky;bottom:0}@media (max-width:900px){.hide-filters-mobile{display:none}.show-filters{display:grid}.mobile-filter-toggle{display:inline-flex}}@media (min-width:901px){.mobile-filter-toggle{display:none}}.compact-note{margin-bottom:0;padding:8px 10px}.upload-summary-note{margin-top:10px}.upload-progress-card{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:10px;padding:10px}.upload-progress-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.upload-progress-bar{background:#e5e7eb;border-radius:999px;width:100%;height:10px;margin-bottom:6px;overflow:hidden}.upload-progress-bar>span{background:var(--blue);border-radius:999px;height:100%;display:block}.quick-task-panel{gap:10px;display:grid}.quick-task-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;display:grid}.quick-task-actions{margin-top:2px}@media (max-width:640px){.upload-progress-card{padding:9px}.quick-task-grid{grid-template-columns:1fr}}button.tertiary{color:#1d4ed8;background:#e8eefc}.section-head-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.recent-task-strip{gap:6px;display:grid}.quick-chip-row{flex-wrap:wrap;gap:6px;display:flex}.quick-chip{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;min-height:30px;padding:6px 10px;font-size:12px}.quick-chip.active{background:var(--blue);border-color:var(--blue);color:#fff}.upload-summary-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.selected-file-list{gap:6px;margin-top:8px;display:grid}.selected-file-row{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:space-between;gap:10px;padding:7px 9px;display:flex}.summary-pill-row{flex-wrap:wrap;gap:6px;margin:10px 0 4px;display:flex}@media (max-width:640px){.section-head-actions{justify-content:stretch;width:100%}.section-head-actions>button{flex:1 1 0}.selected-file-row{flex-direction:column;gap:4px}}.upload-context-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.inline-check{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.inline-check input{margin:0}.quick-filter-panel{margin-bottom:10px}.file-queue-panel{background:#f8fbff;margin-bottom:12px}.compact-file-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.file-queue-panel .file-card{background:#fff}.file-queue-panel .file-thumb,.file-queue-panel .file-placeholder{height:132px}@media (max-width:640px){.quick-filter-panel{margin-bottom:8px}.file-queue-panel{margin-bottom:10px}.compact-file-grid{grid-template-columns:1fr}}.file-card-actions{flex-wrap:wrap;align-items:center;gap:6px}.quick-assign-panel{gap:6px;margin-top:8px;display:grid}.file-edit-panel{gap:10px}.file-edit-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.compact-file-edit-grid{align-items:start}.compact-inline-note{margin-top:2px}.file-edit-advanced-grid{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.unassigned-file-card{border-color:#c7d2fe;box-shadow:0 0 0 1px #3b82f60f}@media (max-width:640px){.file-card-actions>*{text-align:center;flex:calc(50% - 6px)}.file-edit-head{gap:8px}.file-edit-head .button-row{width:100%}.file-edit-head .button-row>button{flex:1 1 0}.quick-assign-panel .quick-chip-row{grid-template-columns:1fr;display:grid}.quick-assign-panel .quick-chip{justify-content:flex-start;width:100%}.upload-context-row{align-items:stretch}.upload-context-row>*{width:100%}}.upload-form-advanced-grid{border-top:1px solid var(--line);margin-top:4px;padding-top:8px}.upload-attach-row{grid-template-columns:minmax(150px,170px) minmax(170px,190px) minmax(240px,1.7fr) minmax(170px,1fr) minmax(170px,1fr);align-items:end;gap:8px;display:grid}.upload-file-meta-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:8px;display:grid}.file-card-top-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.file-select-check{color:#1d4ed8;font-weight:600}.selected-file-card{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.batch-assign-panel{border-bottom:1px solid var(--line);gap:8px;margin-bottom:10px;padding-bottom:8px;display:grid}.batch-assign-grid{grid-template-columns:repeat(4,minmax(180px,1fr));align-items:end;gap:8px;display:grid}.batch-assign-actions{justify-content:flex-end}.queue-footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}@media (max-width:640px){.batch-assign-grid{grid-template-columns:1fr}.batch-assign-actions{justify-content:stretch;width:100%}.batch-assign-actions>*{flex:1 1 0}}.priority-badge{color:#fff;border-color:#0000;font-weight:800}.priority-1{background:#b91c1c}.priority-2{background:#ea580c}.priority-3{background:#ca8a04}.priority-4{background:#65a30d}.priority-5{background:#15803d}.task-inline-field{gap:4px;min-width:104px;margin-left:2px;display:inline-grid}.task-inline-field>span{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:800}.task-inline-field-status{min-width:150px}.task-inline-field-assigned{min-width:170px}.task-inline-field-progress{min-width:96px}.task-inline-field-date{min-width:148px}.task-inline-select{border-radius:9px;min-height:30px;padding:4px 28px 4px 8px;font-size:12px;font-weight:700}.priority-select-field{color:#fff;border-color:#0000}.priority-select-field option{color:#152033;background:#fff}.task-complete-panel{background:#f5fff7;border-color:#15803d47}.quick-subtask-panel{background:#f8fbff;border-color:#2563eb2e}.quick-subtask-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.quick-subtask-grid{align-items:start}@media (max-width:640px){.task-inline-field,.task-inline-field-assigned{width:100%;min-width:0}.task-inline-select{min-height:36px}.task-inline-field-date{width:100%;min-width:0}.quick-subtask-head{align-items:flex-start}}.compact-task-row{border-radius:10px;padding:8px 10px}.task-list>.task-row:nth-of-type(odd),.task-list>.task-tree-node:nth-of-type(odd)>.task-row{background:#f6f7f9}.task-list>.task-row:nth-of-type(2n),.task-list>.task-tree-node:nth-of-type(2n)>.task-row{background:#eef1f4}.task-row-clickable{cursor:pointer}.task-row-clickable:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.task-row-summary{gap:4px;display:grid}.task-tree-node{gap:8px;display:grid}.task-tree-children{gap:8px;padding-left:14px;display:grid}.task-row-expanded{box-shadow:inset 0 0 0 1px #2563eb1f}.compact-task-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 10px;display:grid}.task-main{min-width:0}.compact-title-row{flex-wrap:wrap;align-items:center;gap:4px 8px;line-height:1.2;display:flex}.compact-title-row strong{margin-right:2px}.task-quick-line{flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:4px;display:flex}.task-chip-field{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:6px;min-height:32px;padding:4px 8px;display:inline-flex}.task-chip-label{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:10px;font-weight:800}.task-chip-select,.task-chip-input{background:0 0;border:0;min-height:22px;padding:0;font-size:12px;font-weight:700}.task-chip-select:focus,.task-chip-input:focus{outline:none}.task-chip-field-status{min-width:150px}.task-chip-field-priority{min-width:96px}.task-chip-field-assign{min-width:150px}.task-chip-field-progress{min-width:110px}.task-chip-field-date{min-width:138px}.task-chip-field-priority .task-chip-label,.task-chip-field-priority .task-chip-select{color:#fff}.task-row-actions{flex:none;grid-template-rows:repeat(2,minmax(0,auto));grid-auto-flow:column;justify-content:end;align-self:center;align-items:start;gap:4px;display:grid}.task-row-actions>button{min-height:24px;padding:3px 8px;line-height:1.1}.task-progress-panel{background:#f8fbff;border-color:#2563eb2e}.task-detail-panel{background:#fbfefc;border-color:#15803d29}.task-detail-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.task-detail-history{gap:8px;margin-top:10px;display:grid}@media (max-width:900px){.compact-task-head{grid-template-columns:1fr;align-items:start}.task-tree-children{padding-left:10px}.task-row-actions{grid-template-rows:repeat(2,minmax(0,auto));justify-content:flex-start;align-self:stretch;width:100%}}@media (max-width:640px){.task-chip-field,.task-chip-field-status,.task-chip-field-priority,.task-chip-field-assign,.task-chip-field-progress,.task-chip-field-date{flex:calc(50% - 6px);min-width:0}.task-row-actions{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,max-content));grid-auto-flow:row;gap:4px}.task-row-actions>button{min-width:0;padding:3px 7px}.compact-title-row{align-items:flex-start}}.users-grid{gap:10px;display:grid}.user-card{border:1px solid var(--line);background:#fff;border-radius:14px;gap:10px;padding:10px;display:grid}.users-create-form{gap:10px;display:grid}.compact-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.user-pill-inactive{color:#991b1b;background:#fef2f2}.topbar-status-pills{align-items:center}.network-pill.online{color:#166534;background:#ecfdf3}.network-pill.offline{color:#991b1b;background:#fef2f2}.install-btn{white-space:nowrap}@media (max-width:720px){.topbar-actions{align-items:stretch;width:100%}.topbar-actions label{flex:100%;min-width:0}.topbar-status-pills{justify-content:space-between;width:100%}.install-btn{width:auto}}
