:root{--bg: #fafafc;--surface: #ffffff;--ink: #18181b;--muted: #6b7280;--border: #e5e7eb;--purple: #7c3aed;--purple-dark: #6d28d9;--purple-light: #f3eeff;--purple-line: #e4d9fb;--success: #16a34a;--danger: #dc2626;--font-body: "Inter", system-ui, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", monospace;--shadow-sm: 0 1px 2px rgba(24, 24, 27, .04), 0 1px 1px rgba(24, 24, 27, .03);--shadow-md: 0 8px 24px rgba(76, 29, 149, .08), 0 2px 6px rgba(24, 24, 27, .04);--radius: 12px}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3{font-family:var(--font-body);font-weight:700;letter-spacing:-.02em;margin:0}input,select,button{font-family:var(--font-body);font-size:15px}button{border-radius:8px;border:1px solid var(--border);background:var(--surface);padding:10px 16px;cursor:pointer;color:var(--ink);font-weight:500;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}button:hover{background:#f4f4f5}.btn-primary{background:linear-gradient(135deg,var(--purple) 0%,var(--purple-dark) 100%);color:#fff;border:none;font-weight:600;box-shadow:0 4px 14px #7c3aed47}.btn-primary:hover{filter:brightness(1.06)}button:disabled{opacity:.6;cursor:default}input,select{border-radius:8px;border:1px solid var(--border);padding:11px 14px;background:var(--surface);color:var(--ink)}input::placeholder{color:#a1a1aa}input:focus,select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-light)}.form-column{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:8px}.row input{flex:1;min-width:0}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px}.auth-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px}.auth-card{position:relative;width:380px;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);padding:32px 30px}.logo-mark{border-radius:9px;background:linear-gradient(135deg,var(--purple) 0%,var(--purple-dark) 100%);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.auth-card h2{font-size:21px;margin-bottom:4px;text-align:center}.auth-subtitle{color:var(--muted);margin-bottom:22px;font-size:14px;text-align:center}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13px;font-weight:600;color:var(--ink)}.auth-footer-link{text-align:center;font-size:13px;color:var(--muted);margin:18px 0 0}.header{height:60px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px}.hamburger-btn{display:none}.sidebar-collapse-btn{margin-left:auto;flex-shrink:0}.icon-btn{background:none;border:none;width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:17px;padding:0;position:relative}.notif-dot{position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:999px;background:var(--accent, #dc2626);border:2px solid var(--surface)}.icon-btn:hover{background:#f4f4f5;color:var(--ink)}.user-menu{position:absolute;top:calc(100% + 8px);right:0;width:200px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);padding:12px;z-index:50}.app-root{display:flex;height:100vh}.main-column{flex:1;min-width:0;display:flex;flex-direction:column;height:100%}.sidebar{width:232px;flex-shrink:0;height:100%;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 14px;overflow-y:auto;transition:width .18s ease,padding .18s ease}.sidebar.collapsed{width:72px;padding:20px 12px}.sidebar.collapsed .nav-item{justify-content:center;padding:10px}.sidebar.collapsed .sidebar-header{justify-content:center}.sidebar.collapsed .sidebar-collapse-btn{margin-left:0}.sidebar-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:2px 6px 16px;border-bottom:1px solid var(--border)}.sidebar-brand{font-weight:800;font-size:15px;line-height:1.2;letter-spacing:-.01em}.sidebar-tenant{display:inline-block;margin-top:3px;font-size:10.5px;font-weight:700;letter-spacing:.02em;color:var(--purple-dark);background:var(--purple-light);padding:1px 7px;border-radius:999px;line-height:1.5}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav-section-label{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#a1a1aa;padding:12px 12px 6px}.sidebar-nav>.nav-section-label:first-child{padding-top:2px}.sidebar-divider{height:1px;background:var(--border);margin:8px 6px 2px}.nav-item{position:relative;display:flex;align-items:center;gap:11px;background:none;border:none;color:var(--muted);text-align:left;padding:8px 10px;border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.nav-item:hover,.nav-item.group-open{background:#f4f4f6;color:var(--ink)}.nav-item.active{background:var(--purple-light);color:var(--purple-dark);font-weight:700;box-shadow:inset 3px 0 0 var(--purple)}.nav-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;flex-shrink:0;color:inherit;transition:background .15s ease,color .15s ease}.nav-item.active .nav-icon{background:linear-gradient(135deg,var(--purple) 0%,var(--purple-dark) 100%);color:#fff;box-shadow:0 2px 6px #7c3aed59}.nav-subnav{display:flex;flex-direction:column;gap:1px;margin:2px 0 4px 25px;padding-left:12px;border-left:1px solid var(--border)}.nav-subnav .nav-item{padding:7px 10px;font-size:12.5px;font-weight:500}.nav-subnav .nav-item.active{background:var(--purple-light);color:var(--purple-dark);font-weight:700;box-shadow:none}.sidebar.collapsed .nav-section-label,.sidebar.collapsed .sidebar-divider{display:none}.content{flex:1;min-width:0;padding:32px 40px;overflow-y:auto}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px;flex-wrap:wrap}.chat-drawer-backdrop{position:fixed;right:0;bottom:0;left:0;top:60px;background:#18181b40;z-index:30}.chat-drawer{position:fixed;top:60px;right:0;bottom:0;width:360px;max-width:100%;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-md);transform:translate(100%);transition:transform .2s ease;z-index:40;display:flex;flex-direction:column;padding:16px}.chat-drawer.open{transform:translate(0)}@media (max-width: 780px){.content{padding:20px 16px}.sidebar{width:72px;padding:20px 10px}.sidebar .sidebar-brand-block,.sidebar .nav-item .nav-label{display:none}.sidebar .sidebar-header{justify-content:center}.sidebar .sidebar-collapse-btn{margin-left:0}.sidebar .nav-item{justify-content:center;padding:10px}.sidebar .nav-section-label,.sidebar .sidebar-divider,.sidebar .nav-chevron,.sidebar .nav-subnav{display:none}}.checklist-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.template-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:6px}.template-tile-grid .checklist-card{margin-top:0;flex-direction:column;align-items:stretch}.template-tile-grid .checklist-card-right{justify-content:flex-start}.checklist-card-title{font-weight:700;font-size:15px}.checklist-card-main{display:flex;align-items:center;gap:14px;min-width:0}.checklist-card-icon{width:40px;height:40px;border-radius:10px;background:var(--purple-light);color:var(--purple-dark);display:flex;align-items:center;justify-content:center;flex-shrink:0}.checklist-card-meta{min-width:0}.checklist-card-subtitle{color:var(--muted);font-size:13px;margin-top:2px;overflow-wrap:break-word;white-space:normal;line-height:1.4}.checklist-card-right{display:flex;align-items:center;flex-wrap:wrap;gap:8px;row-gap:6px;flex-shrink:0;color:var(--muted)}.checklist-card-clickable{width:100%;text-align:left;cursor:pointer}.checklist-card-clickable:hover{border-color:var(--purple-line);box-shadow:0 6px 20px #7c3aed1f,var(--shadow-sm);transform:translateY(-1px)}.badge-count{font-size:12px;font-weight:600;color:var(--purple-dark);background:var(--purple-light);border-radius:999px;padding:4px 10px;white-space:nowrap}.checklist-item-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px}@media (max-width: 480px){.checklist-item-row{flex-direction:column;align-items:stretch}}.empty-state{border:1.5px dashed var(--border);border-radius:var(--radius);padding:40px 24px;text-align:center;color:var(--muted);margin-top:12px;background:var(--surface)}.chat-box{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);padding:14px;height:50vh;max-height:400px;min-height:200px;overflow-y:auto;box-shadow:var(--shadow-sm)}.status-pill{font-size:12px;font-weight:600;border-radius:999px;padding:4px 12px;background:#f4f4f5;color:var(--muted)}.status-pill.connected{color:var(--success);background:#ecfdf3}input[type=checkbox]{accent-color:var(--purple);width:16px;height:16px;cursor:pointer}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.form-section-title{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:6px}.form-section-hint{color:var(--muted);font-size:13px;margin:8px 0 0}.scope-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 640px){.scope-columns{grid-template-columns:1fr}}.scope-search-wrap{position:relative}.scope-search-wrap input{width:100%;padding-left:32px}.scope-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.scope-list{display:flex;flex-direction:column;gap:2px;max-height:170px;overflow-y:auto;margin-top:8px}.scope-list label{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:14px;cursor:pointer}.scope-list label:hover{background:var(--bg)}.scope-all-label{display:flex;align-items:center;gap:8px;font-weight:600;padding:6px 8px;border-radius:6px;background:var(--purple-light);color:var(--purple-dark)}.item-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px}.item-card-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.item-badge{font-size:11px;font-weight:700;color:var(--purple-dark);background:var(--purple-light);border-radius:999px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pill-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);white-space:nowrap;cursor:pointer}.item-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:6px}.item-tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px;aspect-ratio:1 / 1;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.item-tile:hover{transform:translateY(-2px);box-shadow:0 6px 20px #7c3aed1f,var(--shadow-sm);border-color:var(--purple-line)}.item-tile-top{display:flex;align-items:center;justify-content:space-between}.item-tile-label{font-weight:700;font-size:14px;line-height:1.35;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.item-tile-footer{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.ai-page{display:flex;flex-direction:column;height:calc(100vh - 110px);max-width:880px;margin:0 auto}.ai-hero{position:relative;overflow:hidden;border-radius:var(--radius);background:linear-gradient(135deg,var(--purple) 0%,var(--purple-dark) 100%);padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:var(--shadow-md);flex-shrink:0}.ai-hero-decor{position:absolute;top:-40px;right:-30px;width:160px;height:160px;border-radius:50%;background:#ffffff14;pointer-events:none}.ai-hero-decor:after{content:"";position:absolute;top:30px;left:10px;width:70px;height:70px;border-radius:50%;background:#ffffff14}.ai-hero-content{display:flex;align-items:center;gap:14px;z-index:1}.ai-hero-icon{width:40px;height:40px;border-radius:12px;background:#ffffff2e;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.ai-reset-btn{z-index:1;display:flex;align-items:center;gap:6px;background:#ffffff24;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:13px;padding:8px 12px;white-space:nowrap}.ai-reset-btn:hover{background:#ffffff38}.ai-chat-body{flex:1;overflow:hidden;display:flex;flex-direction:column;margin-top:16px}.ai-message-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:4px 4px 8px}.ai-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px}.ai-empty-icon{width:56px;height:56px;border-radius:16px;background:var(--purple-light);color:var(--purple);display:flex;align-items:center;justify-content:center}.ai-suggestion-grid{display:grid;grid-template-columns:repeat(2,minmax(200px,1fr));gap:10px;max-width:620px}.ai-suggestion-chip{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:13.5px;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease}.ai-suggestion-chip:hover{border-color:var(--purple-line);box-shadow:var(--shadow-sm);transform:translateY(-1px);background:var(--purple-light)}.ai-msg-row{display:flex;align-items:flex-start;gap:10px;max-width:100%}.ai-msg-row.user{flex-direction:row-reverse}.ai-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.ai-avatar.assistant{background:linear-gradient(135deg,var(--purple) 0%,var(--purple-dark) 100%);color:#fff}.ai-avatar.user{background:var(--surface);border:1px solid var(--border);color:var(--muted)}.ai-bubble{max-width:72%;border-radius:14px;padding:12px 15px;font-size:14px;line-height:1.5}.ai-bubble.user{background:linear-gradient(135deg,var(--purple) 0%,var(--purple-dark) 100%);color:#fff;border-top-right-radius:4px}.ai-bubble.assistant{background:var(--surface);border:1px solid var(--border);color:var(--ink);border-top-left-radius:4px;box-shadow:var(--shadow-sm)}.ai-bubble.assistant.error{border-color:#fca5a5;background:#fef2f2;color:#991b1b}.ai-bubble-text p{white-space:pre-wrap}.ai-step-timeline{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.ai-step{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}.ai-step.active{color:var(--purple-dark);font-weight:600}.ai-step.error{color:#dc2626}.ai-step-icon{display:flex;align-items:center;justify-content:center;width:15px}.ai-step.done .ai-step-icon{color:var(--success)}.ai-dots{display:inline-block;min-width:14px;letter-spacing:1px}.ai-tools-used{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.ai-tool-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--purple-dark);background:var(--purple-light);border-radius:999px;padding:3px 9px}.ai-input-bar{display:flex;align-items:flex-end;gap:10px;margin-top:12px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);flex-shrink:0}.ai-input{flex:1;border:none;resize:none;padding:8px 6px;font-size:14px;max-height:120px;min-height:24px;outline:none;font-family:var(--font-body)}.ai-send-btn{width:40px;height:40px;border-radius:10px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.header-ai-btn{color:var(--purple);background:var(--purple-light)}.header-ai-btn:hover{background:var(--purple-line);color:var(--purple-dark)}.btn-note-primary{background:linear-gradient(135deg,#f59e0b,#b45309);color:#fff;border:none;font-weight:600;box-shadow:0 4px 14px #f59e0b4d}.btn-note-primary:hover{filter:brightness(1.06)}.notes-new-btn{display:flex;align-items:center;gap:6px;justify-content:center;margin-bottom:12px;padding:10px 14px;border-radius:10px}.notes-sidebar{width:208px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 10px;align-self:flex-start}.notes-section-label{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#a1a1aa;padding:10px 10px 6px}.notes-sidebar>.notes-section-label:first-of-type{padding-top:2px}.notes-sidebar-divider{height:1px;background:var(--border);margin:8px 4px 2px}.notes-nav-item{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;color:var(--muted);text-align:left;padding:8px 10px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.notes-nav-item:hover{background:#f4f4f6;color:var(--ink)}.notes-nav-item.active{background:#fef3c7;color:#b45309;box-shadow:inset 3px 0 #f59e0b}.notes-nav-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;flex-shrink:0;color:inherit;transition:background .15s ease,color .15s ease}.notes-nav-item.active .notes-nav-icon{background:linear-gradient(135deg,#f59e0b,#b45309);color:#fff}.notes-folder-row{display:flex;align-items:center;gap:2px}.notes-folder-delete{background:transparent;border:none;color:#a1a1aa;padding:4px;border-radius:6px;flex-shrink:0}.notes-folder-delete:hover{background:#fee2e2;color:#dc2626}.note-card{box-shadow:0 1px 2px #0f172a0a;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.note-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a17;border-color:var(--purple)}.note-card-snippet{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
