:root{--ink:#242626;--sub:#6c716e;--green:#254d3f;--paper:#f5f4ef;--line:#dfE2da;--orange:#cf5e35;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 "PingFang SC","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:0;border-radius:8px;padding:11px 20px;background:var(--green);color:white}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}.quiet{background:transparent;color:var(--green);border:1px solid var(--line)}.danger{background:#a53930}.pill{display:inline-block;background:#e7eee8;color:var(--green);font-size:12px;padding:4px 10px;border-radius:5px}.pill.pending{background:#fff0d9;color:#8b6229}.pill.rejected,.pill.cancelled,.pill.expired{background:#ececea;color:#666}.demo{background:#fff1d9;color:#785321;text-align:center;font-size:12px;padding:7px}.shell{max-width:1180px;margin:auto;padding:0 32px 70px}header{display:flex;align-items:center;justify-content:space-between;padding:26px 0;border-bottom:1px solid var(--line);gap:18px}.brand{font-weight:700;letter-spacing:.05em;font-size:20px}.brand span{font-weight:400;font-size:13px;margin-left:16px;color:var(--sub)}nav{display:flex;gap:10px;align-items:center}nav a{padding:8px 15px;color:var(--sub);border-bottom:2px solid transparent}nav a.selected{color:var(--green);border-color:var(--green)}.eyebrow{font-size:12px;color:var(--green);letter-spacing:.15em;font-weight:600}.hero{display:grid;grid-template-columns:1.7fr 1fr;gap:40px;padding:42px 0 34px}.hero h1{font-family:"Songti SC","STSong",serif;font-size:44px;font-weight:500;line-height:1.3;margin:10px 0 16px}.hero p{color:var(--sub);max-width:570px}.hero-aside{border-left:1px solid var(--line);padding-left:30px;align-self:center;color:var(--sub);font-size:13px}.hero-aside strong{color:var(--ink);font-size:16px;display:block;margin-bottom:10px}.filters{display:flex;flex-wrap:wrap;gap:12px;background:white;padding:18px;border:1px solid var(--line);border-radius:10px;margin-bottom:26px}.filters label{display:flex;align-items:center;gap:10px}.filters input,.filters select{width:160px;padding:7px 10px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.teacher{background:white;border:1px solid var(--line);border-radius:12px;padding:28px;position:relative}.teacher-top{display:flex;align-items:center;gap:20px;margin-bottom:20px}.portrait{width:84px;height:94px;background:#e6e9df;display:flex;align-items:center;justify-content:center;font-family:"Songti SC",serif;font-size:38px;color:var(--green);border-radius:8px;flex-shrink:0;object-fit:cover}.teacher h2{margin:0;font-size:24px;font-weight:500}.teacher p{color:var(--sub);font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}.tags span{font-size:12px;border:1px solid var(--line);padding:3px 9px;border-radius:4px}.teacher-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:18px;margin-top:20px;color:var(--sub);font-size:13px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:30px 0 18px}.section-head h1,.section-head h2{margin:0;font-weight:500}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:20px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.weekday{font-size:12px;color:var(--sub);text-align:center;padding:8px}.day{min-height:114px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}.day.empty{background:transparent;border-color:transparent}.day-num{font-size:18px;margin-bottom:7px}.slot{display:block;width:100%;background:#edf2ed;color:var(--green);border:1px solid #d0ddd2;padding:7px;font-size:11px;text-align:left;margin:5px 0;line-height:1.5}.slot.unavailable{background:#f3f3f0;color:#777;border-color:var(--line);opacity:1;cursor:default}.region{font-size:11px;color:var(--orange)}.legend{font-size:13px;color:var(--sub);margin:16px 0}.request-card{display:grid;grid-template-columns:1fr auto;gap:16px}.request-card h3{margin:0 0 8px;font-weight:500}.small{font-size:13px;color:var(--sub)}.meta{font-size:13px;color:var(--sub);margin:5px 0}.actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.actions button{padding:7px 12px;font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.stat{padding:20px 24px;background:white;border:1px solid var(--line);border-radius:10px}.stat strong{font-size:32px;display:block;color:var(--green)}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.admin-tabs button{background:transparent;color:var(--sub);border:1px solid var(--line)}.admin-tabs button.active{background:var(--green);color:white}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line)}th{font-weight:500;color:var(--sub);background:#f7f8f4}.scroll{overflow-x:auto}dialog{width:min(620px,calc(100% - 30px));border:1px solid var(--line);border-radius:16px;padding:28px;max-height:90vh;overflow:auto}dialog::backdrop{background:#202c2866}dialog h2{font-weight:500;margin:0 0 12px}form label{display:block;font-size:13px;color:var(--sub);margin-bottom:14px}input,textarea,select{display:block;border:1px solid #cdd3cc;border-radius:7px;padding:10px 12px;background:white;width:100%;color:var(--ink)}textarea{min-height:100px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.help{font-size:12px;color:var(--sub);margin:12px 0}.empty-state{padding:55px 20px;text-align:center;color:var(--sub)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 22px;border-radius:8px;display:none;max-width:90vw;z-index:10}.detail-bio{white-space:pre-wrap}.back{margin-top:24px}.login{max-width:450px;margin:60px auto}.error{color:#a53930}.loading{padding:60px;text-align:center;color:var(--sub)}@media(max-width:760px){.shell{padding:0 18px 90px}header{padding:18px 0;flex-wrap:wrap}.brand span{display:none}nav{gap:0;width:100%;justify-content:space-between}nav a{font-size:13px;padding:8px}.hero{grid-template-columns:1fr;padding:28px 0;gap:16px}.hero h1{font-size:34px}.hero-aside{padding-left:16px}.grid{grid-template-columns:1fr}.teacher{padding:22px}.filters{padding:14px;gap:10px}.filters label{font-size:12px;flex:1 1 140px;display:block}.filters input,.filters select{width:100%}.calendar{gap:4px}.day{padding:4px;min-height:90px}.slot{padding:4px;font-size:10px}.region{font-size:10px}.day-num{font-size:15px}.panel{padding:16px}.form-grid{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:12px}.stat strong{font-size:26px}.request-card{grid-template-columns:1fr}dialog{padding:22px}}

.journey-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.journey-fields label{font-size:13px;color:var(--sub)}.journey-fields label span{display:block;margin-bottom:8px}.portrait{width:108px;height:140px;object-position:center 18%}.profile-photo{display:block;width:220px;max-width:100%;height:310px;object-fit:cover;object-position:top;margin-bottom:22px;border-radius:10px}@media(max-width:760px){.journey-fields{grid-template-columns:1fr}.portrait{width:86px;height:116px}}

.policy-notice{font-size:13px;color:var(--sub)}summary{cursor:pointer;color:var(--green)}.checkbox{display:flex;gap:10px;align-items:center}.checkbox input{width:auto}.deferral,.review-summary,.feedback-item{border-top:1px solid var(--line);margin-top:15px;padding-top:14px}.journey-fields .quiet{align-self:end}.feedback-item p{white-space:pre-wrap}

.import-file{display:block;margin:22px 0}#schedule-csv{min-height:220px;font-family:monospace}#import-result{margin-top:20px}

.travel-notice{margin:14px 0;padding:14px;border-left:3px solid #cf5e35;background:#fff5e9;font-size:13px;color:#72532e}.travel-notice p{margin:6px 0}
