@font-face{font-family:DOPVazirmatn;src:url(fonts/Vazirmatn.woff2) format('woff2');font-weight:100 900;font-display:swap}
.dop-reservation,.dop-map-editor{--dop-res-accent:#006b52;--dop-res-bg:#f3f7f5;--dop-res-point:#fff;--dop-res-text:#12372d;--dop-res-radius:20px;--dop-res-point-size:48px;font-family:DOPVazirmatn,Tahoma,sans-serif;color:var(--dop-res-text);direction:rtl}
.dop-reservation{max-width:1000px;margin:24px auto;padding:24px;border:1px solid #dce8e2;border-radius:var(--dop-res-radius);background:#fff;box-shadow:0 12px 40px #103e2910;box-sizing:border-box}
.dop-reservation *{box-sizing:border-box;font-family:inherit}
.dop-reservation h2{font-size:26px;margin:0 0 12px;color:var(--dop-res-text)}
.dop-res-map{position:relative;width:100%;height:420px;min-height:280px;background-color:var(--dop-res-bg);background-image:radial-gradient(#607b6530 1px,transparent 1px);background-size:16px 16px;border:1px solid #a8c4b350;border-radius:var(--dop-res-radius);overflow:hidden;margin:18px 0}
.dop-res-map .dop-map-point{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--dop-res-point-size);height:var(--dop-res-point-size);min-width:0;min-height:0;border:2px solid var(--dop-res-accent);border-radius:50%;background:var(--dop-res-point);color:var(--dop-res-text);font:700 16px DOPVazirmatn,Tahoma,sans-serif;cursor:pointer;padding:2px;box-shadow:0 4px 14px #174b2517;display:grid;place-items:center;line-height:1.3;white-space:normal}
.dop-res-map .dop-map-point:hover,.dop-res-map .dop-map-point:focus-visible{outline:3px solid #a6c7b0;outline-offset:3px}
.dop-res-map .dop-map-point[data-selected=true]{background:var(--dop-res-accent);color:#fff;box-shadow:0 0 0 5px #37754830}
.dop-res-map .dop-map-point[data-busy=true]{background:#dfe4e1;color:#6a766f;border-color:#9ba8a1;cursor:not-allowed}
.dop-res-map .dop-map-point:disabled:not([data-busy=true]){opacity:.5;cursor:default}
.dop-res-map .dop-map-label{position:absolute;transform:translate(-50%,-50%);border:1px dashed #889f9450;border-radius:8px;padding:6px 10px;background:#ffffffbb;color:var(--dop-res-text);font:inherit;max-width:40%;white-space:normal;font-size:13px}
.dop-map-editor .dop-map-point,.dop-map-editor .dop-map-label{touch-action:none;cursor:grab}
.dop-res-fields{display:flex;gap:14px;flex-wrap:wrap;align-items:end}
.dop-res-fields label{display:grid;gap:7px;flex:1;min-width:180px;font-size:14px}
.dop-reservation input,.dop-reservation select,.dop-reservation textarea{border:1px solid #c5d7ce;border-radius:10px;padding:10px 12px;background:#fff;color:var(--dop-res-text);min-height:44px;width:100%;font-size:16px}
.dop-reservation button:not(.dop-map-point){border:0;border-radius:12px;background:var(--dop-res-accent);color:#fff;font:600 15px DOPVazirmatn,Tahoma,sans-serif;padding:12px 18px;cursor:pointer}
.dop-reservation button:disabled{opacity:.5;cursor:wait}
.dop-reservation [type=submit]{margin-top:20px;width:100%}
.dop-res-selected{padding:10px 14px;border-radius:12px;background:var(--dop-res-bg);font-weight:600}
.dop-res-notice{font-size:14px;line-height:1.8;min-height:24px}
.dop-res-success{background:#e6f7ea;padding:14px;border-radius:12px;color:#195d30}
@media(max-width:600px){.dop-reservation{padding:16px}.dop-res-map{height:350px}.dop-res-fields label{min-width:130px}.dop-res-map .dop-map-label{font-size:11px}.dop-res-map .dop-map-point{font-size:14px}}

/* Floor image, raised tables, sections and a bounded pan/zoom viewport. */
.dop-reservation [hidden],.dop-map-editor [hidden]{display:none!important}
.dop-map-viewport{position:relative;height:460px;width:100%;overflow:hidden;touch-action:none;border:1px solid #c2d7ca;border-radius:var(--dop-res-radius);background:var(--dop-res-bg);margin:18px 0;cursor:grab;isolation:isolate}
.dop-map-stage{position:absolute;left:50%;top:50%;width:max(100%,700px);height:500px;transform-origin:center}
.dop-map-stage>.dop-res-map{width:100%;height:100%;margin:0;overflow:visible;transform-style:preserve-3d}
.dop-res-map[data-three=true]:not([data-editing="1"]){transform:perspective(1200px) rotateX(22deg);box-shadow:0 16px 0 #a6b7ac,0 30px 45px #183e3620}
.dop-floor-image{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;border-radius:inherit;pointer-events:none;opacity:.92}
.dop-map-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;filter:drop-shadow(0 6px 0 #a3aca7)}
.dop-map-lines line{stroke:#495b50;stroke-width:1.1;stroke-linecap:round}
.dop-map-section{position:absolute;border:2px dashed #006b5290;background:#006b5208;border-radius:12px;pointer-events:none}
.dop-map-section>span{position:absolute;top:4px;right:6px;font-size:12px;background:#ffffffed;border-radius:6px;padding:4px 8px;color:#12372d;max-width:100%;text-overflow:ellipsis;overflow:hidden}
.dop-map-section[data-closed=true]{background:#11111118;border-color:#111}.dop-map-section[data-closed=true]>span{background:#111;color:#fff}
.dop-map-editor .dop-map-section{pointer-events:auto;touch-action:none;cursor:grab}
.dop-map-editor .dop-res-map[data-drawing=true]{cursor:crosshair}
.dop-map-viewport.dop-panning{cursor:grabbing}
.dop-map-zoom{position:absolute;bottom:12px;left:12px;display:flex;gap:6px;z-index:20;direction:ltr;background:#ffffffee;padding:5px;border-radius:14px;box-shadow:0 4px 20px #15392f20}
.dop-reservation .dop-map-zoom button,.dop-map-editor .dop-map-zoom button{padding:8px 12px!important;min-height:38px;border:0;border-radius:8px;background:var(--dop-res-accent);color:#fff;font:600 13px DOPVazirmatn,Tahoma,sans-serif;cursor:pointer}
.dop-res-map .dop-map-point{background:var(--dop-available-color,#16803d);border-color:var(--dop-available-color,#16803d);color:#fff;overflow:visible;z-index:4;display:flex;flex-direction:column;justify-content:center;box-shadow:0 7px 0 #0c5025,0 12px 15px #174b2530}
.dop-res-map[data-three=true] .dop-map-point{transform:translate(-50%,-50%) translateZ(18px)}
.dop-res-map .dop-map-point b{font-size:15px;line-height:1.2}.dop-res-map .dop-capacity,.dop-res-map .dop-join{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);font-size:10px;line-height:1.4;white-space:nowrap;color:#173f2d;background:#fffffff5;padding:2px 6px;border-radius:5px;box-shadow:0 2px 6px #123c2420;pointer-events:none}
.dop-res-map .dop-join{top:calc(100% + 29px);font-size:9px;color:#476a57}
.dop-res-map .dop-map-point[data-closed=true]{background:var(--dop-unavailable-color,#111);border-color:var(--dop-unavailable-color,#111);color:#fff;box-shadow:0 7px 0 #050505,0 12px 15px #1113;cursor:not-allowed}
.dop-res-map .dop-map-point[data-busy=true]{background:var(--dop-busy-color,#dc2626);border-color:var(--dop-busy-color,#dc2626);color:#fff;box-shadow:0 7px 0 #8c1313,0 12px 15px #dc262630;cursor:not-allowed}
.dop-res-map .dop-map-point:disabled{opacity:1!important}.dop-res-map .dop-map-point[data-selected=true]{outline:4px solid #e7ac31;outline-offset:4px;background:var(--dop-res-accent)}
.dop-map-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;margin:12px 0}.dop-map-legend span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:5px;background:var(--dop-available-color)}
.dop-map-legend [data-state=closed]:before{background:var(--dop-unavailable-color)}.dop-map-legend [data-state=busy]:before{background:var(--dop-busy-color)}
.dop-reservation button:not(.dop-map-point){color:var(--dop-map-button-text,#fff);border-radius:var(--dop-map-button-radius,12px)}
.dop-reservation button:not(.dop-map-point):hover{background:var(--dop-map-hover,#00543f)}
.dop-res-path{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-height:220px;align-content:center;padding:28px;background:var(--dop-res-bg);border-radius:var(--dop-res-radius);border:1px solid #d0ded6}
.dop-res-path strong,.dop-res-path p{grid-column:1/-1;text-align:center}.dop-res-path button{padding:24px!important;font-size:18px!important}
.dop-res-nav{display:flex;justify-content:flex-end;margin:12px 0}.dop-reservation .dop-res-nav button{font-size:12px;padding:8px 12px}
.dop-res-lookup{display:grid;gap:12px;max-width:600px;margin:20px auto}.dop-res-lookup label{display:grid;gap:6px}.dop-res-lookup small{color:#577366;line-height:1.8}.dop-res-lookup>div{display:grid;gap:10px}
.dop-res-actions{display:flex;gap:12px;align-items:center}.dop-res-actions>button{flex:1;margin-top:20px}
.dop-reservation .dop-res-actions button:nth-child(2){background:#a72222}
.dop-res-receipt{margin-top:20px;background:var(--dop-res-bg);padding:20px;border-radius:var(--dop-res-radius)}.dop-res-receipt code{display:block;padding:14px;background:#fff;color:#164930;word-break:break-all;font:600 16px monospace;margin-bottom:12px;user-select:all}
.dop-code-warning{color:#b91c1c;font-size:13px;line-height:1.8}.dop-res-cancel-confirm{padding:16px;background:#fff0ee;border:1px solid #e8b4ac;border-radius:12px}.dop-res-cancel-confirm button{margin:4px}
.dop-image-crop-preview{position:relative;width:min(100%,500px);margin:16px 0;direction:ltr;touch-action:none;line-height:0;overflow:hidden}.dop-image-crop-preview img{display:block;width:100%;height:auto}.dop-crop-rect{position:absolute;border:3px solid #f0aa26;background:#ffcc0030;cursor:move;touch-action:none;box-shadow:0 0 0 800px #1115}.dop-crop-rect button{position:absolute;bottom:0;right:0;cursor:nwse-resize;border:0;background:#f0aa26;padding:6px;line-height:1}
@media(max-width:600px){.dop-map-viewport{height:380px}.dop-res-path{grid-template-columns:1fr;padding:18px;gap:12px}.dop-res-path button{padding:20px!important}.dop-res-actions{display:grid;gap:10px}.dop-res-actions>button{width:100%;margin-top:8px}.dop-res-fields>button{width:100%;text-align:center}.dop-res-fields label{flex-basis:100%;min-width:0}.dop-reservation{width:100%;max-width:100%;margin:12px 0}.dop-res-receipt code{font-size:13px}}

/* One marker size in editor and customer map; minimum target is retained. */
.dop-res-map .dop-map-point{width:var(--dop-res-point-size,48px)!important;height:var(--dop-res-point-size,48px)!important;min-width:0!important;min-height:0!important;border-radius:50%;padding:0!important;box-shadow:0 var(--dop-point-depth,7px) 0 color-mix(in srgb,var(--dop-available-color,#16803d) 60%,#000),0 calc(var(--dop-point-depth,7px) + 5px) 15px #174b2530}
.dop-res-map .dop-map-point b{font-size:var(--dop-point-font,15px)!important}
.dop-res-map .dop-capacity,.dop-res-map .dop-join{font-size:var(--dop-point-label-size,10px)!important}
.dop-res-map[data-point-shape=rounded] .dop-map-point{border-radius:25%}.dop-res-map[data-point-shape=square] .dop-map-point{border-radius:5%}
.dop-res-map .dop-map-point[data-closed=true]{box-shadow:0 var(--dop-point-depth,7px) 0 color-mix(in srgb,var(--dop-unavailable-color,#111) 60%,#000),0 12px 15px #1113}
.dop-res-map .dop-map-point[data-busy=true]{box-shadow:0 var(--dop-point-depth,7px) 0 color-mix(in srgb,var(--dop-busy-color,#dc2626) 60%,#000),0 12px 15px #dc262630}
.dop-res-map[data-three=false] .dop-map-point{box-shadow:none}

.dop-res-map .dop-table-note{box-sizing:border-box;position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);display:block;max-width:min(70px,calc(var(--dop-res-point-size,48px) * 1.6));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 9px/1.6 DOPVazirmatn,Tahoma!important;background:#ffffffee;color:#24503e;border:1px solid #d4e6dc;border-radius:6px;padding:2px 5px;box-shadow:0 2px 7px #0001;pointer-events:none}.dop-res-map .dop-map-point:focus-visible .dop-table-note{max-width:150px;white-space:normal;z-index:20}.dop-res-map .dop-map-point>b{max-width:100%;white-space:nowrap}
