*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root{--bg: #fafafa;--bg-surface: #ffffff;--text: #1a1a1a;--text-muted: #666666;--border: #e0e0e0;--accent: #2563eb;--accent-hover: #1d4ed8;--user-bubble: #2563eb;--user-text: #ffffff;--assistant-bubble: #f0f0f0;--assistant-text: #1a1a1a;--progress-bg: #e0e0e0;--progress-fill: #2563eb;--error: #dc2626}[data-theme=dark]{--bg: #121212;--bg-surface: #1e1e1e;--text: #e0e0e0;--text-muted: #999999;--border: #333333;--accent: #3b82f6;--accent-hover: #2563eb;--user-bubble: #3b82f6;--user-text: #ffffff;--assistant-bubble: #2a2a2a;--assistant-text: #e0e0e0;--progress-bg: #333333;--progress-fill: #3b82f6;--error: #ef4444}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:var(--text);background:var(--bg)}.app{display:flex;flex-direction:column;height:100dvh;max-width:800px;margin:0 auto}.header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.header h1{font-size:1.1rem;font-weight:600}.header-actions{display:flex;align-items:center;gap:.25rem}.theme-toggle{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--text-muted);padding:.25rem}.btn{padding:.6rem 1.2rem;border:none;border-radius:.75rem;font-size:.9rem;font-weight:500;cursor:pointer;background:var(--accent);color:#fff;transition:background .15s}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.4;cursor:default}.btn-send{padding:.6rem 1rem}.btn-result{width:100%;margin-bottom:.5rem}.password-gate{display:flex;align-items:center;justify-content:center;height:100dvh}.password-form{display:flex;flex-direction:column;gap:.75rem;max-width:320px;width:100%;padding:2rem}.password-form h2{margin:0;font-size:1.2rem}.password-form p{margin:0;color:var(--text-muted);font-size:.9rem}.password-form input[type=password]{padding:.6rem .75rem;border:1px solid var(--border);border-radius:.5rem;font-size:.95rem;background:var(--bg);color:var(--text)}.password-form input[type=password]:focus{outline:2px solid var(--accent);outline-offset:-1px}.password-error{color:var(--error, #d32f2f);font-size:.85rem;margin:0}.fade-in{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.menu-container{position:relative}.menu-toggle{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--text-muted);padding:.25rem}.menu-dropdown{position:absolute;top:100%;right:0;min-width:180px;background:var(--bg-surface);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px #0000001f;z-index:100;padding:.25rem 0}.menu-item{display:block;width:100%;padding:.5rem 1rem;background:none;border:none;text-align:left;font-size:.9rem;color:var(--text);cursor:pointer}.menu-item:hover{background:var(--assistant-bubble)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease-out}.modal{background:var(--bg-surface);border-radius:.75rem;max-width:480px;width:90%;max-height:80dvh;display:flex;flex-direction:column;overflow:hidden;padding:1.5rem .75rem 0 1.5rem;box-shadow:0 8px 24px #0003}.modal-wide{max-width:600px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-right:.75rem;flex-shrink:0}.modal-header h2{font-size:1.1rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--text-muted);line-height:1}.modal-body{font-size:.95rem;line-height:1.6;color:var(--text);overflow-y:auto;padding-right:.75rem;padding-bottom:1.5rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.dimensions-intro{margin-bottom:1rem;color:var(--text-muted)}.dimensions-heading{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin:1rem 0 .5rem}.dimensions-list{display:flex;flex-direction:column;gap:.75rem}.dimension-entry dt{font-weight:500;font-size:.9rem}.dimension-entry dd{margin:.15rem 0 0;font-size:.85rem;color:var(--text-muted);line-height:1.5}.card-list{display:flex;flex-direction:column;gap:.75rem}.info-card-sm{padding:.75rem;border:1px solid var(--border);border-radius:.5rem}.info-card-sm-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.info-card-sm-name{font-weight:500;font-size:.9rem}.info-card-sm-name a{color:var(--text);text-decoration:none}.info-card-sm-name a:hover{text-decoration:underline}.info-card-sm-category{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);white-space:nowrap}.info-card-sm-desc{font-size:.8rem;color:var(--text-muted);line-height:1.5;margin-bottom:.4rem}.tag-list{display:flex;flex-wrap:wrap;gap:.3rem}.tag{display:inline-block;padding:.15rem .5rem;font-size:.7rem;font-weight:500;border-radius:1rem;background:var(--accent);color:#fff;opacity:.8}.filter-bar{margin-bottom:1rem}.filter-search{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.5rem;font-size:.85rem;font-family:inherit;background:var(--bg);color:var(--text);outline:none;margin-bottom:.5rem}.filter-search:focus{border-color:var(--accent)}.filter-tags{display:flex;flex-wrap:wrap;gap:.3rem}.filter-tag{padding:.2rem .6rem;font-size:.7rem;font-weight:500;border-radius:1rem;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;transition:all .15s}.filter-tag:hover{border-color:var(--accent);color:var(--accent)}.filter-tag-active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-empty{text-align:center;color:var(--text-muted);padding:1.5rem 0;font-size:.9rem}.chat-messages{flex:1;min-height:0;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.message{display:flex}.message-user{justify-content:flex-end}.message-assistant{justify-content:flex-start}.message-bubble{max-width:75%;padding:.6rem 1rem;border-radius:1rem;font-size:.95rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.message-user .message-bubble{background:var(--user-bubble);color:var(--user-text);border-bottom-right-radius:.25rem}.message-assistant .message-bubble{background:var(--assistant-bubble);color:var(--assistant-text);border-bottom-left-radius:.25rem}.thinking{display:flex;align-items:center;gap:.3rem;min-height:1.5rem}.dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--text-muted);animation:bounce 1.4s ease-in-out infinite}.dot:nth-child(2){animation-delay:.16s}.dot:nth-child(3){animation-delay:.32s}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.error{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;color:var(--error);font-size:.85rem;text-align:center;animation:fadeIn .3s ease-out}.error-dismiss{background:none;border:none;color:var(--error);font-size:1.1rem;cursor:pointer;padding:0 .25rem;line-height:1}.start-failed{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;color:var(--text-muted)}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;gap:1rem;padding:2rem;text-align:center;color:var(--text)}.error-boundary h2{font-size:1.3rem}.error-boundary p{color:var(--text-muted);max-width:400px}.input-area{padding:.75rem 1rem;border-top:1px solid var(--border);background:var(--bg-surface)}.input-row{display:flex;gap:.5rem;align-items:flex-end}.input{flex:1;padding:.6rem .75rem;border:1px solid var(--border);border-radius:.75rem;font-size:.95rem;font-family:inherit;line-height:1.4;resize:none;background:var(--bg);color:var(--text);outline:none}.input:focus{border-color:var(--accent)}.input:disabled{opacity:.5}.progress-bar-container{margin-top:.5rem;position:relative;height:1.25rem}.progress-bar{position:absolute;top:0;left:0;height:3px;background:var(--progress-fill);border-radius:2px;transition:width .5s ease}.progress-label{display:block;text-align:center;font-size:.75rem;color:var(--text-muted);margin-top:5px}.results-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.results{max-width:800px;margin:0 auto;padding:2rem 1rem 4rem}.results-header{text-align:center;margin-bottom:2rem}.quadrant-badge{display:inline-block;padding:.4rem 1.2rem;border-radius:2rem;background:var(--accent);color:#fff;font-weight:600;font-size:1rem;margin-bottom:.5rem;cursor:default}.quadrant-description{font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem;max-width:500px;margin-left:auto;margin-right:auto}.summary{color:var(--text-muted);font-size:1.05rem;max-width:600px;margin:0 auto}.results-section{margin-bottom:2rem}.results-section h2{font-size:1.1rem;font-weight:600;margin-bottom:1rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.dimension-row{margin-bottom:1.25rem}.dimension-label{display:flex;justify-content:space-between;margin-bottom:.3rem}.dimension-name{font-weight:500;font-size:.9rem}.dimension-value{font-weight:600;font-size:.9rem;color:var(--accent)}.bar-track{position:relative;height:8px;background:var(--progress-bg);border-radius:4px;overflow:hidden}.bar-fill-skill{position:absolute;top:0;height:100%;background:var(--accent);border-radius:4px;animation:growBar .8s ease-out}@keyframes growBar{0%{width:0!important}}.bar-center-line{position:absolute;left:50%;top:-2px;width:1px;height:12px;background:var(--text-muted)}.bar-fill-attitude{position:absolute;top:0;height:100%;background:var(--accent);border-radius:4px;animation:growBar .8s ease-out}.attitude-poles{display:flex;justify-content:space-between;margin-bottom:.2rem}.pole-label{font-size:.7rem;color:var(--text-muted)}.dimension-comment{font-size:.85rem;color:var(--text-muted);margin-top:.3rem}.dimension-sentiment{font-size:.8rem;color:var(--text-muted);font-style:italic;margin-top:.2rem}.minimap{max-width:250px;margin:0 auto 2rem}.minimap-grid{position:relative;width:100%;aspect-ratio:1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;border:1px solid var(--border);border-radius:.5rem;overflow:hidden}.minimap-quadrant{display:flex;align-items:center;justify-content:center;font-size:.55rem;color:var(--text-muted);text-align:center;padding:.25rem}.minimap-axis-h{position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border)}.minimap-axis-v{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border)}.minimap-dot{position:absolute;width:12px;height:12px;background:var(--accent);border:2px solid var(--bg);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px var(--accent)}.what-helps{font-size:.95rem;line-height:1.6}.info-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;margin-bottom:1rem}.info-card h3{font-size:1rem;margin-bottom:.25rem}.info-description{font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.info-text{font-size:.9rem;line-height:1.6;white-space:pre-wrap;margin-bottom:.75rem}.btn-copy{padding:.35rem .75rem;font-size:.8rem}.resources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.resource-card{background:var(--bg-surface);border:1px solid var(--border);border-top:3px solid;border-radius:.75rem;padding:1rem}.resource-type{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.resource-title{font-size:.9rem;font-weight:500;margin:.3rem 0}.resource-title a{color:var(--text);text-decoration:none}.resource-title a:hover{text-decoration:underline}.resource-reason{font-size:.8rem;color:var(--text-muted);line-height:1.5}.results-footer{text-align:center;margin-top:2rem}
