:root{--ink:#14202a;--muted:#6a7782;--line:#dfe5e8;--paper:#f7f8f7;--white:#fff;--navy:#1e3a5f;--blue:#2e6f95;--teal:#23847c;--red:#c64d4d;--amber:#b67b2e;--shadow:0 14px 34px rgba(31,53,67,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:70px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 4vw;gap:38px;position:sticky;top:0;z-index:10}.brand{font-weight:800;font-size:16px;letter-spacing:.02em;white-space:nowrap}.brand span{display:block;color:var(--muted);font-size:9px;letter-spacing:.2em;font-weight:600}.nav-links{display:flex;gap:24px;height:100%;align-items:center}.nav-links a{height:100%;display:flex;align-items:center;border-bottom:2px solid transparent;color:var(--muted)}.nav-links a.active{color:var(--navy);font-weight:700;border-bottom-color:var(--navy)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.page-shell{max-width:1440px;margin:0 auto;padding:42px 4vw 72px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}.page-heading h1{margin:4px 0 6px;font-size:29px;line-height:1.2;letter-spacing:-.01em}.dashboard-heading h1{max-width:650px}.eyebrow{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.15em}.muted{color:var(--muted)}.small{font-size:12px}.button{border:1px solid transparent;padding:9px 15px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.button-primary{background:var(--navy);color:#fff}.button-primary:hover{background:#152c48}.button-dark{background:var(--ink);color:#fff}.button-quiet{background:#fff;border-color:var(--line);color:var(--ink)}.button-danger-outline{background:#fff;border-color:#e7bcbc;color:var(--red)}.icon-button,.mini-button{background:none;border:0;color:var(--muted);font-size:19px;padding:4px}.mini-button{font-size:18px;line-height:1}.full-width{width:100%}.notice{padding:12px 15px;border:1px solid;border-radius:4px;margin-bottom:20px}.notice.success{background:#edf7f4;color:#1d6d63;border-color:#c4e7dd}.notice.error{background:#fff1f1;color:#a63d3d;border-color:#f0c3c3}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:48px}.kpi-card{background:var(--white);border:1px solid var(--line);padding:22px 24px;min-height:145px;display:flex;flex-direction:column}.kpi-card span{font-weight:700;color:var(--muted)}.kpi-card strong{font-size:42px;line-height:1;margin:14px 0 8px;color:var(--navy)}.kpi-card small{color:var(--muted)}.kpi-interview strong{color:var(--teal)}.kpi-offer strong{color:var(--amber)}.content-section{margin-top:34px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.section-heading h2{margin:0;font-size:19px}.section-heading.compact{margin-bottom:14px}.text-link,.back-link{color:var(--blue);font-weight:700}.task-list{border-top:1px solid var(--line)}.task-row{background:#fff;border-bottom:1px solid var(--line);min-height:75px;display:flex;align-items:center;gap:17px;padding:14px 18px}.task-row.overdue{border-left:3px solid var(--red)}.task-row.today{border-left:3px solid var(--amber)}.check-button{width:19px;height:19px;border:1.5px solid #9baab2;border-radius:50%;background:#fff;flex:0 0 auto;padding:0}.check-button.checked{background:var(--teal);border-color:var(--teal);position:relative}.check-button.checked:after{content:'✓';color:#fff;font-size:12px;position:absolute;left:3px;top:-1px}.task-main{min-width:0;flex:1}.task-title{font-weight:700}.task-title span{color:#b8c1c6;margin:0 5px}.task-note{color:var(--muted);font-size:12px;margin-top:2px}.task-date{color:var(--muted);font-size:12px;white-space:nowrap}.task-badge{font-size:11px;min-width:40px;text-align:right;color:var(--muted)}.overdue .task-badge{color:var(--red);font-weight:700}.today .task-badge{color:var(--amber);font-weight:700}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:150px;border:1px dashed #cbd5d9;color:var(--muted);background:#fff}.empty-state strong{color:var(--ink)}.filters{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:18px}.filters select,.filters input{height:39px;border:1px solid var(--line);background:#fff;border-radius:4px;padding:0 11px;color:var(--ink)}.search-field{display:flex;align-items:center;background:#fff;border:1px solid var(--line);height:39px;border-radius:4px;min-width:270px;padding:0 10px;gap:6px}.search-field span{font-size:21px;color:var(--muted)}.search-field input{border:0;outline:0;flex:1;padding:0}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line)}.jobs-table{border-collapse:collapse;width:100%;min-width:1040px;text-align:left}.jobs-table th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;background:#f4f6f6;white-space:nowrap}.jobs-table th,.jobs-table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}.jobs-table tbody tr{cursor:pointer}.jobs-table tbody tr:hover{background:#f8fbfc}.jobs-table td:first-child{min-width:130px}.jobs-table td small,.jobs-table td strong{display:block}.jobs-table td small{color:var(--muted);font-size:11px;margin-top:3px}.priority,.status-pill,.action-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:20px;font-size:11px;background:#eef2f3;color:var(--ink);white-space:nowrap}.priority-P0{color:#a54040;background:#fff0f0}.priority-P1{color:#a66a26;background:#fff6e8}.priority-P2{color:#2b6781;background:#edf7fa}.priority-P3{color:#617078;background:#f0f3f4}.status-pill.large{font-size:12px}.table-footer{color:var(--muted);font-size:12px;margin-top:12px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:24px;align-items:start}.detail-main,.detail-sidebar{min-width:0}.detail-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.record-id{font-family:ui-monospace,monospace;color:#a7b0b5;font-size:10px}.detail-header{border-bottom:1px solid var(--line);padding-bottom:23px;margin-bottom:26px;position:relative}.detail-header h1{font-size:28px;margin:4px 0 8px}.detail-header h1 small{display:block;font-size:14px;color:var(--muted);font-weight:500;margin-top:5px}.detail-header>.status-pill{position:absolute;right:0;bottom:24px}.detail-form{background:#fff;border:1px solid var(--line)}.form-section{padding:25px;border-bottom:1px solid var(--line)}.form-section-title{font-weight:800;margin-bottom:17px}.form-grid{display:grid;gap:15px}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label,.stack-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:12px;color:#53616a}.form-grid em{color:var(--red);font-style:normal}.form-grid input,.form-grid select,.form-grid textarea,.stack-form input,.stack-form select,.compact-form input,.compact-form select{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:4px;padding:10px 11px;outline:none}.form-grid textarea{resize:vertical;line-height:1.6}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.stack-form input:focus,.compact-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e8f2f6}.form-actions{padding:18px 25px;display:flex;gap:10px}.detail-sidebar{display:flex;flex-direction:column;gap:14px}.side-section,.settings-card{background:#fff;border:1px solid var(--line);padding:19px}.compact-form{display:flex;flex-direction:column;gap:9px;margin-bottom:18px}.inline-fields{display:grid;grid-template-columns:1fr 1.15fr;gap:7px}.compact-form .button{align-self:flex-start;padding:7px 11px;font-size:12px}.timeline-list,.side-task-list{border-top:1px solid var(--line)}.timeline-item,.side-task{display:flex;gap:9px;padding:12px 0;border-bottom:1px solid #edf0f1;position:relative}.timeline-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);margin:7px 2px 0 3px;flex:0 0 auto}.timeline-item>div,.side-task>div{min-width:0;flex:1}.timeline-item strong,.side-task strong{display:block;font-size:12px}.timeline-item time,.side-task time{display:block;color:var(--muted);font-size:11px}.timeline-item p,.side-task p{margin:4px 0 0;color:var(--muted);font-size:12px;white-space:pre-wrap}.side-task.complete{opacity:.5}.upload-form{display:flex;gap:7px;align-items:center;margin-bottom:14px}.upload-form input{min-width:0;flex:1;font-size:11px}.attachment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.attachment-grid figure{margin:0;border:1px solid var(--line);background:#f8f9f9}.attachment-grid img{display:block;width:100%;aspect-ratio:1.2;object-fit:cover}.attachment-grid figcaption{padding:6px;font-size:10px;color:var(--muted);display:flex;align-items:center;gap:4px}.attachment-grid figcaption:first-letter{}.attachment-grid figcaption form{margin-left:auto}.login-shell{min-height:70vh;display:flex;align-items:center;justify-content:center}.login-panel{width:390px;background:#fff;border:1px solid var(--line);padding:38px;box-shadow:var(--shadow)}.login-panel h1{margin:7px 0;font-size:30px}.stack-form{display:flex;flex-direction:column;gap:15px}.login-panel .stack-form{margin-top:28px}.import-panel{max-width:700px}.dropzone{border:1px dashed #aebdc4;background:#fff;min-height:245px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center}.dropzone input{margin:8px 0;max-width:90%}.upload-symbol{font-size:30px;color:var(--blue)}.dropzone span{font-size:12px;color:var(--muted)}.preview-panel{margin-top:38px}.preview-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:17px}.preview-counts>div{background:#fff;border:1px solid var(--line);padding:14px}.preview-counts strong{display:block;font-size:25px;color:var(--navy)}.preview-counts span{color:var(--muted);font-size:12px}.action-tag{border-radius:3px}.action-新增{background:#edf7f4;color:#1d6d63}.action-更新{background:#fff6e8;color:#996923}.action-跳过{background:#f0f3f4;color:#66747c}.trash-list{background:#fff;border:1px solid var(--line)}.trash-row{padding:14px 17px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px}.trash-row>div{min-width:0;flex:1}.trash-row strong,.trash-row span{display:block}.trash-row time{font-size:11px;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:17px}.option-list{border-top:1px solid var(--line)}.option-list>div{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #edf0f1}.option-list strong{flex:1}.option-kind{font-size:10px;padding:3px 6px;background:#eef2f3;color:var(--muted)}.settings-note{background:#fff;border:1px solid var(--line);padding:20px}.settings-note h2{font-size:16px;margin:0 0 7px}.settings-note p{margin:5px 0}
@media(max-width:900px){.topbar{padding:0 20px;gap:18px}.nav-links{gap:12px}.nav-links a{font-size:12px}.top-actions .button{display:none}.page-shell{padding:28px 20px 50px}.detail-layout{grid-template-columns:1fr}.detail-sidebar{order:2}.kpi-card{padding:17px}.kpi-card strong{font-size:34px}.form-grid.two-col{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}}
@media(max-width:620px){.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:12px 16px;gap:8px}.brand{margin-right:auto}.nav-links{order:3;width:100%;height:34px;justify-content:space-between;gap:0}.nav-links a{font-size:11px}.page-shell{padding:25px 14px 42px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:23px}.page-heading h1{font-size:25px}.dashboard-heading .button{align-self:stretch}.kpi-grid{gap:7px;margin-bottom:34px}.kpi-card{padding:13px 11px;min-height:116px}.kpi-card span{font-size:11px}.kpi-card strong{font-size:28px;margin:10px 0 5px}.kpi-card small{font-size:9px}.task-row{padding:12px 10px;gap:10px}.task-date{font-size:10px}.task-badge{display:none}.filters{display:grid;grid-template-columns:1fr 1fr}.search-field{grid-column:1 / -1;min-width:0;width:100%}.filters .button{width:100%}.detail-header h1{font-size:24px}.detail-header>.status-pill{position:static}.detail-form{border-left:0;border-right:0}.form-section{padding:20px 0}.form-actions{padding:15px 0}.side-section{padding:16px 13px}.inline-fields{grid-template-columns:1fr}.upload-form{align-items:stretch;flex-direction:column}.upload-form .button{width:100%}.preview-counts{gap:5px}.preview-counts>div{padding:10px 8px}.preview-counts strong{font-size:21px}.preview-counts span{font-size:10px}.trash-row{align-items:flex-start;flex-wrap:wrap;gap:5px}.trash-row time{width:100%}.login-panel{width:100%;padding:28px 22px}.login-shell{min-height:75vh}}
.crop-status.crop-ready{color:var(--teal);font-weight:700}.crop-modal{position:fixed;inset:0;z-index:30;background:rgba(13,25,34,.66);display:flex;align-items:center;justify-content:center;padding:20px}.crop-modal[hidden]{display:none}.modal-open{overflow:hidden}.crop-dialog{width:min(720px,100%);background:#fff;box-shadow:0 22px 60px rgba(0,0,0,.25);padding:22px}.crop-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:15px}.crop-dialog-header h2{font-size:21px;margin:4px 0 0}.crop-stage{height:min(58vh,460px);min-height:260px;background:#15232d;position:relative;overflow:hidden;touch-action:none}.crop-stage canvas{width:100%;height:100%;display:block;cursor:grab}.crop-stage canvas:active{cursor:grabbing}.crop-guide{position:absolute;left:0;right:0;bottom:10px;text-align:center;color:rgba(255,255,255,.8);font-size:11px;pointer-events:none}.crop-controls{display:flex;align-items:center;gap:25px;padding:16px 0 7px}.crop-controls label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:700}.crop-controls select{border:1px solid var(--line);padding:7px 9px;background:#fff;border-radius:4px}.zoom-control{flex:1}.zoom-control input{width:100%;accent-color:var(--blue)}.zoom-control output{min-width:42px;text-align:right;color:var(--ink)}.crop-dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:14px}.crop-dialog-actions .muted{margin-right:auto}.crop-dialog-actions .button{padding:8px 13px}@media(max-width:620px){.crop-modal{padding:0;align-items:stretch}.crop-dialog{width:100%;min-height:100%;padding:17px 14px;display:flex;flex-direction:column}.crop-stage{height:52vh;min-height:280px}.crop-controls{display:block}.crop-controls>label{margin:9px 0}.crop-dialog-actions{margin-top:auto;flex-wrap:wrap}.crop-dialog-actions .muted{width:100%;margin:0 0 5px}.crop-dialog-actions .button{flex:1}}
.activity-panel{width:auto;padding:22px;grid-column:1;grid-row:2}.activity-form,.activity-edit-form{display:flex;flex-direction:column;gap:11px}.activity-form{border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:8px}.activity-form label,.activity-edit-form label{display:flex;flex-direction:column;gap:5px;color:#53616a;font-size:12px;font-weight:700}.activity-form input,.activity-form select,.activity-edit-form input,.activity-edit-form select{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:4px;padding:9px 10px;outline:none}.activity-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.checkbox-label{display:flex!important;flex-direction:row!important;align-items:center;white-space:normal;padding-top:2px}.checkbox-label input{accent-color:var(--teal);width:16px;height:16px;margin:0 6px 0 0;padding:0;flex:0 0 auto}.activity-list{border-top:1px solid var(--line)}.activity-item{border-bottom:1px solid #edf0f1;padding:14px 0}.activity-item-head{display:flex;align-items:flex-start;gap:9px}.activity-item-content{flex:1;min-width:0}.activity-item-content strong{display:block;font-size:13px}.activity-item-content time{display:block;color:var(--muted);font-size:11px}.activity-item-content p{margin:4px 0;color:var(--muted);font-size:12px;white-space:pre-wrap}.activity-item-actions{display:flex;gap:4px}.activity-edit-form,.ddl-edit-form{display:none;background:#f7f9f9;border:1px solid var(--line);padding:12px;margin-top:10px}.activity-edit-form:target,.ddl-edit-form:target{display:flex}.linked-ddl{display:inline-block;margin-top:5px;padding:3px 7px;background:#edf7f4;color:#1d6d63;font-size:10px;border-radius:3px}.embedded-ddl{margin-top:20px;border-top:2px solid var(--ink);padding-top:15px}.subsection-title{font-size:13px;font-weight:800;margin-bottom:8px}.embedded-ddl .side-task{align-items:flex-start}.embedded-ddl .ddl-edit-form{margin:5px 0 10px}.embedded-ddl .side-task .mini-button{flex:0 0 auto}.advanced-details{border-top:1px solid var(--line);background:#fafbfb;padding:0 25px}.advanced-details summary{cursor:pointer;padding:16px 0;color:var(--muted);font-weight:700;font-size:12px}.advanced-details-body{padding:0 0 20px}.detail-sidebar{display:contents}.detail-sidebar> .side-section:last-child{grid-column:2;grid-row:2;align-self:start}@media(max-width:900px){.detail-sidebar{display:flex;grid-column:auto;grid-row:auto}.activity-panel{grid-column:auto;grid-row:auto}}@media(max-width:700px){.activity-form-grid{grid-template-columns:1fr}.checkbox-label{padding:0 0 8px}.activity-panel{padding:16px 13px}.advanced-details{padding:0}}
.kpi-link{color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}.kpi-link:hover{border-color:#9bbac5;box-shadow:0 8px 22px rgba(13,37,48,.08);transform:translateY(-2px)}
.kpi-grid{grid-template-columns:repeat(4,1fr)}.kpi-terminated strong{color:var(--red)}.today-progress-row{cursor:pointer}.today-progress-row:hover{background:#f8fbfc}.today-progress-row .timeline-dot{margin-top:7px}.image-uploader{border-top:1px solid var(--line);padding-top:15px}.image-upload-zone{display:flex;align-items:center;gap:10px;border:1px dashed #aebdc4;background:#f8fbfb;padding:16px;cursor:pointer;outline:none}.image-upload-zone:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e8f2f6}.image-upload-zone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.image-upload-zone strong{font-size:12px}.image-upload-zone span{color:var(--muted);font-size:11px}.upload-form-actions{display:flex;align-items:center;gap:10px;min-height:38px}.pending-image-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:10px 0}.pending-image-grid[hidden]{display:none}.pending-image-card{position:relative;border:1px solid var(--line);background:#f8f9f9}.pending-image-card img{display:block;width:100%;aspect-ratio:1.2;object-fit:cover}.pending-image-card .mini-button{position:absolute;right:3px;top:3px;background:rgba(255,255,255,.9)}.progress-time-field{min-width:0}.progress-time-label{display:block;color:#53616a;font-size:12px;font-weight:700;margin-bottom:5px}.progress-time-inputs{display:flex;align-items:center;gap:4px}.progress-time-inputs input{width:40px!important;min-width:0!important;text-align:center;padding:9px 3px!important}.progress-time-inputs input[data-time-year]{width:52px!important}.progress-time-inputs .time-separator{width:6px}.progress-time-hint{display:block;margin-top:5px}.progress-time-error{display:block;min-height:16px;color:var(--red);font-size:11px}.crop-dimensions{min-width:145px}.crop-stage{user-select:none}.crop-handle{fill:#fff;stroke:#15232d;stroke-width:1}.crop-stage canvas{cursor:grab}.crop-stage canvas.is-resizing{cursor:crosshair}@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.image-upload-zone{align-items:flex-start;flex-direction:column}.upload-form-actions{align-items:flex-start;flex-direction:column;gap:4px}.pending-image-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-time-inputs{gap:2px}.progress-time-inputs input{width:32px!important}.progress-time-inputs input[data-time-year]{width:46px!important}.crop-dimensions{display:block;margin-bottom:8px}}
.kpi-grid{grid-template-columns:repeat(3,1fr)}.kpi-card-title{display:flex;flex-direction:column;gap:2px;color:inherit}.kpi-card-title small{color:var(--muted)}.kpi-total{font-size:42px;line-height:1;margin:14px 0 12px;color:var(--navy)}.kpi-substats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:auto}.kpi-substat{border-top:1px solid var(--line);padding-top:9px;display:flex;flex-direction:column;gap:3px}.kpi-substat span{font-size:12px}.kpi-substat strong{font-size:25px;line-height:1.1;color:var(--navy)}.kpi-terminated strong{color:var(--red)}@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.kpi-grid{grid-template-columns:1fr}.kpi-substats{gap:10px}}
.activity-form-grid .progress-time-field{min-width:0}.progress-time-inputs{display:flex!important;flex-wrap:nowrap;align-items:center;white-space:nowrap;width:max-content;max-width:100%}.progress-time-inputs input{flex:0 0 auto!important}.progress-time-inputs>span{flex:0 0 auto}.kpi-delivered{grid-template-columns:minmax(115px,.8fr) minmax(0,1.2fr);gap:20px;align-items:stretch}.kpi-total-link{display:flex;flex-direction:column;justify-content:center;color:inherit}.kpi-total-link>span{font-weight:700;color:var(--muted)}.kpi-total-link small{color:var(--muted)}.kpi-total-link:hover,.kpi-substat:hover{text-decoration:none}.kpi-substats{align-self:stretch;align-items:stretch;gap:0;margin:0}.kpi-substat{justify-content:center;border-top:0;border-left:1px solid var(--line);padding:10px 0 10px 18px}.kpi-substat strong{margin:0}.kpi-substat.kpi-flow strong{color:var(--blue)}.kpi-substat.kpi-flow span{color:var(--blue)}.kpi-substat.kpi-terminated span{color:var(--red)}@media(max-width:620px){.kpi-delivered{grid-template-columns:100px minmax(0,1fr);gap:10px}.kpi-substat{padding-left:10px}.kpi-total{font-size:32px}}
.task-link-row{cursor:pointer}.task-link-row:hover{background:#f8fbfc}
.activity-item-open{display:block;flex:1;min-width:0;border:0;background:transparent;text-align:left;padding:0;color:inherit;cursor:pointer}.activity-item-open:hover .activity-item-content strong{color:var(--blue)}.activity-item-actions form{display:flex}.activity-item-content .details-indicator{display:block;color:var(--blue);font-size:10px;margin-top:4px}.rating-text{font-style:normal;font-weight:800}.rating-hang{color:#d83b3b}.rating-top{color:#d97706}.rating-elite{color:#b88700}.rating-npc{color:#7a4b28}.rating-bad{color:#111820}.progress-modal{position:fixed;inset:0;z-index:35;background:rgba(13,25,34,.66);display:flex;align-items:center;justify-content:center;padding:20px}.progress-modal[hidden]{display:none}.progress-dialog{width:min(700px,100%);max-height:min(88vh,820px);overflow:auto;background:#fff;box-shadow:0 22px 60px rgba(0,0,0,.25);padding:24px}.progress-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.progress-dialog-header h2{font-size:22px;margin:4px 0}.progress-modal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:14px;align-items:start}.progress-modal-grid>label,.modal-field-label{display:flex;flex-direction:column;gap:6px;color:#53616a;font-size:12px;font-weight:700}.progress-modal select,.progress-modal input,.progress-modal textarea{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:4px;padding:10px 11px;outline:none}.progress-modal select:focus,.progress-modal input:focus,.progress-modal textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e8f2f6}.progress-modal textarea{resize:vertical;line-height:1.6}.progress-modal .progress-time-field{padding:0}.progress-modal .progress-time-label{margin:0}.modal-locked-time{padding:0 0 7px}.modal-locked-time strong{display:block;padding:10px 0;color:var(--ink)}.rating-field{border:0;border-top:1px solid var(--line);padding:14px 0 0;margin:18px 0 0}.rating-field legend{padding:0;color:#53616a;font-size:12px;font-weight:700}.rating-options{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.rating-option{display:flex;align-items:center;gap:5px;color:var(--ink);font-size:12px;font-weight:700}.rating-option input{accent-color:var(--blue);padding:0}.markdown-toolbar{display:flex;align-items:center;gap:7px;margin-top:8px}.markdown-toolbar .button{padding:6px 9px;font-size:11px}.markdown-preview{min-height:150px;margin-top:8px;padding:13px 15px;border:1px solid var(--line);background:#fafcfc;line-height:1.7}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{margin:0 0 8px}.markdown-preview p{margin:0 0 9px}.markdown-preview ul,.markdown-preview ol{padding-left:22px}.markdown-preview blockquote{border-left:3px solid #cbd8dd;padding-left:12px;color:var(--muted);margin-left:0}.markdown-preview pre{overflow:auto;background:#17252e;color:#f4f7f8;padding:10px}.markdown-preview code{background:#edf1f2;padding:2px 4px}.progress-dialog-actions{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.progress-dialog-actions [data-progress-modal-error]{margin-right:auto;color:var(--red)}.progress-dialog-actions .has-error{color:var(--red)}.initial-progress-summary{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 12px;background:#f7f9f9;border:1px solid var(--line);font-size:12px}.initial-progress-summary strong{color:var(--ink)}.initial-progress-summary span{color:var(--muted)}.rating-board{border-top:1px solid var(--line)}.rating-section{display:grid;grid-template-columns:105px minmax(0,1fr);min-height:110px;border-bottom:1px solid #26323a;background:#202b32;color:#fff}.rating-section-label{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;color:#fff}.rating-section-label strong{font-size:18px}.rating-section-label small{font-size:10px;opacity:.75}.rating-hang .rating-section-label{background:#d83b3b}.rating-top .rating-section-label{background:#d97706}.rating-elite .rating-section-label{background:#b88700}.rating-npc .rating-section-label{background:#7a4b28}.rating-bad .rating-section-label{background:#111820}.rating-section-list{display:flex;align-content:flex-start;align-items:stretch;flex-wrap:wrap;gap:8px;padding:12px;min-width:0}.rating-entry{display:flex;flex:0 1 145px;min-height:78px;flex-direction:column;justify-content:center;padding:10px 12px;background:#f7f9f9;color:var(--ink);border:1px solid #d7e0e3;border-radius:4px;text-decoration:none}.rating-entry:hover{border-color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15)}.rating-entry strong{font-size:15px;line-height:1.25}.rating-entry span{font-size:12px;color:var(--muted);margin-top:5px}.rating-empty{align-self:center;color:rgba(255,255,255,.6);font-size:12px}.daily-group{margin-bottom:25px}.daily-group h2{margin:0;font-size:19px}.daily-progress-list{border-top:1px solid var(--line);background:#fff}.daily-progress-entry{display:flex;align-items:center;gap:11px;padding:13px 17px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.daily-progress-entry:hover{background:#f8fbfc}.daily-progress-main{display:flex;flex-direction:column;min-width:0;flex:1}.daily-progress-main strong{font-size:13px}.daily-progress-main small{color:var(--muted);font-size:11px;margin-top:3px}.daily-progress-type{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap}.daily-progress-entry time{color:var(--muted);font-size:11px;white-space:nowrap}.today-progress-row{color:inherit;text-decoration:none}@media(max-width:620px){.progress-modal{padding:0;align-items:stretch}.progress-dialog{width:100%;max-height:none;min-height:100%;padding:18px 14px}.progress-modal-grid{grid-template-columns:1fr}.progress-dialog-actions{margin-top:auto;flex-wrap:wrap}.progress-dialog-actions [data-progress-modal-error]{width:100%;margin:0}.rating-section{grid-template-columns:76px minmax(0,1fr)}.rating-section-label strong{font-size:15px}.rating-entry{flex-basis:115px;min-height:68px;padding:8px}.rating-entry strong{font-size:13px}.daily-progress-entry{padding:12px 10px;gap:8px}.daily-progress-entry time{font-size:10px}.daily-progress-type{font-size:11px;flex-direction:column;align-items:flex-end;gap:2px}}
.image-upload-zone{justify-content:space-between;flex-wrap:wrap;cursor:default}.image-upload-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.image-upload-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.image-upload-actions .button{padding:7px 10px}.image-paste-target{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;padding:0;border:0;pointer-events:none;resize:none}@media(max-width:620px){.image-upload-actions{width:100%}.image-upload-actions .button{flex:1}}
