
        :root { color-scheme: light only; }
        @font-face {
            font-family: "QimenKaiti";
            src:
                local("Kaiti SC"),
                local("Kaiti TC"),
                local("STKaiti"),
                local("KaiTi"),
                local("BiauKai"),
                local("DFKai-SB");
            font-style: normal;
            font-weight: 400;
            font-display: swap;
        }

        :root {
            --filter-ink: #2f3a35;
            --filter-muted: #82776b;
            --filter-border: #e4d8c8;
            --filter-border-strong: #d4c1aa;
            --filter-surface: #fffdfa;
            --filter-surface-soft: #f8f2e9;
            --filter-accent: #2f8a67;
            --filter-accent-strong: #24674d;
            --filter-accent-soft: #edf5f0;
            --filter-warm: #a8763d;
            --filter-warm-soft: #f6eee3;
            --nav-clearance-desktop: 132px;
            --nav-clearance-mobile: 140px;
            --font-kai: "QimenKaiti", "Kaiti SC", "Kaiti TC", "STKaiti", "KaiTi", "BiauKai", "DFKai-SB", serif;
        }
        body { background:#F5F0E6; font-family:"Microsoft YaHei",sans-serif; display:flex; flex-direction:column; align-items:center; padding:15px; padding-bottom: calc(var(--nav-clearance-desktop) + env(safe-area-inset-bottom, 0px)); margin:0; color:#2C3E50; }
        .header { text-align:center; margin-bottom:10px; color:#333; position:relative; }
        .header.header-bar {
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            align-items: center;
            gap: 6px;
            max-width: 520px;
            width: calc(100% - 24px);
            margin-left: auto;
            margin-right: auto;
            box-sizing: border-box;
        }
        .header-bar .header-side-spacer { grid-column: 1; }
        .header-bar .page-main-title {
            grid-column: 2;
            text-align: center;
        }
        .header-bar .header-pwa-hint {
            grid-column: 3;
            justify-self: end;
            text-align: right;
            line-height: 1.2;
        }
        .header .page-main-title {
            margin:0; font-size:1.34rem; font-weight:600; letter-spacing:0.16em; color:#1a3a52; line-height:1.22;
            font-family:"Songti SC","STSong","STKaiti","Kaiti","KaiTi","SimSun",serif;
            -webkit-font-smoothing:antialiased;
        }
        .header-pwa-hint {
            font-size: 0.68rem;
            font-weight: 500;
            letter-spacing: 0.02em;
        }
        .header-pwa-hint-btn {
            color: #6b8fa3;
            text-decoration: none;
            border: none;
            border-bottom: 1px solid rgba(107, 143, 163, 0.38);
            white-space: nowrap;
            background: transparent;
            padding: 0;
            font: inherit;
            cursor: pointer;
            -webkit-tap-highlight-color: transparent;
        }
        .header-pwa-hint-btn:active { opacity: 0.82; }
        @media (max-width: 360px) {
            .header-pwa-hint { font-size: 0.62rem; }
        }
        .header-message-link { position:absolute; right:0; top:50%; transform:translateY(-50%); width:38px; height:38px; border:none; border-radius:12px; background:transparent; color:#1a3a52; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.18s ease; }
        .header-message-link:active { background:rgba(44,62,80,0.12); transform:translateY(-50%) scale(0.94); }
        .header-message-icon { font-size:1.16rem; line-height:1; }
        .header-message-dot { position:absolute; top:7px; right:7px; width:8px; height:8px; border-radius:50%; background:#c86262; box-shadow:0 0 0 2px #F5F0E6; }
        .header-message-dot.hidden { display:none; }
            .main-info { background:#fff; border:1px solid #dcd3d1; padding:16px 18px; max-width:600px; width:calc(100% - 24px); margin-bottom:4px; box-sizing:border-box; border-radius:12px; box-shadow:0 2px 8px rgba(0,0,0,0.04); }
        .info-r { display:flex; justify-content:space-between; margin-bottom:5px; border-bottom:1px solid #f9f6f2; padding-bottom:4px; font-size:0.92rem; align-items:center; line-height:1.45; }
        .info-r:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
        .lbl { color:#777; width:46px; flex-shrink:0; display:inline-block; margin-left:30px; } .val { color:#333; flex:1; min-width:0; text-align:left; }
        .val-muted { color:#666; }
        .info-pair { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); column-gap:20px; width:100%; }
        .info-cell { display:flex; align-items:center; min-width:0; }
        
        .bazi-grid { display:grid; grid-template-columns:repeat(4, 1fr); text-align:center; margin-top:8px; }
        .bazi-col { display:flex; flex-direction:column; align-items:center; padding:8px 4px 10px; border-right:1px solid #f0e8db; }
        .bazi-col:last-child { border-right:none; }
        .bazi-label { font-size:0.76rem; color:#8B7355; letter-spacing:1px; margin-bottom:4px; font-weight:500; }
        .bazi-gan, .bazi-zhi { font-size:1.4rem; font-weight:700; color:#333; font-family:var(--font-kai); font-synthesis:weight; line-height:1.3; }
        
            .grid-card { background:#fff; border:1px solid #dcd3d1; border-radius:12px; padding:16px 18px; box-shadow:0 2px 8px rgba(0,0,0,0.04); max-width:600px; width:calc(100% - 24px); box-sizing:border-box; }
        .grid {
            position: relative;
            display: grid; grid-template-columns: repeat(3, 1fr);
            background: #B8962E; gap: 1.5px;
            border: 2.5px solid #B8962E;
            max-width: 520px; width: 100%;
            margin: 15px auto;
            box-sizing: border-box;
        }
        .palace-wrapper { position: relative; background: #fff; aspect-ratio: 1; }
        .palace { height:100%; padding: 8px 8px 8px 18px; display: flex; flex-direction: column; box-sizing: border-box; cursor:pointer; }
        .p5 { background: #fff; justify-content: center; align-items: center; border:1px solid #eee; cursor:default; }
        
        /* 马星在九宫格四角 - 根据马星位置动态显示 */
        .grid .ma-corner {
            position: absolute;
            font-size: 1.1rem;
            color: #00bfa5;
            z-index: 100;
        }
        .grid .ma-corner-top-left {
            top: -20px;
            left: -20px;
        }
        .grid .ma-corner-top-center {
            top: -20px;
            left: 50%;
            transform: translateX(-50%);
        }
        .grid .ma-corner-top-right {
            top: -20px;
            right: -20px;
            transform: scaleX(-1);
        }
        .grid .ma-corner-left-center {
            top: 50%;
            left: -20px;
            transform: translateY(-50%) rotate(-90deg);
        }
        .grid .ma-corner-right-center {
            top: 50%;
            right: -20px;
            transform: translateY(-50%) scaleX(-1) rotate(-90deg);
        }
        .grid .ma-corner-bottom-left {
            bottom: -20px;
            left: -20px;
        }
        .grid .ma-corner-bottom-center {
            bottom: -20px;
            left: 50%;
            transform: translateX(-50%);
        }
        .grid .ma-corner-bottom-right {
            bottom: -20px;
            right: -20px;
            transform: scaleX(-1);
        }

        /* Modal */
        .modal { display: none; position: fixed; z-index: 2000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.5); }
        #najiModal { transition: opacity 0.25s ease; opacity: 0; }
        #najiModal.naji-show { opacity: 1; }
        #najiModal .naji-modal-content { transition: transform 0.25s ease; transform: translateY(20px); }
        #najiModal.naji-show .naji-modal-content { transform: translateY(0); }
        .modal-content { 
            background-color: #fefefe; margin: 10% auto; padding: 0; 
            border: none; width: 500px; border-radius: 16px; 
            box-shadow: 0 8px 30px rgba(0,0,0,0.12); 
            max-height: 85vh; overflow: hidden; display: flex; flex-direction: column;
            position: relative;
        }
        #saveModal .modal-content { width: 90%; max-width: 420px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); position:absolute; left:50%; top:8vh; transform:translateX(-50%); margin:0; }
        #saveModal .save-mini-btn { display:none; border:1px solid #e8d5b0; background:#faf5ed; color:#b8905b; border-radius:999px; width:30px; height:30px; cursor:pointer; font-weight:700; }
        #saveModalContent.note-dragging { transition: none !important; }
        #saveModal .snap-guide {
            position: fixed;
            z-index: 10020;
            pointer-events: none;
            opacity: 0;
            transition: opacity 0.12s ease;
            background: rgba(184, 144, 91, 0.55);
            border-radius: 999px;
        }
        #saveModal .snap-guide.show { opacity: 1; }
        #saveModal .snap-guide.edge-left,
        #saveModal .snap-guide.edge-right {
            top: 20vh;
            bottom: 14vh;
            width: 3px;
        }
        #saveModal .snap-guide.edge-left { left: 4px; }
        #saveModal .snap-guide.edge-right { right: 4px; }
        #saveModal .snap-guide.edge-top,
        #saveModal .snap-guide.edge-bottom {
            left: 8vw;
            right: 8vw;
            height: 3px;
        }
        #saveModal .snap-guide.edge-top { top: 6px; }
        #saveModal .snap-guide.edge-bottom { bottom: 6px; }
        .dock-handle {
            position: fixed;
            z-index: 10025;
            display: none;
            align-items: center;
            justify-content: center;
            border: 1px solid rgba(200, 170, 130, 0.75);
            background: rgba(255, 250, 242, 0.96);
            color: #a47f4f;
            box-shadow: 0 4px 14px rgba(80, 60, 30, 0.15);
            border-radius: 10px 0 0 10px;
            font-size: 0.72rem;
            pointer-events: auto;
            writing-mode: vertical-rl;
            letter-spacing: 0.15em;
            padding: 10px 5px;
            right: 0;
            top: 160px;
            touch-action: manipulation;
            -webkit-tap-highlight-color: transparent;
            cursor: pointer;
        }
        .dock-handle.show { display: inline-flex; }
        /* 案例全屏层打开时：盘面便签条不出现（编辑案例时从记录内打开） */
        body.list-modal-open .dock-handle { display: none !important; visibility: hidden !important; pointer-events: none !important; }
        /* 便签面板打开时始终隐藏右侧吸附条，避免与滑入动画重叠（含从案例「编辑」进入） */
        body.save-modal-open #saveModalDockHandle {
            display: none !important;
            visibility: hidden !important;
            pointer-events: none !important;
        }

        /* 便签滑入滑出：keyframes 必须始终存在（与 isMobileSaveNoteMode 断点一致，勿放在条件 @media 内） */
        @keyframes noteSlideInFromRight {
            from { transform: translate3d(calc(100% + 20px), 0, 0); }
            to { transform: translate3d(0, 0, 0); }
        }
        @keyframes noteSlideOutToRight {
            from { transform: translate3d(0, 0, 0); }
            to { transform: translate3d(calc(100% + 20px), 0, 0); }
        }

        #saveModal .modal-header { padding: 14px 20px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #f0ece6; cursor:move; user-select:none; touch-action:none; }
        #saveModal .modal-body { padding: 14px 20px; }
        #saveModal .modal-body label { font-weight:bold; color:#888; font-size:0.88rem; flex-shrink:0; width:80px; }
        #saveModal .modal-body input[type="text"] { flex:1; padding:10px 12px; border:1px solid #eee; border-radius:8px; outline:none; font-size:0.92rem; background:#fafafa; transition:all 0.2s; font-family:var(--font-kai); font-weight:normal; touch-action:auto; }
        #saveModal .modal-body input[type="text"]:focus { background:#fff; border-color:#c8a96e; }
        #saveModal textarea { min-height:150px; padding:12px; border:1px solid #eee; border-radius:10px; box-sizing:border-box; outline:none; font-size:0.92rem; line-height:1.6; resize:vertical; background:#fafafa; transition:all 0.2s; font-family:var(--font-kai); font-weight:normal; touch-action:auto; }
        #saveModal textarea:focus { background:#fff; border-color:#c8a96e; }
        #saveModal .note-head-actions { display:flex; align-items:center; gap:6px; }
        #saveModal .note-icon-btn { width:30px; height:30px; border-radius:999px; border:1px solid #eadfcf; background:#fff; color:#8e754a; cursor:pointer; font-size:0.95rem; display:inline-flex; align-items:center; justify-content:center; }
        #saveModal .note-icon-save { color:#8a6a3f; background:#faf6ee; }
        #saveModal .save-modal-grip {
            position: absolute;
            left: 50%;
            top: 4px;
            width: 44px;
            height: 6px;
            transform: translateX(-50%);
            border: none;
            border-radius: 999px;
            background: rgba(188, 160, 121, 0.6);
            cursor: pointer;
            padding: 0;
        }
        #saveModal .single-gong-row { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
        #saveModal .single-gong-inline { display:inline-flex; align-items:center; gap:6px; color:#8a6b43; font-size:0.85rem; }
        #saveModal .single-gong-grid { display:grid; grid-template-columns:repeat(9, 1fr); gap:4px; flex:1; }
        #saveModal .single-gong-cell { border:1px solid #e7dcc9; background:#fff; color:#8b7249; border-radius:8px; height:26px; font-size:0.76rem; cursor:pointer; }
        #saveModal .single-gong-cell.active { background:#f3e6d2; border-color:#c7a97a; color:#7a5e34; font-weight:700; }
        #saveModal .single-gong-grid.disabled { opacity:0.4; pointer-events:none; }
        
        #filterModal .modal-content {
            width: 520px;
            padding: 22px 28px;
            border-radius: 24px;
            position: relative;
            box-sizing: border-box;
            background: linear-gradient(180deg, #fffdfa 0%, #f8f2e9 100%);
            border: 1px solid rgba(212, 193, 170, 0.8);
            box-shadow: 0 18px 50px rgba(73, 56, 34, 0.18);
        }
        #filterModal h2 { font-size: 1.15rem; margin-bottom: 16px; color: var(--filter-ink); font-weight: 700; letter-spacing: 0.02em; }
        #filterModal .filter-date-row { display: flex; gap: 24px; margin-bottom: 16px; }
        #filterModal .filter-date-row .form-group { flex: 1; margin-bottom: 0; min-width: 0; box-sizing: border-box; }
        #filterModal .form-group label { font-size: 0.85rem; font-weight: 600; color: var(--filter-muted); margin-bottom: 6px; }
        #filterModal .form-group input[type="date"] {
            font-size: 0.92rem;
            padding: 12px 14px;
            border-radius: 14px;
            border: 1px solid var(--filter-border-strong);
            background: rgba(255,255,255,0.92);
            width: 100%;
            box-sizing: border-box;
            color: var(--filter-ink);
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.7);
        }
        #filterModal .form-group input[type="date"]:focus {
            outline: none;
            border-color: rgba(47, 138, 103, 0.6);
            box-shadow: 0 0 0 3px rgba(47, 138, 103, 0.12);
        }
        #filterModal .filter-actions { display:flex; gap:14px; justify-content:center; }
        #filterModal .filter-divider { margin:20px 0; border:0; border-top:1px solid rgba(212, 193, 170, 0.55); }
        #filterModal .filter-results { max-height:400px; overflow-y:auto; }
        #filterModal .close { color: #b49a77; }
        #filterModal .close:hover { color: var(--filter-ink); }
        .modal-body { padding: 20px; flex: 1; overflow-y: auto; }
        .close { color: #999; font-size: 24px; font-weight: bold; cursor: pointer; line-height: 1; }
        .close:hover { color: #333; }
        .form-group { margin-bottom: 15px; }
        .form-group label { display: block; margin-bottom: 5px; color: #333; }
        .form-group input, .form-group textarea { width: 100%; padding: 8px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 4px; }
        
        /* Bottom Nav - 与页面成为一体，在文档流中 */
        .bottom-nav {
            width: 95%; max-width: 520px;
            background: #f8f5f0;
            border-radius: 40px;
            display: flex; justify-content: space-around;
            padding: 10px 5px;
            margin: 30px auto 20px;
        }
        /* 案例弹窗：底栏与时盘 .bottom-nav 同序——排在列表之后在文档流里，不跟列表抢 flex 高度 */
        .list-modal-bottom-nav {
            display: flex;
            width: 100%;
            max-width: none;
            border-radius: 18px;
            padding: 8px 4px;
            margin: 24px 0 max(6px, env(safe-area-inset-bottom, 0px));
            box-sizing: border-box;
            background: #f8f5f0;
            border: 1px solid rgba(216, 197, 169, 0.55);
            box-shadow: 0 8px 20px rgba(118, 92, 54, 0.06);
        }
        .nav-item {
            display: flex; flex-direction: column; align-items: center;
            color: #8b7355; font-size: 0.75rem; cursor: pointer; flex: 1;
            transition: color 0.2s, background 0.2s; padding: 5px 2px; border-radius: 20px;
            white-space: nowrap; min-width: 56px; touch-action: manipulation;
        }
        .nav-icon { font-size: 1.4rem; margin-bottom: 2px; }
        @media (hover: hover) { .nav-item:hover { background: rgba(184,144,91,0.08); color: #B8962E; } }
        .nav-item.active { color: #B8962E; }
        /* 案例列表内「查看」展开的笔记预览 */
        .case-list-detail-preview {
            font-size: 0.78rem;
            color: #4a4338;
            line-height: 1.5;
            margin-top: 8px;
            padding: 8px 10px;
            background: #faf8f4;
            border-radius: 8px;
            border: 1px solid #ede8df;
            white-space: pre-wrap;
            word-break: break-word;
            cursor: pointer;
        }
        .case-list-detail-preview .case-list-detail-sg {
            color: #7a5e34;
            font-weight: 600;
            margin-bottom: 6px;
        }
        .case-title-link { cursor: pointer; text-decoration: underline; text-decoration-color: rgba(184, 144, 91, 0.45); }
        #listModal {
            position: fixed !important;
            inset: 0 !important;
            background: #F5F0E6 !important;
            overscroll-behavior: contain !important;
            z-index: 10050 !important;
        }
        #listModalContent {
            position: fixed !important;
            inset: 0 !important;
            width: auto !important;
            max-width: none !important;
            height: 100vh !important;
            height: 100dvh !important;
            max-height: 100dvh !important;
            min-height: 0 !important;
            padding: 18px 20px max(12px, env(safe-area-inset-bottom, 0px)) !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            transform: none !important;
            left: 0 !important;
            top: 0 !important;
            overflow: hidden !important;
            box-sizing: border-box !important;
            display: flex !important;
            flex-direction: column !important;
        }
        #listModalHeader { cursor: default !important; padding-top: max(12px, env(safe-area-inset-top, 0px)) !important; margin-bottom: 16px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; user-select: none !important; }
        #listModalHeaderSpacer { width: 36px !important; flex-shrink: 0 !important; }
        #listModalTitleBar { margin: 0 !important; flex: 1 !important; text-align: center !important; font-size: 1rem !important; font-weight: 600 !important; color: #1a3a52 !important; min-width: 0 !important; }
        #listModalCloseX { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 36px !important; flex-shrink: 0 !important; cursor: pointer !important; font-size: 1.25rem !important; color: #999 !important; }
        #listModalTabs { margin-bottom: 14px !important; flex-shrink: 0 !important; }
        /* 照抄时盘：整列可滚 = 标题+筛选+列表+底栏 同一文档流，底栏永远在列表块之后，不可能盖住末行 */
        #listModalScroll {
            flex: 1 1 0% !important;
            min-height: 0 !important;
            overflow-x: hidden !important;
            overflow-y: auto !important;
            overscroll-behavior: contain !important;
            -webkit-overflow-scrolling: touch;
        }
        #case-list-container { padding: 0 2px !important; }
        @media (min-width: 641px) {
            /* 外圈纸色=时盘 body；内层白底+描边=时盘 .main-info / .grid-card */
            #listModal { background: #F5F0E6 !important; }
            #listModalContent {
                left: 50% !important;
                right: auto !important;
                width: 640px !important;
                max-width: calc(100vw - 40px) !important;
                transform: translateX(-50%) !important;
                box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
                background: #fff !important;
                border: 1px solid #dcd3d1 !important;
                border-radius: 12px !important;
            }
            /* 与时盘 .bottom-nav 同一套数值 */
            #listModal .bottom-nav.list-modal-bottom-nav {
                width: 95% !important;
                max-width: 520px !important;
                background: #f8f5f0 !important;
                border-radius: 40px !important;
                display: flex !important;
                justify-content: space-around !important;
                padding: 10px 5px !important;
                margin: 30px auto 20px !important;
                border: none !important;
                box-shadow: none !important;
            }
            #listModal .bottom-nav.list-modal-bottom-nav .nav-item {
                font-size: 0.75rem !important;
                min-width: 56px !important;
                padding: 5px 2px !important;
            }
            #listModal .bottom-nav.list-modal-bottom-nav .nav-icon {
                font-size: 1.4rem !important;
                margin-bottom: 2px !important;
            }
        }
        
        /* Matter Header */
        .matter-header {
              max-width: 600px; width: calc(100% - 24px); padding: 8px 15px 2px; background: #fff; 
              border: 1px solid #dcd3d1; border-bottom: none; 
            border-radius: 12px 12px 0 0; box-sizing: border-box;
            box-shadow: 0 -5px 15px rgba(0,0,0,0.02);
        }
        .matter-top { display: flex; align-items: flex-start; margin-bottom: 0; }
        .matter-top-actions { display:flex; align-items:center; gap:8px; margin-left:auto; }
        .matter-top-actions .matter-btn-record { margin-left:0; }
        .matter-label { 
            color: #8B7355; margin-right: 12px; font-weight: bold; font-size: 1.1rem; 
            border-left: 4px solid #B8962E; padding-left: 8px; 
            height: 1.6rem; display: flex; align-items: center;
            white-space: nowrap; font-family: var(--font-kai); font-synthesis: none;
        }
        .matter-btn-record {
            padding: 5px 12px; background: transparent; color: #8B7355; border: none;
            border-radius: 18px; cursor: pointer; font-weight: 500; font-size: 0.82rem;
            display: flex; align-items: center; gap: 4px; transition: all 0.2s;
            white-space: nowrap; margin-left: auto;
        }
        .matter-btn-record:hover { background: rgba(184,144,91,0.08); }
        .matter-input { 
            border: none; flex-grow: 1; outline: none; font-size: 1.2rem; 
            padding: 0; color: #333; font-weight: normal;
            background: transparent; resize: none; font-family: var(--font-kai); font-synthesis: none;
            line-height: 1.35; overflow: hidden; height: 1.6rem;
            display: block; margin-top: 2px;
        }
        .matter-input::placeholder { font-family: var(--font-kai); font-synthesis: none; }
        .matter-input::placeholder { color: #ccc; font-weight: normal; font-size: 1rem; }

        .case-item { border: 1px solid #f0ece6; padding: 12px 14px; margin-bottom: 10px; border-radius: 10px; background: #fafafa; cursor: pointer; position: relative; transition: all 0.15s; }
        .case-item:hover { background: #f5f2ed; border-color:#e0dcd6; }
        .case-title { font-weight: bold; color: #0066cc; font-size: 1em; }
        .case-meta { font-size: 0.8em; color: #999; margin-top: 4px; }
        .case-tab { padding:4px 14px; border-radius:14px; border:1px solid #e0d6c8; background:transparent; color:#8a7560; font-size:0.82rem; cursor:pointer; transition:all .2s; }
        .case-tab[data-type="命盘"] { color:#b08a28; border-color:#d4c090; }
        .case-tab[data-type="时盘"] { color:#4a8c5c; border-color:#9cc5a8; }
        .case-tab[data-type="抽盘"] { color:#4a6ca5; border-color:#9cb8d8; }
        .case-tab.active { font-weight:600; }
        .case-tab[data-type="all"] { color:#7f7a72; border-color:#cfc8bd; }
        .case-tab.active[data-type="all"] { color:#6f685f; border:1.5px solid #a9a196; background:#a9a196; color:#fff; }
        .case-tab.active[data-type="命盘"] { color:#fff; border:1.5px solid #b08a28; background:#b08a28; }
        .case-tab.active[data-type="时盘"] { color:#fff; border:1.5px solid #4a8c5c; background:#4a8c5c; }
        .case-tab.active[data-type="抽盘"] { color:#fff; border:1.5px solid #4a6ca5; background:#4a6ca5; }
        .case-del { position: absolute; right: 10px; top: 10px; color: #cc0000; font-weight:bold; padding:4px 8px; border-radius: 4px; }
        .case-del:hover { background: #fee; }
        .naji-badge {
            position: relative;
            background: rgba(255, 215, 0, 0.15);
            color: #b8905b;
            border: 1px solid rgba(212, 175, 55, 0.3);
            border-radius: 50%;
            width: 26px; height: 26px;
            display: none; align-items: center; justify-content: center;
            font-size: 0.75rem; cursor: pointer;
            transition: all 0.3s;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
            z-index: 10;
        }
        .naji-badge:hover { background: rgba(255, 215, 0, 0.3); transform: scale(1.1); }
        .palace-wrapper.naji-active { background: #f0fff4; box-shadow: inset 0 0 15px rgba(40, 167, 69, 0.05); }
        .naji-modal-content {
            background-color: #fcfcfc; margin: 10% auto; padding: 20px;
            border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
            width: 60%; max-width: 400px; max-height: 70vh;
            overflow-y: auto; font-size: 0.95rem; line-height: 1.5;
        }

        .p-row { display: flex; justify-content: space-between; align-items: center; min-height: 33.33%; }
        .p-left { display: flex; align-items: center; white-space: nowrap; position: relative; }
        .p-right { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; }
        
        .naji-item {
            padding: 14px 16px;
            margin-bottom: 16px;
            background: #fff;
            border: 1px solid #e8dfd4;
            border-left: none;
            border-radius: 12px;
            box-shadow: 0 2px 8px rgba(86, 70, 49, 0.04);
        }
        .naji-item:hover { background: linear-gradient(180deg, #fffdfa 0%, #f8f2ea 100%); }
        .naji-time { font-weight: 700; color: #8b6914; margin-bottom: 6px; display: block; line-height: 1.45; font-size: 1.02rem; }
        .naji-time span { color: var(--filter-muted); font-size: 0.88rem; }
        .naji-details { font-size: 0.85rem; color: #555; margin-top: 10px; }
        .naji-palace-card {
            margin-bottom: 10px;
            background: rgba(255,255,255,0.5);
            padding: 10px 12px;
            border-radius: 10px;
            border: none;
            box-shadow: none;
        }
        .naji-palace-title {
            color: #8b6914;
            font-weight: 700;
            font-size: 0.85rem;
            line-height: 1.55;
            border-bottom: none;
            padding-bottom: 4px;
            margin-bottom: 6px;
        }
        .naji-palace-grid {
            display:grid;
            grid-template-columns: 1fr 1fr;
            gap: 4px 12px;
            font-size: 0.8rem;
            color: #777;
            margin-bottom: 8px;
            background: rgba(248, 242, 233, 0.35);
            padding: 8px 10px;
            border-radius: 8px;
        }
        .naji-action { color: #555; line-height: 1.65; font-size: 0.82rem; }
        .naji-action b { color: #8b6914; }
        .naji-item-actions { display:flex; gap:10px; margin-top:12px; }
        .ical-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-top: 5px;
            min-height: 40px;
            padding: 0 16px;
            background: transparent;
            color: var(--filter-accent);
            border-radius: 999px;
            font-size: 0.84rem;
            cursor: pointer;
            text-decoration: none;
            border: 1.5px solid #d4c5a9;
            font-weight: 600;
            white-space: nowrap;
            transition: all 0.2s ease;
        }
        .ical-btn:hover { transform: translateY(-1px); }
        .ical-btn-primary {
            background: transparent;
            color: #b8905b;
            border-color: #b8905b;
            box-shadow: none;
            font-weight: 600;
        }
        .ical-btn-secondary {
            background: transparent;
            color: #b8905b;
            border-color: #d4c5a9;
            border-style: dashed;
        }
        .filter-action-btn {
            display:inline-flex;
            align-items:center;
            justify-content:center;
            height:40px;
            padding:0 26px;
            border-radius:999px;
            cursor:pointer;
            font-weight:700;
            font-size:0.9rem;
            white-space:nowrap;
            transition: all 0.2s ease;
        }
        .filter-action-btn:hover { transform: translateY(-1px); }
        .filter-action-btn:disabled { opacity: 0.65; cursor: wait; transform: none; }
        .filter-action-btn-primary {
            background: transparent;
            color: #b8905b;
            border: 1.5px solid #b8905b;
            box-shadow: none;
            font-weight: 600;
        }
        .filter-action-btn-secondary {
            background: transparent;
            color: #b8905b;
            border: 1.5px dashed #d4c5a9;
        }
        .filter-action-btn-danger {
            background: transparent;
            color: #b05c5c;
            border: 1.5px dashed #e1b8b8;
        }
        .filter-empty { text-align:center; padding:24px 14px; color: var(--filter-muted); }
        
        .p-stem-layer { display: flex; justify-content: flex-end; align-items: baseline; width: 100%; gap: 1px; }
        .p-shen { font-family: var(--font-kai); font-size: 1.15rem; color: #333; font-weight: 400; font-synthesis: none; }
        
        .p-yingan-box { position: absolute; left: -12px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; align-items: center; line-height: 1; }
        .p-yingan-box span { color: #333; font-size: 1.15rem; font-family: var(--font-kai); font-weight: 400; font-synthesis: none; line-height: 1; }
        /* 宫外隐干 - 九宫格外部四周 */
        .palace-yingan-outside {
            position: absolute;
            display: flex;
            flex-direction: column;
            align-items: center;
            line-height: 1;
            z-index: 10;
        }
        .palace-yingan-outside span {
            color: #333;
            font-size: 1.15rem;
            font-family: var(--font-kai);
            font-weight: 400;
            font-synthesis: none;
            line-height: 1;
        }
        /* 左侧 */
        .palace-yingan-left {
            left: -20px;
            top: 50%;
            transform: translateY(-50%);
        }
        /* 右侧 */
        .palace-yingan-right {
            right: -20px;
            top: 50%;
            transform: translateY(-50%);
        }
        /* 上方 */
        .palace-yingan-top {
            top: -20px;
            left: 50%;
            transform: translateX(-50%);
            flex-direction: row;
        }
        /* 下方 */
        .palace-yingan-bottom {
            bottom: -20px;
            left: 50%;
            transform: translateX(-50%);
            flex-direction: row;
        }
        .p-xing { font-family: var(--font-kai); font-size: 1.15rem; color: #333; font-weight: 400; font-synthesis: none; }
        .p-men { font-family: var(--font-kai); font-size: 1.15rem; color: #333; font-weight: 400; font-synthesis: none; }
        .p-stem { font-family:"STKaiti","Kaiti",serif; font-size: 1.15rem; font-weight: 400; font-synthesis: none; line-height: 1; white-space: nowrap; position: relative; }
        .circle { color: #1a9c3e; margin-right: 2px; }

        .legend { font-size: 0.82rem; color: #888; text-align: center; width: 100%; }
        .legend > span:first-child { color:#8e7a62; font-weight:600; }
        .leg { display: inline-block; margin: 0 6px; padding: 2px 6px; border-radius: 4px; font-weight: 600; }
        .chart-footer {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 12px;
            margin-top: 20px;
            width: 100%;
            padding-top: 14px;
            border-top: none;
        }
        .toggle-bar { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }

        .stem-group { display: flex; flex-direction: column; align-items: center; position: relative; margin: 0 2px; }
        .cs-label { display: none; font-size: 0.65rem; color: #888; white-space: nowrap; font-family: sans-serif; font-weight: normal; letter-spacing: 0; line-height: 1; order: -1; margin-bottom: 2px; }
        body.show-cs .cs-label { display: block; }
        .dz-label { display: none; font-size: 0.65rem; color: #888; white-space: nowrap; font-family: sans-serif; font-weight: normal; letter-spacing: 0; line-height: 1; margin-top: 1px; }
        body.show-dz .dz-label { display: block !important; }

        .dt-bar { display:flex; align-items:center; gap:6px; padding:2px 0; justify-content:center; }
        .dt-input-wrap { flex:1 1 0; min-width:0; max-width:240px; }
        .dt-input { font-family:inherit; font-size:0.95rem; border:1px solid #e0dcd6; border-radius:18px; padding:4px 10px; outline:none; background:#faf8f5; width:100%; min-width:0; box-sizing:border-box; }
        .dt-input::-webkit-calendar-picker-indicator { opacity:0; position:absolute; right:0; width:100%; height:100%; cursor:pointer; }
        /* iOS Safari兼容：改善日历选择器的显示 */
        .dt-input::-webkit-calendar-picker-indicator {
            opacity: 1;
            position: relative;
            width: auto;
            height: auto;
            right: auto;
            background: transparent;
        }
        .dt-input:focus { border-color:#B8962E; background:#fff; }
        .dt-btn {
            background: linear-gradient(180deg, var(--filter-accent) 0%, var(--filter-accent-strong) 100%);
            color:white;
            border:1px solid var(--filter-accent-strong);
            border-radius:18px;
            padding:6px 22px;
            cursor:pointer;
            font-weight:700;
            font-size:0.85rem;
            transition: all 0.2s;
            letter-spacing:0.5px;
            flex-shrink:0;
            box-shadow: 0 8px 18px rgba(47, 138, 103, 0.18);
        }
        .dt-btn:hover { background: linear-gradient(180deg, #348f6c 0%, #24674d 100%); transform:translateY(-1px); }
        .dt-btn-now { background:#F9F7F2; color:#8b7355; border:1px solid #e0dcd6; padding:3px 10px; font-size:0.78rem; border-radius:14px; cursor:pointer; white-space:nowrap; flex-shrink:0; }
        .dt-btn-now:hover { background:#f0ebe5; }
        .dt-btn-now.is-outdated { background:transparent; color:#8B7355; border:1px solid #C4A84A; }
        .dt-btn-now.is-outdated:hover { background:rgba(184,144,91,0.08); }
        .dt-btn-paipan { background:#F9F7F2; color:#8b7355; border:1px solid #e0dcd6; padding:3px 10px; font-size:0.78rem; border-radius:14px; cursor:pointer; white-space:nowrap; flex-shrink:0; font-weight:600; transition:all 0.2s; }
        .dt-btn-paipan:hover { background:#f0ebe5; }
        .dt-cal-icon { display:none; }

        @media (min-width: 641px) {
            .dt-bar { display:grid; grid-template-columns: 28px 240px auto auto 28px; align-items:center; justify-content:center; column-gap:10px; width:fit-content; max-width:calc(100% - 24px); margin:0 auto; padding:2px 8px; box-sizing:border-box; }
            .dt-bar > .dt-nav-btn:first-child { grid-column: 1; justify-self: center; transform: translateX(-30px); }
            .dt-bar > .dt-input-wrap { grid-column: 2; width:240px; transform: translateX(-20px); }
            .dt-bar > .dt-btn-now { grid-column: 3; transform: translateX(-10px); }
            .dt-bar > .dt-btn-paipan { grid-column: 4; transform: translateX(20px); }
            .dt-bar > .dt-nav-btn:last-child { grid-column: 5; justify-self: center; transform: translateX(30px); }
            .p-yingan-box {
                left: -12px;
                top: 50%;
                transform: translateY(-50%);
            }
            .p-yingan-box span,
            .palace-yingan-outside span {
                font-size: 0.76rem;
                color: #999;
                font-family: "Kaiti", serif;
                line-height: 1.1;
            }
            .palace-yingan-left {
                left: -20px;
                top: 50%;
                transform: translateY(-50%);
            }
            .palace-yingan-right {
                right: -20px;
                top: 50%;
                transform: translateY(-50%);
            }
            .palace-yingan-top {
                top: -20px;
                left: 50%;
                transform: translateX(-50%);
            }
            .palace-yingan-bottom {
                bottom: -20px;
                left: 50%;
                transform: translateX(-50%);
            }
        }

        .toast { 
            visibility: hidden; min-width: 250px; background-color: rgba(50, 50, 50, 0.9); 
            color: #fff; text-align: center; border-radius: 12px; padding: 16px; 
            position: fixed; z-index: 10001; left: 50%; top: 50%; 
            transform: translate(-50%, -50%); font-size: 1rem; 
            box-shadow: 0 4px 15px rgba(0,0,0,0.2);
            transition: opacity 0.3s, visibility 0.3s; opacity: 0;
        }
        .toast.show { visibility: visible; opacity: 1; }
        .upgrade-overlay {
            display:none; position:fixed; inset:0; z-index:10002;
            background:rgba(0,0,0,0.38);
            align-items:center; justify-content:center; padding:20px 16px;
        }
        .upgrade-overlay.show { display:flex; }
        .upgrade-sheet {
            background:#fff; border-radius:14px; width:min(360px,92%);
            box-shadow:0 16px 48px rgba(0,0,0,0.15);
            animation:upgradePop 0.22s ease;
            overflow:hidden;
        }
        @keyframes upgradePop { from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)} }
        @keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }

        .badge-fuyin { color:#1e8bff; font-size:0.8rem; }
        .badge-fanyin { color:#1e8bff; font-size:0.8rem; }

        /* Palace Popover */
        .palace-popover {
            position:absolute; top:50%; left:50%; transform:translate(-50%, -50%);
            background:transparent; border:none; border-radius:0;
            padding:0; white-space:nowrap; box-shadow:none;
            font-size:0.8rem; pointer-events:none; z-index:10;
            opacity:0; transition:opacity 0.2s;
            text-align:center; font-family:sans-serif; font-weight:500; font-synthesis:none; line-height:1.08;
        }
        @media (min-width: 641px) {
            .palace-popover {
                transform: translate(calc(-50% + 7px), -50%);
            }
        }
        .palace-popover.pop-visible { opacity:1; }
        .palace-popover-line { color:#9b8b78; text-shadow:0 1px 0 rgba(255,255,255,0.6); letter-spacing:0.01em; }
        .palace-popover-line + .palace-popover-line { margin-top:1px; }
        .geju-tag {
            display:inline-block; font-size:0.78rem; padding:1px 5px;
            border-radius:3px; white-space:nowrap;
        }
        .geju-red    { color:#333; background:#f5f3f0; }
        .geju-purple { color:#333; background:#f5f3f0; }
        .geju-blue   { color:#333; background:#f5f3f0; }

        .loading-overlay { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(245,242,237,0.9); display:none; justify-content:center; align-items:center; z-index:99999; font-size:1.2rem; color:#8B7355; }

        /* Method dropdown */
        .method-dropdown { position:relative; display:inline-block; }
        .method-btn { font-family:inherit; font-size:0.85rem; border:1px solid #e0dcd6; border-radius:18px; padding:4px 14px 4px 10px; background:#faf8f5; color:#333; cursor:pointer; white-space:nowrap; }
        .method-btn::after { content:'\25BE'; margin-left:4px; font-size:0.7rem; color:#999; }
        .method-menu { display:none; position:absolute; top:100%; left:0; margin-top:4px; background:#fff; border:1px solid #e0dcd6; border-radius:10px; box-shadow:0 4px 12px rgba(0,0,0,0.1); z-index:100; overflow:hidden; min-width:80px; }
        .method-menu.show { display:block; }
        .method-menu-item { padding:6px 16px; font-size:0.85rem; color:#333; cursor:pointer; white-space:nowrap; }
        .method-menu-item:hover { background:#f5f0ea; }
        .method-menu-item.active { color:#00bfa5; font-weight:bold; }
        .method-select:focus { border-color:#B8962E; background:#fff; }

        /* Date nav buttons */
        .dt-nav-btn { background:none; border:1px solid #ddd; border-radius:50%; width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; color:#888; font-size:0.75rem; transition:all 0.2s; flex-shrink:0; }
        .dt-nav-btn:hover { background:#00bfa5; color:white; border-color:#00bfa5; }

        /* Date overlay (mobile only, desktop hidden) */
        .dt-overlay { display: none; }

        /* Toggle chips */
        .toggle-bar { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
        .toggle-chip { display:inline-flex; align-items:center; gap:4px; padding:6px 16px; border-radius:20px; border:1px solid #e0dcd6; background:white; color:#999; font-size:0.85rem; cursor:pointer; transition:all 0.2s; user-select:none; }
        .toggle-chip.active { border-color:#B8962E; color:#8B7355; background:rgba(184,144,91,0.08); }
        .toggle-chip:hover { border-color:#c8b896; }
        .toggle-chip:disabled { opacity:0.4; cursor:not-allowed; }
        .toggle-chip:disabled:hover { border-color:#e0dcd6; }

        /* Mobile responsive */
        @media (max-width: 640px) {
            body {
                padding: 8px 12px 28px;
                padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px));
            }
            .header { margin-bottom: 8px; }
            .header .page-main-title { font-size: 1.12rem; letter-spacing: 0.12em; }
            .matter-header,
            .main-info,
            .grid-card {
                width: calc(100% + 14px);
                max-width: none;
                margin-left: -7px;
                margin-right: -7px;
            }
            .matter-header {
                padding: 8px 12px 4px;
                border-radius: 16px 16px 0 0;
            }
            .main-info {
                padding: 8px 12px 8px;
                margin-bottom: 8px;
                border-radius: 0 0 16px 16px;
                box-shadow: 0 2px 8px rgba(0,0,0,0.04);
            }
            .matter-label { font-size: 0.94rem; }
            .matter-input { font-size: 0.98rem; height: 1.45rem; margin-right: 6px !important; padding: 0 0 2px !important; border-bottom: 1px solid #e8d5b0 !important; }
            .matter-top-actions { gap:6px; margin-top:4px; }
            .matter-btn-record { padding: 3px 5px; font-size: 0.64rem; border-radius: 14px; min-width: 0; margin-right: 0 !important; margin-top: 0; }
            .matter-btn-record span { font-size: 0.82rem !important; }
            .matter-top-actions .matter-btn-record:nth-of-type(1) { transform: translateY(4px); }
            .matter-top-actions .matter-btn-record:nth-of-type(2) { transform: translateY(4px); }
            .matter-top-actions .matter-btn-record:nth-of-type(3) { transform: translateY(4px); }
            .bazi-grid {
                margin: 6px 0 5px;
                padding: 0;
                gap: 0;
                border-top: none;
                border-bottom: none;
            }
            .bazi-col { padding: 8px 4px 10px; }
            .bazi-gan, .bazi-zhi { font-size: 1.1rem; }
            .bazi-label { font-size: 0.74rem; margin-bottom: 1px; }
            .info-r { font-size:0.82rem; margin-bottom:2px; padding-bottom:2px; border-bottom:1px dashed #f5f0eb; }
            .info-r:last-child { border-bottom:none; }
            .info-pair {
                grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
                column-gap: 12px;
            }
            .info-cell {
                min-width: 0;
            }
            .lbl {
                width: 34px;
                margin-left: 0;
                font-size: 0.7rem;
                color: #8a7a67;
            }
            .val { line-height: 1.38; }
            #info-details {
                padding-left: 10px;
                padding-right: 2px;
            }
            .grid-card {
                padding: 16px 14px 20px;
                border-radius: 16px;
                box-shadow: 0 2px 8px rgba(0,0,0,0.04);
            }
            .grid {
                width: calc(100% - 18px);
                max-width: none;
                margin: 16px auto 12px;
                gap: 1px;
                border-width: 2px;
            }
            .palace { padding: 5px 8px 5px 12px; }
            .p-row {
                min-height: 32.5%;
                justify-content: space-between;
            }
            .p-left {
                min-width: 0;
                flex: 0 0 51%;
                justify-content: flex-start;
            }
            .p-right {
                flex: 0 0 29%;
                max-width: none;
                align-items: flex-end;
                padding-right: 2px;
            }
            .stem-group { margin: 0; }
            .p-stem-layer {
                gap: 0;
                justify-content: flex-end;
                padding-right: 1px;
            }
            .p-stem-layer.has-paired-stems .stem-group:first-child { transform: translateX(-2px); }
            .p-stem { font-size:0.85rem; font-family:"STKaiti","Kaiti",serif; line-height:1.1; letter-spacing:-0.04em; font-weight:700; color:#1a3a52; }
            .p-xing,
            .p-men,
            .p-shen {
                font-size: 0.85rem;
                letter-spacing: -0.04em;
            }
            .circle {
                font-size: 0.72rem;
                margin-right: 1px;
            }
            .cs-label {
                font-size: 0.52rem;
                color: #9b8b78;
                transform: scale(0.94);
                transform-origin: center bottom;
            }
            .dz-label {
                font-size: 0.5rem;
                color: #6d6255;
                margin-top: 2px;
            }
            body.show-dz .dz-label { display: block !important; }
            .p-yingan-box { left: -10px; }
            .p-yingan-box span {
                font-size: 0.8rem;
                color: #78736b;
                font-family: var(--font-kai);
            }
            .palace-yingan-left { left: -18px; }
            .palace-yingan-right { right: -18px; }
            .palace-yingan-top { top: -18px; }
            .palace-yingan-bottom { bottom: -18px; }
            .palace-yingan-outside span {
                font-size: 0.8rem;
                color: #78736b;
            }
            .grid .ma-corner {
                font-size: 1rem;
            }
            .grid .ma-corner-top-left,
            .grid .ma-corner-top-center,
            .grid .ma-corner-top-right {
                top: -22px;
            }
            .grid .ma-corner-left-center {
                left: -18px;
            }
            .grid .ma-corner-right-center {
                right: -18px;
            }
            .grid .ma-corner-bottom-left,
            .grid .ma-corner-bottom-center,
            .grid .ma-corner-bottom-right {
                bottom: -22px;
            }
            .grid .ma-corner-top-left,
            .grid .ma-corner-left-center,
            .grid .ma-corner-bottom-left {
                left: -18px;
            }
            .grid .ma-corner-top-right,
            .grid .ma-corner-bottom-right {
                right: -18px;
            }
            .palace-popover {
                font-size: 0.62rem;
                line-height: 1.02;
                transform: translate(calc(-50% + 5px), -52%);
                max-width: 70%;
                white-space: normal;
            }
            .palace-popover-line {
                color: #a2917b;
                letter-spacing: 0;
            }
            .palace-popover-line + .palace-popover-line {
                margin-top: 0;
            }
            .naji-badge { width: 22px; height: 22px; font-size: 0.66rem; }
            .dt-bar { display:grid; grid-template-columns: 24px minmax(152px, 46vw) auto auto 1fr; align-items:center; column-gap: 4px; width: 100%; padding: 0 2px; box-sizing: border-box; }
            .dt-input { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; opacity: 0 !important; font-size: 16px !important; padding: 0 !important; margin: 0 !important; min-width: 0 !important; z-index: 2; }
            .dt-input-wrap { width: 100% !important; min-width: 0 !important; max-width: none !important; overflow: hidden !important; position: relative !important; height: 28px; border: none; border-radius: 0; background: transparent; box-shadow: none; box-sizing: border-box; }
            .dt-overlay { display:flex; align-items:center; justify-content:center; position:relative; width:100%; font-size:0.78rem; color:#333; pointer-events:none; z-index:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-align:center; padding: 0 10px; line-height: 1; height: 28px; box-sizing: border-box; }
            .dt-btn { font-size: 0.72rem; padding: 2px 8px; }
            .dt-btn-now { height: 28px; padding: 0 8px; font-size: 0.65rem; margin-left: -12px; }
            .dt-btn-paipan { height: 28px; padding: 0 11px; font-size: 0.68rem; margin-left: 16px; }
            .dt-nav-btn { width: 24px; height: 24px; font-size: 0.65rem; position: relative; z-index: 5; }
            .dt-bar .dt-nav-btn:first-child { margin-left: 12px; }
            .dt-bar .dt-nav-btn:last-child { justify-self: end; margin-right: 12px; }
            .method-btn { font-size: 0.72rem; padding: 2px 10px 2px 6px; }
            .method-menu-item { font-size: 0.75rem; padding: 5px 12px; }
            .chart-footer {
                gap: 8px;
                margin-top: 18px;
                padding-top: 8px;
            }
            .legend {
                display: flex;
                flex-wrap: nowrap;
                justify-content: center;
                align-items: center;
                gap: 4px;
                font-size: 0.64rem;
                text-align: center;
                padding: 2px 0 0;
                border: none;
                border-radius: 0;
                background: transparent;
                white-space: nowrap;
            }
            .legend > span:first-child {
                flex: 0 0 auto;
                margin-bottom: 0;
            }
            .leg {
                margin: 0;
                padding: 3px 7px;
                border-radius: 999px;
                border: none;
            }
            .toggle-bar {
                width: 100%;
                gap: 6px;
                justify-content: center;
                margin-top: 2px;
            }
            .toggle-chip {
                padding: 4px 12px;
                font-size: 0.75rem;
                border-radius: 999px;
                background: #fff;
                box-shadow: none;
            }
            .bottom-nav {
                width: 100%;
                max-width: none;
                border-radius: 18px;
                padding: 8px 4px;
                margin-top: 18px;
                margin-bottom: 6px;
                justify-content: space-around;
                background: #f8f5f0;
                border: 1px solid rgba(216, 197, 169, 0.55);
                box-shadow: 0 8px 20px rgba(118, 92, 54, 0.06);
            }
            .nav-item { font-size: 0.66rem; min-width: 48px; padding: 6px 2px; }
            .nav-icon { font-size: 1.08rem; margin-bottom: 2px; }
            .modal-content:not(#saveModalContent) { width: 88vw !important; margin: 5vh auto !important; max-height: 60vh !important; border-radius: 16px !important; box-shadow: 0 8px 30px rgba(0,0,0,0.12) !important; }
            /* === 案例笔记弹窗（与时盘一致：左右各 8px，避免被 .modal-content 88vw 覆盖） === */
            #saveModal.mobile-note-mode { background: transparent !important; pointer-events: none; }
            #saveModal.mobile-note-mode #saveModalContent {
                pointer-events: auto;
                position: fixed !important;
                left: 8px !important;
                right: 8px !important;
                width: auto !important;
                max-width: none !important;
                box-sizing: border-box !important;
                top: clamp(132px, 22vh, 220px);
                bottom: auto;
                margin: 0 !important;
                transform: translate3d(0, 0, 0) !important;
                opacity: 0 !important;
                transition: opacity 0.2s ease !important;
                border-radius: 18px !important;
                border: 1px solid rgba(212, 193, 170, 0.7) !important;
                background: rgba(255,255,255,0.95) !important;
                box-shadow: 0 14px 32px rgba(60, 44, 24, 0.18) !important;
                max-height: min(58vh, 420px) !important;
                overscroll-behavior: contain;
            }
            /* 勿对 transform 用 !important 盖住 noteSlide* 关键帧 */
            #saveModal.mobile-note-mode #saveModalContent.note-open { opacity: 1 !important; }
            #saveModal.mobile-note-mode #saveModalContent.note-open:not(.note-restore-animate):not(.note-hide-animate) { transform: translate3d(0, 0, 0) !important; }
            #saveModal.mobile-note-mode #saveModalContent.note-mini { transform: translateY(0) !important; opacity: 1 !important; }
            #saveModal.mobile-note-mode .modal-header {
                cursor: default !important;
                touch-action: none !important;
                padding: 10px 14px !important;
                position: relative;
            }
            #saveModal.mobile-note-mode .save-modal-grip { display:block; }
            #saveModal.mobile-note-mode .modal-header span:first-child { font-size: 0.92rem !important; padding-top: 4px; }
            #saveModal.mobile-note-mode .save-mini-btn { display:inline-flex !important; align-items:center; justify-content:center; width:28px; height:28px; }
            #saveModal.mobile-note-mode .save-modal-body {
                max-height: min(42vh, 320px);
                overflow: auto;
                padding: 10px 14px 12px !important;
                overscroll-behavior: contain;
            }
            #saveModal.mobile-note-mode #saveModalContent.note-mini .save-modal-body { display: none !important; }
            #saveModal.mobile-note-mode #saveModalContent.note-mini .modal-header { border-bottom: none !important; }
            #saveModal.mobile-note-mode .modal-body input[type="text"] { font-size: 0.86rem !important; padding: 8px 10px !important; }
            #saveModal.mobile-note-mode textarea { min-height: 110px !important; font-size: 0.86rem !important; padding: 10px 12px !important; }
            #saveModal.mobile-note-mode .note-icon-btn { width:28px; height:28px; font-size:0.88rem; }
            #saveModal.mobile-note-mode .single-gong-row { margin-bottom:8px; }
            #saveModal.mobile-note-mode .single-gong-inline { font-size:0.76rem; }
            #saveModal.mobile-note-mode .single-gong-cell { height:24px; font-size:0.72rem; border-radius:7px; }
            #saveModal.mobile-note-mode .note-icon-back { display: none !important; }
            #saveModal.mobile-note-mode #saveModalContent.note-open.note-restore-animate {
                animation: noteSlideInFromRight 0.68s cubic-bezier(0.12, 0.82, 0.32, 1) both;
                will-change: transform;
                transition: none !important;
            }
            #saveModal.mobile-note-mode #saveModalContent.note-open.note-hide-animate {
                animation: noteSlideOutToRight 0.55s cubic-bezier(0.36, 0.06, 0.2, 1) forwards;
                will-change: transform;
                transition: none !important;
            }
            /* === 案例记录弹窗（窄屏 padding 与盘面 body 一致，底部栏视觉与时盘 .bottom-nav 对齐） === */
                #listModal { background: #fff !important; overscroll-behavior: contain !important; z-index: 10050 !important; }
                #listModalContent {
                    position: fixed !important;
                    inset: 0 !important;
                    width: auto !important;
                    max-width: none !important;
                    height: 100vh !important;
                    height: 100dvh !important;
                    max-height: 100dvh !important;
                    min-height: 0 !important;
                    padding: 8px 12px max(8px, env(safe-area-inset-bottom, 0px)) !important;
                    padding-top: max(8px, env(safe-area-inset-top, 0px)) !important;
                    border-radius: 0 !important;
                    box-shadow: none !important;
                    transform: none !important;
                    left: 0 !important;
                    top: 0 !important;
                    overflow: hidden !important;
                    box-sizing: border-box !important;
                    display: flex !important;
                    flex-direction: column !important;
                }
                #listModalHeader { cursor: default !important; padding-top: max(8px, env(safe-area-inset-top, 0px)) !important; margin-bottom: 16px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; }
                #listModalHeaderSpacer { width: 36px !important; flex-shrink: 0 !important; }
                #listModalTitleBar { font-size: 0.95rem !important; }
                #listModalTabs { margin-bottom: 14px !important; flex-shrink: 0 !important; }
                .case-item-card { padding: 10px 12px !important; margin-bottom: 4px !important; }
                #listModalCloseX { display: inline-flex !important; width: 36px !important; justify-content: center !important; }
                #listModalScroll {
                    flex: 1 1 0% !important;
                    min-height: 0 !important;
                    overflow-x: hidden !important;
                    overflow-y: auto !important;
                    overscroll-behavior: contain !important;
                    -webkit-overflow-scrolling: touch;
                }
                #case-list-container { padding: 0 2px !important; }
                /* 与时盘窄屏 .bottom-nav 一致 */
                #listModal .bottom-nav.list-modal-bottom-nav {
                    display: flex !important;
                    justify-content: space-around !important;
                    width: 100% !important;
                    max-width: none !important;
                    border-radius: 18px !important;
                    padding: 8px 4px !important;
                    margin-top: auto !important;
                    margin-bottom: max(6px, env(safe-area-inset-bottom, 0px)) !important;
                    margin-left: 0 !important;
                    margin-right: 0 !important;
                    box-sizing: border-box !important;
                    background: #f8f5f0 !important;
                    border: 1px solid rgba(216, 197, 169, 0.55) !important;
                    box-shadow: 0 8px 20px rgba(118, 92, 54, 0.06) !important;
                    flex-shrink: 0 !important;
                }
                #listModal .bottom-nav.list-modal-bottom-nav .nav-item { font-size: 0.66rem !important; min-width: 48px !important; padding: 6px 2px !important; }
                #listModal .bottom-nav.list-modal-bottom-nav .nav-icon { font-size: 1.08rem !important; margin-bottom: 2px !important; }
            .case-item { padding: 8px 10px !important; margin-bottom: 4px !important; border-radius: 10px !important; }
            .case-title { font-size: 0.88em !important; line-height: 1.5 !important; }
            .case-meta { font-size: 0.72em !important; margin-top: 6px !important; line-height: 1.5 !important; }
            /* === 纳吉日历筛选弹窗 === */
            #filterModal .modal-content { width: 82vw !important; padding: 16px 14px !important; border-radius: 20px !important; box-sizing: border-box !important; overflow-x: hidden !important; overflow-y: auto !important; max-height: 80vh !important; }
            #filterModal h2 { font-size: 0.92rem !important; margin-bottom: 12px !important; font-weight: 600 !important; }
            #filterModal .filter-date-row { gap: 16px !important; margin-bottom: 12px !important; }
            #filterModal .form-group label { font-size: 0.75rem !important; margin-bottom: 3px !important; color: #999 !important; }
            #filterModal .form-group input[type="date"] { font-size: 0.82rem !important; padding: 9px 10px !important; border-radius: 10px !important; width: 100% !important; box-sizing: border-box !important; max-width: 100% !important; -webkit-appearance: none !important; appearance: none !important; }
            #filterModal .filter-date-row .form-group { min-width: 0 !important; box-sizing: border-box !important; flex: 1 !important; overflow: hidden !important; }
            #filterModal .filter-actions { gap: 10px !important; }
            #filterModal .filter-action-btn { font-size: 0.78rem !important; width: auto !important; min-width: 0 !important; height: 36px !important; padding: 0 14px !important; border-radius: 18px !important; }
            #filterModal .naji-item { padding: 12px 12px 12px 12px !important; }
            #filterModal .naji-time { font-size: 0.78rem !important; }
            #filterModal .naji-time span { font-size: 0.68rem !important; }
            #filterModal .naji-details { margin-top: 5px !important; }
            #filterModal .naji-palace-card { padding: 10px !important; border-radius: 12px !important; }
            #filterModal .naji-palace-title { font-size: 0.76rem !important; }
            #filterModal .naji-palace-grid { padding: 8px 9px !important; font-size: 0.72rem !important; gap: 5px 8px !important; }
            #filterModal .naji-action { font-size: 0.76rem !important; }
            #filterModal .naji-item-actions { gap: 8px !important; }
            #filterModal .naji-details .ical-btn { font-size: 0.72rem !important; min-height: 36px !important; padding: 0 8px !important; }
            #filter-results { max-height: none !important; }
        }

        /* ========== 底部品牌标识 ========== */
        .main-footer {
            padding: 32px 0 24px;
            text-align: center;
            width: 100%;
            background: var(--bg-paper);
        }
        .footer-brand-stack {
            display: inline-flex;
            flex-direction: column;
            align-items: center;
            gap: 5px;
            max-width: 320px;
            margin: 0 auto;
            padding: 8px 12px 2px;
            cursor: pointer;
            touch-action: manipulation;
        }
        .footer-divider {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 16px;
            width: 100%;
        }
        .footer-line {
            flex: 1;
            height: 1px;
            background: linear-gradient(90deg,
                transparent 0%,
                rgba(181, 122, 52, 0.06) 30%,
                #dcd3d1 50%,
                rgba(181, 122, 52, 0.06) 70%,
                transparent 100%);
        }
        .footer-brand {
            font-family: "STKaiti", "Kaiti", serif;
            font-size: 0.82rem;
            letter-spacing: 0.55em;
            color: #78909C;
            white-space: nowrap;
            user-select: none;
            display: inline-flex;
            align-items: center;
            gap: 0;
            padding: 0 4px;
        }
        .fb-char {
            display: inline-block;
            color: #78909C;
            transition: color 0.3s;
            padding: 0 0.15em;
        }
        .footer-meta {
            font-size: 0.72rem;
            line-height: 1.45;
            color: #78909C;
            opacity: 0.88;
            letter-spacing: 0.03em;
        }
        .footer-feedback {
            margin-top: 12px;
            font-size: 0.75rem;
            color: #90A4AE;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            gap: 4px;
            transition: color 0.2s;
        }
        .footer-feedback:hover { color: #b8905b; }

        /* ========== 意见反馈入口 ========== */
        .feedback-entry {
            text-align: center;
            padding: 20px 0 16px;
            font-size: 0.78rem;
            color: #90A4AE;
            cursor: pointer;
            transition: color 0.2s;
        }
        .feedback-entry:hover { color: #b8905b; }

        /* ========== 意见反馈弹窗 ========== */
        .modal-overlay-feedback {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.4);
            z-index: 99999;
        }
        .modal-overlay-feedback.show { display: flex; justify-content: center; align-items: center; }
        .modal-feedback {
            width: 92%;
            max-width: 420px;
            background: #fff;
            border-radius: 12px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.2);
            max-height: 85vh;
            overflow-y: auto;
        }
        .modal-feedback .modal-header {
            padding: 16px 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-bottom: 1px solid #f0ece6;
        }
        .modal-feedback .modal-header h3 { margin: 0; font-size: 1rem; color: #333; font-weight: 600; }
        .modal-feedback .modal-close { background: none; border: none; font-size: 1.2rem; color: #999; cursor: pointer; padding: 4px 8px; }
        .modal-feedback .modal-close:hover { color: #666; }
        .modal-feedback .modal-body { padding: 20px; }
        .modal-feedback .modal-desc { font-size: 0.88rem; color: #666; margin: 0 0 20px 0; line-height: 1.5; }
        .modal-feedback .form-label { font-size: 0.88rem; color: #333; font-weight: 600; margin-bottom: 8px; display: block; }
        .feedback-type-group { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
        .feedback-type-label { padding: 6px 14px; background: #f5f0e6; border-radius: 20px; border: 1px solid #dcd3d1; cursor: pointer; font-size: 0.85rem; color: #666; transition: all 0.2s; display: inline-flex; align-items: center; gap: 4px; }
        .feedback-type-label:hover { border-color: #b8905b; }
        .feedback-type-label input { display: none; }
        .feedback-type-label.selected { background: rgba(184,144,91,0.15); border-color: #b8905b; color: #b8905b; }
        .modal-feedback textarea { width: 100%; min-height: 120px; padding: 12px; border: 1px solid #dcd3d1; border-radius: 8px; box-sizing: border-box; outline: none; font-size: 0.92rem; line-height: 1.6; resize: vertical; background: #fafafa; transition: border-color 0.2s; font-family: inherit; }
        .modal-feedback textarea:focus { border-color: #b8905b; background: #fff; }
        .modal-feedback input[type="text"] { width: 100%; padding: 10px 12px; border: 1px solid #dcd3d1; border-radius: 8px; box-sizing: border-box; outline: none; font-size: 0.92rem; background: #fafafa; transition: border-color 0.2s; }
        .modal-feedback input[type="text"]:focus { border-color: #b8905b; background: #fff; }
        .modal-feedback .btn-submit { width: 100%; padding: 12px; background: #b8905b; color: #fff; border: none; border-radius: 8px; font-size: 0.95rem; cursor: pointer; transition: background 0.2s; margin-top: 8px; }
        .modal-feedback .btn-submit:hover { background: #a07c4c; }
        .modal-feedback .btn-submit:disabled { background: #ccc; cursor: not-allowed; }
        .feedback-result { margin-top: 12px; padding: 10px; border-radius: 8px; font-size: 0.88rem; text-align: center; display: none; }
        .feedback-result.success { background: rgba(107,142,120,0.15); color: #4a7c59; display: block; }
        .feedback-result.error { background: rgba(192,86,76,0.15); color: #c0564c; display: block; }
    

#ai-btn-fav { display: none; }
#ai-btn-fav.show { display: flex; }
#ai-btn-fav {
    position: fixed; z-index: 9997; cursor: pointer; user-select: none;
    display: flex; align-items: center; gap: 2px;
    background: linear-gradient(135deg, #5B9BD5 0%, #4485C7 100%);
    color: white; border-radius: 16px; padding: 3px 10px 3px 8px;
    font-size: 11px; font-weight: bold; letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(91,155,213,0.3);
    transition: opacity 0.2s, box-shadow 0.2s, transform 0.2s;
    width: fit-content; height: auto; line-height: 1.4;
    top: 200px; right: 16px;
}
#ai-btn-fav.show { display: flex; }
#ai-btn-fav:hover { transform: scale(1.05); box-shadow: 0 4px 12px rgba(91,155,213,0.5); }
#ai-btn-fav:active { opacity: 0.85; cursor: grabbing; }
#ai-btn-fav span:first-child { font-size: 12px; }
.ai-btn-label { font-weight: bold; font-size: 9px; letter-spacing: 0.5px; }
@media (max-width: 640px) {
    #ai-btn-fav { font-size: 10px; padding: 2px 8px 2px 6px; top: 170px; right: 10px; }
    #ai-btn-fav span:first-child { font-size: 11px; }
}
#ai-panel {
    position: fixed; top: 0; right: 0; width: 370px; height: 100vh;
    z-index: 9998; background: #fff;
    box-shadow: -4px 0 20px rgba(0,0,0,0.1);
    transform: translateX(380px);
    transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
    display: flex; flex-direction: column;
}
#ai-panel.open { transform: translateX(0); }
.ai-panel-header { padding: 16px 18px; background: linear-gradient(135deg,#5B9BD5,#4485C7); color: white; display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; }
.ai-drag-handle { display: none; }
.ai-drag-zone { display: none; }
.ai-minimize-btn { display: none; }
#ai-panel.minimized { transform: translateY(calc(100% - 52px)) !important; }
#ai-panel.minimized .ai-panel-body, #ai-panel.minimized .ai-drag-handle { display: none !important; }
#ai-panel.minimized .ai-panel-header { padding: 12px 16px; justify-content: space-between; }
.ai-panel-title { font-weight: bold; font-size: 15px; }
.ai-panel-close { cursor: pointer; font-size: 22px; opacity: .8; }
.ai-panel-close:hover { opacity: 1; }
.ai-panel-body { flex: 1; overflow-y: auto; padding: 14px; }
.ai-section { margin-bottom: 12px; }
.ai-section-label { font-size: 0.82rem; font-weight: bold; color: #666; margin-bottom: 6px; }
.ai-hint-tip { color: #aaa; font-weight: normal; font-size: 0.75rem; }
.ai-matter-input { width: 100%; border: 1px solid #ddd; border-radius: 8px; padding: 8px 10px; font-size: 0.85rem; font-family: inherit; resize: none; box-sizing: border-box; }
.ai-type-bar { display: flex; gap: 6px; }
.ai-type-btn { flex: 1; padding: 8px 6px; border: 1px solid #e0e0e0; border-radius: 8px; text-align: center; cursor: pointer; font-size: 0.85rem; font-weight: bold; background: #fff; color: #666; transition: border-color 0.2s, background 0.2s; }
.ai-type-btn:hover { border-color: #5B9BD5; }
.ai-type-btn.active { background: linear-gradient(135deg,#5B9BD5,#4485C7); color: white; border-color: transparent; }
.ai-palace-group { margin-bottom: 10px; }
.ai-palace-group-label { font-size: 0.8rem; color: #888; margin-bottom: 4px; font-weight: bold; }
.ai-jiugong { border-collapse: collapse; width: 100%; }
.ai-jiugong td { border: 1px solid #e0e0e0; padding: 6px 2px; text-align: center; cursor: pointer; transition: border-color 0.2s, background 0.2s; width: 33.33%; }
.ai-jiugong td:hover { border-color: #5B9BD5; background: #f2f7fa; }
.ai-jiugong td.active { border-color: #5B9BD5; background: linear-gradient(135deg,#5B9BD515,#4485C715); box-shadow: inset 0 0 0 1px #5B9BD5; }
.ai-jg-center { background: #f5f5f5 !important; cursor: default !important; }
.tag-num { font-size: 0.85rem; font-weight: bold; color: #333; }
.tag-info { font-size: 0.65rem; color: #999; margin-top: 2px; }
td.active .tag-num { color: #5B9BD5; }
.ai-ask-btn { width: 100%; padding: 10px 16px; border: none; border-radius: 8px; background: linear-gradient(135deg,#5B9BD5,#4485C7); color: #fff; font-size: 0.85rem; font-weight: 600; cursor: pointer; font-family: inherit; transition: box-shadow 0.2s, transform 0.2s, opacity 0.2s; box-shadow: 0 2px 6px rgba(91,155,213,0.25); }
.ai-ask-btn:hover { box-shadow: 0 4px 12px rgba(91,155,213,0.4); transform: translateY(-1px); }
.ai-ask-btn:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; transform: none; }
.ai-ask-btn-yj { background: linear-gradient(135deg,#E8C547,#D4AD2B); box-shadow: 0 2px 6px rgba(232,197,71,0.25); }
.ai-ask-btn-yj:hover { box-shadow: 0 4px 12px rgba(232,197,71,0.4); }
.ai-btn-row { display: flex; gap: 10px; margin-top: 8px; }
.ai-btn-row .ai-ask-btn { flex: 1; }
.ai-mode-switch { display: flex; gap: 12px; background: #f8f8f8; padding: 8px 12px; border-radius: 8px; border: 1px solid #eee; }
.ai-radio { font-size: 0.8rem; color: #666; cursor: pointer; display: flex; align-items: center; gap: 4px; }
.ai-radio input[type='checkbox'] { accent-color: #5B9BD5; }
.ai-result {
    background: #fff; border-radius: 8px; border: 1px solid #e0e0e0;
    padding: 14px; min-height: 100px; max-height: calc(100vh - 480px);
    overflow-y: auto; font-size: 0.9rem; line-height: 1.6;
}
.ai-hint { color: #aaa; text-align: center; padding: 20px 0; font-size: 0.85rem; }
.ai-reply { color: #333; white-space: pre-wrap; word-wrap: break-word; }
.ai-error { color: #e74c3c; padding: 10px 0; }
.ai-spinner { width: 18px; height: 18px; border: 2px solid #e0e0e0; border-top-color: #5B9BD5; border-radius: 50%; animation: ai-spin 0.6s linear infinite; display: inline-block; vertical-align: middle; margin-right: 6px; }
@keyframes ai-spin { to { transform: rotate(360deg); } }
.ai-sources { margin-top: 12px; padding-top: 10px; border-top: 1px dashed #e0e0e0; }
.ai-sources-title { font-size: 0.8rem; color: #999; margin-bottom: 6px; }
.ai-source-item { font-size: 0.75rem; color: #888; padding: 2px 0; }
.ai-copy-bar { display: flex; gap: 6px; margin-top: 10px; }
.ai-copy-btn { background: #f0f0f0; border: 1px solid #ddd; border-radius: 12px; padding: 4px 12px; font-size: 0.75rem; cursor: pointer; color: #888; transition: .2s; }
.ai-copy-btn:hover { background: #5B9BD5; color: #fff; border-color: #5B9BD5; }
/* 手机端 AI 面板适配 — 底部抽屉 */
@media (max-width: 640px) {
    #ai-btn { bottom: 80px; right: 12px; width: 44px; height: 44px; }
    #ai-btn span:first-child { font-size: 14px; }
    #ai-btn.active { display: none; }
    #ai-panel { width: 100vw; height: 100vh; top: auto; bottom: 0; left: 0; right: auto; box-shadow: 0 -4px 20px rgba(0,0,0,0.15); border-radius: 16px 16px 0 0; transform: translateY(100%); transition: transform 0.35s cubic-bezier(0.4,0,0.2,1); }
    #ai-panel.open { transform: translateY(0); right: auto; }
    .ai-drag-handle { display: block; width: 80px; height: 5px; border-radius: 3px; background: rgba(255,255,255,0.6); position: absolute; top: 10px; left: 50%; transform: translateX(-50%); cursor: ns-resize; }
    #ai-panel.open .ai-panel-header { cursor: ns-resize; }
    .ai-panel-header { position: relative; padding: 44px 16px 10px; justify-content: flex-end; }
    .ai-panel-body { padding: 10px; }
    .ai-type-btn { font-size: 0.75rem; padding: 6px 3px; }
    .tag-num { font-size: 0.75rem; }
    .ai-jiugong td { padding: 4px 1px; }
    .ai-result { max-height: calc(100vh - 300px); font-size: 0.82rem; }
    .ai-minimize-btn { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,0.2); color: #fff; font-size: 14px; cursor: pointer; margin-right: 8px; transition: .2s; }
    .ai-minimize-btn:hover { background: rgba(255,255,255,0.35); }
    .ai-matter-input { font-size: 0.8rem; }
}
