:root{--bg-main: #f3f9ff;--panel-bg: rgba(255, 255, 255, .9);--card-bg: rgba(246, 251, 255, .96);--line-soft: rgba(106, 169, 255, .18);--line-strong: rgba(72, 145, 244, .32);--text-main: #12314f;--text-sub: #527395;--accent-main: #4d9dff;--accent-soft: #cfeaff;--shadow-main: 0 18px 40px rgba(104, 162, 224, .16);--radius-large: 28px;--radius-medium: 20px;--radius-small: 14px;--page-width: 1480px;--font-main: "Microsoft YaHei", "PingFang SC", "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;color:var(--text-main);font-family:var(--font-main);background:radial-gradient(circle at top left,rgba(137,208,255,.42),transparent 26%),radial-gradient(circle at right top,rgba(190,232,255,.45),transparent 34%),linear-gradient(180deg,#fafdff,#edf6ff 56%,#f4f9ff)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{min-height:100vh;padding:82px 24px 24px}.top-bar{position:fixed;top:14px;right:20px;left:20px;z-index:1400;display:flex;justify-content:flex-end;pointer-events:none}.top-nav{display:flex;flex-wrap:wrap;gap:10px;pointer-events:auto}.nav-link,.primary-button,.ghost-button,.tab-button,.panel-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:var(--radius-small);border:1px solid rgba(122,184,255,.2);transition:transform .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease,color .25s ease}.nav-link{color:var(--text-sub);background:#ffffff57;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-link:hover,.primary-button:hover,.ghost-button:hover,.tab-button:hover,.panel-link:hover{transform:translateY(-2px)}.primary-button{color:#fff;background:linear-gradient(135deg,var(--accent-main),#83c9ff);border-color:transparent;box-shadow:0 14px 26px #4d9dff38}.ghost-button,.tab-button,.panel-link{color:var(--text-sub);background:#f0f8fff5}.tab-button.active{color:#fff;background:linear-gradient(135deg,var(--accent-main),#7bc8ff);border-color:transparent}.ghost-button.active{color:#fff;background:linear-gradient(135deg,var(--accent-main),#7bc8ff);border-color:transparent;box-shadow:0 14px 26px #4d9dff38}.danger-button{color:#b3404d;background:#fff4f6f5;border-color:#eb6e7e3d}.danger-button:hover{color:#fff;background:linear-gradient(135deg,#f0647a,#ff9fb0);border-color:transparent}.panel-button{width:100%;cursor:pointer}.account-menu{position:relative;z-index:1500}.account-button{cursor:pointer}.account-panel{position:absolute;top:calc(100% + 10px);right:0;min-width:170px;padding:10px;display:grid;gap:8px;background:#fffffffa;border:1px solid rgba(106,169,255,.16);border-radius:16px;box-shadow:var(--shadow-main)}.page-shell{width:min(var(--page-width),100%);margin:0 auto;display:grid;gap:18px}.panel{padding:24px;background:var(--panel-bg);border:1px solid var(--line-soft);border-radius:var(--radius-large);box-shadow:var(--shadow-main);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.narrow-panel{max-width:540px;margin:0 auto;width:100%}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.section-header h1,.section-header h2,.card h3,.todo-item h4{margin:0}.grid{display:grid;gap:16px}.cards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.todo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{display:grid;gap:14px}.form-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-box{display:grid;gap:8px}.field-box span{font-size:14px;font-weight:700}.text-input{min-height:48px;padding:0 14px;color:var(--text-main);background:#fff;border:1px solid rgba(106,169,255,.2);border-radius:var(--radius-small);outline:none}.text-input:focus{border-color:#4d9dff80;box-shadow:0 0 0 4px #4d9dff1f}.full-button{width:100%}.inline-text{margin:14px 0 0;color:var(--text-sub);text-align:center}.inline-text a{color:var(--accent-main);font-weight:700}.message-box{margin:0 0 16px;padding:12px 14px;border-radius:var(--radius-small);border:1px solid transparent}.message-box.is-success{color:#136d4f;background:#edfdf5;border-color:#53c7ab47}.message-box.is-error{color:#a43e48;background:#fff3f5;border-color:#eb6e7e3d}.card{padding:20px;background:var(--card-bg);border:1px solid rgba(106,169,255,.14);border-radius:var(--radius-medium)}.portal-card,.manage-card,.todo-card,.todo-item{display:grid;gap:12px}.portal-card{min-height:180px;justify-items:center;text-align:center}.card-icon{width:52px;height:52px;display:grid;place-items:center;font-size:22px;border-radius:16px;background:linear-gradient(145deg,#d6effff2,#c1e5fff2);color:var(--accent-main)}.empty-card,.empty-text{color:var(--text-sub)}.tab-row,.button-row,.meta-row{display:flex;flex-wrap:wrap;gap:10px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.members-box,.todo-list{display:grid;gap:10px}.member-permission-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);gap:16px;align-items:start}.member-card{cursor:pointer}.member-card.active{border-color:#4d9dff8f;box-shadow:0 16px 30px #4d9dff2e;background:#e8f6fffa}.member-detail-card{display:grid;gap:16px;min-height:260px}.member-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.member-page-grid .checkbox-item{justify-content:flex-start}.member-page-grid .checkbox-item span{flex:1}.member-page-grid .checkbox-item em{color:var(--text-sub);font-size:12px;font-style:normal}.helper-text{margin:0;color:var(--text-sub);font-size:13px;line-height:1.6}.checkbox-item{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border-radius:12px;background:#f3f9fff5;border:1px solid rgba(132,188,255,.14)}.pill{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;color:var(--accent-main);background:#dff3fff2;border:1px solid rgba(86,167,255,.14);font-size:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1600;display:grid;place-items:center;padding:24px;background:#12314f57;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:modalFadeIn .25s ease}.modal-card{width:min(520px,100%);padding:22px;display:grid;gap:18px;background:#fffffffa;border:1px solid rgba(106,169,255,.22);border-radius:var(--radius-medium);box-shadow:0 28px 70px #4176b047;animation:modalPopIn .25s ease}.reset-password-card{max-height:calc(100vh - 80px)}.modal-actions{justify-content:flex-end}button:disabled{cursor:not-allowed;opacity:.68;transform:none}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPopIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 1180px){.cards-grid,.todo-grid,.member-permission-layout,.member-page-grid{grid-template-columns:1fr}}@media (max-width: 860px){.app-shell{padding:76px 12px 16px}.top-bar{left:12px;right:12px}.top-nav{justify-content:flex-end}.form-grid-two{grid-template-columns:1fr}}.site-footer{text-align:center;padding:20px 0 8px;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;font-size:12px;color:var(--text-sub);opacity:.72;pointer-events:none}.site-footer a{color:inherit;text-decoration:none;pointer-events:auto;transition:opacity .2s}.site-footer a:hover{opacity:1;color:var(--accent-main)}
