:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#181818;background:#fafafa;font-size:14px;line-height:1.6;font-synthesis:none;--ink:#0B0B0B;--deep:#181818;--dark:#2A2A2A;--text:#303030;--muted:#5F5F5F;--quiet:#9A9A9A;--line:#D9D9D9;--soft:#F1F1F1;--paper:#FFFFFF;--radius:12px}*{box-sizing:border-box}body{margin:0;background:#fafafa;color:var(--text)}button,input,select,textarea{font:inherit}button,a{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}h1,h2,h3,p{margin:0}h1{font-size:25px;line-height:1.2;font-weight:650;letter-spacing:-.6px}h2{font-size:18px;line-height:1.35;font-weight:650}h3{font-size:15px;margin-top:24px}p{line-height:1.7}.eyebrow,.form-kicker{display:block;font-size:10px;font-weight:700;letter-spacing:1.6px;color:var(--quiet);text-transform:uppercase}.muted,small{color:var(--muted)}.full{width:100%}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:10px 15px;min-height:42px;font-size:13px;font-weight:650;transition:background .18s ease,border-color .18s ease,color .18s ease}.button-dark{color:#fff;background:var(--ink)}.button-dark:hover{background:#2a2a2a}.button-light{color:var(--text);background:#fff;border-color:var(--line)}.button-light:hover,.icon-button:hover,.back-button:hover{background:var(--soft)}.icon-button{border:1px solid transparent;background:transparent;min-width:38px;height:38px;border-radius:8px;display:grid;place-items:center;color:inherit}.error-box{margin:12px 0;padding:11px 13px;border:1px solid #9A9A9A;border-radius:8px;color:var(--text);background:var(--soft)}.login-page{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#fff}.login-story{background:var(--ink);color:#fff;padding:72px clamp(32px,9vw,140px);display:flex;flex-direction:column;justify-content:center}.logo-mark{width:56px;height:56px;border:1px solid #5F5F5F;border-radius:14px;display:grid;place-items:center;color:#fff;margin-bottom:24px}.login-story h1{font-size:clamp(42px,5vw,72px);margin:28px 0 20px;letter-spacing:-3px}.login-story h1 em{font-style:normal;color:#fff}.login-story p{color:#d9d9d9;max-width:350px}.login-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:#fafafa}.login-card{width:min(390px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px}.login-card h2{margin-top:10px}.login-card>.muted{margin:8px 0 26px}.login-card label,.modal label{display:block;font-size:13px;font-weight:650;margin:16px 0}.login-card input,.login-card select,.modal input,.modal select,.modal textarea,.filter-bar input,.filter-bar select,.task-card input{width:100%;margin-top:7px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:10px 11px;min-height:42px;outline:none;color:var(--text)}.login-card input:focus,.login-card select:focus,.modal input:focus,.modal select:focus,.modal textarea:focus,.filter-bar input:focus,.filter-bar select:focus,.task-card input:focus{border-color:var(--dark);box-shadow:0 0 0 3px #d9d9d9}.login-card .button{margin-top:10px}.login-foot{margin-top:22px;color:var(--quiet)}.login-switch{margin-top:15px}.app-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--ink);color:#d9d9d9;padding:25px 14px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{text-align:center;padding:0 10px 34px}.brand-symbol{width:44px;height:44px;display:grid;place-items:center;border:1px solid #5F5F5F;border-radius:12px;margin:0 auto 10px;color:#fff}.brand strong{display:block;color:#fff;font-size:19px;letter-spacing:4px}.brand small{font-size:8px;letter-spacing:1.7px;color:#9a9a9a}.nav-label{font-size:10px;letter-spacing:1px;color:#9a9a9a;margin:0 13px 10px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav button{color:#9a9a9a;background:transparent;border:0;border-radius:8px;min-height:45px;display:flex;align-items:center;gap:11px;padding:11px 13px;text-align:left;transition:color .18s ease,background .18s ease}.sidebar nav button:hover{background:#2a2a2a;color:#fff}.sidebar nav button.active{background:#fff;color:var(--ink)}.sidebar nav b{margin-left:auto;font-size:11px;background:#5f5f5f;color:#fff;border-radius:10px;padding:1px 6px}.sidebar-bottom{margin-top:auto}.user-block{display:flex;align-items:center;gap:9px;padding:14px 6px 0;border-top:1px solid #2A2A2A}.avatar{width:34px;height:34px;border-radius:50%;background:#5f5f5f;color:#fff;display:grid;place-items:center;flex:none}.small-avatar{width:28px;height:28px;font-size:12px}.user-block strong{display:block;font-size:12px;color:#fff;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-block small{font-size:10px;color:#9a9a9a}.user-block .icon-button{margin-left:auto;color:#9a9a9a}.main-column{min-width:0}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{padding:0 10px;color:var(--line)}.topbar-notify{position:relative;border:1px solid transparent;background:transparent;border-radius:8px;width:38px;height:38px;display:grid;place-items:center;color:var(--muted)}.topbar-notify:hover{background:var(--soft);color:var(--ink)}.topbar-notify b{position:absolute;right:1px;top:0;min-width:15px;height:15px;padding:0 3px;border-radius:9px;background:var(--ink);color:#fff;font-size:9px}.page{padding:30px;max-width:1320px;margin:auto}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.page-title h1{margin:0}.page-actions{display:flex;align-items:center;gap:9px}.compact-header{display:flex;align-items:center;gap:20px;margin-bottom:24px;min-height:40px}.compact-title{display:flex;align-items:baseline;gap:12px}.compact-title h1{margin:0}.compact-title span{font-size:12px;color:var(--muted)}.back-button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:7px 0;color:var(--muted);font-weight:650}.compact-header .back-button{order:-1}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px 20px;min-height:120px}.stat-card span{color:var(--muted);font-size:12px}.stat-card strong{display:block;font-size:32px;letter-spacing:-1px;margin-top:12px;color:var(--ink)}.stat-card small{font-size:11px}.two-col{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:15px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:21px;min-width:0}.metric-panel{display:flex;flex-direction:column;justify-content:center;gap:14px;background:var(--soft)}.metric-panel p{color:var(--muted);max-width:320px}.metric-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid #9A9A9A;border-radius:8px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.section-head h2{font-size:16px}.record{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--soft);padding:14px 0}.record:first-child{border-top:0;padding-top:0}.record strong,.record small{display:block}.record small{font-size:11px;margin-top:3px}.badge{display:inline-flex;border:1px solid #C3C3C3;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:650;white-space:nowrap;background:#f1f1f1;color:#303030}.badge-recruiting{background:#d9d9d9}.badge-in_progress{background:#c3c3c3;color:#181818}.badge-completed{background:#a8a8a8;color:#181818}.badge-pending_review{background:#e7e7e7}.badge-rejected{background:#fafafa}.filter-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.filter-tabs button,.project-picker button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px;color:var(--muted);transition:background .18s ease,color .18s ease,border-color .18s ease}.filter-tabs button.active,.project-picker button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.table-panel{padding:0;overflow:hidden}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:800px}th,td{text-align:left;padding:15px 17px;border-bottom:1px solid var(--soft);vertical-align:middle}th{font-size:11px;color:var(--muted);background:#fafafa}td{font-size:13px}td strong,td small{display:block}td small{font-size:11px;margin-top:4px;max-width:300px}.row-actions{display:flex;gap:10px;align-items:center}.text-button{border:0;background:transparent;color:var(--text);font-weight:650;padding:5px 0}.text-button:hover{color:#000}.danger-text{color:var(--text)}.org-list,.user-list,.catalog-list{display:flex;flex-direction:column}.org-row,.user-row,.catalog-row{display:flex;align-items:center;gap:11px;border-top:1px solid var(--soft);padding:12px 0}.org-row:first-child,.user-row:first-child,.catalog-row:first-child{border-top:0;padding-top:0}.org-icon{width:34px;height:34px;background:var(--soft);color:var(--text);border-radius:8px;display:grid;place-items:center;font-weight:700}.org-row strong,.org-row small,.user-row strong,.user-row small,.catalog-row strong,.catalog-row small{display:block}.org-row small,.user-row small,.catalog-row small{font-size:11px;margin-top:2px}.catalog-row{justify-content:space-between}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.span-2{grid-column:span 2}.modal-backdrop,.editor-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0b0b66;display:grid;place-items:center;padding:20px;z-index:20}.modal{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:14px;padding:24px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:15px}.modal-head h2{margin-top:7px}.modal textarea{min-height:90px;resize:vertical}.modal-actions,.editor-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:17px;margin-top:20px}.loading,.empty{text-align:center;color:var(--quiet);padding:48px 18px}.login-card .error-box{margin:12px 0}.filter-bar{display:flex;gap:8px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.filter-bar input,.filter-bar select{margin:0;width:150px}.search-field{position:relative;flex:1;min-width:180px}.search-field svg{position:absolute;left:11px;top:13px;color:var(--quiet)}.search-field input{padding-left:34px;width:100%}.project-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.project-card{display:block;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-height:240px;transition:border-color .2s ease,background .2s ease}.project-card:hover{border-color:#5f5f5f;background:#fafafa}.project-card:focus-visible,.button:focus-visible,.choice-chip:focus-visible,.filter-bar select:focus-visible{outline:2px solid #5F5F5F;outline-offset:2px}.project-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-category{font-size:11px;font-weight:700;color:var(--muted)}.project-card h2{font-size:19px;margin:18px 0 9px;color:var(--ink)}.project-card p{color:var(--muted);min-height:58px}.project-card-meta{display:flex;justify-content:space-between;border-top:1px solid var(--soft);margin-top:18px;padding-top:12px;color:var(--muted);font-size:12px}.tag-list,.tag-cloud{display:flex;gap:6px;flex-wrap:wrap}.tag{display:inline-flex;border:1px solid var(--line);border-radius:5px;padding:4px 7px;background:#fafafa;color:var(--muted);font-size:11px}.back-button{margin-bottom:0}.detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);gap:15px}.detail-meta{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:12px;margin-bottom:24px}.detail-meta span{display:inline-flex;align-items:center;gap:5px}.detail-copy{color:var(--muted);white-space:pre-wrap}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--soft);margin-top:24px;padding-top:20px}.detail-columns small{display:block;margin-bottom:9px}.detail-side{height:max-content}.member-list{display:flex;flex-direction:column;gap:13px;margin-bottom:20px}.member-row{display:flex;align-items:center;gap:10px}.member-row .avatar{width:30px;height:30px}.member-row strong,.member-row small{display:block}.member-row small{font-size:11px}.application-panel{margin-top:15px}.application-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--soft);padding:14px 0}.application-row:first-child{border-top:0;padding-top:0}.application-row strong,.application-row small{display:block}.application-row small{margin-top:3px}.notice-box{border:1px dashed #9A9A9A;background:var(--soft);padding:12px;border-radius:8px;margin:15px 0}.project-picker{display:flex;gap:8px;overflow:auto;padding-bottom:17px}.task-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.task-column{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:14px;min-height:310px}.task-column .section-head{margin-bottom:8px}.task-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px;margin-top:9px}.task-card strong,.task-card p,.task-card small{display:block}.task-card p{color:var(--muted);font-size:12px;margin:7px 0}.task-card small{font-size:11px}.task-card input{margin-top:9px}.task-card .text-button{margin-top:8px}.profile-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:15px;align-items:start}.profile-identity{display:flex;align-items:center;gap:16px;min-height:160px;background:var(--ink);color:#fff}.profile-identity p{color:#d9d9d9;margin-top:8px}.profile-avatar{width:58px;height:58px;border:1px solid #9A9A9A;border-radius:50%;display:grid;place-items:center;font-size:22px}.profile-panel{min-width:0}.form-section{margin-top:15px}.choice-field{border:0;padding:0;margin:17px 0}.choice-field legend{font-size:13px;font-weight:650;margin-bottom:9px}.choice-grid{display:flex;gap:7px;flex-wrap:wrap}.choice-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--muted);padding:8px 11px;min-height:38px;transition:background .18s ease,color .18s ease,border-color .18s ease}.choice-chip:hover{border-color:#777;color:var(--text)}.choice-chip.selected{background:var(--ink);border-color:var(--ink);color:#fff}.growth-list{display:grid;gap:13px}.growth-card{min-height:175px}.growth-head{display:flex;justify-content:space-between;gap:16px}.growth-head h2{margin:7px 0 2px}.growth-state{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}.growth-card>p{color:var(--muted);margin:18px 0}.growth-actions{display:flex;align-items:center;gap:14px}.notification-panel{padding:0}.notification-row{display:flex;align-items:flex-start;gap:13px;padding:17px 20px;border-bottom:1px solid var(--soft)}.notification-row:last-child{border-bottom:0}.notification-row.unread{background:#fafafa}.notification-mark{width:30px;height:30px;border-radius:8px;background:var(--soft);display:grid;place-items:center;flex:none}.notification-content{flex:1}.notification-content strong,.notification-content p,.notification-content small{display:block}.notification-content p{color:var(--muted);margin:3px 0;font-size:13px}.notification-content small{font-size:11px;color:var(--quiet)}.notification-actions{display:flex;gap:12px}.collab-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:15px;margin-top:15px}.comment-list,.activity-list{display:grid;gap:14px}.comment{display:flex;gap:10px;border-bottom:1px solid var(--soft);padding-bottom:12px}.comment:last-child{border-bottom:0}.comment p{color:var(--muted);margin:2px 0}.comment small,.activity-row small{font-size:11px;color:var(--quiet)}.comment-form{display:flex;gap:8px;margin-top:15px}.comment-form textarea{flex:1;min-height:42px;border:1px solid var(--line);border-radius:7px;padding:9px;resize:vertical}.activity-row{display:flex;gap:10px}.activity-line{width:7px;height:7px;background:var(--ink);border-radius:50%;margin-top:7px;flex:none}.activity-row strong,.activity-row small{display:block}.attachment-box{border-top:1px solid var(--soft);margin-top:12px;padding-top:11px}.attachment-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.attachment-head>span{display:flex;align-items:center;gap:5px}.upload-button{display:inline-flex;align-items:center;gap:4px;cursor:pointer;color:var(--text);font-weight:650}.upload-button input{display:none}.attachment-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-top:1px solid var(--soft);font-size:12px}.attachment-row:first-of-type{margin-top:7px}.attachment-row span,.attachment-row small{display:block}.attachment-row small{font-size:10px;color:var(--quiet)}.attachment-row a{color:var(--text);display:grid;place-items:center}.editor-backdrop{overflow:auto;display:block;background:#fafafa}.editor-page{width:min(940px,100%);margin:0 auto;min-height:100%;padding:28px 30px 48px;background:#fafafa}.editor-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:20px}.editor-head>div{text-align:center}.editor-head .button{justify-self:end}.editor-head .back-button{justify-self:start}.editor-head h1{margin-top:5px}.editor-form{display:grid;gap:14px}.form-section{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}.form-section>label{display:block;font-weight:650;margin:14px 0}.form-section textarea{width:100%;margin-top:7px;min-height:90px;border:1px solid var(--line);border-radius:7px;padding:10px;resize:vertical}.editor-actions{background:#fafafa}.student-shell .topbar{background:#fff}@media(max-width:1100px){.project-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding-left:8px;padding-right:8px}.brand strong,.brand small,.nav-label,.sidebar nav span,.user-block>div{display:none}.brand{padding-bottom:24px}.sidebar nav button{justify-content:center;padding:10px}.sidebar nav b{position:absolute;margin:-27px 0 0 24px}.user-block{justify-content:center}.stat-grid{grid-template-columns:repeat(2,1fr)}.two-col,.detail-grid,.profile-layout,.collab-grid{grid-template-columns:1fr}.topbar{padding:0 20px}.page{padding:24px 20px}.task-board{grid-template-columns:1fr}}@media(max-width:600px){.login-page{display:block}.login-story{min-height:48vh;padding:42px 28px}.login-story h1{font-size:46px}.login-panel{min-height:52vh;padding:26px 18px}.login-card{padding:26px}.page{padding:20px 14px}.page-title{align-items:stretch;flex-direction:column}.page-title h1{font-size:24px}.compact-header{align-items:flex-start;flex-wrap:wrap}.stat-grid{gap:8px}.stat-card{padding:15px;min-height:105px}.stat-card strong{font-size:27px}.panel{padding:16px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.modal{padding:18px}.modal-actions{flex-direction:column-reverse}.modal-actions .button{width:100%}.filter-bar{display:grid;grid-template-columns:1fr 1fr}.search-field{grid-column:span 2}.filter-bar input,.filter-bar select{width:100%}.project-cards,.detail-columns{grid-template-columns:1fr}.growth-head{display:block}.growth-state{margin-top:12px}.notification-row{padding:14px}.notification-actions{flex-direction:column;gap:3px}.editor-page{padding:20px 14px}.editor-head{grid-template-columns:1fr auto}.editor-head>div{grid-column:1/-1;grid-row:1}.editor-head .back-button{grid-column:1;grid-row:2}.editor-head .button{grid-column:2;grid-row:2}.choice-grid{gap:6px}.choice-chip{padding:7px 9px;min-height:36px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.growth-files{border-top:1px solid var(--soft);padding-top:12px;margin-bottom:14px}.growth-files>small{display:block;margin-bottom:8px}.growth-files .choice-chip{margin:0 6px 6px 0}
