.zvp{--bg:#FBF7F1;--card:#FFFDF9;--sand:#F3ECE2;--line:#E7DCCE;--ink:#1F1A16;--txt:#5C4635;--mute:#7A6A5C;--car:#9C6B42;--car-d:#86592F;--car-l:#A97A4F;--sage:#7E8F6B;--sage-d:#5F6E4C;--sage-l:#EEF0E7}
.zvp *{box-sizing:border-box}
.zvp [hidden]{display:none !important}
.zvp{margin:0;background:var(--bg);font-family:'Montserrat',system-ui,sans-serif;color:var(--txt)}
.zvp a{color:var(--txt)}
.zvp a:hover{color:var(--car)}
.zvp .serif{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500}
.zvp .script{font-family:'Great Vibes',cursive;font-weight:400}
.zvp button,.zvp input,.zvp select,.zvp textarea{font:inherit;color:inherit}
.zvp .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 24px;border-radius:999px;border:0;font-weight:600;font-size:14px;text-decoration:none;cursor:pointer;transition:transform .25s,background .25s,box-shadow .25s}
.zvp .btn:hover{transform:translateY(-2px)}
.zvp .btn--main{background:var(--car);color:#FFFDF9 !important;box-shadow:0 14px 30px -16px rgba(92,70,53,.8)}
.zvp .btn--main:hover{background:var(--car-d)}
.zvp .btn--line{background:transparent;color:#8E5F38 !important;box-shadow:inset 0 0 0 1.5px #C9A886}
.zvp .btn--line:hover{background:var(--sand)}
.zvp .btn--sm{min-height:38px;padding:0 16px;font-size:13px}
.zvp .nav a{color:#3B2F27;text-decoration:none;font-size:13.5px;font-weight:500;padding:6px 0;border-bottom:1.5px solid transparent}
.zvp .nav a:hover{color:var(--car);border-bottom-color:#B88C65}
.zvp .nav a.is-on{color:var(--car);border-bottom-color:var(--car)}
.zvp .wrap{max-width:1360px;margin:0 auto;padding:0 clamp(16px,3vw,40px)}
.zvp .kicker{font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-d)}
.zvp .panel{background:var(--card);border-radius:24px;box-shadow:0 24px 50px -36px rgba(59,47,39,.5)}
.zvp .chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;border:0;background:var(--card);box-shadow:inset 0 0 0 1.3px var(--line);font-size:13.5px;font-weight:500;cursor:pointer;transition:background .2s,box-shadow .2s,color .2s}
.zvp .chip:hover{box-shadow:inset 0 0 0 1.3px #C9A886}
.zvp .chip[aria-pressed="true"]{background:var(--car);color:#FFFDF9;box-shadow:none}
.zvp .chip--sm{min-height:34px;padding:0 13px;font-size:12.5px}
.zvp .tpl{display:flex;gap:14px;align-items:center;padding:14px 16px;border-radius:18px;border:0;background:var(--card);text-align:left;cursor:pointer;box-shadow:inset 0 0 0 1.3px var(--line);transition:transform .3s,box-shadow .3s}
.zvp .tpl:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1.5px #C9A886,0 18px 34px -26px rgba(59,47,39,.5)}
.zvp .tpl img{width:62px;height:62px;border-radius:14px;object-fit:cover;flex:none}
.zvp .cat{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.zvp .mod{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px 12px 10px;border-radius:18px;background:var(--card);box-shadow:inset 0 0 0 1.2px var(--line);cursor:grab;user-select:none;transition:transform .25s,box-shadow .25s}
.zvp .mod:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1.5px #C9A886,0 16px 30px -24px rgba(59,47,39,.55)}
.zvp .mod:active{cursor:grabbing}
.zvp .mod.dragging{opacity:.45}
.zvp .mod-ic{width:42px;height:38px;object-fit:contain}
.zvp .mod-ic-svg{width:38px;height:38px;border-radius:50%;background:var(--sand);display:flex;align-items:center;justify-content:center}
.zvp .mod-n{font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;font-weight:600;line-height:1.05;color:var(--ink)}
.zvp .mod-p{font-size:11.5px;color:var(--mute)}
.zvp .mod-add{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:0;background:var(--sand);color:var(--car);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.zvp .mod-add:hover{background:var(--car);color:#FFFDF9}
.zvp .tag-idea{position:absolute;left:12px;top:-8px;padding:2px 8px;border-radius:999px;background:var(--sage-l);color:var(--sage-d);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;box-shadow:inset 0 0 0 1px #C9CFBB}
.zvp .days-tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.zvp .day{border-radius:22px;background:var(--sand);padding:16px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s,background .2s}
.zvp .day.over{background:#EFE3D3;box-shadow:inset 0 0 0 2px var(--car-l)}
.zvp .day-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.zvp .bar{height:8px;border-radius:99px;background:#E3D6C6;overflow:hidden;flex:1 1 140px;max-width:240px}
.zvp .bar i{display:block;height:100%;border-radius:99px;background:var(--sage);transition:width .4s}
.zvp .bar.warn i{background:#C0703A}
.zvp .empty{border:1.5px dashed #CDBBA6;border-radius:18px;padding:26px 16px;text-align:center;color:var(--mute);font-size:13.5px}
.zvp .blk{background:var(--card);border-radius:18px;box-shadow:0 10px 24px -20px rgba(59,47,39,.6);overflow:hidden;animation:pop .35s cubic-bezier(.2,.8,.2,1.2)}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}}
.zvp .blk-h{display:flex;align-items:center;gap:12px;padding:10px 12px}
.zvp .blk-time{flex:none;width:52px;text-align:center;font-size:12px;font-weight:700;color:var(--car)}
.zvp .blk-ic{width:40px;height:36px;object-fit:contain;flex:none}
.zvp .blk-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.zvp .blk-t b{font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;font-weight:600;line-height:1.05;color:var(--ink)}
.zvp .blk-t span{font-size:12px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zvp .blk-pr{font-weight:600;font-size:13.5px;color:#2F2620;white-space:nowrap}
.zvp .ib{width:34px;height:34px;flex:none;border-radius:50%;border:0;background:transparent;color:var(--mute);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.zvp .ib:hover{background:var(--sand);color:var(--car)}
.zvp .ib:disabled{opacity:.3;cursor:default}
.zvp .blk-cfg{padding:4px 16px 16px 76px;display:flex;flex-direction:column;gap:14px;border-top:1px solid #F0E7DB}
.zvp .opt{display:flex;flex-direction:column;gap:7px}
.zvp .opt-l{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.zvp .opt-row{display:flex;flex-wrap:wrap;gap:6px}
.zvp .range{display:flex;align-items:center;gap:12px}
.zvp .range input{flex:1;accent-color:var(--car)}
.zvp .range output{min-width:64px;font-weight:700;color:var(--ink)}
.zvp .diff{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}
.zvp .diff i{width:8px;height:8px;border-radius:50%}
.zvp .d1{background:#E9EEE1;color:#4F6040}
.zvp .d1 i{background:#7E8F6B}
.zvp .d2{background:#F6E9D6;color:#86592F}
.zvp .d2 i{background:#C08A4E}
.zvp .d3{background:#F4DED3;color:#8C3F22}
.zvp .d3 i{background:#B95B35}
.zvp .sum{position:sticky;top:96px;display:flex;flex-direction:column;gap:16px;padding:24px}
.zvp .sum-li{display:flex;justify-content:space-between;gap:12px;font-size:13px;line-height:1.4}
.zvp .sum-li span:last-child{white-space:nowrap;font-weight:600;color:#2F2620}
.zvp .sum-day{font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-d);padding-top:6px}
.zvp .total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.zvp .total b{font-family:'Cormorant Garamond',Georgia,serif;font-size:40px;font-weight:600;color:var(--ink);line-height:1}
.zvp .note{font-size:11.5px;line-height:1.5;color:var(--mute)}
.zvp .carnote{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:14px;background:var(--sage-l);color:var(--sage-d);font-size:12.5px;line-height:1.5;box-shadow:inset 0 0 0 1px #C9CFBB}
.zvp .demo{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:14px;background:var(--sage-l);color:var(--sage-d);font-size:12px;line-height:1.5;box-shadow:inset 0 0 0 1px #C9CFBB}
.zvp .in{width:100%;min-height:46px;padding:11px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:14px;color:#2F2620}
.zvp .in:focus{outline:none;border-color:var(--car-l);box-shadow:0 0 0 3px rgba(169,122,79,.15)}
.zvp .lbl{font-size:12.5px;font-weight:600;color:var(--txt)}
.zvp .toast{position:fixed;left:50%;bottom:26px;translate:-50% 20px;opacity:0;padding:12px 20px;border-radius:999px;background:#2F2620;color:#FFFDF9;font-size:13.5px;transition:opacity .3s,translate .4s;z-index:50;pointer-events:none}
.zvp .toast.on{opacity:1;translate:-50% 0}
.zvp .layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:28px;align-items:start}
@media (max-width:1020px){.zvp .layout{grid-template-columns:minmax(0,1fr)}
.zvp .sum{position:static}}
@media (max-width:640px){.zvp .panel{padding:18px !important}
.zvp .day{padding:10px}
.zvp .blk-h{flex-wrap:wrap;row-gap:4px}
.zvp .blk-t{flex:1 1 calc(100% - 56px)}
.zvp .blk-pr{margin-left:52px;flex:1}
.zvp .blk-cfg{padding-left:16px}
.zvp .blk-time{display:none}
.zvp .mod-n{font-size:17px}
.zvp .nav{flex-wrap:nowrap !important;overflow-x:auto;width:100%;gap:18px !important;padding-bottom:6px}
.zvp .nav a{white-space:nowrap}
.zvp .hide-sm{display:none !important}}
@media print{.zvp .no-print,.zvp .toast{display:none !important}
.zvp .layout{grid-template-columns:1fr}
.zvp .sum{position:static;box-shadow:none}
.zvp{background:#fff}
.zvp .panel{box-shadow:none}}
@media (prefers-reduced-motion:reduce){.zvp *{animation:none !important;transition:none !important}}
@media print{.zv-header,.zv-footer,.zvp .no-print{display:none !important}}
.zvp .zvp-num input{flex:0 0 110px;max-width:110px}.zvp .zvp-num output{min-width:0;font-weight:600}
