:root{color:#25233b;font-synthesis:none;background:#fff9f1;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #ba99cf}.campus-app{--purple:#694479;--muted:#797183;--line:#eee7ef;color:#25233b;background:#fff;flex-direction:column;font-size:15px;line-height:1.5;display:flex;overflow:hidden}.campus-app.native{max-width:480px;height:100dvh;min-height:420px;margin:0 auto;box-shadow:0 0 0 1px #ece3e9}.campus-app.embedded{height:100%;padding-top:var(--device-safe-area-top,54px);padding-bottom:var(--device-safe-area-bottom,34px)}.campus-app button{color:inherit;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:8px 12px;font-weight:600;display:inline-flex}.campus-app input,.campus-app select,.campus-app textarea{color:#25233b;background:#fff;border:1px solid #e5dfea;border-radius:9px;min-width:0;max-width:100%;min-height:44px;padding:10px 11px}.campus-app h1{letter-spacing:-.5px;margin:0;font-size:23px;font-weight:750;line-height:1.25}.campus-app h2{margin:16px 0 12px;font-size:17px}.campus-app p{margin:10px 0}.campus-app small{color:var(--muted);font-size:12px}.app-main{flex-direction:column;flex:1;min-height:0;display:flex}.app-footer{padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--line);background:#fff;flex-shrink:0}.campus-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#e3d6e9 transparent;flex:1;min-height:0;overflow:auto}.content{padding:12px 18px 25px}.page-title{flex-shrink:0;grid-template-columns:44px 1fr 44px;align-items:center;min-height:65px;padding:4px 12px;display:grid}.page-title h1{text-align:center}.campus-app .icon{flex-shrink:0;min-width:40px;padding:8px}.brand{color:#234a8c;align-items:center;gap:9px;min-height:70px;padding:12px 19px;display:flex}.brand img{object-fit:contain;width:52px;height:52px}.brand strong{letter-spacing:1px;font-size:26px;line-height:1.1;display:block}.brand span{letter-spacing:1px;margin-top:3px;font-size:12px;display:block}.shop-top{background:#fff;flex-shrink:0}.shop-top .brand{min-height:68px;padding:10px 16px}.search{color:#6d5978;background:#f7f5f8;border:1px solid #eee9ef;border-radius:24px;align-items:center;gap:10px;min-height:40px;margin:0 15px 11px;padding:0 12px;display:flex}.search input{outline-offset:0;background:0 0;border:0;flex:1;min-height:38px;padding:8px 0}.search .icon{min-height:34px}.repeat-strip{background:#f5eef9;border-radius:10px;align-items:center;gap:7px;min-height:67px;margin:0 14px 10px;padding:8px 9px;display:flex}.repeat-strip>span{white-space:nowrap;font-size:12px;font-weight:700}.repeat-strip img{object-fit:cover;border-radius:7px;width:42px;height:42px}.repeat-strip>div{flex:1;min-width:0}.repeat-strip strong{white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.repeat-strip small{font-size:10px;display:block}.campus-app .repeat-strip button{color:#fff;background:var(--purple);white-space:nowrap;border-radius:8px;min-height:42px;padding:6px 8px;font-size:12px}.catalog-layout{flex:1;min-height:0;display:flex}.category-rail{background:#faf8fb;flex:0 0 74px;min-height:0;display:flex}.category-rail .campus-scroll{width:74px}.campus-app .category-rail button{text-align:center;word-break:break-all;border-radius:0;width:100%;min-height:59px;padding:12px 7px;font-size:13px;display:flex}.campus-app .category-rail button.selected{background:var(--purple);color:#fff;border-radius:0 8px 8px 0}.product-scroll{padding:0 10px 0 9px}.product-row{border-bottom:1px solid #f0eaf0;gap:11px;min-height:110px;padding:11px 0;display:flex}.product-row>img{object-fit:cover;border-radius:9px;flex-shrink:0;width:88px;height:88px}.product-copy{flex:1;min-width:0;padding-bottom:32px;position:relative}.product-copy h2{word-break:break-all;margin:0 0 3px;font-size:14px;font-weight:700;line-height:1.4}.price{color:#75697f;font-size:13px}.product-copy>small{font-size:10px;display:block}.quantity{justify-content:flex-end;align-items:center;gap:5px;display:flex}.product-copy .quantity{position:absolute;bottom:-2px;right:0}.quantity span{text-align:center;min-width:17px}.campus-app .quantity button{width:32px;min-height:32px;color:var(--purple);border:1px solid #e2d6e8;border-radius:50%;padding:5px}.campus-app .quantity .add{background:var(--purple);color:#fff;border-color:var(--purple)}.basket{justify-content:space-between;align-items:center;gap:10px;min-height:69px;padding:10px 15px 8px;display:flex}.basket>div{flex-direction:column;font-size:14px;display:flex}.basket>div span{color:var(--muted);font-size:12px}.campus-app .primary{background:var(--purple);color:#fff;border-radius:11px;min-height:49px;padding:12px 18px}.basket .primary{width:46%;font-size:16px}.campus-app .full{width:100%;margin-top:12px}.bottom-nav{border-top:1px solid var(--line);min-height:60px;display:flex}.campus-app .bottom-nav button{color:#96909b;border-radius:0;flex-direction:column;flex:1;gap:2px;min-height:60px;padding:7px;font-size:13px;font-weight:500;display:flex}.campus-app .bottom-nav .active{color:var(--purple);font-weight:700}.fine{color:var(--muted);text-align:center;padding:4px 0;font-size:11px;line-height:1.65}.muted{color:var(--muted);font-size:12px}.purple{color:var(--purple)}.right{text-align:right}.row{justify-content:space-between;align-items:center;gap:10px;display:flex}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:8px;padding:45px 24px;display:flex}.empty h2{color:#25233b}.staff-link{color:#8e8097;text-align:center;padding:14px 0 25px;font-size:11px;display:block}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.demo-banner{text-align:center;color:#785f41;background:#fff5df;flex-shrink:0;padding:4px 8px;font-size:10px}.feedback{flex-shrink:0;align-items:center;gap:8px;padding:10px 14px;font-size:13px;line-height:1.45;display:flex}.feedback span{flex:1}.feedback svg{flex-shrink:0}.error{color:#9d3838;background:#fff0ee}.notice{color:#386642;background:#edf7ed}.info-line{color:#694479;background:#f5eff9;border-radius:9px;align-items:center;gap:10px;margin:0 0 16px;padding:14px;font-size:13px;display:flex}.info-line svg{flex-shrink:0}.form-fields label{border-bottom:1px solid var(--line);grid-template-columns:88px 1fr;align-items:center;gap:8px;padding:11px 0;display:grid}.form-fields label>span{font-size:14px;font-weight:600}.form-fields input{width:100%;font-size:14px}.campus-app .link-row{text-align:left;border-bottom:1px solid var(--line);border-radius:0;justify-content:space-between;width:100%;padding:14px 0;font-size:14px;display:flex}.link-row span{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.saved-contacts{background:#faf7fc;border-radius:9px;padding:8px}.saved-contacts>div{border-bottom:1px solid var(--line);display:flex}.saved-contacts button:first-child{flex-direction:column;flex:1;align-items:flex-start;font-size:13px}.saved-contacts small{font-weight:400}.checkout-items h2{margin-top:22px}.checkout-item{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:13px 0;display:flex}.checkout-item>img{border-radius:8px;width:58px;height:58px}.checkout-item>div:not(.quantity){flex:1;min-width:0}.checkout-item strong{font-size:14px;display:block}.checkout-item small{margin-top:4px;display:block}.checkout-item .quantity{gap:3px}.stack-label{flex-direction:column;gap:8px;margin:18px 0;font-size:14px;font-weight:600;display:flex}.stack-label input,.stack-label select{width:100%;font-weight:400}.text-button{font-size:13px;color:var(--purple)!important}.small{font-size:11px!important}.login-form h2{margin:22px 0}.login-form .brand{padding:18px 0 0}.success-note{text-align:center;color:var(--purple);padding:8px 0 20px}.success-note p{color:var(--muted);font-size:13px}.order-entry{border:1px solid var(--line);border-radius:10px;margin-top:14px;padding:14px 12px}.order-number{word-break:break-all;font-size:11px;font-weight:600}.badge{color:#705486;white-space:nowrap;background:#f3eff7;border-radius:7px;flex-shrink:0;padding:4px 7px;font-size:11px}.badge.pending{color:#a06c17;background:#fff3df}.badge.confirmed{color:#694479;background:#f0e8f6}.badge.cancelled{color:#777;background:#f0f0f0}.time{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:flex}.person{align-items:center;gap:17px;margin:11px 0;font-size:14px;display:flex}.ordered-item{align-items:center;gap:8px;margin:8px 0;font-size:14px;display:flex}.ordered-item img{object-fit:cover;border-radius:6px;width:43px;height:43px}.ordered-item span{flex:1}.ordered-item strong{font-size:14px}.address{color:#706578;align-items:flex-start;gap:5px;font-size:12px;display:flex}.address svg{flex-shrink:0;margin-top:3px}.order-actions{flex-wrap:wrap;gap:8px;margin:9px 0 16px;display:flex}.campus-app .order-actions button,.campus-app .outline{color:var(--purple);border:1px solid #d9c8e2;flex:1;font-size:13px}.order-actions button{white-space:nowrap}.scope{margin-bottom:15px}.scope>div{gap:9px;margin-bottom:9px;display:flex}.scope input,.scope select{width:50%;font-size:13px}.scope>div:nth-child(2)>select{flex:1;width:auto}.cost-head{text-align:center;padding:22px 0 19px}.cost-head>strong{color:var(--purple);letter-spacing:-1px;font-size:36px}.cost-head p{margin:3px 0}.cost-head small{font-size:11px}.period-buttons{gap:6px;display:flex}.campus-app .period-buttons button{color:var(--purple);background:#f4eff7;flex:1;font-size:13px}.cost-table{border:1px solid var(--line);border-radius:9px;overflow:hidden}.cost-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(80px,1fr) 58px 30px 64px;align-items:center;gap:6px;padding:12px 9px;font-size:12px;display:grid}.cost-row>span:not(:first-child),.cost-row strong{text-align:right;font-size:11px}.table-head{background:#f7f4fa;font-weight:600}.table-head>span:first-child{font-size:12px}.total-line{color:var(--purple);padding:12px}.statement-text{resize:vertical;white-space:pre-wrap;width:100%;min-height:420px;font-family:inherit;font-size:13px;line-height:1.85;display:block}.checkbox{align-items:center;gap:9px;margin:12px 0;font-size:13px;display:flex}.checkbox input{width:18px;height:18px;min-height:18px;accent-color:var(--purple)}.summary-entry{border-bottom:1px solid var(--line);padding:12px 0}.summary-entry>.row>strong{font-size:12px}.search-field{width:100%}.setting-product{text-align:left;width:100%;font-size:12px;border-bottom:1px solid var(--line)!important;border-radius:0!important;justify-content:space-between!important;padding:12px 0!important;display:flex!important}.setting-product img{border-radius:6px;width:44px;height:44px}.setting-product>span:nth-child(2){flex:1;min-width:0}.setting-product strong{font-size:13px;display:block}.setting-product small{margin-top:4px;font-size:10px;font-weight:400;display:block}.edit-food{object-fit:cover;border-radius:12px;width:120px;height:120px;margin:0 auto;display:block}@media (width<=360px){.category-rail,.category-rail .campus-scroll{flex-basis:66px;width:66px}.product-row{gap:8px}.product-row>img{width:78px;height:78px}.product-copy h2{font-size:13px}.content{padding-left:13px;padding-right:13px}.cost-row{grid-template-columns:minmax(68px,1fr) 51px 25px 59px}.repeat-strip>span{display:none}}.campus-app .quantity button{width:44px;min-height:44px}.product-copy{padding-bottom:42px}.checkout-item .quantity button{width:36px;min-height:44px}.campus-app .statement-text{white-space:pre-wrap;resize:vertical;min-height:430px;font-size:13px;line-height:1.8}.campus-app .setting-product .muted{font-size:11px}.admin-order{margin-top:9px;padding:10px 12px}.admin-order .order-number{font-size:13px}.admin-order .person{margin:7px 0}.admin-order .ordered-item{margin:5px 0}.admin-order .address{margin:7px 0;font-size:13px}.campus-app .order-inline{min-height:30px;padding:0;font-size:12px}.admin-action{padding:8px 16px}.admin-action .full{margin:0}.cost-row>span:not(:first-child),.cost-row strong{font-size:12px}.campus-app .period-buttons button.active{background:var(--purple);color:#fff}.cutoff-notice{color:#82570d;background:#fff3df;margin:0;padding:10px 16px;font-size:13px;line-height:1.6}
