:root{
  --bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#7b8497;--line:#e8ebf2;
  --primary:#5167f6;--primary2:#7358ed;--soft:#eef1ff;--danger:#e85c69;--warn:#e39a31;--success:#2ea66f;
  --shadow:0 18px 55px rgba(35,43,75,.10);--radius:18px
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}.hidden{display:none!important}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:80px;padding:8vw;background:radial-gradient(circle at 15% 20%,#e8ebff,transparent 35%),radial-gradient(circle at 90% 90%,#efe8ff,transparent 35%),#f8f9fd}
.auth-brand{display:flex;gap:24px;align-items:center}.brand-mark{width:82px;height:82px;border-radius:24px;background:linear-gradient(135deg,var(--primary),var(--primary2));display:grid;place-items:center;color:#fff;font-size:38px;font-weight:800;box-shadow:0 18px 35px rgba(81,103,246,.25)}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:20px}.auth-brand h1{font-size:40px;margin:0 0 10px}.auth-brand p{font-size:18px;color:var(--muted);margin:0}.auth-card{background:#fff;padding:30px;border-radius:26px;box-shadow:var(--shadow);max-width:440px;width:100%}.auth-tabs{display:flex;background:#f4f5f9;border-radius:13px;padding:5px;margin-bottom:22px}.tab{flex:1;border:0;background:transparent;padding:10px;border-radius:10px;color:var(--muted);cursor:pointer}.tab.active{background:#fff;color:var(--text);font-weight:700;box-shadow:0 4px 14px rgba(20,30,60,.08)}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form label{font-size:13px;color:#596174;display:flex;flex-direction:column;gap:8px}.auth-form input{border:1px solid var(--line);border-radius:12px;padding:13px 14px;outline:none}.auth-form input:focus,.field input:focus,.field textarea:focus,.field select:focus{border-color:#8b98ff;box-shadow:0 0 0 3px #eff1ff}.demo-hint{font-size:12px;color:#9299a8;line-height:1.6}
.btn{border:0;border-radius:11px;padding:10px 15px;cursor:pointer;font-weight:650}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;box-shadow:0 8px 18px rgba(81,103,246,.18)}.btn.ghost{background:#fff;border:1px solid var(--line);color:#4e5667}.btn.soft{background:var(--soft);color:var(--primary)}.btn.danger{background:#fff0f1;color:var(--danger)}.btn.success{background:#eaf8f1;color:var(--success)}.btn.warn{background:#fff4e5;color:#b57618}.btn.wide{width:100%;padding:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.link-btn{border:0;background:transparent;color:#8c94a3;cursor:pointer;padding:6px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#151a2d;color:#dfe4f3;padding:22px 16px;display:flex;flex-direction:column}.logo-row{display:flex;align-items:center;gap:12px;padding:4px 8px 24px}.logo-row strong,.logo-row span{display:block}.logo-row span{font-size:12px;color:#828ca8;margin-top:2px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav button{border:0;background:transparent;color:#9da6be;text-align:left;padding:12px 14px;border-radius:11px;cursor:pointer;display:flex;gap:12px;align-items:center;position:relative}.sidebar nav button i{font-style:normal;width:18px}.sidebar nav button:hover,.sidebar nav button.active{background:#232a45;color:#fff}.nav-badge{margin-left:auto;min-width:20px;padding:2px 6px;border-radius:10px;background:#ff6677;color:white;font-size:11px;text-align:center}.sidebar-bottom{margin-top:auto;border-top:1px solid #2b334d;padding-top:16px}.side-user{font-size:13px;color:#c7cede;margin-bottom:6px}.side-user small{display:block;color:#7f89a5;margin-top:3px}
.main{min-width:0}.topbar{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:3}.topbar h2{margin:0;font-size:22px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;gap:10px}.content{padding:28px 34px 60px;max-width:1500px}
.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:15px;margin-bottom:22px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px}.stat label{font-size:12px;color:var(--muted)}.stat strong{display:block;font-size:28px;margin-top:8px}.stat small{font-size:12px;color:#a0a6b4}.section{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-head h3{margin:0;font-size:16px}.section-head span{color:var(--muted);font-size:12px}
.task-list{display:grid;gap:12px}.task-card{border:1px solid var(--line);border-radius:15px;padding:16px;background:#fff;transition:.15s;cursor:pointer}.task-card:hover{box-shadow:0 8px 24px rgba(35,43,75,.07);transform:translateY(-1px)}.task-top{display:flex;gap:10px;align-items:flex-start}.task-title{font-weight:750;flex:1}.task-desc{color:#7b8497;font-size:13px;line-height:1.65;margin:8px 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meta-row{display:flex;flex-wrap:wrap;gap:8px 14px;color:#7c8495;font-size:12px}.pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#f2f4f8;font-size:11px;font-weight:700;color:#647084}.pill.public{background:#ebf8f1;color:#278c61}.pill.private{background:#f5edff;color:#7950bc}.pill.group{background:#edf3ff;color:#4c6eb5}.pill.urgent{background:#fff0f1;color:#d55360}.pill.high{background:#fff4e4;color:#bd7b20}.pill.completed{background:#eaf8f1;color:#278c61}.pill.overdue{background:#fff0f1;color:#d55360}.task-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.empty{padding:52px 20px;text-align:center;color:#9299aa}.empty b{display:block;color:#5f687a;margin-bottom:6px}.filterbar{display:flex;gap:10px;margin-bottom:15px}.filterbar input,.filterbar select{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.filterbar input{min-width:280px}
.modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:rgba(16,20,35,.5);backdrop-filter:blur(2px)}.modal-card{position:relative;background:#fff;width:min(720px,92vw);max-height:88vh;overflow:auto;border-radius:22px;box-shadow:0 30px 80px rgba(10,15,30,.25)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.modal-head h3{margin:0}.modal-head button{border:0;background:#f2f3f7;border-radius:9px;width:32px;height:32px;cursor:pointer;font-size:20px}.modal-body{padding:20px 22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#606a7d;font-weight:650}.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:11px;padding:11px 12px;outline:none;background:#fff}.field textarea{min-height:110px;resize:vertical}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;padding-top:5px}
.detail-head{padding:20px 22px 8px}.detail-head h2{margin:0 0 9px;font-size:23px}.detail-info{display:flex;gap:8px;flex-wrap:wrap}.detail-body{display:grid;grid-template-columns:1.5fr .8fr;gap:18px;padding:14px 22px 22px}.detail-panel{border:1px solid var(--line);border-radius:15px;padding:16px}.detail-panel h4{margin:0 0 12px}.description{white-space:pre-wrap;line-height:1.75;color:#525b6e;font-size:14px}.kv{display:grid;grid-template-columns:72px 1fr;gap:10px 12px;font-size:13px}.kv span:nth-child(odd){color:#9299a8}.timeline{display:grid;gap:11px}.event{display:grid;grid-template-columns:9px 1fr;gap:10px}.event-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);margin-top:7px}.event-card{padding-bottom:11px;border-bottom:1px dashed var(--line)}.event-card b{font-size:13px}.event-card p{margin:5px 0;color:#626b7d;font-size:13px;line-height:1.6}.event-card small{color:#a0a6b2}.comment-box{display:flex;gap:8px;margin-top:14px}.comment-box input{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px}.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
.message-list{display:grid;gap:10px}.message{padding:14px 16px;border:1px solid var(--line);border-radius:13px;display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:start}.message.unread{background:#f7f8ff}.unread-dot{width:8px;height:8px;background:var(--primary);border-radius:50%;margin-top:6px}.message h4{margin:0 0 5px;font-size:14px}.message p{margin:0;color:#7a8395;font-size:13px}.message time{color:#a1a7b3;font-size:11px}.org-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:11px 8px}.table th{color:#8b93a4;font-size:11px;text-transform:uppercase}.table td strong{font-size:13px}.role{font-size:11px;background:#f0f2f7;padding:4px 7px;border-radius:7px}.muted{color:var(--muted)}
#toast{position:fixed;right:24px;top:22px;z-index:99;display:grid;gap:8px}.toast{background:#20263b;color:#fff;padding:11px 15px;border-radius:11px;box-shadow:var(--shadow);font-size:13px;animation:toastin .2s ease}.toast.error{background:#b8404c}@keyframes toastin{from{transform:translateY(-8px);opacity:0}}
@media(max-width:1050px){.stat-grid{grid-template-columns:repeat(2,1fr)}.org-grid,.detail-body{grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr;gap:30px}.auth-card{max-width:none}.sidebar{width:200px}.app-shell{grid-template-columns:200px 1fr}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:relative;width:100%;height:auto}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-bottom{display:none}.topbar{position:relative;height:auto;padding:20px;gap:12px;align-items:flex-start}.content{padding:18px}.stat-grid{grid-template-columns:1fr 1fr}.auth-shell{padding:24px}.auth-brand h1{font-size:28px}.brand-mark{width:60px;height:60px}.form-grid{grid-template-columns:1fr}.field.full,.form-actions{grid-column:auto}.top-actions{flex-direction:column}.filterbar{flex-direction:column}.filterbar input{min-width:0;width:100%}}
