:root{font-family:PingFang SC,Microsoft YaHei,sans-serif;color:#3f3739;background:#f8f6f5;font-synthesis:none;--pink:#e87994;--deep:#b84667;--line:#f0e5e9}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit;color:inherit}button,.button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:9px 14px;background:#fff;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px}button:disabled{opacity:.45;cursor:not-allowed}button:hover:not(:disabled){border-color:#dc9caf}button:focus-visible,a:focus-visible{outline:3px solid #e8799470;outline-offset:3px}input,textarea,select{width:100%;border:1px solid #e8dce1;border-radius:8px;padding:11px 12px;background:#fff;min-width:0}input[type=checkbox]{width:20px;height:20px;accent-color:var(--pink)}textarea{resize:vertical;min-height:90px;line-height:1.8}input:focus,textarea:focus,select:focus{outline:2px solid #e8799444;border-color:var(--pink)}h1,h2,h3,p{margin:0}h1{font-size:25px;font-weight:600}h2{font-size:19px}h3{font-size:14px}p{line-height:1.9}a{color:var(--deep);text-decoration:none}.primary{background:linear-gradient(110deg,#ee91a7,#df728e);color:#fff;border-color:transparent;font-weight:600}.full{width:100%;margin-top:20px}.note,.muted{color:#8e7f85;font-size:12px;line-height:1.9}.note{margin:10px 0}.block{display:block;overflow-wrap:anywhere}.pill{background:#fff0f4;color:var(--deep);padding:7px 12px;border-radius:7px;font-size:12px}.workspace{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100vh}aside{padding:32px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin:0 6px 30px}.brand img{width:40px}.brand strong{font-family:Songti SC,SimSun,serif;font-size:21px;letter-spacing:2px}.brand small{display:block;color:#a68f98;font-size:11px;margin-top:6px}nav{display:flex;flex-direction:column;gap:4px}nav button{justify-content:flex-start;border:0;padding:13px 16px;background:transparent;color:#8d7b84}.active{background:#fbedf1!important;color:var(--deep)!important;font-weight:600}.aside-bottom{margin-top:auto;font-size:11px;padding-top:25px}.aside-bottom button{margin-top:10px}.main{padding:28px 36px;max-width:1500px;width:100%;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:20px}header p{margin-bottom:8px}header a{font-size:13px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:20px;min-width:0}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}.toolbar h3,.toolbar .muted{margin-right:auto}.search{max-width:300px}.config-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px}.config-nav{align-self:start;position:sticky;top:20px}.config-nav button{font-size:12px;padding:13px 12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}.field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:12px;color:#796971}.wide{grid-column:1/-1}.readonly strong{font-size:12px;font-weight:400;color:#9f8792}.config-list{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.list-row{border:1px solid var(--line);border-radius:10px;padding:18px;margin-top:12px}.list-row .toolbar{margin:0}.list-row .toolbar strong{margin-right:auto;font-size:12px}.list-row .toolbar button{font-size:11px;padding:5px 8px}.list-row .form-grid{margin-bottom:0}.media-control{padding:12px;background:#fcf8fa;border-radius:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.media-control input{border:0;max-width:300px;font-size:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px;overflow-wrap:anywhere}.welcome{background:#fff1f5;border:1px solid #f2dde4;border-radius:18px;padding:30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.welcome h2{font-family:Songti SC,SimSun,serif;font-size:29px}.welcome p{font-size:13px;color:#987681;margin:16px 0 22px}.welcome img{width:230px;height:190px;object-fit:contain}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}.stats article{border:1px solid var(--line);border-radius:12px;background:#fff;padding:24px}.stats small{font-size:12px;color:#94858c}.stats strong{display:block;font-size:32px;font-weight:500;margin-top:14px;color:#b8667d}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-weight:500;color:#9f8992;padding:12px;background:#fcf7f9}td{padding:18px 12px;border-bottom:1px solid var(--line);line-height:1.8;max-width:360px;overflow-wrap:anywhere}td button{padding:6px 10px;margin:3px}td strong{font-weight:500}.empty{padding:50px 10px;text-align:center;color:#a18b94;font-size:13px}.error,.notice{padding:14px 18px;border-radius:9px;margin:16px 0;font-size:12px;overflow-wrap:anywhere}.error{color:#a72b48;background:#fff0f2}.notice{background:#edf5ef;color:#507c5a}.error button,.notice button{float:right;padding:2px 6px;background:transparent;border:0}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#42303c55;z-index:50;display:grid;place-items:center;padding:24px}.modal{background:#fff;border-radius:20px;padding:32px;width:640px;max-width:100%;max-height:90vh;overflow:auto;position:relative}.modal>h2{padding-right:42px;margin-bottom:14px}.modal.large{width:840px}.close{position:absolute;right:18px;top:18px;width:32px;height:32px;padding:0;border-radius:50%;font-size:22px;color:#957380}.change{padding:18px;border:1px solid var(--line);margin:14px 0;border-radius:12px}.change h3{margin-bottom:12px}.change>div{display:grid;grid-template-columns:60px minmax(0,1fr);gap:10px;font-size:12px;margin-top:8px}.change span{color:#aa7e8e}pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.7;max-height:180px;overflow:auto}.letter-preview{padding:30px;background:#fffaf7;white-space:pre-wrap;overflow-wrap:anywhere;line-height:2.2}.letter-preview p{margin-top:16px}.attachment{padding:16px;display:flex;flex-direction:column;gap:10px;font-size:12px}.attachment img{max-width:100%;max-height:320px;object-fit:contain}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 20% 20%,#f9e5ed,transparent 65%),#faf6f5}.login-card{width:420px;max-width:100%;padding:40px;background:#fff;border:1px solid #f0e3e8;border-radius:24px;box-shadow:0 20px 80px #94657810}.login-card>img{width:52px}.login-card h1{font-family:SimSun,serif;letter-spacing:3px;margin:18px 0 8px}.login-card>p{font-size:13px;color:#9c7d8a}.login-card h2{font-size:16px;margin:32px 0 20px}.login-card .field{margin:18px 0}*{scrollbar-width:thin;scrollbar-color:#ddb6c4 #faf5f7}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#ddb6c4;border:2px solid #faf5f7;border-radius:10px}::-webkit-scrollbar-track{background:#faf5f7}@media (max-width:1000px){.workspace{grid-template-columns:175px minmax(0,1fr)}aside{padding:24px 12px}.main{padding:24px}.config-layout{grid-template-columns:1fr}.config-nav{position:static;flex-direction:row;overflow:auto}.config-nav button{white-space:nowrap}.welcome img{width:180px}}@media (max-width:640px){.workspace{display:block}aside{position:static;height:auto;padding:16px}.brand{margin-bottom:16px}aside nav{flex-direction:row;overflow:auto}aside nav button{white-space:nowrap}.aside-bottom{display:none}.main{padding:18px}.form-grid{grid-template-columns:1fr}.welcome{padding:22px}.welcome img{display:none}.welcome h2{font-size:24px}.stats{gap:8px}.stats article{padding:14px}.stats strong{font-size:26px}.panel{padding:18px}.backdrop{padding:10px}.modal{padding:24px 18px}.list-row{padding:12px}header{align-items:flex-start}header a{font-size:11px}.toolbar .muted{width:100%}h1{font-size:22px}}.print-sheet{padding:35px;line-height:2.2;background:#fff;margin:20px 0}.print-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:25px 0}.print-signature{text-align:right}.print-sheet img{max-width:100%;display:block;margin:20px auto}.photo-print-grid{display:grid;grid-template-columns:1fr;gap:12px;justify-items:center}.photo-print-item{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;break-inside:avoid;overflow:hidden}.photo-print-item img{max-width:100%;object-fit:contain}@media print{.photo-print-grid{grid-template-columns:1fr;gap:0}.photo-print-item{min-height:230mm;break-after:page}.photo-print-item:last-child{break-after:auto}.photo-print-item img{max-height:215mm}}.photo-print-item figcaption{font-size:12px;margin-top:6px}aside nav{overflow-y:auto;min-height:0}.aside-bottom{flex-shrink:0}@media print{.workspace,.no-print{display:none!important}.print-backdrop{position:static;display:block;background:#fff;padding:0}.print-backdrop .modal{width:100%;max-width:none;max-height:none;overflow:visible;border:0;padding:0}.print-sheet{break-after:page;margin:0;padding:16mm}.print-sheet img{max-height:240mm;object-fit:contain}.photo-print-item figcaption{font-size:9pt;margin-top:2mm}}.photo-review{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;background:#f8f6f5;border-radius:8px}.photo-review .note{width:100%}.dashboard-trend,.visitor-chart{height:220px;display:grid;grid-template-columns:repeat(30,minmax(3px,1fr));align-items:end;gap:5px;padding:16px 4px 4px;border-bottom:1px solid var(--line);overflow:hidden}.visitor-chart{height:250px}.visitor-day{height:100%;min-width:0;display:grid;grid-template-rows:1fr auto;justify-items:center}.visitor-bars{height:100%;width:100%;display:flex;align-items:end;justify-content:center;gap:1px}.visitor-day i,.visitor-day b{display:block;width:42%;min-height:2px;border-radius:3px 3px 0 0}.visitor-day i{background:#7d8fd6}.visitor-day b{background:#68a99a}.visitor-day small{margin-top:5px;color:#b4a7ac;font-size:10px;line-height:1}.visitor-legend span:first-child i{background:#7d8fd6}.visitor-legend span:nth-child(2) i{background:#68a99a}.visitor-table-wrap{max-height:280px;overflow:auto;margin-top:14px;border:1px solid var(--line);border-radius:10px}.visitor-table{width:100%;border-collapse:collapse;font-size:13px}.visitor-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.visitor-table th,.visitor-table td{padding:9px 12px;text-align:left;border-bottom:1px solid #f6eef1}.visitor-table th{position:sticky;top:0;background:#fff;color:#8e7f85;font-weight:600}.visitor-table td:not(:first-child),.visitor-table th:not(:first-child){text-align:right}.trend-day{height:100%;display:flex;align-items:end;justify-content:center;gap:1px;min-width:0}.trend-day i,.trend-day b,.trend-day em{display:block;width:30%;min-height:2px;border-radius:2px 2px 0 0}.trend-day i{background:#68a99a}.trend-day b{background:#e87994}.trend-day em{background:#d8a64f}.trend-legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px;color:#8e7f85;font-size:12px}.trend-legend span{display:flex;align-items:center;gap:6px}.trend-legend i{width:9px;height:9px;border-radius:2px;background:#68a99a}.trend-legend span:nth-child(2) i{background:#e87994}.trend-legend span:nth-child(3) i{background:#d8a64f}@media (max-width:640px){.dashboard-trend{height:170px;gap:2px}.dashboard-trend .trend-day{gap:0}}fieldset{border:0;padding:0;margin:0;min-width:0}.field.invalid input,.field.invalid textarea,.field.invalid select{border-color:#c94d70}.field-error{color:#a13755;font-size:13px}.loading-state{padding:18px;background:#fff3f7;border-radius:12px;margin:16px 0}.loading-state button{margin-left:16px}
