:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#172331;background:#f3f6f8;font-synthesis:none;--ink: #172331;--muted: #677585;--line: #dce3e9;--blue: #2677c9;--blue-dark: #165b9c;--mist: #eaf4fb;--pale: #f6f8fa;--green: #2d9b5f;--red: #cf3f4f}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.employee-shell{max-width:760px;min-height:100vh;margin:0 auto;background:#fff;box-shadow:0 0 0 1px #122a400a;padding-bottom:92px}.employee-header{position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;min-height:78px;padding:14px 22px;background:#fffffff5;border-bottom:1px solid #edf0f2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.employee-header div{display:grid;gap:3px}.employee-header strong{font-size:18px;letter-spacing:-.2px}.employee-header span{color:var(--muted);font-size:12px}.employee-header svg{color:var(--blue)}.employee-shell main{padding:20px 22px 30px}.progress{display:grid;grid-template-columns:repeat(3,1fr);margin:6px 0 24px}.progress-item{position:relative;display:grid;justify-items:center;gap:7px;color:#929ca7}.progress-item:not(:last-child):after{position:absolute;top:15px;left:calc(50% + 18px);right:calc(-50% + 18px);height:2px;content:"";background:#e5e9ed}.progress-item.active:not(:last-child):after{background:#92bee8}.progress-item>span{position:relative;z-index:1;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#edf0f3;font-size:13px;font-weight:700}.progress-item.active>span{color:#fff;background:var(--blue)}.progress-item small{font-size:12px}.progress-item.active small{color:var(--blue-dark);font-weight:650}.privacy-intro{display:flex;gap:14px;margin-bottom:30px;padding:19px;border-radius:14px;background:var(--mist);border:1px solid #d9eaf6}.privacy-intro>svg{flex:0 0 auto;color:var(--blue);margin-top:1px}.privacy-intro h1{margin:0 0 7px;font-size:16px}.privacy-intro p{margin:0 0 8px;color:#40576d;font-size:13px;line-height:1.7}.privacy-intro small{color:#687f92;line-height:1.6}section{margin-bottom:30px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.section-heading div{display:grid;gap:3px}.section-heading span{color:var(--blue);font-size:12px;font-weight:650}.section-heading h2{margin:0;font-size:21px;line-height:1.3;letter-spacing:-.3px}.section-heading>svg{color:var(--blue)}.section-heading.compact{align-items:center}.section-heading.compact>strong{color:var(--muted);font-size:13px}.section-note{margin:-5px 0 16px;color:var(--muted);font-size:13px;line-height:1.7}.date-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(115px,1fr);gap:10px;overflow-x:auto;padding:2px 1px 8px;scrollbar-width:thin}.date-row button,.admin-date-tabs button{display:grid;gap:4px;padding:13px 9px;text-align:left;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.date-row button strong{font-size:15px}.date-row button span,.admin-date-tabs button span{color:var(--muted);font-size:12px}.date-row button small{color:var(--green);font-size:11px}.date-row button.selected,.admin-date-tabs button.selected{border-color:var(--blue);background:#f4f9fe;box-shadow:0 0 0 2px #2677c914}.slot-legend,.status-key{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:13px;color:var(--muted);font-size:12px}.slot-legend span,.status-key span{display:inline-flex;align-items:center;gap:6px}.slot-legend i,.status-key i{width:9px;height:9px;border-radius:50%;background:#fff;border:1px solid var(--line)}.slot-legend i.selected{background:var(--blue);border-color:var(--blue)}.slot-legend i.booked,.status-key i.closed{background:#c9d0d7;border-color:#c9d0d7}.status-key i.available{background:#3db672;border-color:#3db672}.status-key i.booked{background:var(--blue);border-color:var(--blue)}.slot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.slot-grid button{display:grid;gap:4px;min-height:66px;place-content:center;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.slot-grid button small{color:var(--green);font-size:11px}.slot-grid button.selected{border-color:var(--blue);background:var(--blue);color:#fff}.slot-grid button.selected small{color:#fff}.slot-grid button.booked,.slot-grid button.closed{color:#8a959f;background:#edf0f3}.slot-grid button.booked small,.slot-grid button.closed small{color:#8a959f}.empty-state,.admin-empty{display:grid;justify-items:center;gap:7px;padding:38px 18px;text-align:center;border:1px dashed #ced8df;border-radius:12px;color:var(--muted);background:#fafbfc}.empty-state svg,.admin-empty svg{color:#8ba6ba}.empty-state h3,.admin-empty h3{margin:2px 0 0;color:var(--ink);font-size:16px}.empty-state p,.admin-empty p{margin:0;font-size:13px;line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.field{display:grid;gap:7px;margin-bottom:16px}.field-label{color:#344556;font-size:13px;font-weight:650}.field-label b{color:var(--red)}.field>small{color:var(--muted);font-size:11px}input,select,textarea{width:100%;padding:12px 13px;color:var(--ink);border:1px solid #cad4dd;border-radius:9px;background:#fff;outline:none;transition:.18s border-color,.18s box-shadow}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2677c91c}textarea{resize:vertical;line-height:1.65}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip-list button{padding:8px 11px;border:1px solid var(--line);border-radius:7px;color:#4a5a69;background:#fff;font-size:12px}.chip-list button.selected{color:var(--blue-dark);border-color:#8fbce5;background:var(--mist)}.scale-section{border-top:1px solid #edf0f2;padding-top:22px}.assessment-timeframe{display:flex;align-items:flex-start;gap:13px;margin:2px 0 26px;padding:17px 18px;color:#5f3b05;border:2px solid #efc35b;border-radius:12px;background:#fff7dc;box-shadow:0 5px 18px #975f0a14}.assessment-timeframe svg{flex:0 0 auto;color:#a86308}.assessment-timeframe strong{display:block;margin-bottom:5px;color:#4f3104;font-size:17px;line-height:1.4}.assessment-timeframe p{margin:0;font-size:14px;line-height:1.65}.section-heading .timeframe-tag{width:fit-content;padding:4px 8px;color:#125c9f;border:1px solid #a9cce9;border-radius:999px;background:#eef7ff;font-size:12px;font-weight:750}.scale-instruction{margin-top:0;padding:11px 13px;color:#364b5d;border-left:4px solid var(--blue);background:#f4f9fd;font-size:14px}.scale-instruction b{color:#174f82}.scale-question{padding:16px 0;border-bottom:1px solid #edf0f2}.scale-question>p{margin:0 0 12px;line-height:1.65}.scale-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.scale-options button{min-height:46px;padding:7px;border:1px solid var(--line);border-radius:8px;color:#4d5b68;background:#fff;font-size:12px}.scale-options button.selected{color:#fff;border-color:var(--blue);background:var(--blue)}.safety-note{display:flex;gap:9px;margin-top:12px;padding:12px;color:#8d2e3a;border:1px solid #f0c4ca;border-radius:8px;background:#fff4f5;font-size:12px;line-height:1.6}.safety-note svg{flex:0 0 auto}.review-list{overflow:hidden;border:1px solid var(--line);border-radius:12px}.review-list div{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:13px 15px;border-bottom:1px solid #edf0f2}.review-list div:last-child{border-bottom:0}.review-list span{color:var(--muted);font-size:13px}.review-list strong{text-align:right;font-size:13px}.consent{display:flex;gap:10px;margin-top:16px;color:#536575;font-size:12px;line-height:1.65}.consent input{width:17px;height:17px;margin:2px 0 0}.success-screen{display:grid;justify-items:center;padding:56px 8px;text-align:center}.success-icon{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;color:var(--blue);background:var(--mist)}.success-screen h1{margin:20px 0 8px;font-size:28px}.success-screen>p{max-width:420px;margin:0 0 24px;color:var(--muted);line-height:1.7}.success-details{width:100%;margin-bottom:24px;padding:18px;border:1px solid var(--line);border-radius:12px;text-align:left}.success-details div,.booking-summary>div{display:flex;align-items:center;gap:10px;margin:9px 0}.success-details svg,.booking-summary svg{color:var(--blue)}.assistant-card{width:100%;margin:0 0 24px;padding:22px;border:1px solid #cfe0ee;border-radius:16px;background:#f5f9fc;text-align:left}.assistant-card>div{text-align:center}.assistant-card span{display:inline-block;margin-bottom:6px;color:var(--blue-dark);font-size:12px;font-weight:700;letter-spacing:.08em}.assistant-card h2{margin:0 0 10px;font-size:20px}.assistant-card p{max-width:480px;margin:0 auto 16px;color:var(--muted);font-size:14px;line-height:1.7}.assistant-card img{display:block;width:min(100%,330px);margin:0 auto;border-radius:10px;background:#fff}.my-booking{padding-top:22px;border-top:1px solid #edf0f2}.booking-summary{position:relative;padding:14px 16px;border:1px solid var(--line);border-radius:12px}.booking-summary .status{position:absolute;right:14px;top:14px;padding:4px 7px;border-radius:5px;color:var(--blue-dark);background:var(--mist);font-size:11px}.booking-summary .status.cancelled{color:#65717b;background:#edf0f2}.text-danger{margin-top:10px;padding:6px 0;color:var(--red);border:0;background:none}.action-bar{position:fixed;z-index:25;bottom:0;left:50%;display:flex;gap:10px;width:min(760px,100%);padding:12px 22px calc(12px + env(safe-area-inset-bottom));transform:translate(-50%);background:#fffffff7;border-top:1px solid #e6eaee;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.primary,.secondary,.danger-outline{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:45px;padding:0 18px;border-radius:9px;font-weight:650}.primary{flex:1;color:#fff;border:1px solid var(--blue);background:var(--blue)}.primary:hover{background:var(--blue-dark)}.primary:disabled{opacity:.5}.secondary{color:#354657;border:1px solid #cbd5dd;background:#fff}.danger-outline{color:var(--red);border:1px solid #e2aeb5;background:#fff}.form-error{margin:15px 0;padding:11px 13px;color:#9f2f3d;border:1px solid #edbdc4;border-radius:8px;background:#fff4f5;font-size:13px}.admin-shell{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100vh;background:#f4f7f9}.admin-shell>aside{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:22px 14px;color:#fff;background:#172536}.admin-brand{display:flex;align-items:center;gap:11px;padding:2px 8px 24px;border-bottom:1px solid rgba(255,255,255,.12)}.admin-brand svg{color:#9bc6e9}.admin-brand div{display:grid;gap:2px}.admin-brand strong{font-size:15px}.admin-brand span{color:#aab7c4;font-size:11px}.admin-shell nav{display:grid;gap:6px;margin-top:22px}.admin-shell nav button,.logout{display:flex;align-items:center;gap:10px;padding:11px 12px;color:#bec9d4;border:0;border-radius:7px;background:transparent;text-align:left}.admin-shell nav button.active{color:#fff;background:var(--blue)}.logout{margin-top:auto}.admin-main{min-width:0;padding:26px 28px 46px}.admin-header,.admin-section-title,.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-header{margin-bottom:24px}.admin-header h1{margin:0 0 5px;font-size:27px}.admin-header p,.admin-section-title p{margin:0;color:var(--muted);font-size:13px}.admin-header .secondary,.primary.small,.secondary.small{flex:0 0 auto;min-height:38px;padding:0 13px;font-size:12px}.admin-date-config,.schedule-panel{margin-bottom:20px;padding:20px;border:1px solid #e1e6ea;border-radius:10px;background:#fff}.admin-section-title h2,.schedule-toolbar h2{margin:0 0 5px;font-size:18px}.date-create,.toolbar-actions,.custom-slot{display:flex;align-items:center;gap:8px}.date-create input,.custom-slot input{width:auto;min-height:38px;padding:8px 10px}.admin-date-tabs{display:flex;gap:9px;overflow-x:auto;margin-top:18px;padding:2px}.admin-date-tabs button{min-width:126px}.admin-date-tabs button small{color:var(--green)}.schedule-toolbar{align-items:flex-start;padding-bottom:16px}.schedule-toolbar .status-key{margin:7px 0 0}.custom-slot{padding:12px 0;border-top:1px solid #edf0f2}.custom-slot>span{color:var(--muted);font-size:12px}.admin-empty{margin-top:18px}.admin-empty.compact{padding:28px}.schedule-table{overflow:auto;border:1px solid #dce3e8;border-radius:8px}.schedule-head,.schedule-row{display:grid;grid-template-columns:1.1fr .9fr 1.35fr 1.35fr 1.3fr 1fr;min-width:890px}.schedule-head{color:#465565;background:#f2f5f7;font-size:12px;font-weight:700}.schedule-head span,.schedule-row>span{padding:12px;border-right:1px solid #e3e8ec}.schedule-head span:last-child,.schedule-row>span:last-child{border-right:0}.schedule-row{border-top:1px solid #e5eaee;font-size:12px}.schedule-row:nth-child(odd){background:#fafbfc}.schedule-row>span{display:flex;align-items:center;gap:7px;min-height:53px}.status,.risk{display:inline-flex;align-items:center;padding:4px 7px;border-radius:5px;font-style:normal;font-size:11px}.status.available{color:#217a4a;background:#e8f7ee}.status.booked{color:#1b64a7;background:#e9f3fc}.status.closed{color:#66727d;background:#edf0f2}.risk{color:#a53b25;background:#fff0eb}.table-action{padding:6px 9px;color:#2e4355;border:1px solid #cbd5dd;border-radius:6px;background:#fff;font-size:11px}.admin-login{display:grid;min-height:100vh;place-items:center;padding:24px;background:#edf3f7}.admin-login form{width:min(420px,100%);padding:34px;border:1px solid #dde4e9;border-radius:12px;background:#fff;box-shadow:0 18px 45px #1b32481a}.login-mark{display:grid;width:54px;height:54px;place-items:center;color:var(--blue);border-radius:12px;background:var(--mist)}.admin-login h1{margin:18px 0 7px}.admin-login p{margin:0 0 24px;color:var(--muted);font-size:13px;line-height:1.7}.admin-login .primary{width:100%}.drawer-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;background:#111f2d57}.detail-drawer{position:absolute;top:0;right:0;width:min(470px,100%);height:100%;display:flex;flex-direction:column;color:var(--ink);background:#fff;box-shadow:-15px 0 45px #14283c2e}.detail-drawer header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid #e5e9ed}.detail-drawer h2{margin:0;font-size:20px}.detail-drawer header button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:7px;background:#f1f4f6}.detail-content{flex:1;overflow:auto;padding:20px 22px}.detail-content h3{margin:0 0 12px;padding-top:18px;border-top:1px solid #edf0f2;font-size:15px}.detail-content h3:first-child{padding-top:0;border-top:0}dl{display:grid;grid-template-columns:110px 1fr;gap:10px 15px;margin:0 0 22px;font-size:12px;line-height:1.6}dt{color:var(--muted)}dd{margin:0}.score-pair{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.score-pair>div{display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:13px;border:1px solid var(--line);border-radius:8px}.score-pair span{grid-column:1 / -1;color:var(--muted);font-size:11px}.score-pair strong{font-size:25px}.score-pair small{align-self:end;color:var(--blue-dark)}.risk-box{display:flex;gap:10px;margin-top:14px;padding:13px;color:#943344;border:1px solid #efbec5;border-radius:8px;background:#fff4f5}.risk-box svg{flex:0 0 auto}.risk-box strong{font-size:13px}.risk-box p{margin:4px 0 0;font-size:11px;line-height:1.6}.detail-drawer footer{padding:15px 22px;border-top:1px solid #e5e9ed}.detail-drawer .danger-outline{width:100%}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-shell>aside{position:static;height:auto;padding:14px}.admin-shell nav{grid-template-columns:repeat(3,1fr);margin-top:12px}.admin-shell nav button{justify-content:center}.logout{display:none}.admin-main{padding:18px 14px 36px}}@media(max-width:620px){.employee-shell main{padding:16px 16px 26px}.employee-header{padding:12px 16px}.employee-header strong{font-size:16px}.form-grid{grid-template-columns:1fr;gap:0}.scale-options{grid-template-columns:repeat(2,1fr)}.action-bar{padding-left:16px;padding-right:16px}.admin-header,.admin-section-title,.schedule-toolbar{align-items:stretch;flex-direction:column}.date-create,.toolbar-actions{align-items:stretch;flex-wrap:wrap}.admin-shell nav{grid-template-columns:1fr}.admin-shell nav button:not(.active){display:none}}
