/* OpenNAMS 前端报修入口（[opennams] 短代码）样式 */
.opennams-front {
    max-width: 640px;
    margin: 1.5rem 0;
}

.opennams-front h2 {
    font-size: 1.4rem;
    margin: 0 0 .5rem;
    color: #0f172a;
}

.opennams-front h3 {
    font-size: 1.1rem;
    margin: 1.25rem 0 .75rem;
    color: #1e293b;
}

.opennams-stats {
    display: flex;
    gap: 1.5rem;
    color: #475569;
    margin-bottom: 1rem;
}

.opennams-stats span {
    font-size: .95rem;
}

.opennams-front form p {
    margin: .5rem 0;
}

.opennams-front input[type="text"],
.opennams-front input[name="title"],
.opennams-front input[name="requester"],
.opennams-front input[name="location"],
.opennams-front textarea,
.opennams-front select {
    width: 100%;
    padding: .55rem .7rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: .95rem;
    box-sizing: border-box;
    background: #fff;
    color: #0f172a;
}

.opennams-front textarea {
    resize: vertical;
}

.opennams-front button[type="submit"] {
    background: #2f6df6;
    color: #fff;
    border: 0;
    padding: .6rem 1.2rem;
    border-radius: 8px;
    font-size: .95rem;
    cursor: pointer;
}

.opennams-front button[type="submit"]:hover {
    background: #2559d6;
}

/* 提交结果反馈条 */
.opennams-notice {
    padding: .75rem 1rem;
    border-radius: 8px;
    margin-bottom: 1rem;
    font-size: .95rem;
    line-height: 1.5;
}

.opennams-notice-success {
    background: #ecfdf5;
    border: 1px solid #6ee7b7;
    color: #065f46;
}

.opennams-notice-error {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    color: #991b1b;
}

/* 未登录引导卡片 */
.opennams-login-gate {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1.5rem 1.75rem;
    background: #f8fafc;
}

.opennams-login-gate p {
    color: #475569;
    margin: .5rem 0;
}

.opennams-btn {
    display: inline-block;
    padding: .6rem 1.2rem;
    border-radius: 8px;
    font-size: .95rem;
    text-decoration: none;
    cursor: pointer;
}

.opennams-btn-primary {
    background: #2f6df6;
    color: #fff;
}
.opennams-btn-primary:hover {
    background: #2559d6;
    color: #fff;
}

.opennams-login-hint {
    font-size: .85rem;
    color: #94a3b8;
}

/* 我的工单列表 */
.opennams-empty {
    color: #94a3b8;
    font-size: .95rem;
}

.opennams-mytickets {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
}

.opennams-myticket {
    display: grid;
    grid-template-columns: 110px 1fr auto auto auto;
    gap: .75rem;
    align-items: center;
    padding: .65rem .9rem;
    border-bottom: 1px solid #eef2f7;
    font-size: .9rem;
}
.opennams-myticket:last-child {
    border-bottom: 0;
}

.oc-mt-no {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    color: #475569;
    font-weight: 600;
}
.oc-mt-title {
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.oc-mt-cat,
.oc-mt-status {
    font-size: .8rem;
    padding: .15rem .55rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    white-space: nowrap;
}
.oc-mt-status {
    background: #ecfeff;
    color: #0e7490;
}
.oc-mt-date {
    color: #94a3b8;
    font-size: .82rem;
    white-space: nowrap;
}

@media (max-width: 520px) {
    .opennams-myticket {
        grid-template-columns: 1fr auto;
        grid-auto-rows: auto;
    }
    .oc-mt-no { grid-column: 1 / -1; }
    .oc-mt-title { grid-column: 1 / -1; }
}

/* 我的工单 → 详情页链接 */
.opennams-myticket .oc-mt-link {
    display: grid;
    grid-template-columns: 110px 1fr auto auto auto;
    gap: .75rem;
    align-items: center;
    width: 100%;
    text-decoration: none;
    color: inherit;
}
.opennams-myticket .oc-mt-link:hover {
    background: #f1f5f9;
}
@media (max-width: 520px) {
    .opennams-myticket .oc-mt-link {
        grid-template-columns: 1fr auto;
    }
    .opennams-myticket .oc-mt-no,
    .opennams-myticket .oc-mt-title { grid-column: 1 / -1; }
}

.opennams-file-row label {
    display: block;
    font-size: .85rem;
    color: #64748b;
    margin-bottom: .25rem;
}
.opennams-front input[type="file"] {
    width: 100%;
    padding: .45rem .6rem;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    background: #fff;
    font-size: .9rem;
}

/* 工单详情页 */
.opennams-detail { max-width: 760px; }
.opennams-back { margin: 0 0 .5rem; }
.opennams-back a { color: #2f6df6; text-decoration: none; }
.opennams-detail-head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: .25rem 0 .25rem;
}
.opennams-detail-head h2 {
    margin: 0;
    font-size: 1.3rem;
}
.opennams-badge {
    flex: 0 0 auto;
    font-size: .8rem;
    padding: .2rem .7rem;
    border-radius: 999px;
    background: #ecfeff;
    color: #0e7490;
    border: 1px solid #a5f3fc;
}
.opennams-detail-no {
    color: #64748b;
    font-size: .9rem;
    margin: 0 0 1rem;
}
.opennams-detail h3 {
    font-size: 1.05rem;
    margin: 1.5rem 0 .75rem;
    color: #1e293b;
    border-top: 1px solid #eef2f7;
    padding-top: 1rem;
}

/* 复用 AppDetailProvider::ticket_kv 的 KV 表 */
.oc-detail-kv {
    width: 100%;
    border-collapse: collapse;
    font-size: .92rem;
}
.oc-detail-kv th,
.oc-detail-kv td {
    text-align: left;
    padding: .5rem .7rem;
    border-bottom: 1px solid #eef2f7;
    vertical-align: top;
}
.oc-detail-kv th {
    width: 110px;
    color: #64748b;
    font-weight: 600;
}
.oc-detail-kv td { color: #0f172a; }

/* 附件 */
.opennams-attachments {
    list-style: none;
    margin: 0;
    padding: 0;
}
.opennams-att {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem 0;
    border-bottom: 1px solid #eef2f7;
}
.opennams-att img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
}
.opennams-att-link { color: #2f6df6; text-decoration: none; word-break: break-all; }
.opennams-att-meta { color: #94a3b8; font-size: .8rem; margin-left: auto; white-space: nowrap; }

/* 处理留言 */
.opennams-comments {
    list-style: none;
    margin: 0;
    padding: 0;
}
.opennams-comment {
    padding: .75rem 0;
    border-bottom: 1px solid #eef2f7;
}
.oc-cm-meta {
    display: flex;
    justify-content: space-between;
    font-size: .8rem;
    color: #94a3b8;
    margin-bottom: .25rem;
}
.oc-cm-author { color: #475569; font-weight: 600; }
.oc-cm-body { color: #0f172a; font-size: .92rem; white-space: pre-wrap; line-height: 1.55; }

.opennams-comment-form textarea {
    width: 100%;
    padding: .55rem .7rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: .92rem;
    box-sizing: border-box;
    resize: vertical;
}
.opennams-comment-form button[type="submit"] {
    background: #2f6df6;
    color: #fff;
    border: 0;
    padding: .55rem 1.1rem;
    border-radius: 8px;
    font-size: .92rem;
    cursor: pointer;
}
.opennams-comment-form button[type="submit"]:hover { background: #2559d6; }
