:root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--bg: #0b0e16;--panel: #151823;--panel-alt: #1b1f2c;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .15);--text: #f4f6ff;--muted: rgba(244, 246, 255, .7);--accent: #7cd0ff;--accent-strong: #3aa9ff;--danger: #ff7f9f}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,rgba(39,61,130,.4),transparent 60%),var(--bg);color:var(--text);min-height:100vh}body.mode-chat{padding:1.5rem 1.5rem 8rem}body.mode-chat .consent-panel{display:none}body.mode-oauth{min-height:100vh;height:100vh;display:flex;align-items:stretch;overflow-y:hidden;justify-content:center;background:#e6f3eb;--panel: #f8fbf8;--panel-alt: #ffffff;--border: rgba(16, 33, 24, .1);--border-strong: rgba(16, 33, 24, .2);--text: #102118;--muted: rgba(16, 33, 24, .65);--accent: #00b16b;--accent-strong: #009657}body.mode-oauth .chat-panel{display:none}main.app-shell{width:min(1200px,100%);margin:0 auto}body.mode-oauth main.app-shell{width:min(640px,100%);min-height:100vh;padding:2.5rem 1rem;display:flex;align-items:stretch;justify-content:center;background:transparent}.chat-panel{background:var(--panel);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:0 20px 50px #03050d8c}.chat-panel{display:flex;flex-direction:column;gap:1rem;padding-bottom:1rem}header{margin-bottom:1.25rem}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:var(--accent);margin:0 0 .3rem}.lede{color:var(--muted);margin:.25rem 0 0;line-height:1.4}.chat-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.chat-label{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.chat-header h1{margin:.1rem 0 0;font-size:1.25rem}.chat-status{display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.35rem .85rem}.status-dot{width:10px;height:10px;border-radius:50%;background:#61ffcb;box-shadow:0 0 6px #61ffcb}.chat-status .status-text{font-size:.9rem}.chat-status.active .status-dot{background:#7cd0ff;box-shadow:0 0 8px #7cd0ffcc}.chat-status.thinking .status-dot{background:#ffd35a;box-shadow:0 0 6px #ffd35acc;animation:status-pulse 1s ease-in-out infinite}@keyframes status-pulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.chat-log{border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;background:var(--panel-alt);flex:1}.message{display:flex;gap:.75rem;margin-bottom:1.25rem}.message:last-child{margin-bottom:0}.message.user{flex-direction:row-reverse}.avatar{width:42px;height:42px;border-radius:12px;background:#ffffff1a;display:grid;place-items:center;font-weight:600;font-size:.85rem}.message.user .avatar{background:#82dbf733}.bubble{background:#ffffff0a;border:1px solid var(--border);padding:.85rem 1rem;border-radius:1rem;line-height:1.45;flex:1}.message.user .bubble{background:#82dbf714;border-color:#82dbf759}.message.bot.whisper .bubble{font-size:.9rem;color:var(--muted);border-style:dashed}.message.thinking .bubble{display:inline-flex;flex-direction:column;gap:.35rem;min-height:44px}.typing-indicator{display:inline-flex;align-items:center;gap:.3rem}.typing-indicator .dot{width:8px;height:8px;border-radius:50%;background:#ffffff80;animation:typing-bounce .9s ease-in-out infinite}@keyframes typing-bounce{0%{transform:translateY(0);opacity:.4}50%{transform:translateY(-4px);opacity:1}to{transform:translateY(0);opacity:.4}}.message.connecting .bubble{display:inline-flex;align-items:center;gap:.25rem;min-height:44px}.connect-indicator{display:flex;align-items:center;gap:.4rem}.connect-indicator span{display:block}.connect-indicator .bar{width:40px;height:6px;border-radius:999px;background:#ffffff26;overflow:hidden}.connect-indicator .bar:after{content:"";display:block;width:100%;height:100%;background:var(--accent);transform:translate(-100%);animation:bar-slide 1s ease-in-out infinite}@keyframes bar-slide{0%{transform:translate(-100%)}50%{transform:translate(-10%)}to{transform:translate(100%)}}.connect-form{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(720px,calc(100% - 2.5rem));padding:.6rem .8rem .85rem;margin:0;background:#07090ff2;border-radius:1rem 1rem 0 0;border:1px solid rgba(255,255,255,.05);border-bottom:none;box-shadow:0 -6px 30px #00000059;z-index:30}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.input-shell{display:flex;align-items:center;gap:.6rem;background:#0d111cf2;border:1px solid rgba(255,255,255,.08);border-radius:.85rem;padding:.6rem .6rem .6rem .85rem}.connect-form textarea{flex:1;background:transparent;border:none;color:var(--text);font-size:.95rem;font-family:inherit;line-height:1.35;resize:none;min-height:56px;max-height:140px;padding:0}.connect-form textarea:focus{outline:none}.send-button{width:44px;height:44px;border-radius:999px;border:none;background:var(--accent);color:#041b29;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.send-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #7cd0ff66}.send-button:disabled{opacity:.6;cursor:not-allowed}.send-icon{display:block;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:12px solid currentColor;margin-left:2px}.hint.input-hint{text-align:center;margin:.35rem 0 0;font-size:.8rem;color:var(--muted)}button{border:none;border-radius:999px;padding:.75rem 1.5rem;font-weight:600;font-size:.95rem;cursor:pointer;background:var(--accent-strong);color:#00111d;transition:transform .15s ease,box-shadow .15s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 30px #82dbf759}button:disabled{opacity:.6;cursor:not-allowed}button.ghost{background:transparent;color:var(--text);border:1px solid var(--border-strong)}.hint{color:var(--muted);margin:0}.fatigue-indicator{border:1px solid var(--border);border-radius:.75rem;padding:.75rem 1rem;color:var(--muted);margin-bottom:1rem;font-size:.9rem}body.mode-oauth header,body.mode-oauth .fatigue-indicator{flex-shrink:0;background:#fff;border-color:#1021181f}.consent-stage{border:1px solid var(--border);border-radius:1rem;padding:1.5rem;background:var(--panel-alt);height:80vh;display:flex;flex-direction:column;gap:1rem}body.mode-oauth .consent-stage{min-height:0;flex:1;border:none;background:transparent;padding:2rem 0;justify-content:center;align-items:center;width:100%}.consent-header h3{margin:0}.consent-header p{margin:.35rem 0 0;color:var(--muted)}.consent-form{display:flex;flex-direction:column;gap:1.25rem;flex:1}.oauth-form{flex:1;display:flex;align-items:center;justify-content:center;width:100%}.oauth-dialog.line-dialog{width:min(420px,100%);background:#f7f9fb;border-radius:2rem;padding:0;box-shadow:0 25px 50px #07100c59;border:1px solid rgba(8,18,12,.08);overflow:hidden;color:#102118;height:90vh;max-height:90vh;display:flex;flex-direction:column}.line-hero{background:linear-gradient(135deg,#00b900,#00d95a);color:#fff;display:flex;align-items:center;gap:.65rem;padding:.9rem 1.2rem}.line-hero-icon{width:48px;height:48px;border-radius:14px;background:#fff3;display:grid;place-items:center;font-weight:700;font-size:1.2rem}.line-hero-text{display:flex;flex-direction:column;gap:.2rem;flex:1}.line-hero-text strong{font-size:1.05rem}.line-hero-text span{font-size:.85rem;opacity:.9}.line-hero-badge{border:1px solid rgba(255,255,255,.6);border-radius:999px;padding:.15rem .75rem;font-size:.7rem;font-weight:600}.line-body{flex:1;display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.25rem 1.25rem;overflow-y:auto}.line-summary{margin:0;font-weight:600;line-height:1.4}.line-account{margin:0;font-size:.9rem;color:#102118bf}.line-permissions{border-top:1px solid rgba(9,27,18,.08);padding-top:.75rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.line-permissions h4{margin:0 0 .5rem;font-size:.95rem;color:#102118bf}.line-scope-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.line-scope-list li{position:relative;padding-left:1.75rem;min-height:1.5rem}.line-scope-list li:before{content:"";position:absolute;left:0;top:.2rem;width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid #00c853;background:#fff;box-shadow:inset 0 0 0 3px #00c853}.line-actions{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem 1.5rem;border-top:1px solid rgba(9,27,18,.08)}.line-actions .ghost{border-color:#10211826;color:#102118cc}.line-actions button[type=submit]{background:#00b900;color:#fff;font-size:1rem;box-shadow:0 10px 25px #00b90059}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.service-grid.single{grid-template-columns:minmax(240px,1fr)}.service-card{border:1px solid var(--border);border-radius:1rem;padding:1rem;display:flex;gap:.75rem;background:#ffffff05;cursor:pointer}.service-card input[type=checkbox]{width:20px;height:20px;margin-top:.5rem}.service-details{flex:1}.service-title-row{display:flex;gap:.75rem;align-items:flex-start}.service-icon{width:36px;height:36px;border-radius:14px;border:1px solid var(--border);display:grid;place-items:center;font-weight:700}.service-title-row strong{display:block}.service-title-row p{margin:.25rem 0 0;color:var(--muted);font-size:.9rem}.scope-list{margin:.75rem 0 0;padding:0 0 0 1rem;color:var(--muted);font-size:.85rem;line-height:1.3}.consideration{font-size:.85rem;color:var(--muted)}.error-text{color:var(--danger);margin:0;font-size:.9rem}.consent-controls{display:flex;gap:.75rem;flex-wrap:wrap}.review-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;border:1px solid var(--border);border-radius:.75rem}.review-list li{padding:.85rem 1rem;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.4rem}.review-list li:last-child{border-bottom:none}.review-list span{color:var(--muted);font-size:.9rem}.round-complete,.complete-panel,.redirect-screen{border:1px solid var(--border);border-radius:1rem;padding:1.25rem;background:#ffffff08;display:flex;flex-direction:column;gap:.75rem}.redirect-message{margin:0;text-align:center;color:var(--text);font-size:1rem}.summary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.summary-list li{display:flex;flex-direction:column;gap:.2rem;border:1px dashed var(--border);border-radius:.75rem;padding:.75rem 1rem}.summary-list span{color:var(--muted);font-size:.85rem}.info{margin:0;color:var(--muted)}@media(max-width:960px){.consent-panel{order:-1}}
