@import url('shared.css');

/* ===== 侧边栏布局 ===== */
.sidebar{width:220px;height:100%;background:#fff;color:#666;display:flex;flex-direction:column;transition:width .3s;flex-shrink:0;overflow:hidden;border-right:1px solid #E8E8E8}
.sidebar.collapsed{width:64px}
.sidebar-logo{height:50px;display:flex;align-items:center;padding:0 16px;background:#fff;white-space:nowrap;overflow:hidden;border-bottom:1px solid #E8E8E8}
.sidebar-logo .logo-icon{width:32px;height:32px;background:#00B8A9;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;flex-shrink:0}
.sidebar-logo .logo-text{margin-left:10px;font-size:15px;font-weight:700;color:#333}
.sidebar.collapsed .logo-text{display:none}
.sidebar-nav{flex:1;overflow-y:auto;padding:8px 0}
.nav-group{margin-bottom:4px}
.nav-group-title{padding:8px 20px 4px;font-size:12px;color:#00B8A9;font-weight:600;letter-spacing:.5px}
.sidebar.collapsed .nav-group-title{display:none}
.nav-item{display:flex;align-items:center;padding:0 20px;height:40px;cursor:pointer;transition:all .2s;white-space:nowrap;overflow:hidden;border-left:3px solid transparent}
.nav-item:hover{background:#E6F9F7;color:#00B8A9}
.nav-item.active{background:#E6F9F7;color:#00B8A9;border-left-color:#00B8A9;font-weight:500}
.nav-item .nav-icon{width:20px;text-align:center;font-size:16px;flex-shrink:0}
.nav-item .nav-label{margin-left:10px;font-size:14px}
.sidebar.collapsed .nav-label{display:none}
.sidebar-toggle{height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-top:1px solid #E8E8E8;transition:background .2s;font-size:12px;color:#999}
.sidebar-toggle:hover{background:var(--color-bg-page)}

/* ===== 顶部导航栏 ===== */
.header{height:auto;background:#fff;border-bottom:1px solid #E4E7ED;display:flex;flex-direction:column;flex-shrink:0}
.header-top{height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 20px}
.breadcrumb{display:flex;align-items:center;gap:6px;color:#999;font-size:13px}
.breadcrumb .current{color:#333;font-weight:500}
.header-right{display:flex;align-items:center;gap:16px}
.header-right .search-box{position:relative}
.header-right .search-input{width:200px;height:32px;padding:0 12px 0 32px;border:1px solid #E4E7ED;border-radius:4px;outline:none;font-size:13px}
.header-right .search-input:focus{border-color:#00B8A9}
.header-right .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#999;font-size:14px}
.user-info{display:flex;align-items:center;gap:8px;cursor:pointer}
.user-avatar{width:30px;height:30px;background:#00B8A9;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:500}

/* ===== 通用搜索输入框 ===== */
.search-input{width:200px;height:32px;padding:0 12px;border:1px solid #E4E7ED;border-radius:4px;outline:none;font-size:13px}
.search-input:focus{border-color:#00B8A9}
.filter-select{height:32px;padding:0 32px 0 12px;border:1px solid #E4E7ED;border-radius:4px;outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23909399' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;background-size:12px;cursor:pointer;font-size:13px;color:#333;-webkit-appearance:none;appearance:none}
.filter-select:focus{border-color:#00B8A9;box-shadow:0 0 0 2px rgba(0,184,169,0.1)}

/* 待办中心特有样式 */
.todo-source-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}
.todo-source-workflow{background:#E8F4FD;color:#1890FF}
.todo-source-manual{background:#FFF3E0;color:#E65100}
.todo-source-system{background:#F3E8FF;color:#7C3AED}

.todo-biz-type{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#666}
.todo-biz-type .biz-icon{font-size:14px}

.todo-task-title{font-size:14px;color:#333;font-weight:500;margin-bottom:2px}
.todo-task-summary{font-size:12px;color:#999;margin-top:2px}

.todo-action-btns{display:flex;gap:8px;flex-wrap:wrap}

.todo-inline-loading{display:inline-flex;align-items:center;gap:4px;color:#1890FF;font-size:12px}
.todo-inline-loading::before{content:'';width:12px;height:12px;border:2px solid #1890FF;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* 通知列表样式 */
.notification-list{display:flex;flex-direction:column}
.notification-item{display:flex;align-items:flex-start;gap:12px;padding:16px;border-bottom:1px solid var(--color-border-light);cursor:pointer;transition:background .15s}
.notification-item:hover{background:var(--color-bg-page)}
.notification-item.unread{background:#F8FAFF}
.notification-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0}
.notification-dot.blue{background:#1890FF}
.notification-dot.green{background:#52C41A}
.notification-dot.red{background:#FF4D4F}
.notification-dot.gray{background:#999}
.notification-content{flex:1;min-width:0}
.notification-title{font-size:14px;color:#333;font-weight:500;margin-bottom:4px;line-height:1.4}
.notification-meta{font-size:12px;color:#999;margin-bottom:4px}
.notification-desc{font-size:12px;color:#666;line-height:1.5}
.notification-action{margin-top:8px}
.notification-time{font-size:12px;color:#999;white-space:nowrap;flex-shrink:0}

/* 审批历史 timeline */
.approval-timeline{padding:0;list-style:none}
.approval-timeline-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--color-border-light);position:relative}
.approval-timeline-item:last-child{border-bottom:none}
.timeline-dot{width:10px;height:10px;border-radius:50%;border:2px solid #ddd;margin-top:5px;flex-shrink:0;position:relative}
.timeline-dot.done{background:#52C41A;border-color:#52C41A}
.timeline-dot.current{background:#1890FF;border-color:#1890FF;box-shadow:0 0 0 4px rgba(24,144,255,.2)}
.timeline-dot.pending{background:#fff;border-color:#ddd}
.timeline-content{flex:1}
.timeline-title{font-size:14px;color:#333}
.timeline-meta{font-size:12px;color:#999;margin-top:2px}
.timeline-comment{font-size:12px;color:#666;margin-top:4px;padding:8px;background:#F5F6FA;border-radius:4px}

/* 空状态 */
.empty-state-todo{text-align:center;padding:80px 0;color:#c0c4cc}
.empty-state-todo .empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}
.empty-state-todo .empty-text{font-size:16px;color:#999}
.empty-state-todo .empty-desc{font-size:13px;color:#c0c4cc;margin-top:8px}
