.app{display:flex;min-height:100vh}.sidebar{width:220px;background:#1a1a2e;color:#fff;padding:20px 0;display:flex;flex-direction:column;gap:4px;position:fixed;top:0;left:0;bottom:0}.sidebar .logo{font-size:1.1rem;padding:12px 20px 16px;border-bottom:1px solid #333;margin-bottom:8px;display:flex;align-items:center;gap:10px}.logo-icon{font-size:1.5rem}.logo-title{font-weight:700;font-size:1.05rem}.logo-sub{font-size:.75rem;color:#888}.sidebar-footer{margin-top:auto;padding:12px 20px;border-top:1px solid #333}.sso-link{color:#6cb4ee!important;font-size:.85rem}.sidebar a{color:#aaa;text-decoration:none;padding:10px 20px;transition:all .2s;font-size:.95rem}.sidebar a:hover{background:#16213e;color:#fff}.sidebar a.active{background:#0f3460;color:#fff;font-weight:600}.content{flex:1;margin-left:220px;padding:32px}.page-title{font-size:1.5rem;margin-bottom:24px;color:#1a1a2e}.card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f;margin-bottom:16px}.btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.btn-primary{background:#0f3460;color:#fff}.btn-primary:hover{background:#16213e}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.btn-secondary{background:#eee;color:#333}.btn-secondary:hover{background:#ddd}.btn-kiro{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s;white-space:nowrap}.btn-kiro:hover{background:linear-gradient(135deg,#4f46e5,#7c3aed);transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.btn-kiro:disabled{opacity:.7;cursor:wait;transform:none;box-shadow:none}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:4px;font-weight:600;font-size:.9rem;color:#555}.form-group input,.form-group textarea,.form-group select{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem;font-family:inherit}.form-group textarea{min-height:120px;resize:vertical}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid #eee}.table th{font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.8rem;font-weight:600}.badge-block{background:#fde8e8;color:#e74c3c}.badge-warn{background:#fef3cd;color:#856404}.actions{display:flex;gap:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:12px;padding:32px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.modal h2{margin-bottom:20px}.modal .actions{margin-top:20px;justify-content:flex-end}.empty-state{text-align:center;padding:48px;color:#999}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-wide{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h2{margin:0}.rich-editor{border:1px solid #ddd;border-radius:6px;overflow:hidden}.rich-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:6px 8px;background:#f8f9fa;border-bottom:1px solid #ddd;align-items:center}.rich-btn{background:none;border:1px solid transparent;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:.85rem;font-weight:600;color:#444;min-width:28px;text-align:center;transition:all .15s}.rich-btn:hover{background:#e9ecef;border-color:#ccc}.rich-sep{width:1px;height:20px;background:#ddd;margin:0 4px}.rich-content{min-height:200px;max-height:400px;overflow-y:auto;padding:12px 16px;font-size:.95rem;line-height:1.6;outline:none}.rich-content:focus{box-shadow:inset 0 0 0 2px #0f346020}.rich-content img{max-width:100%;border-radius:4px;margin:8px 0}.editor-mode-toggle{display:flex;border:1px solid #ddd;border-radius:6px;overflow:hidden}.toggle-btn{background:#fff;border:none;padding:4px 12px;font-size:.8rem;cursor:pointer;color:#666;transition:all .15s}.toggle-btn.active{background:#0f3460;color:#fff}.toggle-btn:not(.active):hover{background:#f0f0f0}.attachment-manager{margin-top:8px}.drop-zone{border:2px dashed #ccc;border-radius:8px;padding:20px;text-align:center;color:#999;cursor:pointer;transition:all .2s;font-size:.9rem}.drop-zone:hover{border-color:#0f3460;color:#0f3460;background:#f0f4ff}.drop-zone.drag-over{border-color:#0f3460;background:#e3f2fd;color:#0f3460}.attachment-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.attachment-item{display:flex;align-items:center;gap:8px;background:#f8f9fa;border:1px solid #eee;border-radius:8px;padding:6px 10px;max-width:280px}.attachment-thumb{width:40px;height:40px;object-fit:cover;border-radius:4px;flex-shrink:0}.attachment-file{display:flex;align-items:center;justify-content:center;background:#e9ecef;font-size:1.2rem}.attachment-info{display:flex;flex-direction:column;min-width:0}.attachment-name{font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-size{font-size:.75rem;color:#999}.kiro-steps{display:flex;flex-direction:column;gap:0}.kiro-step{display:flex;gap:16px;align-items:flex-start;padding:16px 0}.kiro-step-num{width:32px;height:32px;border-radius:50%;background:#6366f1;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex-shrink:0}.kiro-step-content{flex:1}.kiro-step-title{font-weight:600;color:#333;margin-bottom:4px}.kiro-step-title code{background:#f0f0f0;padding:2px 6px;border-radius:4px;font-size:.85rem}.kiro-json{background:#1a1a2e;color:#e0e0e0;padding:16px;border-radius:8px;font-size:.82rem;overflow-x:auto;white-space:pre;margin-top:8px;line-height:1.5;max-height:250px;overflow-y:auto}.kiro-divider{text-align:center;position:relative;margin:8px 0}.kiro-divider:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#ddd}.kiro-divider span{background:#fff;padding:0 16px;position:relative;color:#999;font-size:.85rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}.login-card{background:#fff;border-radius:16px;padding:40px;width:90%;max-width:420px;box-shadow:0 20px 60px #0000004d}.login-header{text-align:center;margin-bottom:32px}.login-header h1{margin:8px 0 4px;font-size:1.5rem;color:#1a1a2e}.login-header p{color:#888;font-size:.9rem}.login-btn{width:100%;padding:12px;font-size:1rem;margin-top:8px;text-align:center;display:block;text-decoration:none}.login-error{background:#fde8e8;color:#e74c3c;padding:10px 14px;border-radius:8px;font-size:.9rem;margin-bottom:12px}.login-sso{margin-top:16px}.login-divider{text-align:center;position:relative;margin:16px 0}.login-divider:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#ddd}.login-divider span{background:#fff;padding:0 16px;position:relative;color:#999;font-size:.85rem}.sidebar-user{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:#aaa}.btn-logout{background:none;border:1px solid #555;color:#aaa;padding:4px 10px;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.btn-logout:hover{background:#e74c3c;border-color:#e74c3c;color:#fff}.btn-sso{background:linear-gradient(135deg,#232f3e,#37475a);color:#fff;padding:14px 20px;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s;display:flex;align-items:center;justify-content:center;width:100%}.btn-sso:hover{background:linear-gradient(135deg,#37475a,#4a5d73);transform:translateY(-1px);box-shadow:0 4px 16px #232f3e66}.sso-step-indicator{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:20px;padding:12px;background:#f8f9fa;border-radius:8px}.sso-step{padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:600}.sso-step.done{background:#e8f5e9;color:#2e7d32}.sso-step.active{background:#e3f2fd;color:#1565c0}.sso-step-arrow{color:#999;font-size:1.1rem}.sso-waiting-spinner{font-size:2.5rem;animation:spin 2s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sso-code-box{display:inline-flex;flex-direction:column;gap:4px;background:#f8f9fa;border:2px dashed #ddd;border-radius:8px;padding:12px 24px}.sso-code{font-size:1.8rem;font-weight:700;letter-spacing:4px;color:#1a1a2e}
