/* --- 神易数 · 新禅意墨色留白主题 --- */

:root {
    --bg-canvas: #fdfcf8;      /* 极简米白（宣纸本色） */
    --card-bg: #ffffff;        /* 纯白卡片 */
    --ink-main: #1f1f1f;       /* 焦墨（主文字） */
    --ink-light: #757575;      /* 淡墨（辅助文字） */
    --cinnabar: #cf3838;       /* 故宫红（点缀/神煞） */
    --line-faint: #f0f0f0;     /* 极淡灰线 */
    --line-border: #e5e5e5;    /* 结构线 */
    --shadow-float: 0 8px 24px rgba(0,0,0,0.04); /* 悬浮阴影 */
}

/* 1. Body 背景与字体 */
body { 
    font-family: "Songti SC", "Noto Serif SC", "SimSun", "STSong", serif; 
    background-color: var(--bg-canvas); 
    margin: 0; 
    padding: 0; 
    color: var(--ink-main); 
    -webkit-tap-highlight-color: transparent; 
}

/* 2. 页面容器 */
.shenyishu-container { 
    max-width: 640px; 
    margin: 0 auto; 
    background: var(--bg-canvas); 
    min-height: 100vh; 
    display: flex; 
    flex-direction: column;
}

@media (min-width: 641px) {
    .shenyishu-container { 
        margin: 40px auto; 
        background: var(--card-bg);
        box-shadow: var(--shadow-float); 
        min-height: auto; 
        padding-bottom: 20px;
    }
}

/* 3. 标题样式 */
.header { 
    background: transparent; 
    color: var(--ink-main); 
    padding: 30px 20px 10px 20px; 
    text-align: center; 
    font-size: 22px; 
    font-weight: bold; 
    letter-spacing: 6px;
    position: relative;
}

.header::after {
    content: "";
    display: block;
    width: 30px; 
    height: 4px;
    background: var(--cinnabar);
    margin: 15px auto 0 auto;
    border-radius: 1px;
}

/* 4. 表单容器与间距 */
.input-section { 
    padding: 20px 25px; 
    background: transparent; 
    border-bottom: 1px solid var(--line-faint); 
}

.input-row { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 15px; 
    margin-bottom: 20px; 
}

.input-group { 
    flex: 1; 
    min-width: calc(48% - 8px); 
}

.input-group label { 
    display: block; 
    font-size: 12px; 
    color: var(--ink-light); 
    margin-bottom: 8px; 
    letter-spacing: 1px; 
}

/* 5. 输入框与下拉框样式 */
.sys-input,
.sys-select,
.sys-textarea,
.input-group input, 
.input-group select { 
    width: 100%; 
    padding: 8px 0; 
    border: none; 
    border-bottom: 1px solid #ccc; 
    border-radius: 0; 
    font-size: 15px; 
    background: transparent;
    color: var(--ink-main);
    font-family: inherit;
    transition: border-color 0.3s;
    box-sizing: border-box;
}

.sys-input:focus,
.sys-select:focus,
.sys-textarea:focus,
.input-group input:focus, 
.input-group select:focus {
    outline: none;
    border-bottom: 1px solid var(--cinnabar);
}

/* 6. 按钮样式 */
.button-row { 
    display: flex; 
    gap: 15px; 
    margin-top: 25px; 
}

.btn-primary,
.btn-auto,
button { 
    padding: 12px; 
    border-radius: 2px; 
    font-size: 14px; 
    font-weight: normal; 
    letter-spacing: 2px;
    cursor: pointer; 
    transition: all 0.3s; 
    font-family: inherit;
}

button {
    flex: initial;
}

.button-row > button {
    flex: 1;
}

.btn-primary { 
    background: var(--ink-main) !important; 
    color: #fff !important; 
    border: 1px solid var(--ink-main) !important; 
}

.btn-auto { 
    background: transparent !important; 
    color: var(--ink-main) !important; 
    border: 1px solid var(--ink-main) !important; 
}

button:active { 
    transform: scale(0.98); 
    opacity: 0.8; 
}

/* 7. 结果区域与表格 */
.result-section { 
    padding: 20px; 
    flex: 1; 
}

.info-table { 
    width: 100%; 
    border-collapse: collapse; 
    margin-bottom: 30px; 
}

.info-table th, 
.info-table td { 
    padding: 12px 5px; 
    border: none; 
    border-bottom: 1px solid var(--line-faint); 
    text-align: left; 
    font-size: 13px; 
}

.info-table th { 
    color: var(--ink-light); 
    font-weight: normal; 
    width: 60px; 
}

.info-table td { 
    color: var(--ink-main); 
}

/* 8. 卡片样式 (Gua Cell) */
.gua-grid { 
    display: grid; 
    grid-template-columns: 1fr 1fr 1fr; 
    gap: 12px; 
    background: transparent; 
    margin: 10px 0; 
    align-items: stretch;
}

.gua-cell { 
    background: var(--card-bg); 
    padding: 15px 0 0 0; 
    text-align: center; 
    display: flex; 
    flex-direction: column;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03); 
    border-radius: 4px;
    overflow: hidden; 
    height: 100%;
    min-height: 600px; 
}

.gua-header { 
    font-size: 20px; 
    font-weight: bold; 
    color: var(--ink-main); 
    margin-bottom: 5px; 
    letter-spacing: 1px;
}

.gua-name {
    color: var(--cinnabar);
    font-size: 28px;
    font-weight: bold;
}

.gua-name.wx-mu { color: #16a34a; }
.gua-name.wx-huo { color: #dc2626; }
.gua-name.wx-tu { color: #a16207; }
.gua-name.wx-jin { color: #ffd700; }
.gua-name.wx-shui { color: #2563eb; }

.gua-wuxing, 
.gua-num {
    color: var(--ink-main);
    font-size: 14px;
    font-weight: normal;
}

.gua-sub { 
    font-size: 15px; 
    color: var(--ink-main); 
    margin-top: 3px; 
    line-height: 1.4; 
    padding: 0 4px; 
}

.san-he { 
    color: var(--ink-main); 
    font-weight: normal; 
    margin-top: 10px; 
    border-top: 1px dotted var(--line-border); 
    padding-top: 6px; 
    font-size: 15px; 
}

.gua-pos { 
    color: var(--ink-main); 
    font-size: 15px; 
    margin-top: 2px; 
    margin-bottom: 12px; 
}

/* 神煞容器 */
.ss-container { 
    margin-top: auto; 
    border-top: 1px solid var(--line-faint); 
    background: #fafafa; 
    display: flex;
    flex-direction: column;
    flex: 1;
}

.ss-row { 
    border-bottom: 1px solid var(--line-faint); 
    padding: 6px 2px; 
    min-height: 44px; 
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
    font-size: 15px; 
    flex: 1;
}

.ss-row:last-child { 
    border-bottom: none; 
}

.ss-gan { 
    color: var(--ink-main); 
    font-weight: normal; 
    min-height: 14px; 
    margin-bottom: 3px; 
}

.ss-zhi { 
    color: var(--ink-main); 
    opacity: 0.8;
    min-height: 14px; 
}
