*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{height:100%;min-height:100%;margin:0}body{color:#2a2218;background:repeating-linear-gradient(90deg,#5a3a2008 0 1px,#0000 1px 7px),repeating-linear-gradient(0deg,#5a3a2006 0 1px,#0000 1px 9px),#cfc0a6;font-family:Noto Sans SC,PingFang SC,Hiragino Sans GB,sans-serif}button,input,textarea{font:inherit;font-size:16px}a{color:inherit;text-decoration:none}.phone{width:min(430px,100%);min-height:100dvh;padding-bottom:calc(64px + env(safe-area-inset-bottom));background:linear-gradient(#8b1f1f0f,#0000 120px),#f4ead6;margin:0 auto;position:relative;box-shadow:0 0 0 1px #5a281814}.phone.no-tab{padding-bottom:env(safe-area-inset-bottom)}.phone.is-auth{width:100%;max-width:none;min-height:100dvh;box-shadow:none;margin:0}.page-auth{flex-direction:column;min-height:100dvh;display:flex}.page-auth .foot,.page-auth .doc-sign{margin-top:auto}.topbar{z-index:20;height:calc(48px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 4px 0;background:#f4ead6f5;border-bottom:2px solid #8b1f1f;grid-template-columns:48px 1fr 48px;align-items:center;display:grid;position:sticky;top:0}.topbar h1{text-align:center;letter-spacing:3px;margin:0;font-family:Noto Serif SC,serif;font-size:17px;font-weight:700}.icon-btn{color:#3d2f24;background:0 0;border:0;place-items:center;width:48px;height:48px;display:grid}.topbar-right{min-height:48px}.seal{color:#8b1f1f;background:#8b1f1f0a;border:2px solid #8b1f1f;place-items:center;width:40px;height:40px;font-family:Noto Serif SC,serif;font-size:18px;font-weight:700;display:grid;box-shadow:inset 0 0 0 1px #8b1f1f59}.seal-sm{width:34px;height:34px;font-size:15px}.doc-masthead{padding:22px 22px 8px}.page-auth .doc-masthead{padding-top:calc(36px + env(safe-area-inset-top))}.doc-org{align-items:center;gap:10px;margin-bottom:12px;display:flex}.doc-org strong{letter-spacing:6px;font-family:Noto Serif SC,serif;font-size:18px;display:block}.doc-org em{color:#7a6b5a;letter-spacing:2px;margin-top:2px;font-size:11px;font-style:normal;display:block}.doc-rule{background:linear-gradient(#8b1f1f,#8b1f1f) 0 0/100% 2px no-repeat,linear-gradient(#8b1f1f,#8b1f1f) 0 100%/100% 1px no-repeat;height:4px;margin-bottom:12px}.doc-no{color:#8b1f1f;letter-spacing:1px;text-align:center;margin-bottom:8px;font-size:12px}.doc-masthead h1{letter-spacing:4px;text-align:center;margin:0 0 10px;font-family:Noto Serif SC,serif;font-size:26px;line-height:1.4}.doc-masthead p{color:#5d5246;text-align:justify;margin:0;font-size:13px;line-height:1.85}.status-line{color:#5d5246;justify-content:center;align-items:center;gap:8px;margin-top:14px;font-size:12px;display:flex}.status-dot{background:#8b1f1f;border-radius:50%;width:7px;height:7px}.steps{background:#faf4e6;border:1px solid #d9c8ac;grid-template-columns:repeat(4,1fr);margin:8px 16px 16px;padding:12px 4px 10px;display:grid;position:relative}.steps:before{content:"";background:#d2b9a0;height:1px;position:absolute;top:23px;left:12%;right:12%}.steps div{text-align:center;color:#6a5d4e;letter-spacing:1px;font-size:11px;position:relative}.steps b{color:#8b1f1f;background:#faf4e6;border:1px solid #8b1f1f;width:22px;height:22px;margin:0 auto 8px;font-family:Noto Serif SC,serif;font-size:11px;font-weight:600;line-height:20px;display:block}.page{padding:4px 0 12px}.section-title{letter-spacing:2px;align-items:baseline;gap:8px;margin:6px 20px 10px;font-family:Noto Serif SC,serif;font-size:15px;display:flex}.section-title:before{content:"";border:1px solid #8b1f1f;flex:none;width:10px;height:10px;transform:rotate(45deg)}.card,.panel{background:#faf4e6;border:1px solid #cbb89a;margin:0 16px 12px;box-shadow:inset 0 0 0 3px #faf4e6,inset 0 0 0 4px #8b1f1f2e}.card{padding:16px 16px 14px}.card h2{letter-spacing:1px;margin:0;font-family:Noto Serif SC,serif;font-size:17px;font-weight:700}.cell{border-bottom:1px dashed #e0d2ba;align-items:center;gap:10px;min-height:54px;padding:0 14px;display:flex}.cell:last-child{border-bottom:0}.cell .k{color:#5a4d3f;flex:0 0 88px;width:88px;font-size:14px}.cell .input{background:0 0;border:0;flex:1;min-width:0;height:48px;padding:0}.cell .btn.ghost{letter-spacing:0;flex:none;min-width:92px;height:32px;padding:0 8px;font-size:12px}.cell .input::placeholder{color:#b5a48f}.hint{color:#7a6b5a;margin:12px 20px;font-size:12px;line-height:1.8}.label{color:#6a5d4e;margin:0 0 8px;font-size:13px;display:block}.input{background:0 0;border:0;border-bottom:1px solid #cbb89a;border-radius:0;outline:none;width:100%;height:44px;padding:0 2px}.input:focus{border-bottom-color:#8b1f1f}.row{gap:8px;display:flex}.row .input{flex:1;min-width:0}.btn{color:#fff8ee;letter-spacing:4px;background:#8b1f1f;border:0;border-radius:0;height:46px;padding:0 16px;font-family:Noto Serif SC,serif;font-weight:600}.btn:disabled{opacity:.4}.btn.ghost{color:#8b1f1f;white-space:nowrap;letter-spacing:1px;background:0 0;border:1px solid #8b1f1f;min-width:108px;font-family:inherit}.btn.block{width:calc(100% - 32px);margin:16px 16px 0;display:block}.btn.plain{color:#4d4034;letter-spacing:2px;background:0 0;border:1px solid #cbb89a}.btn.in-card{width:100%;margin:14px 0 0}.actions{grid-template-columns:1fr 1fr;gap:10px;margin:14px 16px 0;display:grid}.actions .btn{width:100%;margin:0}.type-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.type-card{text-align:center;background:#fffaf0;border:1px solid #cbb89a;padding:22px 10px 16px;position:relative}.type-card.active{background:#f8eee2;border-color:#8b1f1f}.type-card b{letter-spacing:4px;margin-bottom:8px;font-family:Noto Serif SC,serif;font-size:22px;display:block}.type-card .check{color:#0000;border:1px solid #cbb89a;width:16px;height:16px;font-size:11px;line-height:14px;position:absolute;top:8px;right:8px}.type-card.active .check{color:#fff8ee;background:#8b1f1f;border-color:#8b1f1f}.muted{color:#7a6b5a;margin:0;font-size:12px;line-height:1.7}.toast{color:#fff8ee;z-index:50;background:#2a2218;max-width:80%;padding:10px 16px;font-size:13px;position:fixed;top:22%;left:50%;transform:translate(-50%)}.tabbar{width:min(430px,100%);height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#faf4e6;border-top:2px solid #8b1f1f;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar a{letter-spacing:2px;color:#7a6b5a;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;display:flex}.tabbar a svg{width:20px;height:20px}.tabbar a.active{color:#8b1f1f}.tag{color:#8b1f1f;letter-spacing:1px;white-space:nowrap;background:0 0;border:1px solid #8b1f1f;align-items:center;padding:1px 8px;font-size:11px;display:inline-flex}.tag.ok{color:#2f6b43;border-color:#2f6b43}.tag.warn{color:#8a6914;border-color:#8a6914}.tag.gray{color:#7a6b5a;border-color:#b5a48f}.project-item,.work-item{border-bottom:1px dashed #e0d2ba;align-items:center;gap:12px;padding:14px;display:flex}.project-item:last-child,.work-item:last-child{border-bottom:0}.project-ico{color:#8b1f1f;background:#f8eee2;border:1px solid #8b1f1f;flex:none;place-items:center;width:42px;height:42px;font-family:Noto Serif SC,serif;display:grid}.item-body{flex:1;min-width:0}.item-body b{text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:15px;font-weight:600;display:block;overflow:hidden}.chev{color:#b5a48f;font-size:18px}.thumb{object-fit:cover;background:#efe3cc;border:1px solid #d9c8ac;flex:none;width:64px;height:64px}.preview{object-fit:contain;background:#efe3cc;border:1px solid #d9c8ac;width:100%;max-height:260px;margin-top:12px;display:block}.spec{color:#5d5246;background:#f3ead6;border-left:3px solid #8b1f1f;margin-top:8px;padding:10px 12px;font-size:12px;line-height:1.8}.spec b{color:#8b1f1f;font-weight:600}.err{color:#8b1f1f;margin:8px 16px 0;font-size:12px}.file-btn{color:#6a5d4e;text-align:center;background:#fffaf0;border:1px dashed #8b1f1f;justify-content:center;align-items:center;width:100%;max-width:100%;min-height:88px;padding:12px;display:flex;overflow:hidden}.file-name{word-break:break-all;overflow-wrap:anywhere;width:100%;font-size:13px;line-height:1.45;display:block;overflow:hidden}.file-btn input{display:none}.meta-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.empty{text-align:center;color:#7a6b5a;padding:40px 16px}.empty .seal{margin:0 auto 12px}.age-chip{color:#8b1f1f;letter-spacing:1px;border-bottom:1px solid #8b1f1f;margin:12px 20px 0;padding:4px 0;font-size:12px;display:inline-flex}.sub{color:#7a6b5a;margin:6px 0 0;font-size:12px}.foot{text-align:center;color:#a3927d;letter-spacing:3px;margin:32px 20px 16px;font-size:11px}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.doc-sign{text-align:right;letter-spacing:2px;color:#5d5246;margin:18px 22px 0;font-family:Noto Serif SC,serif;font-size:13px}
