:root{color:#24322d;background:#f7f4ea;font-family:Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{min-height:38px;border:1px solid #225b4c;background:#225b4c;color:#fff;padding:0 15px;cursor:pointer;border-radius:4px}button:disabled{cursor:not-allowed;opacity:.55}button.secondary{background:#fff;color:#225b4c}button.danger{background:#b8433e;border-color:#b8433e}input,select{width:100%;min-height:38px;border:1px solid #bfc9c0;border-radius:4px;background:#fff;padding:7px 9px;color:#24322d}label{display:grid;gap:6px;color:#496057;font-size:13px}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:24px;font-weight:650}h2{margin-bottom:6px;font-size:17px}.app-shell{max-width:1440px;margin:0 auto}.login-panel{width:min(420px,100%);margin:12vh auto;padding:30px;border:1px solid #d8ddd2;background:#fffdf7;border-radius:6px}.eyebrow{margin-bottom:5px;color:#c15d52;font-size:13px;font-weight:600}.login-copy,.section-heading p{color:#63736a;line-height:1.5}.login-form{display:grid;gap:16px;margin-top:24px}.admin-layout{display:flex;min-height:100vh}.sidebar{width:200px;min-width:200px;background:#fffdf7;border-right:1px solid #d8ddd2;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{padding:26px 20px 18px;border-bottom:1px solid #edf0e9}.sidebar-eyebrow{margin:0 0 4px;color:#c15d52;font-size:12px;font-weight:600}.sidebar-title{margin:0;font-size:17px;font-weight:700;color:#24322d}.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:0 14px;background:transparent;border:none;border-radius:6px;color:#496057;font-size:14px;cursor:pointer;text-align:left;transition:background .15s,color .15s}.nav-item:hover{background:#f3f6ef;color:#225b4c}.nav-item.active{background:#225b4c;color:#fff;font-weight:600}.nav-icon{font-size:16px;width:22px;text-align:center;flex-shrink:0}.sidebar-footer{padding:16px 20px;border-top:1px solid #edf0e9;display:flex;flex-direction:column;gap:10px}.sidebar-user{font-size:13px;color:#496057;font-weight:600}.logout-btn{width:100%;min-height:34px;padding:0 12px;background:#fff;border:1px solid #bfc9c0;border-radius:4px;color:#63736a;font-size:13px;cursor:pointer}.logout-btn:hover{border-color:#b8433e;color:#b8433e}.main-area{flex:1;min-width:0;padding:24px 30px 48px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:18px;border-bottom:1px solid #d8ddd2}.topbar h1{font-size:22px}button.sm{min-height:32px;padding:0 14px;font-size:13px}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,160px));gap:16px;margin:24px 0}.summary div{padding:15px;border-left:3px solid #c15d52;background:#fffdf7}.summary span{display:block;color:#63736a;font-size:13px}.summary strong{font-size:25px;line-height:1.35}.notice{margin:16px 0;padding:11px 13px;border-radius:4px}.notice.success{background:#e5f1e8;color:#245634}.notice.error{background:#f9e3e1;color:#933632}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}.side-panel,.content-panel{border:1px solid #d8ddd2;background:#fffdf7;border-radius:6px}.side-panel{padding:20px}.content-panel{min-width:0;padding:22px}.compact-form{display:grid;gap:12px}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.section-heading p{margin-bottom:0;font-size:14px}.upload-form{display:grid;grid-template-columns:1fr 1.4fr 90px 100px 1.3fr auto;gap:12px;align-items:end;margin:24px 0;padding:16px;background:#f3f6ef}.file-input input{padding:6px}.table-wrap{overflow-x:auto}table{width:100%;min-width:700px;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid #e1e5dd;text-align:left;vertical-align:middle}th{color:#63736a;font-size:12px;font-weight:600}td a{color:#225b4c;text-decoration:none}.row-actions{display:flex;gap:8px;white-space:nowrap}.row-actions button{min-height:32px;padding:0 10px;font-size:13px}.status{display:inline-block;min-width:48px;padding:4px 7px;border-radius:3px;text-align:center;font-size:12px}.status.published{background:#dceee1;color:#225b4c}.status.draft{background:#f4e9cd;color:#8b6219}.status.active{background:#dceee1;color:#225b4c}.empty{color:#74827a;text-align:center}.category-tree{display:grid;gap:2px;margin:0 0 20px;padding:0;list-style:none}.category-tree li{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:7px 0;border-bottom:1px solid #edf0e9;font-size:13px}.category-tree li.dimmed{opacity:.5}.cat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-menu-wrapper{position:relative;flex-shrink:0}.cat-menu{position:absolute;top:100%;right:0;min-width:110px;margin:4px 0 0;padding:4px 0;background:#fff;border:1px solid #d8ddd2;border-radius:4px;box-shadow:0 4px 12px #00000014;z-index:50;list-style:none}.cat-menu li button{display:block;width:100%;min-height:30px;padding:6px 14px;background:none;border:0;border-radius:0;color:#24322d;font-size:13px;text-align:left;cursor:pointer}.cat-menu li button:hover{background:#f3f6ef;color:#225b4c}.cat-menu li button.danger{color:#b8433e}.cat-menu li button.danger:hover{background:#f9e3e1;color:#933632}.cat-menu li button:disabled{cursor:not-allowed;opacity:.55;background:none;color:#24322d}.cat-menu li button.danger:disabled{color:#b8433e}button.mini{min-height:26px;padding:0 7px;font-size:11px;border-radius:3px}.modal-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fffdf7;border:1px solid #d8ddd2;border-radius:6px;padding:24px;width:min(420px,90vw)}.modal h2{margin-bottom:16px}.modal .compact-form{gap:14px}.modal-actions{display:flex;gap:10px;margin-top:10px}label.checkbox{display:flex;align-items:center;gap:8px}label.checkbox input{width:auto;min-height:auto}.users-panel{margin-top:0}.users-table{min-width:680px}.col-avatar{width:52px;text-align:center}.col-nick{min-width:100px}.col-id{width:180px}.col-status{width:80px}.col-time{width:150px}.user-avatar-img{width:36px;height:36px;border-radius:50%;object-fit:cover;display:block;margin:0 auto}.user-avatar-placeholder{display:block;width:36px;height:36px;border-radius:50%;background:#e8f0f2;margin:0 auto}.user-nickname{font-weight:600;font-size:14px}.user-id{font-size:11px;color:#74827a;background:#f3f6ef;padding:2px 6px;border-radius:3px;word-break:break-all}@media(max-width:1024px){.sidebar{width:180px;min-width:180px}.main-area{padding:20px}}@media(max-width:900px){.admin-layout{flex-direction:column}.sidebar{width:100%;min-width:0;height:auto;position:static;flex-direction:row;align-items:center;padding:12px 20px;gap:12px;border-right:none;border-bottom:1px solid #d8ddd2}.sidebar-brand{padding:0;border-bottom:none}.sidebar-title{font-size:15px}.sidebar-eyebrow{display:none}.sidebar-nav{flex-direction:row;padding:0;flex:0}.nav-item{width:auto;min-height:34px;padding:0 12px;font-size:13px}.sidebar-footer{padding:0;border-top:none;flex-direction:row;align-items:center;margin-left:auto}.logout-btn{width:auto}.main-area{padding:16px}.workspace{grid-template-columns:1fr}.upload-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.topbar,.section-heading{align-items:flex-start;flex-direction:column}.summary{grid-template-columns:repeat(3,1fr);gap:8px}.summary div{padding:10px}.upload-form{grid-template-columns:1fr}.sidebar,.sidebar-nav{flex-wrap:wrap}.sidebar-footer{width:100%;margin-top:8px}}
