body{
    margin:0;
    padding:0;
    font-family:"Microsoft YaHei", Arial, sans-serif;
    background:#f4f7fb;
    color:#333;
}

.topbar{
    background:#1e3c72;
    color:#fff;
    padding:16px 24px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.topbar-title{
    font-size:22px;
    font-weight:bold;
}

.container{
    width:1200px;
    margin:20px auto;
}

.card{
    background:#fff;
    border-radius:10px;
    padding:20px;
    margin-bottom:20px;
    box-shadow:0 2px 8px rgba(0,0,0,0.06);
}

h2{
    margin-top:0;
}

.form-row{
    margin-bottom:15px;
}

.form-row label{
    display:inline-block;
    width:120px;
    vertical-align:top;
    font-weight:bold;
}

.form-row input,
.form-row select,
.form-row textarea{
    width:320px;
    padding:8px;
    border:1px solid #ccc;
    border-radius:6px;
    font-size:14px;
}

.form-row textarea{
    height:100px;
    resize:vertical;
}

.btn{
    display:inline-block;
    padding:8px 14px;
    background:#2d7ef7;
    color:#fff;
    text-decoration:none;
    border:none;
    border-radius:6px;
    cursor:pointer;
}

.btn:hover{
    opacity:0.9;
}

.btn-gray{
    background:#888;
}

.alert{
    background:#fff3cd;
    color:#856404;
    padding:12px 16px;
    border-radius:8px;
    margin-bottom:20px;
}

.table{
    width:100%;
    border-collapse:collapse;
}

.table th,
.table td{
    border:1px solid #e5e5e5;
    padding:10px;
    text-align:left;
}

.table th{
    background:#f8fafc;
}

.summary-box{
    display:flex;
    gap:20px;
    margin-bottom:20px;
}

.summary-item{
    flex:1;
    background:#fff;
    border-radius:10px;
    padding:20px;
    box-shadow:0 2px 8px rgba(0,0,0,0.06);
}

.summary-item .label{
    color:#666;
    font-size:14px;
}

.summary-item .value{
    font-size:28px;
    font-weight:bold;
    margin-top:10px;
    color:#1e3c72;
}

.grid-2{
    display:flex;
    flex-wrap:wrap;
    gap:20px;
}

.quadrant{
    width:calc(50% - 10px);
    min-height:320px;
    background:#fff;
    border-radius:14px;
    box-shadow:0 2px 8px rgba(0,0,0,0.06);
    overflow:hidden;
}

.quadrant-header{
    padding:14px 18px;
    font-size:20px;
    font-weight:bold;
    color:#fff;
}

.q1 .quadrant-header{ background:#f36c8c; }
.q2 .quadrant-header{ background:#f4b43f; }
.q3 .quadrant-header{ background:#4b74ff; }
.q4 .quadrant-header{ background:#20c997; }

.quadrant-body{
    padding:15px;
}

.task-card{
    border:1px solid #e8e8e8;
    border-radius:10px;
    padding:12px;
    margin-bottom:12px;
    background:#fafafa;
}

.task-title{
    font-size:16px;
    font-weight:bold;
    margin-bottom:8px;
}

.task-meta{
    font-size:13px;
    color:#666;
    line-height:1.8;
}

.empty{
    color:#aaa;
    text-align:center;
    padding:60px 0;
    font-size:22px;
}

.nav-links{
    margin:15px 0 20px 0;
}

.nav-links a{
    margin-right:10px;
    text-decoration:none;
}

.comment-card{
    border:1px solid #e8e8e8;
    border-radius:12px;
    padding:14px 16px;
    margin-bottom:14px;
    background:#fff;
}

.comment-main{
    display:block;
}

.comment-user{
    font-size:18px;
    font-weight:bold;
    color:#333;
    margin-bottom:8px;
}

.comment-content{
    font-size:15px;
    line-height:1.9;
    color:#333;
    word-break:break-all;
}

.comment-footer{
    margin-top:10px;
    color:#888;
    font-size:13px;
}

.comment-footer a{
    color:#2d7ef7;
    text-decoration:none;
    margin-left:10px;
}

.reply-list{
    margin-top:12px;
    margin-left:34px;
    border-left:3px solid #e9eef8;
    padding-left:14px;
}

.reply-item{
    background:#f8f9fc;
    border:1px solid #edf0f5;
    border-radius:10px;
    padding:10px 12px;
    margin-bottom:10px;
}

.reply-user{
    font-size:15px;
    font-weight:bold;
    color:#333;
    margin-bottom:6px;
}

.reply-content{
    font-size:14px;
    line-height:1.8;
    color:#333;
    word-break:break-all;
}

.reply-prefix{
    color:#2d7ef7;
    font-weight:bold;
}

.reply-footer{
    margin-top:8px;
    color:#888;
    font-size:12px;
}

.reply-footer a{
    color:#2d7ef7;
    text-decoration:none;
    margin-left:10px;
}

.deadline-box{
    background:#fff4e5;
    color:#a15c00;
    border:1px solid #ffd699;
    border-radius:10px;
    padding:14px 16px;
    margin-bottom:20px;
    line-height:1.8;
}

.deadline-danger{
    background:#ffeaea;
    color:#c62828;
    border:1px solid #f5b5b5;
}

.task-badge{
    display:inline-block;
    padding:2px 8px;
    border-radius:20px;
    font-size:12px;
    color:#fff;
    margin-left:8px;
}

.badge-red{ background:#e74c3c; }
.badge-orange{ background:#f39c12; }
.badge-green{ background:#27ae60; }

.notice-mini{
    margin-top:8px;
    font-size:13px;
    color:#d35400;
}
/* =========================
   手机端专用优化（首页优先）
   不影响电脑端
========================= */
@media (max-width: 768px) {

    html, body {
        font-size: 18px;
    }

    body {
        background: #f4f7fb;
    }

    .container {
        width: auto;
        margin: 12px;
    }

    .topbar {
        padding: 12px;
        display: block;
        line-height: 1.8;
    }

    .topbar-title {
        font-size: 22px;
        margin-bottom: 6px;
    }

    .topbar > div:last-child {
        font-size: 16px;
        word-break: break-all;
    }

    .nav-links {
        margin: 12px 0 16px 0;
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

    .nav-links a,
    .nav-links .btn,
    .nav-links button {
        margin-right: 0 !important;
        font-size: 16px;
        padding: 10px 14px;
        line-height: 1.4;
        border-radius: 8px;
    }

    .btn {
        font-size: 16px;
        padding: 10px 14px;
        min-height: 42px;
        box-sizing: border-box;
    }

    .card {
        padding: 14px;
        margin-bottom: 14px;
        border-radius: 12px;
    }

    h1, h2 {
        font-size: 24px;
        line-height: 1.4;
    }

    .summary-box {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-bottom: 16px;
    }

    .summary-item {
        width: calc(50% - 6px);
        flex: none;
        padding: 16px 14px;
        box-sizing: border-box;
        min-height: 96px;
    }

    .summary-item .label {
        font-size: 14px;
        line-height: 1.5;
    }

    .summary-item .value {
        font-size: 20px;
        margin-top: 8px;
        line-height: 1.3;
    }

    .notice-mini {
        font-size: 12px;
        line-height: 1.5;
    }

    .deadline-box {
        padding: 14px;
        font-size: 16px;
        line-height: 1.8;
        border-radius: 10px;
    }

    .grid-2 {
        display: block;
    }

    .quadrant {
        width: 100% !important;
        min-height: auto;
        margin-bottom: 14px;
        border-radius: 14px;
    }

    .quadrant-header {
        padding: 12px 14px;
        font-size: 20px;
        line-height: 1.4;
    }

    .quadrant-body {
        padding: 12px;
    }

    .task-card {
        padding: 14px 12px;
        border-radius: 12px;
        margin-bottom: 12px;
    }

    .task-title {
        font-size: 20px;
        line-height: 1.5;
        margin-bottom: 10px;
        word-break: break-all;
    }

    .task-title a {
        word-break: break-all;
    }

    .task-meta {
        font-size: 16px;
        line-height: 1.9;
    }

    .task-badge {
        font-size: 12px;
        padding: 3px 8px;
        margin-left: 6px;
        vertical-align: middle;
    }

    .empty {
        font-size: 18px;
        padding: 36px 0;
    }

    .alert {
        font-size: 16px;
        line-height: 1.8;
        padding: 12px 14px;
        border-radius: 10px;
    }

    /* 表单类先一起优化，后面页面也能直接受益 */
    .form-row {
        margin-bottom: 16px;
    }

    .form-row label {
        display: block;
        width: auto;
        margin-bottom: 8px;
        font-size: 16px;
        line-height: 1.6;
    }

    .form-row input,
    .form-row select,
    .form-row textarea {
        width: 100%;
        font-size: 16px;
        padding: 10px 12px;
        box-sizing: border-box;
        border-radius: 8px;
    }

    .form-row textarea {
        min-height: 120px;
    }

    /* 表格页先保底能横向滚动 */
    .table {
        min-width: 720px;
    }

    .table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* 超小屏手机再加强一点 */
@media (max-width: 480px) {

    html, body {
        font-size: 17px;
    }

    .container {
        margin: 10px;
    }

    .topbar-title {
        font-size: 20px;
    }

    .summary-item {
        width: 100%;
    }

    .task-title {
        font-size: 18px;
    }

    .quadrant-header {
        font-size: 18px;
    }

    .btn {
        font-size: 15px;
        padding: 10px 12px;
    }
}
/* =========================
   task_detail.php 手机端优化
========================= */

/* 详情页信息块 */
.detail-grid {
    display: block;
}

.detail-item {
    margin-bottom: 14px;
}

.detail-label {
    font-weight: bold;
    color: #555;
    margin-bottom: 6px;
    font-size: 15px;
}

.detail-value {
    color: #222;
    line-height: 1.8;
    word-break: break-all;
}

/* 详情页顶部操作按钮 */
.page-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.page-actions .btn {
    margin-bottom: 8px;
}

/* 留言板增强 */
.comment-box-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 10px;
}

.comment-reply-tip {
    background: #fff3cd;
    color: #856404;
    padding: 10px 12px;
    border-radius: 8px;
    margin-bottom: 12px;
    line-height: 1.7;
}

.log-card {
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    padding: 12px;
    margin-bottom: 12px;
    background: #fafafa;
}

.log-title {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 8px;
}

.log-meta {
    font-size: 14px;
    color: #666;
    line-height: 1.8;
}

/* 手机端 detail 页面 */
@media (max-width: 768px) {

    .page-actions {
        display: block;
    }

    .page-actions .btn {
        display: block;
        width: 100%;
        text-align: center;
        margin-bottom: 10px;
    }

    .detail-label {
        font-size: 16px;
        margin-bottom: 4px;
    }

    .detail-value {
        font-size: 16px;
        line-height: 1.9;
    }

    .comment-box-title {
        font-size: 20px;
    }

    .comment-card {
        padding: 12px;
        border-radius: 10px;
    }

    .comment-user {
        font-size: 17px;
        line-height: 1.5;
    }

    .comment-content {
        font-size: 16px;
        line-height: 1.9;
    }

    .comment-footer {
        font-size: 13px;
        line-height: 1.8;
    }

    .reply-list {
        margin-left: 14px;
        padding-left: 10px;
    }

    .reply-item {
        padding: 10px;
        border-radius: 8px;
    }

    .reply-user {
        font-size: 15px;
    }

    .reply-content {
        font-size: 15px;
        line-height: 1.8;
    }

    .reply-footer {
        font-size: 12px;
        line-height: 1.8;
    }

    .log-card {
        padding: 12px;
    }

    .log-title {
        font-size: 16px;
        line-height: 1.6;
    }

    .log-meta {
        font-size: 15px;
        line-height: 1.9;
    }
}
/* =========================
   task_edit.php 手机端优化
========================= */

.edit-form-wrap {
    max-width: 760px;
}

@media (max-width: 768px) {

    .edit-form-wrap {
        max-width: 100%;
    }

    .edit-form-wrap .form-row {
        margin-bottom: 18px;
    }

    .edit-form-wrap .form-row label {
        display: block;
        width: auto;
        margin-bottom: 8px;
        font-size: 16px;
        line-height: 1.6;
    }

    .edit-form-wrap .form-row input,
    .edit-form-wrap .form-row select,
    .edit-form-wrap .form-row textarea {
        width: 100% !important;
        box-sizing: border-box;
        font-size: 16px;
        padding: 10px 12px;
        border-radius: 8px;
    }

    .edit-form-wrap .form-row textarea {
        min-height: 120px;
    }

    .edit-form-wrap .btn {
        display: block;
        width: 100%;
        text-align: center;
    }
}
/* =========================
   task_add.php / task_self_add.php 手机端优化
========================= */

.task-form-wrap {
    max-width: 860px;
}

@media (max-width: 768px) {

    .task-form-wrap {
        max-width: 100%;
    }

    .task-form-wrap .form-row {
        margin-bottom: 18px;
    }

    .task-form-wrap .form-row label {
        display: block;
        width: auto;
        margin-bottom: 8px;
        font-size: 16px;
        line-height: 1.6;
    }

    .task-form-wrap .form-row input,
    .task-form-wrap .form-row select,
    .task-form-wrap .form-row textarea {
        width: 100% !important;
        box-sizing: border-box;
        font-size: 16px;
        padding: 10px 12px;
        border-radius: 8px;
    }

    .task-form-wrap .form-row textarea {
        min-height: 120px;
    }

    .task-form-wrap .btn {
        display: block;
        width: 100%;
        text-align: center;
    }
}
/* =========================
   dashboard 手机端重构
========================= */

.dashboard-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.dashboard-section {
    margin-bottom: 18px;
}

/* 图表卡片 */
.chart-card {
    background: #fff;
    border-radius: 12px;
    padding: 14px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    margin-bottom: 16px;
}

/* 排行榜卡片 */
.rank-card {
    background: #fff;
    border-radius: 12px;
    padding: 12px;
    margin-bottom: 12px;
}

/* 手机端 */
@media (max-width: 768px) {

    /* 筛选区 */
    .dashboard-filter {
        display: block;
    }

    .dashboard-filter .form-row {
        margin-bottom: 12px;
    }

    .dashboard-filter select,
    .dashboard-filter input {
        width: 100%;
    }

    .dashboard-filter .btn {
        width: 100%;
    }

    /* 图表 → 单列 */
    .chart-grid {
        display: block !important;
    }

    .chart-card {
        width: 100%;
    }

    /* 排行榜 → 单列 */
    .rank-grid {
        display: block !important;
    }

    /* 表格 → 横向滚动 */
    .table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* 表格字体 */
    .table {
        min-width: 720px;
        font-size: 14px;
    }
}
/* =========================
   消息提醒中心升级（像微信通知）
========================= */

.notice-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:16px;
}

.notice-tabs{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.notice-tab{
    display:inline-block;
    padding:8px 14px;
    border-radius:20px;
    background:#f1f3f7;
    color:#333;
    text-decoration:none;
    font-size:14px;
}

.notice-tab.active{
    background:#2d7ef7;
    color:#fff;
}

.notice-summary{
    font-size:14px;
    color:#666;
}

.notice-list{
    display:block;
}

.notice-item{
    display:block;
    text-decoration:none;
    color:inherit;
    background:#fff;
    border:1px solid #e8e8e8;
    border-radius:14px;
    padding:14px 16px;
    margin-bottom:14px;
    box-shadow:0 2px 8px rgba(0,0,0,0.04);
    transition:all 0.2s ease;
}

.notice-item:hover{
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(0,0,0,0.06);
}

.notice-item.unread{
    border-left:5px solid #2d7ef7;
    background:#f8fbff;
}

.notice-item.urge{
    border-left-color:#e74c3c;
}

.notice-item.comment{
    border-left-color:#2d7ef7;
}

.notice-item.deadline{
    border-left-color:#f39c12;
}

.notice-item.overdue{
    border-left-color:#c0392b;
}

.notice-item.system{
    border-left-color:#7f8c8d;
}

.notice-item.progress{
    border-left-color:#27ae60;
}

.notice-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
    margin-bottom:8px;
}

.notice-type{
    display:inline-block;
    padding:3px 10px;
    border-radius:20px;
    font-size:12px;
    color:#fff;
    line-height:1.4;
}

.notice-type.urge{ background:#e74c3c; }
.notice-type.comment{ background:#2d7ef7; }
.notice-type.deadline{ background:#f39c12; }
.notice-type.overdue{ background:#c0392b; }
.notice-type.system{ background:#7f8c8d; }
.notice-type.progress{ background:#27ae60; }
.notice-type.score_audit{ background:#8e44ad; }

.notice-time{
    font-size:13px;
    color:#888;
    white-space:nowrap;
}

.notice-content{
    font-size:16px;
    color:#222;
    line-height:1.8;
    word-break:break-all;
}

.notice-status{
    margin-top:10px;
    font-size:13px;
    color:#666;
}

.notice-status .dot{
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:50%;
    margin-right:6px;
    vertical-align:middle;
}

.notice-status .unread-dot{
    background:#2d7ef7;
}

.notice-status .read-dot{
    background:#bbb;
}

.notice-actions{
    margin-top:10px;
}

.notice-empty{
    text-align:center;
    color:#999;
    padding:60px 0;
    font-size:20px;
}

@media (max-width: 768px) {
    .notice-toolbar{
        display:block;
    }

    .notice-tabs{
        margin-bottom:12px;
    }

    .notice-tab{
        font-size:15px;
        padding:8px 12px;
    }

    .notice-summary{
        font-size:15px;
        line-height:1.7;
    }

    .notice-item{
        padding:14px;
        border-radius:12px;
    }

    .notice-head{
        display:block;
    }

    .notice-type{
        margin-bottom:8px;
    }

    .notice-time{
        display:block;
        margin-top:4px;
        white-space:normal;
    }

    .notice-content{
        font-size:16px;
        line-height:1.9;
    }

    .notice-status{
        font-size:14px;
    }
}
/* =========================
   team_tasks.php 手机端优化
========================= */

.team-filter-wrap {
    max-width: 860px;
}

.team-task-list {
    margin-top: 10px;
}

.team-task-card {
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 14px;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}

.team-task-card .team-task-title {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.6;
    margin-bottom: 8px;
    word-break: break-all;
}

.team-task-card .team-task-title a {
    text-decoration: none;
}

.team-task-card .team-task-meta {
    font-size: 14px;
    color: #666;
    line-height: 1.9;
}

@media (max-width: 768px) {

    .team-filter-wrap .form-row {
        margin-bottom: 16px;
    }

    .team-filter-wrap .form-row label {
        display: block;
        width: auto;
        margin-bottom: 8px;
        font-size: 16px;
        line-height: 1.6;
    }

    .team-filter-wrap .form-row select,
    .team-filter-wrap .form-row input {
        width: 100% !important;
        box-sizing: border-box;
        font-size: 16px;
        padding: 10px 12px;
        border-radius: 8px;
    }

    .team-filter-wrap .btn {
        display: block;
        width: 100%;
        text-align: center;
    }

    .team-task-card {
        padding: 14px;
        border-radius: 12px;
    }

    .team-task-card .team-task-title {
        font-size: 18px;
        line-height: 1.7;
    }

    .team-task-card .team-task-meta {
        font-size: 15px;
        line-height: 1.9;
    }
}
/* =========================
   首页提醒入口 / 红点交互优化
========================= */

.notice-entry-btn{
    position: relative;
    display: inline-block;
}

.notice-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 6px;
    border-radius:20px;
    background:#e74c3c;
    color:#fff;
    font-size:12px;
    line-height:1;
    font-weight:bold;
    vertical-align:middle;
    margin-left:6px;
}

.notice-dot{
    display:inline-block;
    width:10px;
    height:10px;
    border-radius:50%;
    background:#e74c3c;
    vertical-align:middle;
    margin-left:6px;
}

.notice-preview-box{
    background:#fff;
    border-radius:12px;
    padding:16px;
    box-shadow:0 2px 8px rgba(0,0,0,0.05);
    margin-bottom:18px;
}

.notice-preview-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
    flex-wrap:wrap;
}

.notice-preview-title{
    font-size:20px;
    font-weight:bold;
    color:#1e3c72;
}

.notice-preview-list{
    display:block;
}

.notice-preview-item{
    display:block;
    text-decoration:none;
    color:inherit;
    border:1px solid #e8e8e8;
    border-radius:10px;
    padding:12px 14px;
    margin-bottom:10px;
    background:#fafafa;
}

.notice-preview-item.unread{
    border-left:4px solid #2d7ef7;
    background:#f8fbff;
}

.notice-preview-item .preview-type{
    display:inline-block;
    font-size:12px;
    color:#fff;
    padding:3px 8px;
    border-radius:20px;
    margin-bottom:6px;
}

.notice-preview-item .preview-type.urge{ background:#e74c3c; }
.notice-preview-item .preview-type.comment{ background:#2d7ef7; }
.notice-preview-item .preview-type.deadline{ background:#f39c12; }
.notice-preview-item .preview-type.overdue{ background:#c0392b; }
.notice-preview-item .preview-type.progress{ background:#27ae60; }
.notice-preview-item .preview-type.system{ background:#7f8c8d; }
.notice-preview-item .preview-type.score_audit{ background:#8e44ad; }

.notice-preview-item .preview-content{
    font-size:15px;
    line-height:1.8;
    color:#222;
    margin-bottom:6px;
    word-break:break-all;
}

.notice-preview-item .preview-time{
    font-size:13px;
    color:#888;
}

@media (max-width: 768px) {
    .notice-entry-btn{
        width:auto;
    }

    .notice-badge{
        min-width:22px;
        height:22px;
        font-size:12px;
    }

    .notice-preview-box{
        padding:14px;
        border-radius:12px;
    }

    .notice-preview-title{
        font-size:18px;
    }

    .notice-preview-item{
        padding:12px;
    }

    .notice-preview-item .preview-content{
        font-size:15px;
        line-height:1.9;
    }

    .notice-preview-item .preview-time{
        font-size:13px;
    }
}
/* =========================
   首页新消息弹出提示
========================= */

.notice-toast{
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    min-width: 260px;
    max-width: 360px;
    background: #1e3c72;
    color: #fff;
    padding: 14px 16px;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.18);
    opacity: 0;
    transform: translateY(-12px);
    pointer-events: none;
    transition: all 0.35s ease;
}

.notice-toast.show{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.notice-toast-title{
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 6px;
    line-height: 1.5;
}

.notice-toast-text{
    font-size: 14px;
    line-height: 1.8;
    color: rgba(255,255,255,0.92);
}

.notice-toast.urge{
    background: #c0392b;
}

.notice-toast.comment{
    background: #2d7ef7;
}

.notice-toast.deadline{
    background: #f39c12;
}

.notice-toast.overdue{
    background: #a93226;
}

.notice-toast.progress{
    background: #27ae60;
}

.notice-toast.system{
    background: #5d6d7e;
}
.notice-toast.score_audit{ background: #8e44ad; }

@media (max-width: 768px){
    .notice-toast{
        left: 12px;
        right: 12px;
        top: 12px;
        min-width: 0;
        max-width: none;
        padding: 12px 14px;
        border-radius: 12px;
    }

    .notice-toast-title{
        font-size: 15px;
    }

    .notice-toast-text{
        font-size: 14px;
        line-height: 1.8;
    }
}
/* =========================
   首页 summary 合并优化
========================= */

.summary-inline{
    font-size:18px;
    line-height:1.8;
    color:#333;
}

.summary-strong{
    font-size:20px;
    font-weight:bold;
    color:#1e3c72;
    margin-left:4px;
}

@media (max-width: 768px){
    .summary-inline{
        font-size:16px;
        line-height:1.9;
    }

    .summary-strong{
        font-size:18px;
    }
}
/* =========================
   登录页美化 + 手机适配
========================= */

.login-page{
    margin:0;
    min-height:100vh;
    background: linear-gradient(135deg, #1e3c72 0%, #2d7ef7 100%);
}

.login-wrapper{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    box-sizing:border-box;
}

.login-card{
    width:100%;
    max-width:460px;
    background:#fff;
    border-radius:20px;
    padding:28px 28px 24px 28px;
    box-shadow:0 16px 40px rgba(0,0,0,0.18);
    box-sizing:border-box;
}

.login-header{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:24px;
}

.login-logo{
    width:56px;
    height:56px;
    border-radius:16px;
    background:#1e3c72;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
    font-weight:bold;
    flex-shrink:0;
}

.login-title-box{
    flex:1;
}

.login-title{
    font-size:24px;
    font-weight:bold;
    color:#1e3c72;
    line-height:1.4;
    margin-bottom:4px;
}

.login-subtitle{
    font-size:14px;
    color:#666;
    line-height:1.6;
}

.login-alert{
    background:#fff3cd;
    color:#856404;
    border-radius:10px;
    padding:12px 14px;
    margin-bottom:18px;
    line-height:1.7;
    font-size:14px;
}

.login-form{
    display:block;
}

.login-form-row{
    margin-bottom:16px;
}

.login-form-row label{
    display:block;
    margin-bottom:8px;
    font-size:15px;
    font-weight:bold;
    color:#333;
}

.login-form-row input{
    width:100%;
    box-sizing:border-box;
    border:1px solid #d9dfeb;
    border-radius:12px;
    padding:12px 14px;
    font-size:16px;
    background:#f9fbff;
    transition:all 0.2s ease;
}

.login-form-row input:focus{
    outline:none;
    border-color:#2d7ef7;
    background:#fff;
    box-shadow:0 0 0 3px rgba(45,126,247,0.12);
}

.login-btn{
    width:100%;
    font-size:17px;
    padding:13px 16px;
    border-radius:12px;
}

.login-footer{
    margin-top:18px;
    font-size:13px;
    line-height:1.8;
    color:#888;
    text-align:center;
}

@media (max-width: 768px){
    .login-wrapper{
        padding:16px;
        align-items:flex-start;
        padding-top:42px;
    }

    .login-card{
        max-width:none;
        border-radius:18px;
        padding:22px 18px 20px 18px;
    }

    .login-header{
        gap:12px;
        margin-bottom:20px;
    }

    .login-logo{
        width:48px;
        height:48px;
        border-radius:14px;
        font-size:24px;
    }

    .login-title{
        font-size:20px;
        line-height:1.5;
    }

    .login-subtitle{
        font-size:13px;
        line-height:1.6;
    }

    .login-form-row label{
        font-size:15px;
    }

    .login-form-row input{
        font-size:16px;
        padding:12px 12px;
        border-radius:10px;
    }

    .login-btn{
        font-size:16px;
        padding:12px 14px;
    }

    .login-footer{
        font-size:12px;
        line-height:1.8;
    }
}
/* =========================
   task_detail.php 紧凑美化版
========================= */

.detail-hero{
    background:#fff;
    border-radius:16px;
    padding:18px 18px 14px 18px;
    box-shadow:0 2px 10px rgba(0,0,0,0.05);
    margin-bottom:18px;
}

.detail-title-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:12px;
}

.detail-main-title{
    font-size:30px;
    font-weight:800;
    line-height:1.4;
    color:#222;
    margin:0;
    word-break:break-all;
}

.detail-badge-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:4px;
}

.detail-chip{
    display:inline-flex;
    align-items:center;
    padding:5px 12px;
    border-radius:999px;
    font-size:13px;
    line-height:1.4;
    background:#eef3ff;
    color:#1e3c72;
}

.detail-chip.green{ background:#eaf8ef; color:#1f8b4c; }
.detail-chip.orange{ background:#fff4e8; color:#d97a00; }
.detail-chip.red{ background:#fdecec; color:#d83434; }
.detail-chip.gray{ background:#f2f3f5; color:#666; }
.detail-chip.blue{ background:#eef3ff; color:#2d7ef7; }

.detail-summary{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:12px;
    margin:14px 0 10px 0;
}

.detail-summary-item{
    background:#f7f9fc;
    border-radius:12px;
    padding:12px 14px;
}

.detail-summary-label{
    font-size:13px;
    color:#666;
    line-height:1.5;
    margin-bottom:4px;
}

.detail-summary-value{
    font-size:24px;
    font-weight:700;
    color:#1e3c72;
    line-height:1.3;
    word-break:break-all;
}

.detail-compact-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:12px;
    margin-top:14px;
}

.detail-compact-item{
    background:#fafbfe;
    border:1px solid #edf0f5;
    border-radius:12px;
    padding:12px 14px;
}

.detail-compact-label{
    font-size:13px;
    color:#666;
    margin-bottom:6px;
    line-height:1.5;
}

.detail-compact-value{
    font-size:16px;
    color:#222;
    line-height:1.8;
    word-break:break-all;
}

.detail-full-item{
    grid-column:1 / -1;
}

.detail-member-list{
    line-height:1.9;
    font-size:15px;
}

.detail-section-title{
    font-size:22px;
    font-weight:800;
    color:#222;
    margin:0 0 14px 0;
}

.detail-mini-note{
    color:#888;
    font-size:13px;
    line-height:1.7;
}

@media (max-width: 768px){
    .detail-hero{
        padding:16px 14px 12px 14px;
        border-radius:14px;
        margin-bottom:14px;
    }

    .detail-main-title{
        font-size:24px;
        line-height:1.45;
    }

    .detail-summary{
        grid-template-columns:repeat(2, minmax(0,1fr));
        gap:10px;
        margin:12px 0 8px 0;
    }

    .detail-summary-item{
        padding:10px 12px;
        border-radius:10px;
    }

    .detail-summary-label{
        font-size:12px;
    }

    .detail-summary-value{
        font-size:22px;
    }

    .detail-compact-grid{
        grid-template-columns:1fr;
        gap:10px;
        margin-top:12px;
    }

    .detail-compact-item{
        padding:11px 12px;
        border-radius:10px;
    }

    .detail-compact-label{
        font-size:13px;
    }

    .detail-compact-value{
        font-size:16px;
        line-height:1.85;
    }

    .detail-member-list{
        font-size:15px;
        line-height:1.9;
    }

    .detail-section-title{
        font-size:20px;
        margin-bottom:12px;
    }
}
/* =========================
   task_detail.php 留言流 / 日志流 / 进度滑条优化
========================= */

.progress-slider-wrap{
    margin-top:8px;
}

.progress-slider-value{
    display:inline-block;
    min-width:64px;
    padding:6px 12px;
    border-radius:999px;
    background:#eef3ff;
    color:#1e3c72;
    font-weight:700;
    font-size:14px;
    margin-bottom:10px;
}

.progress-slider{
    width:100%;
    -webkit-appearance:none;
    appearance:none;
    height:8px;
    border-radius:999px;
    background:#dfe7f7;
    outline:none;
}

.progress-slider::-webkit-slider-thumb{
    -webkit-appearance:none;
    appearance:none;
    width:24px;
    height:24px;
    border-radius:50%;
    background:#2d7ef7;
    border:3px solid #fff;
    box-shadow:0 2px 8px rgba(0,0,0,0.18);
    cursor:pointer;
}

.progress-slider::-moz-range-thumb{
    width:24px;
    height:24px;
    border-radius:50%;
    background:#2d7ef7;
    border:3px solid #fff;
    box-shadow:0 2px 8px rgba(0,0,0,0.18);
    cursor:pointer;
}

.complete-btn{
    background:#16a34a !important;
    border-color:#16a34a !important;
    color:#fff !important;
}

.complete-btn:hover{
    background:#15803d !important;
    border-color:#15803d !important;
}

.comment-flow{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.comment-bubble{
    background:#fff;
    border:1px solid #edf0f5;
    border-radius:14px;
    padding:14px 14px 12px 14px;
}

.comment-bubble-main{
    background:#f8fbff;
    border-radius:12px;
    padding:12px;
}

.comment-user-line{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:8px;
}

.comment-user-name{
    font-size:15px;
    font-weight:700;
    color:#222;
}

.comment-user-role{
    display:inline-block;
    font-size:12px;
    line-height:1.4;
    padding:3px 8px;
    border-radius:999px;
    background:#eef3ff;
    color:#2d7ef7;
}

.comment-text{
    font-size:15px;
    color:#333;
    line-height:1.9;
    word-break:break-word;
}

.comment-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
    margin-top:10px;
}

.comment-time{
    font-size:12px;
    color:#999;
}

.comment-reply-link{
    font-size:13px;
    color:#2d7ef7;
    text-decoration:none;
    font-weight:600;
}

.reply-thread{
    margin-top:10px;
    margin-left:14px;
    padding-left:12px;
    border-left:3px solid #e8eef9;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.reply-bubble{
    background:#fafbfd;
    border:1px solid #eef1f6;
    border-radius:12px;
    padding:10px 12px;
}

.reply-user-line{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:6px;
}

.reply-user-name{
    font-size:14px;
    font-weight:700;
    color:#222;
}

.reply-user-role{
    display:inline-block;
    font-size:11px;
    line-height:1.4;
    padding:2px 7px;
    border-radius:999px;
    background:#f1f5ff;
    color:#4f74d9;
}

.reply-text{
    font-size:14px;
    color:#444;
    line-height:1.85;
    word-break:break-word;
}

.reply-prefix{
    color:#2d7ef7;
    font-weight:600;
}

.reply-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
    margin-top:8px;
}

.log-flow{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.log-bubble{
    background:#fff;
    border:1px solid #edf0f5;
    border-radius:14px;
    padding:12px 14px;
}

.log-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:8px;
}

.log-progress-badge{
    display:inline-block;
    padding:5px 10px;
    border-radius:999px;
    background:#eef3ff;
    color:#1e3c72;
    font-size:13px;
    font-weight:700;
}

.log-user{
    font-size:14px;
    color:#333;
    font-weight:600;
}

.log-text{
    font-size:15px;
    color:#333;
    line-height:1.85;
    word-break:break-word;
    margin-bottom:8px;
}

.log-time{
    font-size:12px;
    color:#999;
}

@media (max-width: 768px){
    .progress-slider-value{
        font-size:13px;
        min-width:60px;
        padding:6px 10px;
    }

    .comment-bubble{
        padding:12px 12px 10px 12px;
        border-radius:12px;
    }

    .comment-bubble-main{
        padding:10px;
        border-radius:10px;
    }

    .comment-user-name{
        font-size:15px;
    }

    .comment-text{
        font-size:15px;
        line-height:1.95;
    }

    .reply-thread{
        margin-left:8px;
        padding-left:10px;
        gap:8px;
    }

    .reply-bubble{
        padding:10px;
        border-radius:10px;
    }

    .reply-text{
        font-size:14px;
        line-height:1.9;
    }

    .log-bubble{
        padding:11px 12px;
        border-radius:12px;
    }

    .log-text{
        font-size:15px;
        line-height:1.9;
    }
}