*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#000;--surface:#0a0a0a;--surface-2:#141414;--surface-3:#1a1a1a;--border:#262626;--border-strong:#333;--primary:#1e78c2;--primary-hover:#3a90d8;--primary-pressed:#155a96;--primary-soft:#1e78c21f;--primary-soft-strong:#1e78c22e;--text:#fff;--text-secondary:#c4c4c4;--text-muted:#5e5e5e;--success:#22c55e;--warning:#f59e0b;--error:#db0202;--error-soft:#db02021a;--error-border:#db020259;--radius-sm:4px;--radius:6px;--radius-lg:8px;--font-sans:Arial, "Microsoft JhengHei", "微軟正黑體", sans-serif;--font-mono:"SF Mono", "Menlo", "Consolas", "Roboto Mono", monospace;--duration:.15s;--easing:cubic-bezier(.4, 0, .2, 1)}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6}.layout{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.header{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#000000d9;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;width:100%;max-width:1280px;margin:0 auto;display:flex}.header-inner h1{color:var(--text);letter-spacing:.02em;align-items:center;gap:12px;font-size:14px;font-weight:600;display:flex}.header-inner h1 .brand-mark{width:26px;height:26px;color:var(--primary);display:block}.header-inner h1 .brand-ds{letter-spacing:.14em;color:var(--text);border:1px solid var(--border-strong);border-radius:3px;margin-left:4px;padding:2px 6px;font-size:11px;font-weight:700}.header-status{color:var(--text-muted);align-items:center;gap:6px;margin-left:16px;font-size:12px;display:flex}.header-status .dot{background:var(--success);border-radius:50%;width:6px;height:6px;display:inline-block}.header-right{align-items:center;gap:12px;display:flex}.logout-btn{border:1px solid var(--border);height:32px;color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;transition:background-color var(--duration) var(--easing), border-color var(--duration) var(--easing), color var(--duration) var(--easing);background:0 0;align-items:center;gap:8px;padding:0 14px;font-size:13px;display:inline-flex}.logout-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.main{flex:1;width:100%;max-width:1280px;margin:0 auto}.login-container{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:56px 24px;display:flex;position:relative;overflow:hidden}.login-container:before{content:"";pointer-events:none;background-image:linear-gradient(90deg,#ffffff05 1px,#0000 1px),linear-gradient(#ffffff05 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 60%,#000 35%,#0000 75%);mask-image:radial-gradient(60% 60%,#000 35%,#0000 75%)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:420px;padding:36px;position:relative}.login-card h1{letter-spacing:.02em;justify-content:center;align-items:center;gap:10px;margin-bottom:8px;font-size:20px;font-weight:600;display:flex}.login-card h1 .brand-mark{width:32px;height:32px;color:var(--primary)}.login-card p{color:var(--text-secondary);text-align:center;margin-bottom:24px;font-size:13px;line-height:1.6}.login-card form{flex-direction:column;gap:18px;display:flex}.login-card input{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);transition:border-color var(--duration) var(--easing), background-color var(--duration) var(--easing);outline:none;padding:12px 14px;font-size:14px;line-height:1.5;display:block}.login-card input:hover{border-color:var(--border-strong)}.login-card input:focus{border-color:var(--primary);background:#111}.login-card input::placeholder{color:var(--text-muted)}.login-card .login-foot{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);letter-spacing:.04em;margin-top:24px;padding-top:20px;font-size:11px}.error-text{color:var(--error);align-items:flex-start;gap:6px;margin-top:8px;font-size:13px;display:flex}button{border-radius:var(--radius);cursor:pointer;white-space:nowrap;height:40px;transition:background-color var(--duration) var(--easing), border-color var(--duration) var(--easing), color var(--duration) var(--easing);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:500;display:inline-flex}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:not(.logout-btn):not(.preset-btn):not(.toggle-btn){background:var(--primary);color:#fff}button:not(.logout-btn):not(.preset-btn):not(.toggle-btn):hover:not(:disabled){background:var(--primary-hover)}button:not(.logout-btn):not(.preset-btn):not(.toggle-btn):active:not(:disabled){background:var(--primary-pressed)}button:disabled{opacity:.5;cursor:not-allowed}.query-input-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.query-input-card form{flex-direction:column;gap:14px;display:flex}.query-input-card textarea{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);resize:vertical;min-height:96px;font-size:14px;line-height:1.5;font-family:var(--font-sans);transition:border-color var(--duration) var(--easing), background-color var(--duration) var(--easing);outline:none;padding:12px 14px;display:block}.query-input-card textarea:hover{border-color:var(--border-strong)}.query-input-card textarea:focus{border-color:var(--primary);background:#111}.query-input-card textarea::placeholder{color:var(--text-muted)}.preset-questions{border-top:1px dashed var(--border);flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:16px;display:flex}.preset-label{letter-spacing:.16em;color:var(--text-muted);text-transform:uppercase;align-self:center;margin-right:4px;font-size:11px}.preset-btn{background:var(--surface-2);border:1px solid var(--border);height:32px;color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration) var(--easing), color var(--duration) var(--easing), background-color var(--duration) var(--easing);border-radius:20px;align-items:center;padding:0 14px;font-size:13px;display:inline-flex}.preset-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary-hover);background:var(--primary-soft)}.analysis-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.analysis-card.empty{text-align:center;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px}.analysis-card h2{letter-spacing:.04em;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:14px;font-size:14px;font-weight:600}.analysis-card h3{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin:28px 0 14px;font-size:11px;font-weight:500}.analysis-card section:first-of-type h3{margin-top:0}.conclusion-section{margin-bottom:0}.conclusion-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);padding:16px 18px;font-size:14px;line-height:1.7}.causes-list{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.causes-list li{border-bottom:1px solid var(--border);color:var(--text);align-items:flex-start;gap:14px;padding:14px 16px;font-size:14px;line-height:1.55;display:flex}.causes-list li:last-child{border-bottom:none}.data-table{border:1px solid var(--border);border-radius:var(--radius);border-collapse:separate;border-spacing:0;width:100%;font-size:14px;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:11px 16px}.data-table th{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);background:#0d0d0d;font-size:11px;font-weight:500}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--surface-2)}.data-table .highlight-row td{background:var(--error-soft);color:#ff6b6b}.data-table .highlight-row:hover td{background:#db020229}.recommendations-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.recommendations-list li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);gap:14px;padding:14px 16px;font-size:14px;line-height:1.55;display:flex}.rec-icon{border-radius:var(--radius-sm);background:var(--primary-soft);width:28px;height:28px;color:var(--primary-hover);flex:none;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.data-table-card{background:0 0}.toggle-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration) var(--easing), background-color var(--duration) var(--easing), color var(--duration) var(--easing);justify-content:space-between;align-items:center;padding:14px 18px;font-size:13px;font-weight:500;display:flex}.toggle-btn:hover{border-color:var(--border-strong);color:var(--text)}.json-block{background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);border-top:none;margin-top:8px;padding:16px 18px;font-size:13px;line-height:1.5;overflow-x:auto}.json-block code{color:var(--text-secondary);font-family:var(--font-mono)}.history-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.history-sidebar h3{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:16px 18px 12px;font-size:11px;font-weight:500}.history-list{flex-direction:column;list-style:none;display:flex}.history-item{border-bottom:1px solid var(--border);cursor:pointer;transition:background-color var(--duration) var(--easing);padding:14px 16px 14px 18px;display:block;position:relative}.history-item:last-child{border-bottom:none}.history-item:hover{background:var(--surface-2)}.history-item.is-active{background:var(--primary-soft)}.history-item.is-active:before{content:"";background:var(--primary);width:2px;position:absolute;top:0;bottom:0;left:0}.history-item.is-active .history-question{color:#fff}.history-question{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.history-time{color:var(--text-muted);letter-spacing:.04em;margin-top:6px;font-size:11px;display:block}.history-empty{color:var(--text-muted);text-align:center;padding:24px 0;font-size:13px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-block{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.skeleton-line{background:linear-gradient(90deg,#161616 0%,#222 50%,#161616 100%) 0 0/200% 100%;border-radius:4px;height:14px;animation:1.5s linear infinite shimmer}.app-grid{grid-template-columns:1fr 320px;align-items:start;gap:24px;padding:24px;display:grid}.main-column{flex-direction:column;gap:20px;min-width:0;display:flex}.error-banner{background:var(--error-soft);border:1px solid var(--error-border);border-radius:var(--radius);color:#ff8a8a;justify-content:space-between;align-items:flex-start;gap:14px;padding:12px 16px;font-size:13px;display:flex}.error-banner strong{color:#ff5b5b;font-weight:600}.app-footer{border-top:1px solid var(--border);color:var(--text-muted);letter-spacing:.04em;justify-content:space-between;padding:14px 24px;font-size:11px;display:flex}@media (width<=1280px){.app-grid{grid-template-columns:1fr 260px}}@media (width<=720px){.app-grid{grid-template-columns:1fr;padding:16px}.header{height:52px;padding:0 16px}.header-inner h1{font-size:13px}.header-status{display:none}.main{padding:0}.login-card{padding:28px 24px}.history-sidebar{order:-1}}
