@charset "UTF-8";.login-page{min-height:100vh;background-color:#fff;display:flex;align-items:center;justify-content:center}.login-container{width:100%;max-width:280px;padding:0 16px}.login-header{text-align:center;margin-bottom:24px}.login-logo{max-width:120px;max-height:45px;margin:0 auto 12px;object-fit:contain}.login-title{font-size:14px;font-weight:600;color:#37352f;margin:0 0 2px;letter-spacing:-.01em}.login-subtitle{font-size:12px;color:#787774;margin:0}.form-group{margin-bottom:10px}.form-label{display:block;font-size:11px;font-weight:500;color:#37352f;margin-bottom:4px}.form-input{width:100%;height:28px;padding:0 8px;font-size:12px;color:#37352f;background-color:#fff;border:1px solid #e3e2e0;border-radius:4px;outline:none;transition:border-color .1s,box-shadow .1s}.form-input::placeholder{color:#b4b4b0}.form-input:hover{border-color:#d3d2cf}.form-input:focus{border-color:#89b929;box-shadow:0 0 0 2px #89b92926}.form-input:disabled{background-color:#f7f6f3;color:#9b9a97}.email-input-wrapper{display:flex;align-items:center;gap:0}.email-input-wrapper .email-prefix-input{flex:1;border-radius:4px 0 0 4px;border-right:none}.email-domain{height:28px;padding:0 8px;font-size:11px;font-weight:500;color:#787774;background-color:#f7f6f3;border:1px solid #e3e2e0;border-left:none;border-radius:0 4px 4px 0;display:flex;align-items:center;white-space:nowrap;box-sizing:border-box}.password-wrapper{position:relative}.password-wrapper .form-input{padding-right:28px}.password-toggle{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#9b9a97;cursor:pointer;border-radius:3px}.password-toggle:hover{background-color:#f1f1ef;color:#37352f}.password-toggle svg{width:14px;height:14px}.login-options{display:flex;align-items:center;justify-content:space-between;margin-top:12px;margin-bottom:12px;padding:0 2px}.toggle-option{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-label{font-size:11px;color:#787774;line-height:1}.toggle-switch{position:relative;width:28px;height:16px;padding:0;background-color:#d3d2cf;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s ease;flex-shrink:0}.toggle-switch.active{background-color:#89b929}.toggle-knob{position:absolute;top:2px;left:2px;width:12px;height:12px;background-color:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 2px #00000026}.toggle-switch.active .toggle-knob{transform:translate(12px)}.error-message{display:flex;align-items:flex-start;gap:4px;padding:8px 10px;margin-bottom:10px;font-size:11px;color:#e03e3e;background-color:#fbe4e4;border-radius:4px}.error-message svg{flex-shrink:0;width:12px;height:12px;margin-top:1px}.login-button{width:100%;height:28px;margin-top:12px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:#fff;background-color:#89b929;border:none;border-radius:4px;cursor:pointer;transition:background-color .1s}.login-button:hover:not(:disabled){background-color:#7aa824}.login-button:active:not(:disabled){background-color:#6b941f}.login-button:disabled{background-color:#c4dc94;cursor:not-allowed}.loading-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.login-help{margin-top:16px;text-align:center;font-size:11px}.login-help span{color:#9b9a97}.login-help a{color:#89b929;text-decoration:none;margin-left:4px}.login-help a:hover{text-decoration:underline}.login-footer{margin-top:24px;text-align:center}.login-footer p{font-size:10px;color:#b4b4b0;margin:0}@media (prefers-color-scheme: dark){.login-page{background-color:#191919}.login-logo,.login-title{color:#ffffffcf}.login-subtitle{color:#ffffff71}.form-label{color:#ffffffcf}.form-input{color:#ffffffcf;background-color:#252525;border-color:#3f3f3f}.form-input::placeholder{color:#ffffff40}.form-input:hover{border-color:#4f4f4f}.form-input:focus{border-color:#a0d636;box-shadow:0 0 0 2px #89b92940}.form-input:disabled{background-color:#2f2f2f;color:#ffffff40}.email-domain{color:#ffffff71;background-color:#2f2f2f;border-color:#3f3f3f}.toggle-label{color:#ffffff71}.toggle-switch{background-color:#4f4f4f}.toggle-switch.active{background-color:#a0d636}.toggle-knob{background-color:#e0e0e0}.password-toggle{color:#ffffff71}.password-toggle:hover{background-color:#2f2f2f;color:#ffffffcf}.error-message{color:#ff7369;background-color:#3d2625}.login-button{background-color:#89b929}.login-button:hover:not(:disabled){background-color:#9dcc3a}.login-button:disabled{background-color:#89b929;opacity:.5}.login-help span{color:#ffffff40}.login-help a{color:#a0d636}.login-footer p{color:#ffffff40}}@media (max-width: 480px){.login-container{max-width:100%;padding:0 12px}.login-header{margin-bottom:20px}.login-footer{margin-top:20px}}.app-footer{background:var(--color-bg-secondary);border-top:1px solid var(--color-border);padding:32px 24px 24px;margin-top:auto}.footer-container{max-width:1200px;margin:0 auto}.footer-logo-section{display:flex;align-items:center;gap:12px;margin-bottom:20px}.footer-logo{height:28px;width:auto;margin-top:-4px}.footer-company-name{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0}.footer-info-section{margin-bottom:16px}.footer-info-row{display:flex;flex-wrap:wrap;gap:24px}.footer-info-item{display:flex;align-items:center;gap:8px}.info-label{font-size:12px;color:var(--color-text-tertiary);font-weight:500}.info-value{font-size:13px;color:var(--color-text-secondary)}.info-link{color:var(--color-primary);text-decoration:none;transition:color .15s ease}.info-link:hover{color:var(--color-primary-hover);text-decoration:underline}.footer-address-section{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;padding-top:16px;border-top:1px solid var(--color-border)}.footer-address{display:flex;align-items:flex-start;gap:12px}.address-label{font-size:11px;font-weight:600;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:2px 8px;border-radius:4px;flex-shrink:0;min-width:60px;text-align:center}.address-value{font-size:12px;color:var(--color-text-secondary);line-height:1.5}.footer-copyright{padding-top:16px;border-top:1px solid var(--color-border);text-align:center}.footer-copyright p{font-size:11px;color:var(--color-text-tertiary);margin:0}@media (max-width: 768px){.app-footer{padding:24px 16px 20px}.footer-info-row{flex-direction:column;gap:12px}.footer-address{flex-direction:column;gap:4px}.address-label{align-self:flex-start}}.notification-bell-wrapper{position:relative;margin-right:8px}.notification-bell-btn{position:relative;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#787774;cursor:pointer;border-radius:4px}.notification-bell-btn:hover{background-color:#f1f1ef;color:#37352f}.layout.dark .notification-bell-btn{color:#9b9a97}.layout.dark .notification-bell-btn:hover{background-color:#333;color:#fff}.notification-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background-color:#e03e3e;color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center;border-radius:8px}.notification-panel{position:absolute;top:100%;right:0;margin-top:4px;width:340px;max-height:480px;background-color:#fff;border:1px solid #e3e2e0;border-radius:8px;box-shadow:0 4px 16px #0000001a;z-index:200;display:flex;flex-direction:column;overflow:hidden}.layout.dark .notification-panel{background-color:#252525;border-color:#3f3f3f;box-shadow:0 4px 16px #0000004d}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e3e2e0}.layout.dark .notification-panel-header{border-bottom-color:#3f3f3f}.notification-panel-title{font-size:13px;font-weight:600;color:#37352f}.layout.dark .notification-panel-title{color:#ffffffcf}.notification-mark-all{background:none;border:none;font-size:11px;color:var(--color-primary, #89b929);cursor:pointer;padding:2px 6px;border-radius:4px}.notification-mark-all:hover{background-color:#f1f1ef}.layout.dark .notification-mark-all:hover{background-color:#333}.notification-panel-body{overflow-y:auto;flex:1}.notification-empty{padding:32px 14px;text-align:center;font-size:12px;color:#9b9a97}.notification-item{position:relative;padding:10px 14px;cursor:pointer;border-bottom:1px solid #f1f1ef;transition:background-color .1s}.notification-item:last-child{border-bottom:none}.notification-item:hover{background-color:#f7f6f3}.layout.dark .notification-item{border-bottom-color:#333}.layout.dark .notification-item:hover{background-color:#2f2f2f}.notification-item.unread{background-color:#f0f7e4}.layout.dark .notification-item.unread{background-color:#2a3320}.notification-item.unread:before{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:6px;height:6px;background-color:var(--color-primary, #89b929);border-radius:50%}.notification-item-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.notification-type-badge{font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px;background-color:#e3e2e0;color:#37352f}.layout.dark .notification-type-badge{background-color:#3f3f3f;color:#ffffffcf}.notification-type-badge.approval{background-color:#e8f0fe;color:#1a73e8}.layout.dark .notification-type-badge.approval{background-color:#1a3a5c;color:#8ab4f8}.notification-type-badge.support{background-color:#fce8e6;color:#d93025}.layout.dark .notification-type-badge.support{background-color:#5c1a1a;color:#f28b82}.notification-type-badge.schedule{background-color:#e6f4ea;color:#137333}.layout.dark .notification-type-badge.schedule{background-color:#1a3d2a;color:#81c995}.notification-type-badge.project{background-color:#fef7e0;color:#b06000}.layout.dark .notification-type-badge.project{background-color:#4a3000;color:#fdd663}.notification-type-badge.system{background-color:#f3e8fd;color:#7b1fa2}.layout.dark .notification-type-badge.system{background-color:#3a1a50;color:#ce93d8}.notification-type-badge.todo{background-color:#89b9291a;color:#89b929}.layout.dark .notification-type-badge.todo{background-color:#89b92926;color:#a0d636}.notification-time{font-size:10px;color:#9b9a97}.notification-item-title{font-size:12px;font-weight:500;color:#37352f;line-height:1.4}.layout.dark .notification-item-title{color:#ffffffcf}.notification-item-content{font-size:11px;color:#787774;margin-top:2px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.layout.dark .notification-item-content{color:#9b9a97}.notification-delete-btn{position:absolute;top:8px;right:8px;width:20px;height:20px;display:none;align-items:center;justify-content:center;background:none;border:none;color:#9b9a97;cursor:pointer;border-radius:3px;padding:0}.notification-item:hover .notification-delete-btn{display:flex}.notification-delete-btn:hover{background-color:#e3e2e0;color:#e03e3e}.layout.dark .notification-delete-btn:hover{background-color:#3f3f3f;color:#e03e3e}@media (max-width: 480px){.notification-panel{width:calc(100vw - 20px);right:-40px}}.messenger-panel{position:fixed;top:48px;right:0;width:380px;height:calc(100vh - 48px);background:var(--color-bg-primary, #fff);border-left:1px solid var(--color-border, #e3e2e0);box-shadow:-4px 0 20px #00000014;z-index:800;display:flex;flex-direction:column}.msg-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--color-border);flex-shrink:0;min-height:48px}.msg-header-title{display:flex;align-items:center;gap:8px;flex:1}.msg-header-title h3{font-size:15px;font-weight:700;margin:0;color:var(--color-text-primary)}.msg-online-count{font-size:11px;color:#22c55e;font-weight:500}.msg-header-actions{display:flex;gap:2px}.msg-header-actions button{width:30px;height:30px;border:none;background:none;cursor:pointer;color:var(--color-text-tertiary);border-radius:6px;display:flex;align-items:center;justify-content:center}.msg-header-actions button:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.msg-back{border:none;background:none;cursor:pointer;color:var(--color-text-secondary);padding:6px;border-radius:6px;display:flex;align-items:center}.msg-back:hover{background:var(--color-bg-secondary)}.msg-header-room-info{flex:1}.msg-room-name{font-size:14px;font-weight:600;color:var(--color-text-primary);display:block}.msg-room-members-text{font-size:11px;color:var(--color-text-tertiary)}.msg-search{display:flex;align-items:center;gap:6px;padding:8px 14px;border-bottom:1px solid var(--color-border);flex-shrink:0}.msg-search svg{color:var(--color-text-tertiary);flex-shrink:0}.msg-search input{flex:1;border:none;background:none;outline:none;font-size:12px;color:var(--color-text-primary);font-family:inherit}.msg-search input::placeholder{color:var(--color-text-tertiary)}.msg-search button{border:none;background:none;cursor:pointer;color:var(--color-text-tertiary);font-size:12px}.msg-tabs{display:flex;border-bottom:1px solid var(--color-border);flex-shrink:0}.msg-tabs button{flex:1;padding:9px;border:none;background:none;font-size:12px;font-weight:600;color:var(--color-text-tertiary);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:4px}.msg-tabs button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.msg-tabs button:hover{background:var(--color-bg-secondary)}.msg-tab-badge{min-width:16px;height:16px;border-radius:8px;background:var(--color-primary);color:#fff;font-size:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}.msg-tab-count{font-size:10px;color:var(--color-text-tertiary);font-weight:400}.msg-list{flex:1;overflow-y:auto}.msg-empty{padding:48px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.msg-empty-icon{font-size:36px}.msg-empty p{font-size:12px;color:var(--color-text-tertiary);margin:0}.msg-empty button{font-size:11px;color:var(--color-primary);background:none;border:1px solid var(--color-primary);border-radius:4px;padding:5px 10px;cursor:pointer}.msg-room-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .1s}.msg-room-item:hover{background:var(--color-bg-secondary)}.msg-room-item.has-unread{background:#89b92908}.msg-room-avatar-wrap{position:relative;flex-shrink:0}.msg-room-avatar{width:40px;height:40px;border-radius:12px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600}.msg-room-status{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;background:#d1d5db;border:2px solid var(--color-bg-primary)}.msg-room-status.online{background:#22c55e}.msg-room-info{flex:1;min-width:0}.msg-room-top{display:flex;align-items:center;gap:4px}.msg-room-title{font-size:13px;font-weight:600;color:var(--color-text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-room-member-count{font-size:10px;color:var(--color-text-tertiary);background:var(--color-bg-secondary);border-radius:8px;padding:1px 5px}.msg-room-time{font-size:10px;color:var(--color-text-tertiary);flex-shrink:0}.msg-room-preview{font-size:11px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.msg-preview-name{font-weight:600}.msg-no-msg{color:var(--color-text-tertiary);font-style:italic}.msg-unread{min-width:18px;height:18px;border-radius:9px;background:var(--color-primary);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;flex-shrink:0}.msg-contact-group{margin-bottom:2px}.msg-contact-dept{font-size:11px;font-weight:700;color:var(--color-text-tertiary);padding:12px 14px 4px;display:flex;align-items:center;gap:6px}.msg-dept-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.msg-dept-count{font-weight:400;font-size:10px;margin-left:auto}.msg-contact-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;transition:background .1s}.msg-contact-item:hover{background:var(--color-bg-secondary)}.msg-contact-avatar-wrap{position:relative;flex-shrink:0}.msg-contact-avatar{width:32px;height:32px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.msg-contact-status-dot{position:absolute;bottom:0;right:0;width:8px;height:8px;border-radius:50%;background:#d1d5db;border:2px solid var(--color-bg-primary)}.msg-contact-status-dot.online{background:#22c55e}.msg-contact-info{flex:1;min-width:0}.msg-contact-name-row{display:flex;align-items:center;gap:4px}.msg-contact-name{font-size:12px;font-weight:600;color:var(--color-text-primary)}.msg-contact-pos,.msg-contact-status-text{font-size:10px;color:var(--color-text-tertiary)}.msg-contact-status-text.online{color:#22c55e}.msg-chat{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.msg-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#89b9291a;border:2px dashed var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--color-primary);border-radius:8px;margin:8px}.msg-messages{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.msg-date-divider{display:flex;align-items:center;gap:12px;margin:16px 0 8px}.msg-date-divider:before,.msg-date-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.msg-date-divider span{font-size:10px;font-weight:600;color:var(--color-text-tertiary);white-space:nowrap}.msg-bubble-wrap{display:flex;gap:6px;margin-bottom:1px}.msg-bubble-wrap.mine{flex-direction:row-reverse}.msg-bubble-wrap.group-start{margin-top:8px}.msg-avatar{width:28px;height:28px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;align-self:flex-start;margin-top:18px;overflow:hidden}.msg-avatar img,.msg-room-avatar img,.msg-contact-avatar img,.msg-group-member-avatar img{width:100%;height:100%;object-fit:cover;display:block}.msg-room-avatar,.msg-contact-avatar,.msg-group-member-avatar{overflow:hidden}.msg-avatar-spacer{width:28px;flex-shrink:0}.msg-bubble-col{display:flex;flex-direction:column;max-width:75%;min-width:0}.msg-sender-row{display:flex;align-items:center;gap:4px;margin-bottom:2px;padding-left:2px}.msg-sender-name{font-size:11px;font-weight:600;color:var(--color-text-secondary)}.msg-sender-dept{font-size:10px;color:var(--color-text-tertiary)}.msg-bubble-row{display:flex;align-items:flex-end;gap:4px}.msg-bubble-row.mine{flex-direction:row-reverse}.msg-bubble{padding:8px 12px;border-radius:14px;font-size:13px;line-height:1.5;color:var(--color-text-primary);background:var(--color-bg-secondary);word-break:break-word}.msg-bubble.mine{background:var(--color-primary);color:#fff}.msg-bubble.media{padding:4px;background:transparent!important}.msg-bubble-wrap.other .msg-bubble{border-bottom-left-radius:4px}.msg-bubble-wrap.other.group-start .msg-bubble{border-top-left-radius:14px}.msg-bubble-wrap.mine .msg-bubble{border-bottom-right-radius:4px}.msg-bubble-wrap.mine.group-start .msg-bubble{border-top-right-radius:14px}.msg-text{white-space:pre-wrap}.msg-time{font-size:9px;color:var(--color-text-tertiary);flex-shrink:0;align-self:flex-end;line-height:1;padding-bottom:2px}.msg-time.left{order:-1}.msg-read{font-size:9px;color:var(--color-text-tertiary);align-self:flex-end;padding-bottom:2px;white-space:nowrap}.msg-read.all-read{color:#22c55e}.msg-bubble-row.mine{flex-wrap:wrap}.msg-bubble-row.mine .msg-read{order:10;margin-right:auto}.msg-image{max-width:260px;max-height:300px;border-radius:8px;cursor:pointer;display:block;object-fit:contain;background:var(--color-bg-tertiary)}.msg-image:hover{opacity:.85}.msg-bubble.media{padding:4px;background:transparent;border:none;overflow:hidden}.msg-bubble.mine.media{background:transparent}.msg-bubble.media .msg-image{border-radius:10px}.msg-file-link{display:flex;align-items:center;gap:8px;text-decoration:none;padding:8px 12px;background:var(--color-bg-secondary);border-radius:10px;border:1px solid var(--color-border);min-width:180px}.msg-bubble.mine .msg-file-link{background:#ffffff26;border-color:#fff3}.msg-file-icon{font-size:24px;flex-shrink:0}.msg-file-info{flex:1;display:flex;flex-direction:column;min-width:0}.msg-file-name{font-size:12px;font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-bubble.mine .msg-file-name{color:#fff}.msg-file-size{font-size:10px;color:var(--color-text-tertiary)}.msg-bubble.mine .msg-file-size{color:#ffffffb3}.msg-file-dl{font-size:10px;color:var(--color-primary);font-weight:600;flex-shrink:0}.msg-bubble.mine .msg-file-dl{color:#ffffffe6}.msg-uploading{padding:6px 14px;font-size:11px;color:var(--color-text-tertiary);text-align:center;border-top:1px solid var(--color-border);animation:pulse 1s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.msg-input-bar{display:flex;align-items:flex-end;gap:6px;padding:8px 12px;border-top:1px solid var(--color-border);flex-shrink:0}.msg-attach-btn{width:34px;height:34px;border:1px solid var(--color-border);background:var(--color-bg-secondary);cursor:pointer;color:var(--color-text-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .1s}.msg-attach-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.msg-input{flex:1;min-height:34px;max-height:100px;padding:7px 12px;border:1px solid var(--color-border);border-radius:17px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-secondary);outline:none;font-family:inherit;resize:none;line-height:1.4;overflow-y:auto}.msg-input:focus{border-color:var(--color-primary);background:var(--color-bg-primary)}.msg-send-btn{width:34px;height:34px;border:none;background:var(--color-primary);color:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.msg-send-btn:disabled{opacity:.3;cursor:not-allowed}.msg-send-btn:hover:not(:disabled){transform:scale(1.05)}.msg-group-modal{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-bg-primary);z-index:10;display:flex;flex-direction:column}.msg-group-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--color-border)}.msg-group-header h4{font-size:14px;font-weight:700;margin:0}.msg-group-header button{border:none;background:none;cursor:pointer;font-size:18px;color:var(--color-text-tertiary);padding:4px}.msg-group-name{height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:8px;font-size:13px;margin:12px 16px 8px;outline:none;width:calc(100% - 32px)}.msg-group-name:focus{border-color:var(--color-primary)}.msg-group-label{font-size:11px;font-weight:600;color:var(--color-text-tertiary);padding:4px 16px}.msg-group-members{flex:1;overflow-y:auto;padding:4px 12px}.msg-group-member{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;cursor:pointer}.msg-group-member:hover{background:var(--color-bg-secondary)}.msg-group-member.selected{background:#89b9290f}.msg-group-member input{accent-color:var(--color-primary);flex-shrink:0}.msg-group-member-avatar{width:28px;height:28px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}.msg-group-member-info{flex:1;display:flex;flex-direction:column}.msg-group-member-info span:first-child{font-size:12px;font-weight:600;color:var(--color-text-primary)}.msg-group-create{margin:12px 16px 16px;padding:10px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.msg-group-create:disabled{opacity:.4;cursor:not-allowed}.msg-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#000000d9;display:flex;align-items:center;justify-content:center;cursor:pointer}.msg-lightbox img{max-width:90%;max-height:90%;border-radius:8px;box-shadow:0 4px 24px #0000004d}.msg-lightbox-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border:none;background:#ffffff26;color:#fff;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.layout.dark .messenger-panel{background:#1e1e1e;border-color:#3f3f3f;box-shadow:-4px 0 20px #0000004d}.layout.dark .msg-bubble:not(.mine){background:#2a2a2a}.layout.dark .msg-room-status,.layout.dark .msg-contact-status-dot{border-color:#1e1e1e}.layout.dark .msg-input{background:#2a2a2a;border-color:#3f3f3f}.layout.dark .msg-group-modal{background:#1e1e1e}.layout.dark .msg-file-link{background:#2a2a2a;border-color:#3f3f3f}.layout.dark .msg-file-name{color:#e0e0e0}@media (max-width: 768px){.messenger-panel{width:100%}}.todo-panel{position:fixed;top:48px;right:0;width:340px;height:calc(100vh - 48px);background:#fff;border-left:1px solid #e3e2e0;box-shadow:-2px 0 8px #0000000a;z-index:800;display:flex;flex-direction:column}.todo-header{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid #e3e2e0;flex-shrink:0;min-height:44px}.todo-header-title{font-size:14px;font-weight:600;color:#37352f}.todo-header-count{font-size:11px;color:#787774;margin-left:4px}.todo-back{border:none;background:none;cursor:pointer;color:#787774;padding:4px;border-radius:3px;display:flex}.todo-back:hover{background:#f1f1ef}.todo-header-actions{display:flex;gap:2px;margin-left:auto}.todo-header-actions button{width:28px;height:28px;border:none;background:none;cursor:pointer;color:#787774;border-radius:4px;display:flex;align-items:center;justify-content:center}.todo-header-actions button:hover{background:#f1f1ef;color:#37352f}.todo-header-actions button.todo-header-expand{width:auto;padding:0 8px;gap:4px;font-size:11px;color:var(--color-primary, #89b929);font-weight:500}.todo-header-actions button.todo-header-expand:hover{background:#89b9291a;color:var(--color-primary, #89b929)}.todo-create{padding:10px 12px;border-bottom:1px solid #e3e2e0;display:flex;flex-direction:column;gap:6px}.todo-create-title{height:28px;padding:0 8px;border:1px solid #e3e2e0;border-radius:4px;font-size:12px;color:#37352f;outline:none}.todo-create-title:focus{border-color:#89b929;box-shadow:0 0 0 2px #89b92926}.todo-create-desc{padding:4px 8px;border:1px solid #e3e2e0;border-radius:4px;font-size:11px;color:#37352f;outline:none;resize:none;font-family:inherit}.todo-create-desc:focus{border-color:#89b929}.todo-create-row{display:flex;gap:6px}.todo-create-select{height:26px;padding:0 6px;border:1px solid #e3e2e0;border-radius:4px;font-size:11px;color:#37352f;background:#fff;outline:none;flex:1}.todo-create-date{height:26px;padding:0 6px;border:1px solid #e3e2e0;border-radius:4px;font-size:11px;color:#37352f;outline:none;flex:1}.todo-create-checklist{display:flex;flex-direction:column;gap:2px}.todo-create-check-item{display:flex;align-items:center;justify-content:space-between;padding:2px 6px;font-size:11px;color:#37352f;background:#f7f6f3;border-radius:3px}.todo-create-check-item button{border:none;background:none;cursor:pointer;color:#b4b4b0;font-size:11px}.todo-create-check-add input{width:100%;height:24px;padding:0 6px;border:1px dashed #e3e2e0;border-radius:3px;font-size:11px;color:#37352f;outline:none}.todo-create-check-add input:focus{border-color:#89b929;border-style:solid}.todo-create-actions{display:flex;justify-content:flex-end;gap:4px}.todo-btn-cancel{height:26px;padding:0 10px;border:1px solid #e3e2e0;border-radius:4px;font-size:11px;color:#787774;background:#fff;cursor:pointer}.todo-btn-submit{height:26px;padding:0 10px;border:none;border-radius:4px;font-size:11px;font-weight:500;color:#fff;background:#89b929;cursor:pointer}.todo-btn-submit:disabled{opacity:.4;cursor:not-allowed}.todo-filters{display:flex;padding:6px 12px;gap:2px;border-bottom:1px solid #e3e2e0;flex-shrink:0}.todo-filters button{height:24px;padding:0 8px;border:none;background:none;border-radius:3px;font-size:11px;font-weight:500;color:#787774;cursor:pointer;display:flex;align-items:center;gap:3px;transition:all .1s ease-out}.todo-filters button:hover{background:#f1f1ef}.todo-filters button.active{background:#89b92914;color:#89b929}.todo-filter-count{font-size:9px;color:#b4b4b0}.todo-list{flex:1;overflow-y:auto;padding:4px 0}.todo-empty{padding:32px 12px;text-align:center;font-size:11px;color:#b4b4b0}.todo-item{display:flex;align-items:flex-start;gap:8px;padding:8px 14px;transition:background .1s ease-out}.todo-item:hover{background:#f7f6f3}.todo-item.done{opacity:.5}.todo-item.overdue{background:#e03e3e05}.todo-check{width:16px;height:16px;border:1.5px solid #d3d2cf;border-radius:3px;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;margin-left:12px;transition:all .1s ease-out}.todo-check:hover{border-color:#89b929}.todo-check.checked{background:#89b929;border-color:#89b929;color:#fff}.todo-item-body{flex:1;min-width:0;cursor:pointer}.todo-item-title{font-size:12px;color:#37352f;line-height:1.4}.todo-item.done .todo-item-title{text-decoration:line-through;color:#b4b4b0}.todo-item-meta{display:flex;align-items:center;gap:6px;margin-top:2px}.todo-priority-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.todo-due{font-size:10px;color:#787774}.todo-due.overdue{color:#e03e3e;font-weight:500}.todo-check-count{font-size:10px;color:#b4b4b0}.todo-detail{flex:1;overflow-y:auto}.todo-detail-section{padding:12px;border-bottom:1px solid #e3e2e0}.todo-detail-title{font-size:16px;font-weight:600;color:#37352f;margin:0 0 4px}.todo-detail-desc{font-size:12px;color:#787774;margin:0;line-height:1.5}.todo-detail-field{display:flex;align-items:center;gap:8px;padding:4px 0}.todo-field-label{font-size:11px;font-weight:500;color:#787774;width:56px;flex-shrink:0}.todo-status-btns{display:flex;gap:2px}.todo-status-btn{height:24px;padding:0 8px;border:1px solid #e3e2e0;border-radius:3px;font-size:11px;color:#787774;background:#fff;cursor:pointer;transition:all .1s ease-out}.todo-status-btn:hover{border-color:#89b929}.todo-status-btn.active{background:#89b929;color:#fff;border-color:#89b929}.todo-priority-badge{font-size:11px;font-weight:600}.todo-due-badge{font-size:11px;color:#37352f}.todo-due-badge.overdue{color:#e03e3e}.todo-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:11px;font-weight:500;color:#787774}.todo-check-progress{font-size:10px;color:#b4b4b0}.todo-progress-bar{height:3px;background:#e3e2e0;border-radius:2px;margin-bottom:8px;overflow:hidden}.todo-progress-fill{height:100%;background:#89b929;border-radius:2px;transition:width .2s ease-out}.todo-checklist{display:flex;flex-direction:column;gap:1px}.todo-checklist-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:3px;cursor:pointer;font-size:12px;color:#37352f;transition:background .1s ease-out}.todo-checklist-item:hover{background:#f7f6f3}.todo-checklist-item.checked span{text-decoration:line-through;color:#b4b4b0}.todo-checklist-item input[type=checkbox]{width:14px;height:14px;accent-color:#89b929;cursor:pointer;flex-shrink:0}.todo-checklist-item span{flex:1}.todo-checklist-del{border:none;background:none;cursor:pointer;color:#b4b4b0;opacity:0;display:flex;align-items:center}.todo-checklist-item:hover .todo-checklist-del{opacity:1}.todo-checklist-del:hover{color:#e03e3e}.todo-checklist-add{margin-top:4px}.todo-checklist-add input{width:100%;height:24px;padding:0 6px;border:1px dashed #e3e2e0;border-radius:3px;font-size:11px;color:#37352f;outline:none;font-family:inherit}.todo-checklist-add input:focus{border-color:#89b929;border-style:solid}.todo-logs{display:flex;flex-direction:column;gap:0}.todo-log{display:flex;align-items:flex-start;gap:8px;padding:4px 0;font-size:11px;position:relative}.todo-log-dot{width:4px;height:4px;border-radius:50%;background:#d3d2cf;flex-shrink:0;margin-top:5px}.todo-log-text{flex:1;color:#787774;line-height:1.3}.todo-log-time{font-size:10px;color:#b4b4b0;white-space:nowrap;flex-shrink:0}.todo-detail-footer{padding:12px}.todo-btn-delete{height:26px;padding:0 10px;border:1px solid #e3e2e0;border-radius:4px;font-size:11px;color:#e03e3e;background:#fff;cursor:pointer}.todo-btn-delete:hover{background:#fbe4e4}.layout.dark .todo-panel{background:#1e1e1e;border-color:#3f3f3f}.layout.dark .todo-header{border-color:#3f3f3f}.layout.dark .todo-header-title{color:#ffffffcf}.layout.dark .todo-item:hover{background:#252525}.layout.dark .todo-item-title{color:#ffffffcf}.layout.dark .todo-check{border-color:#4f4f4f}.layout.dark .todo-create-title,.layout.dark .todo-create-desc,.layout.dark .todo-create-select,.layout.dark .todo-create-date{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .todo-filters,.layout.dark .todo-detail-section{border-color:#3f3f3f}.layout.dark .todo-detail-title{color:#ffffffcf}.layout.dark .todo-status-btn{background:#252525;border-color:#3f3f3f;color:#ffffff71}.layout.dark .todo-checklist-item{color:#ffffffcf}.layout.dark .todo-checklist-item:hover{background:#252525}.layout.dark .todo-checklist-add input{border-color:#3f3f3f;color:#ffffffcf}.layout.dark .todo-progress-bar{background:#3f3f3f}.todo-recurrence-badge{display:inline-flex;align-items:center;gap:2px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:500;color:#6366f1;background:#6366f11a;border-radius:4px;vertical-align:middle;white-space:nowrap}.layout.dark .todo-recurrence-badge{background:#6366f12e;color:#a5b4fc}@media (max-width: 768px){.todo-panel{width:100%}}.layout{min-height:100vh;background-color:#fff}.layout.dark{background-color:#191919}.header{position:fixed;top:0;left:0;right:0;height:54px;background-color:#fff;border-bottom:1px solid #e3e2e0;display:flex;align-items:center;justify-content:space-between;padding:0 14px;z-index:100}.layout.dark .header{background-color:#202020;border-bottom-color:#333}.header-left{display:flex;align-items:center;gap:6px}.menu-toggle{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#787774;cursor:pointer;border-radius:4px}.menu-toggle:hover{background-color:#f1f1ef;color:#37352f}.layout.dark .menu-toggle{color:#9b9a97}.layout.dark .menu-toggle:hover{background-color:#333;color:#fff}.menu-toggle svg{width:16px;height:16px}.header-logo{height:28px;cursor:pointer}.header-right{display:flex;align-items:center;gap:4px}.header-search{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;margin-right:8px;transition:all .2s;background:var(--color-bg-tertiary);position:relative;width:140px}.header-search:hover{border-color:var(--color-primary);background:var(--color-bg-primary)}.header-search.expanded{width:360px;border-color:var(--color-primary);background:var(--color-bg-primary);cursor:text;z-index:1001}.header-search svg{color:var(--color-text-tertiary);flex-shrink:0}.header-search span{font-size:13px;color:var(--color-text-tertiary)}.header-search kbd{font-size:10px;padding:1px 5px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-tertiary);font-family:inherit;margin-left:auto}.header-search input{flex:1;border:none;outline:none;background:transparent;font-size:13px;color:var(--color-text-primary);min-width:0}.header-search input::placeholder{color:var(--color-text-tertiary)}.header-search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 12px 40px #00000026;max-height:400px;overflow-y:auto;padding:6px 0;animation:searchDropIn .12s ease}@keyframes searchDropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.search-dropdown-empty{padding:20px;text-align:center;font-size:13px;color:var(--color-text-tertiary)}.search-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.user-menu-wrapper{position:relative}.user-button{background:none;border:none;cursor:pointer;padding:3px;border-radius:4px}.user-button:hover{background-color:#f1f1ef}.layout.dark .user-button:hover{background-color:#333}.user-avatar{width:36px;height:36px;border-radius:50%;background-color:#89b929;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.user-avatar-image{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #e3e2e0}.layout.dark .user-avatar-image{border-color:#3f3f3f}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.user-dropdown{position:absolute;top:100%;right:0;margin-top:4px;width:180px;background-color:#fff;border:1px solid #e3e2e0;border-radius:6px;box-shadow:0 4px 12px #00000014;z-index:100;overflow:hidden}.layout.dark .user-dropdown{background-color:#252525;border-color:#3f3f3f}.user-info{padding:10px}.user-name{display:block;font-size:12px;font-weight:500;color:#37352f}.layout.dark .user-name{color:#ffffffcf}.user-email{display:block;font-size:11px;color:#9b9a97;margin-top:2px}.dropdown-divider{height:1px;background-color:#e3e2e0}.layout.dark .dropdown-divider{background-color:#3f3f3f}.dropdown-item{width:100%;display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;color:#37352f;background:none;border:none;cursor:pointer;text-align:left}.dropdown-item:hover{background-color:#f1f1ef}.layout.dark .dropdown-item{color:#ffffffcf}.layout.dark .dropdown-item:hover{background-color:#333}.dropdown-item.logout{color:#e03e3e}.dropdown-item svg{width:14px;height:14px}.sidebar{position:fixed;top:54px;left:0;bottom:0;width:200px;background-color:#f7f6f3;border-right:1px solid #e3e2e0;overflow-y:auto;transition:transform .2s ease;z-index:50}.sidebar.closed{transform:translate(-100%)}.layout.dark .sidebar{background-color:#202020;border-right-color:#333}.sidebar-nav{padding:6px 6px 60px}.nav-item{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:12px;color:#37352f;text-decoration:none;border-radius:4px;cursor:pointer;transition:background-color .1s}.nav-item:hover{background-color:#ebebea}.nav-item.active{background-color:#e3e2e0;font-weight:500}.nav-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;background:var(--color-primary, #89b929);color:#fff;border-radius:9px;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.layout.dark .nav-badge{background:var(--color-primary, #89b929);color:#fff}.layout.dark .nav-item{color:#ffffffcf}.layout.dark .nav-item:hover{background-color:#333}.layout.dark .nav-item.active{background-color:#3f3f3f}.nav-item.sub{padding-left:28px;font-size:11px}.nav-item svg{flex-shrink:0;width:14px;height:14px;color:#787774}.layout.dark .nav-item svg{color:#9b9a97}.nav-divider{height:1px;background-color:#e3e2e0;margin:6px 0}.layout.dark .nav-divider{background-color:#3f3f3f}.nav-group-header{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;font-size:12px;color:#37352f;background:none;border:none;cursor:pointer;border-radius:4px;text-align:left}.nav-group-header:hover{background-color:#ebebea}.layout.dark .nav-group-header{color:#ffffffcf}.layout.dark .nav-group-header:hover{background-color:#333}.nav-group-header svg{width:14px;height:14px;color:#787774}.layout.dark .nav-group-header svg{color:#9b9a97}.nav-group-header .chevron{margin-left:auto;transition:transform .2s}.nav-group-header .chevron.open{transform:rotate(180deg)}.nav-group-items{margin-top:2px}.dropdown-theme{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px}.dropdown-theme .theme-icon{color:#787774;flex-shrink:0}.layout.dark .dropdown-theme .theme-icon{color:#9b9a97}.theme-label{font-size:10px;color:#9b9a97;margin-left:2px}.layout.dark .theme-label{color:#787774}.theme-switch{position:relative;width:36px;height:20px;background-color:#e3e2e0;border:none;border-radius:10px;cursor:pointer;transition:background-color .2s ease}.theme-switch:hover{background-color:#d3d2d0}.theme-switch.dark{background-color:#89b929}.theme-switch.dark:hover{background-color:#7aa824}.theme-switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;background-color:#fff;border-radius:50%;box-shadow:0 1px 3px #00000026;transition:transform .2s ease}.theme-switch.dark .theme-switch-knob{transform:translate(16px)}.layout.dark .theme-switch{background-color:#3f3f3f}.layout.dark .theme-switch:hover{background-color:#4f4f4f}.layout.dark .theme-switch.dark{background-color:#89b929}.layout.dark .theme-switch.dark:hover{background-color:#7aa824}.main-content{margin-left:200px;margin-top:54px;min-height:calc(100vh - 54px);transition:margin-left .2s ease;display:flex;flex-direction:column}.main-content-wrapper{flex:1}.main-content.expanded{margin-left:0}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}}.messenger-toggle{width:32px;height:32px;border:none;background:none;cursor:pointer;color:var(--color-text-secondary, #787774);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .1s}.messenger-toggle:hover{background:var(--color-bg-secondary, #f7f6f3);color:var(--color-text-primary)}.messenger-toggle.active{color:var(--color-primary, #89b929);background:#89b9291a}.messenger-toggle{position:relative}.header-badge{position:absolute;top:2px;right:2px;min-width:14px;height:14px;border-radius:7px;background:#e03e3e;color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 3px}.feedback-fab{position:fixed;bottom:24px;right:400px;z-index:900;transition:right .2s ease}.feedback-fab.shifted{right:24px}.feedback-fab-btn{width:44px;height:44px;border-radius:50%;border:none;background:var(--color-primary, #89b929);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #00000026;transition:transform .15s,box-shadow .15s}.feedback-fab-btn:hover{transform:scale(1.08);box-shadow:0 4px 16px #0003}.feedback-fab-menu{position:absolute;bottom:52px;right:0;background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:8px;box-shadow:0 4px 16px #0000001f;overflow:hidden;min-width:160px}.feedback-fab-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:none;cursor:pointer;font-size:13px;color:var(--color-text-primary, #37352f);transition:background .1s}.feedback-fab-menu button:hover{background:var(--color-bg-secondary, #f7f6f3)}.fab-menu-icon{font-size:16px}.feedback-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0006;display:flex;align-items:center;justify-content:center;padding:20px}.feedback-modal{background:var(--color-bg-primary, #fff);border-radius:12px;box-shadow:0 16px 48px #0003;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 12px;border-bottom:1px solid var(--color-border, #e3e2e0)}.feedback-modal-header h2{font-size:16px;font-weight:700;color:var(--color-text-primary);margin:0}.feedback-close{width:28px;height:28px;border:none;background:none;cursor:pointer;font-size:20px;color:var(--color-text-tertiary);border-radius:4px;display:flex;align-items:center;justify-content:center}.feedback-close:hover{background:var(--color-bg-secondary)}.feedback-modal-body{padding:16px 24px;overflow-y:auto;flex:1}.feedback-modal-footer{padding:12px 24px 16px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:8px}.feedback-success{padding:48px 24px;text-align:center}.feedback-success-icon{font-size:48px;display:block;margin-bottom:12px}.feedback-success h3{font-size:18px;font-weight:700;margin:0 0 8px;color:var(--color-text-primary)}.feedback-success p{font-size:13px;color:var(--color-text-secondary);margin:0}.fb-field{margin-bottom:14px}.fb-field-row{display:flex;gap:12px;margin-bottom:14px}.fb-field-row .fb-field{flex:1;margin-bottom:0}.fb-label{display:block;font-size:12px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.fb-label.fb-required:after{content:" *";color:#ef4444}.fb-input{width:100%;height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);outline:none;font-family:inherit}.fb-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #89b9291f}.fb-textarea{width:100%;padding:8px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);outline:none;font-family:inherit;resize:vertical;line-height:1.5}.fb-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #89b9291f}.fb-select{width:100%;height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);outline:none;cursor:pointer}.fb-priority-group{display:flex;gap:4px}.fb-priority-btn{padding:5px 12px;border:1px solid var(--color-border);border-radius:4px;font-size:12px;cursor:pointer;background:var(--color-bg-primary);color:var(--color-text-secondary);transition:all .1s}.fb-priority-btn:hover{border-color:var(--pri-color);color:var(--pri-color)}.fb-priority-btn.active{background:var(--pri-color);color:#fff;border-color:var(--pri-color)}.fb-auto-info{display:flex;gap:12px;margin-top:8px;padding:8px 10px;background:var(--color-bg-secondary);border-radius:6px;font-size:10px;color:var(--color-text-tertiary)}.fb-btn-cancel{padding:8px 16px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;cursor:pointer;background:var(--color-bg-primary);color:var(--color-text-secondary)}.fb-btn-cancel:hover{background:var(--color-bg-secondary)}.fb-btn-submit{padding:8px 20px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;background:var(--color-primary);color:#fff}.fb-btn-submit:hover:not(:disabled){background:var(--color-primary-hover, #7aa824)}.fb-btn-submit:disabled{opacity:.4;cursor:not-allowed}.layout.dark .feedback-fab-menu{background:#2a2a2a;border-color:#3f3f3f}.layout.dark .feedback-modal{background:#252525}.layout.dark .fb-input,.layout.dark .fb-textarea,.layout.dark .fb-select{background:#1e1e1e;border-color:#3f3f3f;color:#e0e0e0}.layout.dark .fb-auto-info{background:#1e1e1e}.search-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;padding-top:15vh}.search-modal{width:600px;max-width:90vw;max-height:480px;background:var(--color-bg-primary);border-radius:12px;box-shadow:0 24px 64px #00000040;overflow:hidden;display:flex;flex-direction:column;animation:searchFadeIn .15s ease}@keyframes searchFadeIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.search-modal-input{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--color-border)}.search-modal-input svg{color:var(--color-text-tertiary);flex-shrink:0}.search-modal-input input{flex:1;border:none;outline:none;background:transparent;font-size:16px;color:var(--color-text-primary)}.search-modal-input input::placeholder{color:var(--color-text-tertiary)}.search-modal-input kbd{font-size:10px;padding:2px 6px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-tertiary);cursor:pointer}.search-spinner{width:18px;height:18px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:sspin .6s linear infinite;flex-shrink:0}@keyframes sspin{to{transform:rotate(360deg)}}.search-modal-results{overflow-y:auto;flex:1;padding:6px 0}.search-result-row{display:flex;align-items:center;gap:10px;padding:10px 18px;cursor:pointer;transition:background .08s}.search-result-row:hover,.search-result-row.selected{background:var(--color-bg-hover, rgba(0,0,0,.04))}.sr-type{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;color:#fff;white-space:nowrap;flex-shrink:0}.sr-document{background:#8b5cf6}.sr-meeting{background:#3b82f6}.sr-project{background:#10b981}.sr-notion{background:#f59e0b}.sr-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.sr-title{font-size:13px;font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-snippet{font-size:11px;color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-modal-empty{padding:32px;text-align:center;font-size:13px;color:var(--color-text-tertiary)}.home-page{padding:32px;max-width:1400px;margin:0 auto;min-height:calc(100vh - 60px);background:var(--color-bg-secondary)}.home-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.greeting-section h1{font-size:26px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px;letter-spacing:-.3px}.current-date{font-size:14px;color:var(--color-text-secondary);margin:0}.current-time{font-size:32px;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-1px}.home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.home-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.home-card.approval-card{padding:0;cursor:default}.card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--color-border)}.card-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--color-text-primary)}.card-title svg{color:var(--color-text-secondary)}.card-body{padding:18px}.btn-more{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.btn-more:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.attendance-card{grid-row:span 1}.attendance-status{display:flex;align-items:center;gap:16px;margin-bottom:16px}.status-indicator{padding:6px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:600}.status-indicator.working{background:#89b9291a;color:#89b929}.status-indicator.not-working{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.status-indicator.done{background:#6366f11a;color:#6366f1}.btn-clock-done{flex:1;padding:12px 20px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;background:var(--color-bg-tertiary);color:var(--color-text-secondary);cursor:default}.work-duration{display:flex;flex-direction:column}.duration-label{font-size:11px;color:var(--color-text-tertiary)}.duration-time{font-size:20px;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.check-time{font-size:12px;color:var(--color-text-secondary);margin-bottom:16px}.attendance-actions{display:flex;gap:8px}.btn-clock-in,.btn-clock-out{flex:1;padding:12px 20px;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-clock-in{background:var(--color-primary);color:#fff}.btn-clock-in:hover{background:var(--color-primary-hover)}.btn-clock-out{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-clock-out:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.schedule-list{list-style:none;padding:0;margin:0}.schedule-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border-light)}.schedule-item:last-child{border-bottom:none;padding-bottom:0}.schedule-item:first-child{padding-top:0}.schedule-time{font-size:13px;font-weight:600;color:var(--color-text-primary);min-width:50px;font-variant-numeric:tabular-nums}.schedule-title{flex:1;font-size:13px;color:var(--color-text-primary)}.schedule-type{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);font-weight:500}.schedule-type.meeting{background:#8b5cf61a;color:#7c3aed}.schedule-type.task{background:#2f80ed1a;color:#2563eb}.schedule-type.event{background:#f5a6231a;color:#d97706}.schedule-type.annual_leave{background:#f443361a;color:#f44336}.schedule-type.half_day_am,.schedule-type.half_day_pm{background:#ff98001a;color:#ff9800}.schedule-type.office_work{background:#2196f31a;color:#2196f3}.schedule-type.business_trip{background:#4caf501a;color:#4caf50}.schedule-type.on_site_support{background:#ffc1071a;color:#ffc107}.work-stats{display:flex;gap:16px;margin-bottom:18px}.work-stat{flex:1;text-align:center;padding:12px;background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.stat-number{display:block;font-size:18px;font-weight:600;color:var(--color-text-primary)}.stat-desc{font-size:11px;color:var(--color-text-secondary)}.week-days{display:flex;gap:8px}.week-day{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;border-radius:var(--radius-md);background:var(--color-bg-tertiary)}.week-day.worked{background:#89b9291a}.week-day.worked .day-status{color:#89b929}.week-day.today{background:#2f80ed1a;border:1px solid rgba(47,128,237,.3)}.week-day.today .day-name{color:#2f80ed;font-weight:600}.day-name{font-size:12px;color:var(--color-text-secondary)}.day-status{font-size:11px;color:var(--color-text-tertiary)}.approval-summary{display:flex;gap:12px;margin-bottom:16px}.approval-count{flex:1;display:flex;flex-direction:column;align-items:center;padding:12px;border-radius:var(--radius-md)}.approval-count.pending{background:#f5a6231a}.approval-count.pending .count{color:#d97706}.approval-count.approved{background:#89b9291a}.approval-count.approved .count{color:#89b929}.approval-count .count{font-size:22px;font-weight:600}.approval-count .label{font-size:11px;color:var(--color-text-secondary)}.approval-list{list-style:none;padding:0;margin:0}.approval-item{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--color-border-light)}.approval-item:last-child{border-bottom:none;padding-bottom:0}.approval-item:first-child{padding-top:0}.approval-info{display:flex;flex-direction:column;gap:2px}.approval-title{font-size:13px;color:var(--color-text-primary)}.approval-type{font-size:11px;color:var(--color-text-tertiary)}.approval-status{font-size:11px;padding:3px 8px;border-radius:var(--radius-sm);font-weight:500}.approval-status.pending{background:#f5a6231a;color:#d97706}.approval-status.approved{background:#89b9291a;color:#89b929}.approval-status.rejected{background:#e03e3e1a;color:#e03e3e}.approval-status.in_progress{background:#2196f31a;color:#2196f3}.approval-status.draft{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.approval-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;text-align:center}.approval-placeholder p{margin:0 0 6px;font-size:14px;color:var(--color-text-secondary);font-weight:500}.approval-placeholder .placeholder-desc{font-size:12px;color:var(--color-text-tertiary)}.todo-card{grid-column:span 2}.todo-count{font-size:12px;color:var(--color-text-secondary)}.todo-input{display:flex;gap:8px;margin-bottom:14px}.todo-input input{flex:1;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.todo-input input:focus{outline:none;border-color:var(--color-primary)}.btn-add-todo{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.btn-add-todo:hover{background:var(--color-primary-hover)}.todo-list{list-style:none;padding:0;margin:0;max-height:200px;overflow-y:auto}.todo-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-border-light)}.todo-item:last-child{border-bottom:none}.todo-item.completed .todo-text{text-decoration:line-through;color:var(--color-text-tertiary)}.todo-checkbox{position:relative;display:flex;align-items:center;cursor:pointer}.todo-checkbox input{position:absolute;opacity:0;width:0;height:0}.checkmark{width:18px;height:18px;border:1.5px solid var(--color-border-hover);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.todo-checkbox input:checked+.checkmark{background:var(--color-primary);border-color:var(--color-primary)}.todo-checkbox input:checked+.checkmark:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.todo-text{flex:1;font-size:13px;color:var(--color-text-primary)}.todo-due{font-size:11px;padding:2px 6px;background:#f5a6231a;color:#d97706;border-radius:var(--radius-sm)}.todo-due.overdue{background:#dc26261f;color:#dc2626;font-weight:600}.todo-item.overdue{background:#dc26260a}.todo-item.overdue .todo-text{color:var(--color-text-primary)}.btn-delete-todo{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);font-size:16px;cursor:pointer;opacity:0;transition:all var(--transition-fast)}.todo-item:hover .btn-delete-todo{opacity:1}.btn-delete-todo:hover{background:var(--color-error-light);color:var(--color-error)}.empty-message{text-align:center;padding:20px;color:var(--color-text-tertiary);font-size:13px}@media (max-width: 1200px){.home-grid{grid-template-columns:repeat(2,1fr)}.todo-card{grid-column:span 2}}@media (max-width: 768px){.home-page{padding:20px}.home-header{flex-direction:column;gap:12px}.current-time{font-size:24px}.home-grid{grid-template-columns:1fr}.todo-card{grid-column:span 1}.work-stats{flex-direction:column;gap:8px}.week-days{flex-wrap:wrap}.week-day{min-width:calc(20% - 8px)}}.layout.dark .home-card{background:var(--color-bg-secondary)}.layout.dark .work-stat,.layout.dark .week-day,.layout.dark .todo-input input{background:var(--color-bg-tertiary)}.card-header-btn{font-size:12px;padding:4px 10px;border:1px solid var(--color-border);background:transparent;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.card-header-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.card-header-btn.primary{display:inline-flex;align-items:center;gap:3px;background:var(--color-primary, #89b929);border-color:var(--color-primary, #89b929);color:#fff;font-weight:500}.card-header-btn.primary:hover{background:#7aa824;border-color:#7aa824;color:#fff}.card-header-btn.primary svg{width:12px;height:12px}.card-header-actions{display:inline-flex;gap:4px}.card-title-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;margin-left:4px;background:#ef4444;color:#fff;border-radius:9px;font-size:10px;font-weight:700}.history-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.history-modal{background:var(--color-bg-primary);border-radius:12px;width:500px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0003}.history-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.history-header h3{margin:0;font-size:16px;font-weight:600}.history-header button{border:none;background:none;cursor:pointer;color:var(--color-text-tertiary);padding:4px}.history-nav{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px;font-size:15px;font-weight:600;color:var(--color-text-primary)}.history-nav button{border:none;background:none;cursor:pointer;color:var(--color-text-secondary);padding:4px;border-radius:4px}.history-nav button:hover{background:var(--color-bg-tertiary)}.history-summary{display:flex;justify-content:center;gap:20px;padding:0 20px 12px;font-size:13px;color:var(--color-text-secondary)}.history-summary strong{color:var(--color-text-primary)}.history-table-wrap{overflow-y:auto;flex:1;padding:0 16px 16px}.history-table{width:100%;border-collapse:collapse;font-size:13px}.history-table th{padding:8px 10px;font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-align:left;border-bottom:2px solid var(--color-border);text-transform:uppercase}.history-table td{padding:9px 10px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.history-table tr:last-child td{border-bottom:none}.profile-page{max-width:700px;margin:0 auto;padding:24px 32px}.profile-page .page-header{margin-bottom:24px}.profile-page .page-header-left{display:flex;align-items:flex-start;gap:12px}.profile-page .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.profile-page .page-header-left>div{display:flex;flex-direction:column;gap:4px}.profile-page .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.profile-page .page-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.profile-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-secondary)}.profile-page .loading-state p{margin-top:16px;font-size:14px}.profile-page .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:profile-spin .6s linear infinite}@keyframes profile-spin{to{transform:rotate(360deg)}}.profile-card{background:#fff;border:1px solid #e3e2e0;border-radius:8px;overflow:hidden}.avatar-section{display:flex;align-items:center;gap:16px;padding:24px;background:linear-gradient(135deg,#89b929,#6a9a1e)}.avatar-wrapper{position:relative}.avatar-large{width:72px;height:72px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:600;color:#89b929;background:#fff;border-radius:50%;line-height:1;overflow:hidden}.avatar-image{width:100%;height:100%;object-fit:cover}.avatar-actions{position:absolute;bottom:-8px;right:-8px;display:flex;gap:4px}.avatar-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer;transition:all .15s;box-shadow:0 2px 4px #0003}.avatar-btn.upload{background:#fff;color:#89b929}.avatar-btn.upload:hover:not(:disabled){background:#f0f0f0}.avatar-btn.delete{background:#e03e3e;color:#fff}.avatar-btn.delete:hover:not(:disabled){background:#c72c2c}.avatar-btn:disabled{opacity:.6;cursor:not-allowed}.btn-loading-small{display:inline-block;width:12px;height:12px;border:2px solid rgba(137,185,41,.3);border-top-color:#89b929;border-radius:50%;animation:profile-spin .6s linear infinite}.user-meta{display:flex;flex-direction:column;gap:6px}.username{font-size:14px;color:#ffffffe6}.admin-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;color:#fff;background:#fff3;border-radius:12px;width:fit-content;line-height:1}.profile-page .form-section{padding:24px;border-bottom:1px solid #e3e2e0}.profile-page .form-section:last-of-type{border-bottom:none}.profile-page .form-section h3{display:flex;align-items:center;gap:8px;margin:0 0 20px;font-size:15px;font-weight:600;color:var(--color-text-primary)}.profile-page .form-section h3 svg{opacity:.7}.profile-page .form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.profile-page .form-field{display:flex;flex-direction:column;gap:8px}.profile-page .form-field label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.profile-page .form-field label.required:after{content:" *";color:#e03e3e}.profile-page .form-field input{height:40px;padding:0 14px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;transition:border-color .15s,box-shadow .15s}.profile-page .form-field input:focus{border-color:#89b929;box-shadow:0 0 0 3px #89b9291a}.profile-page .form-field input::placeholder{color:#b4b4b0}.profile-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;background:#fafaf9;border-top:1px solid #e3e2e0}.profile-page .btn-reset{height:38px;padding:0 18px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;cursor:pointer;transition:background .15s}.profile-page .btn-reset:hover:not(:disabled){background:#f7f6f3}.profile-page .btn-reset:disabled{opacity:.5;cursor:not-allowed}.profile-page .btn-primary{display:flex;align-items:center;justify-content:center;min-width:80px;height:38px;padding:0 18px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.profile-page .btn-primary:hover:not(:disabled){background:#7aa824}.profile-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.profile-page .btn-loading{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:profile-spin .6s linear infinite}.profile-page .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100;animation:profile-slideUp .3s ease}.profile-page .toast.success{background:#0f7b0f}.profile-page .toast.error{background:#e03e3e}@keyframes profile-slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 768px){.profile-page{padding:16px}.profile-page .page-title{font-size:20px}.avatar-section{padding:20px}.avatar-large{width:60px;height:60px;font-size:24px}.profile-page .form-section{padding:20px}.profile-page .form-grid{grid-template-columns:1fr}.profile-footer{padding:14px 20px}}.layout.dark .profile-page .page-title{color:#ffffffcf}.layout.dark .profile-page .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .profile-card{background:#252525;border-color:#3f3f3f}.layout.dark .avatar-section{background:linear-gradient(135deg,#6a9a1e,#527a17)}.layout.dark .avatar-large{color:#6a9a1e}.layout.dark .profile-page .form-section{border-bottom-color:#3f3f3f}.layout.dark .profile-page .form-section h3,.layout.dark .profile-page .form-field label{color:#ffffffcf}.layout.dark .profile-page .form-field input{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .profile-page .form-field input::placeholder{color:var(--color-text-secondary)}.layout.dark .profile-footer{background:#2f2f2f;border-top-color:#3f3f3f}.layout.dark .profile-page .btn-reset{background:#333;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .profile-page .btn-reset:hover:not(:disabled){background:#3f3f3f}.layout.dark .profile-page .loading-state{color:var(--color-text-tertiary)}.layout.dark .profile-page .loading-spinner{border-color:#3f3f3f;border-top-color:#89b929}.layout.dark .avatar-btn.upload{background:#3f3f3f;color:#89b929}.layout.dark .avatar-btn.upload:hover:not(:disabled){background:#4f4f4f}.layout.dark .btn-loading-small{border-color:#89b92933;border-top-color:#89b929}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar *:before,.rbc-calendar *:after{-webkit-box-sizing:inherit;box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.rbc-ellipsis,.rbc-show-more,.rbc-row-segment .rbc-event-content,.rbc-event-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{overflow:hidden;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;text-align:center;vertical-align:middle;font-weight:700;font-size:90%;min-height:0;border-bottom:1px solid #ddd}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{color:inherit;background:none;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.rbc-row-content{position:relative;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{height:100%;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px;font-size:16px}.rbc-toolbar .rbc-toolbar-label{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{color:#373a3c;display:inline-block;margin:0;text-align:center;vertical-align:middle;background:none;background-image:none;border:1px solid #ccc;padding:.375rem 1rem;border-radius:4px;line-height:normal;white-space:nowrap}.rbc-toolbar button:active,.rbc-toolbar button.rbc-active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px #00000020;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button.rbc-active:focus{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.rbc-toolbar button:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:hover{color:#373a3c;cursor:pointer;background-color:#e6e6e6;border-color:#adadad}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:0 4px 4px 0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px 0 0 4px}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width: 767px){.rbc-toolbar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.rbc-event,.rbc-day-slot .rbc-background-event{border:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:2px 5px;background-color:#3174ad;border-radius:5px;color:#fff;cursor:pointer;width:100%;text-align:left}.rbc-slot-selecting .rbc-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-slot-selecting .rbc-background-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected,.rbc-day-slot .rbc-selected.rbc-background-event{background-color:#265985}.rbc-event:focus,.rbc-day-slot .rbc-background-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{-webkit-box-shadow:-1px 1px 5px 0px rgba(51,51,51,.5);box-shadow:-1px 1px 5px #33333380}.rbc-event-continues-prior{border-top-left-radius:0;border-bottom-left-radius:0}.rbc-event-continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{background-color:#ffffff4d;z-index:4;font-weight:700;font-size:85%;height:auto;line-height:normal;color:#3174ad}.rbc-show-more:hover,.rbc-show-more:focus{color:#265985}.rbc-month-view{position:relative;border:1px solid #ddd;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;height:100%}.rbc-month-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-month-row{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px;overflow:hidden;height:100%}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:hidden;right:1px}.rbc-day-bg{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{position:absolute;z-index:5;border:1px solid #e5e5e5;background-color:#fff;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.25);box-shadow:0 5px 15px #00000040;padding:10px}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{width:100%;border:1px solid #ddd;border-spacing:0;border-collapse:collapse}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{padding:3px 5px;text-align:left;border-bottom:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{-webkit-box-flex:1;-ms-flex:1;flex:1}.rbc-timeslot-group{border-bottom:1px solid #ddd;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.rbc-time-gutter,.rbc-header-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{bottom:0;left:0;position:absolute;right:0;margin-right:10px;top:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-event,.rbc-day-slot .rbc-background-event{border:1px solid #265985;display:-webkit-box;display:-ms-flexbox;display:flex;max-height:100%;min-height:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{-webkit-box-flex:0;-ms-flex:none;flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{width:100%;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;word-wrap:break-word;line-height:1;height:100%;min-height:1em}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{position:sticky;left:0;background-color:#fff;border-right:1px solid #ddd;z-index:10;margin-right:-1px}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{min-width:auto;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-header,.rbc-time-view-resources .rbc-day-bg{width:140px;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;-ms-flex-preferred-size:0 px;flex-basis:0 px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{z-index:10;position:absolute;background-color:#00000080;color:#fff;font-size:75%;width:100%;padding:3px}.rbc-slot-selecting{cursor:move}.rbc-time-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;border:1px solid #ddd;min-height:0}.rbc-time-view .rbc-time-gutter{white-space:nowrap;text-align:right}.rbc-time-view .rbc-allday-cell{-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;position:relative}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{-webkit-box-sizing:border-box;box-sizing:border-box;min-height:20px}.rbc-time-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-right-width:0;border-left:1px solid #ddd}.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;min-width:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-left:1px solid #ddd}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;-ms-flex-negative:0;flex-shrink:0}.rbc-time-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:100%;border-top:2px solid #ddd;overflow-y:auto;position:relative}.rbc-time-content>.rbc-time-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.rbc-current-time-indicator{position:absolute;z-index:3;left:0;right:0;height:1px;background-color:#74ad31;pointer-events:none}.rbc-resource-grouping.rbc-time-header-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.team-schedule{max-width:1400px;margin:0 auto;padding:24px 32px}.team-schedule .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.team-schedule .page-header-left{display:flex;align-items:flex-start;gap:12px}.team-schedule .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.team-schedule .page-header-left>div{display:flex;flex-direction:column;gap:4px}.team-schedule .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.team-schedule .page-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.team-schedule .btn-primary{display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.team-schedule .btn-primary:hover{background:#7aa824}.schedule-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:16px}.schedule-toolbar .filters{display:flex;gap:12px}.schedule-toolbar .filter-select{height:36px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;cursor:pointer;min-width:140px}.schedule-toolbar .filter-select:focus{border-color:#89b929}.schedule-toolbar .view-toggle{display:inline-flex;background-color:#f7f6f3;border-radius:8px;padding:2px}.schedule-toolbar .view-toggle button{height:32px;padding:0 14px;font-size:14px;font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.schedule-toolbar .view-toggle button:hover{color:var(--color-text-primary)}.schedule-toolbar .view-toggle button.active{color:var(--color-text-primary);background:#fff;box-shadow:0 1px 2px #00000014}.schedule-legend{display:flex;gap:16px;margin-bottom:16px;padding:12px 16px;background:#fafaf9;border-radius:6px}.legend-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-primary)}.legend-color{width:12px;height:12px;border-radius:3px}.calendar-container{background:#fff;border:1px solid #e3e2e0;border-radius:8px;padding:16px}.team-schedule .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-secondary)}.team-schedule .loading-state p{margin-top:16px;font-size:14px}.team-schedule .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:schedule-spin .6s linear infinite}@keyframes schedule-spin{to{transform:rotate(360deg)}}.rbc-calendar{font-family:inherit}.rbc-toolbar{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #e3e2e0}.rbc-toolbar button{color:var(--color-text-primary);border:1px solid #e3e2e0;background:#fff;border-radius:4px;padding:6px 12px;font-size:13px}.rbc-toolbar button:hover{background:#f7f6f3}.rbc-toolbar button.rbc-active{background:#89b929;color:#fff;border-color:#89b929}.rbc-toolbar-label{font-size:18px;font-weight:600;color:var(--color-text-primary);text-overflow:clip;white-space:normal}.rbc-header{padding:10px 4px;font-size:13px;font-weight:500;color:var(--color-text-secondary);border-bottom:1px solid #e3e2e0;line-height:1.4;text-overflow:clip;white-space:normal}.rbc-row-segment{padding:0 2px}.rbc-month-view{border:1px solid #e3e2e0;border-radius:6px}.rbc-month-view .rbc-month-header{border-radius:6px 6px 0 0;overflow:hidden}.rbc-month-view .rbc-month-row:last-child{border-radius:0 0 6px 6px;overflow:hidden}.rbc-month-row{min-height:100px}.rbc-month-row+.rbc-month-row{border-top:1px solid #e3e2e0}.rbc-row-bg{background:inherit}.rbc-day-bg{border-left:1px solid #e3e2e0}.rbc-day-bg.rbc-today{background:#89b92914}.rbc-off-range-bg{background:#fafaf9}.rbc-date-cell{padding:4px 8px;font-size:13px;color:var(--color-text-primary);text-align:right}.rbc-date-cell button{font-size:13px;color:inherit}.rbc-date-cell.rbc-now{font-weight:700;color:#89b929}.rbc-event{border-radius:4px!important;font-size:.8rem!important}.rbc-event-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rbc-show-more{font-size:12px;color:#89b929;font-weight:500}.info-message{padding:12px 16px;background:#fff8e6;border:1px solid #ffd666;border-radius:6px;color:#8b6914;font-size:13px;margin-bottom:8px}.schedule-dialog{width:100%;max-width:480px;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e3e2e0}.dialog-body{padding:24px;display:flex;flex-direction:column;gap:16px}.dialog-body .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-body input:disabled,.dialog-body select:disabled{background:#f7f6f3;cursor:not-allowed}.dialog-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fafaf9;border-top:1px solid #e3e2e0;border-radius:0 0 12px 12px}.dialog-footer-right{display:flex;gap:10px}.dialog-footer .btn-primary:hover:not(:disabled){background:#7aa824}.dialog-footer .btn-primary:disabled{opacity:.6;cursor:not-allowed}.dialog-footer .btn-danger{height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#e03e3e;border:none;border-radius:6px;cursor:pointer}.dialog-footer .btn-danger:hover:not(:disabled){background:#c72c2c}.dialog-footer .btn-danger:disabled{opacity:.6;cursor:not-allowed}.team-schedule .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100;animation:toast-slide-up .3s ease}.team-schedule .toast.success{background:#0f7b0f}.team-schedule .toast.error{background:#e03e3e}@media (max-width: 768px){.team-schedule{padding:16px}.team-schedule .page-header{flex-direction:column;gap:16px}.team-schedule .page-title{font-size:20px}.schedule-toolbar{flex-direction:column;align-items:stretch}.schedule-toolbar .filters{flex-direction:column}.schedule-toolbar .filter-select{width:100%}.schedule-toolbar .view-toggle{justify-content:center}.schedule-legend{flex-wrap:wrap;gap:12px}.dialog-body .form-row{grid-template-columns:1fr}}.layout.dark .team-schedule .page-title{color:#ffffffcf}.layout.dark .team-schedule .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .schedule-toolbar .filter-select{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .schedule-toolbar .view-toggle{background-color:#2f2f2f}.layout.dark .schedule-toolbar .view-toggle button{color:var(--color-text-tertiary)}.layout.dark .schedule-toolbar .view-toggle button:hover{color:#ffffffcf}.layout.dark .schedule-toolbar .view-toggle button.active{background:#3f3f3f;color:#ffffffcf;box-shadow:0 1px 2px #0003}.layout.dark .info-message{background:#3d3520;border-color:#6b5a2e;color:#d4a72c}.layout.dark .schedule-legend{background:#2f2f2f}.layout.dark .legend-item{color:#ffffffcf}.layout.dark .calendar-container{background:#252525;border-color:#3f3f3f}.layout.dark .rbc-toolbar button{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .rbc-toolbar button:hover{background:#3f3f3f}.layout.dark .rbc-toolbar button.rbc-active{background:#89b929;color:#fff}.layout.dark .rbc-toolbar-label{color:#ffffffcf}.layout.dark .rbc-header{color:var(--color-text-tertiary);border-color:#3f3f3f}.layout.dark .rbc-month-view{border-color:#3f3f3f}.layout.dark .rbc-day-bg{border-color:#3f3f3f;background:#252525}.layout.dark .rbc-day-bg.rbc-today{background:#89b92926}.layout.dark .rbc-off-range-bg{background:#1f1f1f}.layout.dark .rbc-date-cell{color:#ffffffcf}.layout.dark .rbc-date-cell.rbc-off-range{color:var(--color-text-secondary)}.layout.dark .rbc-month-row{border-color:#3f3f3f}.layout.dark .rbc-month-row+.rbc-month-row{border-color:#3f3f3f}.layout.dark .team-schedule .loading-state{color:var(--color-text-tertiary)}.layout.dark .team-schedule .loading-spinner{border-color:#3f3f3f;border-top-color:#89b929}.layout.dark .schedule-dialog{background:#252525}.layout.dark .dialog-body label{color:#ffffffcf}.layout.dark .dialog-body input:disabled,.layout.dark .dialog-body select:disabled{background:#1f1f1f}.layout.dark .rbc-time-view{border-color:#3f3f3f;background:#252525}.layout.dark .rbc-time-header,.layout.dark .rbc-time-header-content{border-color:#3f3f3f}.layout.dark .rbc-time-header-gutter,.layout.dark .rbc-allday-cell{background:#252525}.layout.dark .rbc-time-content{border-color:#3f3f3f}.layout.dark .rbc-time-gutter{background:#252525}.layout.dark .rbc-timeslot-group,.layout.dark .rbc-time-slot{border-color:#3f3f3f}.layout.dark .rbc-day-slot{background:#252525}.layout.dark .rbc-day-slot .rbc-time-slot,.layout.dark .rbc-day-slot .rbc-events-container{border-color:#3f3f3f}.layout.dark .rbc-label{color:var(--color-text-tertiary)}.layout.dark .rbc-current-time-indicator{background:#89b929}.layout.dark .rbc-today{background:#89b9291a}.layout.dark .rbc-time-header-cell{border-color:#3f3f3f}.layout.dark .rbc-header+.rbc-header{border-color:#3f3f3f}.layout.dark .rbc-day-bg+.rbc-day-bg{border-color:#3f3f3f}.dev-projects{max-width:1200px;margin:0 auto;padding:24px 32px}.dev-projects .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dev-projects .page-header-left{display:flex;gap:12px;align-items:flex-start}.dev-projects .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.dev-projects .page-header-left>div{display:flex;flex-direction:column;gap:4px}.detail-logo-wrapper{position:relative}.detail-logo{width:48px;height:48px;border-radius:8px;overflow:hidden;background:var(--color-bg-secondary);border:1px solid var(--color-border);cursor:pointer;display:block;position:relative}.detail-logo img{width:100%;height:100%;object-fit:cover}.detail-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--color-text-secondary);background:linear-gradient(135deg,var(--color-border) 0%,var(--color-bg-tertiary) 100%)}.logo-edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;color:#fff}.detail-logo:hover .logo-edit-overlay{opacity:1}.logo-uploading{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffc;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--color-text-secondary)}.logo-delete-btn{position:absolute;top:-6px;right:-6px;width:18px;height:18px;padding:0;border:none;border-radius:50%;background:var(--color-error);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.logo-delete-btn svg{width:12px;height:12px}.detail-logo-wrapper:hover .logo-delete-btn{opacity:1}.dev-projects .project-title-row{display:flex;align-items:center;gap:10px}.dev-projects .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.dev-projects .page-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.dev-projects .header-actions{display:flex;gap:6px}.dev-projects .btn-primary{display:flex;align-items:center;gap:5px;height:32px;padding:0 12px;font-size:13px;font-weight:500;color:#fff;background:var(--color-primary);border:none;border-radius:4px;cursor:pointer;transition:background .15s}.dev-projects .btn-primary:hover{background:var(--color-primary-hover)}.dev-projects .btn-secondary{display:flex;align-items:center;gap:5px;height:32px;padding:0 12px;font-size:13px;font-weight:500;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;transition:all .15s}.dev-projects .btn-secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-border-hover)}.dev-projects .btn-danger{display:flex;align-items:center;gap:5px;height:32px;padding:0 12px;font-size:13px;font-weight:500;color:#fff;background:var(--color-error);border:none;border-radius:4px;cursor:pointer;transition:background .15s}.dev-projects .btn-danger:hover{background:var(--color-error-hover)}.project-list{margin:0;padding:0}.project-toolbar{margin-bottom:20px}.project-toolbar .filter-select{height:32px;padding:0 10px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;outline:none;cursor:pointer;min-width:120px;transition:border-color .15s}.project-toolbar .filter-select:hover{border-color:var(--color-border-hover)}.project-toolbar .filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #89b9291a}.status-badge{display:inline-block;padding:2px 8px;font-size:11px;font-weight:500;color:#fff;border-radius:3px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:0;padding:0}.project-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:16px}.project-card:hover{border-color:var(--color-primary);box-shadow:0 4px 20px #00000014;transform:translateY(-2px)}.card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.card-title-row{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.project-logo-sm{width:36px;height:36px;flex-shrink:0;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,#f0f7e6,#e8f4d9);display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border)}.project-logo-sm img{width:100%;height:100%;object-fit:cover}.project-logo-sm span{font-size:14px;font-weight:700;color:var(--color-primary)}.project-name{font-size:16px;font-weight:700;color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.3px}.project-description{font-size:13px;color:var(--color-text-secondary);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.progress-section{background:var(--color-bg-tertiary);border-radius:10px;padding:14px 16px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.progress-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.progress-value{font-size:20px;font-weight:800;color:var(--color-primary)}.progress-bar-lg{height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.progress-bar-lg .progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#6d9821);border-radius:4px;transition:width .3s}.progress-detail{margin-top:8px;font-size:12px;color:var(--color-text-secondary)}.card-meta{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px;border-top:1px solid var(--color-border-light)}.meta-item{display:flex;align-items:center;gap:5px;padding:5px 10px;background:var(--color-bg-secondary);border-radius:6px;font-size:12px;color:var(--color-text-secondary)}.meta-item svg{flex-shrink:0;opacity:.7}.meta-item.deadline{background:#e8f4d9;color:#5a7d1a}.meta-item.deadline.soon{background:#fef3c7;color:#d97706}.meta-item.deadline.overdue{background:#fee2e2;color:#dc2626}.meta-item.no-deadline{background:var(--color-bg-tertiary);color:#9ca3af}.meta-item.team{background:#e0e7ff;color:#4f46e5}.progress-bar{height:3px;background:var(--color-border);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .3s}.kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;min-height:calc(100vh - 220px)}.kanban-column{background:var(--color-bg-secondary);border-radius:6px;padding:10px;display:flex;flex-direction:column}.kanban-column-header{display:flex;align-items:center;gap:6px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--color-border)}.kanban-column-header .column-status{width:6px;height:6px;border-radius:50%}.kanban-column-header h3{font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0;flex:1}.kanban-column-header .task-count{font-size:11px;color:var(--color-text-secondary);background:var(--color-border);padding:1px 6px;border-radius:8px}.kanban-column-body{flex:1;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.task-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;padding:10px}.task-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.priority-badge{display:inline-block;padding:1px 6px;font-size:10px;font-weight:500;color:#fff;border-radius:2px}.task-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.task-card:hover .task-actions{opacity:1}.task-actions button{padding:3px 6px;font-size:10px;color:var(--color-text-secondary);background:transparent;border:none;border-radius:2px;cursor:pointer}.task-actions button:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.task-title{font-size:13px;font-weight:500;color:var(--color-text-primary);margin:0 0 4px}.task-description{font-size:11px;color:var(--color-text-secondary);margin:0 0 6px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-meta{display:flex;gap:6px;font-size:10px;color:var(--color-text-secondary)}.task-meta .assignee{padding:1px 5px;background:var(--color-border);border-radius:2px}.task-meta .due-date{padding:1px 5px}.task-status-actions{margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border)}.task-status-actions button{width:100%;padding:5px;font-size:11px;font-weight:500;color:var(--color-primary);background:transparent;border:1px solid var(--color-primary);border-radius:3px;cursor:pointer;transition:all .15s}.task-status-actions button:hover{background:var(--color-primary);color:#fff}.project-overview{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:24px}.overview-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;padding:16px}.overview-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.overview-card-header h3{font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0}.progress-percent{font-size:20px;font-weight:700;color:var(--color-primary)}.progress-bar-large{height:8px;background:var(--color-border);border-radius:4px;overflow:hidden;margin-bottom:12px}.progress-bar-large .progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#6d9821);border-radius:4px;transition:width .3s}.progress-stats{display:flex;justify-content:space-between}.progress-stats .stat-item{text-align:center}.progress-stats .stat-value{display:block;font-size:18px;font-weight:600;color:var(--color-text-primary)}.progress-stats .stat-label{font-size:11px;color:var(--color-text-secondary)}.team-count{font-size:12px;color:var(--color-text-secondary);background:var(--color-border);padding:2px 8px;border-radius:10px}.team-list{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto}.team-member{display:flex;align-items:center;gap:10px;padding:6px 8px;background:var(--color-bg-tertiary);border-radius:6px}.team-member.unassigned{opacity:.6}.member-avatar{width:28px;height:28px;background:linear-gradient(135deg,#2f80ed,#9b59b6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;flex-shrink:0}.member-avatar-image{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.member-info{flex:1;min-width:0}.member-name{display:block;font-size:12px;font-weight:500;color:var(--color-text-primary)}.member-tasks{display:flex;gap:6px;font-size:10px}.member-tasks .working{color:var(--color-info)}.member-tasks .done{color:var(--color-success)}.member-progress{display:flex;align-items:center;gap:6px}.mini-progress{width:40px;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.mini-progress-fill{height:100%;background:var(--color-primary);border-radius:2px}.mini-progress-text{font-size:10px;color:var(--color-text-secondary);min-width:28px}.no-team{text-align:center;padding:20px;font-size:12px;color:var(--color-text-secondary)}.btn-add-repo-small{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.btn-add-repo-small:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-add-repo-small svg{width:14px;height:14px}.git-activity{display:flex;flex-direction:column;gap:10px}.repo-selector{display:flex;gap:6px;flex-wrap:wrap}.repo-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid transparent;border-radius:12px;cursor:pointer;transition:all .15s}.repo-chip:hover{color:var(--color-text-primary);background:var(--color-border)}.repo-chip.active{color:var(--color-text-primary);background:var(--color-bg-primary);border-color:var(--color-primary)}.repo-dot{width:6px;height:6px;border-radius:50%}.recent-commits{display:flex;flex-direction:column;gap:6px;max-height:160px;overflow-y:auto}.commit-row{display:flex;align-items:flex-start;gap:8px;padding:6px;background:var(--color-bg-tertiary);border-radius:4px}.commit-author-avatar{width:22px;height:22px;background:var(--color-border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--color-text-secondary);flex-shrink:0}.commit-detail{flex:1;min-width:0}.commit-msg{display:block;font-size:12px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.commit-info{font-size:10px;color:var(--color-text-secondary)}.more-commits{text-align:center;padding:6px;font-size:11px;color:var(--color-text-secondary)}.no-commits,.no-repo{text-align:center;padding:20px;font-size:12px;color:var(--color-text-secondary)}.no-repo p{margin:0 0 10px}.btn-secondary-small{padding:5px 12px;font-size:11px;font-weight:500;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;cursor:pointer}.btn-secondary-small:hover{background:var(--color-bg-secondary);border-color:var(--color-border-hover)}.git-loading-small,.git-error-small{text-align:center;padding:20px;font-size:12px;color:var(--color-text-secondary)}.git-error-small{color:var(--color-error)}.kanban-section{margin-top:8px}.kanban-header{margin-bottom:12px}.kanban-header h2{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0}@media (max-width: 1200px){.project-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1024px){.project-overview{grid-template-columns:1fr 1fr}.project-overview .git-card{grid-column:1 / -1}}@media (max-width: 768px){.project-grid,.project-overview{grid-template-columns:1fr}}.layout.dark .overview-card{background:var(--color-bg-tertiary);border-color:var(--color-border)}.layout.dark .overview-card-header h3{color:var(--color-text-primary)}.layout.dark .progress-bar-large{background:var(--color-bg-active)}.layout.dark .progress-stats .stat-value{color:var(--color-text-primary)}.layout.dark .team-count{background:var(--color-bg-active);color:var(--color-text-tertiary)}.layout.dark .team-member{background:var(--color-bg-hover)}.layout.dark .member-name{color:var(--color-text-primary)}.layout.dark .mini-progress{background:var(--color-bg-active)}.layout.dark .btn-add-repo-small{border-color:var(--color-border);color:var(--color-text-tertiary)}.layout.dark .btn-add-repo-small:hover{border-color:var(--color-primary);color:var(--color-primary)}.layout.dark .repo-chip{background:var(--color-bg-active);color:var(--color-text-tertiary)}.layout.dark .repo-chip:hover{background:var(--color-bg-active);color:var(--color-text-primary)}.layout.dark .repo-chip.active{background:var(--color-bg-hover);border-color:var(--color-primary);color:var(--color-text-primary)}.layout.dark .commit-row{background:var(--color-bg-hover)}.layout.dark .commit-author-avatar{background:var(--color-bg-active);color:var(--color-text-tertiary)}.layout.dark .commit-msg{color:var(--color-text-primary)}.layout.dark .btn-secondary-small{background:var(--color-bg-hover);border-color:var(--color-border);color:var(--color-text-primary)}.layout.dark .btn-secondary-small:hover{background:var(--color-bg-active)}.layout.dark .kanban-header h2{color:var(--color-text-primary)}.layout.dark .project-card{background:var(--color-bg-tertiary);border-color:var(--color-border)}.layout.dark .project-card:hover{border-color:var(--color-primary);box-shadow:0 4px 20px #0006;transform:translateY(-2px)}.layout.dark .project-logo-sm{background:linear-gradient(135deg,#2a3a1a,#3a4a2a);border-color:var(--color-border-hover)}.layout.dark .project-logo-sm span{color:var(--color-primary)}.layout.dark .project-name{color:var(--color-text-primary)}.layout.dark .progress-section{background:var(--color-bg-hover)}.layout.dark .progress-label{color:var(--color-text-tertiary)}.layout.dark .progress-bar-lg{background:var(--color-bg-active)}.layout.dark .progress-detail{color:var(--color-text-tertiary)}.layout.dark .card-meta{border-color:var(--color-border)}.layout.dark .meta-item{background:var(--color-bg-active);color:var(--color-text-tertiary)}.layout.dark .meta-item.deadline{background:#2a3a1a;color:var(--color-primary)}.layout.dark .meta-item.deadline.soon{background:#3d2f0a;color:#fbbf24}.layout.dark .meta-item.deadline.overdue{background:#3d1a1a;color:#f87171}.layout.dark .meta-item.no-deadline{background:var(--color-bg-hover);color:#6b7280}.layout.dark .meta-item.team{background:#2a2a4a;color:#a5b4fc}.layout.dark .detail-logo{background:var(--color-bg-active);border-color:var(--color-border-hover)}.layout.dark .detail-logo-placeholder{background:linear-gradient(135deg,#3f3f3f,#4f4f4f);color:var(--color-text-tertiary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:40px var(--space-4);color:var(--color-text-secondary)}.empty-state svg{width:40px;height:40px;margin-bottom:12px;opacity:.5}.empty-state p{margin:0 0 12px;font-size:13px}.dev-projects .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--color-text-secondary)}.dev-projects .loading-state p{margin-top:12px;font-size:13px}.dev-projects .loading-spinner{width:28px;height:28px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:project-spin .6s linear infinite}@keyframes project-spin{to{transform:rotate(360deg)}}.project-dialog,.task-dialog{width:100%;max-width:480px;background:var(--color-bg-primary);border-radius:8px;box-shadow:0 16px 48px #00000026}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.dialog-header h2{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary)}.dialog-header .close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;border-radius:4px;color:var(--color-text-secondary);cursor:pointer}.dialog-header .close-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.dialog-body{padding:20px;display:flex;flex-direction:column;gap:14px}.dialog-body .form-field{display:flex;flex-direction:column;gap:5px}.dialog-body .form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dialog-body label{font-size:12px;font-weight:500;color:var(--color-text-primary)}.dialog-body label.required:after{content:" *";color:var(--color-error)}.dialog-body input,.dialog-body select,.dialog-body textarea{height:36px;padding:0 10px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;outline:none;transition:border-color .15s}.dialog-body textarea{height:auto;padding:8px 10px;resize:vertical}.dialog-body input:hover,.dialog-body select:hover,.dialog-body textarea:hover{border-color:var(--color-border-hover)}.dialog-body input:focus,.dialog-body select:focus,.dialog-body textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #89b9291a}.member-select-container{border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-primary);max-height:180px;overflow-y:auto}.member-checkbox-list{display:flex;flex-direction:column}.member-checkbox-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--color-border)}.member-checkbox-item:last-child{border-bottom:none}.member-checkbox-item:hover{background:var(--color-bg-secondary)}.member-checkbox-item input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--color-primary);cursor:pointer}.member-checkbox-item .member-info{display:flex;align-items:center;gap:8px}.member-checkbox-item .member-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.member-checkbox-item .member-position{font-size:12px;color:var(--color-text-secondary);background:var(--color-bg-secondary);padding:2px 6px;border-radius:4px}.no-assignees{padding:16px;text-align:center;color:var(--color-text-tertiary);font-size:13px;margin:0}.selected-count{padding:8px 12px;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);font-size:12px;color:var(--color-primary);font-weight:500}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;background:var(--color-bg-tertiary);border-top:1px solid var(--color-border);border-radius:0 0 8px 8px}.dialog-footer .btn-cancel{height:32px;padding:0 12px;font-size:13px;font-weight:500;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;cursor:pointer}.dialog-footer .btn-cancel:hover{background:var(--color-bg-secondary);border-color:var(--color-border-hover)}.dialog-footer .btn-primary{height:32px;padding:0 12px;font-size:13px;font-weight:500;color:#fff;background:var(--color-primary);border:none;border-radius:4px;cursor:pointer}.dialog-footer .btn-primary:hover{background:var(--color-primary-hover)}.dev-projects .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100;animation:toast-slide-up .3s ease}.dev-projects .toast.success{background:#0f7b0f}.dev-projects .toast.error{background:var(--color-error)}@media (max-width: 1200px){.kanban-board{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dev-projects{padding:16px}.dev-projects .page-header{flex-direction:column;gap:16px}.kanban-board,.project-grid,.dialog-body .form-row{grid-template-columns:1fr}}.layout.dark .dev-projects .page-title{color:var(--color-text-primary)}.layout.dark .dev-projects .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .dev-projects .btn-secondary{background:var(--color-bg-hover);border-color:var(--color-border);color:var(--color-text-primary)}.layout.dark .dev-projects .btn-secondary:hover{background:var(--color-bg-active)}.layout.dark .project-toolbar .filter-select{background:var(--color-bg-hover);border-color:var(--color-border);color:var(--color-text-primary)}.layout.dark .project-description,.layout.dark .project-stats .stat-label{color:var(--color-text-tertiary)}.layout.dark .progress-bar{background:var(--color-bg-active)}.layout.dark .kanban-column{background:var(--color-bg-hover)}.layout.dark .kanban-column-header{border-color:var(--color-border)}.layout.dark .kanban-column-header h3{color:var(--color-text-primary)}.layout.dark .kanban-column-header .task-count{background:var(--color-bg-active);color:var(--color-text-tertiary)}.layout.dark .task-card{background:var(--color-bg-tertiary);border-color:var(--color-border)}.layout.dark .task-title{color:var(--color-text-primary)}.layout.dark .task-description,.layout.dark .task-meta{color:var(--color-text-tertiary)}.layout.dark .task-meta .assignee{background:var(--color-bg-active)}.layout.dark .task-status-actions{border-color:var(--color-border)}.layout.dark .task-actions button:hover{background:var(--color-bg-active);color:var(--color-text-primary)}.layout.dark .empty-state,.layout.dark .dev-projects .loading-state{color:var(--color-text-tertiary)}.layout.dark .dev-projects .loading-spinner{border-color:var(--color-border);border-top-color:var(--color-primary)}.layout.dark .project-dialog,.layout.dark .task-dialog{background:var(--color-bg-tertiary)}.layout.dark .dialog-header{border-color:var(--color-border)}.layout.dark .dialog-header h2{color:var(--color-text-primary)}.layout.dark .dialog-header .close-btn:hover{background:var(--color-bg-active);color:var(--color-text-primary)}.layout.dark .dialog-body label{color:var(--color-text-primary)}.layout.dark .dialog-body input,.layout.dark .dialog-body select,.layout.dark .dialog-body textarea{background:var(--color-bg-hover);border-color:var(--color-border);color:var(--color-text-primary)}.layout.dark .dialog-footer,.layout.dark .member-select-container{background:var(--color-bg-hover);border-color:var(--color-border)}.layout.dark .member-checkbox-item{border-color:var(--color-border)}.layout.dark .member-checkbox-item:hover{background:var(--color-bg-active)}.layout.dark .member-checkbox-item .member-name{color:var(--color-text-primary)}.layout.dark .member-checkbox-item .member-position{background:var(--color-bg-active);color:var(--color-text-tertiary)}.layout.dark .no-assignees{color:var(--color-text-secondary)}.layout.dark .selected-count{background:var(--color-bg-active);border-color:var(--color-border)}.layout.dark .dialog-footer .btn-cancel{background:var(--color-bg-active);border-color:var(--color-border-hover);color:var(--color-text-primary)}.layout.dark .dialog-footer .btn-cancel:hover{background:var(--color-bg-active)}.git-section{margin-top:32px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.git-section-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.git-title{display:flex;align-items:center;gap:10px}.git-title svg{color:var(--color-primary)}.git-title h3{margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.git-repo-badge{display:inline-block;padding:3px 8px;font-size:11px;font-weight:500;color:#fff;background:#24292e;border-radius:4px}.dev-projects .btn-refresh{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;font-weight:500;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all .15s}.dev-projects .btn-refresh:hover{background:var(--color-bg-secondary)}.dev-projects .btn-refresh:disabled{opacity:.5;cursor:not-allowed}.commit-list{max-height:500px;overflow-y:auto}.commit-date-header{padding:12px 20px;font-size:13px;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);position:sticky;top:0}.commit-item{display:flex;align-items:flex-start;gap:16px;padding:14px 20px;border-bottom:1px solid var(--color-border);transition:background .15s}.commit-item:hover{background:var(--color-bg-tertiary)}.commit-time{flex-shrink:0;width:50px;font-size:12px;font-weight:500;color:var(--color-text-secondary);padding-top:2px}.commit-content{flex:1;min-width:0}.commit-message{font-size:14px;font-weight:500;color:var(--color-text-primary);line-height:1.4;margin-bottom:6px;word-break:break-word}.commit-meta{display:flex;gap:12px;font-size:12px;color:var(--color-text-secondary)}.commit-author{font-weight:500}.commit-hash{font-family:SF Mono,Menlo,Monaco,monospace;padding:1px 6px;background:var(--color-bg-secondary);border-radius:3px}.commit-link{flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:500;color:var(--color-primary);text-decoration:none;border:1px solid var(--color-primary);border-radius:4px;transition:all .15s}.commit-link:hover{background:var(--color-primary);color:#fff}.git-loading,.git-error,.git-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--color-text-secondary)}.git-loading .loading-spinner{width:24px;height:24px;margin-bottom:12px}.git-loading p,.git-error p,.git-empty p{margin:0;font-size:14px}.git-error{color:var(--color-error)}.git-error button{margin-top:12px}.layout.dark .git-section{background:var(--color-bg-tertiary);border-color:var(--color-border)}.layout.dark .git-section-header{background:var(--color-bg-hover);border-color:var(--color-border)}.layout.dark .git-title h3{color:var(--color-text-primary)}.layout.dark .dev-projects .btn-refresh{background:var(--color-bg-hover);border-color:var(--color-border);color:var(--color-text-primary)}.layout.dark .dev-projects .btn-refresh:hover{background:var(--color-bg-active)}.layout.dark .commit-date-header{background:var(--color-bg-hover);border-color:var(--color-border);color:var(--color-text-primary)}.layout.dark .commit-item{border-color:var(--color-border)}.layout.dark .commit-item:hover{background:var(--color-bg-hover)}.layout.dark .commit-message{color:var(--color-text-primary)}.layout.dark .commit-meta{color:var(--color-text-tertiary)}.layout.dark .commit-hash{background:var(--color-bg-active)}.layout.dark .git-loading,.layout.dark .git-empty{color:var(--color-text-tertiary)}.git-repo-count{display:inline-block;padding:2px 8px;font-size:12px;font-weight:500;color:var(--color-text-secondary);background:var(--color-border);border-radius:10px}.btn-add-repo{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;font-weight:500;color:var(--color-primary);background:transparent;border:1px solid var(--color-primary);border-radius:6px;cursor:pointer;transition:all .15s}.btn-add-repo:hover{background:var(--color-primary);color:#fff}.repo-tabs{display:flex;gap:8px;padding:12px 20px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);overflow-x:auto}.repo-tab{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all .15s;flex-shrink:0}.repo-tab:hover{border-color:var(--color-primary)}.repo-tab.active{border-color:var(--color-primary);background:#f0f7e6}.repo-type-badge{display:inline-block;padding:2px 6px;font-size:10px;font-weight:600;color:#fff;border-radius:3px;text-transform:uppercase}.repo-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.repo-delete-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:14px;color:var(--color-text-secondary);background:transparent;border:none;border-radius:3px;cursor:pointer;opacity:0;transition:all .15s}.repo-tab:hover .repo-delete-btn{opacity:1}.repo-delete-btn:hover{background:#fee2e2;color:var(--color-error)}.selected-repo-info{padding:10px 20px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.repo-url-display{display:flex;align-items:center;gap:12px}.repo-url-display a{flex:1;font-size:13px;color:var(--color-info);text-decoration:none;word-break:break-all}.repo-url-display a:hover{text-decoration:underline}.repo-url-display .btn-refresh{flex-shrink:0;padding:0 8px}.repo-dialog{width:100%;max-width:480px;background:var(--color-bg-primary);border-radius:12px;box-shadow:0 20px 60px #0003}.git-empty svg{width:40px;height:40px;margin-bottom:12px;opacity:.5}.git-empty button{margin-top:16px}.layout.dark .git-repo-count{background:var(--color-bg-active);color:var(--color-text-tertiary)}.layout.dark .btn-add-repo{border-color:var(--color-primary);color:var(--color-primary)}.layout.dark .btn-add-repo:hover{background:var(--color-primary);color:#fff}.layout.dark .repo-tabs{background:var(--color-bg-hover);border-color:var(--color-border)}.layout.dark .repo-tab{background:var(--color-bg-tertiary);border-color:var(--color-border)}.layout.dark .repo-tab:hover{border-color:var(--color-primary)}.layout.dark .repo-tab.active{border-color:var(--color-primary);background:#2a3a1a}.layout.dark .repo-name{color:var(--color-text-primary)}.layout.dark .repo-delete-btn{color:var(--color-text-tertiary)}.layout.dark .repo-delete-btn:hover{background:#4a2020;color:#ef4444}.layout.dark .selected-repo-info{background:var(--color-bg-hover);border-color:var(--color-border)}.layout.dark .repo-url-display a{color:#60a5fa}.layout.dark .repo-dialog{background:var(--color-bg-tertiary)}.dev-documents{max-width:1200px;margin:0 auto;padding:24px 32px;position:relative;min-height:calc(100vh - 60px)}.dev-documents .drag-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#6366f10f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dev-documents .drag-overlay.uploading{background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dev-documents .drag-overlay-content{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 64px;background:var(--color-bg-primary);border:3px dashed var(--color-primary);border-radius:20px;box-shadow:0 24px 64px #00000026;text-align:center}.dev-documents .drag-overlay-content svg{color:var(--color-primary)}.dev-documents .drag-overlay-content h3{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.dev-documents .drag-overlay-content p{font-size:14px;color:var(--color-text-secondary);margin:0}.dev-documents .bulk-spinner{width:36px;height:36px;border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:docSpin .8s linear infinite}@keyframes docSpin{to{transform:rotate(360deg)}}.dev-documents .bulk-bar{width:240px;height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.dev-documents .bulk-bar-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .3s ease}.dev-documents .empty-state.drop-zone{cursor:pointer;border:2px dashed var(--color-border);border-radius:16px;padding:80px 40px;transition:all .2s}.dev-documents .empty-state.drop-zone:hover{border-color:var(--color-primary);background:#6366f108}.dev-documents .empty-state.drop-zone svg{color:var(--color-primary);opacity:.6;margin-bottom:8px}.dev-documents .empty-state.drop-zone h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.dev-documents .empty-state.drop-zone p{color:var(--color-text-secondary)}.dev-documents .drop-zone-or{display:block;font-size:12px;color:var(--color-text-tertiary);margin:12px 0}.dev-documents .doc-attachment-badge{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--color-text-secondary);margin-left:auto}.dev-documents .attachments-section{margin-top:24px}.dev-documents .attachments-section h3{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.dev-documents .attachments-list{display:flex;flex-direction:column;gap:8px}.dev-documents .attachment-link{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;text-decoration:none;transition:all .15s}.dev-documents .attachment-link:hover{border-color:var(--color-primary);background:#6366f10a}.dev-documents .attachment-link svg{color:var(--color-primary);flex-shrink:0}.dev-documents .attachment-name{flex:1;font-size:13px;font-weight:500;color:var(--color-text-primary)}.dev-documents .attachment-size{font-size:12px;color:var(--color-text-tertiary)}.dev-documents .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dev-documents .page-header-left{display:flex;align-items:flex-start;gap:12px}.dev-documents .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.dev-documents .page-header-left>div{display:flex;flex-direction:column;gap:4px}.dev-documents .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.dev-documents .page-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.dev-documents .btn-primary{display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.dev-documents .btn-primary:hover{background:#7aa824}.dev-documents .btn-secondary{display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;cursor:pointer;transition:all .15s}.dev-documents .btn-secondary:hover{background:#f7f6f3;border-color:#c4c4c0}.dev-documents .btn-danger{display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#e03e3e;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.dev-documents .btn-danger:hover{background:#c72c2c}.doc-filters{display:flex;gap:12px;margin-bottom:20px}.search-box{display:flex;align-items:center;gap:8px;flex:1;max-width:300px;height:36px;padding:0 12px;background:#fff;border:1px solid #e3e2e0;border-radius:6px}.search-box svg{color:var(--color-text-secondary);flex-shrink:0}.search-box input{flex:1;border:none;outline:none;font-size:14px;color:var(--color-text-primary);background:transparent}.doc-filters select{height:36px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;cursor:pointer;min-width:140px}.doc-filters select:hover{border-color:#c4c4c0}.doc-list{display:flex;flex-direction:column;gap:12px}.doc-card{background:#fff;border:1px solid #e3e2e0;border-radius:10px;padding:18px 20px;cursor:pointer;transition:all .15s}.doc-card:hover{border-color:#89b929;box-shadow:0 2px 12px #0000000f}.doc-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.doc-type-badge{display:inline-block;padding:3px 8px;font-size:11px;font-weight:600;color:#fff;border-radius:4px}.doc-project{font-size:12px;color:var(--color-text-secondary);padding:2px 8px;background:#f7f6f3;border-radius:4px}.doc-title{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.doc-summary{font-size:14px;color:var(--color-text-secondary);margin:0 0 12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.doc-meta{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--color-text-secondary)}.meta-item{display:flex;align-items:center;gap:4px}.doc-author{margin-left:auto;font-weight:500}.doc-total{margin-top:20px;padding-top:16px;border-top:1px solid #e3e2e0;font-size:13px;color:var(--color-text-secondary);text-align:center}.doc-detail{background:#fff;border:1px solid #e3e2e0;border-radius:12px;padding:32px}.doc-detail-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.doc-detail-title{font-size:28px;font-weight:700;color:var(--color-text-primary);margin:0 0 16px;line-height:1.3}.doc-detail-meta{display:flex;gap:20px;padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid #e3e2e0;font-size:13px;color:var(--color-text-secondary)}.meeting-info{background:#f9fafb;border-radius:10px;padding:20px;margin-bottom:24px}.meeting-info-row{display:flex;gap:40px;margin-bottom:16px}.info-item label{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase}.info-item span{font-size:15px;color:var(--color-text-primary)}.attendees-section,.agenda-section{margin-top:16px}.attendees-section label,.agenda-section label{display:block;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;margin-bottom:8px}.attendee-list{display:flex;flex-wrap:wrap;gap:8px}.attendee-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:#fff;border:1px solid #e3e2e0;border-radius:20px;font-size:13px;color:var(--color-text-primary)}.attendee-chip.host{background:#e8f4d9;border-color:#89b929;color:#5a7d1a}.attendee-chip small{font-size:11px;color:var(--color-text-secondary)}.agenda-list{margin:0;padding-left:20px}.agenda-list li{padding:6px 0;font-size:14px;color:var(--color-text-primary);line-height:1.5}.doc-summary-section,.doc-content-section,.action-items-section{margin-bottom:24px}.doc-summary-section h3,.doc-content-section h3,.action-items-section h3{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #e3e2e0}.doc-summary-section p{font-size:15px;line-height:1.7;color:var(--color-text-primary);background:#fffef8;padding:16px;border-radius:8px;border-left:4px solid #89b929;margin:0}.doc-content{font-size:15px;line-height:1.8;color:var(--color-text-primary)}.action-items-list{display:flex;flex-direction:column;gap:8px}.action-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f7f6f3;border-radius:8px}.action-item.completed{opacity:.6;text-decoration:line-through}.action-task{font-size:14px;font-weight:500;color:var(--color-text-primary)}.action-meta{display:flex;gap:12px;font-size:13px}.action-meta .assignee{padding:2px 8px;background:#e0e7ff;color:#4f46e5;border-radius:4px}.action-meta .due-date{color:var(--color-text-secondary)}.tags-section{display:flex;flex-wrap:wrap;gap:8px;padding-top:16px;border-top:1px solid #e3e2e0}.tag{padding:4px 10px;background:#f3f4f6;color:#6b7280;border-radius:4px;font-size:13px}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:dialog-fade-in .15s ease}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}.dialog-content{width:100%;max-width:400px;background:#fff;border-radius:16px;padding:32px;text-align:center;box-shadow:0 20px 60px #00000040;animation:dialog-slide-up .2s ease}@keyframes dialog-slide-up{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.dialog-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;margin-bottom:16px}.dialog-icon.warning{background:#fef2f2;color:#e03e3e}.dialog-icon svg{width:28px;height:28px}.dialog-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.dialog-message{font-size:14px;color:var(--color-text-secondary);line-height:1.6;margin:0 0 24px}.dialog-message strong{color:var(--color-text-primary)}.dialog-actions{display:flex;gap:12px;justify-content:center}.dialog-actions .btn-secondary,.dialog-actions .btn-danger{flex:1;max-width:140px}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:40px var(--space-4);color:var(--color-text-secondary)}.loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:doc-spin .6s linear infinite}@keyframes doc-spin{to{transform:rotate(360deg)}}.loading-state p,.empty-state p{margin-top:12px;font-size:14px}.empty-state svg{width:48px;height:48px;opacity:.5}.empty-state .btn-primary{margin-top:16px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100;animation:toast-slide-up .3s ease}.toast.success{background:#0f7b0f}@media (max-width: 768px){.dev-documents{padding:16px}.dev-documents .page-header{flex-direction:column;gap:16px;align-items:flex-start}.doc-filters{flex-direction:column}.search-box{max-width:none}.form-row{flex-direction:column}.meeting-info-row{flex-direction:column;gap:16px}.modal-content{max-height:100vh;border-radius:0}}.layout.dark .dev-documents .page-title{color:#ffffffcf}.layout.dark .doc-card{background:#252525;border-color:#3f3f3f}.layout.dark .doc-card:hover{border-color:#89b929}.layout.dark .doc-title,.layout.dark .doc-detail-title{color:#ffffffcf}.layout.dark .doc-project{background:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .search-box,.layout.dark .doc-filters select{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .search-box input{color:#ffffffcf}.layout.dark .doc-detail{background:#252525;border-color:#3f3f3f}.layout.dark .doc-detail-meta{border-color:#3f3f3f}.layout.dark .meeting-info{background:#2f2f2f}.layout.dark .info-item span{color:#ffffffcf}.layout.dark .attendee-chip{background:#3f3f3f;border-color:#4f4f4f;color:#ffffffcf}.layout.dark .attendee-chip.host{background:#2a3a1a;border-color:#89b929}.layout.dark .agenda-list li{color:#ffffffcf}.layout.dark .doc-summary-section p{background:#2a2a1a;color:#ffffffcf}.layout.dark .doc-content{color:#ffffffcf}.layout.dark .action-item{background:#2f2f2f}.layout.dark .action-task{color:#ffffffcf}.layout.dark .action-meta .assignee{background:#2a2a4a;color:#a5b4fc}.layout.dark .tag{background:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .modal-content{background:#252525}.layout.dark .modal-header,.layout.dark .modal-footer{border-color:#3f3f3f}.layout.dark .modal-header h2{color:#ffffffcf}.layout.dark .modal-footer{background:#2f2f2f}.layout.dark .form-group label{color:#ffffffcf}.layout.dark .form-group input,.layout.dark .form-group select,.layout.dark .form-group textarea,.layout.dark .dynamic-row input,.layout.dark .dynamic-row select{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .form-section{border-color:#3f3f3f}.layout.dark .form-section h4{color:#ffffffcf}.layout.dark .doc-summary-section h3,.layout.dark .doc-content-section h3,.layout.dark .action-items-section h3{color:#ffffffcf;border-color:#3f3f3f}.layout.dark .tags-section{border-color:#3f3f3f}.layout.dark .dialog-content{background:#252525}.layout.dark .dialog-icon.warning{background:#3f2020}.layout.dark .dialog-title{color:#ffffffcf}.layout.dark .dialog-message{color:var(--color-text-tertiary)}.layout.dark .dialog-message strong{color:#ffffffcf}.dev-documents .doc-grouped{display:flex;flex-direction:column;gap:20px}.dev-documents .doc-group-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.dev-documents .doc-group-header svg{width:14px;height:14px;color:var(--color-text-tertiary)}.dev-documents .doc-group-name{font-size:13px;font-weight:600;color:var(--color-text-primary)}.dev-documents .doc-group-count{font-size:11px;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:1px 7px;border-radius:10px}.dev-documents .doc-table{width:100%;border-collapse:collapse;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.dev-documents .doc-table tr{border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .1s}.dev-documents .doc-table tr:last-child{border-bottom:none}.dev-documents .doc-table tr:hover{background:var(--color-bg-hover, rgba(0,0,0,.02))}.dev-documents .doc-table td{padding:9px 12px;font-size:13px;vertical-align:middle}.dev-documents .dt-type{width:70px}.dev-documents .dt-type-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px;color:#fff;white-space:nowrap}.dev-documents .dt-title{font-weight:500;color:var(--color-text-primary)}.dev-documents .dt-author{width:80px;font-size:12px;color:var(--color-text-tertiary)}.dev-documents .dt-views{width:60px;font-size:11px;color:var(--color-text-tertiary);display:flex;align-items:center;gap:3px}.dev-documents .dt-views svg{width:12px;height:12px}.dev-documents .doc-viewer{max-width:820px;margin:0 auto}.dev-documents .doc-viewer-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dev-documents .doc-back-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--color-border);background:var(--color-bg-primary);border-radius:6px;font-size:13px;color:var(--color-text-secondary);cursor:pointer}.dev-documents .doc-back-btn:hover{color:var(--color-text-primary);border-color:var(--color-text-tertiary)}.dev-documents .doc-topbar-actions{display:flex;gap:6px}.dev-documents .doc-action-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--color-border);background:transparent;border-radius:6px;font-size:12px;font-weight:500;color:var(--color-text-secondary);cursor:pointer}.dev-documents .doc-action-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.dev-documents .doc-action-btn.delete:hover{border-color:#ef4444;color:#ef4444}.dev-documents .doc-article{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;padding:40px 48px}.dev-documents .doc-article-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.dev-documents .doc-article-project{font-size:12px;padding:2px 8px;background:#6366f114;color:var(--color-primary);border-radius:4px}.dev-documents .doc-article-info{font-size:12px;color:var(--color-text-tertiary)}.dev-documents .doc-article-title{font-size:28px;font-weight:700;color:var(--color-text-primary);margin:0 0 20px;line-height:1.3;letter-spacing:-.01em}.dev-documents .doc-meeting-bar{display:flex;flex-wrap:wrap;gap:16px;padding:12px 16px;background:var(--color-bg-tertiary);border-radius:8px;margin-bottom:20px;font-size:13px;color:var(--color-text-secondary)}.dev-documents .doc-meeting-bar span{display:flex;align-items:center;gap:4px}.dev-documents .doc-meeting-bar svg{width:14px;height:14px;color:var(--color-text-tertiary)}.dev-documents .doc-article-summary{margin:0 0 24px;padding:14px 18px;border-left:3px solid var(--color-primary);background:#6366f10a;border-radius:0 6px 6px 0;font-size:14px;color:var(--color-text-secondary);line-height:1.6}.dev-documents .doc-article-body{font-size:15px;line-height:1.75;color:var(--color-text-primary);word-break:break-word}.dev-documents .doc-article-body h1{font-size:24px;font-weight:700;margin:32px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--color-border)}.dev-documents .doc-article-body h2{font-size:20px;font-weight:600;margin:28px 0 10px}.dev-documents .doc-article-body h3{font-size:17px;font-weight:600;margin:24px 0 8px}.dev-documents .doc-article-body p{margin:6px 0}.dev-documents .doc-article-body ul,.dev-documents .doc-article-body ol{padding-left:24px;margin:6px 0}.dev-documents .doc-article-body li{margin:3px 0}.dev-documents .doc-article-body li>p{margin:2px 0}.dev-documents .doc-article-body blockquote{margin:12px 0;padding:10px 16px;border-left:3px solid var(--color-border);background:var(--color-bg-tertiary);border-radius:0 6px 6px 0;color:var(--color-text-secondary)}.dev-documents .doc-article-body pre{margin:12px 0;padding:16px;background:#1e1e2e;color:#cdd6f4;border-radius:8px;overflow-x:auto;font-size:13px;line-height:1.5;font-family:SF Mono,Menlo,Consolas,monospace}.dev-documents .doc-article-body code{font-family:SF Mono,Menlo,Consolas,monospace;font-size:.9em;padding:2px 6px;background:var(--color-bg-tertiary);border-radius:4px;color:#e06c75}.dev-documents .doc-article-body pre code{padding:0;background:none;color:inherit;border-radius:0}.dev-documents .doc-article-body table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}.dev-documents .doc-article-body table th,.dev-documents .doc-article-body table td{border:1px solid var(--color-border);padding:8px 12px;text-align:left}.dev-documents .doc-article-body table th{background:var(--color-bg-tertiary);font-weight:600}.dev-documents .doc-article-body img{max-width:100%;height:auto;border-radius:6px;margin:8px 0}.dev-documents .doc-article-body hr{border:none;border-top:1px solid var(--color-border);margin:24px 0}.dev-documents .doc-article-body a{color:var(--color-primary);text-decoration:none}.dev-documents .doc-article-body a:hover{text-decoration:underline}.dev-documents .doc-article-body strong{font-weight:600}.dev-documents .doc-article-body mark{background:#f59e0b33;padding:1px 3px;border-radius:2px}.dev-documents .doc-article-body details{margin:8px 0;border:1px solid var(--color-border);border-radius:6px;padding:0}.dev-documents .doc-article-body details summary{padding:10px 14px;cursor:pointer;font-weight:500;background:var(--color-bg-tertiary);border-radius:6px}.dev-documents .doc-article-body details[open] summary{border-radius:6px 6px 0 0;border-bottom:1px solid var(--color-border)}.dev-documents .doc-article-body details>:not(summary){padding:0 14px}.dev-documents .doc-article-body ul[data-type=taskList]{list-style:none;padding-left:0}.dev-documents .doc-article-body li[data-type=taskItem]{display:flex;align-items:flex-start;gap:8px}.dev-documents .doc-article-body li[data-type=taskItem] label{margin-top:3px}@media (max-width: 768px){.dev-documents .doc-article{padding:24px 20px}.dev-documents .doc-article-title{font-size:22px}}.doc-form-page{max-width:860px;margin:0 auto;padding:var(--space-8) 40px 80px}.form-page-header{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-bottom:var(--space-8)}.form-page-title{font-size:28px;font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-1);letter-spacing:-.5px}.form-page-desc{font-size:var(--text-lg);color:var(--color-text-secondary);margin:0}.doc-form{display:flex;flex-direction:column;gap:0}.form-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-sm)}.doc-form-page .form-section{padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--color-border-light)}.doc-form-page .form-section:last-child{border-bottom:none}.doc-form-page .section-title{font-size:var(--text-xl);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-5);display:flex;align-items:center;gap:var(--space-2)}.doc-form-page .section-title:before{content:"";width:4px;height:16px;background:var(--color-primary);border-radius:var(--radius-sm)}.doc-form-page .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.doc-form-page .section-header .section-title{margin:0}.doc-form-page .form-row{display:flex;gap:var(--space-5);margin-bottom:var(--space-5)}.doc-form-page .form-row:last-child{margin-bottom:0}.doc-form-page .form-group{flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.doc-form-page .form-group.flex-2{flex:2}.doc-form-page .form-group>label{font-size:var(--text-md);font-weight:600;color:var(--color-text-secondary)}.doc-form-page .form-group>label.required:after{content:" *";color:var(--color-error)}.doc-form-page .form-group input,.doc-form-page .form-group select,.doc-form-page .form-group textarea{height:44px;padding:0 var(--space-3);font-size:15px;color:var(--color-text-primary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-xl);outline:none;transition:all var(--transition-normal)}.doc-form-page .form-group textarea{height:auto;padding:var(--space-3);min-height:100px;resize:vertical;line-height:1.7}.doc-form-page .form-group input:hover,.doc-form-page .form-group select:hover,.doc-form-page .form-group textarea:hover{border-color:var(--color-border-hover);background:var(--color-bg-primary)}.doc-form-page .form-group input:focus,.doc-form-page .form-group select:focus,.doc-form-page .form-group textarea:focus{border-color:var(--color-primary);background:var(--color-bg-primary);box-shadow:0 0 0 4px var(--color-primary-light)}.doc-form-page .form-group input::placeholder,.doc-form-page .form-group textarea::placeholder{color:var(--color-text-tertiary)}.doc-form-page .btn-add-small{display:inline-flex;align-items:center;gap:var(--space-1);height:34px;padding:0 var(--space-3);font-size:var(--text-md);font-weight:600;color:var(--color-primary);background:var(--color-primary-light);border:1px solid transparent;border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-normal)}.doc-form-page .btn-add-small:hover{background:var(--color-primary);color:#fff}.doc-form-page .btn-add-small svg{width:14px;height:14px}.doc-form-page .dynamic-list{display:flex;flex-direction:column;gap:var(--space-3)}.doc-form-page .dynamic-row{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);transition:all var(--transition-normal)}.doc-form-page .dynamic-row:hover{background:var(--color-bg-secondary);border-color:var(--color-border-hover)}.doc-form-page .dynamic-row input{flex:1;height:40px;padding:0 var(--space-3);font-size:var(--text-lg);color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);outline:none;transition:all var(--transition-normal)}.doc-form-page .dynamic-row input.flex-2{flex:2}.doc-form-page .dynamic-row input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.doc-form-page .dynamic-row select{height:40px;padding:0 var(--space-3);font-size:var(--text-lg);color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);outline:none;min-width:110px;cursor:pointer;transition:all var(--transition-normal)}.doc-form-page .dynamic-row select:focus{border-color:var(--color-primary)}.doc-form-page .row-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:var(--text-md);font-weight:700;color:var(--color-text-secondary);background:var(--color-border);border-radius:var(--radius-xl);flex-shrink:0}.doc-form-page .btn-remove{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-xl);color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;transition:all var(--transition-normal)}.doc-form-page .btn-remove:hover{background:var(--color-error-light);border-color:var(--color-error-light);color:var(--color-error)}.doc-form-page .btn-remove svg{width:16px;height:16px}.doc-form-page .empty-list{padding:var(--space-8);text-align:center;background:var(--color-bg-tertiary);border:2px dashed var(--color-border);border-radius:var(--radius-2xl)}.doc-form-page .empty-list p{margin:0;font-size:var(--text-lg);color:var(--color-text-tertiary);font-weight:500}.doc-form-page .form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.doc-form-page .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:46px;min-width:140px;padding:0 var(--space-6);font-size:15px;font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-2xl);cursor:pointer;transition:all var(--transition-normal)}.doc-form-page .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.doc-form-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.doc-form-page .btn-primary svg{width:18px;height:18px}.doc-form-page .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:46px;min-width:100px;padding:0 var(--space-6);font-size:15px;font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);cursor:pointer;transition:all var(--transition-normal)}.doc-form-page .btn-secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-border-hover);color:var(--color-text-primary)}.doc-form-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-secondary)}.doc-form-page .loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:form-spin .7s linear infinite}.doc-form-page .loading-state p{margin-top:var(--space-5);font-size:var(--text-lg);font-weight:500}.doc-form-page .toast{position:fixed;bottom:var(--space-8);left:50%;transform:translate(-50%);padding:var(--space-4) var(--space-8);font-size:var(--text-lg);font-weight:600;color:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);z-index:1100;animation:toast-slide-up .3s ease}.doc-form-page .toast.success{background:var(--color-primary)}.doc-form-page .toast.error{background:var(--color-error)}@keyframes toast-slide-up{0%{opacity:0;transform:translate(-50%) translateY(var(--space-6))}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 768px){.doc-form-page{padding:var(--space-5) var(--space-4) 60px}.form-page-header{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.form-page-title{font-size:var(--text-3xl)}.doc-form-page .form-section{padding:var(--space-5)}.doc-form-page .form-row{flex-direction:column;gap:var(--space-4)}.doc-form-page .dynamic-row{flex-wrap:wrap;padding:var(--space-3)}.doc-form-page .dynamic-row input,.doc-form-page .dynamic-row select{min-width:0}.doc-form-page .action-item-row input[type=date]{width:100%}.doc-form-page .form-actions{flex-direction:column-reverse;gap:var(--space-3)}.doc-form-page .btn-primary,.doc-form-page .btn-secondary{width:100%;justify-content:center}}.layout.dark .doc-form-page .form-card{box-shadow:none}.layout.dark .doc-form-page .empty-list{background:var(--color-bg-tertiary)}.layout.dark .doc-form-page .btn-remove:hover{background:#e03e3e26;border-color:#e03e3e33}.doc-form-page .file-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 20px;border:2px dashed var(--color-border);border-radius:10px;cursor:pointer;transition:all .2s;color:var(--color-text-secondary);background:var(--color-bg-tertiary)}.doc-form-page .file-drop-zone:hover,.doc-form-page .file-drop-zone.drag-over{border-color:var(--color-primary);background:#6366f10a;color:var(--color-primary)}.doc-form-page .file-drop-zone.uploading{pointer-events:none;opacity:.7}.doc-form-page .file-drop-zone p{font-size:14px;font-weight:500;margin:0}.doc-form-page .file-hint{font-size:12px;color:var(--color-text-tertiary)}.doc-form-page .loading-spinner.small{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.doc-form-page .attachment-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.doc-form-page .attachment-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px}.doc-form-page .attachment-item svg{color:var(--color-primary);flex-shrink:0}.doc-form-page .attachment-name{flex:1;font-size:13px;font-weight:500;color:var(--color-text-primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-form-page .attachment-name:hover{color:var(--color-primary);text-decoration:underline}.doc-form-page .attachment-size{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap}.doc-form-page .bulk-progress-text{font-size:15px;font-weight:600;color:var(--color-primary)}.doc-form-page .bulk-progress-bar{width:200px;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden;margin-top:4px}.doc-form-page .bulk-progress-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .3s ease}.git-dashboard{max-width:1200px;margin:0 auto;padding:24px 32px}.git-dashboard .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px}.git-dashboard .page-header-left{display:flex;align-items:flex-start;gap:12px;flex:1}.git-dashboard .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.git-dashboard .page-header-left>div{display:flex;flex-direction:column;gap:2px}.page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.git-dashboard .page-header-right{display:flex;align-items:center;gap:8px}.project-select{height:32px;padding:0 28px 0 10px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image: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='%23787774' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;min-width:160px;transition:border-color .15s}.project-select:hover{border-color:var(--color-border)}.project-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #89b9291a}.git-dashboard .btn-refresh{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-text-secondary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;transition:all .15s}.git-dashboard .btn-refresh:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-border)}.git-dashboard .btn-refresh:disabled{opacity:.5;cursor:not-allowed}.git-dashboard .btn-refresh svg{width:18px;height:18px}.git-dashboard .page-header-right .notion-checkbox-label{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:32px;padding:0 12px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;font-size:13px;color:var(--color-text-primary);transition:all .15s;line-height:1}.git-dashboard .page-header-right .notion-checkbox-label:hover{border-color:var(--color-border);background:var(--color-bg-secondary)}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.summary-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;transition:all .15s}.summary-card:hover{border-color:var(--color-border)}.summary-card.highlight{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-color:transparent}.summary-card.highlight .card-content .card-value,.summary-card.highlight .card-content .card-label{color:#fff}.summary-card.highlight .card-icon{background:#fff3;color:#fff}.card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;flex-shrink:0}.card-icon svg{width:18px;height:18px}.card-icon.commits{background:#89b9291f;color:var(--color-primary)}.card-icon.authors{background:#2f80ed1f;color:#2f80ed}.card-icon.branches{background:#9b59b61f;color:#9b59b6}.card-icon.repos{background:#e67e221f;color:#e67e22}.card-content{display:flex;flex-direction:column;align-items:flex-start;gap:1px}.card-value{font-size:20px;font-weight:700;color:var(--color-text-primary);line-height:1}.card-label{font-size:11px;color:var(--color-text-secondary)}.repo-tabs-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.repo-tabs{display:flex;gap:4px;background:var(--color-bg-hover);padding:3px;border-radius:6px}.repo-tab{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s}.repo-tab:hover{color:var(--color-text-primary)}.repo-tab.active{background:var(--color-bg-primary);color:var(--color-text-primary);box-shadow:0 1px 3px #00000014}.repo-type-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.repo-tab-name{font-weight:500}.repo-type-label{display:none}.last-updated{font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}.dashboard-content{display:grid;grid-template-columns:1fr 280px;gap:16px}.commits-panel{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border);background:var(--color-bg-tertiary)}.panel-header h2{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0}.panel-header h2 svg{width:16px;height:16px;color:var(--color-text-secondary)}.branch-selector{display:flex;align-items:center;gap:6px}.branch-selector svg{width:14px;height:14px;color:#9b59b6}.branch-select{height:28px;padding:0 24px 0 8px;font-size:12px;font-weight:500;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23787774' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;min-width:120px;transition:border-color .15s}.branch-select:hover{border-color:var(--color-border)}.branch-select:focus{outline:none;border-color:#9b59b6;box-shadow:0 0 0 2px #9b59b61a}.panel-loading,.panel-empty{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--color-text-secondary);font-size:13px}.commits-timeline{max-height:520px;overflow-y:auto}.commit-date-group{border-bottom:1px solid var(--color-border)}.commit-date-group:last-child{border-bottom:none}.date-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--color-bg-tertiary);position:sticky;top:0;z-index:1;border-bottom:1px solid var(--color-border)}.date-text{font-size:12px;font-weight:600;color:var(--color-text-primary)}.date-count{font-size:11px;color:var(--color-text-tertiary)}.commits-list{padding:6px 16px 12px}.commit-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-border)}.commit-item:last-child{border-bottom:none}.commit-dot{width:8px;height:8px;background:var(--color-primary);border-radius:50%;flex-shrink:0;margin-top:4px}.commit-info{flex:1;min-width:0}.commit-message{font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:4px;line-height:1.4;word-break:break-word}.commit-meta{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--color-text-tertiary);flex-wrap:wrap}.commit-author{display:flex;align-items:center;gap:3px;color:var(--color-text-secondary);font-weight:500}.commit-author svg{width:12px;height:12px;opacity:.6}.commit-time{color:var(--color-text-tertiary)}.commit-hash{font-family:SF Mono,Monaco,monospace;font-size:10px;color:var(--color-text-tertiary);background:var(--color-bg-secondary);padding:1px 5px;border-radius:3px}.sidebar-panel{display:flex;flex-direction:column;gap:16px}.branches-section,.authors-section,.project-info-section{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.section-header{padding:10px 14px;border-bottom:1px solid var(--color-border);background:var(--color-bg-tertiary)}.section-header h3{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0}.section-header h3 svg{width:14px;height:14px;color:var(--color-text-secondary)}.branches-list{max-height:200px;overflow-y:auto}.branch-item{padding:10px 14px;border-bottom:1px solid var(--color-border)}.branch-item:last-child{border-bottom:none}.branch-item.default{background:var(--color-bg-tertiary)}.branch-name{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--color-text-primary);margin-bottom:4px}.branch-name svg{width:12px;height:12px;color:#9b59b6;flex-shrink:0}.default-badge,.protected-badge{font-size:9px;font-weight:600;padding:1px 5px;border-radius:3px}.default-badge{background:var(--color-primary);color:#fff}.protected-badge{background:#e67e22;color:#fff}.branch-last-commit{font-size:11px;color:var(--color-text-tertiary);padding-left:18px}.branch-last-commit .commit-msg{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:1px}.branch-last-commit .commit-author{font-size:10px;color:var(--color-text-tertiary)}.authors-list{padding:6px 0}.author-item{display:flex;align-items:center;gap:10px;padding:6px 14px}.author-avatar{width:28px;height:28px;background:linear-gradient(135deg,#2f80ed,#9b59b6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;flex-shrink:0}.author-info{display:flex;flex-direction:column;gap:1px}.author-name{font-size:12px;font-weight:500;color:var(--color-text-primary)}.author-commits{font-size:11px;color:var(--color-text-tertiary)}.project-info{padding:10px 14px}.info-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--color-border)}.info-label{font-size:12px;color:var(--color-text-secondary)}.info-value{font-size:12px;font-weight:500;color:var(--color-text-primary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:250px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center;padding:40px var(--space-4);color:var(--color-text-secondary)}.empty-state svg{width:40px;height:40px;color:var(--color-text-tertiary);margin-bottom:12px}.empty-state h3{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 6px}.empty-state p{font-size:13px;color:var(--color-text-secondary);margin:0}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.loading-state p{margin-top:12px;font-size:13px;color:var(--color-text-secondary)}.loading-spinner{width:28px;height:28px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}.loading-spinner.small{width:20px;height:20px}.commit-item.clickable{cursor:pointer;border-radius:4px;margin:0 -8px;padding:10px 8px;transition:background .15s}.commit-item.clickable:hover{background:var(--color-bg-secondary)}.commit-item.clickable:hover .commit-message{color:var(--color-primary)}.commit-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.commit-modal{background:var(--color-bg-primary);border-radius:8px;width:100%;max-width:900px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.commit-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.commit-modal-title{display:flex;align-items:center;gap:10px}.commit-modal-title svg{color:var(--color-primary)}.commit-modal-title h2{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0}.btn-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.btn-close:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.commit-modal-body{flex:1;overflow-y:auto;padding:20px}.commit-detail-info{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--color-border)}.commit-detail-message{font-size:15px;font-weight:600;color:var(--color-text-primary);line-height:1.5;margin-bottom:10px;white-space:pre-wrap}.commit-detail-meta{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--color-text-secondary);flex-wrap:wrap}.commit-detail-meta .meta-item{display:flex;align-items:center;gap:4px}.commit-detail-meta .meta-item svg{width:14px;height:14px;opacity:.6}.commit-detail-meta .meta-item.hash{font-family:SF Mono,Monaco,monospace;font-size:11px;background:var(--color-bg-secondary);padding:2px 8px;border-radius:4px}.commit-detail-meta .meta-link{color:var(--color-primary);text-decoration:none;font-weight:500}.commit-detail-meta .meta-link:hover{text-decoration:underline}.commit-modal-loading,.commit-modal-empty{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--color-text-secondary);font-size:13px}.diff-stats{display:flex;align-items:center;gap:16px;padding:12px 14px;background:var(--color-bg-tertiary);border-radius:6px;margin-bottom:16px}.diff-stats .stat-item{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500}.diff-stats .stat-item.files{color:var(--color-text-secondary)}.diff-stats .stat-item.additions{color:#22c55e}.diff-stats .stat-item.deletions{color:#ef4444}.diff-files{display:flex;flex-direction:column;gap:12px}.diff-file{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.diff-file-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.diff-file-header svg{color:var(--color-text-secondary);flex-shrink:0}.diff-file-header .file-path{font-size:12px;font-weight:500;color:var(--color-text-primary);flex:1;word-break:break-all}.file-badges{display:flex;gap:6px}.file-badges .badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px}.file-badges .badge.new{background:#22c55e1f;color:#22c55e}.file-badges .badge.deleted{background:#ef44441f;color:#ef4444}.file-badges .badge.renamed{background:#3b82f61f;color:#3b82f6}.diff-content{margin:0;padding:0;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;line-height:1.6;overflow-x:auto;max-height:400px;overflow-y:auto}.diff-line{padding:1px 14px;white-space:pre;border-left:3px solid transparent}.diff-line.addition{background:#22c55e1a;border-left-color:#22c55e;color:#166534}.diff-line.deletion{background:#ef44441a;border-left-color:#ef4444;color:#991b1b}.diff-line.hunk{background:#3b82f614;color:#3b82f6;font-weight:500}@media (max-width: 1024px){.git-dashboard{padding:16px 24px}.summary-cards{grid-template-columns:repeat(2,1fr)}.dashboard-content{grid-template-columns:1fr}.sidebar-panel{flex-direction:row;flex-wrap:wrap}.branches-section,.authors-section,.project-info-section{flex:1;min-width:240px}}@media (max-width: 768px){.git-dashboard{padding:12px 16px}.git-dashboard .page-header{flex-direction:column;gap:12px}.git-dashboard .page-header-right{width:100%;flex-wrap:wrap}.project-select{flex:1;min-width:120px}.summary-cards{grid-template-columns:1fr 1fr;gap:8px}.summary-card{padding:12px}.card-value{font-size:18px}.repo-tabs-container{flex-direction:column;align-items:flex-start}}.layout.dark .page-title{color:#ffffffcf}.layout.dark .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .project-select{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .project-select:hover{border-color:#4f4f4f}.layout.dark .git-dashboard .btn-refresh{background:#2f2f2f;border-color:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .git-dashboard .btn-refresh:hover:not(:disabled){background:#3f3f3f;color:#ffffffcf}.layout.dark .page-header-right .notion-checkbox-label{background:#2f2f2f;border-color:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .page-header-right .notion-checkbox-label:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .summary-card{background:#252525;border-color:#3f3f3f}.layout.dark .summary-card:hover{border-color:#4f4f4f}.layout.dark .card-value{color:#ffffffcf}.layout.dark .card-label{color:var(--color-text-tertiary)}.layout.dark .card-icon.commits{background:#89b92926}.layout.dark .card-icon.authors{background:#2f80ed26}.layout.dark .card-icon.branches{background:#9b59b626}.layout.dark .card-icon.repos{background:#e67e2226}.layout.dark .repo-tabs{background:#2f2f2f}.layout.dark .repo-tab{color:var(--color-text-tertiary)}.layout.dark .repo-tab:hover{color:#ffffffcf}.layout.dark .repo-tab.active{background:#3f3f3f;color:#ffffffcf;box-shadow:none}.layout.dark .commits-panel,.layout.dark .branches-section,.layout.dark .authors-section,.layout.dark .project-info-section{background:#252525;border-color:#3f3f3f}.layout.dark .panel-header,.layout.dark .section-header{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .panel-header h2,.layout.dark .section-header h3{color:#ffffffcf}.layout.dark .date-header{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .date-text{color:#ffffffcf}.layout.dark .commit-date-group,.layout.dark .commit-item,.layout.dark .branch-item,.layout.dark .info-row{border-color:#3f3f3f}.layout.dark .branch-item.default{background:#2a2a2a}.layout.dark .commit-message,.layout.dark .branch-name,.layout.dark .author-name,.layout.dark .info-value{color:#ffffffcf}.layout.dark .commit-hash{background:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .empty-state,.layout.dark .loading-state{background:#252525;border-color:#3f3f3f}.layout.dark .empty-state h3{color:#ffffffcf}.layout.dark .loading-spinner{border-color:#3f3f3f;border-top-color:var(--color-primary)}.layout.dark .commit-item.clickable:hover{background:#3f3f3f}.layout.dark .commit-modal{background:#252525}.layout.dark .commit-modal-header{border-color:#3f3f3f}.layout.dark .commit-modal-title h2{color:#ffffffcf}.layout.dark .btn-close{color:var(--color-text-tertiary)}.layout.dark .btn-close:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .commit-detail-info{border-color:#3f3f3f}.layout.dark .commit-detail-message{color:#ffffffcf}.layout.dark .commit-detail-meta .meta-item.hash{background:#3f3f3f}.layout.dark .diff-stats{background:#2f2f2f}.layout.dark .diff-file{border-color:#3f3f3f}.layout.dark .diff-file-header{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .diff-file-header .file-path{color:#ffffffcf}.layout.dark .diff-line.addition{background:#22c55e26;color:#86efac}.layout.dark .diff-line.deletion{background:#ef444426;color:#fca5a5}.layout.dark .diff-line.hunk{background:#3b82f61f;color:#93c5fd}.layout.dark .branch-select{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .branch-select:hover{border-color:#4f4f4f}.layout.dark .branch-select:focus{border-color:#9b59b6}.dev-api-docs{max-width:1400px;margin:0 auto;padding:24px 32px;height:calc(100vh - 60px);display:flex;flex-direction:column}.dev-api-docs .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-shrink:0}.dev-api-docs .page-header-left{display:flex;align-items:flex-start;gap:12px}.dev-api-docs .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.dev-api-docs .page-header-left>div{display:flex;flex-direction:column;gap:4px}.dev-api-docs .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.dev-api-docs .page-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.dev-api-docs .btn-primary{display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.dev-api-docs .btn-primary:hover{background:#7aa824}.api-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-shrink:0}.api-toolbar .search-box{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;background:#fff;border:1px solid #e3e2e0;border-radius:6px;flex:1;max-width:300px}.api-toolbar .search-box svg{color:var(--color-text-secondary);flex-shrink:0}.api-toolbar .search-box input{flex:1;border:none;outline:none;font-size:14px;color:var(--color-text-primary);background:transparent}.api-toolbar .search-box input::placeholder{color:var(--color-text-tertiary)}.api-toolbar .view-toggle{display:inline-flex;background-color:#f1f1ef;border-radius:8px;padding:3px}.api-toolbar .view-toggle button{padding:6px 12px;font-size:13px;font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.api-toolbar .view-toggle button:hover{color:var(--color-text-primary)}.api-toolbar .view-toggle button.active{background-color:#fff;color:var(--color-text-primary);box-shadow:0 1px 2px #0000000f}.api-toolbar .filter-select{height:36px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;cursor:pointer;min-width:140px}.api-toolbar .filter-select:focus{border-color:#89b929}.api-content{display:grid;grid-template-columns:360px 1fr;gap:20px;flex:1;min-height:0}.api-list-panel{background:#fff;border:1px solid #e3e2e0;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.api-groups{flex:1;overflow-y:auto;padding:8px}.api-group{margin-bottom:4px}.group-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .15s;text-align:left}.group-header:hover{background:#f7f6f3}.group-header svg{color:var(--color-text-secondary);transition:transform .15s;flex-shrink:0}.group-header.expanded svg{transform:rotate(180deg)}.group-header .group-name{flex:1;font-size:14px;font-weight:600;color:var(--color-text-primary)}.group-header .group-count{font-size:12px;color:var(--color-text-secondary);background:#f1f1ef;padding:2px 8px;border-radius:10px}.group-items{padding-left:8px}.api-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .15s}.api-item:hover{background:#f7f6f3}.api-item.selected{background:#e8f4d9}.api-item.deprecated{opacity:.6}.api-item.deprecated .api-endpoint{text-decoration:line-through}.method-badge{display:inline-block;padding:2px 6px;font-size:10px;font-weight:700;color:#fff;border-radius:3px;text-transform:uppercase;flex-shrink:0}.method-badge.large{padding:4px 10px;font-size:12px}.api-endpoint{flex:1;font-size:13px;font-family:SF Mono,Monaco,Consolas,monospace;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-badge{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:#e9a23b;flex-shrink:0}.api-detail-panel{background:#fff;border:1px solid #e3e2e0;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.api-detail{flex:1;overflow-y:auto;padding:24px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #e3e2e0}.detail-title-row{display:flex;align-items:center;gap:12px}.detail-title-row h2{margin:0;font-size:20px;font-weight:600;color:var(--color-text-primary)}.deprecated-badge{padding:4px 8px;font-size:11px;font-weight:600;color:#e03e3e;background:#fde8e8;border-radius:4px}.detail-actions{display:flex;gap:8px}.detail-actions .btn-edit,.detail-actions .btn-delete{padding:6px 12px;font-size:13px;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.detail-actions .btn-edit{color:var(--color-text-primary);background:#f1f1ef}.detail-actions .btn-edit:hover{background:#e3e2e0}.detail-actions .btn-delete{color:#e03e3e;background:#fde8e8}.detail-actions .btn-delete:hover{background:#fcc}.detail-info{margin-bottom:24px}.info-row{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid #f1f1ef}.info-row:last-child{border-bottom:none}.info-row .label{width:100px;flex-shrink:0;font-size:13px;font-weight:500;color:var(--color-text-secondary)}.info-row span:not(.label),.info-row p{font-size:14px;color:var(--color-text-primary);margin:0}.info-row code.endpoint{font-family:SF Mono,Monaco,Consolas,monospace;font-size:14px;padding:4px 8px;background:#f7f6f3;border-radius:4px;color:var(--color-text-primary)}.detail-section{margin-top:24px}.detail-section h3{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.code-block{padding:16px;font-size:13px;font-family:SF Mono,Monaco,Consolas,monospace;background:#f7f6f3;border-radius:6px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--color-text-primary);margin:0}.no-selection{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-secondary)}.no-selection svg{opacity:.5;margin-bottom:16px}.no-selection p{font-size:14px;margin:0}.api-list-panel .empty-state,.api-list-panel .loading-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-secondary);padding:40px 20px}.api-list-panel .empty-state svg{opacity:.5;margin-bottom:16px}.api-list-panel .empty-state p{font-size:14px;margin:0 0 16px}.api-list-panel .btn-secondary{padding:8px 16px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:#f1f1ef;border:none;border-radius:6px;cursor:pointer}.api-list-panel .btn-secondary:hover{background:#e3e2e0}.api-list-panel .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:api-spin .6s linear infinite}.api-list-panel .loading-state p{margin-top:16px;font-size:14px}@keyframes api-spin{to{transform:rotate(360deg)}}.api-dialog{width:100%;max-width:700px;max-height:90vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e3e2e0;flex-shrink:0}.dialog-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.dialog-header .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;color:var(--color-text-secondary);cursor:pointer}.dialog-header .close-btn:hover{background:#f7f6f3;color:var(--color-text-primary)}.dialog-body{padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.dialog-body .form-field{display:flex;flex-direction:column;gap:6px}.dialog-body .form-field.flex-1{flex:1}.dialog-body .form-row{display:flex;gap:12px}.dialog-body .form-row.checkboxes{gap:24px;padding-top:8px}.dialog-body label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.dialog-body label.required:after{content:" *";color:#e03e3e}.dialog-body .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.dialog-body .checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#89b929}.dialog-body .checkbox-label span{font-size:14px;color:var(--color-text-primary)}.dialog-body input,.dialog-body select,.dialog-body textarea{height:40px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;transition:border-color .15s}.dialog-body textarea{height:auto;padding:10px 12px;resize:vertical}.dialog-body textarea.code-input{font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px}.dialog-body input:focus,.dialog-body select:focus,.dialog-body textarea:focus{border-color:#89b929}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;background:#fafaf9;border-top:1px solid #e3e2e0;border-radius:0 0 12px 12px;flex-shrink:0}.dialog-footer .btn-cancel{height:36px;padding:0 16px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;cursor:pointer}.dialog-footer .btn-cancel:hover{background:#f7f6f3}.dialog-footer .btn-primary{height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer}.dialog-footer .btn-primary:hover{background:#7aa824}.dev-api-docs .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100;animation:toast-slide-up .3s ease}.dev-api-docs .toast.success{background:#0f7b0f}.dev-api-docs .toast.error{background:#e03e3e}@media (max-width: 1024px){.api-content{grid-template-columns:1fr}.api-detail-panel{min-height:400px}}@media (max-width: 768px){.dev-api-docs{padding:16px}.dev-api-docs .page-header{flex-direction:column;gap:16px}.api-toolbar{flex-wrap:wrap}.api-toolbar .search-box{max-width:none;width:100%}.dialog-body .form-row{flex-direction:column}}.layout.dark .dev-api-docs .page-title{color:#ffffffcf}.layout.dark .dev-api-docs .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .api-toolbar .search-box{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .api-toolbar .search-box input{color:#ffffffcf}.layout.dark .api-toolbar .view-toggle{background-color:#2f2f2f}.layout.dark .api-toolbar .view-toggle button{color:var(--color-text-tertiary)}.layout.dark .api-toolbar .view-toggle button:hover{color:#ffffffcf}.layout.dark .api-toolbar .view-toggle button.active{background-color:#3f3f3f;color:#ffffffcf}.layout.dark .api-toolbar .filter-select{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .api-list-panel{background:#252525;border-color:#3f3f3f}.layout.dark .group-header:hover{background:#2f2f2f}.layout.dark .group-header .group-name{color:#ffffffcf}.layout.dark .group-header .group-count{background:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .api-item:hover{background:#2f2f2f}.layout.dark .api-item.selected{background:#3a4520}.layout.dark .api-endpoint{color:#ffffffcf}.layout.dark .api-detail-panel{background:#252525;border-color:#3f3f3f}.layout.dark .detail-header{border-color:#3f3f3f}.layout.dark .detail-title-row h2{color:#ffffffcf}.layout.dark .detail-actions .btn-edit{color:#ffffffcf;background:#3f3f3f}.layout.dark .detail-actions .btn-edit:hover{background:#4f4f4f}.layout.dark .info-row{border-color:#3f3f3f}.layout.dark .info-row .label{color:var(--color-text-tertiary)}.layout.dark .info-row span:not(.label),.layout.dark .info-row p{color:#ffffffcf}.layout.dark .info-row code.endpoint{background:#2f2f2f;color:#ffffffcf}.layout.dark .detail-section h3{color:#ffffffcf}.layout.dark .code-block{background:#2f2f2f;color:#ffffffcf}.layout.dark .no-selection,.layout.dark .api-list-panel .empty-state,.layout.dark .api-list-panel .loading-state{color:var(--color-text-tertiary)}.layout.dark .api-list-panel .btn-secondary{color:#ffffffcf;background:#3f3f3f}.layout.dark .api-list-panel .btn-secondary:hover{background:#4f4f4f}.layout.dark .api-list-panel .loading-spinner{border-color:#3f3f3f;border-top-color:#89b929}.layout.dark .api-dialog{background:#252525}.layout.dark .dialog-header{border-color:#3f3f3f}.layout.dark .dialog-header h2{color:#ffffffcf}.layout.dark .dialog-header .close-btn{color:var(--color-text-tertiary)}.layout.dark .dialog-header .close-btn:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .dialog-body label,.layout.dark .dialog-body .checkbox-label span{color:#ffffffcf}.layout.dark .dialog-body input,.layout.dark .dialog-body select,.layout.dark .dialog-body textarea{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .dialog-footer{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .dialog-footer .btn-cancel{background:#3f3f3f;border-color:#4f4f4f;color:#ffffffcf}.layout.dark .dialog-footer .btn-cancel:hover{background:#4f4f4f}.dev-team-members{max-width:1200px;margin:0 auto;padding:24px 32px}.dev-team-members .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dev-team-members .page-header-left{display:flex;align-items:flex-start;gap:12px}.dev-team-members .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.dev-team-members .page-header-left>div{display:flex;flex-direction:column;gap:4px}.dev-team-members .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.dev-team-members .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.dev-team-members .page-header-right{display:flex;gap:12px}.dept-select{padding:8px 32px 8px 12px;font-size:14px;border:1px solid #e3e2e0;border-radius:6px;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='%23787774' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 10px center;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;color:var(--color-text-primary)}.dept-select:hover{border-color:#c4c4c0}.dept-select:focus{outline:none;border-color:#89b929}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid #e3e2e0;border-radius:8px;padding:20px}.stat-card .stat-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#f7f6f3;border-radius:10px;color:var(--color-text-secondary)}.stat-card.primary .stat-icon{background:#89b9291a;color:#89b929}.stat-card.warning .stat-icon{background:#ffc1071a;color:#ffc107}.stat-card.success .stat-icon{background:#28a7451a;color:#28a745}.stat-card .stat-content{display:flex;flex-direction:column;gap:2px}.stat-card .stat-value{font-size:24px;font-weight:700;color:var(--color-text-primary)}.stat-card .stat-label{font-size:13px;color:var(--color-text-secondary)}.dev-team-members .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--color-text-secondary)}.dev-team-members .loading-state p{margin-top:16px;font-size:14px}.dev-team-members .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:team-spin .6s linear infinite}@keyframes team-spin{to{transform:rotate(360deg)}}.dev-team-members .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:40px var(--space-4);color:var(--color-text-secondary)}.dev-team-members .empty-state svg{opacity:.5;margin-bottom:16px}.dev-team-members .empty-state p{margin:0;font-size:14px}.dev-team-members .empty-hint{margin-top:8px;font-size:13px;color:var(--color-text-tertiary)}.members-section{display:flex;flex-direction:column;gap:32px}.position-group{display:flex;flex-direction:column;gap:16px}.position-title{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0;padding-bottom:8px;border-bottom:1px solid #e3e2e0;display:flex;align-items:center;gap:8px}.position-count{font-size:13px;font-weight:500;color:var(--color-text-secondary);background:#f7f6f3;padding:2px 8px;border-radius:10px}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.member-card{background:#fff;border:1px solid #e3e2e0;border-radius:8px;overflow:hidden;transition:box-shadow .15s,border-color .15s}.member-card:hover{border-color:#89b929;box-shadow:0 4px 12px #0000000d}.card-header{display:flex;align-items:center;gap:12px;padding:16px;background:#fafafa;border-bottom:1px solid #f0f0f0}.member-avatar{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#89b929,#6b9a1e);color:#fff;font-size:16px;font-weight:600;border-radius:50%;flex-shrink:0}.member-avatar-image{width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #e3e2e0}.member-main{flex:1;min-width:0}.member-name{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 2px}.member-position{font-size:13px;color:var(--color-text-secondary);margin:0}.task-badge{display:flex;flex-direction:column;align-items:center;padding:6px 12px;background:#fff8e1;border-radius:6px}.task-badge .task-count{font-size:18px;font-weight:700;color:#f9a825}.task-badge .task-label{font-size:10px;color:#f9a825}.card-body{padding:16px;display:flex;flex-direction:column;gap:10px}.info-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--color-text-primary)}.info-row svg{color:var(--color-text-tertiary);flex-shrink:0}.work-period{margin-left:6px;color:#89b929;font-weight:500}.card-footer{padding:12px 16px;background:#fafafa;border-top:1px solid #f0f0f0}.task-progress{display:flex;align-items:center;gap:12px}.task-progress .progress-bar{flex:1;height:6px;background:#e3e2e0;border-radius:3px;overflow:hidden}.task-progress .progress-fill{height:100%;background:linear-gradient(90deg,#89b929,#6b9a1e);border-radius:3px;transition:width .3s ease}.task-progress .progress-text{font-size:12px;color:var(--color-text-secondary);white-space:nowrap}.card-projects{padding:12px 16px;background:#f7f6f3;border-top:1px solid #f0f0f0}.projects-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.projects-header svg{color:var(--color-text-tertiary)}.projects-list{display:flex;flex-direction:column;gap:6px}.project-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#fff;border-radius:4px;font-size:12px}.project-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.project-name{flex:1;color:var(--color-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-tasks{font-size:11px;color:var(--color-text-secondary);background:#f0f0f0;padding:2px 6px;border-radius:10px;font-weight:500}@media (max-width: 1024px){.member-grid,.stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dev-team-members{padding:16px}.dev-team-members .page-header{flex-direction:column;align-items:flex-start;gap:16px}.member-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:1fr 1fr}}.layout.dark .dev-team-members .page-title{color:#ffffffcf}.layout.dark .dev-team-members .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .dept-select{background-color:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .dept-select:hover{border-color:#4f4f4f}.layout.dark .stat-card{background:#252525;border-color:#3f3f3f}.layout.dark .stat-card .stat-icon{background:#3f3f3f}.layout.dark .stat-card .stat-value{color:#ffffffcf}.layout.dark .stat-card .stat-label,.layout.dark .dev-team-members .loading-state{color:var(--color-text-tertiary)}.layout.dark .dev-team-members .loading-spinner{border-color:#3f3f3f;border-top-color:#89b929}.layout.dark .dev-team-members .empty-state{color:var(--color-text-tertiary)}.layout.dark .position-title{color:#ffffffcf;border-color:#3f3f3f}.layout.dark .position-count{background:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .member-card{background:#252525;border-color:#3f3f3f}.layout.dark .member-card:hover{border-color:#89b929}.layout.dark .card-header{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .member-name{color:#ffffffcf}.layout.dark .member-position{color:var(--color-text-tertiary)}.layout.dark .info-row{color:#ffffffcf}.layout.dark .info-row svg{color:var(--color-text-secondary)}.layout.dark .card-footer{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .task-progress .progress-bar{background:#3f3f3f}.layout.dark .task-progress .progress-text{color:var(--color-text-tertiary)}.layout.dark .task-badge{background:#f9a82526}.layout.dark .member-avatar-image{border-color:#3f3f3f}.layout.dark .card-projects{background:#2a2a2a;border-color:#3f3f3f}.layout.dark .projects-header{color:var(--color-text-tertiary)}.layout.dark .projects-header svg{color:var(--color-text-secondary)}.layout.dark .project-item{background:#333}.layout.dark .project-name{color:#ffffffcf}.layout.dark .project-tasks{background:#3f3f3f;color:var(--color-text-tertiary)}.dev-issues{padding:24px 32px;max-width:1400px;margin:0 auto;min-height:calc(100vh - 60px);background:var(--color-bg-secondary)}.dev-issues .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dev-issues .page-header-left{display:flex;align-items:flex-start;gap:12px}.dev-issues .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.dev-issues .page-header-left>div{display:flex;flex-direction:column;gap:4px}.dev-issues .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.dev-issues .page-subtitle{color:var(--color-text-secondary);font-size:13px;margin:0}.dev-issues .btn-primary{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.dev-issues .btn-primary:hover{background:var(--color-primary-hover)}.stats-dashboard{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px}.stat-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast)}.stat-card:hover{border-color:var(--color-border-hover)}.stat-card .stat-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg)}.stat-card .stat-icon svg{width:20px;height:20px;flex-shrink:0}.stat-card.total .stat-icon{background:#2f80ed1a;color:#2f80ed}.stat-card.open .stat-icon{background:#e03e3e1a;color:#e03e3e}.stat-card.progress .stat-icon{background:#f5a6231a;color:#f5a623}.stat-card.resolved .stat-icon{background:#89b9291a;color:#89b929}.stat-card.critical .stat-icon{background:#b441411a;color:#b44141}.stat-content{display:flex;flex-direction:column;justify-content:center;min-width:0}.stat-value{font-size:24px;font-weight:600;color:var(--color-text-primary);line-height:1.2;letter-spacing:-.5px}.stat-label{font-size:12px;color:var(--color-text-secondary);margin-top:2px;white-space:nowrap}.issues-layout{display:grid;grid-template-columns:240px 1fr;gap:20px}.projects-sidebar{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;position:sticky;top:80px;height:fit-content;max-height:calc(100vh - 120px)}.project-list{padding:6px;overflow-y:auto}.project-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;font-size:13px;color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast)}.project-item:hover{background:var(--color-bg-hover)}.project-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-count{padding:2px 6px;font-size:10px;font-weight:500;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);color:var(--color-text-secondary);min-width:20px;text-align:center}.issue-count.urgent{background:#e03e3e1a;color:#e03e3e}.issues-main{display:flex;flex-direction:column;gap:12px}.issues-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.issues-list{display:flex;flex-direction:column;gap:8px}.issue-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px;transition:border-color var(--transition-fast);position:relative}.issue-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.issue-card:hover{border-color:var(--color-border-hover)}.issue-card.priority-critical:before{background:#b44141}.issue-card.priority-high:before{background:#e03e3e}.issue-card.priority-medium:before{background:#f5a623}.issue-card.priority-low:before{background:var(--color-border-hover)}.issue-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.issue-badges{display:flex;gap:6px;flex-wrap:wrap}.badge{padding:3px 8px;font-size:10px;font-weight:500;border-radius:var(--radius-sm)}.badge.type-bug{background:#e03e3e1a;color:#c93131}.badge.type-feature{background:#8b5cf61a;color:#7c3aed}.badge.type-improvement{background:#2f80ed1a;color:#2563eb}.badge.type-question{background:#f5a6231a;color:#d97706}.badge.type-task{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge.priority-critical{background:#b441411a;color:#b44141}.badge.priority-high{background:#e03e3e1a;color:#c93131}.badge.priority-medium{background:#f5a6231a;color:#d97706}.badge.priority-low{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.issue-actions{display:flex;align-items:center;gap:4px}.status-select{padding:4px 8px;font-size:11px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-primary);font-weight:500;cursor:pointer;transition:border-color var(--transition-fast)}.status-select:hover{border-color:var(--color-border-hover)}.status-select.status-open{color:#e03e3e;border-color:#e03e3e4d}.status-select.status-in_progress{color:#2f80ed;border-color:#2f80ed4d}.status-select.status-resolved{color:#89b929;border-color:#89b9294d}.status-select.status-closed{color:var(--color-text-secondary);border-color:var(--color-border)}.status-select.status-reopened{color:#f5a623;border-color:#f5a6234d}.icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.icon-btn.danger:hover{background:var(--color-error-light);color:var(--color-error)}.issue-content{margin-bottom:10px;padding-left:2px}.issue-title{font-size:14px;font-weight:500;color:var(--color-text-primary);margin:0 0 4px;line-height:1.4}.issue-desc{font-size:12px;color:var(--color-text-secondary);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.issue-meta{display:flex;flex-wrap:wrap;gap:12px;padding-left:2px;padding-top:10px;border-top:1px solid var(--color-border-light)}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog{background:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column}.dialog.issue-dialog{max-width:520px}.dialog.delete-dialog{max-width:380px}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.dialog-header h2{font-size:16px;font-weight:600;margin:0;color:var(--color-text-primary)}.close-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.close-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.dialog-body{padding:20px;overflow-y:auto}.form-field{margin-bottom:16px}.form-field:last-child{margin-bottom:0}.form-field label{display:block;font-size:12px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.form-field input,.form-field select,.form-field textarea{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.form-field input:hover,.form-field select:hover,.form-field textarea:hover{border-color:var(--color-border-hover)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary)}.form-field textarea{resize:vertical;min-height:80px;line-height:1.5}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--color-border);background:var(--color-bg-tertiary);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.btn-cancel{padding:8px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.btn-danger{padding:8px 14px;background:var(--color-error);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;cursor:pointer;transition:background var(--transition-fast)}.btn-danger:hover{background:var(--color-error-hover)}.warning-text{color:var(--color-text-tertiary);font-size:12px;margin-top:8px}.toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;box-shadow:var(--shadow-md);z-index:2000}.toast.success{background:#89b929}.toast.error{background:#e03e3e}@media (max-width: 1200px){.stats-dashboard{grid-template-columns:repeat(3,1fr)}.issues-layout{grid-template-columns:200px 1fr}}@media (max-width: 900px){.dev-issues{padding:20px}.stats-dashboard{grid-template-columns:repeat(2,1fr)}.issues-layout{grid-template-columns:1fr}.projects-sidebar{position:static;max-height:none}.project-list{display:flex;flex-wrap:wrap;gap:6px}.project-item{flex:0 0 auto;width:auto;padding:6px 12px}}@media (max-width: 600px){.dev-issues .page-header{flex-direction:column;gap:12px}.form-row{grid-template-columns:1fr}.filter-group{flex-wrap:wrap}.stat-card{padding:12px}.stat-value{font-size:18px}}.layout.dark .issue-card,.layout.dark .stat-card,.layout.dark .projects-sidebar,.layout.dark .issues-toolbar,.layout.dark .dialog{background:var(--color-bg-secondary)}.layout.dark .dialog-footer,.layout.dark .status-select{background:var(--color-bg-tertiary)}.layout.dark .loading-state,.layout.dark .empty-state{background:var(--color-bg-secondary)}.admin-users-page{padding:24px 32px;max-width:1400px;margin:0 auto;min-height:calc(100vh - 60px);background:var(--color-bg-secondary)}.admin-users-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.admin-users-page .page-header-left{display:flex;align-items:flex-start;gap:12px}.admin-users-page .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.admin-users-page .page-header-left>div{display:flex;flex-direction:column;gap:4px}.admin-users-page .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.admin-users-page .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.btn-primary{display:flex;align-items:center;gap:6px;padding:10px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.users-table-container{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--color-border-light)}.users-table th{font-size:12px;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-tertiary);text-transform:uppercase;letter-spacing:.5px}.users-table td{font-size:13px;color:var(--color-text-primary)}.users-table tbody tr:hover{background:var(--color-bg-hover)}.users-table tbody tr:last-child td{border-bottom:none}.user-name{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;overflow:hidden;flex-shrink:0}.status-badge,.role-badge{display:inline-block;padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;font-weight:500}.status-badge.active{background:var(--color-success-light);color:var(--color-success)}.status-badge.inactive{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.role-badge.admin{background:var(--color-warning-light);color:var(--color-warning)}.role-badge.user{background:var(--color-primary-light);color:var(--color-primary)}.actions{display:flex;gap:6px}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.btn-icon:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.btn-icon.danger:hover{background:var(--color-error-light);color:var(--color-error)}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.btn-close{width:32px;height:32px;border:none;background:transparent;font-size:24px;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.btn-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--color-border)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.form-row:last-child{margin-bottom:0}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.form-group input,.form-group select{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:inherit;color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary)}.form-group input:disabled{background:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.form-row.checkboxes{display:flex;gap:24px}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-primary);cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary)}.btn-secondary{padding:10px 16px;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.error-message{padding:12px 16px;background:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:13px;margin-bottom:16px}@media (max-width: 768px){.admin-users-page{padding:20px}.page-header{flex-direction:column;gap:16px;align-items:flex-start}.users-table-container{overflow-x:auto}.users-table{min-width:800px}.form-row{grid-template-columns:1fr}.modal-content{margin:16px;max-height:calc(100vh - 32px)}}.admin-permissions-page{padding:24px 32px;max-width:1400px;margin:0 auto;min-height:calc(100vh - 60px);background:var(--color-bg-secondary)}.admin-permissions-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.admin-permissions-page .page-header-left{display:flex;align-items:flex-start;gap:12px}.admin-permissions-page .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.admin-permissions-page .page-header-left>div{display:flex;flex-direction:column;gap:4px}.admin-permissions-page .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.admin-permissions-page .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.permissions-container{display:flex;flex-direction:column;gap:20px}.user-permissions-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.user-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.user-info{display:flex;align-items:center;gap:12px}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;overflow:hidden;flex-shrink:0}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.user-details{display:flex;flex-direction:column;gap:2px}.user-name{font-size:14px;font-weight:600;color:var(--color-text-primary)}.user-meta{font-size:12px;color:var(--color-text-tertiary)}.user-actions{display:flex;align-items:center;gap:10px}.btn-text{padding:6px 12px;background:transparent;border:none;color:var(--color-text-secondary);font-size:12px;cursor:pointer;transition:color var(--transition-fast)}.btn-text:hover{color:var(--color-primary)}.btn-save{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-save:hover{background:var(--color-primary-hover)}.btn-save:disabled{opacity:.6;cursor:not-allowed}.permissions-grid{padding:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.permission-category{background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:16px}.category-title{font-size:13px;font-weight:600;color:var(--color-text-secondary);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--color-border-light);text-transform:uppercase;letter-spacing:.5px}.permission-items{display:flex;flex-direction:column;gap:8px}.permission-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--color-bg-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.permission-item:hover{background:var(--color-bg-hover)}.permission-item input[type=checkbox]{display:none}.checkbox-custom{width:18px;height:18px;border:1.5px solid var(--color-border-hover);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.permission-item input:checked+.checkbox-custom{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.page-name{flex:1;font-size:13px;color:var(--color-text-primary)}.page-path{font-size:11px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.admin-notice{text-align:center;padding:20px;color:var(--color-text-tertiary);font-size:13px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary)}.admin-notice p{margin:0}.loading-message{text-align:center;padding:60px;color:var(--color-text-tertiary);font-size:14px}.error-message{text-align:center;padding:40px;color:var(--color-error);font-size:14px;background:var(--color-error-light);border-radius:var(--radius-md)}@media (max-width: 768px){.admin-permissions-page{padding:20px}.user-card-header{flex-direction:column;gap:16px;align-items:flex-start}.user-actions{width:100%;justify-content:flex-end}.permissions-grid{grid-template-columns:1fr;padding:16px}}.my-settings{max-width:1200px;margin:0 auto;padding:24px 32px}.my-settings .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.my-settings .page-header-left{display:flex;gap:12px;align-items:flex-start}.my-settings .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.my-settings .page-header-left>div{display:flex;flex-direction:column;gap:4px}.my-settings .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.my-settings .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.settings-grid-2col{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:24px}@media (max-width: 900px){.settings-grid-2col{grid-template-columns:1fr}}.my-settings .settings-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);overflow:hidden}.my-settings .settings-card .card-header{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--color-border-light)}.my-settings .settings-card .card-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.my-settings .settings-card .card-header h3{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0}.my-settings .settings-card .card-header p{font-size:13px;color:var(--color-text-secondary);margin:2px 0 0}.my-settings .settings-card .card-content{padding:16px 20px}.my-settings .theme-radio-group{display:flex;flex-direction:column;gap:10px}.my-settings .theme-radio-option{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--color-bg-tertiary);border:2px solid transparent;border-radius:10px;cursor:pointer;transition:all var(--transition-normal)}.my-settings .theme-radio-option:hover{background:var(--color-bg-hover)}.my-settings .theme-radio-option.active{border-color:var(--color-primary);background:var(--color-primary-light)}.my-settings .radio-circle{width:18px;height:18px;border:2px solid var(--color-border-hover);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.my-settings .theme-radio-option.active .radio-circle{border-color:var(--color-primary)}.my-settings .radio-dot{width:10px;height:10px;background:var(--color-primary);border-radius:50%}.my-settings .radio-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.my-settings .theme-radio-option.active .radio-icon{color:var(--color-primary)}.my-settings .radio-text{display:flex;flex-direction:column;gap:2px}.my-settings .radio-label{font-size:14px;font-weight:500;color:var(--color-text-primary)}.my-settings .radio-desc{font-size:12px;color:var(--color-text-secondary)}.my-settings .color-preset-grid{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.my-settings .color-preset-card{position:relative;width:80px;padding:10px 8px;background:var(--color-bg-tertiary);border:2px solid transparent;border-radius:10px;cursor:pointer;transition:all var(--transition-normal);text-align:center}.my-settings .color-preset-card:hover{border-color:var(--color-border-hover);transform:translateY(-2px)}.my-settings .color-preset-card.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.my-settings .color-swatches{display:flex;gap:4px;justify-content:center;margin-bottom:6px}.my-settings .color-swatch{width:22px;height:22px;border-radius:50%;border:2px solid rgba(0,0,0,.08)}.my-settings .preset-name{font-size:11px;font-weight:500;color:var(--color-text-primary)}.my-settings .check-badge{position:absolute;top:4px;right:4px;width:18px;height:18px;background:var(--color-success);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.my-settings .edit-badge{position:absolute;bottom:4px;right:4px;width:18px;height:18px;background:var(--color-bg-hover);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);opacity:.6}.my-settings .color-preset-card:hover .edit-badge{opacity:1}.my-settings .color-preview-area{padding:14px;background:var(--color-bg-tertiary);border-radius:10px}.my-settings .preview-buttons{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.my-settings .preview-btn{padding:6px 12px;font-size:12px;font-weight:500;border-radius:var(--radius-lg);cursor:default;transition:none}.my-settings .preview-btn.filled{color:#fff;border:none}.my-settings .preview-btn.outlined{background:transparent;border:1px solid}.my-settings .preview-btn.text{background:transparent;border:none}.my-settings .preview-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.my-settings .preview-chip{padding:4px 10px;font-size:11px;font-weight:500;border-radius:12px}.my-settings .preview-chip.success{background:var(--color-success-light);color:var(--color-success)}.my-settings .preview-chip.warning{background:var(--color-warning-light);color:var(--color-warning)}.my-settings .preview-chip.error{background:var(--color-error-light);color:var(--color-error)}.my-settings .preview-progress{height:6px;background:var(--color-bg-hover);border-radius:3px;overflow:hidden}.my-settings .progress-bar{height:100%;border-radius:3px;transition:width .3s}.my-settings .form-group{margin-bottom:16px}.my-settings .form-group:last-child{margin-bottom:0}.my-settings .form-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:8px}.my-settings .form-label svg{width:16px;height:16px;color:var(--color-text-secondary)}.my-settings .setting-select{width:100%;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);outline:none;cursor:pointer;transition:border-color var(--transition-normal)}.my-settings .setting-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.my-settings .setting-hint{font-size:12px;color:var(--color-text-secondary);margin-top:6px;line-height:1.5}.my-settings .font-size-toggle{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.my-settings .size-btn{flex:1;padding:8px 12px;font-size:13px;font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-primary);border:none;border-right:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-normal)}.my-settings .size-btn:last-child{border-right:none}.my-settings .size-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.my-settings .size-btn.active{background:var(--color-primary);color:#fff}.my-settings .font-preview-area{padding:16px;background:var(--color-bg-tertiary);border-radius:10px;margin-top:12px;line-height:1.6}.my-settings .font-preview-area .preview-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.my-settings .font-preview-area .preview-body{font-size:14px;color:var(--color-text-primary);margin:0 0 8px}.my-settings .font-preview-area .preview-sub{font-size:13px;color:var(--color-text-secondary);margin:0 0 8px}.my-settings .font-preview-area .preview-caption{font-size:12px;color:var(--color-text-tertiary);margin:0}.my-settings .checkbox-row{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.my-settings .notion-checkbox{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.my-settings .settings-actions{display:flex;justify-content:flex-end;gap:10px}.my-settings .btn-primary{display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-lg);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--transition-normal)}.my-settings .btn-primary:hover{background:var(--color-primary-hover)}.my-settings .btn-primary:disabled{opacity:.6;cursor:not-allowed}.my-settings .btn-secondary{display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.my-settings .btn-secondary:hover{background:var(--color-bg-hover)}.my-settings .dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.my-settings .dialog{width:100%;max-width:500px;background:var(--color-bg-primary);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);overflow:hidden}.my-settings .dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.my-settings .dialog-header h2{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0}.my-settings .btn-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-lg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-normal)}.my-settings .btn-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.my-settings .dialog-content{padding:20px}.my-settings .dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--color-border)}.my-settings .color-input-group{margin-bottom:20px}.my-settings .color-input-group:last-of-type{margin-bottom:0}.my-settings .color-input-row{display:flex;align-items:center;gap:10px}.my-settings .color-dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--color-border);flex-shrink:0}.my-settings .color-text-input{flex:1;padding:10px 12px;font-size:14px;font-family:var(--font-mono);color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);outline:none}.my-settings .color-text-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.my-settings .color-picker{width:40px;height:40px;padding:0;border:none;border-radius:var(--radius-xl);cursor:pointer;background:transparent;overflow:hidden}.my-settings .color-picker::-webkit-color-swatch-wrapper{padding:0}.my-settings .color-picker::-webkit-color-swatch{border:2px solid var(--color-border);border-radius:var(--radius-xl)}.my-settings .dialog-preview{margin-top:20px;padding-top:20px;border-top:1px solid var(--color-border)}.my-settings .dialog-preview .preview-buttons{margin-bottom:10px}@media (max-width: 600px){.my-settings{padding:16px}.my-settings .settings-actions{flex-direction:column}.my-settings .settings-actions button{width:100%;justify-content:center}.my-settings .color-preset-grid,.my-settings .preview-buttons,.my-settings .preview-chips{justify-content:center}}.resource-library{max-width:1400px;margin:0 auto;padding:24px 32px}.resource-library .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.resource-library .page-header-left{display:flex;align-items:flex-start;gap:12px}.resource-library .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.resource-library .page-header-left>div{display:flex;flex-direction:column;gap:4px}.resource-library .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.resource-library .page-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.resource-library .btn-primary{display:flex;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.resource-library .btn-primary:hover{background:#7aa824}.resource-library .btn-primary:disabled{opacity:.6;cursor:not-allowed}.resource-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.resource-toolbar .search-box{display:flex;align-items:center;gap:8px;width:280px;height:36px;padding:0 12px;background:#fff;border:1px solid #e3e2e0;border-radius:6px}.resource-toolbar .search-box svg{color:var(--color-text-secondary);flex-shrink:0}.resource-toolbar .search-box input{flex:1;border:none;outline:none;font-size:14px;color:var(--color-text-primary);background:transparent}.resource-toolbar .search-box input::placeholder{color:var(--color-text-tertiary)}.resource-toolbar .category-filters{display:flex;gap:6px;flex-wrap:wrap}.resource-toolbar .filter-btn{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;font-weight:500;color:var(--color-text-secondary);background:#f7f6f3;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.resource-toolbar .filter-btn:hover{background:#e3e2e0;color:var(--color-text-primary)}.resource-toolbar .filter-btn.active{background:#89b929;color:#fff}.resource-toolbar .filter-btn .count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;background:#0000001a;border-radius:9px}.resource-toolbar .filter-btn.active .count{background:#ffffff4d}.resource-library .loading-state,.resource-library .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:40px var(--space-4);color:var(--color-text-secondary)}.resource-library .loading-state p,.resource-library .empty-state p{margin:16px 0;font-size:14px}.resource-library .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:resource-spin .6s linear infinite}@keyframes resource-spin{to{transform:rotate(360deg)}}.resource-library .empty-state>svg{width:48px;height:48px;color:#d3d3d0}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.resource-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e3e2e0;border-radius:8px;overflow:hidden;transition:box-shadow .15s,transform .15s}.resource-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.resource-thumbnail{display:flex;align-items:center;justify-content:center;height:140px;background:#f7f6f3}.resource-thumbnail img{width:100%;height:100%;object-fit:cover}.resource-info{padding:12px;flex:1}.resource-title{margin:0 0 6px;font-size:14px;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-meta{display:flex;justify-content:space-between;margin:0;font-size:12px;color:var(--color-text-tertiary)}.resource-meta span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px}.resource-category{display:inline-block;margin-top:8px;padding:2px 8px;font-size:11px;color:var(--color-text-secondary);background:#f7f6f3;border-radius:4px}.resource-actions{display:flex;justify-content:flex-end;gap:4px;padding:8px 12px;border-top:1px solid #f0f0ef}.resource-actions .btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.resource-actions .btn-icon:hover{background:#f7f6f3;color:var(--color-text-primary)}.resource-actions .btn-icon.danger:hover{background:#fce8e8;color:#e03e3e}.upload-dialog{width:100%;max-width:500px;max-height:90vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column}.upload-dialog .dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e3e2e0}.upload-dialog .dialog-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.upload-dialog .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;color:var(--color-text-secondary);cursor:pointer}.upload-dialog .close-btn:hover{background:#f7f6f3;color:var(--color-text-primary)}.upload-dialog .dialog-body{padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;padding:24px;border:2px dashed #e3e2e0;border-radius:8px;cursor:pointer;transition:all .15s}.dropzone:hover{border-color:#89b929;background:#89b9290d}.dropzone svg{color:var(--color-text-tertiary);margin-bottom:8px}.dropzone p{margin:0;font-size:14px;color:var(--color-text-secondary)}.dropzone.has-file{border-style:solid;border-color:#89b929;background:#89b9290d}.file-preview{display:flex;flex-direction:column;align-items:center;gap:8px}.file-preview .file-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.file-preview .file-size{font-size:12px;color:var(--color-text-tertiary)}.upload-dialog .form-field{display:flex;flex-direction:column;gap:6px}.upload-dialog label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.upload-dialog label.required:after{content:" *";color:#e03e3e}.upload-dialog input,.upload-dialog select,.upload-dialog textarea{height:40px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;transition:border-color .15s}.upload-dialog textarea{height:auto;padding:10px 12px;resize:vertical;font-family:inherit}.upload-dialog input:focus,.upload-dialog select:focus,.upload-dialog textarea:focus{border-color:#89b929}.upload-dialog .dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;background:#fafaf9;border-top:1px solid #e3e2e0;border-radius:0 0 12px 12px}.upload-dialog .btn-cancel{height:36px;padding:0 16px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;cursor:pointer}.upload-dialog .btn-cancel:hover{background:#f7f6f3}.detail-dialog{width:100%;max-width:500px;max-height:90vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;overflow:hidden}.detail-dialog .dialog-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.detail-dialog .dialog-body{padding:24px;overflow-y:auto}.detail-preview{display:flex;align-items:center;justify-content:center;height:160px;margin-bottom:20px;background:#f7f6f3;border-radius:8px;overflow:hidden}.detail-preview img{max-width:100%;max-height:100%;object-fit:contain}.detail-icon{display:flex;align-items:center;justify-content:center}.detail-icon svg{width:64px;height:64px;color:var(--color-text-tertiary)}.detail-title{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--color-text-primary)}.detail-description{margin:0 0 16px;font-size:14px;color:var(--color-text-secondary);line-height:1.5}.detail-meta{display:flex;flex-direction:column;gap:10px;padding:16px;background:#fafaf9;border-radius:8px}.meta-row{display:flex;justify-content:space-between;font-size:13px}.meta-label{color:var(--color-text-secondary)}.meta-value{color:var(--color-text-primary);font-weight:500}.resource-library .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100;animation:toast-slide-up .3s ease}.resource-library .toast.success{background:#0f7b0f}.resource-library .toast.error{background:#e03e3e}.layout.dark .resource-library .page-title{color:#ffffffcf}.layout.dark .resource-library .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .resource-toolbar .search-box{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .resource-toolbar .search-box input{color:#ffffffcf}.layout.dark .resource-toolbar .filter-btn{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .resource-toolbar .filter-btn:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .resource-toolbar .filter-btn.active{background:#89b929;color:#fff}.layout.dark .resource-card{background:#252525;border-color:#3f3f3f}.layout.dark .resource-thumbnail{background:#2f2f2f}.layout.dark .resource-title{color:#ffffffcf}.layout.dark .resource-category{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .resource-actions{border-color:#3f3f3f}.layout.dark .resource-actions .btn-icon{color:var(--color-text-tertiary)}.layout.dark .resource-actions .btn-icon:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .resource-actions .btn-icon.danger:hover{background:#3d2020;color:#e03e3e}.layout.dark .resource-library .loading-state,.layout.dark .resource-library .empty-state{color:var(--color-text-tertiary)}.layout.dark .resource-library .loading-spinner{border-color:#3f3f3f;border-top-color:#89b929}.layout.dark .resource-library .empty-state svg{color:#4f4f4f}.layout.dark .upload-dialog{background:#252525}.layout.dark .upload-dialog .dialog-header{border-color:#3f3f3f}.layout.dark .upload-dialog .dialog-header h2{color:#ffffffcf}.layout.dark .upload-dialog .close-btn{color:var(--color-text-tertiary)}.layout.dark .upload-dialog .close-btn:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .dropzone{border-color:#3f3f3f}.layout.dark .dropzone:hover,.layout.dark .dropzone.has-file{border-color:#89b929;background:#89b9291a}.layout.dark .dropzone p{color:var(--color-text-tertiary)}.layout.dark .file-preview .file-name,.layout.dark .upload-dialog label{color:#ffffffcf}.layout.dark .upload-dialog input,.layout.dark .upload-dialog select,.layout.dark .upload-dialog textarea{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .upload-dialog .dialog-footer{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .upload-dialog .btn-cancel{background:#3f3f3f;border-color:#4f4f4f;color:#ffffffcf}.layout.dark .upload-dialog .btn-cancel:hover{background:#4f4f4f}.layout.dark .detail-preview{background:#2f2f2f}.layout.dark .detail-icon svg{color:var(--color-text-secondary)}.layout.dark .detail-title{color:#ffffffcf}.layout.dark .detail-description{color:var(--color-text-tertiary)}.layout.dark .detail-meta{background:#2f2f2f}.layout.dark .meta-value{color:#ffffffcf}.layout.dark .btn-icon-text.danger{color:#e03e3e;border-color:#e03e3e}@media (max-width: 768px){.resource-library{padding:16px}.resource-library .page-header{flex-direction:column;gap:16px}.resource-toolbar{flex-direction:column}.resource-toolbar .search-box{width:100%}.resource-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.resource-thumbnail{height:100px}}.guide-page{max-width:1200px;margin:0 auto;padding:24px 32px}.guide-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.guide-page .page-header-left{display:flex;align-items:flex-start;gap:12px}.guide-page .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.guide-page .page-header-left>div{display:flex;flex-direction:column;gap:4px}.guide-page .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.guide-page .page-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.guide-page .btn-primary{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.guide-page .btn-primary:hover{background:#7aa824}.guide-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.guide-toolbar{display:flex;gap:12px;margin-bottom:20px}.guide-toolbar .search-box{display:flex;align-items:center;gap:8px;flex:1;max-width:300px;height:36px;padding:0 12px;background:#fff;border:1px solid #e3e2e0;border-radius:6px}.guide-toolbar .search-box svg{color:var(--color-text-secondary);flex-shrink:0}.guide-toolbar .search-box input{flex:1;border:none;outline:none;font-size:14px;color:var(--color-text-primary);background:transparent}.guide-toolbar .search-box input::placeholder{color:var(--color-text-tertiary)}.guide-toolbar .filter-select{height:36px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;cursor:pointer;min-width:140px}.guide-toolbar .filter-select:focus{border-color:#89b929}.guide-page .loading-state,.guide-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:40px var(--space-4);color:var(--color-text-secondary)}.guide-page .loading-state p,.guide-page .empty-state p{margin:16px 0;font-size:14px}.guide-page .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:guide-spin .6s linear infinite}@keyframes guide-spin{to{transform:rotate(360deg)}}.guide-page .empty-state>svg{width:48px;height:48px;color:#d3d3d0}.guide-list{display:flex;flex-direction:column;gap:12px}.guide-card{background:#fff;border:1px solid #e3e2e0;border-radius:8px;overflow:hidden}.guide-card.pinned{border-color:#89b929;border-width:2px}.guide-card-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid #f0f0ef}.guide-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#f7f6f3;border-radius:6px;color:var(--color-text-secondary)}.guide-card-title-wrap{flex:1;min-width:0}.guide-card-title{display:flex;align-items:center;gap:6px;margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary)}.guide-card-title svg{color:#89b929;flex-shrink:0}.guide-card-category{display:inline-block;margin-top:4px;padding:2px 8px;font-size:12px;color:var(--color-text-secondary);background:#f7f6f3;border-radius:4px}.guide-card-actions{display:flex;gap:4px}.guide-card-actions .btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.guide-card-actions .btn-icon:hover{background:#f7f6f3;color:var(--color-text-primary)}.guide-card-actions .btn-icon.danger:hover{background:#fce8e8;color:#e03e3e}.guide-card-content{padding:16px}.guide-card-content pre{margin:0;font-family:inherit;font-size:14px;line-height:1.6;color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word}.guide-card-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fafaf9;font-size:12px;color:var(--color-text-tertiary)}.guide-dialog{width:100%;max-width:600px;max-height:90vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column}.guide-dialog .dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e3e2e0}.guide-dialog .dialog-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.guide-dialog .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:6px;color:var(--color-text-secondary);cursor:pointer}.guide-dialog .close-btn:hover{background:#f7f6f3;color:var(--color-text-primary)}.guide-dialog .dialog-body{padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.guide-dialog .form-field{display:flex;flex-direction:column;gap:6px}.guide-dialog .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.guide-dialog label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.guide-dialog label.required:after{content:" *";color:#e03e3e}.guide-dialog input[type=text],.guide-dialog select,.guide-dialog textarea{height:40px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;transition:border-color .15s}.guide-dialog textarea{height:auto;padding:10px 12px;resize:vertical;font-family:inherit}.guide-dialog input:focus,.guide-dialog select:focus,.guide-dialog textarea:focus{border-color:#89b929}.guide-dialog .checkbox-field{display:flex;align-items:center}.guide-dialog .checkbox-field label{display:flex;align-items:center;gap:8px;cursor:pointer}.guide-dialog .checkbox-field input[type=checkbox]{width:16px;height:16px;cursor:pointer}.guide-dialog .dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;background:#fafaf9;border-top:1px solid #e3e2e0;border-radius:0 0 12px 12px}.guide-dialog .btn-cancel{height:36px;padding:0 16px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;cursor:pointer}.guide-dialog .btn-cancel:hover{background:#f7f6f3}.detail-dialog{width:100%;max-width:600px;max-height:90vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;overflow:hidden}.detail-dialog .dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e3e2e0}.detail-dialog .dialog-header h2{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.detail-dialog .dialog-header h2 svg{color:#89b929}.detail-dialog .dialog-body{padding:24px;overflow-y:auto;flex:1}.detail-category{display:inline-block;padding:4px 10px;margin-bottom:16px;font-size:12px;font-weight:500;color:var(--color-text-secondary);background:#f7f6f3;border-radius:4px}.detail-content{margin-bottom:20px}.detail-content pre{margin:0;font-family:inherit;font-size:14px;line-height:1.7;color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word}.detail-meta{display:flex;gap:16px;padding-top:16px;border-top:1px solid #e3e2e0;font-size:13px;color:var(--color-text-tertiary)}.detail-dialog .dialog-footer{display:flex;justify-content:space-between;gap:10px;padding:16px 24px;background:#fafaf9;border-top:1px solid #e3e2e0}.btn-icon-text{display:flex;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;cursor:pointer;transition:all .15s}.btn-icon-text:hover{background:#f7f6f3}.btn-icon-text.danger{color:#e03e3e;border-color:#e03e3e}.btn-icon-text.danger:hover{background:#fce8e8}.detail-dialog .btn-primary{display:flex;align-items:center;gap:6px}.guide-page .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100;animation:toast-slide-up .3s ease}.guide-page .toast.success{background:#0f7b0f}.guide-page .toast.error{background:#e03e3e}@keyframes toast-slide-up{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.layout.dark .guide-page .page-title{color:#ffffffcf}.layout.dark .guide-page .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .guide-toolbar .search-box{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .guide-toolbar .search-box input{color:#ffffffcf}.layout.dark .guide-toolbar .filter-select{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .guide-card{background:#252525;border-color:#3f3f3f}.layout.dark .guide-card.pinned{border-color:#89b929}.layout.dark .guide-card-header{border-color:#3f3f3f}.layout.dark .guide-card-icon{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .guide-card-title{color:#ffffffcf}.layout.dark .guide-card-category{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .guide-card-actions .btn-icon{color:var(--color-text-tertiary)}.layout.dark .guide-card-actions .btn-icon:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .guide-card-actions .btn-icon.danger:hover{background:#3d2020;color:#e03e3e}.layout.dark .guide-card-content pre{color:#ffffffcf}.layout.dark .guide-card-footer{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .guide-page .loading-state,.layout.dark .guide-page .empty-state{color:var(--color-text-tertiary)}.layout.dark .guide-page .loading-spinner{border-color:#3f3f3f;border-top-color:#89b929}.layout.dark .guide-page .empty-state svg{color:#4f4f4f}.layout.dark .guide-dialog{background:#252525}.layout.dark .guide-dialog .dialog-header{border-color:#3f3f3f}.layout.dark .guide-dialog .dialog-header h2{color:#ffffffcf}.layout.dark .guide-dialog .close-btn{color:var(--color-text-tertiary)}.layout.dark .guide-dialog .close-btn:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .guide-dialog label{color:#ffffffcf}.layout.dark .guide-dialog input,.layout.dark .guide-dialog select,.layout.dark .guide-dialog textarea{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .guide-dialog .dialog-footer{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .guide-dialog .btn-cancel{background:#3f3f3f;border-color:#4f4f4f;color:#ffffffcf}.layout.dark .guide-dialog .btn-cancel:hover{background:#4f4f4f}.layout.dark .detail-dialog{background:#252525}.layout.dark .detail-dialog .dialog-header{border-color:#3f3f3f}.layout.dark .detail-dialog .dialog-header h2{color:#ffffffcf}.layout.dark .detail-dialog .close-btn{color:var(--color-text-tertiary)}.layout.dark .detail-dialog .close-btn:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .detail-category{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .detail-content pre{color:#ffffffcf}.layout.dark .detail-meta{border-color:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .detail-dialog .dialog-footer{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .btn-icon-text{background:#3f3f3f;border-color:#4f4f4f;color:#ffffffcf}.layout.dark .btn-icon-text:hover{background:#4f4f4f}.layout.dark .btn-icon-text.danger{background:#252525;border-color:#e03e3e;color:#e03e3e}.layout.dark .btn-icon-text.danger:hover{background:#3d2020}@media (max-width: 768px){.guide-page{padding:16px}.guide-page .page-header{flex-direction:column;gap:16px}.guide-toolbar{flex-direction:column}.guide-toolbar .search-box{max-width:none}.guide-dialog .form-row{grid-template-columns:1fr}}.approval-list-page{max-width:1200px;margin:0 auto;padding:24px 32px}.approval-list-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.approval-list-page .page-header-left{display:flex;align-items:flex-start;gap:12px}.approval-list-page .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.approval-list-page .page-header-left>div{display:flex;flex-direction:column;gap:4px}.approval-list-page .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.approval-list-page .page-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.approval-list-page .btn-primary{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.approval-list-page .btn-primary:hover{background:#7aa824}.approval-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid #e3e2e0;padding-bottom:0}.tab-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:500;color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;margin-bottom:-1px}.tab-btn:hover{color:var(--color-text-primary)}.tab-btn.active{color:#89b929;border-bottom-color:#89b929}.tab-btn .badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:600;color:#fff;background:#e03e3e;border-radius:10px}.approval-toolbar{display:flex;gap:12px;margin-bottom:20px}.approval-toolbar .search-box{display:flex;align-items:center;gap:8px;flex:1;max-width:300px;height:36px;padding:0 12px;background:#fff;border:1px solid #e3e2e0;border-radius:6px}.approval-toolbar .search-box svg{color:var(--color-text-secondary);flex-shrink:0}.approval-toolbar .search-box input{flex:1;border:none;outline:none;font-size:14px;color:var(--color-text-primary);background:transparent}.approval-toolbar .search-box input::placeholder{color:var(--color-text-tertiary)}.approval-toolbar .filter-select{height:36px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;cursor:pointer;min-width:140px}.approval-toolbar .filter-select:focus{border-color:#89b929}.approval-list-page .loading-state,.approval-list-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:40px var(--space-4);color:var(--color-text-secondary)}.approval-list-page .loading-state p,.approval-list-page .empty-state p{margin:16px 0;font-size:14px}.approval-list-page .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:approval-spin .6s linear infinite}@keyframes approval-spin{to{transform:rotate(360deg)}}.approval-list-page .empty-state>svg{width:48px;height:48px;color:#d3d3d0}.approval-list{display:flex;flex-direction:column;gap:12px}.approval-card{background:#fff;border:1px solid #e3e2e0;border-radius:8px;padding:16px;cursor:pointer;transition:all .15s}.approval-card:hover{border-color:#89b929;box-shadow:0 2px 8px #89b9291a}.approval-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.approval-card-type{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary)}.approval-card-type svg{width:14px;height:14px}.approval-status-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px}.approval-card-title{margin:0 0 12px;font-size:16px;font-weight:600;color:var(--color-text-primary)}.approval-card-info{display:flex;gap:20px;margin-bottom:12px}.info-item{display:flex;align-items:center;gap:6px;font-size:13px}.info-label{color:var(--color-text-tertiary)}.info-value{color:var(--color-text-primary)}.approval-progress{display:flex;align-items:center;gap:8px;padding:12px;background:#f7f6f3;border-radius:6px;margin-bottom:12px;overflow-x:auto}.progress-step{display:flex;align-items:center;gap:4px;padding:6px 10px;background:#fff;border:1px solid #e3e2e0;border-radius:4px;font-size:12px;white-space:nowrap}.progress-step.approved{border-color:#0f7b0f;color:#0f7b0f}.progress-step.rejected{border-color:#e03e3e;color:#e03e3e}.progress-step.pending{color:var(--color-text-secondary)}.progress-step svg{flex-shrink:0}.progress-step .rejected-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:10px;font-weight:700}.step-name{max-width:60px;overflow:hidden;text-overflow:ellipsis}.approval-card-footer{display:flex;justify-content:flex-end}.view-detail{display:flex;align-items:center;gap:4px;font-size:13px;color:#89b929}.layout.dark .approval-list-page .page-title{color:#ffffffcf}.layout.dark .approval-list-page .page-subtitle{color:var(--color-text-tertiary)}.layout.dark .approval-tabs{border-color:#3f3f3f}.layout.dark .tab-btn{color:var(--color-text-tertiary)}.layout.dark .tab-btn:hover{color:#ffffffcf}.layout.dark .tab-btn.active{color:#89b929}.layout.dark .approval-toolbar .search-box{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .approval-toolbar .search-box input{color:#ffffffcf}.layout.dark .approval-toolbar .filter-select{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .approval-card{background:#252525;border-color:#3f3f3f}.layout.dark .approval-card:hover{border-color:#89b929}.layout.dark .approval-card-type{color:var(--color-text-tertiary)}.layout.dark .approval-card-title{color:#ffffffcf}.layout.dark .approval-progress{background:#2f2f2f}.layout.dark .progress-step{background:#252525;border-color:#3f3f3f}.layout.dark .progress-step.pending,.layout.dark .approval-list-page .loading-state,.layout.dark .approval-list-page .empty-state{color:var(--color-text-tertiary)}.layout.dark .approval-list-page .loading-spinner{border-color:#3f3f3f;border-top-color:#89b929}.layout.dark .approval-list-page .empty-state svg{color:#4f4f4f}@media (max-width: 768px){.approval-list-page{padding:16px}.approval-list-page .page-header{flex-direction:column;gap:16px}.approval-tabs{overflow-x:auto}.approval-toolbar{flex-direction:column}.approval-toolbar .search-box{max-width:none}.approval-card-info{flex-direction:column;gap:8px}}.approval-form-page{max-width:800px;margin:0 auto;padding:24px 32px}.form-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.form-title{margin:0;font-size:20px;font-weight:600;color:var(--color-text-primary)}.type-selection{padding:20px 0}.type-selection-desc{margin:0 0 20px;font-size:14px;color:var(--color-text-secondary)}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.type-card{display:flex;align-items:center;justify-content:center;height:80px;padding:16px;background:#fff;border:1px solid #e3e2e0;border-radius:8px;cursor:pointer;transition:all .15s}.type-card:hover{border-color:#89b929;background:#f7faf0}.type-label{font-size:14px;font-weight:500;color:var(--color-text-primary)}.form-content{display:flex;flex-direction:column;gap:24px}.form-section{background:#fff;border:1px solid #e3e2e0;border-radius:8px;padding:20px}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--color-text-primary)}.form-group label.required:after{content:" *";color:#e03e3e}.form-group input,.form-group select,.form-group textarea{width:100%;height:40px;padding:0 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;outline:none;transition:border-color .15s;box-sizing:border-box}.form-group textarea{height:auto;padding:10px 12px;resize:vertical;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#89b929}.form-group .input-disabled{background:#f7f6f3;color:var(--color-text-secondary)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.form-row .form-group{margin-bottom:0}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-group input[type=checkbox]{width:16px;height:16px}.approver-search-wrap{position:relative;margin-bottom:16px}.approver-search{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;background:#fff;border:1px solid #e3e2e0;border-radius:6px}.approver-search svg{color:var(--color-text-secondary);flex-shrink:0}.approver-search input{flex:1;border:none;outline:none;font-size:14px;color:var(--color-text-primary);background:transparent}.approver-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:#fff;border:1px solid #e3e2e0;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:100}.dropdown-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;cursor:pointer;transition:background .15s}.dropdown-item:hover{background:#f7f6f3}.approver-name{font-size:14px;color:var(--color-text-primary)}.approver-email{font-size:12px;color:var(--color-text-tertiary)}.dropdown-empty{padding:16px;text-align:center;font-size:14px;color:var(--color-text-tertiary)}.dropdown-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.approval-line-list{display:flex;flex-direction:column;gap:8px}.approval-line-item{display:flex;align-items:center;gap:12px;padding:12px;background:#f7f6f3;border-radius:6px}.line-order{display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:12px;font-weight:600;color:#fff;background:#89b929;border-radius:50%}.line-name{flex:1;font-size:14px;color:var(--color-text-primary)}.line-actions{display:flex;gap:4px}.line-actions .btn-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#fff;border:1px solid #e3e2e0;border-radius:4px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.line-actions .btn-icon:hover:not(:disabled){background:#f7f6f3;color:var(--color-text-primary)}.line-actions .btn-icon:disabled{opacity:.5;cursor:not-allowed}.line-actions .btn-icon.danger:hover:not(:disabled){background:#fce8e8;border-color:#e03e3e;color:#e03e3e}.empty-approval-line{padding:24px;text-align:center;font-size:14px;color:var(--color-text-tertiary);background:#f7f6f3;border-radius:6px}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:12px}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 20px;font-size:14px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s}.btn-primary{color:#fff;background:#89b929;border:none}.btn-primary:hover:not(:disabled){background:#7aa824}.btn-secondary{color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0}.btn-secondary:hover:not(:disabled){background:#f7f6f3}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.approval-form-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--color-text-secondary)}.approval-form-page .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:form-spin .6s linear infinite}@keyframes form-spin{to{transform:rotate(360deg)}}.approval-form-page .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100}.approval-form-page .toast.success{background:#0f7b0f}.approval-form-page .toast.error{background:#e03e3e}.items-table{width:100%;border-collapse:collapse;margin-bottom:12px}.items-table th,.items-table td{padding:8px;text-align:left;border-bottom:1px solid #e3e2e0}.items-table th{font-size:12px;font-weight:600;color:var(--color-text-secondary);background:#f7f6f3}.items-table td{vertical-align:middle}.items-table td input{width:100%;height:36px;padding:0 10px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:4px;box-sizing:border-box}.items-table td input:focus{outline:none;border-color:#89b929}.items-table .col-name{width:40%}.items-table .col-qty{width:12%}.items-table .col-price{width:20%}.items-table .col-total{width:18%}.items-table .col-action{width:10%}.items-table .cell-total{font-size:14px;font-weight:500;color:var(--color-text-primary);text-align:right;padding-right:16px}.items-table tfoot td{border-bottom:none;padding-top:12px}.items-table .total-label{text-align:right;font-size:14px;font-weight:600;color:var(--color-text-primary)}.items-table .total-value{font-size:16px;font-weight:700;color:#89b929}.btn-remove-item{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--color-text-tertiary);cursor:pointer;transition:all .15s}.btn-remove-item:hover:not(:disabled){background:#fce8e8;border-color:#e03e3e;color:#e03e3e}.btn-remove-item:disabled{opacity:.3;cursor:not-allowed}.btn-add-item{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:13px;font-weight:500;color:#89b929;background:transparent;border:1px dashed #89b929;border-radius:6px;cursor:pointer;transition:all .15s}.btn-add-item:hover{background:#f7faf0}.layout.dark .form-title{color:#ffffffcf}.layout.dark .type-selection-desc{color:var(--color-text-tertiary)}.layout.dark .type-card{background:#252525;border-color:#3f3f3f}.layout.dark .type-card:hover{border-color:#89b929;background:#2a3320}.layout.dark .type-label{color:#ffffffcf}.layout.dark .form-section{background:#252525;border-color:#3f3f3f}.layout.dark .section-title,.layout.dark .form-group label{color:#ffffffcf}.layout.dark .form-group input,.layout.dark .form-group select,.layout.dark .form-group textarea{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .form-group .input-disabled{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .approver-search{background:#2f2f2f;border-color:#3f3f3f}.layout.dark .approver-search input{color:#ffffffcf}.layout.dark .approver-dropdown{background:#252525;border-color:#3f3f3f}.layout.dark .dropdown-item:hover{background:#3f3f3f}.layout.dark .approver-name{color:#ffffffcf}.layout.dark .approval-line-item{background:#2f2f2f}.layout.dark .line-name{color:#ffffffcf}.layout.dark .line-actions .btn-icon{background:#252525;border-color:#3f3f3f;color:var(--color-text-tertiary)}.layout.dark .line-actions .btn-icon:hover:not(:disabled){background:#3f3f3f;color:#ffffffcf}.layout.dark .empty-approval-line{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .btn-secondary{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .btn-secondary:hover:not(:disabled){background:#3f3f3f}.layout.dark .items-table th,.layout.dark .items-table td{border-color:#3f3f3f}.layout.dark .items-table th{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .items-table td input{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .items-table .cell-total,.layout.dark .items-table .total-label{color:#ffffffcf}.layout.dark .btn-add-item{border-color:#89b929}.layout.dark .btn-add-item:hover{background:#2a3320}@media (max-width: 768px){.approval-form-page{padding:16px}.type-grid{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}}.approval-detail-page{max-width:900px;margin:0 auto;padding:24px 32px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.header-left{display:flex;align-items:flex-start;gap:12px}.header-info{display:flex;flex-direction:column;gap:4px}.doc-type{font-size:12px;color:var(--color-text-secondary)}.doc-title{margin:0;font-size:22px;font-weight:700;color:var(--color-text-primary)}.status-badge{display:inline-flex;align-items:center;padding:6px 12px;font-size:13px;font-weight:500;border-radius:4px}.action-bar{display:flex;gap:8px;padding:16px;background:#f7f6f3;border-radius:8px;margin-bottom:24px}.btn-action{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;cursor:pointer;transition:all .15s}.btn-action:hover:not(:disabled){background:#f7f6f3}.btn-action:disabled{opacity:.6;cursor:not-allowed}.btn-action.primary{color:#fff;background:#89b929;border-color:#89b929}.btn-action.primary:hover:not(:disabled){background:#7aa824}.btn-action.danger{color:#e03e3e;border-color:#e03e3e}.btn-action.danger:hover:not(:disabled){background:#fce8e8}.btn-action.approve{color:#0f7b0f;border-color:#0f7b0f}.btn-action.approve:hover:not(:disabled){background:#e8f5e9}.btn-action.reject{color:#e03e3e;border-color:#e03e3e}.btn-action.reject:hover:not(:disabled){background:#fce8e8}.detail-content{display:flex;flex-direction:column;gap:20px}.detail-section{background:#fff;border:1px solid #e3e2e0;border-radius:8px;padding:20px}.section-title{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--color-text-primary)}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:12px;color:var(--color-text-tertiary)}.info-value{font-size:14px;color:var(--color-text-primary)}.approval-timeline{display:flex;flex-direction:column;gap:0}.timeline-item{display:flex;gap:12px;padding:12px 0;position:relative}.timeline-item:not(:last-child):before{content:"";position:absolute;left:8px;top:36px;bottom:0;width:2px;background:#e3e2e0}.timeline-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;margin-top:2px}.timeline-item.approved .timeline-icon{color:#0f7b0f}.timeline-item.rejected .timeline-icon{color:#e03e3e}.timeline-item.pending .timeline-icon{color:var(--color-text-tertiary)}.timeline-content{flex:1}.timeline-header{display:flex;align-items:center;gap:8px}.timeline-order{font-size:12px;color:var(--color-text-tertiary)}.timeline-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.timeline-status{font-size:12px;padding:2px 8px;border-radius:4px}.timeline-status.approved{color:#0f7b0f;background:#e8f5e9}.timeline-status.rejected{color:#e03e3e;background:#fce8e8}.timeline-status.pending{color:var(--color-text-tertiary);background:#f7f6f3}.timeline-date{font-size:12px;color:var(--color-text-tertiary);margin-top:4px}.timeline-comment{font-size:13px;color:var(--color-text-primary);margin-top:8px;padding:10px 12px;background:#f7f6f3;border-radius:6px}.empty-line{padding:24px;text-align:center;font-size:14px;color:var(--color-text-tertiary);background:#f7f6f3;border-radius:6px}.content-table table{width:100%;border-collapse:collapse}.content-table th,.content-table td{padding:12px;border-bottom:1px solid #e3e2e0;text-align:left;font-size:14px}.content-table th{width:140px;color:var(--color-text-secondary);font-weight:500;background:#f7f6f3}.content-table td{color:var(--color-text-primary)}.content-table tr:last-child th,.content-table tr:last-child td{border-bottom:none}.final-comment{padding:16px;background:#f7f6f3;border-radius:6px;font-size:14px;color:var(--color-text-primary);line-height:1.6;white-space:pre-wrap}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.action-dialog{width:100%;max-width:400px;background:#fff;border-radius:12px;padding:24px}.action-dialog h3{margin:0 0 8px;font-size:18px;color:var(--color-text-primary)}.action-dialog p{margin:0 0 16px;font-size:14px;color:var(--color-text-secondary)}.action-dialog textarea{width:100%;padding:10px 12px;font-size:14px;color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0;border-radius:6px;resize:none;outline:none;font-family:inherit;box-sizing:border-box}.action-dialog textarea:focus{border-color:#89b929}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.btn-cancel,.btn-approve,.btn-reject{height:36px;padding:0 16px;font-size:14px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s}.btn-cancel{color:var(--color-text-primary);background:#fff;border:1px solid #e3e2e0}.btn-cancel:hover{background:#f7f6f3}.btn-approve{color:#fff;background:#0f7b0f;border:none}.btn-approve:hover:not(:disabled){background:#0d6b0d}.btn-reject{color:#fff;background:#e03e3e;border:none}.btn-reject:hover:not(:disabled){background:#c73535}.btn-approve:disabled,.btn-reject:disabled{opacity:.6;cursor:not-allowed}.approval-detail-page .loading-state,.approval-detail-page .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--color-text-secondary)}.approval-detail-page .loading-spinner{width:32px;height:32px;border:3px solid #e3e2e0;border-top-color:#89b929;border-radius:50%;animation:detail-spin .6s linear infinite}@keyframes detail-spin{to{transform:rotate(360deg)}}.approval-detail-page .btn-primary{display:inline-flex;align-items:center;height:36px;padding:0 16px;font-size:14px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:6px;cursor:pointer;margin-top:16px}.approval-detail-page .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;font-size:14px;font-weight:500;color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1100}.approval-detail-page .toast.success{background:#0f7b0f}.approval-detail-page .toast.error{background:#e03e3e}.layout.dark .doc-type{color:var(--color-text-tertiary)}.layout.dark .doc-title{color:#ffffffcf}.layout.dark .action-bar{background:#2f2f2f}.layout.dark .btn-action{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .btn-action:hover:not(:disabled){background:#3f3f3f}.layout.dark .detail-section{background:#252525;border-color:#3f3f3f}.layout.dark .section-title{color:#ffffffcf}.layout.dark .info-label{color:var(--color-text-tertiary)}.layout.dark .info-value{color:#ffffffcf}.layout.dark .timeline-item:not(:last-child):before{background:#3f3f3f}.layout.dark .timeline-name{color:#ffffffcf}.layout.dark .timeline-status.pending{background:#2f2f2f}.layout.dark .timeline-comment{background:#2f2f2f;color:#ffffffcf}.layout.dark .empty-line,.layout.dark .content-table th{background:#2f2f2f;color:var(--color-text-tertiary)}.layout.dark .content-table td{color:#ffffffcf}.layout.dark .content-table th,.layout.dark .content-table td{border-color:#3f3f3f}.layout.dark .final-comment{background:#2f2f2f;color:#ffffffcf}.layout.dark .action-dialog{background:#252525}.layout.dark .action-dialog h3{color:#ffffffcf}.layout.dark .action-dialog p{color:var(--color-text-tertiary)}.layout.dark .action-dialog textarea{background:#2f2f2f;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .btn-cancel{background:#3f3f3f;border-color:#4f4f4f;color:#ffffffcf}.layout.dark .btn-cancel:hover{background:#4f4f4f}@media (max-width: 768px){.approval-detail-page{padding:16px}.detail-header{flex-direction:column;gap:12px}.action-bar{flex-wrap:wrap}.info-grid{grid-template-columns:1fr}.content-table th{width:100px}}.support-tickets{padding:24px 32px;max-width:1400px;margin:0 auto;min-height:calc(100vh - 60px);background:var(--color-bg-secondary)}.support-tickets .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.support-tickets .page-header-left{display:flex;align-items:flex-start;gap:12px}.support-tickets .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.support-tickets .page-header-left>div{display:flex;flex-direction:column;gap:4px}.support-tickets .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.support-tickets .page-subtitle{color:var(--color-text-secondary);font-size:13px;margin:0}.support-tickets .btn-primary{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.support-tickets .btn-primary:hover{background:var(--color-primary-hover)}.support-tickets .stats-dashboard{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px}.support-tickets .stat-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast)}.support-tickets .stat-card:hover{border-color:var(--color-border-hover)}.support-tickets .stat-card .stat-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg)}.support-tickets .stat-card .stat-icon svg{width:20px;height:20px;flex-shrink:0}.support-tickets .stat-card.total .stat-icon{background:#2f80ed1a;color:#2f80ed}.support-tickets .stat-card.pending .stat-icon{background:#f5a6231a;color:#f5a623}.support-tickets .stat-card.progress .stat-icon{background:#8b5cf61a;color:#8b5cf6}.support-tickets .stat-card.resolved .stat-icon{background:#89b9291a;color:#89b929}.support-tickets .stat-card.urgent .stat-icon{background:#e03e3e1a;color:#e03e3e}.support-tickets .stat-content{display:flex;flex-direction:column;justify-content:center;min-width:0}.support-tickets .stat-value{font-size:24px;font-weight:600;color:var(--color-text-primary);line-height:1.2;letter-spacing:-.5px}.support-tickets .stat-label{font-size:12px;color:var(--color-text-secondary);margin-top:2px;white-space:nowrap}.tickets-layout{display:grid;grid-template-columns:240px 1fr;gap:20px}.schools-sidebar{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;position:sticky;top:80px;height:fit-content;max-height:calc(100vh - 120px)}.sidebar-header{display:flex;align-items:center;gap:6px;padding:12px 14px;font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--color-border)}.sidebar-header svg{opacity:.6}.school-list{padding:6px;overflow-y:auto}.school-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;font-size:13px;color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast)}.school-item:hover{background:var(--color-bg-hover)}.school-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.school-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-count{padding:2px 6px;font-size:10px;font-weight:500;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);color:var(--color-text-secondary);min-width:20px;text-align:center}.tickets-main{display:flex;flex-direction:column;gap:12px}.tickets-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.filter-group{display:flex;align-items:center;gap:8px}.filter-group svg{color:var(--color-text-tertiary)}.filter-group select{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:12px;color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer;transition:border-color var(--transition-fast)}.filter-group select:hover{border-color:var(--color-border-hover)}.filter-group select:focus{outline:none;border-color:var(--color-primary)}.result-count{font-size:12px;color:var(--color-text-secondary)}.tickets-list{display:flex;flex-direction:column;gap:8px}.ticket-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px;transition:border-color var(--transition-fast);position:relative;cursor:pointer}.ticket-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.ticket-card:hover{border-color:var(--color-border-hover)}.ticket-card.urgency-urgent:before{background:#e03e3e}.ticket-card.urgency-high:before{background:#f5a623}.ticket-card.urgency-normal:before{background:#2f80ed}.ticket-card.urgency-low:before{background:var(--color-border-hover)}.ticket-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.ticket-badges{display:flex;gap:6px;flex-wrap:wrap}.support-tickets .badge{padding:3px 8px;font-size:10px;font-weight:500;border-radius:var(--radius-sm)}.badge.category-bug{background:#e03e3e1a;color:#c93131}.badge.category-feature{background:#8b5cf61a;color:#7c3aed}.badge.category-improvement{background:#2f80ed1a;color:#2563eb}.badge.category-inquiry{background:#f5a6231a;color:#d97706}.badge.category-data{background:#22c55e1a;color:#16a34a}.badge.category-other{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge.urgency-urgent{background:#e03e3e1a;color:#c93131}.badge.urgency-high{background:#f5a6231a;color:#d97706}.badge.urgency-normal{background:#2f80ed1a;color:#2563eb}.badge.urgency-low{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.status-badge{padding:4px 10px;font-size:11px;font-weight:500;border-radius:var(--radius-sm)}.status-badge.status-pending{background:#f5a6231a;color:#d97706}.status-badge.status-received{background:#2f80ed1a;color:#2563eb}.status-badge.status-in_progress{background:#8b5cf61a;color:#7c3aed}.status-badge.status-resolved{background:#22c55e1a;color:#16a34a}.status-badge.status-closed{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.ticket-content{margin-bottom:10px;padding-left:2px}.ticket-title{font-size:14px;font-weight:500;color:var(--color-text-primary);margin:0 0 4px;line-height:1.4}.ticket-desc{font-size:12px;color:var(--color-text-secondary);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ticket-meta{display:flex;flex-wrap:wrap;gap:12px;padding-left:2px;padding-top:10px;border-top:1px solid var(--color-border-light)}.meta-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-secondary)}.meta-item svg{opacity:.6}.meta-item.due.overdue{color:var(--color-error)}.meta-item.linked{color:var(--color-primary)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--color-text-secondary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.loading-state .spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.empty-state svg{width:48px;height:48px;margin-bottom:16px;opacity:.3}.empty-state h3{font-size:15px;font-weight:500;color:var(--color-text-primary);margin:0 0 6px}.empty-state p{font-size:13px;margin:0;max-width:260px;text-align:center;line-height:1.5}.support-tickets .toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;box-shadow:var(--shadow-md);z-index:2000}.support-tickets .toast.success{background:#89b929}.support-tickets .toast.error{background:#e03e3e}@media (max-width: 1200px){.support-tickets .stats-dashboard{grid-template-columns:repeat(3,1fr)}.tickets-layout{grid-template-columns:200px 1fr}}@media (max-width: 900px){.support-tickets{padding:20px}.support-tickets .stats-dashboard{grid-template-columns:repeat(2,1fr)}.tickets-layout{grid-template-columns:1fr}.schools-sidebar{position:static;max-height:none}.school-list{display:flex;flex-wrap:wrap;gap:6px}.school-item{flex:0 0 auto;width:auto;padding:6px 12px}}@media (max-width: 600px){.support-tickets .page-header{flex-direction:column;gap:12px}.filter-group{flex-wrap:wrap}.support-tickets .stat-card{padding:12px}.support-tickets .stat-value{font-size:18px}}.layout.dark .ticket-card,.layout.dark .support-tickets .stat-card,.layout.dark .schools-sidebar,.layout.dark .tickets-toolbar,.layout.dark .loading-state,.layout.dark .empty-state{background:var(--color-bg-secondary)}.support-ticket-form{padding:32px;max-width:800px;margin:0 auto;min-height:calc(100vh - 60px)}.support-ticket-form .form-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.support-ticket-form .form-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.support-ticket-form .form-content{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px}.support-ticket-form .form-section{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--color-border-light)}.support-ticket-form .form-section:last-of-type{margin-bottom:0;padding-bottom:0;border-bottom:none}.support-ticket-form .section-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.support-ticket-form .form-field{margin-bottom:16px}.support-ticket-form .form-field:last-child{margin-bottom:0}.support-ticket-form .form-field label{display:block;font-size:12px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.support-ticket-form .form-field label.required:after{content:" *";color:var(--color-error)}.support-ticket-form .form-field input,.support-ticket-form .form-field select,.support-ticket-form .form-field textarea{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.support-ticket-form .form-field input:hover,.support-ticket-form .form-field select:hover,.support-ticket-form .form-field textarea:hover{border-color:var(--color-border-hover)}.support-ticket-form .form-field input:focus,.support-ticket-form .form-field select:focus,.support-ticket-form .form-field textarea:focus{outline:none;border-color:var(--color-primary)}.support-ticket-form .form-field input:disabled,.support-ticket-form .form-field select:disabled{background:var(--color-bg-tertiary);cursor:not-allowed}.support-ticket-form .form-field textarea{resize:vertical;min-height:100px;line-height:1.5}.support-ticket-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.support-ticket-form .checkbox-field{padding:16px;background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.support-ticket-form .checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;font-weight:500}.support-ticket-form .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.support-ticket-form .field-help{font-size:12px;color:var(--color-text-secondary);margin:8px 0 0 28px}.support-ticket-form .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--color-border)}.support-ticket-form .btn-cancel{padding:10px 18px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.support-ticket-form .btn-cancel:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.support-ticket-form .btn-primary{display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--color-primary);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;cursor:pointer;transition:background var(--transition-fast)}.support-ticket-form .btn-primary:hover{background:var(--color-primary-hover)}.support-ticket-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.support-ticket-form .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--color-text-secondary)}.support-ticket-form .loading-state .spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.support-ticket-form .toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;box-shadow:var(--shadow-md);z-index:2000}.support-ticket-form .toast.success{background:#89b929}.support-ticket-form .toast.error{background:#e03e3e}@media (max-width: 600px){.support-ticket-form{padding:20px}.support-ticket-form .form-row{grid-template-columns:1fr}.support-ticket-form .form-header{flex-direction:column;align-items:flex-start}}.layout.dark .support-ticket-form .form-content{background:var(--color-bg-secondary)}.layout.dark .support-ticket-form .checkbox-field{background:var(--color-bg-tertiary)}.support-ticket-detail{padding:32px;max-width:900px;margin:0 auto;min-height:calc(100vh - 60px)}.support-ticket-detail .detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.support-ticket-detail .header-actions{display:flex;gap:8px}.support-ticket-detail .btn-edit,.support-ticket-detail .btn-delete{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.support-ticket-detail .btn-edit{background:var(--color-bg-primary);border:1px solid var(--color-border);color:var(--color-text-primary)}.support-ticket-detail .btn-edit:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.support-ticket-detail .btn-delete{background:var(--color-error-light);border:none;color:var(--color-error)}.support-ticket-detail .btn-delete:hover{background:#e03e3e33}.support-ticket-detail .detail-content{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.support-ticket-detail .detail-title-section{padding:24px;border-bottom:1px solid var(--color-border)}.support-ticket-detail .title-badges{display:flex;gap:8px;margin-bottom:12px}.support-ticket-detail .badge{padding:4px 10px;font-size:11px;font-weight:500;border-radius:var(--radius-sm)}.support-ticket-detail .badge.category-bug{background:#e03e3e1a;color:#c93131}.support-ticket-detail .badge.category-feature{background:#8b5cf61a;color:#7c3aed}.support-ticket-detail .badge.category-improvement{background:#2f80ed1a;color:#2563eb}.support-ticket-detail .badge.category-inquiry{background:#f5a6231a;color:#d97706}.support-ticket-detail .badge.category-data{background:#22c55e1a;color:#16a34a}.support-ticket-detail .badge.category-other{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.support-ticket-detail .badge.urgency-urgent{background:#e03e3e1a;color:#c93131}.support-ticket-detail .badge.urgency-high{background:#f5a6231a;color:#d97706}.support-ticket-detail .badge.urgency-normal{background:#2f80ed1a;color:#2563eb}.support-ticket-detail .badge.urgency-low{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.support-ticket-detail .detail-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0 0 12px;line-height:1.4}.support-ticket-detail .title-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.support-ticket-detail .title-meta .separator{color:var(--color-border)}.support-ticket-detail .status-section{display:flex;align-items:center;gap:12px;padding:16px 24px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.support-ticket-detail .status-section label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.support-ticket-detail .status-select{padding:8px 14px;font-size:13px;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);cursor:pointer;transition:border-color var(--transition-fast)}.support-ticket-detail .status-select:hover{border-color:var(--color-border-hover)}.support-ticket-detail .status-select.status-pending{color:#d97706;border-color:#f5a6234d}.support-ticket-detail .status-select.status-received{color:#2563eb;border-color:#2f80ed4d}.support-ticket-detail .status-select.status-in_progress{color:#7c3aed;border-color:#8b5cf64d}.support-ticket-detail .status-select.status-resolved{color:#16a34a;border-color:#22c55e4d}.support-ticket-detail .status-select.status-closed{color:var(--color-text-secondary);border-color:var(--color-border)}.support-ticket-detail .detail-section{padding:24px;border-bottom:1px solid var(--color-border)}.support-ticket-detail .detail-section:last-child{border-bottom:none}.support-ticket-detail .section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.support-ticket-detail .section-title svg{color:var(--color-primary)}.support-ticket-detail .description-content{font-size:14px;line-height:1.7;color:var(--color-text-primary);white-space:pre-wrap}.support-ticket-detail .info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.support-ticket-detail .info-item{display:flex;flex-direction:column;gap:4px}.support-ticket-detail .info-item label{font-size:12px;color:var(--color-text-secondary)}.support-ticket-detail .info-item span{font-size:14px;color:var(--color-text-primary)}.support-ticket-detail .linked-issue{background:var(--color-bg-tertiary)}.support-ticket-detail .linked-issue-info{display:flex;align-items:center;gap:12px}.support-ticket-detail .issue-id{font-size:14px;font-weight:500;color:var(--color-primary)}.support-ticket-detail .issue-status{padding:4px 10px;font-size:11px;font-weight:500;border-radius:var(--radius-sm);background:var(--color-bg-primary)}.support-ticket-detail .issue-status.status-open{color:#e03e3e}.support-ticket-detail .issue-status.status-in_progress{color:#2f80ed}.support-ticket-detail .issue-status.status-resolved{color:#89b929}.support-ticket-detail .issue-status.status-closed{color:var(--color-text-secondary)}.support-ticket-detail .btn-link{margin-left:auto;padding:6px 12px;background:var(--color-primary);border:none;border-radius:var(--radius-md);font-size:12px;font-weight:500;color:#fff;cursor:pointer;transition:background var(--transition-fast)}.support-ticket-detail .btn-link:hover{background:var(--color-primary-hover)}.support-ticket-detail .resolution-note{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.support-ticket-detail .resolution-note label{display:block;font-size:12px;color:var(--color-text-secondary);margin-bottom:8px}.support-ticket-detail .note-content{font-size:14px;line-height:1.6;color:var(--color-text-primary);padding:12px 14px;background:var(--color-bg-tertiary);border-radius:var(--radius-md);white-space:pre-wrap}.support-ticket-detail .loading-state,.support-ticket-detail .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--color-text-secondary)}.support-ticket-detail .loading-state .spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.support-ticket-detail .error-state h3{font-size:16px;font-weight:500;color:var(--color-text-primary);margin:0 0 16px}.support-ticket-detail .dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.support-ticket-detail .dialog{background:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:380px}.support-ticket-detail .dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.support-ticket-detail .dialog-header h2{font-size:16px;font-weight:600;margin:0;color:var(--color-text-primary)}.support-ticket-detail .close-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.support-ticket-detail .close-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.support-ticket-detail .dialog-body{padding:20px}.support-ticket-detail .dialog-body p{font-size:14px;color:var(--color-text-primary);margin:0;line-height:1.5}.support-ticket-detail .warning-text{color:var(--color-text-tertiary);font-size:12px;margin-top:8px}.support-ticket-detail .dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--color-border);background:var(--color-bg-tertiary);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.support-ticket-detail .btn-cancel{padding:8px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.support-ticket-detail .btn-cancel:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.support-ticket-detail .btn-danger{padding:8px 14px;background:var(--color-error);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;cursor:pointer;transition:background var(--transition-fast)}.support-ticket-detail .btn-danger:hover{background:var(--color-error-hover)}.support-ticket-detail .toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;box-shadow:var(--shadow-md);z-index:2000}.support-ticket-detail .toast.success{background:#89b929}.support-ticket-detail .toast.error{background:#e03e3e}@media (max-width: 600px){.support-ticket-detail{padding:20px}.support-ticket-detail .detail-header{flex-direction:column;align-items:flex-start;gap:12px}.support-ticket-detail .info-grid{grid-template-columns:1fr}.support-ticket-detail .linked-issue-info{flex-wrap:wrap}.support-ticket-detail .btn-link{margin-left:0;margin-top:8px;width:100%}}.support-ticket-detail .logs-section .section-title{display:flex;align-items:center;gap:8px}.support-ticket-detail .comment-input{display:flex;gap:12px;margin-bottom:20px}.support-ticket-detail .comment-input textarea{flex:1;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;resize:none;background:var(--color-bg-tertiary);color:var(--color-text-primary)}.support-ticket-detail .comment-input textarea:focus{outline:none;border-color:var(--color-primary)}.support-ticket-detail .btn-send{display:flex;align-items:center;gap:6px;padding:12px 18px;background:var(--color-primary);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;cursor:pointer;transition:background var(--transition-fast)}.support-ticket-detail .btn-send:hover:not(:disabled){background:var(--color-primary-hover)}.support-ticket-detail .btn-send:disabled{opacity:.5;cursor:not-allowed}.support-ticket-detail .logs-list{display:flex;flex-direction:column;gap:12px}.support-ticket-detail .no-logs{padding:24px;text-align:center;color:var(--color-text-tertiary);font-size:13px}.support-ticket-detail .log-item{padding:14px 16px;background:var(--color-bg-tertiary);border-radius:var(--radius-md);border-left:3px solid var(--color-border)}.support-ticket-detail .log-item.log-created{border-left-color:#22c55e}.support-ticket-detail .log-item.log-status_changed{border-left-color:#8b5cf6}.support-ticket-detail .log-item.log-comment{border-left-color:#3b82f6}.support-ticket-detail .log-item.log-assigned{border-left-color:#f59e0b}.support-ticket-detail .log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.support-ticket-detail .log-type{font-size:11px;font-weight:500;padding:2px 8px;background:var(--color-bg-primary);border-radius:var(--radius-sm);color:var(--color-text-secondary)}.support-ticket-detail .log-time{font-size:11px;color:var(--color-text-tertiary)}.support-ticket-detail .log-content{font-size:13px;color:var(--color-text-primary);line-height:1.5}.support-ticket-detail .log-content.status-change{display:flex;align-items:center;gap:8px}.support-ticket-detail .log-content .status{padding:3px 10px;font-size:12px;border-radius:var(--radius-sm);background:var(--color-bg-primary)}.support-ticket-detail .log-content .arrow{color:var(--color-text-tertiary)}.support-ticket-detail .log-author{font-size:11px;color:var(--color-text-tertiary);margin-top:8px}.layout.dark .support-ticket-detail .detail-content,.layout.dark .support-ticket-detail .dialog{background:var(--color-bg-secondary)}.layout.dark .support-ticket-detail .dialog-footer,.layout.dark .support-ticket-detail .status-select{background:var(--color-bg-tertiary)}.support-dashboard{padding:24px 32px;max-width:1400px;margin:0 auto}.support-dashboard .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.support-dashboard .page-header-left{display:flex;align-items:flex-start;gap:12px}.support-dashboard .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.support-dashboard .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.support-dashboard .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.support-dashboard .btn-refresh{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.support-dashboard .btn-refresh:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.support-dashboard .stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:28px}.support-dashboard .stat-card{display:flex;align-items:center;gap:12px;padding:18px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.support-dashboard .stat-card:hover{border-color:var(--color-border-hover);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.support-dashboard .stat-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md)}.support-dashboard .stat-card.total .stat-icon{background:#89b9291a;color:var(--color-primary)}.support-dashboard .stat-card.pending .stat-icon{background:#f59e0b1a;color:#f59e0b}.support-dashboard .stat-card.progress .stat-icon{background:#8b5cf61a;color:#8b5cf6}.support-dashboard .stat-card.resolved .stat-icon{background:#22c55e1a;color:#22c55e}.support-dashboard .stat-card.urgent .stat-icon{background:#ef44441a;color:#ef4444}.support-dashboard .stat-card.avg-time .stat-icon{background:#3b82f61a;color:#3b82f6}.support-dashboard .stat-info{display:flex;flex-direction:column}.support-dashboard .stat-value{font-size:22px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.support-dashboard .stat-label{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.support-dashboard .charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.support-dashboard .chart-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.support-dashboard .chart-card.wide{grid-column:span 2}.support-dashboard .chart-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 20px}.support-dashboard .chart-title svg{color:var(--color-primary)}.support-dashboard .bar-chart{display:flex;align-items:flex-end;gap:12px;height:180px;padding-top:20px}.support-dashboard .bar-item{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.support-dashboard .bar-wrapper{flex:1;display:flex;align-items:flex-end;width:100%}.support-dashboard .bar{width:100%;min-height:4px;background:var(--color-primary);border-radius:var(--radius-sm) var(--radius-sm) 0 0;position:relative;transition:height .3s ease}.support-dashboard .bar-value{position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:11px;font-weight:600;color:var(--color-text-secondary)}.support-dashboard .bar-label{font-size:11px;color:var(--color-text-secondary);margin-top:8px}.support-dashboard .horizontal-bar-chart{display:flex;flex-direction:column;gap:12px}.support-dashboard .hbar-item{display:flex;align-items:center;gap:12px}.support-dashboard .hbar-label{width:80px;font-size:12px;color:var(--color-text-secondary);text-align:right;flex-shrink:0}.support-dashboard .hbar-wrapper{flex:1;display:flex;align-items:center;gap:8px;height:24px;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);overflow:hidden}.support-dashboard .hbar{height:100%;min-width:4px;border-radius:var(--radius-sm);transition:width .3s ease}.support-dashboard .hbar-value{font-size:12px;font-weight:500;color:var(--color-text-primary);padding-right:8px}.support-dashboard .pie-chart-wrapper{display:flex;justify-content:center}.support-dashboard .pie-legend{display:flex;flex-direction:column;gap:12px}.support-dashboard .legend-item{display:flex;align-items:center;gap:10px}.support-dashboard .legend-color{width:14px;height:14px;border-radius:var(--radius-sm)}.support-dashboard .legend-label{font-size:13px;color:var(--color-text-secondary);width:60px}.support-dashboard .legend-value{font-size:14px;font-weight:600;color:var(--color-text-primary)}.support-dashboard .school-table{display:flex;flex-direction:column}.support-dashboard .table-header,.support-dashboard .table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.5fr;gap:12px;padding:12px 16px;align-items:center}.support-dashboard .table-header{background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:12px;font-weight:500;color:var(--color-text-secondary)}.support-dashboard .table-row{border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.support-dashboard .table-row:hover{background:var(--color-bg-hover)}.support-dashboard .table-row:last-child{border-bottom:none}.support-dashboard .school-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.support-dashboard .count{font-size:13px;font-weight:600;text-align:center}.support-dashboard .count.total{color:var(--color-text-primary)}.support-dashboard .count.pending{color:#f59e0b}.support-dashboard .count.resolved{color:#22c55e}.support-dashboard .rate{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-secondary)}.support-dashboard .rate-bar{flex:1;height:6px;background:var(--color-bg-tertiary);border-radius:3px;overflow:hidden}.support-dashboard .rate-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .3s ease}.support-dashboard .loading-state,.support-dashboard .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px}.support-dashboard .spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 1200px){.support-dashboard .stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 900px){.support-dashboard .stats-grid{grid-template-columns:repeat(2,1fr)}.support-dashboard .charts-grid{grid-template-columns:1fr}.support-dashboard .chart-card.wide{grid-column:span 1}}@media (max-width: 600px){.support-dashboard{padding:20px}.support-dashboard .stats-grid{grid-template-columns:1fr}.support-dashboard .page-header{flex-direction:column;align-items:flex-start;gap:16px}}.layout.dark .support-dashboard .stat-card,.layout.dark .support-dashboard .chart-card{background:var(--color-bg-secondary)}.support-school-history{padding:24px 32px;max-width:1100px;margin:0 auto}.support-school-history .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.support-school-history .page-header-left{display:flex;align-items:flex-start;gap:12px}.support-school-history .page-header-left>svg{flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.support-school-history .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.support-school-history .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.support-school-history .filter-bar{display:flex;gap:12px;margin-bottom:24px}.support-school-history .school-select-wrapper,.support-school-history .status-filter{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.support-school-history .school-select-wrapper svg,.support-school-history .status-filter svg{color:var(--color-text-secondary)}.support-school-history .school-select-wrapper select,.support-school-history .status-filter select{border:none;background:transparent;font-size:14px;color:var(--color-text-primary);min-width:200px;cursor:pointer}.support-school-history .status-filter select{min-width:120px}.support-school-history .stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.support-school-history .stat-card{display:flex;flex-direction:column;align-items:center;padding:16px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.support-school-history .stat-card .stat-value{font-size:24px;font-weight:700;color:var(--color-text-primary)}.support-school-history .stat-card .stat-label{font-size:12px;color:var(--color-text-secondary);margin-top:4px}.support-school-history .stat-card.total{border-left:3px solid var(--color-primary)}.support-school-history .stat-card.pending{border-left:3px solid #f59e0b}.support-school-history .stat-card.progress{border-left:3px solid #8b5cf6}.support-school-history .stat-card.resolved{border-left:3px solid #22c55e}.support-school-history .distribution-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.support-school-history .distribution-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px}.support-school-history .distribution-card h4{font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.support-school-history .distribution-items{display:flex;flex-wrap:wrap;gap:8px}.support-school-history .dist-item{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.support-school-history .dist-label{font-size:12px;color:var(--color-text-secondary)}.support-school-history .dist-value{font-size:12px;font-weight:600;color:var(--color-text-primary)}.support-school-history .tickets-section{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.support-school-history .section-title{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.support-school-history .tickets-list{display:flex;flex-direction:column;gap:8px}.support-school-history .ticket-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--color-bg-tertiary);border-radius:var(--radius-md);border-left:3px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.support-school-history .ticket-item:hover{background:var(--color-bg-hover)}.support-school-history .ticket-item.urgency-urgent{border-left-color:#ef4444}.support-school-history .ticket-item.urgency-high{border-left-color:#f59e0b}.support-school-history .ticket-item.urgency-normal{border-left-color:#3b82f6}.support-school-history .ticket-item.urgency-low{border-left-color:#6b7280}.support-school-history .ticket-main{flex:1}.support-school-history .ticket-badges{display:flex;gap:6px;margin-bottom:6px}.support-school-history .badge{padding:2px 8px;font-size:10px;font-weight:500;border-radius:var(--radius-sm)}.support-school-history .badge.category-bug{background:#ef44441a;color:#ef4444}.support-school-history .badge.category-feature{background:#8b5cf61a;color:#8b5cf6}.support-school-history .badge.category-improvement{background:#3b82f61a;color:#3b82f6}.support-school-history .badge.category-inquiry{background:#f59e0b1a;color:#f59e0b}.support-school-history .badge.category-data{background:#22c55e1a;color:#22c55e}.support-school-history .badge.category-other{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.support-school-history .badge.urgency-urgent{background:#ef44441a;color:#ef4444}.support-school-history .badge.urgency-high{background:#f59e0b1a;color:#f59e0b}.support-school-history .badge.urgency-normal{background:#3b82f61a;color:#3b82f6}.support-school-history .badge.urgency-low{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.support-school-history .ticket-title{font-size:14px;font-weight:500;color:var(--color-text-primary);margin:0 0 6px}.support-school-history .ticket-meta{display:flex;gap:12px;font-size:12px;color:var(--color-text-secondary)}.support-school-history .meta-item{display:flex;align-items:center;gap:4px}.support-school-history .ticket-right{display:flex;align-items:center;gap:12px}.support-school-history .status-badge{padding:4px 10px;font-size:11px;font-weight:500;border-radius:var(--radius-sm)}.support-school-history .status-badge.status-pending{background:#f59e0b1a;color:#f59e0b}.support-school-history .status-badge.status-received{background:#3b82f61a;color:#3b82f6}.support-school-history .status-badge.status-in_progress{background:#8b5cf61a;color:#8b5cf6}.support-school-history .status-badge.status-resolved{background:#22c55e1a;color:#22c55e}.support-school-history .status-badge.status-closed{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.support-school-history .ticket-right svg{color:var(--color-text-tertiary)}.support-school-history .empty-state,.support-school-history .loading-state,.support-school-history .empty-tickets{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.support-school-history .empty-state svg{width:48px;height:48px;color:var(--color-text-tertiary);margin-bottom:16px}.support-school-history .empty-state h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.support-school-history .empty-state p,.support-school-history .empty-tickets p{font-size:13px;color:var(--color-text-secondary);margin:0}.support-school-history .spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 768px){.support-school-history{padding:20px}.support-school-history .filter-bar{flex-direction:column}.support-school-history .stats-cards{grid-template-columns:repeat(2,1fr)}.support-school-history .distribution-row{grid-template-columns:1fr}}.layout.dark .support-school-history .stat-card,.layout.dark .support-school-history .distribution-card,.layout.dark .support-school-history .tickets-section,.layout.dark .support-school-history .empty-state{background:var(--color-bg-secondary)}.org-chart{max-width:100%;padding:24px 32px;overflow-x:auto}.org-chart .org-header{text-align:center;margin-bottom:40px;position:relative}.org-chart .org-header h1{font-size:24px;font-weight:700;color:var(--color-text-primary);margin:0 0 4px}.org-chart .org-header p{font-size:13px;color:var(--color-text-secondary);margin:0}.org-print-btn{position:absolute;right:0;top:0;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;font-size:12px;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:background .1s ease-out,border-color .1s ease-out}.org-print-btn:hover{background:#f7f6f3;border-color:var(--color-primary)}.layout.dark .org-print-btn{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .org-print-btn:hover{background:#2f2f2f}.org-chart .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--color-text-secondary)}.org-chart .loading-state p{margin-top:16px;font-size:14px}.org-chart .loading-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:org-spin .6s linear infinite}@keyframes org-spin{to{transform:rotate(360deg)}}.pyramid{display:flex;flex-direction:column;align-items:center;min-width:fit-content}.pyramid-level{display:flex;justify-content:center;gap:20px;position:relative}.connector-vertical{width:2px;height:32px;background:var(--color-border)}.connector-horizontal{width:calc(100% - 200px);max-width:800px;height:2px;background:var(--color-border);margin:0 auto}.dept-column{display:flex;flex-direction:column;align-items:center;min-width:160px}.connector-down{width:2px;height:24px;background:var(--color-border)}.connector-down.short{height:16px}.dept-head{display:flex;flex-direction:column;align-items:center;gap:6px}.dept-badge{padding:4px 14px;border-radius:12px;font-size:11px;font-weight:700;color:#fff;letter-spacing:.3px;margin-bottom:4px}.node{display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 16px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;min-width:140px;max-width:180px;transition:all .15s;cursor:default}.node:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #0000000f;transform:translateY(-2px)}.node-exec{border-width:2px;border-color:var(--color-primary);min-width:180px;padding:16px 20px;box-shadow:0 2px 12px #89b9291f}.node-head{min-width:150px}.node-member{min-width:120px;padding:10px 12px}.node-avatar{width:48px;height:48px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;margin-bottom:8px;overflow:hidden;flex-shrink:0}.node-avatar.exec{width:60px;height:60px;font-size:22px;box-shadow:0 2px 8px #00000026}.node-avatar.small{width:36px;height:36px;font-size:14px;margin-bottom:6px}.node-avatar img{width:100%;height:100%;object-fit:cover}.node-name{font-size:14px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.node-exec .node-name{font-size:16px}.node-member .node-name{font-size:12px;font-weight:600}.node-position{font-size:11px;color:var(--color-text-secondary);margin-top:2px}.node-exec .node-position{font-size:12px;color:var(--color-primary);font-weight:600}.node-detail{font-size:10px;color:var(--color-text-tertiary);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.dept-members{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:340px;position:relative;padding-top:4px}.exec-level{margin-bottom:0}.dept-level{margin-top:0;flex-wrap:wrap;gap:24px;align-items:flex-start}.profile-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0000004d;display:flex;align-items:center;justify-content:center;padding:16px}.profile-modal{background:#fff;border:1px solid #e3e2e0;border-radius:6px;box-shadow:0 4px 12px #00000014;width:100%;max-width:360px;animation:profileIn .2s ease-out}@keyframes profileIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.profile-modal-top{display:flex;align-items:center;gap:12px;padding:16px}.profile-top-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.profile-avatar{width:44px;height:44px;border-radius:6px;background:#89b929;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-top-text{min-width:0}.profile-name{font-size:16px;font-weight:600;color:#37352f;margin:0;letter-spacing:-.01em}.profile-sub{font-size:12px;color:#787774}.profile-modal-close{width:28px;height:28px;border:none;background:none;cursor:pointer;color:#787774;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .1s ease-out,color .1s ease-out}.profile-modal-close:hover{background:#f1f1ef;color:#37352f}.profile-divider{height:1px;background:#e3e2e0;margin:0}.profile-info-list{padding:8px 4px}.profile-info-item{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:4px;transition:background .1s ease-out}.profile-info-item:hover{background:#f7f6f3}.profile-info-item svg{color:#787774;flex-shrink:0}.profile-info-label{font-size:11px;font-weight:500;color:#787774;width:52px;flex-shrink:0}.profile-info-value{font-size:12px;color:#37352f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-link{color:#89b929;text-decoration:none}.profile-link:hover{text-decoration:underline}.profile-admin{color:#e03e3e;font-weight:500}.node{cursor:pointer}.layout.dark .profile-modal{background:#252525;border-color:#3f3f3f}.layout.dark .profile-name{color:#ffffffcf}.layout.dark .profile-sub,.layout.dark .profile-modal-close{color:#ffffff71}.layout.dark .profile-modal-close:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .profile-divider{background:#3f3f3f}.layout.dark .profile-info-item:hover{background:#2f2f2f}.layout.dark .profile-info-item svg{color:#ffffff71}.layout.dark .profile-info-label{color:#ffffff71}.layout.dark .profile-info-value{color:#ffffffcf}@media (max-width: 1024px){.org-chart{padding:16px}.dept-level{gap:16px}.dept-column{min-width:140px}}@media (max-width: 768px){.pyramid-level{flex-direction:column;align-items:center}.connector-horizontal{display:none}.dept-level{flex-direction:column;align-items:center}}@media print{@page{size:A4 landscape;margin:10mm}html,body{background:#fff!important;width:277mm}.layout>.header,.layout>.sidebar,.layout>.overlay{display:none!important}.layout>.main-content{margin:0!important;padding:0!important;width:100%!important;max-width:100%!important}.org-print-btn,.profile-modal-overlay{display:none!important}*{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}.org-chart{padding:0!important;overflow:visible!important;color:#000!important}.org-chart .org-header{margin-bottom:16px!important}.org-chart .org-header h1{font-size:18px!important;color:#000!important;margin:0 0 2px!important}.org-chart .org-header p{font-size:11px!important;color:#444!important}.pyramid{page-break-inside:avoid;break-inside:avoid;width:100%}.pyramid-level{gap:12px!important}.dept-level{flex-wrap:nowrap!important;gap:10px!important;align-items:flex-start!important;justify-content:space-around!important;width:100%}.dept-column{min-width:0!important;flex:1 1 0!important;page-break-inside:avoid;break-inside:avoid}.node{padding:6px 8px!important;min-width:0!important;max-width:100%!important;border-radius:6px!important;box-shadow:none!important}.node-exec{padding:8px 12px!important;min-width:0!important;border-width:1.5px!important}.node-head{min-width:0!important}.node-member{min-width:0!important;padding:5px 6px!important}.node-avatar{width:32px!important;height:32px!important;font-size:13px!important;margin-bottom:4px!important;color:#fff!important}.node-avatar.exec{width:40px!important;height:40px!important;font-size:15px!important}.node-avatar.small{width:26px!important;height:26px!important;font-size:11px!important;margin-bottom:3px!important}.node-name{font-size:11px!important;color:#000!important;line-height:1.15!important}.node-exec .node-name{font-size:13px!important}.node-member .node-name{font-size:10px!important}.node-position{font-size:9px!important;color:#444!important;margin-top:1px!important}.node-exec .node-position{font-size:10px!important}.dept-badge{padding:2px 8px!important;font-size:9px!important;margin-bottom:2px!important;color:#fff!important}.dept-members{gap:4px!important;max-width:100%!important;padding-top:2px!important}.connector-vertical{height:16px!important}.connector-down{height:12px!important}.connector-down.short{height:8px!important}.connector-horizontal{max-width:100%!important}}.layout.dark .org-chart .org-header h1{color:#ffffffcf}.layout.dark .node{background:#252525;border-color:#3f3f3f}.layout.dark .node:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #0003}.layout.dark .node-exec{border-color:var(--color-primary);box-shadow:0 2px 12px #89b92933}.layout.dark .node-name{color:#ffffffcf}.layout.dark .connector-vertical,.layout.dark .connector-horizontal,.layout.dark .connector-down{background:#3f3f3f}.pet-container{display:grid;grid-template-columns:220px 1fr;gap:16px;min-height:500px}.pet-loading{padding:40px;text-align:center;font-size:13px;color:var(--color-text-secondary, #787774)}.pet-sidebar{background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;padding:10px 8px;height:fit-content}.pet-sidebar-head{display:flex;justify-content:space-between;align-items:center;padding:4px 8px 8px;border-bottom:1px solid var(--color-border);margin-bottom:6px;font-size:11px;font-weight:600;color:var(--color-text-secondary, #787774);text-transform:uppercase;letter-spacing:.5px}.pet-icon-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--color-text-secondary);border-radius:4px;display:inline-flex;align-items:center;transition:background .1s ease-out}.pet-icon-btn:hover{background:#f7f6f3;color:var(--color-primary, #89b929)}.pet-cat-list{list-style:none;padding:0;margin:0}.pet-cat-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:7px 10px;background:none;border:none;border-left:2px solid transparent;cursor:pointer;font-size:13px;color:var(--color-text-primary, #37352f);text-align:left;border-radius:4px;transition:background .1s ease-out;font-family:inherit}.pet-cat-btn:hover{background:#f7f6f3}.pet-cat-btn.active{background:#f0efed;font-weight:600}.pet-cat-name{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis}.pet-cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.pet-cat-count{font-size:11px;color:var(--color-text-tertiary, #b4b4b0);background:#f0efed;padding:1px 7px;border-radius:10px}.pet-cat-btn.active .pet-cat-count{background:var(--color-primary, #89b929);color:#fff}.pet-main{background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;padding:16px 20px}.pet-main-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-border);gap:12px;flex-wrap:wrap}.pet-header-tools{display:inline-flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap}.pet-sort-select{padding:6px 10px;border:1px solid var(--color-border, #e3e2e0);border-radius:6px;background:var(--color-bg-primary, #fff);font-size:12px;color:var(--color-text-primary);cursor:pointer;height:30px}.pet-sort-select:hover{border-color:var(--color-primary, #89b929)}.pet-btn-tool{display:inline-flex;align-items:center;gap:5px;padding:0 12px;height:30px;font-size:12px}.pet-view-toggle{display:inline-flex;border:1px solid var(--color-border, #e3e2e0);border-radius:6px;overflow:hidden;background:var(--color-bg-primary, #fff);height:30px}.pet-name-clickable{background:none;border:none;padding:0;cursor:pointer;color:inherit;font:inherit;text-align:left}.pet-name-clickable:hover{color:var(--color-primary, #89b929);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.pet-inline-name-input{width:100%;padding:4px 8px;border:1.5px solid var(--color-primary, #89b929);border-radius:4px;font-size:inherit;font-family:inherit;background:#fff;color:var(--color-text-primary);outline:none;box-shadow:0 0 0 3px #89b92926}.pet-file-row{display:inline-flex;align-items:center;gap:6px}.pet-file-open{display:inline-flex;padding:2px 4px;border-radius:3px;color:var(--color-text-tertiary, #9b9a97);text-decoration:none}.pet-file-open:hover{background:var(--color-bg-tertiary);color:var(--color-primary)}.pet-move-wrapper{position:relative;display:inline-block}.pet-move-menu{position:absolute;right:0;top:calc(100% + 4px);min-width:180px;max-width:240px;background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:100;padding:4px}.pet-move-menu-row{right:0}.pet-move-menu-title{padding:6px 10px;font-size:10px;color:var(--color-text-secondary, #787774);border-bottom:1px solid var(--color-border);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.pet-move-menu-item{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;background:none;border:none;cursor:pointer;font-size:12px;color:var(--color-text-primary);text-align:left;border-radius:4px}.pet-move-menu-item:hover{background:var(--color-bg-tertiary);color:var(--color-primary, #89b929)}.pet-move-menu-empty{padding:10px;font-size:11px;color:var(--color-text-tertiary);text-align:center}.pet-view-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:transparent;border:none;border-right:1px solid var(--color-border, #e3e2e0);font-size:12px;color:var(--color-text-secondary, #787774);cursor:pointer;transition:all .12s}.pet-view-btn:last-child{border-right:none}.pet-view-btn:hover{background:#fafaf9;color:var(--color-text-primary)}.pet-view-btn.active{background:var(--color-primary, #89b929);color:#fff}.pet-view-btn.active:hover{background:#7aa824}.pet-cat-title{font-size:16px;font-weight:600;margin:0;display:inline-flex;align-items:center;gap:8px;color:var(--color-text-primary, #37352f)}.pet-cat-sub{font-size:11px;color:var(--color-text-secondary, #787774);margin-top:4px;display:block}.pet-empty{padding:60px 20px;text-align:center;color:var(--color-text-secondary, #787774);font-size:13px}.pet-empty-hint{font-size:11px;color:var(--color-text-tertiary, #b4b4b0);margin-top:8px}.pet-group{margin-bottom:20px}.pet-group-head{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px dashed var(--color-border)}.pet-group-label{font-size:13px;font-weight:600;color:var(--color-text-primary, #37352f)}.pet-group-count{font-size:11px;color:var(--color-text-secondary)}.pet-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.pet-thumb-card{border:1px solid var(--color-border, #e3e2e0);border-radius:6px;overflow:hidden;background:var(--color-bg-primary, #fff);position:relative;transition:border-color .1s ease-out;content-visibility:auto;contain-intrinsic-size:200px 240px}.pet-thumb-card:hover{border-color:var(--color-primary, #89b929)}.pet-thumb-img{width:100%;aspect-ratio:4/3;background:#f7f6f3;border:none;padding:0;cursor:pointer;display:block;overflow:hidden}.pet-thumb-img img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease-out}.pet-thumb-img:hover img{transform:scale(1.04)}.pet-thumb-file{width:100%;aspect-ratio:4/3;background:#fafaf9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--color-text-secondary);text-decoration:none}.pet-thumb-ext{font-size:11px;font-weight:600;font-family:JetBrains Mono,monospace}.pet-thumb-meta{padding:6px 8px;border-top:1px solid var(--color-border)}.pet-thumb-name{font-size:11px;color:var(--color-text-primary, #37352f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pet-thumb-sub{display:flex;justify-content:space-between;font-size:10px;color:var(--color-text-secondary);margin-top:2px}.pet-thumb-actions{position:absolute;top:4px;right:4px;display:flex;gap:2px;opacity:0;transition:opacity .1s ease-out}.pet-thumb-card:hover .pet-thumb-actions{opacity:1}.pet-thumb-actions button{width:24px;height:24px;border:none;background:#ffffffe6;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-primary)}.pet-thumb-actions button:hover{background:#fff}.pet-thumb-actions .pet-btn-danger:hover{background:#fee;color:#e03e3e}.pet-table{width:100%;border-collapse:collapse;font-size:12px}.pet-table thead th{background:#fafaf9;padding:8px 10px;text-align:left;font-weight:600;font-size:11px;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.pet-table tbody td{padding:8px 10px;border-bottom:1px solid #f0efed;color:var(--color-text-primary, #37352f)}.pet-table tbody tr:last-child td{border-bottom:none}.pet-table tbody tr:hover{background:#fafaf9}.pet-file-link{display:inline-flex;align-items:center;gap:4px;color:var(--color-primary, #89b929);text-decoration:none}.pet-file-link:hover{text-decoration:underline}.pet-row-notes{font-size:10px;color:var(--color-text-secondary);margin-top:2px}.pet-row-actions{white-space:nowrap;text-align:right}.pet-row-actions button{background:none;border:none;padding:4px 6px;cursor:pointer;color:var(--color-text-secondary);border-radius:4px;display:inline-flex;align-items:center}.pet-row-actions button:hover{background:#f7f6f3}.pet-row-actions .pet-btn-danger:hover{background:#fee;color:#e03e3e}.pet-btn-primary{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;background:var(--color-primary, #89b929);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background .1s ease-out}.pet-btn-primary:hover{background:#7aa824}.pet-btn-primary:disabled{background:#cbd5e0;cursor:not-allowed}.pet-btn-secondary{padding:6px 14px;background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:4px;font-size:12px;cursor:pointer;transition:background .1s ease-out;color:var(--color-text-primary)}.pet-btn-secondary:hover{background:#f7f6f3}.pet-btn-mini{padding:3px 8px;font-size:11px;border:1px solid var(--color-border, #e3e2e0);background:var(--color-bg-primary, #fff);border-radius:4px;cursor:pointer;color:var(--color-text-primary);margin-right:4px;transition:background .1s ease-out}.pet-btn-mini:hover{background:#f7f6f3}.pet-btn-mini.pet-btn-primary{color:#fff;border-color:var(--color-primary)}.pet-btn-mini.pet-btn-danger{color:#dc2626;border-color:#dc26264d}.pet-btn-mini.pet-btn-danger:hover{background:#fee}.pet-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.pet-modal{background:var(--color-bg-primary, #fff);border-radius:6px;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 12px #00000014;border:1px solid var(--color-border)}.pet-modal-wide{max-width:720px}.pet-modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--color-border)}.pet-modal-head h3{margin:0;font-size:14px;font-weight:600;color:var(--color-text-primary, #37352f)}.pet-modal-head button{background:none;border:none;cursor:pointer;padding:4px;color:var(--color-text-secondary);border-radius:4px;display:inline-flex;align-items:center}.pet-modal-head button:hover{background:#f7f6f3}.pet-modal-body{padding:16px 18px;display:flex;flex-direction:column;gap:12px}.pet-modal-foot{padding:12px 18px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:8px}.pet-form-row,.pet-form-row-2>div{display:flex;flex-direction:column;gap:4px}.pet-form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pet-form-row label,.pet-form-row-2 label{font-size:11px;font-weight:500;color:var(--color-text-secondary, #787774)}.pet-form-row input,.pet-form-row select,.pet-form-row-2 input,.pet-form-row-2 select{padding:6px 10px;border:1px solid var(--color-border, #e3e2e0);border-radius:4px;font-size:13px;background:var(--color-bg-primary);color:var(--color-text-primary);font-family:inherit}.pet-form-row input[type=file]{padding:4px;font-size:11px}.pet-form-row input:focus,.pet-form-row select:focus,.pet-form-row-2 input:focus,.pet-form-row-2 select:focus{outline:none;border-color:var(--color-primary, #89b929)}.pet-hint{font-size:11px;color:var(--color-text-secondary)}.pet-file-readonly{padding:6px 10px;background:#f7f6f3;border-radius:4px;font-size:12px;color:var(--color-text-primary)}.pet-cat-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:16px}.pet-cat-table th{background:#fafaf9;padding:6px 10px;text-align:left;font-weight:600;font-size:11px;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.pet-cat-table td{padding:6px 10px;border-bottom:1px solid #f0efed;vertical-align:middle}.pet-cat-table td input,.pet-cat-table td select{padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;font-size:12px;font-family:inherit;width:100%;box-sizing:border-box}.pet-color-input{width:28px!important;height:24px!important;padding:0!important;border:1px solid var(--color-border)!important;border-radius:4px;cursor:pointer}.pet-color-input:disabled{cursor:default;opacity:.7}.pet-default-badge{display:inline-block;padding:1px 5px;font-size:9px;font-weight:600;background:#6366f11a;color:#6366f1;border-radius:3px;margin-left:4px}.pet-cat-add{border-top:1px solid var(--color-border);padding-top:14px}.pet-cat-add h4{font-size:12px;font-weight:600;margin:0 0 8px;color:var(--color-text-primary)}.pet-cat-add-row{display:flex;gap:8px;align-items:center}.pet-cat-add-row input[type=text],.pet-cat-add-row>input:not([type]){flex:1;padding:6px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:12px}.pet-cat-add-row select{padding:6px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:12px;background:#fff}.pet-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:2000;display:flex;align-items:center;justify-content:center;padding:32px;cursor:zoom-out;flex-direction:column;gap:12px}.pet-lightbox img{max-width:90vw;max-height:80vh;object-fit:contain;cursor:default;border-radius:4px;box-shadow:0 4px 16px #0006}.pet-lightbox-close{position:absolute;top:16px;right:16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center}.pet-lightbox-close:hover{background:#fff3}.pet-lightbox-meta{color:#fff;text-align:center;max-width:90vw}.pet-lightbox-name{font-size:13px;font-weight:600;margin-bottom:4px}.pet-lightbox-sub{display:flex;gap:16px;justify-content:center;font-size:11px;color:#ffffffb3}.layout.dark .pet-sidebar,.layout.dark .pet-main,.layout.dark .pet-modal{background:#252525;border-color:#3f3f3f}.layout.dark .pet-cat-btn{color:#ffffffcf}.layout.dark .pet-cat-btn:hover,.layout.dark .pet-cat-btn.active{background:#2f2f2f}.layout.dark .pet-cat-count{background:#3f3f3f;color:#ffffff71}.layout.dark .pet-main-head{border-color:#3f3f3f}.layout.dark .pet-cat-title,.layout.dark .pet-group-label,.layout.dark .pet-thumb-name{color:#ffffffcf}.layout.dark .pet-group-head{border-color:#3f3f3f}.layout.dark .pet-thumb-card{background:#1e1e1e;border-color:#3f3f3f}.layout.dark .pet-thumb-meta{border-color:#3f3f3f}.layout.dark .pet-thumb-file{background:#1e1e1e}.layout.dark .pet-table thead th{background:#1e1e1e;color:#ffffff71;border-color:#3f3f3f}.layout.dark .pet-table tbody td{color:#ffffffcf;border-color:#3f3f3f}.layout.dark .pet-table tbody tr:hover{background:#2f2f2f}.layout.dark .pet-modal-head,.layout.dark .pet-modal-foot{border-color:#3f3f3f}.layout.dark .pet-modal-head h3{color:#ffffffcf}.layout.dark .pet-form-row input,.layout.dark .pet-form-row select,.layout.dark .pet-form-row-2 input,.layout.dark .pet-form-row-2 select{background:#1e1e1e;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .pet-btn-secondary{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .pet-btn-secondary:hover{background:#2f2f2f}.layout.dark .pet-cat-table thead th{background:#1e1e1e;color:#ffffff71;border-color:#3f3f3f}.layout.dark .pet-cat-table td{border-color:#3f3f3f;color:#ffffffcf}.layout.dark .pet-cat-table input,.layout.dark .pet-cat-table select{background:#1e1e1e;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .pet-cat-add{border-color:#3f3f3f}.layout.dark .pet-cat-add h4{color:#ffffffcf}.layout.dark .pet-file-readonly{background:#1e1e1e;color:#ffffffcf}.pet-main{position:relative}.pet-main-dragover{border-color:var(--color-primary, #89b929)}.pet-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#89b92914;border:2px dashed var(--color-primary, #89b929);border-radius:6px;display:flex;align-items:center;justify-content:center;z-index:10;pointer-events:none}.pet-drop-msg{text-align:center;color:var(--color-primary, #89b929);font-size:14px;font-weight:600}.pet-drop-msg svg{margin-bottom:8px}.pet-drop-msg small{display:block;font-size:11px;font-weight:400;color:var(--color-text-secondary);margin-top:4px}.pet-drop-zone{display:flex;align-items:center;justify-content:center;gap:6px;padding:18px;border:1.5px dashed var(--color-border, #e3e2e0);border-radius:6px;font-size:12px;color:var(--color-text-secondary);transition:border-color .1s ease-out,background .1s ease-out}.pet-drop-zone.dragover{border-color:var(--color-primary, #89b929);background:#89b9290d}.pet-drop-zone svg{color:var(--color-text-tertiary, #b4b4b0)}.pet-drop-link{color:var(--color-primary, #89b929);cursor:pointer;text-decoration:underline;font-weight:500}.pet-bulk-row{display:flex;gap:16px;padding:8px 12px;background:#fafaf9;border:1px solid var(--color-border, #e3e2e0);border-radius:4px;font-size:12px;flex-wrap:wrap}.pet-bulk-item{display:flex;align-items:center;gap:6px}.pet-bulk-item span{color:var(--color-text-secondary);font-weight:500}.pet-bulk-item input{padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;font-size:12px}.pet-pending-list{max-height:400px;overflow-y:auto;border:1px solid var(--color-border, #e3e2e0);border-radius:6px}.pet-pending-table{width:100%;border-collapse:collapse;font-size:11px}.pet-pending-table thead th{background:#fafaf9;padding:6px 8px;text-align:left;font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:1}.pet-th-note{font-size:9px;font-weight:400;color:var(--color-text-tertiary, #b4b4b0);margin-left:4px}.pet-pending-table tbody td{padding:4px 8px;border-bottom:1px solid #f0efed;vertical-align:middle}.pet-pending-table tbody td input{width:100%;padding:4px 6px;border:1px solid var(--color-border, #e3e2e0);border-radius:3px;font-size:11px;font-family:inherit;box-sizing:border-box}.pet-pending-table tbody td input:disabled{background:#fafaf9;color:var(--color-text-tertiary)}.pet-pending-name{font-size:11px;color:var(--color-text-primary, #37352f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px;display:inline-flex;align-items:center;gap:6px}.pet-status-ok{color:var(--color-primary, #89b929);font-weight:700}.pet-status-loading{color:var(--color-text-secondary)}.pet-row-done{background:#89b9290d}.pet-row-error{background:#e03e3e0d}.pet-pending-error{font-size:10px;color:#dc2626;margin-top:2px}.pet-source-tag{display:inline-block;margin-top:2px;padding:1px 5px;font-size:9px;border-radius:3px;font-weight:500}.pet-src-exif{background:#89b9291f;color:#5a8519}.pet-src-modified{background:#6366f11a;color:#6366f1}.pet-src-none{background:#e03e3e1a;color:#dc2626}.pet-btn-icon-tiny{background:none;border:none;padding:3px;cursor:pointer;color:var(--color-text-secondary);border-radius:3px;display:inline-flex;align-items:center}.pet-btn-icon-tiny:hover{background:#fee;color:#e03e3e}.pet-btn-icon-tiny:disabled{opacity:.4;cursor:not-allowed}.pet-empty-small{padding:24px;text-align:center;font-size:12px;color:var(--color-text-secondary)}.layout.dark .pet-bulk-row{background:#1e1e1e;border-color:#3f3f3f}.layout.dark .pet-bulk-item input{background:#1e1e1e;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .pet-pending-table thead th{background:#1e1e1e;color:#ffffff71;border-color:#3f3f3f}.layout.dark .pet-pending-table tbody td{color:#ffffffcf;border-color:#3f3f3f}.layout.dark .pet-pending-table tbody td input{background:#1e1e1e;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .pet-drop-zone{border-color:#3f3f3f}@media (max-width: 768px){.pet-container{grid-template-columns:1fr}.pet-sidebar{position:sticky;top:0;z-index:1}}.government-projects{max-width:1400px;margin:0 auto;padding:24px 32px;min-height:calc(100vh - 60px)}.government-projects .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--color-border)}.government-projects .page-header-left{display:flex;align-items:center;gap:14px}.government-projects .header-icon-wrap{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light, rgba(99, 102, 241, .1));color:var(--color-primary);flex-shrink:0}.government-projects .page-title{font-size:20px;font-weight:700;color:var(--color-text-primary);margin:0 0 4px}.government-projects .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.government-projects .btn-primary{display:flex;align-items:center;gap:8px;padding:10px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,transform .1s}.government-projects .btn-primary:hover{background:var(--color-primary-hover)}.government-projects .btn-primary:active{transform:scale(.98)}.government-projects .filter-bar{display:flex;gap:12px;margin-bottom:20px}.government-projects .filter-select{padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;line-height:1.4;color:var(--color-text-primary);background:var(--color-bg-primary);min-width:160px;height:auto;min-height:38px;transition:border-color .15s}.government-projects .filter-select:focus{outline:none;border-color:var(--color-primary)}.government-projects .project-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.government-projects .project-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:20px;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.government-projects .project-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014;border-color:var(--color-primary)}.government-projects .project-card .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.government-projects .status-badge{display:inline-flex;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;color:#fff;letter-spacing:.02em}.government-projects .status-badge.large{font-size:13px;padding:6px 14px}.government-projects .project-number{font-size:12px;color:var(--color-text-tertiary);font-family:SF Mono,Menlo,monospace}.government-projects .project-card .project-name{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 6px;line-height:1.4}.government-projects .funding-agency{font-size:12px;color:var(--color-text-secondary);margin:0 0 12px}.government-projects .card-meta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.government-projects .meta-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-secondary)}.government-projects .meta-item svg{color:var(--color-text-tertiary);flex-shrink:0}.government-projects .budget-text{font-weight:500}.government-projects .progress-section{display:flex;align-items:center;gap:10px}.government-projects .progress-bar{flex:1;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.government-projects .progress-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .6s ease}.government-projects .progress-text{font-size:12px;color:var(--color-text-secondary);font-weight:500;min-width:32px;text-align:right}.government-projects .detail-hero{background:var(--color-bg-secondary, #f8fafc);border:1px solid var(--color-border);border-radius:16px;padding:24px 28px 20px;margin-bottom:20px}.government-projects .detail-hero-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.government-projects .back-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--color-border);background:var(--color-bg-primary);border-radius:8px;cursor:pointer;font-size:13px;color:var(--color-text-secondary);transition:all .15s}.government-projects .back-btn:hover{background:var(--color-bg-hover);border-color:var(--color-text-tertiary);color:var(--color-text-primary)}.government-projects .btn-outline{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--color-border);background:var(--color-bg-primary);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text-primary);transition:all .15s}.government-projects .btn-outline:hover{background:var(--color-bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.government-projects .detail-hero-body{margin-bottom:24px}.government-projects .detail-badges{display:flex;align-items:center;gap:10px;margin-bottom:12px}.government-projects .project-number-badge{font-size:12px;color:var(--color-text-tertiary);font-family:SF Mono,Menlo,monospace;padding:4px 10px;background:var(--color-bg-tertiary);border-radius:6px}.government-projects .detail-title{font-size:26px;font-weight:700;color:var(--color-text-primary);margin:0 0 12px;line-height:1.3}.government-projects .detail-subtitle{display:flex;flex-wrap:wrap;gap:16px}.government-projects .subtitle-item{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--color-text-secondary)}.government-projects .subtitle-item svg{color:var(--color-text-tertiary);flex-shrink:0}.government-projects .summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.government-projects .summary-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px}.government-projects .summary-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center}.government-projects .summary-icon.blue{background:#3b82f61a;color:#3b82f6}.government-projects .summary-icon.green{background:#10b9811a;color:#10b981}.government-projects .summary-icon.amber{background:#f59e0b1a;color:#f59e0b}.government-projects .summary-icon.purple{background:#8b5cf61a;color:#8b5cf6}.government-projects .summary-icon svg{width:22px;height:22px}.government-projects .summary-data{display:flex;flex-direction:column;gap:2px}.government-projects .summary-value{font-size:22px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.government-projects .summary-unit{font-size:14px;font-weight:400;color:var(--color-text-tertiary)}.government-projects .summary-label{font-size:12px;color:var(--color-text-secondary)}.government-projects .summary-bar{height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.government-projects .summary-bar-fill{height:100%;border-radius:2px;transition:width .8s ease}.government-projects .summary-bar-fill.blue{background:#3b82f6}.government-projects .summary-bar-fill.amber{background:#f59e0b}.government-projects .detail-tabs{display:flex;gap:2px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:6px;margin-bottom:24px;overflow-x:auto;position:sticky;top:64px;z-index:20;box-shadow:0 2px 8px #0000000f}.government-projects .detail-tab{display:flex;align-items:center;gap:7px;padding:10px 18px;border:none;background:transparent;font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-radius:8px;transition:all .2s;white-space:nowrap}.government-projects .detail-tab svg{width:16px;height:16px;flex-shrink:0}.government-projects .detail-tab:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.government-projects .detail-tab.active{background:var(--color-primary-light, rgba(99, 102, 241, .1));color:var(--color-primary)}.government-projects .tab-count{font-size:11px;font-weight:600;padding:1px 7px;background:var(--color-bg-tertiary);border-radius:10px;min-width:20px;text-align:center}.government-projects .detail-tab.active .tab-count{background:#6366f126;color:var(--color-primary)}.government-projects .detail-content{min-height:300px}.government-projects .fade-in{animation:govFadeIn .2s ease}@keyframes govFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.government-projects .overview-info-card,.government-projects .overview-budget-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:24px;margin-bottom:20px}.government-projects .overview-info-header{display:flex;align-items:center;gap:8px;margin-bottom:20px;color:var(--color-text-primary)}.government-projects .overview-info-header svg{flex-shrink:0;color:var(--color-text-secondary)}.government-projects .overview-info-header h3{font-size:15px;font-weight:600;margin:0}.government-projects .overview-table{display:flex;flex-direction:column;gap:0}.government-projects .overview-table-row{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--color-border)}.government-projects .overview-table-row:last-child{border-bottom:none}.government-projects .overview-table-cell{display:flex;align-items:center;gap:12px;padding:16px 12px}.government-projects .overview-table-cell:not(:last-child){border-right:1px solid var(--color-border)}.government-projects .cell-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.government-projects .cell-icon.blue{background:#3b82f61a;color:#3b82f6}.government-projects .cell-icon.green{background:#10b9811a;color:#10b981}.government-projects .cell-icon.purple{background:#8b5cf61a;color:#8b5cf6}.government-projects .cell-icon.amber{background:#f59e0b1a;color:#f59e0b}.government-projects .cell-data{display:flex;flex-direction:column;gap:2px;min-width:0}.government-projects .cell-label{font-size:11px;font-weight:500;color:var(--color-text-tertiary);letter-spacing:.02em}.government-projects .cell-value{font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.government-projects .budget-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.government-projects .budget-stat{display:flex;flex-direction:column;gap:8px;padding:16px 20px;border-right:1px solid var(--color-border)}.government-projects .budget-stat:last-child{border-right:none}.government-projects .budget-stat-label{font-size:11px;font-weight:500;color:var(--color-text-tertiary);letter-spacing:.02em}.government-projects .budget-stat-value{font-size:20px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.government-projects .budget-stat-value.primary{color:var(--color-primary)}.government-projects .budget-stat-rate{display:flex;flex-direction:column;gap:8px}.government-projects .budget-stat-bar{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.government-projects .budget-stat-bar-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .8s ease}.government-projects .content-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:24px}.government-projects .content-card.full-width{margin-bottom:20px}.government-projects .card-title{display:flex;align-items:center;gap:8px;margin-bottom:20px;color:var(--color-text-primary)}.government-projects .card-title svg{flex-shrink:0;color:var(--color-text-secondary)}.government-projects .card-title h3{font-size:15px;font-weight:600;margin:0}.government-projects .member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.government-projects .member-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:10px}.government-projects .member-avatar,.government-projects .member-avatar-img{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;background:linear-gradient(135deg,var(--color-primary),rgba(99,102,241,.7));color:#fff;flex-shrink:0}.government-projects .member-avatar-img{object-fit:cover}.government-projects .member-info{flex:1;min-width:0}.government-projects .member-name{display:block;font-size:14px;font-weight:500;color:var(--color-text-primary)}.government-projects .member-role{font-size:12px;color:var(--color-text-secondary)}.government-projects .member-rate-ring{position:relative;width:36px;height:36px;flex-shrink:0}.government-projects .rate-circle{width:100%;height:100%;transform:rotate(-90deg)}.government-projects .rate-circle-bg{fill:none;stroke:var(--color-border);stroke-width:3}.government-projects .rate-circle-fill{fill:none;stroke:var(--color-primary);stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .8s ease}.government-projects .rate-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:8px;font-weight:700;color:var(--color-text-primary)}.government-projects .description{font-size:14px;color:var(--color-text-primary);line-height:1.7;margin:0;white-space:pre-wrap}.government-projects .milestone-timeline{display:flex;flex-direction:column}.government-projects .milestone-item{display:flex;gap:20px;position:relative;padding-bottom:24px}.government-projects .milestone-item:last-child{padding-bottom:0}.government-projects .milestone-dot{width:32px;height:32px;border-radius:50%;background:var(--color-bg-primary);border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--color-text-tertiary);flex-shrink:0;z-index:1}.government-projects .milestone-dot.completed{background:var(--color-success, #10b981);border-color:var(--color-success, #10b981);color:#fff}.government-projects .milestone-connector{position:absolute;left:15px;top:32px;width:2px;bottom:0;background:var(--color-border)}.government-projects .milestone-content{flex:1;min-width:0}.government-projects .milestone-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:20px}.government-projects .milestone-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:12px}.government-projects .milestone-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.government-projects .milestone-card-title h4{font-size:15px;font-weight:600;margin:0;color:var(--color-text-primary)}.government-projects .year-badge{font-size:11px;font-weight:600;padding:3px 10px;background:var(--color-primary-light, rgba(99, 102, 241, .1));color:var(--color-primary);border-radius:10px;white-space:nowrap}.government-projects .due-date-badge{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-tertiary);white-space:nowrap;padding:4px 10px;background:var(--color-bg-tertiary);border-radius:6px}.government-projects .milestone-desc{font-size:13px;color:var(--color-text-secondary);margin:0 0 14px;line-height:1.5}.government-projects .milestone-progress{display:flex;align-items:center;gap:12px}.government-projects .progress-track-lg{flex:1;height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.government-projects .progress-fill-colored{height:100%;border-radius:4px;transition:width .6s ease}.government-projects .progress-fill-colored.green{background:#10b981}.government-projects .progress-fill-colored.blue{background:#3b82f6}.government-projects .progress-fill-colored.orange{background:#f59e0b}.government-projects .progress-fill-colored.red{background:#ef4444}.government-projects .progress-text-lg{font-size:13px;font-weight:600;min-width:40px;text-align:right}.government-projects .progress-text-lg.green{color:#10b981}.government-projects .progress-text-lg.blue{color:#3b82f6}.government-projects .progress-text-lg.orange{color:#f59e0b}.government-projects .progress-text-lg.red{color:#ef4444}.government-projects .budget-cards{display:flex;flex-direction:column;gap:20px}.government-projects .budget-year-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:24px}.government-projects .budget-year-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.government-projects .budget-year-header h3{font-size:17px;font-weight:600;margin:0;color:var(--color-text-primary)}.government-projects .budget-year-summary{display:flex;align-items:center;gap:12px}.government-projects .budget-total{font-size:15px;font-weight:600;color:var(--color-text-primary)}.government-projects .budget-usage-badge{font-size:12px;font-weight:600;padding:4px 12px;border-radius:20px}.government-projects .budget-usage-badge.high{background:#10b9811a;color:#10b981}.government-projects .budget-usage-badge.mid{background:#3b82f61a;color:#3b82f6}.government-projects .budget-usage-badge.low{background:#f59e0b1a;color:#f59e0b}.government-projects .budget-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.government-projects .budget-breakdown-item{display:flex;flex-direction:column;gap:8px}.government-projects .breakdown-header{display:flex;align-items:center;gap:8px}.government-projects .breakdown-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.government-projects .breakdown-dot.gov{background:#3b82f6}.government-projects .breakdown-dot.cash{background:#10b981}.government-projects .breakdown-dot.inkind{background:#8b5cf6}.government-projects .breakdown-label{font-size:12px;color:var(--color-text-secondary);flex:1}.government-projects .breakdown-value{font-size:14px;font-weight:600;color:var(--color-text-primary)}.government-projects .breakdown-bar{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.government-projects .breakdown-bar-fill{height:100%;border-radius:3px;transition:width .6s ease}.government-projects .breakdown-bar-fill.gov{background:#3b82f6}.government-projects .breakdown-bar-fill.cash{background:#10b981}.government-projects .breakdown-bar-fill.inkind{background:#8b5cf6}.government-projects .breakdown-used{font-size:11px;color:var(--color-text-tertiary)}.government-projects .note-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.government-projects .note-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s}.government-projects .note-card:hover{box-shadow:0 4px 16px #0000000f}.government-projects .note-card-top{display:flex;align-items:center;justify-content:space-between}.government-projects .note-status{font-size:11px;font-weight:600;padding:3px 10px;border-radius:10px;color:#fff}.government-projects .note-status.status-draft{background:var(--color-text-secondary)}.government-projects .note-status.status-submitted{background:#3b82f6}.government-projects .note-status.status-approved{background:#10b981}.government-projects .note-status.status-rejected{background:#ef4444}.government-projects .note-number{font-size:12px;color:var(--color-text-tertiary);font-family:SF Mono,Menlo,monospace}.government-projects .note-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.4}.government-projects .note-footer{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:10px;border-top:1px solid var(--color-border)}.government-projects .note-activity{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-primary);padding:2px 8px;background:var(--color-primary-light, rgba(99, 102, 241, .08));border-radius:6px}.government-projects .note-info{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-tertiary)}.government-projects .plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.government-projects .plan-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s}.government-projects .plan-card:hover{box-shadow:0 4px 16px #0000000f}.government-projects .plan-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start;min-height:500px}.government-projects .plan-list-col{display:flex;flex-direction:column;gap:12px}.government-projects .plan-preview-col{border:1px solid var(--color-border);border-radius:12px;overflow:hidden;min-height:500px}.government-projects .plan-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:500px;gap:12px;color:var(--color-text-tertiary, #9ca3af);font-size:14px;text-align:center;line-height:1.6}.government-projects .plan-drop-zone{position:relative}.government-projects .plan-drop-zone.dragging{outline:2px dashed var(--color-primary);outline-offset:-4px;border-radius:12px}.government-projects .plan-drag-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:rgba(var(--color-primary-rgb, 59,130,246),.08);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;pointer-events:none;color:var(--color-primary);font-weight:600;font-size:15px}.government-projects .plan-drag-overlay svg{width:40px;height:40px}.government-projects .plan-card.clickable{cursor:pointer}.government-projects .plan-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb, 59,130,246),.15)}.government-projects .plan-preview-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-weight:600;font-size:14px}.government-projects .btn-icon-sm{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:16px;line-height:1;padding:2px 6px;border-radius:4px}.government-projects .btn-icon-sm:hover{background:var(--color-bg-tertiary)}.government-projects .preview-inline-loading{display:flex;align-items:center;gap:10px;padding:24px;color:var(--color-text-secondary);font-size:14px}.government-projects .preview-content{padding:24px;font-size:13px;line-height:1.7;color:var(--color-text-primary);overflow-x:auto;overflow-y:auto;word-break:break-word;max-height:calc(100vh - 280px)}.government-projects .preview-content table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.government-projects .preview-content table td,.government-projects .preview-content table th{border:1px solid var(--color-border);padding:6px 8px;text-align:left;vertical-align:top}.government-projects .preview-content table th{background:var(--color-bg-tertiary);font-weight:600}.government-projects .preview-content img{max-width:100%;height:auto}.government-projects .preview-content.pdf-preview{background:#f4f5f7;padding:24px}.government-projects .preview-content.pdf-preview>br{display:none}.government-projects .preview-content.pdf-preview a[name]{display:block;margin-top:28px;padding-top:18px;border-top:1px dashed var(--color-border);font-size:11px;color:var(--color-text-tertiary)}.government-projects .preview-content.pdf-preview a[name]:before{content:"p." attr(name);display:inline-block;padding:2px 8px;margin-bottom:8px;background:var(--color-bg-tertiary);border-radius:10px;font-family:SF Mono,Menlo,monospace}.government-projects .preview-content.pdf-preview hr{display:none}.government-projects .preview-content.pdf-preview img{display:block;margin:10px auto;max-width:100%;background:#fff;box-shadow:0 1px 4px #00000014;border-radius:4px}.government-projects .plan-preview-actions{display:flex;align-items:center;gap:8px}.government-projects .plan-download-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-left:6px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-primary);border-radius:6px;cursor:pointer;transition:all .15s}.government-projects .plan-download-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.government-projects .plan-card-top{display:flex;justify-content:space-between;align-items:center}.government-projects .plan-badges{display:flex;gap:6px}.government-projects .final-badge{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:3px 10px;background:#10b9811a;color:#10b981;border-radius:10px}.government-projects .final-badge svg{width:12px;height:12px}.government-projects .version-badge{font-size:12px;font-weight:600;color:var(--color-text-tertiary);font-family:SF Mono,Menlo,monospace}.government-projects .plan-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.4}.government-projects .plan-summary{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin:0}.government-projects .plan-footer{display:flex;gap:12px;margin-top:auto;padding-top:10px;border-top:1px solid var(--color-border)}.government-projects .plan-info{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-tertiary)}.government-projects .btn-small{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.government-projects .btn-small:hover{background:var(--color-primary-hover)}.government-projects .doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.government-projects .doc-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px;padding:20px;cursor:pointer;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s,border-color .2s}.government-projects .doc-card:hover{box-shadow:0 4px 16px #0000000f;border-color:var(--color-primary)}.government-projects .doc-card-top{display:flex;align-items:center;justify-content:space-between}.government-projects .doc-type-badge{font-size:11px;font-weight:600;padding:3px 10px;background:#3b82f61a;color:#3b82f6;border-radius:10px}.government-projects .doc-date{font-size:12px;color:var(--color-text-tertiary)}.government-projects .doc-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.4}.government-projects .doc-summary{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.government-projects .doc-footer{display:flex;gap:12px;margin-top:auto;padding-top:10px;border-top:1px solid var(--color-border)}.government-projects .doc-info{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-tertiary)}.government-projects .empty-state,.government-projects .empty-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:12px}.government-projects .empty-state svg,.government-projects .empty-tab svg{width:48px;height:48px;color:var(--color-text-tertiary);margin-bottom:16px}.government-projects .empty-state h3,.government-projects .empty-tab h3{font-size:15px;font-weight:500;color:var(--color-text-secondary);margin:0 0 4px}.government-projects .empty-state p,.government-projects .empty-tab p{font-size:13px;color:var(--color-text-tertiary);margin:0}.government-projects .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--color-text-secondary)}.government-projects .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.government-projects .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:14px 24px;border-radius:10px;font-size:14px;font-weight:500;color:#fff;z-index:1000;animation:slideUp .3s ease;box-shadow:0 8px 24px #00000026}.government-projects .toast.success{background:var(--color-success, #10b981)}.government-projects .toast.error{background:var(--color-error, #ef4444)}@media (max-width: 1024px){.government-projects .summary-cards{grid-template-columns:repeat(2,1fr)}.government-projects .overview-table-row{grid-template-columns:1fr}.government-projects .overview-table-cell:not(:last-child){border-right:none;border-bottom:1px solid var(--color-border)}.government-projects .budget-stat-grid{grid-template-columns:1fr}.government-projects .budget-stat{border-right:none;border-bottom:1px solid var(--color-border)}.government-projects .budget-stat:last-child{border-bottom:none}.government-projects .budget-breakdown{grid-template-columns:1fr}}@media (max-width: 768px){.government-projects{padding:16px}.government-projects .page-header{flex-direction:column;align-items:flex-start;gap:16px}.government-projects .project-cards-grid,.government-projects .summary-cards{grid-template-columns:1fr}.government-projects .detail-title{font-size:20px}.government-projects .detail-subtitle{flex-direction:column;gap:8px}.government-projects .detail-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.government-projects .info-grid{grid-template-columns:1fr}.government-projects .info-row.full{grid-column:span 1}.government-projects .member-grid,.government-projects .note-grid,.government-projects .plan-grid,.government-projects .doc-grid{grid-template-columns:1fr}}.government-projects .tab-header-bar{display:flex;justify-content:flex-end;margin-bottom:16px}.government-projects .btn-small{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer}.government-projects .btn-small:hover{opacity:.9}.government-projects .btn-icon-sm{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:transparent;border-radius:6px;cursor:pointer;color:var(--color-text-secondary);transition:all .15s}.government-projects .btn-icon-sm:hover{border-color:var(--color-primary);color:var(--color-primary)}.government-projects .btn-icon-sm.delete:hover{border-color:#ef4444;color:#ef4444}.government-projects .btn-text{background:none;border:none;font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;padding:8px 0}.government-projects .btn-text:hover{color:var(--color-text-primary)}.government-projects .btn-text.primary{color:var(--color-primary)}.government-projects .budget-items-toggle{display:flex;justify-content:space-between;padding-top:16px;border-top:1px solid var(--color-border);margin-top:16px}.government-projects .budget-items-section{margin-top:12px;animation:govFadeIn .2s ease}.government-projects .budget-items-empty{text-align:center;padding:24px;font-size:13px;color:var(--color-text-tertiary)}.government-projects .budget-items-table{width:100%;border-collapse:collapse;font-size:13px}.government-projects .budget-items-table th{text-align:left;padding:8px 10px;font-weight:600;font-size:11px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--color-border)}.government-projects .budget-items-table td{padding:10px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.government-projects .budget-items-table .amount-cell{font-weight:600;text-align:right;white-space:nowrap}.government-projects .item-type-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;background:#3b82f61a;color:#3b82f6;white-space:nowrap}.government-projects .modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.government-projects .modal-box{background:var(--color-bg-primary);border-radius:12px;padding:28px;width:90vw;max-width:600px;box-shadow:0 24px 64px #0003}.government-projects .modal-box h3{font-size:17px;font-weight:600;margin:0 0 20px;color:var(--color-text-primary)}.government-projects .modal-section-title{font-size:13px;font-weight:600;color:var(--color-text-secondary);margin:16px 0 8px;padding-top:16px;border-top:1px solid var(--color-border)}.government-projects .modal-form{display:flex;flex-direction:column;gap:12px}.government-projects .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.government-projects .form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.government-projects .form-group{display:flex;flex-direction:column;gap:4px}.government-projects .form-group label{font-size:12px;font-weight:500;color:var(--color-text-secondary)}.government-projects .form-group input,.government-projects .form-group select{padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;color:var(--color-text-primary);background:var(--color-bg-primary)}.government-projects .form-group input:focus,.government-projects .form-group select:focus{outline:none;border-color:var(--color-primary)}.government-projects .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.government-projects .btn-secondary{padding:8px 16px;border:1px solid var(--color-border);background:transparent;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;color:var(--color-text-primary)}.government-projects .btn-primary{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer}.government-projects .budget-summary-table{width:100%;border-collapse:collapse;margin-bottom:16px;font-size:13px}.government-projects .budget-summary-table th{padding:10px 14px;font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em;text-align:left;border-bottom:2px solid var(--color-border);white-space:nowrap}.government-projects .budget-summary-table th.amt,.government-projects .budget-summary-table td.amt{text-align:right;font-variant-numeric:tabular-nums}.government-projects .budget-summary-table th.rate,.government-projects .budget-summary-table td.rate{width:140px}.government-projects .budget-summary-table tbody td{padding:12px 14px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-weight:500}.government-projects .budget-summary-table tfoot td{padding:12px 14px;border-top:2px solid var(--color-border);font-weight:700;font-size:14px;color:var(--color-text-primary)}.government-projects .source-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}.government-projects .source-dot.gov{background:#3b82f6}.government-projects .source-dot.cash{background:#10b981}.government-projects .source-dot.inkind{background:#8b5cf6}.government-projects .rate-bar-cell{display:flex;align-items:center;gap:8px}.government-projects .rate-bar-track{flex:1;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.government-projects .rate-bar-value{height:100%;border-radius:3px;transition:width .6s}.government-projects .rate-bar-value.gov{background:#3b82f6}.government-projects .rate-bar-value.cash{background:#10b981}.government-projects .rate-bar-value.inkind{background:#8b5cf6}.government-projects .rate-bar-value.total{background:var(--color-primary)}.government-projects .rate-bar-cell span{font-size:12px;font-weight:600;min-width:32px;text-align:right;color:var(--color-text-secondary)}.government-projects .budget-items-table .col-group{width:70px}.government-projects .budget-items-table .col-category{width:120px}.government-projects .budget-items-table .col-type{width:80px}.government-projects .budget-items-table .col-amount{width:120px;text-align:right}.government-projects .budget-items-table .col-date,.government-projects .budget-items-table .col-note{width:100px}.government-projects .budget-items-table .col-action{width:40px}.government-projects .budget-items-table .group-header-row{background:rgba(var(--color-text-primary-rgb, 0,0,0),.04);font-weight:600;font-size:13px}.government-projects .budget-items-table .group-header-row td{padding:10px;color:var(--color-text-primary)}.government-projects .budget-items-table .category-cell{font-weight:500;color:var(--color-text-secondary);padding-left:20px!important}.government-projects .budget-items-table .date-cell,.government-projects .budget-items-table .note-cell{font-size:12px;color:var(--color-text-tertiary)}.government-projects .budget-items-table tfoot .total-row{background:rgba(var(--color-text-primary-rgb, 0,0,0),.06);font-weight:700;font-size:14px}.government-projects .budget-items-table tfoot .total-row td{padding:12px 10px;border-top:2px solid var(--color-border);color:var(--color-text-primary)}.government-projects .budget-items-empty{text-align:center;padding:32px;display:flex;flex-direction:column;align-items:center;gap:12px}.government-projects .budget-items-empty p{font-size:13px;color:var(--color-text-tertiary);margin:0}@media (max-width: 1024px){.government-projects .budget-source-grid{grid-template-columns:repeat(2,1fr)}.government-projects .budget-items-table{font-size:12px}}@media (max-width: 768px){.government-projects .budget-source-grid{grid-template-columns:1fr}}.government-projects .budget-items-table .cash-col{background:#3b82f608}.government-projects .budget-items-table .inkind-col{background:#8b5cf608}.government-projects .budget-items-table thead .cash-col{color:#3b82f6;background:#3b82f614}.government-projects .budget-items-table thead .inkind-col{color:#8b5cf6;background:#8b5cf614}.government-projects .budget-items-table tfoot .cash-col{background:#3b82f60f}.government-projects .budget-items-table tfoot .inkind-col{background:#8b5cf60f}.government-projects .budget-items-table .spent-col{background:#f59e0b0a}.government-projects .budget-items-table thead .spent-col{color:#f59e0b;background:#f59e0b14}.government-projects .budget-items-table .category-row td{font-weight:500}.government-projects .budget-items-table .detail-row td{padding:6px 10px;font-size:12px;color:var(--color-text-secondary);border-bottom:1px dashed var(--color-border)}.government-projects .detail-desc{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.government-projects .spent-badge{font-size:10px;font-weight:600;padding:1px 6px;background:#f59e0b1f;color:#f59e0b;border-radius:4px}.government-projects .detail-date{font-size:11px;color:var(--color-text-tertiary)}.government-projects .detail-row.is-plan td{background:var(--color-bg-primary)}.government-projects .detail-row.is-plan:hover td{background:#fafaf9}.government-projects .detail-row.nested-spent td{background:#fafaf9;border-bottom:1px dashed var(--color-border)}.government-projects .detail-row.nested-spent:hover td{background:#f0efed}.government-projects .nest-arrow{color:var(--color-text-tertiary);font-size:11px;margin-right:2px;-webkit-user-select:none;user-select:none}.government-projects .plan-spent-sum{color:#f59e0b;font-weight:600}.government-projects .remain-ok{color:var(--color-text-primary)}.government-projects .remain-over{color:#dc2626;font-weight:600}.government-projects .rate-bar-fill-inline.rate-warn{background:#f59e0b}.government-projects .rate-bar-fill-inline.rate-over{background:#dc2626}.government-projects .btn-icon-sm.spent-quick-row{color:#f59e0b;border:1px solid transparent}.government-projects .detail-row.is-plan:hover .btn-icon-sm.spent-quick-row,.government-projects .btn-icon-sm.spent-quick-row:hover{background:#f59e0b1a;border-color:#f59e0b4d}.layout.dark .government-projects .detail-row.is-plan td{background:#252525}.layout.dark .government-projects .detail-row.is-plan:hover td{background:#2f2f2f}.layout.dark .government-projects .detail-row.nested-spent td{background:#1e1e1e}.layout.dark .government-projects .detail-row.nested-spent:hover td{background:#2a2a2a}.government-projects .detail-note{font-size:11px;color:var(--color-text-tertiary);font-style:italic}.government-projects .rate-bar-inline{display:flex;align-items:center;gap:6px;min-width:80px}.government-projects .rate-bar-inline .rate-bar-fill-inline{height:6px;background:var(--color-primary);border-radius:3px;transition:width .4s;flex:1;max-width:60px;position:relative}.government-projects .rate-bar-inline{position:relative}.government-projects .rate-bar-inline:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:60px;height:6px;background:var(--color-border);border-radius:3px}.government-projects .rate-bar-inline .rate-bar-fill-inline{position:relative;z-index:1}.government-projects .rate-bar-inline span{font-size:12px;font-weight:600;min-width:32px;margin-left:66px}.government-projects .org-filter-tabs{display:flex;gap:4px;background:var(--color-bg-tertiary);padding:3px;border-radius:8px}.government-projects .org-tab{padding:6px 14px;border:none;background:transparent;border-radius:6px;font-size:12px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.government-projects .org-tab:hover{color:var(--color-text-primary)}.government-projects .org-tab.active{background:var(--color-bg-primary);color:var(--color-primary);box-shadow:0 1px 3px #00000014}.government-projects .org-badge{font-size:10px;font-weight:600;padding:1px 6px;background:#8b5cf61a;color:#8b5cf6;border-radius:4px}.government-projects .budget-items-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.government-projects .budget-items-table th,.government-projects .budget-items-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--color-border);overflow:hidden;text-overflow:ellipsis}.government-projects .budget-items-table th{font-weight:600;font-size:11px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.government-projects .budget-items-table .amount-cell{text-align:right;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}.government-projects .tab-header-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:wrap}.government-projects .budget-items-actions{display:flex;gap:12px}@media (max-width: 768px){.government-projects .org-filter-tabs{overflow-x:auto}.government-projects .budget-items-table{font-size:11px}}.government-projects .gantt-wrap{overflow-x:auto}.government-projects .gantt-table{width:100%;min-width:900px;border-collapse:collapse;font-size:12px}.government-projects .gantt-table th{padding:8px 6px;font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-align:center;border-bottom:2px solid var(--color-border);white-space:nowrap}.government-projects .gantt-table th.gantt-task{text-align:left;min-width:220px;width:30%}.government-projects .gantt-table th.gantt-org{text-align:left;min-width:100px;width:12%}.government-projects .gantt-table th.gantt-progress{min-width:80px;width:8%}.government-projects .gantt-table th.gantt-month{width:36px;min-width:36px}.government-projects .gantt-table td{padding:10px 6px;border-bottom:1px solid var(--color-border);vertical-align:middle}.government-projects .gantt-task-title{display:block;font-size:13px;font-weight:600;color:var(--color-text-primary);line-height:1.3}.government-projects .gantt-task-desc{display:block;font-size:11px;color:var(--color-text-tertiary);margin-top:2px;line-height:1.4}.government-projects .gantt-org-text{font-size:11px;color:var(--color-text-secondary)}.government-projects td.gantt-progress{text-align:center}.government-projects .gantt-progress-bar{width:100%;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden;margin-bottom:2px}.government-projects .gantt-progress-fill{height:100%;border-radius:2px}.government-projects .gantt-progress-text{font-size:11px;font-weight:600;color:var(--color-text-secondary)}.government-projects td.gantt-month{padding:10px 2px;text-align:center;position:relative}.government-projects .gantt-bar{height:8px;background:var(--color-primary);border-radius:0;margin:0 -2px}.government-projects .gantt-bar.start{border-radius:4px 0 0 4px;margin-left:2px}.government-projects .gantt-bar.end{border-radius:0 4px 4px 0;margin-right:2px}.government-projects .gantt-bar.start.end{border-radius:4px}.government-projects .gantt-row{cursor:pointer;transition:background .1s}.government-projects .gantt-row:hover{background:var(--color-bg-hover, rgba(0,0,0,.02))}.government-projects .gantt-table th.gantt-action,.government-projects .gantt-table td.gantt-action{width:36px;text-align:center}.government-projects .modal-form input[type=range]{width:100%;accent-color:var(--color-primary)}.government-projects .project-table-wrap{display:flex;flex-direction:column;gap:24px}.government-projects .project-group-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.government-projects .group-dot{width:8px;height:8px;border-radius:50%}.government-projects .group-label{font-size:13px;font-weight:600;color:var(--color-text-primary)}.government-projects .group-count{font-size:12px;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:1px 7px;border-radius:10px}.government-projects .project-table{width:100%;border-collapse:collapse;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.government-projects .project-table tr{border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .1s}.government-projects .project-table tr:last-child{border-bottom:none}.government-projects .project-table tr:hover{background:var(--color-bg-hover, rgba(0,0,0,.02))}.government-projects .project-table td{padding:12px 14px;font-size:13px;vertical-align:middle}.government-projects .pt-name{width:45%}.government-projects .pt-title{display:block;font-weight:500;color:var(--color-text-primary)}.government-projects .pt-agency{display:block;font-size:11px;color:var(--color-text-tertiary);margin-top:1px}.government-projects .pt-org{width:15%;font-size:12px;color:var(--color-text-secondary)}.government-projects .pt-budget{width:15%;font-size:13px;font-weight:500;color:var(--color-text-primary);text-align:right;font-variant-numeric:tabular-nums}.government-projects .pt-progress{width:25%;display:flex;align-items:center;gap:8px}.government-projects .pt-progress-bar{flex:1;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.government-projects .pt-progress-fill{height:100%;border-radius:2px;transition:width .4s}.government-projects .pt-progress span{font-size:11px;font-weight:600;color:var(--color-text-tertiary);min-width:28px;text-align:right}.government-projects .summary-card:nth-child(1){border-top:3px solid #3b82f6}.government-projects .summary-card:nth-child(2){border-top:3px solid #10b981}.government-projects .summary-card:nth-child(3){border-top:3px solid #f59e0b}.government-projects .summary-card:nth-child(4){border-top:3px solid #8b5cf6}.government-projects .overview-top-grid{display:grid;grid-template-columns:3fr 2fr;gap:20px;margin-bottom:20px;align-items:start}.government-projects .overview-top-grid .overview-info-card,.government-projects .overview-top-grid .overview-budget-card{margin-bottom:0;height:100%}.government-projects .overview-top-grid .budget-stat-grid{grid-template-columns:1fr}.government-projects .overview-top-grid .budget-stat{border-right:none;border-bottom:1px solid var(--color-border);padding:14px 20px}.government-projects .overview-top-grid .budget-stat:last-child{border-bottom:none}.government-projects .overview-top-grid .budget-stat-value{font-size:18px}@media (max-width: 1024px){.government-projects .overview-top-grid{grid-template-columns:1fr}.government-projects .overview-top-grid .budget-stat-grid{grid-template-columns:repeat(3,1fr)}.government-projects .overview-top-grid .budget-stat{border-right:1px solid var(--color-border);border-bottom:none}.government-projects .overview-top-grid .budget-stat:last-child{border-right:none}}.government-projects .gantt-bar{height:14px;opacity:.85}.government-projects .gantt-bar.start{border-radius:7px 0 0 7px}.government-projects .gantt-bar.end{border-radius:0 7px 7px 0}.government-projects .gantt-bar.start.end{border-radius:7px}.government-projects .gantt-row:nth-child(2n) td{background:var(--color-bg-tertiary, rgba(0,0,0,.015))}.government-projects .gantt-table td{padding:12px 6px}.government-projects .gantt-progress-bar{height:6px}.government-projects .budget-summary-table tbody tr:hover td{background:var(--color-bg-hover, rgba(0,0,0,.02))}.government-projects .tab-header-bar{background:var(--color-bg-secondary, #f8fafc);border:1px solid var(--color-border);border-radius:10px;padding:10px 14px;margin-bottom:20px}.government-projects .member-role{display:block;font-size:11px;color:var(--color-text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.government-projects .detail-hero-top{margin-bottom:16px}.government-projects .detail-title{font-size:24px;font-weight:700;color:var(--color-text-primary);line-height:1.35;margin:0 0 10px;letter-spacing:-.01em}.government-projects .detail-tab.active .tab-count{background:var(--color-primary);color:#fff}.government-projects .overview-info-header{padding-bottom:16px;border-bottom:1px solid var(--color-border);margin-bottom:0}.government-projects .overview-table{margin-top:4px}.government-projects .budget-items-toggle{background:var(--color-bg-secondary, #f8fafc);border-radius:8px;padding:10px 14px;margin-top:16px}.government-projects .note-card:hover,.government-projects .plan-card:hover,.government-projects .doc-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000014;border-color:var(--color-primary)}.government-projects .note-card,.government-projects .plan-card{transition:transform .2s,box-shadow .2s,border-color .2s}.government-projects .cat-quick-add{display:flex;gap:4px;justify-content:center;opacity:0;transition:opacity .15s}.government-projects .category-row:hover .cat-quick-add{opacity:1}.government-projects .btn-icon-sm.spent-quick{color:#f59e0b;border-color:#f59e0b4d}.government-projects .btn-icon-sm.spent-quick:hover{border-color:#f59e0b;background:#f59e0b14;color:#f59e0b}.government-projects .modal-cat-label{font-size:14px;font-weight:400;color:var(--color-primary)}.government-projects .detail-row{cursor:default}.government-projects .detail-row:not(.editing):hover td{background:#3b82f608}.government-projects .detail-row.editing td{background:#3b82f60a;padding-top:5px;padding-bottom:5px}.government-projects .editing-cell{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.government-projects .inline-edit-input{border:1px solid var(--color-border);border-radius:5px;padding:3px 7px;font-size:12px;background:var(--color-bg-primary);color:var(--color-text-primary);outline:none;transition:border-color .15s}.government-projects .inline-edit-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f626}.government-projects .inline-edit-input.desc-input{flex:1 1 160px;min-width:120px}.government-projects .inline-edit-input.date-input{flex:0 0 auto;width:130px}.government-projects .inline-edit-input.note-input{flex:1 1 100px;min-width:80px;color:var(--color-text-secondary)}.government-projects .inline-edit-input.amount-input{width:100%;text-align:right}.government-projects .btn-icon-sm.edit-item{color:var(--color-text-secondary);border-color:transparent;opacity:0;transition:opacity .15s,color .15s}.government-projects .detail-row:hover .btn-icon-sm.edit-item{opacity:1}.government-projects .row-actions .btn-icon-sm.delete{opacity:.45;transition:opacity .15s,color .15s}.government-projects .detail-row:hover .row-actions .btn-icon-sm.delete{opacity:1}.government-projects .btn-icon-sm.edit-item:hover{color:var(--color-primary);border-color:#3b82f64d;background:#3b82f60f}.government-projects .btn-icon-sm.save{color:#10b981;border-color:#10b9814d}.government-projects .btn-icon-sm.save:hover{background:#10b9811a;border-color:#10b981}.government-projects .btn-icon-sm.cancel-edit{color:var(--color-text-secondary);border-color:var(--color-border)}.government-projects .btn-icon-sm.cancel-edit:hover{color:#ef4444;border-color:#ef44444d;background:#ef44440f}.government-projects .edit-actions,.government-projects .row-actions{display:flex;flex-direction:row;gap:4px;align-items:center;justify-content:center}.receipt-upload-area{margin-top:4px}.receipt-upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px;border:1.5px dashed var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;color:var(--color-text-secondary);font-size:13px}.receipt-upload-label:hover{border-color:#89b929;background:#89b9290a;color:#89b929}.receipt-upload-label.uploading{opacity:.6;cursor:not-allowed}.receipt-upload-label small{font-size:11px;color:var(--color-text-tertiary, #aaa)}.receipt-preview{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary, #f9f9f9)}.receipt-thumbnail{width:48px;height:48px;object-fit:cover;border-radius:4px;border:1px solid var(--color-border)}.receipt-file-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#e8f5e9;border-radius:4px;color:#89b929}.receipt-filename{flex:1;font-size:13px;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-remove-btn{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:18px;line-height:1;padding:2px 6px;border-radius:4px;transition:color .15s,background .15s}.receipt-remove-btn:hover{color:#ef4444;background:#ef444414}.receipt-icon-btn{display:inline-flex;align-items:center;gap:3px;margin-left:8px;padding:2px 6px;border:1px solid rgba(137,185,41,.4);border-radius:4px;background:#89b92914;color:#89b929;font-size:11px;cursor:pointer;transition:background .15s,border-color .15s;vertical-align:middle}.receipt-icon-btn:hover{background:#89b9292e;border-color:#89b929}.receipt-viewer-modal{background:var(--color-bg-primary, #fff);border-radius:12px;width:min(90vw,800px);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000040}.receipt-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--color-border);font-weight:600;font-size:14px}.receipt-viewer-actions{display:flex;align-items:center;gap:8px}.receipt-viewer-body{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;padding:16px;background:#f5f5f5;min-height:400px}.receipt-viewer-img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:4px;box-shadow:0 2px 12px #00000026}.receipt-viewer-pdf{width:100%;height:70vh;border:none;border-radius:4px}.summary-card.budget-warn{border-color:#f59e0b66;background:#f59e0b0a}.summary-card.budget-over{border-color:#ef444466;background:#ef44440a}.budget-warn-badge{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:4px;background:#f59e0b;color:#fff;font-size:10px;font-weight:600;vertical-align:middle}.budget-alert-badge{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:4px;background:#ef4444;color:#fff;font-size:10px;font-weight:600;vertical-align:middle}.summary-bar-fill.red{background:#ef4444}.summary-bar-fill.orange{background:#f59e0b}.category-row.rate-warn td{background:#f59e0b0d}.category-row.rate-over td{background:#ef44440d}.category-row.rate-over .amount-cell.spent-col{color:#ef4444;font-weight:600}.gantt-task-deliverable{display:flex;align-items:center;gap:3px;margin-top:3px;font-size:11px;color:#10b981;font-weight:500}.gantt-task-deliverable svg{flex-shrink:0}.draft-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;background:#94a3b826;color:#94a3b8;border:1px solid rgba(148,163,184,.3)}.government-project-form{padding:24px;max-width:800px}.government-project-form .back-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary);cursor:pointer;margin-bottom:16px;transition:color .15s ease}.government-project-form .back-link:hover{color:var(--color-primary)}.government-project-form .page-title{font-size:28px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.government-project-form .page-subtitle{font-size:14px;color:var(--color-text-secondary);margin:0 0 24px}.government-project-form .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--color-text-secondary)}.government-project-form .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.government-project-form .form-container{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px}.government-project-form .form-section{padding:20px;border-bottom:1px solid var(--color-border)}.government-project-form .form-section:last-of-type{border-bottom:none}.government-project-form .section-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.government-project-form .form-group{margin-bottom:16px}.government-project-form .form-group:last-child{margin-bottom:0}.government-project-form .form-group label{display:block;font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.government-project-form .form-group label .required{color:var(--color-error)}.government-project-form .form-group input,.government-project-form .form-group select,.government-project-form .form-group textarea{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color .15s ease}.government-project-form .form-group input:focus,.government-project-form .form-group select:focus,.government-project-form .form-group textarea:focus{outline:none;border-color:var(--color-primary)}.government-project-form .form-group textarea{resize:vertical;min-height:80px}.government-project-form .form-group input::placeholder,.government-project-form .form-group textarea::placeholder{color:var(--color-text-tertiary)}.government-project-form .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.government-project-form .form-row.three-cols{grid-template-columns:repeat(3,1fr)}.government-project-form .tag-input-wrapper{display:flex;gap:8px}.government-project-form .tag-input-wrapper input{flex:1}.government-project-form .btn-add{padding:9px 16px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;font-size:13px;color:var(--color-text-primary);cursor:pointer;white-space:nowrap;transition:background .15s ease}.government-project-form .btn-add:hover{background:var(--color-bg-hover)}.government-project-form .tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.government-project-form .tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--color-primary-light);color:var(--color-primary);border-radius:12px;font-size:12px}.government-project-form .tag button{display:flex;align-items:center;justify-content:center;background:none;border:none;color:inherit;cursor:pointer;font-size:14px;padding:0;opacity:.7}.government-project-form .tag button:hover{opacity:1}.government-project-form .form-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border)}.government-project-form .btn-secondary{padding:9px 18px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;font-size:14px;color:var(--color-text-primary);cursor:pointer;transition:background .15s ease}.government-project-form .btn-secondary:hover{background:var(--color-bg-hover)}.government-project-form .btn-primary{display:flex;align-items:center;gap:8px;padding:9px 18px;background:var(--color-primary);border:none;border-radius:6px;font-size:14px;font-weight:500;color:#fff;cursor:pointer;transition:background .15s ease}.government-project-form .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.government-project-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.government-project-form .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:6px;font-size:14px;font-weight:500;z-index:2000;animation:slideUp .3s ease}.government-project-form .toast.success{background:var(--color-primary-light);color:var(--color-primary)}.government-project-form .toast.error{background:var(--color-error-lighter);color:var(--color-error)}@media (max-width: 768px){.government-project-form{padding:16px}.government-project-form .form-row,.government-project-form .form-row.three-cols{grid-template-columns:1fr}}.planning-dashboard{max-width:1200px;margin:0 auto;padding:24px 32px;min-height:calc(100vh - 60px)}.planning-dashboard .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.planning-dashboard .page-header-left{display:flex;align-items:flex-start;gap:12px}.planning-dashboard .page-header-left svg{color:var(--color-text-secondary);flex-shrink:0;margin-top:2px}.planning-dashboard .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.planning-dashboard .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.planning-dashboard .loading-state,.planning-dashboard .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--color-text-secondary)}.planning-dashboard .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.planning-dashboard .error-state svg{color:var(--color-error);width:32px;height:32px}.planning-dashboard .error-state button{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer}.planning-dashboard .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.planning-dashboard .stat-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;padding:16px;cursor:pointer;transition:border-color .15s ease;overflow:hidden;min-width:0}.planning-dashboard .stat-card:hover{border-color:var(--color-primary)}.planning-dashboard .stat-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.planning-dashboard .stat-icon.projects{background:var(--color-secondary-light);color:var(--color-secondary)}.planning-dashboard .stat-icon.budget{background:var(--color-warning-light);color:var(--color-warning)}.planning-dashboard .stat-icon.notes{background:#8b5cf61a;color:#9333ea}.planning-dashboard .stat-icon.meetings{background:var(--color-primary-light);color:var(--color-primary)}.planning-dashboard .stat-icon.research{background:#db27771a;color:#db2777}.planning-dashboard .stat-content{margin-bottom:8px}.planning-dashboard .stat-label{display:block;font-size:12px;color:var(--color-text-secondary);margin-bottom:4px}.planning-dashboard .stat-value{font-size:22px;font-weight:700;color:var(--color-text-primary);word-break:break-all}.planning-dashboard .stat-breakdown{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.planning-dashboard .breakdown-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-secondary)}.planning-dashboard .breakdown-item .dot{width:6px;height:6px;border-radius:50%}.planning-dashboard .breakdown-item .dot.planning{background:var(--color-text-tertiary)}.planning-dashboard .breakdown-item .dot.in-progress{background:var(--color-warning)}.planning-dashboard .breakdown-item .dot.completed{background:var(--color-primary)}.planning-dashboard .stat-progress{margin-top:8px}.planning-dashboard .stat-progress .progress-bar{height:4px;background:var(--color-border);border-radius:2px;overflow:hidden;margin-bottom:6px}.planning-dashboard .stat-progress .progress-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .3s ease}.planning-dashboard .stat-progress .progress-text{font-size:11px;color:var(--color-text-secondary)}.planning-dashboard .dashboard-content{display:grid;grid-template-columns:1fr 340px;gap:24px}.planning-dashboard .content-left,.planning-dashboard .content-right{display:flex;flex-direction:column;gap:24px}.planning-dashboard .dashboard-section{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;padding:16px}.planning-dashboard .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 12px;background:var(--color-bg-secondary, #f7f6f3);border:1px solid var(--color-border, #e3e2e0);border-radius:6px}.planning-dashboard .section-title{font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0}.planning-dashboard .section-header svg{color:var(--color-text-tertiary)}.planning-dashboard .btn-link{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--color-primary);font-size:12px;cursor:pointer;padding:0}.planning-dashboard .btn-link:hover{text-decoration:underline}.planning-dashboard .empty-state-small{padding:24px;text-align:center;color:var(--color-text-secondary);font-size:13px}.planning-dashboard .progress-list{display:flex;flex-direction:column;gap:12px}.planning-dashboard .progress-item{padding:12px;background:var(--color-bg-secondary);border-radius:6px;cursor:pointer;transition:background .15s ease}.planning-dashboard .progress-item:hover{background:var(--color-bg-hover)}.planning-dashboard .progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.planning-dashboard .progress-item .project-name{font-size:13px;font-weight:500;color:var(--color-text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:12px}.planning-dashboard .progress-item .progress-percent{font-size:13px;font-weight:600;color:var(--color-primary)}.planning-dashboard .progress-item .progress-bar{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.planning-dashboard .progress-item .progress-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .3s ease}.planning-dashboard .progress-item .budget-info{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px;color:var(--color-text-secondary)}.planning-dashboard .progress-item .budget-info svg{width:12px;height:12px}.planning-dashboard .activity-list{display:flex;flex-direction:column;gap:8px}.planning-dashboard .activity-item{display:flex;align-items:flex-start;gap:10px;padding:10px;background:var(--color-bg-secondary);border-radius:6px}.planning-dashboard .activity-icon{width:28px;height:28px;border-radius:6px;background:var(--color-bg-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-secondary)}.planning-dashboard .activity-content{flex:1;min-width:0}.planning-dashboard .activity-type{display:inline-block;font-size:10px;color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:2px 6px;border-radius:3px;margin-right:6px}.planning-dashboard .activity-title{display:block;font-size:13px;font-weight:500;color:var(--color-text-primary);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-dashboard .activity-project{display:block;font-size:11px;color:var(--color-text-secondary);margin-top:2px}.planning-dashboard .activity-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.planning-dashboard .activity-time{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-tertiary)}.planning-dashboard .activity-creator{font-size:10px;color:var(--color-text-secondary)}.planning-dashboard .deadline-list{display:flex;flex-direction:column;gap:8px}.planning-dashboard .deadline-item{display:flex;align-items:center;gap:10px;padding:10px;background:var(--color-bg-secondary);border-radius:6px;border-left:3px solid transparent}.planning-dashboard .deadline-item.normal{border-left-color:var(--color-primary)}.planning-dashboard .deadline-item.soon{border-left-color:var(--color-warning)}.planning-dashboard .deadline-item.urgent{border-left-color:var(--color-error)}.planning-dashboard .deadline-item.overdue{border-left-color:var(--color-error);background:var(--color-error-lighter)}.planning-dashboard .deadline-date{width:40px;text-align:center;flex-shrink:0}.planning-dashboard .deadline-date .date-day{display:block;font-size:18px;font-weight:600;color:var(--color-text-primary);line-height:1}.planning-dashboard .deadline-date .date-month{display:block;font-size:10px;color:var(--color-text-secondary);margin-top:2px}.planning-dashboard .deadline-content{flex:1;min-width:0}.planning-dashboard .deadline-type{display:inline-block;font-size:10px;color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:2px 6px;border-radius:3px}.planning-dashboard .deadline-title{display:block;font-size:13px;font-weight:500;color:var(--color-text-primary);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-dashboard .deadline-project{display:block;font-size:11px;color:var(--color-text-secondary);margin-top:2px}.planning-dashboard .deadline-dday{flex-shrink:0}.planning-dashboard .deadline-dday .dday{display:inline-block;padding:3px 8px;border-radius:10px;font-size:11px;font-weight:600;background:var(--color-primary-light);color:var(--color-primary)}.planning-dashboard .deadline-dday .dday.today{background:var(--color-warning-light);color:var(--color-warning)}.planning-dashboard .deadline-dday .dday.overdue{background:var(--color-error-lighter);color:var(--color-error)}.planning-dashboard .quick-links{padding:12px}.planning-dashboard .quick-links .section-title{margin-bottom:12px}.planning-dashboard .links-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.planning-dashboard .quick-link{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:border-color .15s ease}.planning-dashboard .quick-link:hover{border-color:var(--color-primary)}.planning-dashboard .quick-link svg{color:var(--color-primary)}.planning-dashboard .quick-link span{font-size:12px;font-weight:500;color:var(--color-text-primary)}@media (max-width: 1400px){.planning-dashboard .stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1200px){.planning-dashboard .dashboard-content{grid-template-columns:1fr}.planning-dashboard .content-right{order:-1}}@media (max-width: 768px){.planning-dashboard{padding:16px}.planning-dashboard .stats-grid{grid-template-columns:repeat(2,1fr)}.planning-dashboard .stat-value{font-size:20px}.planning-dashboard .links-grid{grid-template-columns:repeat(4,1fr)}}.planning-meetings{max-width:1200px;margin:0 auto;position:relative;padding:24px 32px;min-height:calc(100vh - 60px)}.planning-meetings .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.planning-meetings .page-header-left{display:flex;align-items:center;gap:10px}.planning-meetings .page-header-left svg{color:var(--color-text-tertiary);flex-shrink:0;width:18px;height:18px}.planning-meetings .page-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.planning-meetings .page-subtitle{display:none}.planning-meetings .btn-primary{display:flex;align-items:center;gap:6px;padding:7px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease}.planning-meetings .btn-primary:hover{background:var(--color-primary-hover)}.planning-meetings .filter-bar{display:flex;gap:8px;margin-bottom:12px}.planning-meetings .filter-select{padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg-primary);min-width:160px;height:32px}.planning-meetings .search-box{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;flex:1;max-width:300px;height:32px}.planning-meetings .search-box svg{color:var(--color-text-tertiary);width:14px;height:14px}.planning-meetings .search-box input{border:none;outline:none;font-size:13px;flex:1;background:transparent;color:var(--color-text-primary)}.planning-meetings .content-wrapper{display:flex;gap:24px}.planning-meetings .content-wrapper.with-detail .meetings-list{width:400px;flex-shrink:0}.planning-meetings .meetings-list{flex:1}.planning-meetings .loading-state,.planning-meetings .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary)}.planning-meetings .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.planning-meetings .empty-state svg{width:48px;height:48px;color:var(--color-text-tertiary);margin-bottom:16px}.planning-meetings .empty-state h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.planning-meetings .empty-state p{font-size:14px;margin:0}.planning-meetings .meetings-table-wrap{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.planning-meetings .meetings-table{width:100%;border-collapse:collapse}.planning-meetings .meetings-table thead tr{border-bottom:1px solid var(--color-border)}.planning-meetings .meetings-table th{padding:8px 12px;font-size:11px;font-weight:500;color:var(--color-text-tertiary);text-align:left;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em;-webkit-user-select:none;user-select:none}.planning-meetings .meetings-table tbody tr{border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .1s}.planning-meetings .meetings-table tbody tr:last-child{border-bottom:none}.planning-meetings .meetings-table tbody tr:hover{background:var(--color-bg-hover, rgba(0,0,0,.02))}.planning-meetings .meetings-table tbody tr.selected{background:var(--color-primary-light, rgba(99,102,241,.06))}.planning-meetings .meetings-table td{padding:10px 12px;font-size:13px;color:var(--color-text-primary);vertical-align:middle}.planning-meetings .meetings-table .col-date{width:80px}.planning-meetings .meetings-table .col-title{min-width:200px}.planning-meetings .meetings-table .col-project{width:160px}.planning-meetings .meetings-table .col-meta{width:80px}.planning-meetings .meetings-table .col-attach{width:50px}.planning-meetings .date-text{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.planning-meetings .title-text{font-weight:500;color:var(--color-text-primary)}.planning-meetings .project-tag{font-size:11px;padding:2px 8px;background:#6366f114;color:var(--color-primary);border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;display:inline-block}.planning-meetings .meta-text{font-size:12px;color:var(--color-text-tertiary)}.planning-meetings .attach-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--color-text-secondary)}.planning-meetings .attach-badge svg{width:12px;height:12px;color:var(--color-primary)}.planning-meetings .detail-panel{flex:1;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;max-height:calc(100vh - 200px);display:flex;flex-direction:column}.planning-meetings .panel-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid var(--color-border)}.planning-meetings .panel-title-section{flex:1}.planning-meetings .panel-title{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.planning-meetings .project-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-secondary);background:var(--color-bg-secondary);padding:4px 8px;border-radius:4px}.planning-meetings .panel-actions{display:flex;gap:8px}.planning-meetings .btn-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease}.planning-meetings .btn-icon:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.planning-meetings .btn-icon.delete:hover{background:var(--color-error-lighter);border-color:var(--color-error);color:var(--color-error)}.planning-meetings .panel-content{flex:1;overflow-y:auto;padding:16px}.planning-meetings .info-section{margin-bottom:20px}.planning-meetings .section-title{font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.planning-meetings .info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.planning-meetings .info-item{display:flex;align-items:flex-start;gap:8px}.planning-meetings .info-item.full-width{grid-column:1 / -1}.planning-meetings .info-item svg{color:var(--color-text-tertiary);flex-shrink:0;margin-top:2px}.planning-meetings .info-item label{font-size:12px;color:var(--color-text-secondary);min-width:50px}.planning-meetings .info-item span{font-size:13px;color:var(--color-text-primary)}.planning-meetings .text-content{font-size:13px;color:var(--color-text-primary);line-height:1.6}.planning-meetings .text-content.pre-wrap{white-space:pre-wrap}.planning-meetings .action-items-list{display:flex;flex-direction:column;gap:8px}.planning-meetings .action-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--color-bg-secondary);border-radius:6px}.planning-meetings .action-item.completed{opacity:.7}.planning-meetings .action-item.completed .action-task{text-decoration:line-through}.planning-meetings .action-checkbox{width:18px;height:18px;border:2px solid var(--color-border);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.planning-meetings .action-item.completed .action-checkbox{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.planning-meetings .action-content{flex:1}.planning-meetings .action-task{font-size:13px;color:var(--color-text-primary)}.planning-meetings .action-meta{display:flex;gap:12px;margin-top:4px}.planning-meetings .action-meta .assignee,.planning-meetings .action-meta .due-date{font-size:11px;color:var(--color-text-secondary)}.planning-meetings .meta-section{padding-top:16px;border-top:1px solid var(--color-border);display:flex;gap:16px;font-size:11px;color:var(--color-text-tertiary)}.planning-meetings .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.planning-meetings .modal{background:var(--color-bg-primary);border-radius:8px;width:600px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.planning-meetings .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.planning-meetings .modal-header h2{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0}.planning-meetings .modal-body{flex:1;overflow-y:auto;padding:20px}.planning-meetings .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.planning-meetings .form-group{margin-bottom:16px}.planning-meetings .form-group label{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.planning-meetings .form-group input,.planning-meetings .form-group select,.planning-meetings .form-group textarea{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;color:var(--color-text-primary);background:var(--color-bg-primary)}.planning-meetings .form-group input:focus,.planning-meetings .form-group select:focus,.planning-meetings .form-group textarea:focus{outline:none;border-color:var(--color-primary)}.planning-meetings .form-group textarea{resize:vertical;min-height:60px}.planning-meetings .btn-add-small{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--color-bg-secondary);border:none;border-radius:4px;font-size:12px;color:var(--color-primary);cursor:pointer}.planning-meetings .action-items-form{display:flex;flex-direction:column;gap:8px}.planning-meetings .action-item-row{display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:8px;align-items:center}.planning-meetings .action-item-row input{padding:8px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background:var(--color-bg-primary);color:var(--color-text-primary)}.planning-meetings .action-item-row .checkbox-label{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-secondary);white-space:nowrap}.planning-meetings .btn-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-error);cursor:pointer}.planning-meetings .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border)}.planning-meetings .btn-secondary{padding:9px 18px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.planning-meetings .btn-secondary:hover{background:var(--color-bg-hover)}.planning-meetings .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:6px;font-size:14px;font-weight:500;z-index:2000;animation:slideUp .3s ease}.planning-meetings .toast.success{background:var(--color-primary-light);color:var(--color-primary)}.planning-meetings .toast.error{background:var(--color-error-lighter);color:var(--color-error)}@media (max-width: 1024px){.planning-meetings .content-wrapper.with-detail{flex-direction:column}.planning-meetings .content-wrapper.with-detail .meetings-list{width:100%}.planning-meetings .detail-panel{max-height:none}}@media (max-width: 768px){.planning-meetings{padding:16px}.planning-meetings .filter-bar{flex-direction:column}.planning-meetings .search-box{max-width:none}.planning-meetings .form-row,.planning-meetings .action-item-row{grid-template-columns:1fr}.planning-meetings .modal{width:100%;height:100%;max-width:100%;max-height:100%;border-radius:0}}.planning-meetings .drag-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#6366f10f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.planning-meetings .drag-overlay.uploading{background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.planning-meetings .drag-overlay-content{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 64px;background:var(--color-bg-primary);border:3px dashed var(--color-primary);border-radius:20px;box-shadow:0 24px 64px #00000026;text-align:center}.planning-meetings .drag-overlay-content svg{color:var(--color-primary)}.planning-meetings .drag-overlay-content h3{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.planning-meetings .drag-overlay-content p{font-size:14px;color:var(--color-text-secondary);margin:0}.planning-meetings .bulk-spinner{width:36px;height:36px;border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:pmSpin .8s linear infinite}@keyframes pmSpin{to{transform:rotate(360deg)}}.planning-meetings .bulk-bar{width:240px;height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.planning-meetings .bulk-bar-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .3s ease}.planning-meetings .header-actions-group{display:flex;gap:8px}.planning-meetings .btn-outline{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--color-border);background:var(--color-bg-primary);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text-primary);transition:all .15s}.planning-meetings .btn-outline svg{width:16px;height:16px}.planning-meetings .btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.planning-meetings .empty-state.drop-zone{cursor:pointer;border:2px dashed var(--color-border);border-radius:16px;padding:80px 40px;transition:all .2s}.planning-meetings .empty-state.drop-zone:hover{border-color:var(--color-primary);background:#6366f108}.planning-meetings .empty-state.drop-zone svg{color:var(--color-primary);opacity:.6;margin-bottom:8px;width:32px;height:32px}.planning-meetings .empty-state.drop-zone h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.planning-meetings .empty-state.drop-zone p{color:var(--color-text-secondary)}.planning-meetings .drop-zone-or{display:block;font-size:12px;color:var(--color-text-tertiary);margin:12px 0}.planning-meetings .attachments-list{display:flex;flex-direction:column;gap:8px}.planning-meetings .attachment-link{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;text-decoration:none;transition:all .15s}.planning-meetings .attachment-link:hover{border-color:var(--color-primary);background:#6366f10a}.planning-meetings .attachment-link svg{color:var(--color-primary);flex-shrink:0}.planning-meetings .attachment-name{flex:1;font-size:13px;font-weight:500;color:var(--color-text-primary)}.planning-meetings .attachment-size{font-size:12px;color:var(--color-text-tertiary)}.planning-meetings .preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.planning-meetings .preview-modal{width:90vw;height:90vh;max-width:1200px;background:var(--color-bg-primary);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #0000004d}.planning-meetings .preview-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.planning-meetings .preview-header h3{font-size:15px;font-weight:600;margin:0;color:var(--color-text-primary)}.planning-meetings .preview-body{flex:1;overflow:hidden}.planning-meetings .preview-body iframe{width:100%;height:100%;border:none}.planning-meetings .attachment-row{display:flex;align-items:center;gap:8px}.planning-meetings .attachment-row .attachment-link{flex:1}.planning-meetings .btn-preview{padding:6px 12px;border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s}.planning-meetings .btn-preview:hover{background:var(--color-primary);color:#fff}.planning-meetings .preview-content{margin-bottom:20px;padding:24px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;font-size:13px;line-height:1.7;color:var(--color-text-primary);overflow-x:auto;word-break:break-word}.planning-meetings .preview-content table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.planning-meetings .preview-content table td,.planning-meetings .preview-content table th{border:1px solid var(--color-border);padding:6px 8px;text-align:left;vertical-align:top}.planning-meetings .preview-content table th{background:var(--color-bg-tertiary);font-weight:600}.planning-meetings .preview-content img{max-width:100%;height:auto}.planning-meetings .preview-content p{margin:4px 0}.planning-meetings .preview-content h1,.planning-meetings .preview-content h2,.planning-meetings .preview-content h3{margin:12px 0 6px;font-weight:600}.planning-meetings .preview-inline-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--color-text-secondary);font-size:13px}.planning-meetings .preview-inline-loading .bulk-spinner{width:20px;height:20px;border-width:2px}.planning-meetings .detail-full{max-width:860px;margin:0 auto}.planning-meetings .detail-top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.planning-meetings .back-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--color-border);background:var(--color-bg-primary);border-radius:6px;cursor:pointer;font-size:13px;color:var(--color-text-secondary);transition:all .15s}.planning-meetings .back-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.planning-meetings .detail-top-actions{display:flex;gap:6px}.planning-meetings .btn-outline.delete{color:#ef4444}.planning-meetings .btn-outline.delete:hover{border-color:#ef4444;background:#ef44440d}.planning-meetings .detail-header-section{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--color-border)}.planning-meetings .detail-meeting-title{font-size:24px;font-weight:700;color:var(--color-text-primary);margin:0 0 12px;line-height:1.3}.planning-meetings .detail-meta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.planning-meetings .detail-meta-item{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--color-text-secondary)}.planning-meetings .detail-meta-item svg{width:14px;height:14px;color:var(--color-text-tertiary)}.planning-meetings .detail-meta-item.muted{color:var(--color-text-tertiary);font-size:12px}.planning-meetings .detail-section{margin-bottom:20px}.planning-meetings .detail-section h3{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.planning-meetings .detail-section p,.planning-meetings .detail-section .pre-wrap{font-size:14px;line-height:1.7;color:var(--color-text-primary);margin:0;white-space:pre-wrap}.planning-meetings .detail-section.attachments{padding-top:16px;border-top:1px solid var(--color-border)}@media (max-width: 768px){.planning-meetings .detail-meeting-title{font-size:20px}.planning-meetings .detail-meta-row{flex-direction:column;align-items:flex-start;gap:6px}}.planning-meetings .meetings-grouped{display:flex;flex-direction:column;gap:20px}.planning-meetings .meeting-group-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.planning-meetings .meeting-group-header svg{width:14px;height:14px;color:var(--color-text-tertiary)}.planning-meetings .meeting-group-name{font-size:13px;font-weight:600;color:var(--color-text-primary)}.planning-meetings .meeting-group-count{font-size:11px;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:1px 7px;border-radius:10px}.planning-research{max-width:1200px;margin:0 auto;padding:24px 32px;min-height:calc(100vh - 60px)}.planning-research .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.planning-research .page-header-left{display:flex;align-items:flex-start;gap:12px}.planning-research .page-header-left svg{color:var(--color-text-secondary);flex-shrink:0;margin-top:2px}.planning-research .page-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0}.planning-research .page-subtitle{font-size:13px;color:var(--color-text-secondary);margin:0}.planning-research .btn-primary{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease}.planning-research .btn-primary:hover{background:var(--color-primary-hover)}.planning-research .filter-bar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.planning-research .filter-select{padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;line-height:1.4;color:var(--color-text-primary);background:var(--color-bg-primary);min-width:150px;height:auto;min-height:36px}.planning-research .search-box{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;flex:1;max-width:400px}.planning-research .search-box svg{color:var(--color-text-tertiary);width:16px;height:16px}.planning-research .search-box input{border:none;outline:none;font-size:14px;flex:1;background:transparent;color:var(--color-text-primary)}.planning-research .view-toggle{display:flex;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.planning-research .view-toggle button{padding:8px 12px;background:var(--color-bg-primary);border:none;cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease}.planning-research .view-toggle button:not(:last-child){border-right:1px solid var(--color-border)}.planning-research .view-toggle button.active{background:var(--color-primary);color:#fff}.planning-research .content-wrapper{display:flex;gap:24px}.planning-research .content-wrapper.with-detail .materials-list{width:50%;flex-shrink:0}.planning-research .materials-list{flex:1;position:relative;min-height:200px}.planning-research .materials-list.drag-over{outline:2px dashed var(--color-primary);outline-offset:-6px;border-radius:8px}.planning-research .drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--color-bg-secondary);background:color-mix(in srgb,var(--color-primary) 8%,var(--color-bg-primary));border-radius:8px;color:var(--color-primary);font-size:15px;font-weight:600;pointer-events:none}.planning-research .drop-overlay svg{width:32px;height:32px}.planning-research .loading-state,.planning-research .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary)}.planning-research .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.planning-research .empty-state svg{width:48px;height:48px;color:var(--color-text-tertiary);margin-bottom:16px}.planning-research .empty-state h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.planning-research .empty-state p{font-size:14px;margin:0}.planning-research .materials-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.planning-research .material-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;padding:16px;cursor:pointer;transition:border-color .15s ease}.planning-research .material-card:hover{border-color:var(--color-primary)}.planning-research .material-card.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.planning-research .material-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.planning-research .type-badge{display:inline-flex;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500;color:#fff}.planning-research .type-badge.small{padding:2px 8px;font-size:10px}.planning-research .relevance-score{display:flex;gap:2px;color:var(--color-warning)}.planning-research .relevance-score svg{width:12px;height:12px}.planning-research .material-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.planning-research .material-authors{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary);margin:0 0 8px}.planning-research .material-authors svg{width:12px;height:12px;color:var(--color-text-tertiary)}.planning-research .material-summary{font-size:12px;color:var(--color-text-secondary);line-height:1.5;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.planning-research .card-footer{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.planning-research .project-tag,.planning-research .date{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-secondary)}.planning-research .project-tag svg,.planning-research .date svg{width:11px;height:11px;color:var(--color-text-tertiary)}.planning-research .keywords{display:flex;flex-wrap:wrap;gap:4px}.planning-research .keyword-tag{display:inline-block;padding:2px 8px;background:var(--color-bg-secondary);border-radius:10px;font-size:11px;color:var(--color-text-secondary)}.planning-research .keyword-more{font-size:11px;color:var(--color-text-tertiary)}.planning-research .materials-table{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.planning-research .materials-table table{width:100%;border-collapse:collapse}.planning-research .materials-table th,.planning-research .materials-table td{padding:12px 16px;text-align:left;font-size:13px;border-bottom:1px solid var(--color-border)}.planning-research .materials-table th{background:var(--color-bg-secondary);font-weight:600;color:var(--color-text-primary)}.planning-research .materials-table tr{cursor:pointer;transition:background .15s ease}.planning-research .materials-table tbody tr:hover{background:var(--color-bg-hover)}.planning-research .materials-table tr.selected{background:var(--color-primary-light)}.planning-research .materials-table .title-cell{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-research .detail-panel{flex:1;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;max-height:calc(100vh - 200px);display:flex;flex-direction:column}.planning-research .panel-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid var(--color-border)}.planning-research .panel-title-section{flex:1}.planning-research .panel-title-section .type-badge{margin-bottom:8px}.planning-research .panel-title{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0}.planning-research .panel-actions{display:flex;gap:8px}.planning-research .btn-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease}.planning-research .btn-icon:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.planning-research .btn-icon.delete:hover{background:var(--color-error-lighter);border-color:var(--color-error);color:var(--color-error)}.planning-research .panel-content{flex:1;overflow-y:auto;padding:16px}.planning-research .info-section{margin-bottom:20px}.planning-research .section-title{font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.planning-research .info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.planning-research .info-item{display:flex;align-items:flex-start;gap:8px}.planning-research .info-item svg{color:var(--color-text-tertiary);flex-shrink:0;margin-top:2px}.planning-research .info-item label{font-size:12px;color:var(--color-text-secondary);min-width:50px}.planning-research .info-item span{font-size:13px;color:var(--color-text-primary)}.planning-research .links-list{display:flex;flex-direction:column;gap:8px}.planning-research .link-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--color-bg-secondary);border-radius:6px;font-size:13px;color:var(--color-text-primary);text-decoration:none;transition:background .15s ease}.planning-research .link-item:hover{background:var(--color-bg-hover)}.planning-research .link-item svg{color:var(--color-text-tertiary);flex-shrink:0}.planning-research .link-item span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-research .doi-label,.planning-research .isbn-label{font-weight:500;color:var(--color-text-secondary);flex-shrink:0}.planning-research .text-content{font-size:13px;color:var(--color-text-primary);line-height:1.6}.planning-research .keywords-list{display:flex;flex-wrap:wrap;gap:8px}.planning-research .keywords-list .keyword-tag{padding:4px 12px;font-size:12px}.planning-research .meta-section{padding-top:16px;border-top:1px solid var(--color-border);display:flex;gap:16px;font-size:11px;color:var(--color-text-tertiary)}.planning-research .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.planning-research .modal{background:var(--color-bg-primary);border-radius:8px;width:600px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.planning-research .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.planning-research .modal-header h2{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0}.planning-research .modal-body{flex:1;overflow-y:auto;padding:20px}.planning-research .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.planning-research .form-group{margin-bottom:16px}.planning-research .form-group label{display:block;font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.planning-research .form-group input,.planning-research .form-group select,.planning-research .form-group textarea{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;color:var(--color-text-primary);background:var(--color-bg-primary)}.planning-research .form-group input:focus,.planning-research .form-group select:focus,.planning-research .form-group textarea:focus{outline:none;border-color:var(--color-primary)}.planning-research .form-group textarea{resize:vertical;min-height:60px}.planning-research .relevance-input{display:flex;align-items:center;gap:4px}.planning-research .star-btn{padding:4px;background:none;border:none;cursor:pointer;color:var(--color-border);transition:color .15s ease}.planning-research .star-btn.active,.planning-research .star-btn:hover{color:var(--color-warning)}.planning-research .clear-btn{margin-left:8px;padding:4px 8px;background:none;border:none;font-size:12px;color:var(--color-text-secondary);cursor:pointer}.planning-research .clear-btn:hover{color:var(--color-text-primary)}.planning-research .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border)}.planning-research .btn-secondary{padding:9px 18px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.planning-research .btn-secondary:hover{background:var(--color-bg-hover)}.planning-research .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:6px;font-size:14px;font-weight:500;z-index:2000;animation:slideUp .3s ease}.planning-research .toast.success{background:var(--color-primary-light);color:var(--color-primary)}.planning-research .toast.error{background:var(--color-error-lighter);color:var(--color-error)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 1024px){.planning-research .content-wrapper.with-detail{flex-direction:column}.planning-research .content-wrapper.with-detail .materials-list{width:100%}.planning-research .materials-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.planning-research .detail-panel{max-height:none}}@media (max-width: 768px){.planning-research{padding:16px}.planning-research .filter-bar{flex-direction:column}.planning-research .filter-select{min-width:auto;width:100%}.planning-research .search-box{max-width:none}.planning-research .form-row,.planning-research .info-grid{grid-template-columns:1fr}.planning-research .modal{width:100%;height:100%;max-width:100%;max-height:100%;border-radius:0}}.planning-research .file-upload-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px dashed var(--color-border);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:14px;cursor:pointer;transition:border-color .15s,color .15s}.planning-research .file-upload-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.planning-research .file-upload-btn.disabled{opacity:.6;cursor:not-allowed}.planning-research .attached-file{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px}.planning-research .attached-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planning-research .attached-file-remove{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;padding:2px;border-radius:4px}.planning-research .attached-file-remove:hover{color:#ef4444;background:var(--color-bg-primary)}.planning-research .attached-file.download{text-decoration:none;cursor:pointer;transition:border-color .15s,color .15s}.planning-research .attached-file.download:hover{border-color:var(--color-primary);color:var(--color-primary)}.budget-calculator{max-width:1100px;margin:0 auto;padding:24px 32px;min-height:calc(100vh - 60px)}.budget-calculator .page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.budget-calculator .page-header-left{display:flex;align-items:center;gap:12px}.budget-calculator .page-header-left svg{color:var(--color-primary);flex-shrink:0}.budget-calculator .page-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0}.budget-calculator .page-subtitle{font-size:var(--text-xs);color:var(--color-text-secondary);margin:2px 0 0}.budget-calculator .btn-primary-sm{height:30px;padding:0 14px;font-size:12px;font-weight:500;color:#fff;background:var(--color-primary);border:none;border-radius:5px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:background .15s}.budget-calculator .btn-primary-sm:hover{background:var(--color-primary-hover, #7aa824)}.budget-calculator .list-loading,.budget-calculator .list-empty{text-align:center;padding:60px 20px;color:var(--color-text-tertiary);font-size:13px}.budget-calculator .list-empty button{margin-top:16px}.budget-calculator .calc-list-wrapper{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.budget-calculator .calc-list-table{width:100%;border-collapse:collapse}.budget-calculator .calc-list-table th{padding:8px 14px;font-size:11px;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);text-align:left}.budget-calculator .calc-list-row{cursor:pointer;transition:background .1s}.budget-calculator .calc-list-row:hover{background:#89b9290a}.budget-calculator .calc-list-row td{padding:10px 14px;font-size:12px;color:var(--color-text-primary);border-bottom:1px solid var(--color-border-light, #ededeb)}.budget-calculator .calc-list-name{font-weight:600}.budget-calculator .calc-list-project,.budget-calculator .calc-list-desc{color:var(--color-text-secondary)}.budget-calculator .calc-list-date{font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}.budget-calculator .calc-list-actions{display:flex;gap:4px;white-space:nowrap}.budget-calculator .calc-list-actions button{padding:3px 8px;font-size:11px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:3px;cursor:pointer;transition:all .1s}.budget-calculator .calc-list-actions button:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary, #ededeb)}.budget-calculator .calc-list-actions button.danger:hover{color:var(--color-error, #e03e3e);background:#e03e3e0f}.budget-calculator .btn-back{width:28px;height:28px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .1s}.budget-calculator .btn-back:hover{color:var(--color-text-primary);border-color:var(--color-primary)}.budget-calculator .calc-meta-inputs{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.budget-calculator .calc-name-input{font-size:16px;font-weight:600;color:var(--color-text-primary);background:transparent;border:none;outline:none;padding:0;width:100%;font-family:inherit}.budget-calculator .calc-name-input::placeholder{color:var(--color-text-tertiary)}.budget-calculator .calc-meta-row{display:flex;gap:8px}.budget-calculator .calc-meta-input{font-size:11px;color:var(--color-text-secondary);background:transparent;border:none;outline:none;padding:0;width:160px;font-family:inherit}.budget-calculator .calc-meta-input::placeholder{color:var(--color-text-tertiary)}.budget-calculator .unsaved-badge{font-size:10px;color:#b45309;background:#fef3c7;padding:3px 8px;border-radius:10px;border:1px solid #fcd34d}.budget-calculator .btn-save{height:30px;padding:0 16px;font-size:12px;font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:5px;cursor:pointer;transition:background .15s}.budget-calculator .btn-save:hover:not(:disabled){background:var(--color-primary-hover, #7aa824)}.budget-calculator .btn-save:disabled{opacity:.5;cursor:not-allowed}.budget-calculator .page-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.budget-calculator .overview-panel{display:flex;align-items:center;gap:20px;padding:14px 18px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;margin-bottom:12px;flex-wrap:wrap}.budget-calculator .overview-field{display:flex;align-items:center;gap:6px}.budget-calculator .overview-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.budget-calculator .overview-input-wrap{display:flex;align-items:center;gap:3px}.budget-calculator .overview-input{width:64px;height:28px;padding:0 8px;font-size:12px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);text-align:right;outline:none;font-family:inherit;font-variant-numeric:tabular-nums}.budget-calculator .overview-input.main{width:140px;font-weight:600;font-size:13px}.budget-calculator .overview-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #89b9291f}.budget-calculator .overview-input[type=number]::-webkit-inner-spin-button,.budget-calculator .overview-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.budget-calculator .overview-input[type=number]{-moz-appearance:textfield}.budget-calculator .overview-unit{font-size:11px;color:var(--color-text-tertiary)}.budget-calculator .overview-computed{font-size:11px;color:var(--color-primary);font-weight:500;white-space:nowrap}.budget-calculator .overview-status{display:flex;gap:10px;margin-left:auto}.budget-calculator .overview-diff{font-size:10px;font-weight:600;padding:3px 8px;border-radius:10px;white-space:nowrap}.budget-calculator .overview-diff.ok{color:#059669;background:#05966914}.budget-calculator .overview-diff.over{color:#dc2626;background:#dc262614}.budget-calculator .overview-diff.under{color:#2563eb;background:#2563eb14}.budget-calculator .inst-tabs{display:flex;align-items:center;gap:4px;margin-bottom:8px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.budget-calculator .inst-tab{height:32px;padding:0 10px;font-size:12px;font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .15s}.budget-calculator .inst-tab:hover{border-color:var(--color-primary)}.budget-calculator .inst-tab.active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.budget-calculator .inst-tab-type{font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;text-transform:uppercase;flex-shrink:0}.budget-calculator .inst-tab.lead .inst-tab-type{background:#3b82f61a;color:#3b82f6}.budget-calculator .inst-tab.participant .inst-tab-type{background:#f59e0b1a;color:#f59e0b}.budget-calculator .inst-tab-name{border:none;background:transparent;font-size:12px;font-weight:500;color:inherit;width:80px;outline:none;padding:0;font-family:inherit;cursor:pointer}.budget-calculator .inst-tab.active .inst-tab-name{color:var(--color-text-primary);cursor:text}.budget-calculator .inst-tab-total{font-size:10px;color:var(--color-text-tertiary);flex-shrink:0}.budget-calculator .inst-tab-close{font-size:14px;line-height:1;opacity:.4;cursor:pointer;margin-left:2px}.budget-calculator .inst-tab-close:hover{opacity:1;color:var(--color-error, #e03e3e)}.budget-calculator .inst-tab.add{background:transparent;border-style:dashed;color:var(--color-text-tertiary);gap:3px;font-size:11px}.budget-calculator .inst-tab.add:hover{color:var(--color-primary);border-color:var(--color-primary)}.budget-calculator .inst-grand-total{margin-left:auto;font-size:12px;color:var(--color-text-secondary);padding:4px 12px;background:#89b9290f;border-radius:10px}.budget-calculator .inst-grand-total strong{color:var(--color-primary);font-weight:600}.budget-calculator .year-tabs{display:flex;align-items:center;gap:4px;margin-bottom:12px;flex-wrap:wrap}.budget-calculator .year-tab{height:30px;padding:0 14px;font-size:12px;font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}.budget-calculator .year-tab:hover{color:var(--color-text-primary);border-color:var(--color-primary)}.budget-calculator .year-tab.active{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.budget-calculator .year-tab-close{font-size:14px;line-height:1;opacity:.5;cursor:pointer;margin-left:2px}.budget-calculator .year-tab-close:hover{opacity:1}.budget-calculator .year-tab.add{width:30px;padding:0;justify-content:center;color:var(--color-text-tertiary);background:transparent;border-style:dashed}.budget-calculator .year-tab.add:hover{color:var(--color-primary);border-color:var(--color-primary)}.budget-calculator .year-total-badge{margin-left:8px;font-size:11px;color:var(--color-text-secondary);padding:4px 10px;background:#89b9290f;border-radius:10px}.budget-calculator .year-total-badge strong{color:var(--color-primary);font-weight:600}.budget-calculator .warnings{margin-bottom:12px;display:flex;flex-direction:column;gap:6px}.budget-calculator .warning-item{display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:11px;color:#b45309;background:#fef3c7;border:1px solid #fcd34d;border-radius:5px}.budget-calculator .warning-item svg{flex-shrink:0;color:#d97706}.budget-calculator .toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.budget-calculator .toolbar-group{display:flex;align-items:center;gap:5px}.budget-calculator .toolbar-label{font-size:11px;color:var(--color-text-secondary);white-space:nowrap}.budget-calculator .toolbar-input{width:56px;height:26px;padding:0 6px;font-size:12px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);text-align:right;outline:none}.budget-calculator .toolbar-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #89b9291f}.budget-calculator .toolbar-unit{font-size:11px;color:var(--color-text-tertiary)}.budget-calculator .toolbar-divider{width:1px;height:18px;background:var(--color-border);margin:0 4px}.budget-calculator .btn-toolbar{height:26px;padding:0 10px;font-size:11px;font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .15s}.budget-calculator .btn-toolbar:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}.budget-calculator .btn-toolbar:disabled{opacity:.35;cursor:not-allowed}.budget-calculator .btn-reset{height:26px;padding:0 10px;font-size:11px;font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .15s}.budget-calculator .btn-reset:hover{color:var(--color-text-primary)}.budget-calculator .btn-reset.danger{color:var(--color-error, #e03e3e)}.budget-calculator .btn-reset.danger:hover{background:#e03e3e0f}.budget-calculator .toolbar-spacer{flex:1}.budget-calculator .table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:6px}.budget-calculator .budget-table{width:100%;min-width:700px;border-collapse:collapse;font-variant-numeric:tabular-nums}.budget-calculator .budget-table th{padding:8px 12px;font-size:11px;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);text-align:right;white-space:nowrap}.budget-calculator .budget-table th:first-child{text-align:left;width:200px}.budget-calculator .budget-table th:last-child{width:140px}.budget-calculator .row-category{background:var(--color-bg-secondary)}.budget-calculator .row-category td{padding:8px 12px;font-size:12px;font-weight:600;color:var(--color-text-primary);border-bottom:1px solid var(--color-border)}.budget-calculator .row-subheader td{padding:6px 12px;font-size:11px;font-weight:600;color:var(--color-text-secondary);background:#f7f6f380;border-bottom:1px solid var(--color-border-light, #ededeb)}.budget-calculator .row-data td{padding:2px 4px;border-bottom:1px solid var(--color-border-light, #ededeb);font-size:12px}.budget-calculator .row-data:hover td{background:#89b92908}.budget-calculator .row-memo td{padding:0 4px 4px;border-bottom:1px solid var(--color-border-light, #ededeb)}.budget-calculator .memo-editor{padding:0 20px}.budget-calculator .memo-input{width:100%;padding:4px 8px;font-size:11px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:3px;background:var(--color-bg-secondary);outline:none}.budget-calculator .memo-input:focus{border-color:var(--color-primary)}.budget-calculator .row-subtotal td{padding:8px 12px;font-size:12px;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-secondary);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.budget-calculator .row-total td{padding:10px 12px;font-size:13px;font-weight:700;color:var(--color-primary);background:#89b9290f;border-top:2px solid var(--color-primary)}.budget-calculator .cell-label{text-align:left!important;color:var(--color-text-primary);white-space:nowrap;position:relative}.budget-calculator .cell-label .label-text{display:inline-flex;align-items:center;gap:4px}.budget-calculator .label-edit-input{border:none;background:transparent;padding:0;font-size:12px;color:inherit;width:100px;outline:none;font-family:inherit}.budget-calculator .label-edit-input:focus{border-bottom:1px solid var(--color-primary)}.budget-calculator .btn-memo{width:16px;height:16px;border:none;background:none;color:var(--color-text-tertiary);cursor:pointer;padding:0;opacity:0;transition:opacity .1s,color .1s;display:inline-flex;align-items:center;justify-content:center}.budget-calculator .btn-memo.has-memo{opacity:.6;color:var(--color-primary)}.budget-calculator .row-data:hover .btn-memo{opacity:1}.budget-calculator .btn-memo:hover{color:var(--color-primary)}.budget-calculator .btn-remove-row{width:16px;height:16px;border:none;background:none;color:var(--color-text-tertiary);cursor:pointer;font-size:14px;line-height:1;padding:0;opacity:0;transition:opacity .1s,color .1s;display:inline-flex;align-items:center;justify-content:center}.budget-calculator .row-data:hover .btn-remove-row{opacity:1}.budget-calculator .btn-remove-row:hover{color:var(--color-error)}.budget-calculator .cell-value{position:relative;text-align:right}.budget-calculator .cell-input-wrap{position:relative;display:flex;align-items:center}.budget-calculator .cell-input-wrap input{width:100%;padding:5px 26px 5px 8px;border:1px solid transparent;border-radius:3px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;background:transparent;color:var(--color-text-primary);outline:none;transition:border-color .1s,background .1s;font-family:inherit}.budget-calculator .cell-input-wrap input:hover{background:#f7f6f3cc}.budget-calculator .cell-input-wrap input:focus{border-color:var(--color-primary);background:var(--color-bg-primary);box-shadow:0 0 0 2px #89b9291f}.budget-calculator .cell-pct{position:absolute;left:4px;top:50%;transform:translateY(-50%);font-size:9px;color:var(--color-text-tertiary);pointer-events:none;opacity:0;transition:opacity .15s}.budget-calculator .cell-input-wrap:hover .cell-pct,.budget-calculator .cell-input-wrap input:focus~.cell-pct{opacity:1}.budget-calculator .cell-total-col{text-align:right;position:relative;padding:5px 28px 5px 8px!important;cursor:pointer}.budget-calculator .cell-total-col:hover{background:#89b9290f}.budget-calculator .total-value{font-weight:500}.budget-calculator .total-pct{font-size:9px;color:var(--color-text-tertiary);margin-left:4px}.budget-calculator .btn-copy{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:18px;height:18px;padding:0;border:none;background:none;cursor:pointer;color:var(--color-text-tertiary);opacity:0;transition:opacity .1s,color .1s;display:flex;align-items:center;justify-content:center}.budget-calculator .cell-input-wrap:hover .btn-copy,.budget-calculator .cell-readonly:hover .btn-copy,.budget-calculator .cell-total-col:hover .btn-copy{opacity:1}.budget-calculator .btn-copy:hover{color:var(--color-primary)}.budget-calculator .cell-readonly{padding:5px 12px;text-align:right;cursor:pointer;position:relative;transition:background .15s;white-space:nowrap}.budget-calculator .row-data .cell-readonly{padding:5px 28px 5px 8px}.budget-calculator .cell-readonly:hover{background:#89b9290f}.budget-calculator .copied{animation:budgetCopyFlash .8s ease}@keyframes budgetCopyFlash{0%{background-color:#89b92940}to{background-color:transparent}}.budget-calculator .row-add td{padding:4px 12px;border-bottom:1px solid var(--color-border-light, #ededeb)}.budget-calculator .btn-add-row{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:11px;color:var(--color-text-tertiary);background:none;border:none;border-radius:3px;cursor:pointer;transition:color .1s,background .1s}.budget-calculator .btn-add-row:hover{color:var(--color-primary);background:#89b9290f}.budget-calculator .summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}.budget-calculator .summary-card{padding:14px 16px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px}.budget-calculator .summary-card.highlight{border-color:var(--color-primary);background:#89b92908}.budget-calculator .summary-card-label{font-size:11px;color:var(--color-text-secondary);margin:0 0 6px}.budget-calculator .summary-card-value{font-size:18px;font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.budget-calculator .summary-card-value.primary{color:var(--color-primary)}.budget-calculator .summary-card-sub{font-size:11px;color:var(--color-text-tertiary);margin-top:4px}.budget-calculator .summary-bar{height:4px;background:var(--color-bg-secondary);border-radius:2px;margin-top:8px;overflow:hidden}.budget-calculator .summary-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.budget-calculator .summary-bar-fill.gov{background:#3b82f6}.budget-calculator .summary-bar-fill.self{background:#f59e0b}.budget-calculator .summary-bar-fill.ind{background:var(--color-primary)}.budget-calculator .summary-bar-fill.ind.over{background:var(--color-error, #e03e3e)}.budget-calculator .shortcuts-help{display:flex;align-items:center;gap:16px;margin-top:16px;padding:8px 0}.budget-calculator .shortcuts-help span{font-size:10px;color:var(--color-text-tertiary)}.budget-calculator .toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:6px;font-size:12px;font-weight:500;color:#fff;background:#37352f;z-index:1000;animation:toastSlideUp .25s ease;pointer-events:none}@keyframes toastSlideUp{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.layout.dark .budget-calculator .row-subheader td{background:#ffffff08}.layout.dark .budget-calculator .row-data:hover td{background:#89b9290d}.layout.dark .budget-calculator .cell-input-wrap input:hover{background:#ffffff0a}.layout.dark .budget-calculator .cell-readonly:hover,.layout.dark .budget-calculator .cell-total-col:hover{background:#89b92914}.layout.dark .budget-calculator .row-total td{background:#89b9291a}.layout.dark .budget-calculator .toast{background:#e8e8e6;color:#191919}.layout.dark .budget-calculator .warning-item{color:#fbbf24;background:#fbbf241a;border-color:#fbbf244d}.layout.dark .budget-calculator .warning-item svg{color:#fbbf24}.layout.dark .budget-calculator .summary-card.highlight{background:#89b9290f}@media (max-width: 1200px){.budget-calculator{padding:16px}.budget-calculator .summary-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.budget-calculator .summary-cards{grid-template-columns:1fr}.budget-calculator .page-header{flex-direction:column;align-items:flex-start;gap:8px}.budget-calculator .toolbar{gap:6px}.budget-calculator .shortcuts-help{display:none}}.admin-dash{max-width:1100px;margin:0 auto;padding:24px 32px}.ad-loading{padding:48px;text-align:center;font-size:12px;color:#b4b4b0}.ad-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.ad-title{font-size:22px;font-weight:700;color:#37352f;margin:0;letter-spacing:-.01em}.ad-subtitle{font-size:13px;color:#787774;margin:4px 0 0}.ad-refresh{width:28px;height:28px;border:1px solid #e3e2e0;border-radius:4px;background:#fff;cursor:pointer;color:#787774;display:flex;align-items:center;justify-content:center}.ad-refresh:hover{border-color:#89b929;color:#89b929}.ad-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.ad-stat{display:flex;align-items:center;gap:10px;padding:14px;background:#fff;border:1px solid #e3e2e0;border-radius:6px}.ad-stat-icon{width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ad-stat-icon.users{background:#6366f114;color:#6366f1}.ad-stat-icon.attendance{background:#22c55e14;color:#22c55e}.ad-stat-icon.bugs{background:#ef444414;color:#ef4444}.ad-stat-icon.activity{background:#89b92914;color:#89b929}.ad-stat-body{flex:1;min-width:0}.ad-stat-value{font-size:20px;font-weight:700;color:#37352f;display:block;line-height:1.2}.ad-stat-unit{font-size:13px;font-weight:400;color:#b4b4b0}.ad-stat-label{font-size:11px;color:#787774}.ad-stat-sub{font-size:10px;color:#b4b4b0;white-space:nowrap}.ad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ad-card{background:#fff;border:1px solid #e3e2e0;border-radius:6px;padding:14px}.ad-card-wide{grid-column:span 2}.ad-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ad-card-header h3{font-size:13px;font-weight:600;color:#37352f;margin:0}.ad-card-badge{font-size:10px;color:#22c55e;font-weight:500}.ad-card-link{border:none;background:none;font-size:11px;color:#89b929;cursor:pointer}.ad-card-link:hover{text-decoration:underline}.ad-card-tabs{display:flex;gap:8px}.ad-card-tab{font-size:10px;color:#787774}.ad-empty{padding:16px;text-align:center;font-size:11px;color:#b4b4b0}.ad-user-list{display:flex;flex-direction:column;gap:2px}.ad-user-item{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:3px;font-size:12px}.ad-user-item:hover{background:#f7f6f3}.ad-user-avatar{width:22px;height:22px;border-radius:50%;background:#e3e2e0;color:#555;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;overflow:hidden;flex-shrink:0}.ad-user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.ad-user-dot{width:6px;height:6px;border-radius:50%;background:#d1d5db;flex-shrink:0}.ad-user-dot.online{background:#22c55e}.ad-user-name{font-weight:500;color:#37352f}.ad-user-dept{font-size:10px;color:#b4b4b0;flex:1}.ad-user-time{font-size:10px;color:#b4b4b0}.ad-attendance{display:flex;flex-direction:column;gap:8px}.ad-att-bar{height:8px;background:#f0f0f0;border-radius:4px;display:flex;overflow:hidden}.ad-att-fill{height:100%}.ad-att-fill.working{background:#89b929}.ad-att-fill.done{background:#6b7280}.ad-att-legend{display:flex;gap:12px;font-size:11px;color:#787774}.ad-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:3px}.ad-dot.working{background:#89b929}.ad-dot.done{background:#6b7280}.ad-dot.absent{background:#e3e2e0}.ad-att-week{font-size:11px;color:#787774;padding-top:4px;border-top:1px solid #e3e2e0}.ad-att-week strong{color:#37352f}.ad-dept-list{display:flex;flex-direction:column;gap:6px}.ad-dept-item{display:flex;align-items:center;gap:8px;font-size:12px}.ad-dept-name{width:80px;font-weight:500;color:#37352f;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-dept-bar-wrap{flex:1;height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden}.ad-dept-bar{height:100%;background:#89b929;border-radius:3px}.ad-dept-count{font-size:11px;color:#787774;width:28px;text-align:right}.ad-feedback-table{width:100%;border-collapse:collapse}.ad-feedback-table th{font-size:10px;font-weight:500;color:#787774;text-align:left;padding:4px 8px;border-bottom:1px solid #e3e2e0}.ad-feedback-table td{font-size:11px;color:#37352f;padding:6px 8px;border-bottom:1px solid #f0f0f0}.ad-feedback-table tr:hover{background:#f7f6f3}.ad-type-badge{font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px}.ad-type-badge.bug{background:#ef444414;color:#ef4444}.ad-type-badge.feedback{background:#3b82f614;color:#3b82f6}.ad-fb-title{font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-priority-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:3px}.ad-status-badge{font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px}.ad-fb-date{font-size:10px;color:#b4b4b0}.ad-activity-list{display:flex;flex-direction:column;gap:4px}.ad-activity-item{display:flex;align-items:center;gap:8px;padding:6px;border-radius:3px;font-size:12px;color:#787774}.ad-activity-item:hover{background:#f7f6f3}.ad-activity-item svg{color:#b4b4b0;flex-shrink:0}.ad-activity-item span{flex:1}.ad-activity-item strong{color:#37352f;font-weight:600}.ad-overdue{font-size:10px;color:#e03e3e;font-weight:500}.ad-quick-links{display:flex;flex-direction:column;gap:2px}.ad-quick-links button{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:none;background:none;cursor:pointer;border-radius:4px;font-size:12px;color:#37352f;text-align:left;transition:background .1s ease-out}.ad-quick-links button:hover{background:#f7f6f3}.ad-quick-links button svg{color:#787774}@media (max-width: 1024px){.ad-stats,.ad-grid{grid-template-columns:repeat(2,1fr)}.ad-card-wide{grid-column:span 2}}@media (max-width: 768px){.admin-dash{padding:16px}.ad-stats,.ad-grid{grid-template-columns:1fr}.ad-card-wide{grid-column:span 1}}.layout.dark .ad-title{color:#ffffffcf}.layout.dark .ad-stat,.layout.dark .ad-card{background:#252525;border-color:#3f3f3f}.layout.dark .ad-stat-value,.layout.dark .ad-card-header h3,.layout.dark .ad-user-name,.layout.dark .ad-dept-name,.layout.dark .ad-activity-item strong{color:#ffffffcf}.layout.dark .ad-user-item:hover,.layout.dark .ad-activity-item:hover,.layout.dark .ad-quick-links button:hover{background:#2f2f2f}.layout.dark .ad-feedback-table td{color:#ffffffcf}.layout.dark .ad-feedback-table tr:hover{background:#2f2f2f}.layout.dark .ad-refresh{background:#252525;border-color:#3f3f3f;color:#ffffff71}.admin-att{max-width:1100px;margin:0 auto;padding:24px 32px}.aa-header{margin-bottom:16px}.aa-title{font-size:22px;font-weight:700;color:#37352f;margin:0;letter-spacing:-.01em}.aa-subtitle{font-size:13px;color:#787774;margin:4px 0 0}.aa-tabs{display:flex;gap:2px;margin-bottom:16px;border-bottom:1px solid #e3e2e0}.aa-tabs button{padding:8px 14px;border:none;background:none;font-size:12px;font-weight:500;color:#787774;cursor:pointer;border-bottom:2px solid transparent;transition:all .1s ease-out}.aa-tabs button:hover{color:#37352f}.aa-tabs button.active{color:#89b929;border-bottom-color:#89b929}.aa-section{position:relative}.aa-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.aa-date-input{height:28px;padding:0 8px;border:1px solid #e3e2e0;border-radius:4px;font-size:12px;color:#37352f;outline:none}.aa-date-input:focus{border-color:#89b929}.aa-btn-today{height:28px;padding:0 10px;border:1px solid #e3e2e0;border-radius:4px;font-size:11px;color:#787774;background:#fff;cursor:pointer}.aa-btn-today:hover{border-color:#89b929;color:#89b929}.aa-select{height:28px;padding:0 8px;border:1px solid #e3e2e0;border-radius:4px;font-size:12px;color:#37352f;background:#fff;outline:none}.aa-date-sep{font-size:12px;color:#b4b4b0}.aa-user-badge{font-size:13px;font-weight:600;color:#37352f;padding:4px 10px;background:#f7f6f3;border-radius:4px}.aa-select-hint{font-size:12px;color:#b4b4b0}.aa-summary-row{display:flex;gap:8px;margin-bottom:12px}.aa-summary-item{flex:1;padding:10px 12px;background:#f7f6f3;border-radius:6px;text-align:center}.aa-summary-item.working{background:#89b9290f}.aa-summary-item.absent{background:#e03e3e0a}.aa-sum-value{display:block;font-size:18px;font-weight:700;color:#37352f}.aa-sum-label{font-size:10px;color:#787774}.aa-table{width:100%;border-collapse:collapse;border:1px solid #e3e2e0;border-radius:6px;overflow:hidden}.aa-table th{font-size:11px;font-weight:500;color:#787774;text-align:left;padding:8px 10px;background:#f7f6f3;border-bottom:1px solid #e3e2e0}.aa-table td{font-size:12px;color:#37352f;padding:8px 10px;border-bottom:1px solid #f0f0f0}.aa-table tr:hover{background:#fafafa}.aa-table tr.absent-row{opacity:.5}.aa-table tr.weekend-row{background:#fafafa}.aa-name{font-weight:600}.aa-status{font-size:11px;font-weight:500;padding:2px 6px;border-radius:3px}.aa-status.working{background:#89b92914;color:#89b929}.aa-status.done{background:#6b728014;color:#6b7280}.aa-status.absent{background:#e03e3e0f;color:#e03e3e}td.late{color:#e03e3e}.aa-late-badge{font-size:9px;font-weight:600;color:#e03e3e;background:#e03e3e14;padding:1px 4px;border-radius:2px;margin-left:4px}.aa-overtime-badge{font-size:9px;font-weight:600;color:#3b82f6;background:#3b82f614;padding:1px 4px;border-radius:2px;margin-left:4px}td.weekend{color:#e03e3e}.aa-detail-btn{padding:2px 8px;border:1px solid #e3e2e0;border-radius:3px;background:#fff;font-size:11px;color:#787774;cursor:pointer}.aa-detail-btn:hover{border-color:#89b929;color:#89b929}.aa-empty{text-align:center;padding:24px;color:#b4b4b0;font-size:12px}.aa-overlay-loading{position:absolute;top:0;left:0;right:0;padding:8px;text-align:center;font-size:11px;color:#787774;background:#fffc}.layout.dark .aa-title{color:#ffffffcf}.layout.dark .aa-table th{background:#252525;color:#ffffff71;border-color:#3f3f3f}.layout.dark .aa-table td{color:#ffffffcf;border-color:#3f3f3f}.layout.dark .aa-table{border-color:#3f3f3f}.layout.dark .aa-table tr:hover,.layout.dark .aa-summary-item{background:#252525}.layout.dark .aa-sum-value{color:#ffffffcf}.layout.dark .aa-date-input,.layout.dark .aa-select,.layout.dark .aa-btn-today{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .aa-user-badge{background:#3f3f3f;color:#ffffffcf}.layout.dark .aa-detail-btn{background:#252525;border-color:#3f3f3f;color:#ffffff71}.layout.dark .aa-tabs{border-color:#3f3f3f}.layout.dark .aa-overlay-loading{background:#191919cc}@media (max-width: 768px){.admin-att{padding:16px}.aa-summary-row{flex-wrap:wrap}.aa-summary-item{min-width:80px}}.my-pages{display:flex;height:calc(100vh - 48px);overflow:hidden}.mp-sidebar{width:220px;min-width:220px;border-right:1px solid #e3e2e0;display:flex;flex-direction:column;background:#f7f6f3}.mp-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px;border-bottom:1px solid #e3e2e0}.mp-sidebar-header h2{font-size:13px;font-weight:600;color:#37352f;margin:0}.mp-sidebar-actions{display:flex;gap:2px}.mp-sidebar-actions button{width:24px;height:24px;border:none;background:none;color:#b4b4b0;cursor:pointer;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:background .1s ease-out,color .1s ease-out}.mp-sidebar-actions button:hover{background:#ebebea;color:#37352f}.mp-tree{flex:1;overflow-y:auto;padding:4px 0}.mp-tree-empty{padding:24px 12px;text-align:center;font-size:11px;color:#b4b4b0}.mp-tree-empty-actions{display:flex;flex-direction:column;gap:4px;margin-top:8px}.mp-tree-empty-actions button{padding:4px 8px;font-size:11px;font-weight:500;color:#787774;background:transparent;border:1px solid #e3e2e0;border-radius:4px;cursor:pointer}.mp-tree-empty-actions button:hover{background:#f1f1ef;color:#37352f}.tree-section{margin-bottom:2px}.tree-section-header{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:#787774;padding:8px 12px 4px}.tree-section-header svg{color:#b4b4b0;flex-shrink:0}.tree-section-count{margin-left:auto;font-size:10px;color:#b4b4b0;font-weight:400}.tree-new-btns{padding:8px;display:flex;flex-direction:column;gap:2px;border-top:1px solid #e3e2e0;margin-top:4px}.tree-new-btn{display:flex;align-items:center;gap:6px;padding:4px 8px;border:none;background:none;cursor:pointer;border-radius:3px;font-size:11px;color:#787774;transition:background .1s ease-out,color .1s ease-out}.tree-new-btn:hover{background:#ebebea;color:#37352f}.tree-new-btn svg{color:#b4b4b0}.tree-item{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;font-size:12px;color:#37352f;transition:background .1s ease-out;min-height:26px}.tree-item:hover{background:#ebebea}.tree-item.active{background:#e3e2e0;font-weight:500}.tree-item.pinned .tree-title{font-weight:600}.tree-chevron{width:16px;height:16px;border:none;background:none;color:#b4b4b0;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tree-chevron-spacer{width:16px;flex-shrink:0}.tree-icon{font-size:12px;flex-shrink:0;line-height:1;cursor:pointer}.tree-icon:hover{opacity:.7}.tree-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-actions{display:flex;gap:1px;opacity:0;transition:opacity .1s ease-out}.tree-item:hover .tree-actions{opacity:1}.tree-actions button{width:20px;height:20px;border:none;background:none;color:#b4b4b0;cursor:pointer;border-radius:3px;display:flex;align-items:center;justify-content:center;padding:0}.tree-actions button:hover{background:#e3e2e0;color:#37352f}.tree-item[draggable]{cursor:grab}.tree-item[draggable]:active{cursor:grabbing}.tree-item.dragging{opacity:.4}.tree-item.drop-inside{background:#89b92914;outline:1px dashed #89b929;outline-offset:-1px;border-radius:3px}.tree-item.drop-above{box-shadow:inset 0 2px #89b929}.tree-item.drop-below{box-shadow:inset 0 -2px #89b929}.tree-root-drop{padding:8px 12px;margin:4px 6px;text-align:center;font-size:11px;color:#b4b4b0;border:1px dashed #e3e2e0;border-radius:4px;transition:all .1s ease-out}.tree-root-drop.active{border-color:#89b929;color:#89b929;background:#89b9290a}.tree-rename-input{flex:1;min-width:0;padding:0 4px;height:22px;border:1px solid #89b929;border-radius:3px;font-size:12px;color:#37352f;background:#fff;outline:none;font-family:inherit;box-shadow:0 0 0 2px #89b92926}.tree-icon-picker{display:flex;flex-wrap:wrap;gap:2px;padding:4px 6px;background:#fff;border:1px solid #e3e2e0;border-radius:4px;margin:2px 0;box-shadow:0 4px 12px #00000014}.tree-icon-picker button{width:22px;height:22px;border:none;background:none;cursor:pointer;border-radius:3px;font-size:13px;display:flex;align-items:center;justify-content:center}.tree-icon-picker button:hover{background:#f7f6f3}.context-submenu-empty{display:block;font-size:11px;color:#b4b4b0;padding:4px 10px}.mp-editor{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#fff}.mp-editor-header{display:flex;align-items:flex-start;gap:12px;padding:16px 32px 8px;flex-shrink:0}.mp-cover{height:80px;width:100%;position:relative;flex-shrink:0}.mp-cover-remove{position:absolute;top:6px;right:8px;font-size:11px;padding:2px 6px;background:#0003;color:#fff;border:none;border-radius:3px;cursor:pointer;opacity:0;transition:opacity .15s ease-out}.mp-cover:hover .mp-cover-remove{opacity:1}.mp-icon-picker-large{position:relative;flex-shrink:0;align-self:flex-start}.mp-current-icon-large{font-size:28px;border:none;background:none;cursor:pointer;padding:4px;border-radius:4px;line-height:1;transition:background .1s ease-out}.mp-current-icon-large:hover{background:#f7f6f3}.mp-icon-dropdown-large{display:none;position:absolute;top:100%;left:0;z-index:20;background:#fff;border:1px solid #e3e2e0;border-radius:6px;padding:8px;box-shadow:0 4px 12px #00000014;width:280px;max-height:300px;overflow-y:auto}.mp-icon-picker-large:hover .mp-icon-dropdown-large{display:block}.mp-icon-category{margin-bottom:8px}.mp-icon-category-label{font-size:10px;font-weight:500;color:#b4b4b0;margin-bottom:2px;padding:0 2px}.mp-icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:1px}.mp-icon-grid button{width:28px;height:28px;border:none;background:none;cursor:pointer;border-radius:3px;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .1s ease-out}.mp-icon-grid button:hover{background:#f7f6f3}.mp-header-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mp-title-input{width:100%;font-size:22px;font-weight:700;color:#37352f;border:none;outline:none;background:transparent;padding:0;font-family:inherit;letter-spacing:-.01em;line-height:1.2}.mp-title-input::placeholder{color:#b4b4b0}.mp-subtitle-input{width:100%;font-size:13px;color:#787774;border:none;outline:none;background:transparent;padding:0;font-family:inherit;line-height:1.5}.mp-subtitle-input::placeholder{color:#b4b4b0}.mp-meta-row{display:flex;align-items:center;gap:8px;margin-top:2px}.mp-meta-item{font-size:10px;color:#b4b4b0}.mp-meta-item.saving{color:#dfab01}.mp-meta-item.saved{color:#b4b4b0}.mp-header-actions{flex-shrink:0}.mp-cover-picker{position:relative}.mp-cover-btn{width:28px;height:28px;border:1px solid #e3e2e0;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;color:#787774;transition:border-color .1s ease-out}.mp-cover-btn:hover{border-color:#89b929}.mp-cover-dropdown{display:none;position:absolute;top:100%;right:0;z-index:10;background:#fff;border:1px solid #e3e2e0;border-radius:6px;padding:4px;box-shadow:0 4px 12px #00000014;width:130px}.mp-cover-picker:hover .mp-cover-dropdown{display:block}.mp-cover-option{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;border:none;background:none;cursor:pointer;border-radius:3px;font-size:11px;color:#37352f}.mp-cover-option:hover{background:#f7f6f3}.mp-cover-option.active{background:#89b9290f;font-weight:500}.mp-cover-swatch{width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.08);flex-shrink:0}.mp-cover-swatch.none{display:flex;align-items:center;justify-content:center;font-size:9px;color:#b4b4b0;background:#f7f6f3}.editor-toolbar{display:flex;align-items:center;gap:1px;padding:4px 32px;border-bottom:1px solid #e3e2e0;flex-shrink:0;flex-wrap:wrap}.editor-toolbar .toolbar-section{display:flex;align-items:center;gap:1px}.editor-toolbar .toolbar-divider{width:1px;height:16px;background:#e3e2e0;margin:0 4px}.editor-toolbar button{height:24px;min-width:24px;padding:0 4px;border:none;background:none;color:#787774;cursor:pointer;border-radius:3px;font-size:11px;font-weight:500;display:flex;align-items:center;justify-content:center;transition:background .1s ease-out,color .1s ease-out}.editor-toolbar button:hover{background:#f1f1ef;color:#37352f}.editor-toolbar button.active{background:#89b92914;color:#89b929}.editor-toolbar button.danger{color:#e03e3e}.editor-toolbar .toolbar-select{height:24px;padding:0 6px;border:1px solid #e3e2e0;border-radius:3px;font-size:11px;color:#787774;background:#fff;cursor:pointer;outline:none}.mp-editor-content{flex:1;overflow-y:auto;padding:8px 32px 32px}.tiptap-editor .tiptap{outline:none;min-height:300px;font-size:13px;line-height:1.5;color:#37352f}.tiptap-editor .tiptap>*+*{margin-top:.4em}.tiptap-editor .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:#b4b4b0;float:left;height:0;pointer-events:none}.tiptap-editor .tiptap h1{font-size:22px;font-weight:700;margin-top:.8em;margin-bottom:.2em;line-height:1.2;letter-spacing:-.01em}.tiptap-editor .tiptap h2{font-size:16px;font-weight:600;margin-top:.6em;margin-bottom:.2em;line-height:1.3}.tiptap-editor .tiptap h3{font-size:14px;font-weight:600;margin-top:.5em;margin-bottom:.2em;line-height:1.4}.tiptap-editor .tiptap ul,.tiptap-editor .tiptap ol{padding-left:20px}.tiptap-editor .tiptap li{margin:1px 0}.tiptap-editor .tiptap li p{margin:0}.tiptap-editor .tiptap ul[data-type=taskList]{list-style:none;padding-left:2px}.tiptap-editor .tiptap ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:6px;margin:2px 0}.tiptap-editor .tiptap ul[data-type=taskList] li>label{flex-shrink:0;margin-top:2px}.tiptap-editor .tiptap ul[data-type=taskList] li>label input[type=checkbox]{width:14px;height:14px;accent-color:#89b929;cursor:pointer}.tiptap-editor .tiptap ul[data-type=taskList] li>div{flex:1}.tiptap-editor .tiptap ul[data-type=taskList] li[data-checked=true]>div p{text-decoration:line-through;color:#b4b4b0}.tiptap-editor .tiptap blockquote{border-left:2px solid #e3e2e0;padding-left:12px;margin-left:0;color:#787774}.tiptap-editor .tiptap code{background:#f7f6f3;padding:1px 4px;border-radius:3px;font-size:.9em;font-family:SF Mono,Menlo,monospace;color:#37352f}.tiptap-editor .tiptap pre{background:#f7f6f3;color:#37352f;border:1px solid #e3e2e0;border-radius:4px;padding:12px;overflow-x:auto;font-size:12px;line-height:1.5}.tiptap-editor .tiptap pre code{background:none;padding:0;color:inherit;font-size:inherit}.tiptap-editor .tiptap hr{border:none;border-top:1px solid #e3e2e0;margin:1em 0}.tiptap-editor .tiptap table{border-collapse:collapse;width:100%;margin:8px 0}.tiptap-editor .tiptap table td,.tiptap-editor .tiptap table th{border:1px solid #e3e2e0;padding:6px 8px;text-align:left;vertical-align:top;min-width:60px;font-size:12px}.tiptap-editor .tiptap table th{background:#f7f6f3;font-weight:500;font-size:11px;color:#787774}.tiptap-editor .tiptap table td p,.tiptap-editor .tiptap table th p{margin:0}.tiptap-editor .tiptap table .selectedCell{background:#89b9290f}.tiptap-editor .tiptap a{color:#89b929;text-decoration:underline;cursor:pointer}.tiptap-editor .tiptap mark{background:#fbf3db;padding:0 2px;border-radius:2px}.slash-menu{position:fixed;z-index:100;background:#fff;border:1px solid #e3e2e0;border-radius:6px;box-shadow:0 4px 12px #00000014;padding:4px;min-width:180px;max-height:260px;overflow-y:auto}.slash-menu-header{font-size:10px;font-weight:500;color:#b4b4b0;padding:4px 8px}.slash-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:4px 8px;border:none;background:none;cursor:pointer;border-radius:3px;font-size:12px;color:#37352f;text-align:left;transition:background .1s ease-out}.slash-menu-item:hover,.slash-menu-item.selected{background:#f1f1ef}.slash-menu-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#f7f6f3;border-radius:3px;font-size:10px;font-weight:600;color:#787774;flex-shrink:0}.context-menu{position:fixed;z-index:200;background:#fff;border:1px solid #e3e2e0;border-radius:8px;box-shadow:0 8px 24px #0000001f,0 2px 6px #0000000d;padding:4px;min-width:180px;max-width:220px;max-height:calc(100vh - 16px);overflow-y:auto;animation:ctxFadeIn .12s ease-out}@keyframes ctxFadeIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.context-menu button{display:block;width:100%;padding:4px 10px;border:none;background:none;cursor:pointer;border-radius:3px;font-size:12px;color:#37352f;text-align:left;transition:background .1s ease-out}.context-menu button:hover{background:#f1f1ef}.context-menu button.danger{color:#e03e3e}.context-menu button.danger:hover{background:#fbe4e4}.context-divider{height:1px;background:#e3e2e0;margin:4px 0}.context-submenu{padding:2px 0;max-height:200px;overflow-y:auto}.context-submenu-label{display:block;font-size:10px;color:#b4b4b0;padding:4px 10px 2px;font-weight:500;position:sticky;top:0;background:#fff;z-index:1}.layout.dark .context-submenu-label{background:#252525}.context-menu .danger{position:sticky;bottom:0;background:#fff}.layout.dark .context-menu .danger{background:#252525}.mp-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#b4b4b0}.mp-empty-icon{font-size:32px;margin-bottom:4px;opacity:.5}.mp-empty-state h3{font-size:14px;font-weight:600;color:#787774;margin:0}.mp-empty-state p{font-size:12px;margin:0}.mp-empty-hint{font-size:11px;color:#b4b4b0;margin-top:2px!important}.mp-create-btn{margin-top:8px;height:28px;padding:0 10px;font-size:12px;font-weight:500;color:#fff;background:#89b929;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:4px}.mp-create-btn:hover{background:#7aa824}.mp-toast{position:fixed;bottom:16px;left:50%;transform:translate(-50%);padding:6px 12px;border-radius:4px;font-size:12px;font-weight:500;color:#fff;background:#37352f;z-index:1000;animation:mpToast .2s ease-out;pointer-events:none}@keyframes mpToast{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.layout.dark .mp-sidebar{background:#252525}.layout.dark .mp-sidebar-header{border-color:#3f3f3f}.layout.dark .mp-sidebar-header h2{color:#ffffffcf}.layout.dark .mp-sidebar-actions button{color:#ffffff40}.layout.dark .mp-sidebar-actions button:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .tree-item{color:#ffffffcf}.layout.dark .tree-item:hover{background:#2f2f2f}.layout.dark .tree-item.active{background:#3f3f3f}.layout.dark .tree-actions button{color:#ffffff40}.layout.dark .tree-actions button:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .tree-item.drop-inside{background:#89b9291f;outline-color:#a0d636}.layout.dark .tree-item.drop-above{box-shadow:inset 0 2px #a0d636}.layout.dark .tree-item.drop-below{box-shadow:inset 0 -2px #a0d636}.layout.dark .tree-root-drop{border-color:#3f3f3f;color:#ffffff40}.layout.dark .tree-root-drop.active{border-color:#a0d636;color:#a0d636;background:#89b9290f}.layout.dark .tree-section-header{color:#ffffff71}.layout.dark .tree-section-header svg{color:#ffffff40}.layout.dark .tree-new-btns{border-color:#3f3f3f}.layout.dark .tree-new-btn{color:#ffffff71}.layout.dark .tree-new-btn:hover{background:#3f3f3f;color:#ffffffcf}.layout.dark .tree-rename-input{background:#252525;color:#ffffffcf;border-color:#89b929}.layout.dark .tree-icon-picker{background:#252525;border-color:#3f3f3f}.layout.dark .mp-editor{background:#191919}.layout.dark .mp-title-input{color:#ffffffcf}.layout.dark .mp-title-input::placeholder{color:#ffffff40}.layout.dark .mp-subtitle-input{color:#ffffff71}.layout.dark .mp-subtitle-input::placeholder{color:#ffffff40}.layout.dark .mp-current-icon-large:hover{background:#252525}.layout.dark .mp-icon-dropdown-large{background:#252525;border-color:#3f3f3f}.layout.dark .mp-icon-grid button:hover{background:#3f3f3f}.layout.dark .mp-cover-btn{background:#252525;border-color:#3f3f3f;color:#ffffff71}.layout.dark .mp-cover-dropdown{background:#252525;border-color:#3f3f3f}.layout.dark .mp-cover-option{color:#ffffffcf}.layout.dark .mp-cover-option:hover{background:#3f3f3f}.layout.dark .editor-toolbar{border-color:#3f3f3f}.layout.dark .editor-toolbar button{color:#ffffff71}.layout.dark .editor-toolbar button:hover{background:#2f2f2f;color:#ffffffcf}.layout.dark .editor-toolbar button.active{background:#89b9291f;color:#a0d636}.layout.dark .editor-toolbar .toolbar-select{background:#252525;border-color:#3f3f3f;color:#ffffff71}.layout.dark .editor-toolbar .toolbar-divider{background:#3f3f3f}.layout.dark .tiptap-editor .tiptap,.layout.dark .tiptap-editor .tiptap h1,.layout.dark .tiptap-editor .tiptap h2,.layout.dark .tiptap-editor .tiptap h3{color:#ffffffcf}.layout.dark .tiptap-editor .tiptap p.is-editor-empty:first-child:before{color:#ffffff40}.layout.dark .tiptap-editor .tiptap blockquote{border-color:#3f3f3f;color:#ffffff71}.layout.dark .tiptap-editor .tiptap code{background:#2f2f2f;color:#ffffffcf}.layout.dark .tiptap-editor .tiptap pre{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .tiptap-editor .tiptap hr,.layout.dark .tiptap-editor .tiptap table td,.layout.dark .tiptap-editor .tiptap table th{border-color:#3f3f3f}.layout.dark .tiptap-editor .tiptap table th{background:#252525;color:#ffffff71}.layout.dark .tiptap-editor .tiptap a{color:#a0d636}.layout.dark .tiptap-editor .tiptap mark{background:#dfab0133;color:#ffd43b}.layout.dark .slash-menu{background:#252525;border-color:#3f3f3f}.layout.dark .slash-menu-item{color:#ffffffcf}.layout.dark .slash-menu-item:hover,.layout.dark .slash-menu-item.selected{background:#3f3f3f}.layout.dark .slash-menu-icon{background:#3f3f3f;color:#ffffff71}.layout.dark .context-menu{background:#252525;border-color:#3f3f3f}.layout.dark .context-menu button{color:#ffffffcf}.layout.dark .context-menu button:hover{background:#3f3f3f}.layout.dark .context-menu button.danger:hover{background:#ff73691a}.layout.dark .context-divider{background:#3f3f3f}.layout.dark .mp-empty-state h3{color:#ffffff71}.layout.dark .mp-toast{background:#ffffffcf;color:#191919}@media (max-width: 768px){.mp-sidebar{width:180px;min-width:180px}.mp-editor-header{padding:12px 16px 8px}.mp-editor-content{padding:8px 16px 24px}.editor-toolbar{padding:4px 16px}.mp-title-input{font-size:18px}}.tree-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #787774)}.tree-item.active .tree-icon{color:var(--color-primary, #89b929)}.mp-current-icon-large{display:inline-flex;align-items:center;justify-content:center;padding:8px}.mp-icon-grid button{display:inline-flex;align-items:center;justify-content:center}.context-menu button{display:inline-flex;align-items:center;gap:8px}.context-menu button>svg{flex-shrink:0;color:var(--color-text-secondary, #787774)}.context-menu button.danger>svg{color:#e03e3e}.mp-save-idle{color:var(--color-text-tertiary, #9b9a97)}.mp-save-pending,.mp-save-saving{color:#d97706}.mp-save-saved{color:#10b981}.mp-save-error{color:#dc2626;font-weight:600}.mp-empty-icon-svg{color:var(--color-text-tertiary, #cbc9c5);margin-bottom:12px}.tree-icon-picker button{display:inline-flex;align-items:center;justify-content:center}.global-search{max-width:860px;margin:0 auto;padding:24px 32px;min-height:calc(100vh - 60px)}.global-search .search-hero{margin-bottom:32px}.global-search .search-hero h1{font-size:24px;font-weight:700;color:var(--color-text-primary);margin:0 0 16px}.global-search .search-form{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--color-bg-primary);border:2px solid var(--color-border);border-radius:12px;transition:border-color .15s}.global-search .search-form:focus-within{border-color:var(--color-primary)}.global-search .search-form svg{color:var(--color-text-tertiary);flex-shrink:0}.global-search .search-form input{flex:1;border:none;outline:none;background:transparent;font-size:16px;color:var(--color-text-primary)}.global-search .search-form input::placeholder{color:var(--color-text-tertiary)}.global-search .search-form button{padding:8px 20px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer}.global-search .search-form button:hover{opacity:.9}.global-search .search-result-count{margin:12px 0 0;font-size:13px;color:var(--color-text-secondary)}.global-search .search-result-count strong{color:var(--color-primary)}.global-search .search-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px;color:var(--color-text-secondary);font-size:14px}.global-search .spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:gspin .8s linear infinite}@keyframes gspin{to{transform:rotate(360deg)}}.global-search .search-empty{text-align:center;padding:60px;color:var(--color-text-tertiary);font-size:14px}.global-search .search-results{display:flex;flex-direction:column;gap:24px}.global-search .result-group-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.global-search .result-group-dot{width:8px;height:8px;border-radius:50%}.global-search .result-group-name{font-size:13px;font-weight:600;color:var(--color-text-primary)}.global-search .result-group-count{font-size:11px;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:1px 7px;border-radius:10px}.global-search .result-list{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.global-search .result-item{padding:14px 18px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .1s}.global-search .result-item:last-child{border-bottom:none}.global-search .result-item:hover{background:var(--color-bg-hover, rgba(0,0,0,.02))}.global-search .result-item-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.global-search .result-type-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;color:#fff;white-space:nowrap;flex-shrink:0}.global-search .result-title{font-size:14px;font-weight:500;color:var(--color-text-primary);margin:0}.global-search .result-snippet{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin:0}.global-search .result-snippet mark,.global-search .result-title mark{background:#f59e0b40;color:inherit;padding:0 2px;border-radius:2px}.global-search .result-date{font-size:11px;color:var(--color-text-tertiary);margin-top:4px;display:inline-block}.todo-page{padding:24px 32px;height:calc(100vh - 60px)}.todo-page-layout{display:flex;gap:0;height:100%;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.todo-page-list{width:380px;flex-shrink:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden}.tp-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 12px}.tp-header h1{font-size:18px;font-weight:700;margin:0;color:var(--color-text-primary)}.tp-add-btn{width:30px;height:30px;border:1px solid var(--color-border);background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.tp-add-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.tp-stats{display:flex;gap:12px;padding:0 20px 12px}.tp-stat{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-secondary);cursor:pointer}.tp-stat-dot{width:6px;height:6px;border-radius:50%}.tp-stat-count{font-weight:600;color:var(--color-text-primary)}.tp-filters{display:flex;gap:2px;padding:0 16px 8px}.tp-filters button{padding:5px 12px;border:none;background:transparent;border-radius:6px;font-size:12px;font-weight:500;color:var(--color-text-tertiary);cursor:pointer}.tp-filters button:hover{background:var(--color-bg-tertiary)}.tp-filters button.active{background:var(--color-primary);color:#fff}.tp-create{padding:12px 16px;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px}.tp-create input,.tp-create textarea,.tp-create select{padding:7px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;background:var(--color-bg-primary);color:var(--color-text-primary)}.tp-create input:focus,.tp-create textarea:focus{outline:none;border-color:var(--color-primary)}.tp-create-row{display:flex;gap:8px}.tp-create-row select,.tp-create-row input{flex:1}.tp-create-actions{display:flex;justify-content:flex-end;gap:6px}.tp-create-actions button{padding:6px 14px;border:1px solid var(--color-border);background:transparent;border-radius:6px;font-size:12px;cursor:pointer}.tp-create-actions button.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tp-items{flex:1;overflow-y:auto}.tp-empty{padding:40px;text-align:center;font-size:13px;color:var(--color-text-tertiary)}.tp-item{display:flex;align-items:flex-start;gap:10px;padding:10px 16px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .1s}.tp-item:hover{background:var(--color-bg-hover, rgba(0,0,0,.02))}.tp-item.selected{background:#6366f10f;border-left:2px solid var(--color-primary)}.tp-item.done .tp-item-title{text-decoration:line-through;color:var(--color-text-tertiary)}.tp-item.overdue{border-left:2px solid #ef4444}.tp-check{width:20px;height:20px;border:2px solid var(--color-border);border-radius:50%;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.tp-check.checked{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.tp-item-body{flex:1;min-width:0}.tp-item-title{font-size:13px;font-weight:500;color:var(--color-text-primary)}.tp-item-meta{display:flex;align-items:center;gap:8px;margin-top:3px;font-size:11px;color:var(--color-text-tertiary)}.tp-priority-dot{width:6px;height:6px;border-radius:50%}.tp-status-tag{font-weight:500}.tp-due.overdue{color:#ef4444;font-weight:500}.tp-check-count{color:var(--color-text-secondary)}.todo-page-detail{flex:1;overflow-y:auto;padding:24px 28px}.tpd-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-tertiary);gap:12px}.tpd-empty p{margin:0;font-size:14px}.tpd-section{margin-bottom:24px}.tpd-section h3{font-size:13px;font-weight:600;color:var(--color-text-secondary);margin:0 0 8px;text-transform:uppercase;letter-spacing:.03em}.tpd-title-input{width:100%;border:none;outline:none;font-size:22px;font-weight:700;color:var(--color-text-primary);background:transparent;padding:0;margin-bottom:4px}.tpd-title-input:focus{border-bottom:2px solid var(--color-primary)}.tpd-props{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;padding:16px;background:var(--color-bg-tertiary);border-radius:8px}.tpd-prop{display:flex;align-items:center;gap:12px}.tpd-prop-label{font-size:12px;font-weight:500;color:var(--color-text-tertiary);min-width:60px}.tpd-prop-value{font-size:13px;color:var(--color-text-primary)}.tpd-overdue{font-size:11px;color:#ef4444;font-weight:500;margin-left:8px}.tpd-status-btns{display:flex;gap:4px}.tpd-status-btns button{padding:4px 12px;border:1px solid var(--color-border);background:transparent;border-radius:6px;font-size:12px;cursor:pointer;transition:all .1s}.tpd-status-btns button:hover{border-color:var(--color-primary)}.tpd-props select,.tpd-props input[type=date]{padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;background:var(--color-bg-primary);color:var(--color-text-primary)}.tpd-desc{width:100%;border:1px solid var(--color-border);border-radius:8px;padding:12px;font-size:14px;line-height:1.6;background:var(--color-bg-primary);color:var(--color-text-primary);resize:vertical}.tpd-desc:focus{outline:none;border-color:var(--color-primary)}.tpd-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.tpd-check-progress{font-size:12px;color:var(--color-text-tertiary)}.tpd-progress-bar{height:4px;background:var(--color-border);border-radius:2px;overflow:hidden;margin-bottom:10px}.tpd-progress-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .3s}.tpd-checklist{display:flex;flex-direction:column;gap:2px}.tpd-check-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .1s;font-size:13px;color:var(--color-text-primary)}.tpd-check-item:hover{background:var(--color-bg-tertiary)}.tpd-check-item.checked span{text-decoration:line-through;color:var(--color-text-tertiary)}.tpd-check-item input[type=checkbox]{accent-color:var(--color-primary)}.tpd-check-item span{flex:1}.tpd-check-del{opacity:0;border:none;background:none;cursor:pointer;color:var(--color-text-tertiary);padding:2px}.tpd-check-item:hover .tpd-check-del{opacity:1}.tpd-check-add{display:flex;gap:6px;margin-top:6px}.tpd-check-add input{flex:1;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:13px;background:var(--color-bg-primary);color:var(--color-text-primary)}.tpd-check-add input:focus{outline:none;border-color:var(--color-primary)}.tpd-check-add button{padding:6px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer}.tpd-logs{display:flex;flex-direction:column;gap:6px}.tpd-log{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--color-text-secondary)}.tpd-log-dot{width:6px;height:6px;border-radius:50%;background:var(--color-border);margin-top:5px;flex-shrink:0}.tpd-log-text{flex:1}.tpd-log-time{color:var(--color-text-tertiary);white-space:nowrap}.tpd-footer{padding-top:16px;border-top:1px solid var(--color-border)}.tpd-delete-btn{padding:6px 14px;border:1px solid #ef4444;background:transparent;color:#ef4444;border-radius:6px;font-size:12px;cursor:pointer}.tpd-delete-btn:hover{background:#ef44440d}@media (max-width: 768px){.todo-page-layout{flex-direction:column}.todo-page-list{width:100%;border-right:none;border-bottom:1px solid var(--color-border);max-height:50vh}}.tp-header-tools{display:flex;gap:4px}.tp-shortcut-btn{width:30px;height:30px;border:1px solid var(--color-border);background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.tp-shortcut-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.tp-welcome{margin:0 16px 12px;background:linear-gradient(135deg,#f0fdf4,#ecfccb);border:1px solid #bef264;border-radius:8px;padding:12px 14px}.tp-welcome-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tp-welcome-icon{font-size:16px}.tp-welcome-title{font-size:13px;font-weight:700;color:#3f6212;flex:1}.tp-welcome-close{background:none;border:none;cursor:pointer;color:#65a30d;font-size:14px;padding:2px 6px;border-radius:4px}.tp-welcome-close:hover{background:#65a30d26}.tp-welcome-tips{margin:0;padding-left:20px;font-size:11.5px;line-height:1.7;color:#4d7c0f}.tp-welcome-tips b{color:#365314}.tp-welcome-tips kbd{padding:1px 5px;background:#fff;border:1px solid #84cc16;border-radius:3px;font-size:10px;font-family:SF Mono,Menlo,monospace;color:#365314}.tp-quick{margin:0 16px 8px;background:var(--color-bg-primary);border:1.5px solid var(--color-border);border-radius:8px;transition:border-color .15s,box-shadow .15s}.tp-quick:focus-within{border-color:var(--color-primary, #89b929);box-shadow:0 0 0 3px #89b9291f}.tp-quick.expanded{background:var(--color-bg-secondary, #fafaf9)}.tp-quick-row{display:flex;align-items:center;gap:4px;padding:4px 8px}.tp-quick-plus{color:var(--color-primary, #89b929);font-size:18px;font-weight:700;padding:0 4px;line-height:1}.tp-quick-input{flex:1;border:none;outline:none;background:transparent;padding:8px 4px;font-size:13px;color:var(--color-text-primary)}.tp-quick-input::placeholder{color:var(--color-text-tertiary, #9b9a97)}.tp-quick-toggle{background:none;border:none;cursor:pointer;padding:6px;color:var(--color-text-tertiary);border-radius:4px}.tp-quick-toggle:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.tp-quick-submit{padding:5px 12px;background:var(--color-primary, #89b929);color:#fff;border:none;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer}.tp-quick-submit:disabled{background:#d4d4d8;cursor:not-allowed}.tp-quick-submit:not(:disabled):hover{background:#7aa824}.tp-quick-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:10px 12px;border-top:1px dashed var(--color-border);margin-top:2px}.tp-quick-options label{display:flex;flex-direction:column;gap:3px;font-size:10.5px;color:var(--color-text-secondary)}.tp-quick-options input,.tp-quick-options select{padding:4px 6px;border:1px solid var(--color-border);border-radius:4px;font-size:11.5px;background:var(--color-bg-primary);color:var(--color-text-primary)}.tp-search{display:flex;align-items:center;gap:6px;margin:0 16px 8px;padding:6px 10px;background:var(--color-bg-tertiary, #f1f1ef);border-radius:6px}.tp-search svg{color:var(--color-text-tertiary);flex-shrink:0}.tp-search input{flex:1;border:none;outline:none;background:transparent;font-size:12px;color:var(--color-text-primary)}.tp-search input::placeholder{color:var(--color-text-tertiary, #9b9a97)}.tp-search-clear{background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);font-size:11px;padding:2px 5px;border-radius:3px}.tp-search-clear:hover{background:var(--color-bg-primary);color:var(--color-text-primary)}.tp-stats{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 8px}.tp-stat{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:11px;border:1px solid transparent;cursor:default}.tp-stat b{font-weight:700;margin-left:2px}button.tp-stat{cursor:pointer;transition:all .12s}.tp-stat-warn{background:#fef2f2;color:#dc2626;border-color:#fecaca}button.tp-stat-warn:hover,button.tp-stat-warn.active{background:#dc2626;color:#fff;border-color:#dc2626}.tp-stat-info{background:#fef3c7;color:#b45309;border-color:#fde68a}.tp-filters{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:0 16px 8px;flex-wrap:wrap}.tp-filter-chips{display:flex;gap:2px;flex-wrap:wrap}.tp-filter-chips button{padding:4px 10px;border:none;background:transparent;border-radius:6px;font-size:11.5px;font-weight:500;color:var(--color-text-tertiary);cursor:pointer}.tp-filter-chips button:hover{background:var(--color-bg-tertiary)}.tp-filter-chips button.active{background:var(--color-primary, #89b929);color:#fff}.tp-sort{padding:4px 8px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-bg-primary);font-size:11.5px;color:var(--color-text-primary);cursor:pointer}.tp-group{margin-bottom:8px}.tp-group-head{display:flex;align-items:center;gap:6px;padding:8px 20px 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.tp-group-icon{font-size:13px}.tp-group-count{margin-left:6px;padding:1px 7px;background:currentColor;color:#fff;border-radius:10px;font-size:10px;font-weight:700;opacity:.85}.tp-group-count:after{content:""}.tp-group .tp-group-count{background:#00000014;color:inherit}.tp-priority-pill{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:8px;font-size:10px;font-weight:600}.tp-recurrence{font-size:10px;color:var(--color-text-tertiary)}.tpd-clear-due{background:none;border:1px solid var(--color-border);border-radius:4px;padding:2px 6px;font-size:11px;cursor:pointer;color:var(--color-text-tertiary)}.tpd-clear-due:hover{color:#ef4444;border-color:#ef4444}.tp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center}.tp-modal{background:var(--color-bg-primary);border-radius:10px;padding:24px;max-width:420px;width:90%;box-shadow:0 10px 40px #0003}.tp-modal h3{margin:0 0 14px;font-size:16px;font-weight:700}.tp-shortcuts-list{list-style:none;padding:0;margin:0 0 14px}.tp-shortcuts-list li{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:13px;color:var(--color-text-primary)}.tp-shortcuts-list kbd{display:inline-block;min-width:24px;padding:3px 8px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-bottom-width:2px;border-radius:4px;font-size:11px;font-family:SF Mono,Menlo,monospace;text-align:center;font-weight:600}.tp-shortcuts-tip{padding:10px 12px;background:#f0fdf4;border:1px solid #bef264;border-radius:6px;font-size:12px;color:#365314;line-height:1.6;margin:0 0 12px}.tp-modal-close{width:100%;padding:8px;background:var(--color-primary, #89b929);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer}.tp-modal-close:hover{background:#7aa824}.tp-empty{padding:40px 16px}.tp-empty p{margin:6px 0;font-size:13px}.layout.dark .tp-welcome{background:linear-gradient(135deg,#1a2e1f,#2d3f1c);border-color:#4d7c0f}.layout.dark .tp-welcome-title{color:#bef264}.layout.dark .tp-welcome-tips{color:#ecfccb}.layout.dark .tp-welcome-tips b{color:#d9f99d}.layout.dark .tp-welcome-tips kbd{background:#1f2937;border-color:#4d7c0f;color:#d9f99d}.layout.dark .tp-shortcuts-tip{background:#1a2e1f;border-color:#4d7c0f;color:#ecfccb}.mgmt-page{max-width:1300px;margin:0 auto;padding:24px 32px;min-height:calc(100vh - 60px)}.mgmt-page .mgmt-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--color-border);gap:12px;flex-wrap:wrap}.mgmt-page .mgmt-header-left{display:flex;align-items:center;gap:14px}.mgmt-page .mgmt-icon{width:44px;height:44px;border-radius:10px;background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.mgmt-page .mgmt-header h1{font-size:20px;font-weight:700;margin:0;color:var(--color-text-primary)}.mgmt-page .mgmt-header p{font-size:13px;color:var(--color-text-secondary);margin:4px 0 0}.mgmt-page .mgmt-header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mgmt-page .filter-tabs{display:flex;gap:4px;background:var(--color-bg-secondary);padding:3px;border-radius:8px;border:1px solid var(--color-border)}.mgmt-page .filter-tab{padding:5px 12px;border:none;background:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;gap:5px;transition:background .15s,color .15s;white-space:nowrap}.mgmt-page .filter-tab:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.mgmt-page .filter-tab.active{background:var(--color-bg-primary);color:var(--color-primary);font-weight:700;box-shadow:0 1px 3px #00000014}.layout.dark .mgmt-page .filter-tab.active{background:var(--color-bg-active);box-shadow:none}.mgmt-page .tab-cnt{background:var(--color-primary);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;min-width:16px;text-align:center}.mgmt-page .mgmt-search input{padding:7px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:13px;background:var(--color-bg-secondary);color:var(--color-text-primary);outline:none;width:200px;font-family:inherit}.mgmt-page .mgmt-search input:focus{border-color:var(--color-primary)}.mgmt-page .mgmt-alert{display:flex;align-items:center;gap:8px;background:#fef3c7;color:#92400e;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px;border:1px solid #fde68a}.layout.dark .mgmt-page .mgmt-alert{background:#f5a62326;color:var(--color-warning);border-color:#f5a6234d}.mgmt-page .mgmt-err{background:var(--color-error-light);color:var(--color-error);padding:10px 16px;border-radius:8px;font-size:13px;margin-bottom:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.mgmt-page .mgmt-loading,.mgmt-page .mgmt-empty{display:flex;flex-direction:column;align-items:center;padding:60px 0;color:var(--color-text-secondary);gap:10px;text-align:center}.mgmt-page .mgmt-empty p{font-size:15px;margin:0;color:var(--color-text-secondary)}.mgmt-page .mgmt-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--color-border)}.mgmt-page .mgmt-table{width:100%;border-collapse:collapse;font-size:13px}.mgmt-page .mgmt-table thead th{padding:10px 14px;text-align:left;font-size:11px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.mgmt-page .mgmt-table tbody tr{border-bottom:1px solid var(--color-border);transition:background .12s}.mgmt-page .mgmt-table tbody tr:last-child{border-bottom:none}.mgmt-page .mgmt-table tbody tr:hover{background:var(--color-bg-hover)}.mgmt-page .mgmt-table tbody tr.row-inactive{opacity:.55}.mgmt-page .mgmt-table td{padding:10px 14px;color:var(--color-text-primary);vertical-align:middle}.mgmt-page .td-primary{font-weight:600}.mgmt-page .td-domain,.mgmt-page .td-storage{font-size:12px;color:var(--color-text-secondary);max-width:160px}.mgmt-page .td-actions{white-space:nowrap}.mgmt-page .sub-text{color:var(--color-text-secondary);font-size:12px}.mgmt-page .auto-tag{background:#10b9811f;color:#10b981;font-size:10px;font-weight:700;padding:1px 6px;border-radius:6px;margin-left:6px}.mgmt-page .text-red{color:#ef4444;font-weight:600}.mgmt-page .text-warning{color:#d97706;font-weight:600}.mgmt-page .corp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:16px}@media (max-width: 768px){.mgmt-page .corp-cards{grid-template-columns:1fr}}.mgmt-page .corp-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:18px;transition:box-shadow .2s}.mgmt-page .corp-card:hover{box-shadow:0 4px 16px #00000014}.layout.dark .mgmt-page .corp-card:hover{box-shadow:0 4px 16px #00000040}.mgmt-page .corp-card.inactive{opacity:.55}.mgmt-page .corp-card-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.mgmt-page .corp-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mgmt-page .corp-name{font-size:15px;font-weight:700;color:var(--color-text-primary)}.mgmt-page .mfa-badge{background:#3b82f61f;color:#3b82f6;font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px}.mgmt-page .corp-actions{display:flex;gap:4px;flex-shrink:0}.mgmt-page .corp-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-bottom:10px}.mgmt-page .corp-info{display:flex;flex-direction:column;gap:2px}.mgmt-page .ci-label{font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px}.mgmt-page .ci-value{font-size:13px;color:var(--color-text-primary);font-weight:500}.mgmt-page .ci-value.mono{font-family:Fira Code,Courier New,monospace;font-size:12px}.mgmt-page .corp-url{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-primary);margin-bottom:6px}.mgmt-page .corp-url a{color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.mgmt-page .corp-url a:hover{text-decoration:underline}.mgmt-page .corp-notes{font-size:12px;color:var(--color-text-secondary);padding:6px 10px;background:var(--color-bg-hover);border-radius:6px}.mgmt-page .patent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:16px}@media (max-width: 768px){.mgmt-page .patent-grid{grid-template-columns:1fr}}.mgmt-page .patent-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:18px;transition:box-shadow .2s}.mgmt-page .patent-card:hover{box-shadow:0 4px 16px #00000014}.layout.dark .mgmt-page .patent-card:hover{box-shadow:0 4px 16px #00000040}.mgmt-page .patent-card.inactive{opacity:.55}.mgmt-page .patent-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.mgmt-page .patent-title-row{display:flex;align-items:center;gap:8px}.mgmt-page .ip-icon{font-size:18px;flex-shrink:0}.mgmt-page .patent-title{font-size:15px;font-weight:700;color:var(--color-text-primary);line-height:1.3}.mgmt-page .patent-head-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.mgmt-page .patent-info-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px 12px;margin-bottom:10px}@media (max-width: 600px){.mgmt-page .patent-info-grid{grid-template-columns:1fr 1fr}}.mgmt-page .pi-item{display:flex;flex-direction:column;gap:2px}.mgmt-page .pi-label{font-size:10px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px}.mgmt-page .pi-value{font-size:12px;color:var(--color-text-primary);font-weight:500}.mgmt-page .pi-value.mono{font-family:Fira Code,Courier New,monospace;font-size:11px}.mgmt-page .patent-notes{font-size:12px;color:var(--color-text-secondary);padding:6px 10px;background:var(--color-bg-hover);border-radius:6px}.mgmt-page .badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}.mgmt-page .badge.success{background:var(--color-success-light);color:var(--color-primary)}.mgmt-page .badge.warning{background:var(--color-warning-light);color:var(--color-warning)}.mgmt-page .badge.red{background:var(--color-error-light);color:var(--color-error)}.mgmt-page .badge.blue{background:var(--color-secondary-light);color:var(--color-secondary)}.mgmt-page .badge.grey{background:var(--color-bg-active);color:var(--color-text-secondary)}.mgmt-page .type-badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:var(--color-bg-hover);color:var(--color-text-secondary);white-space:nowrap}.mgmt-page .type-badge.color-blue{background:var(--color-secondary-light);color:var(--color-secondary)}.mgmt-page .type-badge.color-purple{background:#8b5cf61f;color:#7c3aed}.mgmt-page .type-badge.color-green{background:var(--color-success-light);color:var(--color-primary)}.mgmt-page .type-badge.color-orange{background:#f973161f;color:#c2410c}.mgmt-page .type-badge.color-teal{background:#14b8a61f;color:#0f766e}.mgmt-page .type-badge.color-grey{background:var(--color-bg-active);color:var(--color-text-secondary)}.layout.dark .mgmt-page .type-badge.color-purple{color:#c4b5fd}.layout.dark .mgmt-page .type-badge.color-orange{color:#fdba74}.layout.dark .mgmt-page .type-badge.color-teal{color:#5eead4}.mgmt-page .countdown{display:inline-block;font-size:11px;font-weight:700;padding:1px 6px;border-radius:8px;margin-left:6px}.mgmt-page .countdown.warning{background:#f59e0b;color:#fff}.mgmt-page .countdown.red{background:#ef4444;color:#fff}.mgmt-page .btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap;font-family:inherit}.mgmt-page .btn-primary:hover{background:var(--color-primary-hover, #7aa824)}.mgmt-page .btn-primary:disabled{opacity:.5;cursor:not-allowed}.mgmt-page .btn-secondary{display:inline-flex;align-items:center;padding:8px 16px;background:var(--color-bg-primary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;font-family:inherit}.mgmt-page .btn-secondary:hover{background:var(--color-bg-hover)}.mgmt-page .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.mgmt-page .btn-danger{display:inline-flex;align-items:center;padding:8px 16px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.mgmt-page .btn-danger:hover{background:#dc2626}.mgmt-page .btn-danger:disabled{opacity:.5;cursor:not-allowed}.mgmt-page .icon-btn{padding:4px 6px;background:none;border:none;cursor:pointer;border-radius:5px;font-size:14px;transition:background .12s;color:var(--color-text-secondary);display:inline-flex;align-items:center}.mgmt-page .icon-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.mgmt-page .icon-btn.danger:hover{background:var(--color-error-light);color:var(--color-error)}.mgmt-page .modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.mgmt-page .modal{background:var(--color-bg-primary);border-radius:14px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.mgmt-page .modal.modal-sm{max-width:380px}.mgmt-page .modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-bg-primary);z-index:1}.mgmt-page .modal-header h2{font-size:17px;font-weight:700;margin:0;color:var(--color-text-primary)}.mgmt-page .modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--color-text-secondary);padding:0 4px;line-height:1;font-family:inherit}.mgmt-page .modal-close:hover{color:var(--color-text-primary)}.mgmt-page .modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:14px}.mgmt-page .modal-body p{font-size:14px;color:var(--color-text-primary);margin:0}.mgmt-page .modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 20px;border-top:1px solid var(--color-border);position:sticky;bottom:0;background:var(--color-bg-primary)}.mgmt-page .form-row{display:flex;gap:12px;flex-wrap:wrap}.mgmt-page .form-row.gap-16{gap:16px;align-items:center}.mgmt-page .form-field{flex:1;min-width:160px;display:flex;flex-direction:column;gap:5px}.mgmt-page .form-field.full{flex:1 0 100%;min-width:0}.mgmt-page .form-field label{font-size:12px;font-weight:600;color:var(--color-text-secondary);display:flex;align-items:center;gap:6px}.mgmt-page .form-field label .hint{font-weight:400;color:#ef4444;font-size:11px}.mgmt-page .form-field input,.mgmt-page .form-field textarea,.mgmt-page .form-field select{padding:8px 10px;border:1px solid var(--color-border);border-radius:7px;font-size:13px;background:var(--color-bg-secondary);color:var(--color-text-primary);outline:none;transition:border-color .15s;font-family:inherit}.mgmt-page .form-field input:focus,.mgmt-page .form-field textarea:focus,.mgmt-page .form-field select:focus{border-color:var(--color-primary)}.mgmt-page .form-field textarea{resize:vertical}.mgmt-page .toggle-label{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--color-text-primary);cursor:pointer;white-space:nowrap}.mgmt-page .toggle-label input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--color-primary)}.mgmt-page .mgmt-toast{position:fixed;bottom:28px;right:28px;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:600;z-index:9999;cursor:pointer;box-shadow:0 4px 20px #0000002e;animation:mgmt-toast-in .25s ease;max-width:320px}.mgmt-page .mgmt-toast.success{background:#16a34a;color:#fff}.mgmt-page .mgmt-toast.error{background:#dc2626;color:#fff}@keyframes mgmt-toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.mgmt-page .mgmt-empty h3{font-size:16px;margin:0;color:var(--color-text-primary)}.mgmt-page .mt-4{margin-top:16px}.mgmt-page .btn-text-sm{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:none;color:var(--color-primary);border:none;font-size:12px;font-weight:600;cursor:pointer;border-radius:6px;transition:background .15s;font-family:inherit}.mgmt-page .btn-text-sm:hover{background:var(--color-bg-hover)}.mgmt-page .icon-btn.sm{padding:3px}.mgmt-page .biz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:20px}@media (max-width: 768px){.mgmt-page .biz-grid{grid-template-columns:1fr}}.mgmt-page .biz-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:20px;transition:box-shadow .2s}.mgmt-page .biz-card:hover{box-shadow:0 4px 16px #00000014}.layout.dark .mgmt-page .biz-card:hover{box-shadow:0 4px 16px #00000040}.mgmt-page .biz-card.inactive{opacity:.55}.mgmt-page .biz-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.mgmt-page .biz-card-title{display:flex;align-items:center;gap:8px;color:var(--color-primary)}.mgmt-page .biz-type{font-size:16px;font-weight:700;color:var(--color-text-primary)}.mgmt-page .biz-card-actions{display:flex;gap:4px}.mgmt-page .biz-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:14px}.mgmt-page .biz-info-item{display:flex;flex-direction:column;gap:2px}.mgmt-page .biz-info-label{font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.mgmt-page .biz-info-value{font-size:13px;font-weight:500;color:var(--color-text-primary)}.mgmt-page .biz-info-value.expiring{color:#d97706}.mgmt-page .expiry-badge{background:#f59e0b;color:#fff;font-size:11px;font-weight:600;padding:1px 6px;border-radius:8px;margin-left:6px}.mgmt-page .biz-notes{font-size:12px;color:var(--color-text-secondary);padding:8px 12px;background:var(--color-bg-hover);border-radius:6px;margin-bottom:14px}.mgmt-page .biz-personnel{border-top:1px solid var(--color-border);padding-top:14px}.mgmt-page .biz-personnel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.mgmt-page .biz-personnel-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--color-text-secondary)}.mgmt-page .biz-count{background:var(--color-primary);color:#fff;font-size:11px;padding:1px 7px;border-radius:10px;font-weight:700}.mgmt-page .biz-personnel-empty{font-size:12px;color:var(--color-text-secondary);text-align:center;padding:8px 0}.mgmt-page .biz-personnel-list{display:flex;flex-direction:column;gap:6px}.mgmt-page .biz-person{padding:8px 10px;background:var(--color-bg-hover);border-radius:8px;border:1px solid var(--color-border)}.mgmt-page .biz-person.inactive{opacity:.5}.mgmt-page .person-info{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);margin-bottom:2px}.mgmt-page .person-name{font-size:13px;font-weight:600;color:var(--color-text-primary)}.mgmt-page .person-role{font-size:11px;background:var(--color-primary-light);color:var(--color-primary);padding:2px 7px;border-radius:10px;font-weight:600}.mgmt-page .person-qual{font-size:12px;color:var(--color-text-secondary);padding-left:20px}.mgmt-page .qual-date{font-size:11px;color:var(--color-text-secondary);opacity:.7;margin-left:4px}.mgmt-page .person-actions{display:flex;justify-content:flex-end;gap:2px;margin-top:4px}.mqp-panel{background:var(--color-bg-secondary, #f7f6f3);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;padding:12px 16px;margin-bottom:16px}.mqp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.mqp-title-wrap{display:inline-flex;align-items:center;gap:6px}.mqp-title-icon{color:var(--color-primary, #89b929)}.mqp-title{font-size:13px;font-weight:600;color:var(--color-text-primary, #37352f)}.mqp-hint{font-size:11px;color:var(--color-text-secondary, #787774);margin-left:4px}.mqp-help{width:24px;height:24px;border:1px solid var(--color-border);background:var(--color-bg-primary, #fff);border-radius:4px;cursor:pointer;color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;transition:background .1s ease-out,color .1s ease-out}.mqp-help:hover{background:var(--color-primary, #89b929);color:#fff;border-color:var(--color-primary)}.mqp-loading{padding:16px;text-align:center;font-size:12px;color:var(--color-text-secondary)}.mqp-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.mqp-slot{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;cursor:pointer;text-align:left;transition:background-color .1s ease-out,border-color .1s ease-out;min-height:44px;font-family:inherit}.mqp-slot:not(:disabled):hover{border-color:var(--color-primary, #89b929);background:#fafaf9}.mqp-slot:disabled{opacity:.4;cursor:not-allowed}.mqp-slot-empty{background:transparent;border-style:dashed}.mqp-key{flex-shrink:0;width:28px;height:28px;background:var(--color-text-primary, #37352f);color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;font-family:JetBrains Mono,Consolas,monospace}.mqp-slot-builtin .mqp-key{background:#89b929}.mqp-slot-uploaded .mqp-key{background:#6366f1}.mqp-slot-empty .mqp-key{background:#d3d2cf;color:#787774}.mqp-slot-title{font-size:12px;font-weight:500;color:var(--color-text-primary, #37352f);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.mqp-slot-empty .mqp-slot-title{color:var(--color-text-tertiary, #b4b4b0)}.mqp-tag{flex-shrink:0;font-size:10px;padding:1px 6px;border-radius:4px;font-weight:500}.mqp-tag-builtin{background:#89b92926;color:#5a8519}.mqp-tag-uploaded{background:#6366f11a;color:#6366f1}.mqp-help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:2000;display:flex;align-items:center;justify-content:center}.mqp-help-box{background:var(--color-bg-primary, #fff);border-radius:6px;padding:20px 24px;max-width:420px;width:90%;box-shadow:0 4px 12px #00000014;border:1px solid var(--color-border, #e3e2e0)}.mqp-help-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.mqp-help-box h3{font-size:14px;font-weight:600;margin:0;color:var(--color-text-primary, #37352f)}.mqp-help-close{background:none;border:none;cursor:pointer;padding:4px;color:var(--color-text-secondary);display:inline-flex;align-items:center;border-radius:4px}.mqp-help-close:hover{background:#f7f6f3}.mqp-help-box ul{list-style:none;padding:0;margin:0 0 12px}.mqp-help-box li{padding:6px 0;font-size:13px;color:var(--color-text-primary)}.mqp-help-box kbd{display:inline-block;padding:2px 8px;background:#f7f6f3;border:1px solid #e3e2e0;border-bottom-width:2px;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:11px;margin:0 2px}.mqp-help-note{font-size:12px;color:var(--color-text-secondary, #787774);line-height:1.5;margin:0 0 16px}.mqp-help-box>button{padding:6px 16px;background:var(--color-primary, #89b929);color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;float:right}.mqp-help-box>button:hover{background:#7aa824}.layout.dark .mqp-panel{background:#1e1e1e;border-color:#3f3f3f}.layout.dark .mqp-title,.layout.dark .mqp-help-box h3{color:#ffffffcf}.layout.dark .mqp-help{background:#252525;border-color:#3f3f3f;color:#ffffff71}.layout.dark .mqp-slot{background:#1e1e1e;border-color:#3f3f3f}.layout.dark .mqp-slot-empty{background:transparent}.layout.dark .mqp-slot-title{color:#ffffffcf}.layout.dark .mqp-help-box{background:#252525}.layout.dark .mqp-help-box li{color:#ffffffcf}.layout.dark .mqp-help-box kbd{background:#1e1e1e;border-color:#3f3f3f;color:#ffffffcf}.mdc-cabinet{background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;padding:16px 20px;margin-top:16px}.mdc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.mdc-title{font-size:14px;font-weight:600;margin:0;color:var(--color-text-primary, #37352f)}.mdc-btn-primary{padding:5px 12px;background:var(--color-primary, #89b929);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer}.mdc-btn-primary:hover{background:#7aa824}.mdc-btn-primary:disabled{background:#cbd5e0;cursor:not-allowed}.mdc-btn-secondary{padding:5px 12px;background:#fff;border:1px solid var(--color-border, #e3e2e0);border-radius:6px;font-size:12px;cursor:pointer}.mdc-btn-secondary:hover{background:#f7f6f3}.mdc-empty{padding:32px 16px;text-align:center;font-size:12px;color:var(--color-text-secondary, #787774)}.mdc-table{width:100%;border-collapse:collapse;font-size:12px}.mdc-table thead th{background:#fafaf9;padding:8px 10px;text-align:left;font-weight:600;font-size:11px;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.mdc-table tbody td{padding:8px 10px;border-bottom:1px solid #f0efed;vertical-align:middle}.mdc-table tbody tr.mdc-pinned{background:#fffbe6}.mdc-table tbody tr:last-child td{border-bottom:none}.mdc-shortcut-select{padding:3px 6px;border:1px solid var(--color-border, #e3e2e0);border-radius:4px;font-size:12px;background:#fff;font-weight:600;font-family:JetBrains Mono,monospace;width:50px}.mdc-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;background:#6366f11a;color:#6366f1;font-weight:500}.mdc-fy-tag{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;background:#f59e0b1f;color:#d97706;font-weight:600;margin-left:4px;font-family:JetBrains Mono,monospace}.mdc-title{display:inline-flex;align-items:center;gap:6px}.mdc-btn-icon-text{display:inline-flex;align-items:center;gap:4px}.mdc-pin-icon{color:#dfab01;margin-right:4px;vertical-align:middle}.mdc-actions button{display:inline-flex;align-items:center;justify-content:center}.mdc-file-link{color:var(--color-primary, #89b929);text-decoration:none;font-weight:500}.mdc-file-link:hover{text-decoration:underline}.mdc-notes{font-size:10px;color:var(--color-text-secondary, #787774);margin-top:2px}.mdc-period{font-size:11px;color:var(--color-text-secondary);white-space:nowrap}.mdc-actions{text-align:right;white-space:nowrap}.mdc-actions button{background:none;border:none;padding:2px 6px;font-size:14px;cursor:pointer;border-radius:4px}.mdc-actions button:hover{background:#f7f6f3}.mdc-actions .mdc-btn-delete:hover{background:#fee;color:#e03e3e}.mdc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.mdc-modal{background:#fff;border-radius:6px;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.mdc-modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--color-border)}.mdc-modal-header h3{margin:0;font-size:15px;font-weight:600}.mdc-modal-header button{background:none;border:none;font-size:15px;cursor:pointer;color:var(--color-text-secondary)}.mdc-modal-body{padding:14px 18px;display:flex;flex-direction:column;gap:10px}.mdc-modal-footer{padding:10px 18px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:8px}.mdc-form-row,.mdc-form-row-2>div{display:flex;flex-direction:column;gap:4px}.mdc-form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mdc-form-row label,.mdc-form-row-2 label{font-size:11px;font-weight:500;color:var(--color-text-secondary, #787774)}.mdc-form-row input,.mdc-form-row select,.mdc-form-row textarea,.mdc-form-row-2 input,.mdc-form-row-2 select{padding:6px 10px;border:1px solid var(--color-border, #e3e2e0);border-radius:4px;font-size:13px;font-family:inherit}.mdc-form-row input:focus,.mdc-form-row select:focus,.mdc-form-row textarea:focus,.mdc-form-row-2 input:focus,.mdc-form-row-2 select:focus{outline:none;border-color:var(--color-primary, #89b929)}.layout.dark .mdc-cabinet{background:#252525;border-color:#3f3f3f}.layout.dark .mdc-title{color:#ffffffcf}.layout.dark .mdc-table thead th{background:#1e1e1e;color:#ffffff71;border-color:#3f3f3f}.layout.dark .mdc-table tbody td{color:#ffffffcf;border-color:#3f3f3f}.layout.dark .mdc-table tbody tr.mdc-pinned{background:#dfab0114}.layout.dark .mdc-modal{background:#252525}.layout.dark .mdc-modal-header,.layout.dark .mdc-modal-footer{border-color:#3f3f3f}.layout.dark .mdc-form-row input,.layout.dark .mdc-form-row select,.layout.dark .mdc-form-row textarea,.layout.dark .mdc-form-row-2 input,.layout.dark .mdc-form-row-2 select,.layout.dark .mdc-shortcut-select{background:#1e1e1e;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .mdc-btn-secondary{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.mc-panel{background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;padding:16px 20px;margin-bottom:16px}.mc-title{display:inline-flex;align-items:center;gap:6px}.mc-item{border-radius:6px!important}.mc-file-link{display:inline-flex;align-items:center;gap:4px}.mc-btn-icon-text{display:inline-flex;align-items:center;gap:4px;justify-content:center}.mc-loading{padding:24px;text-align:center;font-size:13px;color:var(--color-text-secondary, #787774)}.mc-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--color-border, #e3e2e0);margin-bottom:12px}.mc-title{font-size:14px;font-weight:600;margin:0 0 4px;color:var(--color-text-primary, #37352f)}.mc-subtitle{font-size:11px;color:var(--color-text-secondary, #787774);margin:0}.mc-summary{display:flex;align-items:center;gap:12px}.mc-progress-circle{position:relative;width:48px;height:48px}.mc-progress-num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--color-primary, #89b929)}.mc-counter{font-size:12px;color:var(--color-text-secondary)}.mc-counter strong{font-size:16px;color:var(--color-primary, #89b929)}.mc-list{display:flex;flex-direction:column;gap:6px}.mc-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fafaf9;border:1px solid #f0efed;border-radius:8px;transition:all .15s}.mc-item:hover{border-color:var(--color-border, #e3e2e0)}.mc-item.mc-uploaded{background:#f5fbf0;border-color:#89b92940}.mc-item.mc-missing{background:#fff8f0;border-color:#ef444433}.mc-item.mc-optional{background:transparent;border-style:dashed}.mc-item-status{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.mc-uploaded .mc-item-status{background:var(--color-primary, #89b929);color:#fff}.mc-missing .mc-item-status{background:#e03e3e;color:#fff}.mc-optional .mc-item-status{background:#e3e2e0;color:#787774;font-size:18px}.mc-item-body{flex:1;min-width:0}.mc-item-title{font-size:13px;font-weight:500;color:var(--color-text-primary, #37352f);display:flex;align-items:center;gap:8px}.mc-required{font-size:9px;padding:1px 5px;background:#ef44441f;color:#dc2626;border-radius:3px;font-weight:600}.mc-item-meta{font-size:11px;color:var(--color-text-secondary, #787774);margin-top:2px;display:flex;gap:8px;align-items:center}.mc-item-meta a{color:var(--color-primary, #89b929);text-decoration:none}.mc-item-meta a:hover{text-decoration:underline}.mc-uploaded-at{color:#b4b4b0}.mc-missing-text{color:#dc2626;font-weight:500}.mc-item-actions{display:flex;gap:6px;flex-shrink:0}.mc-btn-upload,.mc-btn-upload-small,.mc-btn-replace,.mc-btn-delete{padding:5px 12px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;transition:all .1s;border:1px solid transparent}.mc-btn-upload{background:var(--color-primary, #89b929);color:#fff;border:none}.mc-btn-upload:hover{background:#7aa824}.mc-btn-upload-small{background:#fff;border-color:var(--color-border, #e3e2e0);color:var(--color-text-primary);padding:4px 10px;font-size:11px}.mc-btn-upload-small:hover{background:#f7f6f3;border-color:var(--color-primary)}.mc-btn-replace{background:#fff;border-color:var(--color-border, #e3e2e0);color:var(--color-text-primary)}.mc-btn-replace:hover{background:#f7f6f3}.mc-btn-delete{background:#fff;border-color:#ef44444d;color:#dc2626}.mc-btn-delete:hover{background:#fee}button:disabled{opacity:.5;cursor:not-allowed}.mc-section-divider{font-size:10px;font-weight:600;color:var(--color-text-tertiary, #b4b4b0);text-transform:uppercase;letter-spacing:.5px;padding:8px 4px 4px}.layout.dark .mc-panel{background:#252525;border-color:#3f3f3f}.layout.dark .mc-title,.layout.dark .mc-item-title{color:#ffffffcf}.layout.dark .mc-header{border-color:#3f3f3f}.layout.dark .mc-item{background:#1e1e1e;border-color:#2f2f2f}.layout.dark .mc-item.mc-uploaded{background:#89b92914;border-color:#89b9294d}.layout.dark .mc-item.mc-missing{background:#ef444414;border-color:#ef44444d}.layout.dark .mc-item.mc-optional{background:transparent}.layout.dark .mc-btn-upload-small,.layout.dark .mc-btn-replace{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .mc-btn-delete{background:#252525}.mil-page{padding:24px 32px;max-width:1400px;margin:0 auto}.mil-page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px;flex-wrap:wrap}.mil-title{font-size:22px;font-weight:700;color:var(--color-text-primary, #37352f);margin:0 0 4px}.mil-subtitle{font-size:12px;color:var(--color-text-secondary, #787774);margin:0}.mil-back{background:none;border:none;color:var(--color-text-secondary);font-size:12px;cursor:pointer;padding:0;margin-bottom:8px}.mil-back:hover{color:var(--color-primary, #89b929)}.mil-page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mil-btn-primary,.mil-btn-secondary{padding:6px 14px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .1s;border:1px solid transparent}.mil-btn-primary{background:var(--color-primary, #89b929);color:#fff}.mil-btn-primary:hover{background:#7aa824}.mil-btn-primary:disabled{background:#cbd5e0;cursor:not-allowed}.mil-btn-secondary{background:var(--color-bg-primary, #fff);border-color:var(--color-border, #e3e2e0);color:var(--color-text-primary, #37352f)}.mil-btn-secondary:hover{background:#f7f6f3;border-color:var(--color-primary)}.mil-btn-icon{background:none;border:none;color:#787774;cursor:pointer;padding:4px 6px;border-radius:4px;font-size:12px;display:inline-flex;align-items:center}.mil-btn-icon:hover{background:#fee;color:#e03e3e}.mil-btn-icon-text{display:inline-flex;align-items:center;gap:4px;justify-content:center}.mil-btn-danger{color:#e03e3e!important}.mil-btn-danger:hover{background:#fee!important;border-color:#e03e3e4d!important}.mil-link-inline{display:inline-flex;align-items:center;gap:3px;background:none;border:none;color:var(--color-primary, #89b929);cursor:pointer;padding:0;font-size:10px;margin-left:6px}.mil-link-inline:hover{text-decoration:underline}.mil-select-inline{padding:5px 8px;border:1px solid var(--color-border, #e3e2e0);border-radius:4px;font-size:12px;background:var(--color-bg-primary, #fff);color:var(--color-text-primary)}.mil-filters{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--color-border, #e3e2e0);padding-bottom:8px;flex-wrap:wrap}.mil-filters button{padding:5px 12px;background:none;border:1px solid transparent;border-radius:6px;font-size:12px;color:var(--color-text-secondary, #787774);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.mil-filters button:hover{background:#f7f6f3}.mil-filters button.active{background:#89b9291a;color:var(--color-primary, #89b929);font-weight:600}.mil-filter-count{background:#00000014;padding:1px 6px;border-radius:10px;font-size:10px}.mil-filters button.active .mil-filter-count{background:var(--color-primary);color:#fff}.mil-table-wrap{background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;overflow:hidden}.mil-table{width:100%;border-collapse:collapse;font-size:13px}.mil-table thead th{background:#fafaf9;padding:10px 12px;text-align:left;font-weight:600;font-size:12px;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.mil-table tbody td{padding:10px 12px;border-bottom:1px solid #f0efed;color:var(--color-text-primary)}.mil-table tbody tr{cursor:pointer;transition:background .1s}.mil-table tbody tr:hover{background:#fafaf9}.mil-table tbody tr:last-child td{border-bottom:none}.mil-cell-name{font-weight:600}.mil-cell-sub{font-size:11px;color:var(--color-text-secondary);margin-top:2px}.mil-cell-action{text-align:right;color:var(--color-text-tertiary);font-size:16px}.mil-cell-reason{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mil-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.mil-badge-expert{background:#6366f11a;color:#6366f1}.mil-badge-industry{background:#f59e0b1a;color:#d97706}.mil-status{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}.mil-status-active{background:#89b9291f;color:#5a8519}.mil-status-completed{background:#6b72801f;color:#4b5563}.mil-status-suspended{background:#ef44441f;color:#dc2626}.mil-status-transferred{background:#3b82f61f;color:#2563eb}.mil-status-cancelled{background:#00000014;color:#6b7280;text-decoration:line-through}.mil-event-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;background:#6366f11a;color:#6366f1}.mil-event-business_trip{background:#f59e0b1f;color:#d97706}.mil-event-sick_leave{background:#ef44441f;color:#dc2626}.mil-event-change_report{background:#00000014;color:#4b5563}.mil-event-overtime{background:#a855f71f;color:#9333ea}.mil-overdue{color:#dc2626;font-weight:600}.mil-not-reported{color:#dc2626;font-size:11px}.mil-reported{display:inline-flex;align-items:center;gap:4px;color:#5a8519;font-size:11px}.mil-progress{width:80px;height:6px;background:#f0efed;border-radius:3px;overflow:hidden;display:inline-block;vertical-align:middle}.mil-progress-fill{height:100%;background:linear-gradient(90deg,#89b929,#5a8519);transition:width .3s}.mil-progress-text{font-size:11px;margin-left:6px;color:var(--color-text-secondary)}.mil-empty{text-align:center;padding:48px 24px;color:var(--color-text-secondary, #787774);font-size:14px}.mil-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:24px}.mil-info-card{background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;padding:16px 20px}.mil-info-card h3{font-size:13px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #f0efed}.mil-info-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:12px}.mil-info-row>span{color:var(--color-text-secondary);flex-shrink:0}.mil-info-row>strong{color:var(--color-text-primary);font-weight:500;text-align:right}.mil-multiline{white-space:pre-wrap;text-align:left!important}.mil-cert-list{margin:4px 0 0;padding-left:16px;font-size:11px;color:var(--color-text-secondary)}.mil-cert-list li{margin:2px 0}.mil-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mil-stat{padding:10px;background:#fafaf9;border-radius:6px;text-align:center}.mil-stat-num{font-size:18px;font-weight:700;color:var(--color-text-primary)}.mil-stat-label{font-size:11px;color:var(--color-text-secondary);margin-top:2px}.mil-section{background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #e3e2e0);border-radius:6px;padding:16px 20px;margin-top:16px}.mil-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.mil-section-header h2{font-size:14px;font-weight:600;margin:0;color:var(--color-text-primary)}.mil-section .mil-table{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.mil-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.mil-modal{background:var(--color-bg-primary, #fff);border-radius:6px;max-width:640px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.mil-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.mil-modal-header h2{margin:0;font-size:16px;font-weight:600}.mil-modal-header button{background:none;border:none;font-size:16px;cursor:pointer;color:var(--color-text-secondary);padding:4px}.mil-modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.mil-modal-footer{padding:12px 20px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:8px}.mil-form-row,.mil-form-row-2>div{display:flex;flex-direction:column;gap:4px}.mil-form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mil-form-row label,.mil-form-row-2 label{font-size:11px;font-weight:500;color:var(--color-text-secondary)}.mil-form-row input,.mil-form-row select,.mil-form-row textarea,.mil-form-row-2 input,.mil-form-row-2 select,.mil-form-row-2 textarea{padding:6px 10px;border:1px solid var(--color-border, #e3e2e0);border-radius:4px;font-size:13px;background:var(--color-bg-primary, #fff);color:var(--color-text-primary);font-family:inherit}.mil-form-row input:focus,.mil-form-row select:focus,.mil-form-row textarea:focus,.mil-form-row-2 input:focus,.mil-form-row-2 select:focus,.mil-form-row-2 textarea:focus{outline:none;border-color:var(--color-primary, #89b929)}.layout.dark .mil-table-wrap,.layout.dark .mil-info-card,.layout.dark .mil-section,.layout.dark .mil-modal{background:#252525;border-color:#3f3f3f}.layout.dark .mil-table thead th{background:#1e1e1e;color:#ffffff71;border-color:#3f3f3f}.layout.dark .mil-table tbody td{color:#ffffffcf;border-color:#3f3f3f}.layout.dark .mil-table tbody tr:hover{background:#2f2f2f}.layout.dark .mil-info-card h3,.layout.dark .mil-section-header h2{color:#ffffffcf;border-color:#3f3f3f}.layout.dark .mil-info-row>strong,.layout.dark .mil-stat-num,.layout.dark .mil-title{color:#ffffffcf}.layout.dark .mil-stat{background:#1e1e1e}.layout.dark .mil-progress{background:#3f3f3f}.layout.dark .mil-btn-secondary{background:#252525;border-color:#3f3f3f;color:#ffffffcf}.layout.dark .mil-btn-secondary:hover{background:#2f2f2f}.layout.dark .mil-modal-header,.layout.dark .mil-modal-footer{border-color:#3f3f3f}.layout.dark .mil-form-row input,.layout.dark .mil-form-row select,.layout.dark .mil-form-row textarea,.layout.dark .mil-form-row-2 input,.layout.dark .mil-form-row-2 select,.layout.dark .mil-form-row-2 textarea,.layout.dark .mil-select-inline{background:#1e1e1e;border-color:#3f3f3f;color:#ffffffcf}.rte-container{border:1px solid var(--color-border, #e3e2e0);border-radius:8px;background:var(--color-bg-primary, #fff);overflow:hidden;display:flex;flex-direction:column}.rte-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:6px 8px;background:var(--color-bg-secondary, #fafaf9);border-bottom:1px solid var(--color-border, #e3e2e0)}.rte-section{display:flex;gap:2px}.rte-div{width:1px;height:18px;background:var(--color-border, #e3e2e0);margin:0 4px}.rte-toolbar button{min-width:28px;height:28px;padding:0 8px;border:1px solid transparent;background:transparent;border-radius:4px;font-size:13px;cursor:pointer;color:var(--color-text-primary);display:inline-flex;align-items:center;justify-content:center}.rte-toolbar button:hover{background:var(--color-bg-tertiary, #f1f1ef);border-color:var(--color-border, #e3e2e0)}.rte-toolbar button.active{background:var(--color-primary, #89b929);color:#fff}.rte-toolbar button.danger{color:#dc2626}.rte-toolbar button.danger:hover{background:#dc262614;border-color:#fecaca}.rte-select{padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);font-size:12px;height:28px}.rte-table-tools button{font-size:11px;padding:0 6px}.rte-editor-wrap{padding:16px 20px;max-height:70vh;overflow-y:auto}.rte-editor{outline:none}.rte-editor .ProseMirror{outline:none;font-size:14px;line-height:1.7;color:var(--color-text-primary);min-height:200px}.rte-editor .ProseMirror p{margin:0 0 8px}.rte-editor .ProseMirror p:last-child{margin-bottom:0}.rte-editor .ProseMirror h1{font-size:24px;font-weight:700;margin:18px 0 10px}.rte-editor .ProseMirror h2{font-size:20px;font-weight:700;margin:16px 0 8px}.rte-editor .ProseMirror h3{font-size:17px;font-weight:600;margin:14px 0 6px}.rte-editor .ProseMirror ul,.rte-editor .ProseMirror ol{padding-left:24px;margin:6px 0}.rte-editor .ProseMirror blockquote{border-left:3px solid var(--color-border);padding-left:14px;color:var(--color-text-secondary);font-style:italic;margin:10px 0}.rte-editor .ProseMirror code{background:var(--color-bg-tertiary, #f1f1ef);padding:1px 5px;border-radius:3px;font-size:.9em;font-family:SF Mono,Menlo,monospace}.rte-editor .ProseMirror pre{background:#1e1e1e;color:#d4d4d4;padding:12px 14px;border-radius:6px;font-size:12.5px;overflow-x:auto;margin:10px 0}.rte-editor .ProseMirror pre code{background:transparent;padding:0;color:inherit}.rte-editor .ProseMirror hr{border:none;border-top:1px solid var(--color-border);margin:16px 0}.rte-editor .ProseMirror a{color:var(--color-primary, #89b929);text-decoration:underline}.rte-editor .ProseMirror mark{background:#fef08a;padding:0 2px;border-radius:2px}.rte-editor .ProseMirror table{border-collapse:collapse;table-layout:fixed;width:100%;margin:10px 0;overflow:hidden}.rte-editor .ProseMirror table th,.rte-editor .ProseMirror table td{border:1px solid var(--color-border, #d3d2cf);padding:6px 10px;vertical-align:top;position:relative;min-width:60px}.rte-editor .ProseMirror table th{background:var(--color-bg-secondary, #fafaf9);font-weight:600;text-align:left}.rte-editor .ProseMirror table .selectedCell:after{content:"";background:#89b9291a;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.rte-editor .ProseMirror table .column-resize-handle{position:absolute;right:-2px;top:0;bottom:-2px;width:4px;background:var(--color-primary, #89b929);pointer-events:none}.rte-editor .ProseMirror ul[data-type=taskList]{list-style:none;padding-left:4px}.rte-editor .ProseMirror ul[data-type=taskList] li{display:flex;gap:8px;align-items:flex-start}.rte-editor .ProseMirror ul[data-type=taskList] li>label{-webkit-user-select:none;user-select:none}.rte-editor .ProseMirror ul[data-type=taskList] li>div{flex:1}.rte-editor .ProseMirror ul[data-type=taskList] input[type=checkbox]{margin-top:6px;accent-color:var(--color-primary, #89b929)}.rte-editor .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--color-text-tertiary, #9b9a97);pointer-events:none;height:0}.rte-container:focus-within{border-color:var(--color-primary, #89b929);box-shadow:0 0 0 3px #89b9291a}.layout.dark .rte-container{background:#1f1f1f;border-color:#3f3f3f}.layout.dark .rte-toolbar{background:#252525;border-color:#3f3f3f}.layout.dark .rte-toolbar button{color:#e5e5e5}.layout.dark .rte-toolbar button:hover{background:#333}.layout.dark .rte-editor .ProseMirror table th{background:#2a2a2a}.layout.dark .rte-editor .ProseMirror table th,.layout.dark .rte-editor .ProseMirror table td{border-color:#3f3f3f}.layout.dark .rte-editor .ProseMirror code{background:#2a2a2a}.notices-page{padding:24px 32px;height:calc(100vh - 60px)}.notices-layout{display:flex;gap:0;height:100%;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.notices-list-col{width:360px;flex-shrink:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden}.notices-detail-col{flex:1;overflow-y:auto;padding:24px 32px}.notices-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 10px}.notices-head h1{font-size:18px;font-weight:700;margin:0;color:var(--color-text-primary)}.notices-btn-primary{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:var(--color-primary, #89b929);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer}.notices-btn-primary:hover{background:#7aa824}.notice-btn-secondary{padding:6px 12px;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:6px;font-size:12px;cursor:pointer}.notice-btn-secondary:hover{background:var(--color-bg-hover)}.notice-btn-danger{padding:6px 12px;background:transparent;color:#dc2626;border:1px solid #dc2626;border-radius:6px;font-size:12px;cursor:pointer}.notice-btn-danger:hover{background:#dc262614}.notices-search{display:flex;align-items:center;gap:6px;margin:0 16px 8px;padding:6px 10px;background:var(--color-bg-tertiary);border-radius:6px}.notices-search svg{color:var(--color-text-tertiary);flex-shrink:0}.notices-search input{flex:1;border:none;outline:none;background:transparent;font-size:12px;color:var(--color-text-primary)}.notices-search button{background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);font-size:11px}.notices-filter{display:flex;flex-wrap:wrap;gap:4px;padding:0 16px 8px}.notices-filter button{padding:4px 10px;border:1px solid var(--color-border);background:var(--color-bg-primary);border-radius:12px;font-size:11px;color:var(--color-text-primary);cursor:pointer}.notices-filter button:hover{background:var(--color-bg-tertiary)}.notices-filter button.active{background:var(--color-primary, #89b929);border-color:var(--color-primary, #89b929);color:#fff}.notices-items{flex:1;overflow-y:auto;padding:4px 8px 16px}.notices-empty{padding:40px 16px;text-align:center;color:var(--color-text-tertiary);font-size:13px}.notice-row{padding:10px 12px;margin:2px 0;border-radius:6px;cursor:pointer;transition:background .1s;border-left:3px solid transparent}.notice-row:hover{background:var(--color-bg-tertiary)}.notice-row.selected{background:var(--color-bg-tertiary);border-left-color:var(--color-primary)}.notice-row.pinned{background:#f5a6230a}.notice-row.pinned.selected{background:#f5a62314}.notice-row.read .notice-row-title{color:var(--color-text-secondary);font-weight:400}.notice-row-head{display:flex;align-items:center;gap:5px;font-size:10.5px;margin-bottom:4px}.notice-pin{font-size:11px}.notice-pin.big{font-size:13px;color:#dfab01;padding:2px 8px;border:1px solid #f5c87a;border-radius:10px;background:#fff8e6;font-weight:600}.notice-cat-tag{padding:1px 6px;border-radius:8px;font-size:10px;font-weight:600}.notice-cat-tag.big{padding:4px 12px;font-size:11px;border-radius:12px}.notice-new-dot{width:6px;height:6px;border-radius:50%;background:#dc2626;display:inline-block;margin-left:auto}.notice-time{color:var(--color-text-tertiary);font-size:10px;margin-left:auto}.notice-new-dot+.notice-time{margin-left:0}.notice-row-title{font-size:13px;font-weight:600;color:var(--color-text-primary);line-height:1.4;margin-bottom:3px}.notice-row-meta{font-size:10.5px;color:var(--color-text-tertiary);display:flex;gap:4px}.notice-draft{color:#f59e0b;font-weight:600}.notice-detail-head{padding-bottom:16px;border-bottom:1px solid var(--color-border);margin-bottom:20px}.notice-detail-cat-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.notice-detail-head h1{font-size:24px;font-weight:700;margin:0 0 12px;color:var(--color-text-primary);line-height:1.3}.notice-detail-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-secondary);flex-wrap:wrap}.notice-author-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.notice-author-avatar.text{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary);font-weight:600;font-size:12px}.notice-actions{margin-left:auto;display:flex;gap:6px}.notice-detail-content{font-size:14px;line-height:1.8;color:var(--color-text-primary)}.notice-detail-content p{margin:0 0 8px;min-height:1em}.rte-rendered h1{font-size:24px;font-weight:700;margin:18px 0 10px;line-height:1.3}.rte-rendered h2{font-size:20px;font-weight:700;margin:16px 0 8px;line-height:1.3}.rte-rendered h3{font-size:17px;font-weight:600;margin:14px 0 6px;line-height:1.4}.rte-rendered ul,.rte-rendered ol{padding-left:24px;margin:6px 0}.rte-rendered blockquote{border-left:3px solid var(--color-border);padding-left:14px;color:var(--color-text-secondary);font-style:italic;margin:12px 0}.rte-rendered code{background:var(--color-bg-tertiary, #f1f1ef);padding:1px 5px;border-radius:3px;font-size:.9em;font-family:SF Mono,Menlo,monospace}.rte-rendered pre{background:#1e1e1e;color:#d4d4d4;padding:14px 16px;border-radius:6px;font-size:12.5px;overflow-x:auto;margin:12px 0}.rte-rendered pre code{background:transparent;padding:0;color:inherit}.rte-rendered hr{border:none;border-top:1px solid var(--color-border);margin:18px 0}.rte-rendered a{color:var(--color-primary, #89b929);text-decoration:underline}.rte-rendered mark{background:#fef08a;padding:0 3px;border-radius:2px}.rte-rendered table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px}.rte-rendered table th,.rte-rendered table td{border:1px solid var(--color-border, #d3d2cf);padding:8px 12px;vertical-align:top}.rte-rendered table th{background:var(--color-bg-secondary, #fafaf9);font-weight:600;text-align:left}.rte-rendered ul[data-type=taskList]{list-style:none;padding-left:4px}.rte-rendered ul[data-type=taskList] li{display:flex;gap:8px;align-items:flex-start}.rte-rendered ul[data-type=taskList] input[type=checkbox]{margin-top:6px;accent-color:var(--color-primary, #89b929)}.rte-rendered img{max-width:100%;height:auto;border-radius:6px}.notice-empty-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-tertiary);font-size:13px;text-align:center}.notice-empty-state p{margin:14px 0 0}.notice-edit{display:flex;flex-direction:column;gap:12px}.notice-edit-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.notice-edit-head h2{flex:1;font-size:18px;font-weight:700;margin:0}.notice-edit-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.notice-edit-row label{font-size:12px;color:var(--color-text-secondary);display:inline-flex;align-items:center;gap:4px}.notice-edit-row select{padding:5px 10px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-bg-primary);font-size:12px}.notice-checkbox{cursor:pointer}.notice-edit-title{padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;font-size:18px;font-weight:600;background:var(--color-bg-primary);color:var(--color-text-primary);outline:none}.notice-edit-title:focus{border-color:var(--color-primary)}.notice-edit-content{padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;line-height:1.7;background:var(--color-bg-primary);color:var(--color-text-primary);outline:none;resize:vertical;font-family:inherit}.notice-edit-content:focus{border-color:var(--color-primary)}.notice-edit-tip{padding:10px 12px;background:#fef3c7;color:#92400e;border-radius:6px;font-size:12px;margin:0}@media (max-width: 768px){.notices-layout{flex-direction:column}.notices-list-col{width:100%;max-height:50vh;border-right:none;border-bottom:1px solid var(--color-border)}}.mil-subtitle{margin:4px 0 0;font-size:12px;color:var(--color-text-secondary, #787774);line-height:1.55;max-width:720px}.pc-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.pc-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--color-border, #e3e2e0);background:var(--color-bg-primary, #fff);border-radius:16px;font-size:12px;color:var(--color-text-primary);cursor:pointer;transition:all .12s}.pc-chip:hover{background:#fafaf9}.pc-chip.active{background:var(--color-primary, #89b929);border-color:var(--color-primary, #89b929);color:#fff}.pc-chip-count{font-size:11px;padding:1px 6px;background:#00000014;border-radius:9px;font-weight:600}.pc-chip.active .pc-chip-count{background:#ffffff40}.pc-sections{display:flex;flex-direction:column;gap:24px}.pc-section-header{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 8px;padding:0 2px}.pc-section-title{margin:0;font-size:14px;font-weight:600;color:var(--color-text-primary)}.pc-section-count{font-size:11px;color:var(--color-text-secondary, #787774);font-weight:500}.pc-table thead th{font-size:11px}.pc-table tbody tr{cursor:default}.pc-table tbody tr:hover{background:#fafaf9}.pc-table tbody tr.pc-pinned{background:#dfab010a}.pc-title-cell{font-weight:500;color:var(--color-text-primary)}.pc-filename{font-family:SF Mono,Menlo,monospace;font-size:12px;color:var(--color-text-secondary, #787774);word-break:break-all}.pc-notes{margin-top:3px;font-size:11px;color:var(--color-text-secondary, #787774)}.pc-meta{margin-top:2px;font-size:11px;color:#a8a29e}.pc-period{font-size:12px;color:var(--color-text-secondary, #787774)}.pc-fy{display:inline-block;margin-top:2px;padding:1px 6px;background:#f0efed;border-radius:8px;font-size:10px;font-weight:600;color:#555}.pc-muted{color:#cbc9c5;font-size:12px}.pc-actions{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.pc-action-btn{padding:4px 10px;font-size:11px;font-weight:500;border:1px solid var(--color-border, #e3e2e0);background:var(--color-bg-primary, #fff);color:var(--color-text-primary);border-radius:4px;cursor:pointer;transition:all .1s;display:inline-flex;align-items:center;gap:3px}.pc-action-btn:hover{background:#fafaf9;border-color:var(--color-primary, #89b929);color:var(--color-primary, #89b929)}.pc-action-btn:disabled{opacity:.4;cursor:not-allowed}.pc-action-danger:hover{border-color:#e03e3e;color:#e03e3e}.pc-icon-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.pc-icon-btn:hover{background:#f0efed}.pc-hint{font-size:11px;color:var(--color-text-secondary, #787774);margin-top:2px}.pc-tip-banner{display:flex;align-items:stretch;gap:16px;background:linear-gradient(135deg,#fff8e6,#fef3d4);border:1px solid #f5d570;border-left:4px solid #dfab01;border-radius:8px;padding:14px 16px;margin-bottom:18px}.pc-tip-icon{color:#dfab01;flex-shrink:0;display:flex;align-items:flex-start;padding-top:1px}.pc-tip-body{flex:1;min-width:0}.pc-tip-title{font-size:13px;font-weight:700;color:#6b5300;margin-bottom:5px}.pc-tip-title b{color:#c97800}.pc-tip-sub{font-size:11.5px;color:#7a6300;line-height:1.65}.pc-tip-sub b{color:#5a4800}.pc-tip-stats{display:flex;gap:8px;align-items:center;flex-shrink:0}.pc-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:56px;padding:6px 10px;border-radius:6px;background:#ffffffb3;border:1px solid rgba(255,255,255,.9)}.pc-stat b{font-size:18px;font-weight:700;line-height:1}.pc-stat span{font-size:10px;margin-top:3px;color:var(--color-text-secondary)}.pc-stat-ok b{color:#2f9e44}.pc-stat-near b{color:#d97706}.pc-stat-expired b{color:#c92a2a}.pc-stat-unknown b{color:#868e96}.pc-chip-warn{border-color:#f5c87a;background:#fff8e6;color:#6b5300}.pc-chip-warn:hover{background:#fef3d4}.pc-chip-warn.active{background:#dfab01;border-color:#dfab01;color:#fff}.pc-expiry-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;font-family:SF Mono,Menlo,monospace;white-space:nowrap}.pc-exp-ok{background:#2f9e441f;color:#2f9e44}.pc-exp-near{background:#d9770624;color:#d97706}.pc-exp-expired{background:#c92a2a1f;color:#c92a2a}.pc-exp-unknown{background:#868e9624;color:#495057}.pc-row-expired{background:#fee2e259}.pc-row-expired:hover{background:#fee2e28c!important}.pc-row-near{background:#fff7e080}.pc-row-near:hover{background:#fff7e0b3!important}.pc-row-unknown td:nth-child(3){position:relative}.pc-row-unknown td:nth-child(3):before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:2px;background:#adb5bd}.pc-issued-date{font-size:12px;font-weight:500;color:var(--color-text-primary)}.pc-days-ago{font-size:10px;color:var(--color-text-secondary, #787774);margin-top:2px}.pc-required{color:#c92a2a;margin-left:4px}.pc-label-hint{font-size:10px;color:var(--color-text-secondary, #787774);font-weight:400;margin-left:8px}.pc-date-row{display:flex;gap:6px;align-items:center}.pc-date-row input[type=date]{flex:1}.pc-mini-btn{padding:4px 10px;font-size:11px;border:1px solid var(--color-border);background:var(--color-bg-primary, #fff);border-radius:4px;cursor:pointer;white-space:nowrap}.pc-mini-btn:hover{background:#fafaf9;border-color:var(--color-primary)}.pc-issued-feedback{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:500}.pc-action-warn{background:#fff8e6;border-color:#f5c87a;color:#b85700;font-weight:600}.pc-action-warn:hover{background:#fef3d4;border-color:#dfab01;color:#b85700}.msp-page{background:#e5e5e5;min-height:100vh;padding:16px 0}.msp-page-roster,.msp-page-leave{background:#e5e5e5}.msp-loading{padding:40px;text-align:center;font-size:14px;color:#787774}.msp-toolbar{max-width:277mm;margin:0 auto 12px;display:flex;gap:8px;justify-content:flex-end;padding:0 12px}.msp-toolbar button,.msp-toolbar select{padding:6px 12px;background:#fff;border:1px solid #d3d2cf;border-radius:4px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.msp-toolbar button:hover{background:#f7f6f3;border-color:#89b929}.msp-doc{background:#fff;max-width:277mm;margin:0 auto;padding:14mm 12mm;box-shadow:0 2px 8px #00000014;min-height:200mm;color:#000;font-family:Noto Sans KR,-apple-system,sans-serif;font-size:11px}.msp-page-roster .msp-doc,.msp-page-leave .msp-doc{max-width:277mm}.msp-header{text-align:center;margin-bottom:14px}.msp-doc-title{font-size:22px;font-weight:700;letter-spacing:4px;margin:0 0 4px}.msp-subtitle{font-size:12px;color:#555}.msp-info-table{width:100%;border-collapse:collapse;margin-bottom:12px}.msp-info-table th,.msp-info-table td{border:1px solid #000;padding:4px 8px;font-size:10.5px;vertical-align:middle}.msp-info-table th{background:#f5f5f0;font-weight:600;width:70px;white-space:nowrap}.msp-info-table td{min-width:60px}.msp-att-table{width:100%;border-collapse:collapse;margin-bottom:12px}.msp-att-table th,.msp-att-table td{border:1px solid #000;padding:2px 4px;font-size:10px;text-align:center;height:18px}.msp-att-table thead th{background:#f5f5f0;font-weight:600}.msp-att-table .msp-day{font-weight:600;width:22px}.msp-att-table tbody tr.msp-weekend{background:#fafafa}.msp-att-table tbody tr.msp-has-event{background:#fffbe6}.msp-att-table .msp-sun{color:#dc2626}.msp-att-table .msp-sat{color:#2563eb}.msp-att-table .msp-events{text-align:left;padding-left:6px;font-size:10px}.msp-att-table .msp-sign-col{width:56px}.msp-att-table tfoot td{background:#f5f5f0;font-weight:600;height:22px}.msp-summary-label{text-align:right;padding-right:8px!important}.msp-summary-value{text-align:center}.msp-roster-table{width:100%;border-collapse:collapse;margin-bottom:16px}.msp-roster-table th,.msp-roster-table td{border:1px solid #000;padding:5px 6px;font-size:10.5px;text-align:center}.msp-roster-table thead th{background:#f5f5f0;font-weight:600}.msp-roster-table .msp-num{width:28px;font-weight:600}.msp-roster-table .msp-empty-cell{padding:20px;color:#888}.msp-section-title{font-size:13px;font-weight:700;margin:14px 0 6px;padding-left:4px;border-left:3px solid #000}.msp-event-table{width:100%;border-collapse:collapse;margin-bottom:8px}.msp-event-table th,.msp-event-table td{border:1px solid #000;padding:4px 6px;font-size:10.5px;text-align:center}.msp-event-table thead th{background:#f5f5f0;font-weight:600}.msp-event-table .msp-num{width:28px}.msp-event-table .msp-cell-text{text-align:left;padding-left:8px}.msp-event-table .msp-empty-cell{padding:16px;color:#888}.msp-sign-table{width:60%;margin:18px 0 8px auto;border-collapse:collapse}.msp-sign-table th{border:1px solid #000;padding:5px 8px;font-size:10.5px;font-weight:600;background:#f5f5f0}.msp-sign-table .msp-sign-cell{border:1px solid #000;height:50px}.msp-footer{display:flex;justify-content:space-between;margin-top:12px;font-size:9.5px;color:#555;padding-top:8px;border-top:1px solid #d3d2cf}@media print{@page{size:A4 landscape;margin:12mm 12mm 16mm;@bottom-right{content:"쪽 " counter(page) " / " counter(pages);font-size:8.5pt;color:#555;padding-top:3mm;font-family:Noto Sans KR,sans-serif}@bottom-left{content:string(msp-doc-title);font-size:8.5pt;color:#555;padding-top:3mm;font-family:Noto Sans KR,sans-serif}@bottom-center{content:string(msp-doc-subject);font-size:8.5pt;color:#555;padding-top:3mm;font-family:Noto Sans KR,sans-serif}}@page :first{@bottom-left{content:""}}.msp-doc-title{string-set:msp-doc-title content()}.msp-subtitle{string-set:msp-doc-subject content()}html,body{background:#fff!important;margin:0;padding:0}.msp-page,.msp-page-roster,.msp-page-leave{background:#fff;padding:0;min-height:0}.msp-toolbar{display:none!important}.msp-doc{box-shadow:none;padding:0;max-width:100%;margin:0;min-height:0;border:none}.msp-doc-title{font-size:18px}.msp-header{margin-bottom:10px}thead{display:table-header-group}tfoot{display:table-footer-group}tr{page-break-inside:avoid;break-inside:avoid}table{page-break-inside:auto;break-inside:auto}.msp-section-title{page-break-after:avoid;break-after:avoid}.msp-info-table{page-break-inside:avoid;break-inside:avoid}.msp-sign-table{page-break-inside:avoid;break-inside:avoid;margin-top:12px}.msp-att-table th,.msp-att-table td{height:15px;font-size:9.5px}.msp-att-table tbody tr.msp-weekend{background:#f7f7f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-att-table tbody tr.msp-has-event{background:#fff8d4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-info-table th,.msp-event-table thead th,.msp-roster-table thead th,.msp-att-table thead th,.msp-att-table tfoot td,.msp-sign-table th{background:#efefe9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-sun{color:#c00!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-sat{color:#003a8c!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-footer{margin-top:10px;page-break-inside:avoid}}.msp-page-leave .msp-doc{max-width:200mm}.msp-page-record .msp-doc{max-width:277mm}.msp-record-table{width:100%;border-collapse:collapse;margin-bottom:12px}.msp-record-table th,.msp-record-table td{border:1px solid #000;padding:3px 5px;font-size:10px;text-align:center;height:18px}.msp-record-table thead th{background:#f5f5f0;font-weight:600;font-size:10px;line-height:1.2}.msp-record-table tbody td.msp-record-month{font-weight:600;text-align:center;background:#fafaf7}.msp-record-table tfoot td{background:#efefe9;font-weight:700;height:22px;font-size:10.5px}.msp-record-table tfoot td.msp-record-total{background:#e5e5dc}.msp-event-table .msp-event-reason{text-align:left;padding-left:6px;font-size:10px}.msp-event-table .msp-not-reported{color:#c00;font-weight:600}.msp-summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin:12px 0;border:1px solid #000}.msp-summary-box{padding:8px 6px;border-right:1px solid #000;text-align:center;background:#fafaf7}.msp-summary-box:last-child{border-right:none}.msp-summary-box .msp-summary-label{font-size:10px;color:#555;margin-bottom:4px}.msp-summary-box .msp-summary-num{font-size:16px;font-weight:700;color:#000}.msp-summary-box .msp-summary-sub{margin-top:3px;font-size:9px;color:#777}.msp-summary-box.msp-summary-warn{background:#fff5f0}.msp-summary-box.msp-summary-warn .msp-summary-num{color:#c00}@media print{.msp-page-record{background:#fff;padding:0}.msp-page-record .msp-doc{max-width:none;box-shadow:none;padding:8mm 10mm}.msp-record-table tbody tr,.msp-summary-grid{page-break-inside:avoid;break-inside:avoid}.msp-summary-box{background:#fafaf7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-summary-box.msp-summary-warn{background:#fff5f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-record-table tbody td.msp-record-month{background:#fafaf7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-record-table tfoot td{background:#efefe9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-record-table tfoot td.msp-record-total{background:#e5e5dc!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.msp-page-record{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--color-primary: #89b929;--color-primary-hover: #7aa824;--color-primary-light: rgba(137, 185, 41, .1);--color-primary-lighter: rgba(137, 185, 41, .15);--color-secondary: #2f80ed;--color-secondary-hover: #2563eb;--color-secondary-light: rgba(47, 128, 237, .1);--color-secondary-lighter: rgba(47, 128, 237, .15);--color-success: #89b929;--color-success-light: #e8f5e0;--color-error: #e03e3e;--color-error-hover: #c93131;--color-error-light: #fce8e8;--color-error-lighter: rgba(224, 62, 62, .1);--color-warning: #f5a623;--color-warning-light: rgba(245, 166, 35, .1);--color-info: #2f80ed;--color-info-light: #e8f0fc;--color-text-primary: #37352f;--color-text-secondary: #787774;--color-text-tertiary: #9b9a97;--color-text-muted: #b4b4b0;--color-bg-primary: #ffffff;--color-bg-secondary: #f7f6f3;--color-bg-tertiary: #fafaf9;--color-bg-hover: #f1f1ef;--color-bg-active: #ebebea;--color-border: #e3e2e0;--color-border-hover: #c4c4c0;--color-border-light: #f0f0f0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .2);--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--radius-2xl: 12px;--radius-full: 50%;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: 10px;--text-sm: 11px;--text-base: 12px;--text-md: 13px;--text-lg: 14px;--text-xl: 16px;--text-2xl: 18px;--text-3xl: 22px;--transition-fast: .1s ease;--transition-normal: .15s ease;--transition-slow: .2s ease}.layout.dark{--color-text-primary: #ffffffcf;--color-text-secondary: #9b9a97;--color-text-tertiary: #787774;--color-text-muted: #5f5f5f;--color-bg-primary: #191919;--color-bg-secondary: #202020;--color-bg-tertiary: #252525;--color-bg-hover: #2f2f2f;--color-bg-active: #333333;--color-border: #3f3f3f;--color-border-hover: #4f4f4f;--color-border-light: #333333;--color-primary-light: rgba(137, 185, 41, .2);--color-primary-lighter: rgba(137, 185, 41, .25);--color-secondary-light: rgba(47, 128, 237, .2);--color-secondary-lighter: rgba(47, 128, 237, .25);--color-error-light: rgba(224, 62, 62, .15);--color-error-lighter: rgba(224, 62, 62, .2);--color-success-light: rgba(137, 185, 41, .15);--color-info-light: rgba(47, 128, 237, .15)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{margin:0;padding:0;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text-primary);background-color:var(--color-bg-primary)}input,textarea,select,button{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:5px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary);border:2px solid transparent;background-clip:content-box}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-primary)}.loading-spinner{display:flex;align-items:center;justify-content:center}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::selection{background-color:var(--color-primary-light)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
