:root{--color-bg: #fdfaf2;--color-sidebar: #f5f0e1;--color-primary: #8b4513;--color-accent: #c0392b;--color-text: #2c3e50;--color-border: #dcd0b8;--color-success: #27ae60;--font-serif: "Georgia", "Times New Roman", "Noto Serif SC", serif}body{margin:0;padding:0;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-serif)}.app-container{display:flex;height:100vh;overflow:hidden}.sidebar{width:300px;background-color:var(--color-sidebar);border-right:2px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{padding:20px;border-bottom:1px solid var(--color-border);font-weight:700;font-size:1.2rem;color:var(--color-primary);display:flex;align-items:center;gap:10px}.history-list{flex:1;overflow-y:auto}.history-item{padding:15px 20px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .2s}.history-item:hover{background-color:#eee9d8}.history-item.active{background-color:#e8dfc4;border-left:4px solid var(--color-primary)}.item-q{font-weight:700;font-size:.95rem}.item-meta{font-size:.8rem;opacity:.7;margin-top:4px}.sidebar-footer{padding:15px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px;background:var(--color-sidebar)}.user-info{font-size:.85rem;color:var(--color-primary);font-weight:700;padding:5px;border-bottom:1px dashed var(--color-border);margin-bottom:5px;text-align:center}.btn-footer{padding:10px;border:1px solid var(--color-primary);background:white;color:var(--color-primary);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.9rem;transition:all .2s}.btn-footer:hover{background:var(--color-bg);transform:translateY(-1px)}.btn-logout{border-color:var(--color-accent);color:var(--color-accent)}.main-content{flex:1;padding:40px;overflow-y:auto;display:flex;flex-direction:column;align-items:center}.card{background:white;padding:30px;border-radius:4px;box-shadow:0 4px 15px #0000000d;border:1px solid var(--color-border);width:100%;max-width:900px;margin-bottom:30px;box-sizing:border-box}h1{color:var(--color-primary);font-size:2.5rem;margin-bottom:30px;letter-spacing:4px}h2{color:var(--color-primary);display:flex;align-items:center;gap:10px;margin-top:0;border-bottom:1px solid #eee;padding-bottom:15px}.form-group{display:flex;flex-direction:column;margin-bottom:20px;width:100%}.form-group label{margin-bottom:8px;font-weight:700;color:var(--color-primary);display:flex;align-items:center;gap:8px;font-size:.95rem}input,select{padding:12px;border:1px solid var(--color-border);background:#fff;font-size:1rem;border-radius:4px}.form-grid-extended{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:20px;align-items:flex-end;margin-bottom:25px;width:100%}.custom-calendar-container{position:relative;width:100%}.calendar-trigger{border:1px solid var(--color-border);border-radius:4px;padding:10px 15px;display:flex;align-items:center;gap:12px;cursor:pointer;background:white;min-height:48px;box-sizing:border-box}.calendar-trigger:hover{border-color:var(--color-primary);background:#fffdf5}.trigger-content .main-date{font-weight:700;font-size:1.05rem;color:var(--color-primary);line-height:1.2}.trigger-content .sub-lunar{font-size:.8rem;color:var(--color-accent);margin-top:2px}.calendar-popover{position:absolute;top:105%;left:0;z-index:1000;background:white;border:1px solid var(--color-primary);border-radius:8px;box-shadow:0 10px 40px #0003;width:320px;padding:15px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;border-bottom:1px solid #eee;padding-bottom:10px}.current-month{font-weight:800;color:var(--color-primary);font-size:1.1rem}.calendar-grid{display:grid!important;grid-template-columns:repeat(7,1fr)!important;gap:2px!important;width:100%!important}.grid-weekday{text-align:center;font-size:.75rem;color:#999;padding:5px 0;font-weight:700}.grid-day{aspect-ratio:1 / 1;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;border-radius:4px;cursor:pointer;border:1px solid transparent;min-height:40px}.grid-day:hover{background:#fdf5e6;border-color:var(--color-border)}.grid-day.selected{background:var(--color-primary)!important;color:#fff!important}.grid-day .solar-num{font-weight:700;font-size:.95rem}.grid-day .lunar-txt{font-size:.6rem;color:#888;margin-top:1px;white-space:nowrap}.interactive-lines-container{display:flex;flex-direction:column;gap:10px;margin-bottom:40px;width:100%}.line-entry-row{display:flex;align-items:center;gap:20px;padding:12px 15px;border:1px solid #eee;border-radius:8px;background:#fff;transition:all .2s}.active-step{border-color:var(--color-primary);background-color:#fffaf0;box-shadow:0 4px 12px #8b45131f}.line-info{display:flex;align-items:center;gap:15px;width:150px;flex-shrink:0}.line-preview-symbol{width:50px;flex-shrink:0;text-align:center;font-size:1.4rem;font-weight:700;color:var(--color-primary);background:#f5f5f5;border-radius:4px;padding:2px 0}.button-group{display:flex;gap:8px;flex:1}.val-btn{flex:1;padding:10px;border:1px solid #ddd;background:white;cursor:pointer;border-radius:4px;font-size:.9rem;transition:all .2s}.val-btn.selected{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-ai{background:linear-gradient(135deg,var(--color-primary) 0%,#a0522d 100%);color:#fff;padding:16px 45px;border:none;border-radius:50px;cursor:pointer;font-size:1.15rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 6px 20px #8b45134d;transition:all .3s}.btn-ai:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #8b451366}.btn-ai:disabled{opacity:.8;cursor:wait}.ai-status-container{display:flex;flex-direction:column;align-items:center;gap:8px}.ai-status-text{font-size:.95rem;font-weight:500;color:#ffffffe6}.ai-interpretation-card{background-color:#fff;border:1px solid var(--color-border);border-top:5px solid var(--color-primary);padding:40px;margin-top:30px;border-radius:8px;box-shadow:0 10px 30px #00000014}.markdown-body{line-height:1.8;font-size:1.05rem;color:#333}.markdown-body h3{border-bottom:1px solid #eee;padding-bottom:10px;margin-top:25px;color:var(--color-primary)}.btn-primary{background-color:var(--color-primary);color:#fff;padding:18px 30px;border:none;cursor:pointer;font-size:1.2rem;width:100%;border-radius:6px;font-weight:700}.btn-primary:disabled{background-color:#d2c4b0;cursor:not-allowed}.result-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--color-primary);padding-bottom:20px;margin-bottom:25px}.hex-name{font-size:2.2rem;font-weight:900;color:var(--color-primary)}.detailed-table{width:100%;border-collapse:collapse;margin-top:15px;border:1px solid var(--color-border)}.detailed-table th{background:#f5f0e1;color:var(--color-primary);padding:15px 10px;font-weight:800}.detailed-table td{padding:12px 10px;border-bottom:1px solid #eee;text-align:center}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.date-info-card{background:#fdfaf2;border:1px solid var(--color-border);padding:12px;border-radius:6px;display:flex;flex-direction:column;gap:8px;min-width:180px}.lunar-tag{font-size:1.1rem;font-weight:700;color:var(--color-accent);text-align:center;border-bottom:1px dashed var(--color-border);padding-bottom:5px}.gz-tags{display:flex;justify-content:space-around;gap:5px}.gz-item{display:flex;flex-direction:column;align-items:center}.gz-val{background:var(--color-primary);color:#fff;padding:2px 6px;border-radius:4px;font-size:.85rem;font-weight:700}.gz-lab{font-size:.7rem;color:#999;margin-top:2px}.rules-panel{background-color:#f9f9f9;border-style:dashed;border-width:2px}.rules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:15px}.rule-item{display:flex;justify-content:space-between;background:white;padding:8px 12px;border:1px solid #eee;border-radius:4px}.login-container{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#fdfaf2 0%,#f5f0e1 100%)}.login-card{width:100%;max-width:420px;padding:40px}.login-card h1{text-align:center;font-size:3rem;margin-bottom:40px;color:var(--color-primary)}.mobile-topbar,.bottom-tabs,.drawer-overlay,.user-panel-sheet{display:none}@media (max-width: 768px){.app-container{flex-direction:column;height:100vh;overflow:hidden}.main-content{flex:1;padding:16px 16px 72px;overflow-y:auto;align-items:stretch}.card{padding:16px}h1{font-size:1.8rem;margin-bottom:16px;letter-spacing:2px}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 16px;background-color:var(--color-sidebar);border-bottom:2px solid var(--color-border);flex-shrink:0;z-index:100}.mobile-topbar-btn{background:none;border:none;font-size:1.4rem;color:var(--color-primary);cursor:pointer;padding:8px;border-radius:4px}.mobile-topbar-title{font-weight:700;font-size:1.2rem;color:var(--color-primary);font-family:var(--font-serif);letter-spacing:3px}.sidebar{position:fixed;top:0;left:0;bottom:0;width:85vw;max-width:320px;z-index:200;transform:translate(-100%);transition:transform .3s ease;box-shadow:4px 0 20px #0003}.sidebar.sidebar-open{transform:translate(0)}.drawer-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:150}.bottom-tabs{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background-color:var(--color-sidebar);border-top:2px solid var(--color-border);z-index:100}.bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;cursor:pointer;color:var(--color-primary);font-family:var(--font-serif);font-size:.65rem}.bottom-tab:active{background:rgba(139,69,19,.08)}.user-panel-sheet{display:flex;flex-direction:column;gap:10px;position:fixed;bottom:56px;left:0;right:0;background:var(--color-bg);border-top:2px solid var(--color-border);border-radius:12px 12px 0 0;padding:20px 16px;z-index:200;box-shadow:0 -4px 20px #00000026}.user-panel-name{font-weight:700;color:var(--color-primary);text-align:center;padding-bottom:10px;border-bottom:1px dashed var(--color-border);margin-bottom:5px}.user-panel-role{font-size:.85rem;font-weight:400;color:#888}.login-card h1{font-size:2.2rem;margin-bottom:28px}.form-grid-extended{grid-template-columns:1fr;gap:16px}.calendar-popover{left:-16px;width:calc(100vw - 32px);box-sizing:border-box}.line-info{width:auto;min-width:60px}.line-preview-symbol{display:none}.line-entry-row{gap:10px;padding:10px 12px}.val-btn{min-height:48px;font-size:.85rem}.rules-grid{grid-template-columns:1fr}.login-card{padding:24px 20px}.result-header{flex-direction:column;gap:12px}.header-right{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.hex-name{font-size:1.6rem}.shen-sha-bar{flex-wrap:wrap;gap:6px 12px}.sha-divider{display:none}.btn-ai{width:100%;padding:14px 20px;border-radius:8px}.table-container{overflow-x:visible}.detailed-table,.detailed-table thead,.detailed-table tbody,.detailed-table th,.detailed-table td,.detailed-table tr{display:block;width:100%}.detailed-table thead tr{display:none}.detailed-table tbody tr{box-sizing:border-box;border:1px solid var(--color-border);border-radius:6px;margin-bottom:12px;padding:10px 12px;background:var(--color-bg);position:relative}.detailed-table tbody tr:has(.moving){border-left:4px solid var(--color-accent)}.detailed-table tbody tr.void-row{opacity:.6;background:var(--color-sidebar)}.detailed-table td{border:none;padding:4px 0;text-align:left;font-size:.9rem;display:flex;align-items:center;gap:6px}.detailed-table td:before{content:attr(data-label);color:#999;font-size:.78rem;min-width:52px;flex-shrink:0}.detailed-table td.col-idx{font-weight:700;color:var(--color-primary);font-size:1rem;border-bottom:1px solid #f0f0f0;padding-bottom:8px;margin-bottom:4px}.detailed-table td.col-idx:before{display:none}.detailed-table td.col-status{position:absolute;top:10px;right:12px;width:auto;min-width:auto;padding:2px 8px;background:#eee;border-radius:10px;font-size:.75rem}.detailed-table td.col-status:before{display:none}.detailed-table td.col-status.moving{background:var(--color-accent);color:#fff}.detailed-table td.col-change .no-change{display:none}.detailed-table td.col-change:has(.no-change){display:none}.detailed-table td.col-fu:empty{display:none}}
