:root{--brand:#af3528;--brand-dark:#8c281e;--ink:#252b32;--muted:#707880;--line:#e7e9eb;--bg:#f5f6f7;--soft:#fbefec;--green:#287659;--gold:#bd7a16;--radius:14px;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:var(--ink);background:var(--bg);font-size:16px;line-height:1.65}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #e8a890;outline-offset:3px}a{text-decoration:none;color:inherit}button{border:0;background:none;color:inherit}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.35;letter-spacing:.01em}h2{font-size:20px;line-height:1.4}h3{font-size:17px}small,.small{font-size:13px}.muted{color:var(--muted)}.prototype-bar{height:34px;padding:0 34px;background:#292e34;color:#e3e6e9;font-size:12px;display:flex;align-items:center;justify-content:space-between}.prototype-bar b{font-size:10px;background:#555b63;border-radius:3px;padding:2px 5px;margin-right:8px}.prototype-bar button{font-size:12px;color:#dce0e5;padding:4px 0}.app-header{height:90px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;gap:50px}.brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:750;white-space:nowrap}.brand small{display:block;font-size:11px;letter-spacing:2px;color:#8a7270;font-weight:400}.brand-mark{height:44px;width:44px;display:grid;place-items:center;border-radius:11px;background:var(--brand);color:#fff;font-size:26px;font-weight:600}.role-switch{display:flex;gap:4px;background:#f3f4f5;padding:5px;border-radius:10px}.role-switch button{font-size:14px;padding:8px 24px;border-radius:7px;color:#727981;white-space:nowrap}.role-switch button.active{color:var(--brand);background:white;box-shadow:0 2px 7px #2127330b;font-weight:650}.user-info{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:14px}.user-avatar{display:grid;place-items:center;background:#f0e6df;border-radius:50%;height:34px;width:34px;color:#86634c}.app-layout{display:flex;min-height:calc(100vh - 124px)}.sidebar{width:208px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:28px 16px;display:flex;flex-direction:column}.nav-title{font-size:12px;color:#969ba0;margin:0 16px 14px;letter-spacing:1px}nav a{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:7px;color:#6b737b;border-radius:9px;font-size:15px}nav a.active{background:var(--soft);color:var(--brand);font-weight:600}.nav-icon{width:21px;height:21px;display:inline-block;vertical-align:middle}.sidebar-bottom{margin-top:50px;padding:22px 7px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;font-size:13px;color:#646c75}.sidebar-bottom small{display:block;font-size:11px;color:#9a9fa5}.help-icon{border:1px solid #aaa;border-radius:50%;height:22px;width:22px;display:grid;place-items:center}main{width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:28px 38px 70px}.crumb{color:#9298a0;font-size:13px;margin:0 0 19px;display:flex;align-items:center;gap:10px}.crumb a{color:#6f767e}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.page-title p{color:var(--muted);font-size:14px;margin-top:6px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:10px 18px;border-radius:8px;border:1px solid var(--line);background:white;font-size:14px;font-weight:550;line-height:1.5}.btn.primary{background:var(--brand);color:white;border-color:var(--brand)}.btn.primary:hover{background:var(--brand-dark)}.btn.soft{background:var(--soft);color:var(--brand);border-color:#f2d9d3}.btn.ghost{background:none}.btn.small{padding:6px 13px;font-size:13px}.btn.full{width:100%}.btn-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.text-link{color:var(--brand);font-size:14px;padding:0}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px;margin-bottom:20px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}.panel-heading h2{font-size:18px}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.profile-main{min-width:0}.profile-hero{padding:29px;position:relative;overflow:hidden;border-top:4px solid var(--brand)}.profile-header{display:flex;gap:22px;align-items:center}.avatar{height:96px;width:96px;border-radius:18px;display:grid;place-items:center;flex-shrink:0;background:#f2dfd6;color:#9a5544;font-size:39px;font-weight:550;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.slate{background:#dfe8ed;color:#4c6c82}.avatar.green{background:#dfe9e2;color:#5c7f64}.avatar.gold{background:#eee4cd;color:#927639}.avatar.sm{width:64px;height:64px;border-radius:13px;font-size:25px}.profile-name{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.profile-name h1{font-size:28px}.tag{font-size:12px;display:inline-flex;align-items:center;padding:3px 9px;border-radius:5px;background:#f4f5f6;color:#747c85;line-height:1.7;white-space:nowrap}.tag.green{background:#eaf5ee;color:var(--green)}.tag.red{background:var(--soft);color:var(--brand)}.tag.blue{background:#edf1f9;color:#536e99}.tag.gold{background:#fbf2df;color:#a3731c}.stars{color:var(--gold);font-size:20px;letter-spacing:3px;line-height:1.2}.stars .off{color:#dfdfdf}.rating-line{display:flex;align-items:center;gap:9px;margin-top:8px;font-size:13px;color:#8d7655}.profile-sub{color:#7b838c;font-size:14px;margin:12px 0 0}.profile-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.hero-divider{border-top:1px solid var(--line);margin:24px 0 18px}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.fact strong{display:block;font-size:21px;font-weight:650;color:#303842}.fact span{font-size:12px;color:#89909a}.profile-tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);margin:0 -25px 24px;padding:0 25px;overflow:auto}.profile-tabs button{white-space:nowrap;padding:0 0 14px;color:#8c929a;font-size:14px;border-bottom:2px solid transparent}.profile-tabs button.active{border-color:var(--brand);color:var(--brand);font-weight:650}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 25px;font-size:14px}.info-item{display:flex;gap:10px}.info-item span{color:#969da5;min-width:80px}.copy{font-size:14px;line-height:1.95;color:#626c76}.subsection{margin-top:26px;padding-top:23px;border-top:1px solid #f0f0f1}.subsection h3{margin-bottom:14px}.timeline{margin-top:16px}.timeline-item{border-left:2px solid #eadedb;padding:0 0 22px 20px;position:relative}.timeline-item:before{content:'';width:8px;height:8px;border-radius:50%;background:#c48274;position:absolute;left:-5px;top:6px}.timeline-item:last-child{padding-bottom:0}.timeline-item small{display:block;color:#949ba3;margin-bottom:4px}.timeline-item strong{font-size:15px;font-weight:600}.timeline-item p{font-size:14px;color:#737d86;margin-top:4px}.side-title{color:#8c949e;font-size:12px;letter-spacing:1px;margin-bottom:12px}.price{font-size:29px;font-weight:700;line-height:1.4;margin-bottom:4px}.price small{font-size:14px;font-weight:400;color:#828b95}.side-info{padding:15px 0;font-size:14px;color:#65717c;display:flex;justify-content:space-between}.side-info+.side-info{border-top:1px dashed var(--line)}.side-note{font-size:12px;color:#929aa3;text-align:center;margin-top:11px}.plain-note{font-size:13px;color:#8b9299;line-height:1.8}.plain-note strong{color:#646e79;font-weight:600}.checklist{display:grid;gap:15px;font-size:14px;color:#646f79}.checklist span:before{content:'✓';color:var(--green);margin-right:10px}.callout{background:#f9f5ee;border:1px solid #eee4d1;color:#8d7653;padding:12px 16px;border-radius:9px;font-size:13px;margin-bottom:18px}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.gallery figure{margin:0}.media-placeholder{aspect-ratio:4/3;border-radius:10px;background:linear-gradient(135deg,#f5f0ea,#e8ddd0);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#947558;gap:8px;font-size:13px}.media-placeholder.video{background:#e7ebef;color:#788a9b}.media-placeholder svg{width:34px;height:34px;opacity:.6}.gallery figcaption{font-size:13px;margin-top:7px;color:#67727b}.gallery img,.gallery video{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px;background:#24282e}.review-card{padding:18px 0;border-top:1px solid var(--line)}.review-card:first-child{border-top:none}.review-head{display:flex;justify-content:space-between;gap:8px;font-size:14px;margin-bottom:6px}.review-card p{font-size:14px;color:#6e7883}.review-card small{color:#98a0a8}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:14px;font-weight:550;color:#505b67}.field label em{color:var(--brand);font-style:normal;margin-left:4px}.field .hint{font-size:12px;color:#939ca5}.field.wide{grid-column:1/-1}input,textarea,select{width:100%;border:1px solid #dfe3e7;border-radius:7px;background:#fff;color:#434d57;padding:10px 12px;font-size:14px;min-height:42px}input:focus,textarea:focus,select:focus{outline:none;border-color:#c47769;box-shadow:0 0 0 3px #af352812}textarea{resize:vertical;min-height:88px}input[type=file]{font-size:13px;background:#fafbfc;padding:12px}label.check{display:flex;align-items:center;gap:9px;font-size:14px}input[type=checkbox]{width:17px;min-height:17px;accent-color:var(--brand)}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:22px;margin-top:22px;border-top:1px solid var(--line)}.form-actions span{font-size:12px;color:#8c959e}.edit-layout{max-width:890px;margin:0 auto}.filter-panel{padding:20px}.searchbar{display:flex;gap:10px;margin-bottom:17px}.searchbar .search-input{position:relative;flex:1}.filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.filter-grid label{font-size:12px;color:#8b939b;display:block;margin-bottom:6px}.result-info{display:flex;justify-content:space-between;align-items:center;margin:21px 0 16px;font-size:14px;color:#85909a}.result-info strong{color:var(--ink)}.chef-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.chef-card{margin:0;padding:22px;transition:box-shadow .18s,border-color .18s}.chef-card:hover{border-color:#d1bbb4;box-shadow:0 4px 15px #4c291508}.chef-card-head{display:flex;align-items:center;gap:15px}.chef-card-head h3{font-size:20px}.chef-card-head .tag{margin-left:auto}.chef-card .rating-line{margin:6px 0 0}.chef-card .stars{font-size:16px}.chef-card .profile-tags{margin-top:16px}.chef-card .copy{margin-top:13px;font-size:13px}.chef-card-foot{margin-top:18px;padding-top:17px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.chef-card-foot strong{font-size:19px}.chef-card-foot small{color:#9a9fa6;font-weight:400;font-size:12px}.empty{text-align:center;padding:50px 24px;color:#8c959f;font-size:14px}.empty h3{color:#5e6974;margin-bottom:9px}.task-grid{display:grid;gap:16px}.task-card{margin:0}.task-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.task-top small{color:#919ba5}.task-top h3{font-size:19px;margin-top:5px}.task-meta{display:flex;flex-wrap:wrap;gap:12px 28px;color:#7d8892;font-size:14px;margin-top:13px}.task-footer{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:14px}.status-tabs{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:20px}.status-tabs button{padding:7px 16px;color:#7b8590;font-size:14px;border:1px solid transparent;border-radius:7px}.status-tabs button.active{background:#fff;border-color:var(--line);color:var(--brand)}.steps{display:flex;padding:8px 0 22px;gap:5px;list-style:none;margin:0;overflow:auto}.steps li{flex:1;min-width:95px;position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;color:#a3abb3;font-size:12px}.steps li:before{content:'';position:absolute;top:14px;left:50%;width:100%;height:1px;background:#e5e8eb}.steps li:last-child:before{display:none}.steps b{border-radius:50%;width:29px;height:29px;display:grid;place-items:center;border:1px solid #d9dfe5;background:#fff;z-index:1;font-size:12px}.steps li.done{color:var(--green)}.steps li.done b{background:#eaf4ee;border-color:#c7e0d1}.steps li.current{color:var(--brand);font-weight:600}.steps li.current b{background:var(--brand);color:#fff;border-color:var(--brand)}.task-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.log-entry{padding:17px 0;border-top:1px solid var(--line)}.log-entry:first-child{border:0;padding-top:0}.log-head{display:flex;justify-content:space-between;gap:8px;font-size:14px;margin-bottom:9px}.log-head small{color:#96a0a9}.log-entry p{font-size:14px;color:#69747e;margin-bottom:12px}.log-entry .gallery{grid-template-columns:repeat(2,minmax(0,1fr));max-width:450px}.comment{background:#f8f9fa;padding:13px 15px;border-radius:8px;margin:10px 0;font-size:14px}.comment strong{font-size:12px;color:#89939d;font-weight:500;display:block;margin-bottom:5px}.comment-form{display:flex;gap:9px}.comment-form input{flex:1;min-width:0}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{border:1px solid var(--line);background:white;padding:20px;border-radius:11px}.stat-card span{color:#8c949e;font-size:13px}.stat-card strong{display:block;font-size:30px;margin-top:7px}.stat-card:first-child{border-left:3px solid var(--brand)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-size:12px;color:#8e97a1;background:#f8f9fa;font-weight:500;padding:13px 14px;white-space:nowrap}td{padding:17px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td small{display:block;color:#97a0aa}td .btn{margin:3px}.admin-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.capability{padding:18px 0;border-bottom:1px solid var(--line)}.capability:last-child{border:0}.capability p{font-size:14px;color:#828c96;margin-top:5px}.capability strong{font-size:15px}.upload-zone{border:1px dashed #d9c4ba;padding:19px;background:#fdfaf8;border-radius:9px}.upload-zone p{font-size:13px;color:#8a7b71;margin-bottom:12px}.section-note{font-size:13px;color:#8a949f;margin-bottom:18px}.kv-list{display:grid;gap:12px}.kv-list div{display:flex;justify-content:space-between;gap:20px;font-size:14px}.kv-list span{color:#929aa4}.kv-list strong{font-weight:500;text-align:right}#toast{position:fixed;left:50%;bottom:35px;transform:translate(-50%,20px);background:#2d373e;color:#fff;padding:12px 22px;border-radius:9px;font-size:14px;box-shadow:0 5px 25px #0002;opacity:0;transition:.2s;pointer-events:none;z-index:50;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:16px;padding:0;width:min(570px,calc(100% - 30px));max-height:90vh;overflow:auto;box-shadow:0 20px 70px #0003;color:var(--ink)}dialog::backdrop{background:#17212a66;backdrop-filter:blur(3px)}.modal-inner{padding:28px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-head h2{font-size:21px}.close-button{font-size:26px;color:#939ba4;line-height:1;padding:6px}.rating-picker{display:flex;gap:7px;margin:14px 0}.rating-picker button{font-size:35px;padding:2px;color:#c3c8cd}.rating-picker button.chosen{color:var(--gold)}.media-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.media-list span{padding:4px 9px;border-radius:4px;background:#edf2f4;font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.notice-title{font-size:14px;font-weight:600;margin-bottom:7px}.form-separator{font-size:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin:25px 0 18px}.form-separator:first-child{margin-top:0}.readonly-grade{display:flex;justify-content:space-between;align-items:center;border:1px solid #ebdfc7;background:#fcf8ed;border-radius:8px;padding:15px 18px;margin-bottom:20px}.readonly-grade small{color:#9a855f}.task-record-form textarea{margin-bottom:12px}.badge-count{font-size:11px;background:#f3dcd7;color:var(--brand);padding:1px 6px;border-radius:5px;margin-left:auto}.disabled-feature{opacity:.7}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1550px){main{padding-top:35px}.profile-layout{grid-template-columns:minmax(0,1fr) 310px}.sidebar{width:230px}.app-header{gap:80px}}
@media(max-width:1180px){main{padding:25px 24px}.sidebar{width:170px;padding:26px 12px}.app-header{gap:28px;padding:0 22px}.role-switch button{padding:8px 16px}.profile-layout{grid-template-columns:minmax(0,1fr) 244px;gap:17px}.panel{padding:21px}.profile-header{gap:16px}.avatar{width:78px;height:78px;font-size:32px}.facts{gap:8px}.fact strong{font-size:19px}.task-layout{grid-template-columns:minmax(0,1fr) 250px}.info-grid{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.user-info{font-size:12px}.profile-tabs{margin-left:-21px;margin-right:-21px;padding-left:21px;gap:22px}}
@media(max-width:900px){.app-header{height:auto;min-height:83px;gap:20px;padding:15px 21px;flex-wrap:wrap}.brand{font-size:22px}.user-info{display:none}.role-switch{margin-left:auto}.sidebar{width:76px;padding:24px 8px}.nav-title,.sidebar-bottom,nav a .nav-label{display:none}nav a{justify-content:center;padding:14px 8px}main{padding:23px 20px}.profile-layout{grid-template-columns:1fr}.profile-side{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-side .panel{margin-bottom:0}.profile-side .panel:last-child{display:none}.task-layout{grid-template-columns:1fr}.task-side{display:grid;grid-template-columns:1fr 1fr;gap:18px}.task-side .panel{margin-bottom:0}.field-grid{gap:17px}.stats-row{gap:10px}.stat-card{padding:14px}.chef-card{padding:18px}.chef-card-head{gap:10px}.chef-card-head .tag{display:none}.filter-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.prototype-bar{padding:0 15px;font-size:10px;height:30px}.prototype-bar button{font-size:10px}.app-header{padding:12px 16px;gap:14px;min-height:118px}.brand{font-size:22px}.brand-mark{height:36px;width:36px;font-size:22px}.brand small{font-size:9px}.role-switch{order:2;width:100%;padding:3px;gap:4px;border-radius:8px}.role-switch button{flex:1;padding:6px 8px;font-size:13px}.app-layout{display:block}.sidebar{position:sticky;top:0;width:100%;z-index:10;padding:5px 12px;border-right:0;border-bottom:1px solid var(--line)}nav{display:flex;gap:5px;overflow-x:auto}nav a{flex:1;white-space:nowrap;gap:6px;padding:9px 8px;font-size:12px;margin:0}nav a .nav-label{display:block}nav a .nav-icon{width:16px;height:16px}.badge-count{display:none}main{padding:21px 15px 40px}.crumb{font-size:12px;margin-bottom:16px}.page-title{margin-bottom:18px;gap:12px}.page-title h1{font-size:24px}.page-title .btn{padding:8px 12px;font-size:12px;white-space:nowrap}.page-title p{font-size:12px}.panel{padding:20px;border-radius:11px;margin-bottom:16px}.profile-hero{padding:22px 19px}.profile-header{gap:15px}.profile-name{gap:7px}.profile-name h1{font-size:24px}.profile-sub{font-size:12px;margin-top:8px}.rating-line{font-size:11px;gap:6px}.stars{font-size:17px;letter-spacing:2px}.avatar{width:72px;height:82px;border-radius:12px;font-size:31px}.profile-tags{gap:6px;margin-top:17px}.tag{font-size:11px;padding:2px 6px}.facts{grid-template-columns:repeat(4,1fr);gap:5px}.fact strong{font-size:17px}.fact span{font-size:10px}.hero-divider{margin:21px 0 16px}.profile-tabs{margin:0 -20px 19px;padding:0 20px;gap:23px}.profile-tabs button{font-size:13px}.info-grid{gap:14px}.info-item{font-size:13px}.copy{font-size:13px}.profile-side{grid-template-columns:1fr;gap:16px}.profile-side .panel:last-child{display:block}.profile-side .panel:nth-child(2){display:none}.side-info{padding:10px 0}.price{font-size:26px}.gallery{gap:10px}.chef-grid{grid-template-columns:1fr}.filter-panel{padding:16px}.searchbar{gap:7px}.searchbar input{font-size:13px}.filter-grid{gap:12px}.field-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.field label{font-size:13px}.field input,.field select{font-size:14px}.form-actions{align-items:flex-start;flex-direction:column}.form-actions .btn-row{width:100%;justify-content:flex-end}.task-layout{gap:0}.task-side{grid-template-columns:1fr;gap:16px}.task-side .panel{margin:0}.steps{padding-bottom:15px;gap:0}.steps li{font-size:10px;min-width:64px}.steps b{width:25px;height:25px}.steps li:before{top:12px}.task-top h3{font-size:17px}.task-meta{font-size:12px;gap:8px 15px}.task-footer{flex-wrap:wrap}.task-footer .btn-row{margin-left:auto}.task-card{padding:18px}.stats-row{grid-template-columns:repeat(2,1fr)}.stat-card strong{font-size:26px}.admin-layout{grid-template-columns:1fr;gap:0}.table-scroll{margin:0 -20px;padding:0 13px}.modal-inner{padding:23px}.status-tabs{gap:3px}.status-tabs button{padding:7px 11px;font-size:12px}.comment-form{align-items:stretch}.comment-form .btn{white-space:nowrap;padding:9px 12px}.log-head{flex-wrap:wrap}.profile-layout{gap:0}.readonly-grade{padding:13px}.readonly-grade .stars{font-size:17px}.readonly-grade small{font-size:11px}.btn{min-height:39px}}
