*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--red: #c8102e;--red-dark: #a00d24;--red-light: #fde8ec;--yellow: #f4c430;--yellow-light: #fffbea;--green: #1a7a4a;--blue: #1a56a0;--gray-50: #f8f9fa;--gray-100: #f1f3f5;--gray-200: #e9ecef;--gray-400: #ced4da;--gray-600: #6c757d;--gray-800: #343a40;--white: #ffffff;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow: 0 4px 16px rgba(0,0,0,.1);--shadow-lg: 0 8px 32px rgba(0,0,0,.14);--radius: 12px;--radius-sm: 8px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--gray-100);color:var(--gray-800);min-height:100vh}.app-shell{display:flex;flex-direction:column;height:100vh;max-width:960px;margin:0 auto;background:var(--white);box-shadow:var(--shadow-lg)}.header{background:var(--red);color:#fff;padding:14px 20px;display:flex;align-items:center;gap:12px;flex-shrink:0}.header-logo{font-size:28px}.header-title{font-size:18px;font-weight:700;letter-spacing:.3px}.header-sub{font-size:12px;opacity:.85;margin-top:2px}.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}.ruc-badge{background:#fff3;border:1px solid rgba(255,255,255,.35);border-radius:20px;padding:4px 12px;font-size:13px;font-weight:600}.btn-logout{background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff;border-radius:6px;padding:5px 12px;font-size:12px;cursor:pointer;transition:background .15s}.btn-logout:hover{background:#ffffff26}.chat-area{flex:1;overflow-y:auto;padding:20px 20px 8px;display:flex;flex-direction:column;gap:14px}.chat-area::-webkit-scrollbar{width:6px}.chat-area::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:3px}.msg{display:flex;gap:10px;max-width:88%;animation:fadeIn .25s ease}.msg.bot{align-self:flex-start}.msg.user{align-self:flex-end;flex-direction:row-reverse}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.msg-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;margin-top:2px}.msg.bot .msg-avatar{background:var(--red)}.msg.user .msg-avatar{background:var(--blue)}.msg-bubble{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:0 var(--radius) var(--radius) var(--radius);padding:10px 14px;font-size:14px;line-height:1.55}.msg.user .msg-bubble{background:var(--blue);color:#fff;border-color:var(--blue);border-radius:var(--radius) 0 var(--radius) var(--radius)}.msg-time{font-size:11px;opacity:.55;margin-top:4px}.notif-list{display:flex;flex-direction:column;gap:10px;margin-top:6px}.notif-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:12px 14px;cursor:pointer;transition:box-shadow .15s,transform .1s;border-left:4px solid var(--gray-400)}.notif-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.notif-card.urgent{border-left-color:var(--red);background:#fff8f8}.notif-card.read{opacity:.65}.notif-card-header{display:flex;align-items:flex-start;gap:8px}.notif-icon{font-size:18px;flex-shrink:0;margin-top:1px}.notif-subject{font-weight:600;font-size:13px;color:var(--gray-800);flex:1;line-height:1.4}.notif-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;white-space:nowrap;flex-shrink:0}.notif-badge.urgent{background:var(--red);color:#fff}.notif-badge.new{background:var(--blue);color:#fff}.notif-badge.read{background:var(--gray-200);color:var(--gray-600)}.notif-meta{display:flex;gap:14px;margin-top:6px;font-size:12px;color:var(--gray-600)}.notif-meta span{display:flex;align-items:center;gap:4px}.notif-body{margin-top:8px;font-size:12px;color:var(--gray-600);line-height:1.5;border-top:1px solid var(--gray-200);padding-top:8px}.summary-card{background:linear-gradient(135deg,#fff8f9,#fef9ec);border:1px solid #f0c0c8;border-radius:var(--radius);padding:16px;margin-top:4px}.summary-title{font-weight:700;font-size:14px;color:var(--red);margin-bottom:8px;display:flex;gap:6px;align-items:center}.stat-box.pending .stat-num{color:var(--yellow)}.input-area{border-top:1px solid var(--gray-200);padding:14px 16px;display:flex;gap:10px;align-items:center;flex-shrink:0;background:var(--white)}.input-area input{flex:1;border:1.5px solid var(--gray-200);border-radius:22px;padding:10px 16px;font-size:14px;outline:none;transition:border-color .15s}.input-area input:focus{border-color:var(--red)}.btn-send{background:var(--red);color:#fff;border:none;width:42px;height:42px;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;flex-shrink:0}.btn-send:hover{background:var(--red-dark);transform:scale(1.05)}.btn-send:disabled{background:var(--gray-400);cursor:not-allowed;transform:none}.quick-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 10px}.btn-quick{background:var(--gray-50);border:1.5px solid var(--gray-200);border-radius:20px;padding:6px 14px;font-size:12px;cursor:pointer;transition:all .15s;color:var(--gray-800);white-space:nowrap}.btn-quick:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#c8102e,#8b0d20 60%,#1a1a2e);padding:20px}.login-card{background:#fff;border-radius:16px;padding:40px 36px;width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:28px}.login-logo{font-size:52px}.login-title{font-size:22px;font-weight:800;color:var(--red);margin-top:8px}.login-sub{font-size:13px;color:var(--gray-600);margin-top:4px}.form-group{margin-bottom:18px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--gray-800);margin-bottom:6px}.form-input{width:100%;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);padding:11px 14px;font-size:14px;outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--red);box-shadow:0 0 0 3px #c8102e1a}.form-input.error{border-color:var(--red)}.btn-primary{width:100%;background:var(--red);color:#fff;border:none;border-radius:var(--radius-sm);padding:13px;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s,transform .1s;margin-top:6px}.btn-primary:hover{background:var(--red-dark);transform:translateY(-1px)}.btn-primary:disabled{background:var(--gray-400);cursor:not-allowed;transform:none}.demo-link{display:block;text-align:center;margin-top:14px;font-size:12px;color:var(--gray-600);cursor:pointer;text-decoration:underline}.demo-link:hover{color:var(--red)}.error-msg{background:#fde8ec;border:1px solid #f5c2cc;color:var(--red);border-radius:6px;padding:10px 12px;font-size:13px;margin-bottom:14px}.typing-dots{display:flex;gap:4px;align-items:center;padding:4px 0}.typing-dots span{width:8px;height:8px;border-radius:50%;background:var(--gray-400);animation:bounce 1.2s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}.modal{background:#fff;border-radius:var(--radius);padding:28px;width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.modal h3{font-size:17px;font-weight:700;margin-bottom:16px}.modal-actions{display:flex;gap:10px;margin-top:18px}.btn-secondary{flex:1;border:1.5px solid var(--gray-200);background:#fff;border-radius:var(--radius-sm);padding:10px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:var(--gray-50)}.btn-accent{flex:1;background:var(--red);color:#fff;border:none;border-radius:var(--radius-sm);padding:10px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.btn-accent:hover{background:var(--red-dark)}.btn-accent:disabled{background:var(--gray-400);cursor:not-allowed}.header{background:linear-gradient(135deg,#0d1b3e,#1a2d5a);color:#fff;padding:0 20px;display:flex;align-items:center;gap:12px;flex-shrink:0;height:64px;border-bottom:3px solid var(--red)}.header-logo-box{width:36px;height:36px;background:var(--red);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.header-title{font-size:19px;font-weight:800;letter-spacing:-.2px}.header-sub{font-size:10px;opacity:.65;margin-top:1px;letter-spacing:.2px}.sync-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px #22c55e;flex-shrink:0}.btn-home{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:6px;padding:5px 12px;font-size:12px;cursor:pointer;text-decoration:none;display:flex;align-items:center;gap:5px}.btn-home:hover{background:#fff3}.login-logo-box{width:64px;height:64px;background:linear-gradient(135deg,var(--red) 0%,var(--red-dark) 100%);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 14px}.login-brand{font-size:10px;color:var(--gray-400);margin-top:4px;letter-spacing:.3px}.divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--gray-400);font-size:12px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--gray-200)}.back-home{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;font-size:12px;color:var(--gray-400);text-decoration:none;transition:color .15s}.back-home:hover{color:#0d1b3e}.summary-card{background:linear-gradient(135deg,#f8f9ff,#fff8f9);border:1px solid #e0e7ff;border-radius:var(--radius);padding:16px;margin-top:4px}.summary-title{font-weight:700;font-size:14px;color:#0d1b3e;margin-bottom:8px}.summary-text{font-size:13px;line-height:1.6;color:var(--gray-800);white-space:pre-line}.stats-row{display:flex;gap:10px;margin-top:12px}.stat-box{flex:1;background:#fff;border-radius:8px;padding:10px;text-align:center;border:1px solid var(--gray-200)}.stat-num{font-size:22px;font-weight:800}.stat-label{font-size:11px;color:var(--gray-600);margin-top:2px}.stat-box.urgent .stat-num{color:var(--red)}.stat-box.pending .stat-num{color:#d97706}.stat-box.total .stat-num{color:var(--green)}@media (max-width: 600px){.app-shell{max-width:100%}.msg{max-width:96%}.login-card{padding:28px 20px}.quick-actions{padding:0 10px 10px}.header-sub{display:none}}
