:root{--ground:#F4F3EE;--ink:#1C1F1D;--muted:#5C625E;--line:#DEDCD3;--free:#E3F1E6;--freeInk:#2E5E3B;--hold:#F4C95D;--holdInk:#3A2A00;--ota:#2B5C8A;--closed:#C23B32}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--ground);color:var(--ink);font-family:'IBM Plex Sans','Segoe UI',system-ui,sans-serif}
.wrap{max-width:1480px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 48px;display:flex;flex-direction:column;gap:20px}
header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.hotel{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
h1{margin:0;font-size:28px}
.month{display:flex;align-items:center;gap:10px}
.month a{width:44px;height:44px;border:1px solid #CFCDC4;background:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;font-size:20px}
.month>span{min-width:150px;text-align:center;font-weight:600;font-size:17px}
.sync{display:flex;align-items:center;gap:8px;padding:0 14px;height:44px;background:#fff;border:1px solid #CFCDC4;border-radius:10px;font-size:14px}
.dot{width:10px;height:10px;border-radius:50%;background:#2E7D47}.dot.off{background:#B8860B}
.legend{display:flex;flex-wrap:wrap;gap:18px;font-size:14px;color:#3B403C}
.legend i{display:inline-block;width:18px;height:18px;border-radius:5px;vertical-align:middle;margin-right:8px}
.main{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.card{background:#fff;border:1px solid var(--line);border-radius:14px}
.gridbox{flex:999 1 560px;min-width:0;overflow:hidden}
.scroll{overflow-x:auto}
.grid{min-width:1080px;padding:10px;display:grid;grid-template-columns:76px repeat(var(--rooms),minmax(66px,1fr)) 52px;gap:4px}
.h{font-size:12px;font-weight:600;color:var(--muted);padding:8px 4px;text-align:center}
.h.room{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--ink)}
.date{display:flex;flex-direction:column;justify-content:center;padding:2px 8px;border-radius:6px}
.date.we{background:#ECEAE2}.date b{font-family:'IBM Plex Mono',monospace;font-size:16px}.date small{font-size:12px;color:var(--muted)}
.cell{min-height:38px;border:0;border-radius:6px;font-family:inherit;font-weight:600;font-size:12px;line-height:1.1;cursor:pointer;padding:4px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell.free{background:var(--free);color:var(--freeInk)}.cell.hold{background:var(--hold);color:var(--holdInk)}
.cell.ota{background:var(--ota);color:#fff}.cell.closed{background:var(--closed);color:#fff}
.cell.sel{outline:3px solid var(--ink);outline-offset:1px}
.cell:focus-visible{outline:3px solid var(--ota);outline-offset:1px}
.free-n{display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--freeInk)}
aside{flex:1 1 320px;max-width:400px;display:flex;flex-direction:column;gap:16px}
aside .card{padding:20px;display:flex;flex-direction:column;gap:14px}
h2{margin:0;font-size:18px}
.selbox{background:var(--ground);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.selbox small{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.selbox b{font-size:16px}.selbox span{font-size:13px;color:#3B403C}
label{font-size:14px;font-weight:600;display:flex;flex-direction:column;gap:6px}
select,input{height:44px;border:1px solid #CFCDC4;border-radius:10px;padding:0 12px;font:inherit;background:#fff}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.btn{flex:1 1 120px;height:46px;border-radius:10px;font-family:inherit;font-weight:600;font-size:15px;cursor:pointer}
.btn.dark{border:0;background:var(--ink);color:#fff}.btn.light{border:1px solid var(--ink);background:#fff;color:var(--ink)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.note{margin:0;font-size:13px;color:#3B403C;line-height:1.5}
.msg{font-size:14px;font-weight:600;color:#8A3B12;min-height:1em}
.act{display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.4}
.act div{display:flex;gap:10px}.act time{flex:none;color:var(--muted);font-size:12px;width:44px;padding-top:2px}
.pricerow{display:flex;gap:10px}.pricerow label:first-child{flex:1 1 auto;min-width:0}.pricerow label:last-child{flex:0 0 100px}.pricerow input{width:100%}
.details{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:10px 0 2px;padding-top:10px;border-top:1px solid var(--line);font-size:14px}
.details dt{color:var(--muted);font-weight:600}.details dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.newonly{display:flex;flex-direction:column;gap:14px}
.cell.stay{outline:2px dashed var(--ink);outline-offset:1px}
.cell{text-transform:uppercase} /* names in the grid in capitals (lang="tr": i → İ) */
/* Booking panel: everything in capital letters */
.booking, .booking input, .booking select, .booking button{text-transform:uppercase}
/* Hover card on booked boxes */
.tip{position:fixed;z-index:10;margin:0;padding:12px 14px;min-width:220px;max-width:320px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px rgba(28,31,29,.18);pointer-events:none;text-transform:uppercase;font-size:13px}
/* Selected date: highlight the whole line */
.date.row{background:var(--ink);color:#fff}.date.row small{color:#D6D4CC}
.cell.row{box-shadow:inset 0 0 0 2px rgba(28,31,29,.45)}
.cell.free.row{background:#CDE5D3}
.free-n.row{background:var(--ink);color:#fff;border-radius:6px}
.date{cursor:pointer;user-select:none}
/* Room number inside free boxes, so you know the room when the header is off screen */
.cell.free::before{content:attr(data-room);font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:15px;color:rgba(46,94,59,.6)}
/* Hide / show side panel */
.toggle{height:44px;padding:0 16px;border:1px solid #CFCDC4;background:#fff;border-radius:10px;font:inherit;font-weight:600;font-size:14px;color:var(--ink);cursor:pointer}
.toggle:hover{border-color:var(--ink)}
body.nopanel aside{display:none}
/* Drag selection */
.cell.msel{box-shadow:inset 0 0 0 3px var(--ink)}
.cell.free.msel{background:#C4E0CB}
/* Edit: room buttons to add / take out rooms of a booking */
.roompicks{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600}
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px}
.chip{height:38px;border:1px solid #CFCDC4;background:#fff;border-radius:8px;font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--hold);border-color:var(--hold);color:var(--holdInk)}
.details dd{white-space:pre-line}  /* nights breakdown on separate lines */
.date.hov{background:#F6C9C4;color:#5A1F1A}.date.hov small{color:#5A1F1A}  /* date of the box under the mouse */
/* Side panel stays on screen while scrolling the grid (only when it sits next to the grid) */
@media (min-width:980px){aside{position:sticky;top:12px;max-height:calc(100vh - 72px);overflow-y:auto}}
/* Latest activity: closed box, click the title to open */
aside .actbox{padding:0;display:block}
.actbox summary{list-style:none;cursor:pointer;padding:20px;display:flex;align-items:center;justify-content:space-between}
.actbox summary::-webkit-details-marker{display:none}
.actbox summary::after{content:'▸';font-size:18px;color:var(--muted);transition:transform .15s}
.actbox[open] summary::after{transform:rotate(90deg)}
.actbox .act{padding:0 20px 20px;max-height:50vh;overflow-y:auto}  /* long list scrolls inside the box */
.toggle:disabled{opacity:.45;cursor:not-allowed}
/* Thin line under the day the mouse is on */
.grid{position:relative}
.hline{position:absolute;left:10px;right:10px;height:2px;background:#E8A39B;border-radius:1px;pointer-events:none}
/* Special days: strong color on the date, light tint on free boxes, banner + swatches in the panel */
:root{--sp-lilac:#D7C6F2;--sp-lilac-l:#EEE6FA;--sp-orange:#F6C796;--sp-orange-l:#FCE7D2;--sp-pink:#F3BCD3;--sp-pink-l:#FBE3EE;--sp-teal:#B5E0DA;--sp-teal-l:#DFF2EF}
.date.sp-lilac{background:var(--sp-lilac)}.cell.free.sp-lilac{background:var(--sp-lilac-l)}
.date.sp-orange{background:var(--sp-orange)}.cell.free.sp-orange{background:var(--sp-orange-l)}
.date.sp-pink{background:var(--sp-pink)}.cell.free.sp-pink{background:var(--sp-pink-l)}
.date.sp-teal{background:var(--sp-teal)}.cell.free.sp-teal{background:var(--sp-teal-l)}
.date .star{font-style:normal;font-size:12px;color:var(--ink)}
.date.sp small{color:var(--ink)}
.spbanner{border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.4;background:var(--sp-lilac)}
.spbanner p{margin:0}.spbanner p+p{margin-top:4px}
.spbanner.sp-lilac{background:var(--sp-lilac)}.spbanner.sp-orange{background:var(--sp-orange)}
.spbanner.sp-pink{background:var(--sp-pink)}.spbanner.sp-teal{background:var(--sp-teal)}
.spform{display:flex;flex-direction:column;gap:14px}
.spform textarea{border:1px solid #CFCDC4;border-radius:10px;padding:10px 12px;font:inherit;resize:vertical}
.spform input[type=date]{width:100%}
.spcolors{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;font-weight:600}
.spcolors>span{width:100%}
.swatch{flex-direction:row;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;border:2px solid transparent}
.swatch input{position:absolute;opacity:0;pointer-events:none}
.swatch:has(input:checked){border-color:var(--ink)}
.swatch:has(input:focus-visible){outline:3px solid var(--ota);outline-offset:1px}
.swatch.sp-lilac{background:var(--sp-lilac)}.swatch.sp-orange{background:var(--sp-orange)}
.swatch.sp-pink{background:var(--sp-pink)}.swatch.sp-teal{background:var(--sp-teal)}
label.check{flex-direction:row;align-items:center;gap:8px;font-weight:600}
label.check input{width:18px;height:18px;margin:0}
.daterow label{flex:1 1 0 !important;min-width:0}
.booking textarea{text-transform:uppercase}
.date.sp.row{background:var(--ink);color:#fff}.date.sp.row small,.date.sp.row .star{color:#fff}  /* selected special day: dark like other selected days */
/* Special days: red */
:root{--sp-red:#EFA59E;--sp-red-l:#FADCD9}
.date.sp-red{background:var(--sp-red)}.cell.free.sp-red{background:var(--sp-red-l)}
.spbanner.sp-red,.swatch.sp-red{background:var(--sp-red)}
/* Tabs at the top */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:-4px}
.tabs a{padding:10px 16px;font-weight:600;font-size:15px;color:var(--muted);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--ink);border-bottom-color:var(--ink)}
/* Unpaid warning on the name box */
.cell{position:relative}
.cell .warn{position:absolute;top:1px;left:3px;font-size:12px;line-height:1;color:var(--closed)}
.warn-legend{color:var(--closed);font-size:16px;margin-right:6px;vertical-align:middle}
.details dd.unpaid{color:var(--closed)}
/* Payments in the side panel */
.paybox{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:14px}
.payhead{display:flex;align-items:center;justify-content:space-between}
.payhead h3{margin:0;font-size:16px}
.paystatus{font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px}
.paystatus.paid{background:var(--free);color:var(--freeInk)}
.paystatus.partly{background:var(--hold);color:var(--holdInk)}
.paystatus.unpaid{background:var(--closed);color:#fff}
.paysum{margin:0;border-top:0;padding-top:0}
.paylist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}
.paylist li{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--ground);border-radius:8px;padding:6px 10px}
.paydel{border:0;background:none;font-size:18px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}
.paydel:hover{color:var(--closed)}
.payform{display:flex;flex-direction:column;gap:12px}
.methods{display:flex;gap:6px}
.method{flex:1;flex-direction:row;justify-content:center;padding:10px 0;border:1px solid #CFCDC4;border-radius:10px;cursor:pointer;font-size:13px}
.method input{position:absolute;opacity:0;pointer-events:none}
.method:has(input:checked){background:var(--ink);color:#fff;border-color:var(--ink)}
.method:has(input:focus-visible){outline:3px solid var(--ota);outline-offset:1px}
.hint{font-size:12px;font-weight:400;color:var(--muted)}
/* Owed page */
h1 .sub{font-size:18px;font-weight:400;color:var(--muted)}
.owed-totals{display:flex;flex-wrap:wrap;gap:12px}
.owed-totals .tot{flex:1 1 220px;padding:16px 20px;display:flex;flex-direction:column;gap:4px}
.owed-totals small{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.owed-totals b{font-family:'IBM Plex Mono',monospace;font-size:20px}
.owed-table{padding:8px 0 16px}
.owed-table table{width:100%;min-width:720px;border-collapse:collapse;font-size:14px}
.owed-table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:10px 16px;border-bottom:1px solid var(--line)}
.owed-table td{padding:10px 16px;border-bottom:1px solid var(--line)}
.owed-table .num{text-align:right;font-family:'IBM Plex Mono',monospace;white-space:nowrap}
.owed-table .rem{font-weight:600;color:var(--closed)}
.owed-table .who{font-weight:600;text-transform:uppercase}
.owed-table tbody+tbody tr:first-child td{border-top:2px solid var(--line)}
.rowlink{cursor:pointer}.rowlink:hover,.rowlink:focus-visible{background:var(--ground);outline:none}
.subtotal td{background:var(--ground);font-weight:600;font-size:13px;text-transform:uppercase}
.owed-table .note,.owed-empty .note{padding:12px 16px 0}
.owed-empty{padding:20px}
/* Unpaid ⚠: bigger and stronger */
.cell .warn{top:-3px;left:2px;font-size:19px;font-weight:900;color:#B3261E;text-shadow:0 0 2px #fff,0 0 3px #fff}
.warn-legend{font-size:19px;font-weight:900;color:#B3261E}
/* Unpaid warning: solid red triangle with a white "!" (stronger than the ⚠ character) */
.warnicon{display:inline-block;width:18px;height:16px;vertical-align:-2px;margin-right:6px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 1.5 23 20.5H1Z' fill='%23C23B32' stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'/%3E%3Crect x='10.7' y='7' width='2.6' height='8' rx='1.2' fill='%23fff'/%3E%3Ccircle cx='12' cy='17.4' r='1.5' fill='%23fff'/%3E%3C/svg%3E")}
.legend i.warnicon{width:20px;height:18px;border-radius:0;margin-right:8px}
.cell .warn.warnicon{position:absolute;top:2px;left:3px;width:17px;height:15px;margin:0;text-shadow:none}
.cell .warn.warnicon{top:50%;left:4px;width:22px;height:20px;transform:translateY(-50%)}
.cell:has(.warn){padding-left:28px}  /* keep the name clear of the triangle */
/* Unpaid badge sits on the top-left corner of the name box; the name keeps its full width */
.cell:has(.warn){padding-left:5px;overflow:visible;z-index:1}
.cell .lbl{display:block;overflow:hidden;text-overflow:ellipsis}
.cell .warn.warnicon{top:-8px;left:-7px;width:22px;height:20px;transform:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}
/* Day sheet */
.month input[type=date]{height:44px;border:1px solid #CFCDC4;border-radius:10px;padding:0 10px;font:inherit;font-weight:600;background:#fff}
.month .today{display:flex;align-items:center;text-decoration:none}
.dayname{margin:-8px 0 0;font-weight:600;color:var(--muted)}
.sheet{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:16px;align-items:start}
.part{padding:18px 20px;display:flex;flex-direction:column;gap:12px;border-top:6px solid var(--line)}
.p-rooms{border-top-color:var(--hold)}.p-extra{border-top-color:var(--ota)}.p-tour{border-top-color:#2E7D47}.p-expense{border-top-color:var(--closed)}
.p-total{border-top-color:var(--ink)}
.parthead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.parthead h2 small{display:block;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.04em;margin-top:2px}
.ptotal{font-family:'IBM Plex Mono',monospace;font-size:18px}
.p-expense .ptotal{color:var(--closed)}
.ptable{width:100%;border-collapse:collapse;font-size:14px}
.ptable td{padding:8px 6px;border-top:1px solid var(--line);vertical-align:middle}
.ptable .num{text-align:right;font-family:'IBM Plex Mono',monospace;white-space:nowrap}
.ptable .who{font-weight:600;text-transform:uppercase}
.ptable .mono{font-family:'IBM Plex Mono',monospace;white-space:nowrap}
.ptable .muted,.muted{color:var(--muted)}
.ptable .del{width:28px;text-align:right}
.addbtn{align-self:flex-start;flex:0 0 auto;padding:0 16px}
.partform{display:flex;flex-direction:column;gap:12px;background:var(--ground);border-radius:10px;padding:14px}
.bigtotal{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:600}
.sechead{margin:8px 0 0;font-size:15px}
/* Day sheet: the whole month like the Google Sheet */
.devir b{font-family:'IBM Plex Mono',monospace;margin-left:4px}
.hideempty{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:600}
.hideempty input{width:18px;height:18px;margin:0}
.ms-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:14px}
.ms{border-collapse:collapse;width:100%;min-width:1280px;font-size:12px;table-layout:fixed}
.ms col.c-day{width:58px}.ms col.c-no{width:56px}.ms col.c-amt{width:92px}.ms col.c-pay{width:220px}
.ms col.c-n{width:30px}.ms col.c-txt{width:auto}.ms col.c-m{width:92px}
.ms th,.ms td{border:1px solid #E4E2DA;padding:3px 6px;height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms .mh th,.ms .th-tot th{font-size:10px;font-weight:700;letter-spacing:.03em;text-align:left}
.ms .s-room{background:#F4C95D;color:#3A2A00}.ms .s-extra{background:#9DBBDB;color:#0F2C4A}
.ms .s-tour{background:#9FD1A8;color:#123D1E}.ms .s-exp{background:#EBA39D;color:#4A0F0A}
.ms .s-day{background:var(--ink);color:#fff}
.ms .dcell{background:var(--ground);text-align:center;vertical-align:top;padding-top:8px}
.ms .dcell b{display:block;font-family:'IBM Plex Mono',monospace;font-size:20px}
.ms .dcell small{font-size:10px;color:var(--muted)}
.ms td.no{font-family:'IBM Plex Mono',monospace;color:var(--muted);background:#FDF8EA}
.ms td.n{color:#B5B2A8;font-size:10px;text-align:center}
.ms td.amt{font-family:'IBM Plex Mono',monospace;text-align:right;font-weight:600}
.ms td.amt a{color:inherit;text-decoration:none}.ms td.amt a:hover{text-decoration:underline}
.ms td.pay{font-size:11px}.ms td.pay.due b{color:var(--closed)}
.ms td.line{cursor:pointer}
.ms td.line.free:hover,.ms td.line.free:hover+td,.ms td.line:hover{background:#F2F1EB}
.ms td.editing{background:#FFF4CC !important;outline:2px solid var(--ink);outline-offset:-2px}
.ms .tot td{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:13px;background:#FAFAF7}
.ms .tot td.gun{background:var(--ink);color:#fff;text-align:center}
.ms .tot.big td{font-size:15px;height:30px}
.ms tbody.dblock{border-top:3px solid var(--ink)}
.ms tbody.aysonu{border-top:4px double var(--ink)}
.ms.hideempty tbody.isempty{display:none}
.lineedit{position:absolute;z-index:20;width:300px;background:#fff;border:1px solid var(--ink);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;box-shadow:0 8px 24px rgba(28,31,29,.18)}
.lineedit input,.lineedit select{height:38px;font-size:14px;width:100%}
.lineedit .edrow{display:flex;gap:6px}
.lineedit .edrow select{width:90px;flex:none}
.lineedit .btn{height:38px;font-size:14px;flex:1 1 0}
.lineedit .edtitle{font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.ms td.n.over{color:var(--ink);font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:10px;background:#FDF8EA}
.ms td.n{padding:3px 2px}
.ms td.m.due{color:var(--closed);font-weight:600}
/* Expenses page */
.expadd{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.expadd h2 small{font-size:13px;font-weight:400;margin-left:6px}
.exprow{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.exprow label{flex:0 1 150px}
.exprow label.grow{flex:1 1 240px}
.exprow .btn{flex:0 0 120px}
.owed-table .del{width:36px;text-align:right}
/* Extras & tours: its own box under the room box, with a different look */
aside .x-tour{background:#F3F8F4;border-color:#BFDCC6;border-top:6px solid #2E7D47}
aside .x-extra{background:#F2F6FB;border-color:#C3D5E8;border-top:6px solid #5B8DBE}
.xcard .xadd{align-self:flex-start;flex:0 0 auto;padding:0 18px}
.xcard h2 small{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-top:2px}
.xcard .paylist li{background:#fff}
.xcard .payform{background:#fff;border-radius:10px;padding:12px}
/* Price per room inside a group */
.roomprices{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600}
.roomprices small{font-weight:400;color:var(--muted)}
.rpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}
label.rp{flex-direction:row;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:13px}
label.rp input{height:36px;width:100%;min-width:0;font-family:'IBM Plex Sans',sans-serif}
/* Boxes a Reopen button would free (shown while the mouse is on the button) */
.cell.willopen{outline:3px solid var(--closed) !important;outline-offset:1px;box-shadow:0 0 0 5px rgba(194,59,50,.18)}
/* Day sheet: month totals stuck to the top while scrolling */
.msbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;background:var(--ground);padding:8px 0}
.msbar>div{border-radius:10px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.msbar small{font-size:10px;font-weight:700;letter-spacing:.04em}
.msbar b{font-family:'IBM Plex Mono',monospace;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msbar .mb-day{background:var(--ink);color:#fff}
.msbar .mb-room{background:#F4C95D;color:#3A2A00}.msbar .mb-extra{background:#9DBBDB;color:#0F2C4A}
.msbar .mb-tour{background:#9FD1A8;color:#123D1E}.msbar .mb-exp{background:#EBA39D;color:#4A0F0A}
@media (max-width:700px){.msbar{grid-template-columns:repeat(2,minmax(0,1fr))}.msbar .mb-day{grid-column:1/-1}}
/* Day sheet: mouse over a line marks the whole row (pastel red, like the date on the Availability page) */
.ms tbody.dblock tr:not(.mh):not(.th-tot):not(.tot):hover td{background:#FBE1DE}
.ms tbody.dblock tr:not(.mh):not(.th-tot):not(.tot):hover td.no{background:#F6C9C4;color:#5A1F1A;font-weight:600}
/* Day sheet: several extras / tours for one room → total + ⊕ badge; click opens the detail sub-lines */
.ms .more{float:left;border:0;border-radius:10px;background:var(--ink);color:#fff;font:600 10px 'IBM Plex Mono',monospace;padding:1px 6px;margin-right:6px;cursor:pointer}
.ms .more[aria-expanded="true"]{background:var(--closed)}
.ms tr.sub td{background:#FAF8F2;font-size:11px}
.ms tr.sub td.n{color:var(--muted);font-size:11px}
/* Owed: monthly breakdown */
.owed-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.owed-months .mbox{padding:12px 16px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink);border-left:5px solid var(--closed)}
.owed-months .mbox:hover{border-color:var(--ink)}
.owed-months small{font-size:12px;font-weight:700;letter-spacing:.05em}
.owed-months b{font-family:'IBM Plex Mono',monospace;font-size:16px;color:var(--closed)}
.owed-months span{font-size:12px;color:var(--muted)}
.viewswitch{display:flex;gap:4px;padding:6px 16px 10px}
.viewswitch a{padding:6px 14px;border-radius:20px;font-weight:600;font-size:13px;color:var(--muted);text-decoration:none;border:1px solid var(--line)}
.viewswitch a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.owed-table .monthhead td{background:var(--ink);color:#fff;font-weight:700;letter-spacing:.06em;font-size:13px;padding:8px 16px}
.owed-table tbody{scroll-margin-top:12px}
/* Cash (Peşin-Teslim) */
.holds .mbox{border-left-color:#2E7D47}
.holds .mbox b{color:var(--ink)}
.holds .mbox.total{background:var(--ink);color:#fff;border-left-color:var(--ink)}
.holds .mbox.total b{color:#fff}.holds .mbox.total span{color:#D6D4CC}
.holds .mbox.unassigned{border-left-color:var(--closed);background:#FCEDEB}
.cashtable .in{color:#2E7D47;font-weight:600}
.cashtable select.assign{height:32px;border-color:var(--closed);font-size:13px}
.mk{font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 7px;border-radius:10px;white-space:nowrap}
.mk-payment,.mk-extra,.mk-tour{background:var(--free);color:var(--freeInk)}
.mk-opening{background:#E6E3DA;color:var(--ink)}
.mk-expense{background:#F6D9D6;color:#7A1F17}
.mk-handover{background:var(--ink);color:#fff}
.stafflist{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.stafflist span{background:var(--ground);border-radius:16px;padding:4px 12px;font-weight:600;font-size:13px}
/* Cash page, simple version */
button.mbox{font:inherit;text-align:left;cursor:pointer}
.holds .addstaff{border-left-color:var(--line);background:#fff;justify-content:center}
.holds .addstaff small{color:var(--ink)}
.recvhead{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:6px 16px 12px}
.recvhead h2{margin:0}
.recvhead .month a{width:36px;height:36px}.recvhead .month span{min-width:120px;font-size:15px}
.recvtotal{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:18px;color:#2E7D47}
.owed-table td.in{color:#2E7D47;font-weight:600}
.tabs .tabcash{margin-left:6px;padding:2px 8px;border-radius:12px;background:#2E7D47;color:#fff;font:600 12px "IBM Plex Mono",monospace;vertical-align:1px}
/* Cash page: the "cash in the hotel now" box */
.cashbox{display:flex;align-items:center;gap:22px;padding:22px 26px;border-radius:18px;background:#E8F3EA;border:1px solid #BFDCC6;color:#14361F}
.cb-icon{flex:none;width:62px;height:62px;border-radius:50%;background:#2E7D47;color:#fff;display:flex;align-items:center;justify-content:center}
.cb-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.cb-main small{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2E7D47}
.cb-amounts{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:baseline}
.cb-amt{display:inline-flex;align-items:baseline;gap:6px}
.cb-amt b{font-family:'IBM Plex Mono',monospace;font-size:34px;font-weight:600;line-height:1.1}
.cb-amt i{font-style:normal;font-weight:700;font-size:15px;color:#2E7D47}
.cb-amt.neg b{color:var(--closed)}
.cashbox p{margin:0;font-size:13px;color:#4B6B55}
.cashbox p span{margin:0 4px;color:#2E7D47;font-weight:700}
@media (max-width:600px){.cashbox{padding:16px}.cb-icon{width:48px;height:48px}.cb-amt b{font-size:26px}}
/* Cash you received: waiting (needs the owner's password) vs received */
.owed-table tr.waiting td{background:#FFF4DC}
.owed-table tr.got td.num{color:#2E7D47;font-weight:600}
.okbadge{display:inline-block;padding:4px 10px;border-radius:14px;background:#E3F1E6;color:#2E7D47;font-weight:700;font-size:12px;white-space:nowrap}
.owed-table .btn.confirm{height:32px;font-size:13px;padding:0 14px;flex:none;background:#B8860B}
.waittotal{font-size:13px;font-weight:700;color:#8A5A00;background:#FFF4DC;border-radius:12px;padding:4px 10px}
.pwrow td{background:#FFFBEF}
.pwbox{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pwbox b{font-size:13px;margin-right:4px}
.pwbox input{height:36px;width:190px}
.pwbox .btn{height:36px;font-size:13px;flex:none;padding:0 16px}
/* Ödemeler (bills to pay — reminder only) */
.tabs .tabdue{margin-left:6px;display:inline-block;min-width:20px;padding:1px 6px;border-radius:10px;background:var(--closed);color:#fff;font:700 12px 'IBM Plex Mono',monospace;text-align:center;vertical-align:1px}
.owed-table tr.bill-late td{background:#FCE9E7}
.owed-table tr.bill-soon td{background:#FFF4DC}
.due{font-size:12px;font-weight:700;padding:3px 9px;border-radius:12px;white-space:nowrap}
.due-late{background:var(--closed);color:#fff}.due-soon{background:#F4C95D;color:#3A2A00}.due-later{background:var(--ground);color:var(--muted)}
.owed-table .paidbtn{height:32px;font-size:13px;padding:0 14px;flex:none;background:#2E7D47}
.owed-table .undo{height:32px;font-size:12px;padding:0 12px;flex:none}
.billtotal{color:var(--ink)}
.paidlist summary{list-style:none;cursor:pointer;padding:12px 16px}
.paidlist summary::-webkit-details-marker{display:none}
.paidlist summary h2{margin:0;display:inline}
.paidlist summary::after{content:' ▸';color:var(--muted)}.paidlist[open] summary::after{content:' ▾'}
.expadd.addcash{border-left:5px solid #2E7D47}
/* "+ Add cash" inside the cash box */
.cashbox{flex-wrap:wrap}
.cb-add{margin-left:auto;align-self:center;height:42px;padding:0 18px;border:0;border-radius:21px;background:#2E7D47;color:#fff;font:600 14px inherit;font-family:inherit;cursor:pointer}
.cb-add:hover{background:#246338}
.cb-form{flex:1 1 100%;background:#fff;border-radius:12px;padding:12px 14px;border:1px solid #BFDCC6}
/* "Added cash history" — closed box inside the cash box */
.cb-history{flex:1 1 100%;background:#fff;border:1px solid #BFDCC6;border-radius:12px;padding:0 14px}
.cb-history summary{list-style:none;cursor:pointer;padding:10px 0;font-weight:700;font-size:14px;color:#14361F}
.cb-history summary::-webkit-details-marker{display:none}
.cb-history summary::before{content:'▸ ';color:#2E7D47}.cb-history[open] summary::before{content:'▾ '}
.cb-history summary span{font-weight:600;color:#2E7D47;font-family:'IBM Plex Mono',monospace;font-size:13px}
.cb-history table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:10px}
.cb-history td{padding:7px 4px;border-top:1px solid #E3EFE5}
.cb-history td.num{text-align:right;font-family:'IBM Plex Mono',monospace;color:#2E7D47;font-weight:600;white-space:nowrap}
.cb-history td.del{width:28px;text-align:right}
/* Alarms: bell on every page, its panel, and the popup */
.tabs{position:relative;align-items:center}
.bell{margin-left:auto;position:relative;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.bell:hover,.bell[aria-expanded="true"]{border-color:var(--ink)}
.bellcount{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--closed);color:#fff;font:700 11px/18px 'IBM Plex Mono',monospace;text-align:center}
.bellpanel{position:absolute;top:48px;right:0;z-index:30;width:340px;max-height:75vh;overflow:auto;background:#fff;border:1px solid var(--ink);border-radius:14px;padding:16px;box-shadow:0 10px 30px rgba(28,31,29,.2);display:flex;flex-direction:column;gap:12px}
.bellpanel h3{margin:0;font-size:17px}
.bp-form{display:flex;flex-direction:column;gap:10px;background:var(--ground);border-radius:10px;padding:12px}
.bp-row{display:flex;gap:8px}.bp-row label{flex:1 1 0;min-width:0}
.bp-form input,.bp-form select{height:38px;width:100%}
.bp-form .btn{height:40px;flex:none}
.bp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}
.bp-list li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 10px;border-radius:8px;background:var(--ground)}
.bp-list li .bp-text{grid-column:1}.bp-list li .paydel{grid-row:1/span 2;grid-column:2;align-self:center}
.bp-rep-tag{font-size:11px;color:#2E7D47;font-weight:700}
.bp-none{color:var(--muted)}
.alarmpop{position:fixed;inset:0;z-index:100;background:rgba(28,31,29,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.ap-box{background:#fff;border-radius:18px;padding:28px 30px;max-width:420px;width:100%;text-align:center;display:flex;flex-direction:column;gap:10px;border-top:8px solid var(--closed);animation:ap-shake .5s ease 2}
.ap-icon{font-size:44px}
.ap-when{font-weight:700;color:var(--closed);letter-spacing:.03em}
.ap-msg{margin:0;font-size:20px;font-weight:600;overflow-wrap:anywhere}
.ap-btns{display:flex;gap:10px;margin-top:8px}
@keyframes ap-shake{0%,100%{transform:rotate(0)}25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}
@media (prefers-reduced-motion:reduce){.ap-box{animation:none}}
.bp-ok{font-size:13px;font-weight:700;color:#2E7D47}
.bp-in{font-size:11px;color:var(--muted)}
/* Alarm popup: BIG (overrides the first version) */
.alarmpop{background:rgba(194,59,50,.55)}
.ap-box{max-width:640px;padding:44px 40px;gap:16px;border-top-width:14px;box-shadow:0 20px 60px rgba(0,0,0,.35);animation:ap-shake .45s ease infinite}
.ap-icon{font-size:88px;line-height:1}
.ap-when{font-size:20px}
.ap-msg{font-size:38px;line-height:1.2;font-weight:700}
.ap-btns .btn{height:64px;font-size:20px;border-radius:14px}
@keyframes ap-shake{0%,100%{transform:rotate(0)}20%{transform:rotate(-1.5deg)}40%{transform:rotate(1.5deg)}60%{transform:rotate(-1deg)}80%{transform:rotate(1deg)}}
@media (max-width:600px){.ap-icon{font-size:60px}.ap-msg{font-size:26px}.ap-btns .btn{height:54px;font-size:17px}}
@media (prefers-reduced-motion:reduce){.ap-box{animation:none}}
/* Price row: price · currency · people per room */
.pricerow label.people{flex:0 0 74px}
.pricerow label.people input{width:100%}
.pricerow label:nth-child(2):not(:last-child){flex:0 0 96px}

/* Admin (Yönetim) */
h1 .sub{font-size:15px;font-weight:400;color:var(--muted)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.kpi{padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.kpi small{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.kpi b{font-family:'IBM Plex Mono',monospace;font-size:20px}
.kpi.big b{font-size:24px}
.kpi span{font-size:13px;color:var(--muted);font-family:'IBM Plex Mono',monospace}
.kpi.side{background:#EEF4FA}.kpi.side+.kpi.side{background:#EAF5EC}.kpi.exp{background:#FCE9E7}
.chg{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;margin-left:4px}
.chg.up{color:#2E7D47}.chg.down{color:var(--closed)}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-bottom:16px}
.chart{padding:14px 16px}
.ch-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ch-head h2{margin:0;font-size:15px}
.legend-mini{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.legend-mini i{display:inline-block;width:10px;height:10px;border-radius:2px}
.legend-mini i.this,.bar.this{background:var(--ota)}.legend-mini i.last,.bar.last{background:#C9D4DF}
.bars{display:flex;gap:4px;height:160px;align-items:stretch}
.bcol{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.bpair{flex:1;display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid var(--line)}
.bar{flex:1;border-radius:3px 3px 0 0;min-height:0}
.bcol small{font-size:11px;text-align:center;color:var(--muted)}
.admintable{margin-bottom:16px}
.admintable table{min-width:980px}
.admintable .sep{border-left:2px solid var(--line)}
.admintable tr.nowmonth td{background:#FFF8E6}
.pwchange{padding:12px 16px;margin-bottom:16px}
.pwchange summary{cursor:pointer;font-weight:600}
.pwchange form{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 8px}
.pwchange input{height:40px;border:1px solid #CFCDC4;border-radius:10px;padding:0 12px;font:inherit;flex:1;min-width:160px}
.pwchange .btn{height:40px}
.pwchange .msg{color:var(--closed);font-weight:600;margin:0 0 8px}
.pwchange .ok{color:#2E7D47;font-weight:600;margin:10px 0 0}
/* Admin login box */
.adminlogin{max-width:380px;margin:64px auto;padding:0 0 22px;display:flex;flex-direction:column;gap:12px;text-align:center;overflow:hidden;box-shadow:0 12px 32px rgba(28,31,29,.08)}
.adminlogin .al-top{background:var(--ink);color:#fff;padding:26px 24px 22px;display:flex;flex-direction:column;align-items:center;gap:10px}
.adminlogin .al-icon{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:26px}
.adminlogin h1{margin:0;font-size:22px;letter-spacing:.02em}
.adminlogin .al-top .note{color:#C9CCC9;font-size:13px}
.adminlogin input,.adminlogin .btn,.adminlogin .msg,.adminlogin .forgot{margin:0 24px}
.adminlogin input{height:46px;border:1px solid #CFCDC4;border-radius:10px;padding:0 14px;font:inherit;font-size:15px;background:#FAFAF7}
.adminlogin input:focus{outline:none;border-color:var(--ink);background:#fff;box-shadow:0 0 0 3px rgba(28,31,29,.08)}
.adminlogin .btn{flex:none;height:46px}
.adminlogin .btn:hover{background:#000}
.adminlogin .msg{color:var(--closed);font-weight:600;font-size:14px;background:#FCE9E7;border-radius:8px;padding:8px}
.adminlogin .forgot{text-align:left;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:4px}
.adminlogin .forgot summary{cursor:pointer;text-align:center}
.adminlogin .forgot ol{margin:8px 0 0;padding-left:20px;line-height:1.6;word-break:break-all}
/* Admin: hotel language picker */
.langpick label{display:flex;align-items:center;gap:6px;height:44px;padding:0 10px;border:1px solid #CFCDC4;background:#fff;border-radius:10px}
.langpick select{border:0;background:transparent;font:inherit;font-weight:600;font-size:14px;color:var(--ink);cursor:pointer}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Booking price row: price on its own full line, currency + people side by side below (all boxes line up) */
#priceBox{flex-wrap:wrap;align-items:flex-end}
#priceBox label:first-child{flex:1 1 100%}
#priceBox label:nth-child(2):not(:last-child){flex:1 1 0}
#priceBox label.people{flex:0 0 90px}
/* Admin header: Lock and language look like normal buttons (not the square ‹ › arrows) */
.month a.lockbtn{width:auto;padding:0 14px;font-size:14px;font-weight:600;gap:6px;white-space:nowrap}
.langpick label{white-space:nowrap}
.kpi.side.exp{background:#FCE9E7}
.langpick label{flex-direction:row}
.kpi.side+.kpi.side.exp{background:#FCE9E7}
/* Owed: tick rows / click a name → sum bar at the bottom */
.owed-table th.pick,.owed-table td.pick{width:34px;padding-right:0}
.owed-table td.pick input{width:18px;height:18px;cursor:pointer;accent-color:var(--ink)}
.owed-table td.who{cursor:copy}
.owed-table td.who:hover{text-decoration:underline}
.owed-table tr.picked td{background:#FFF4DC}
.sumbar{position:sticky;bottom:12px;z-index:5;margin:12px auto 0;max-width:640px;display:flex;align-items:center;gap:14px;
  background:var(--ink);color:#fff;border-radius:12px;padding:10px 10px 10px 18px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.sumbar[hidden]{display:none}
.sumbar span{font-size:13px;color:#C9CCC9}
.sumbar b{font-family:'IBM Plex Mono',monospace;font-size:17px;flex:1}
.sumbar .toggle{height:36px;background:transparent;color:#fff;border-color:#5C625E}
/* Admin: email alerts box */
.mailbox .mailform{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 14px;margin:12px 0 8px}
.mailbox .mailform label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}
.mailbox .mailform label.check{flex-direction:row;align-items:center;gap:8px;grid-column:1/-1}
.mailbox .mailform input:not([type=checkbox]),.mailbox .mailform select{height:40px;border:1px solid #CFCDC4;border-radius:10px;padding:0 12px;font:inherit;font-weight:400;background:#fff}
.mailbox .mailother{display:contents}.mailbox .mailother[hidden]{display:none}
.mailbox .btns{grid-column:1/-1}
.mailstate{font-size:12px;font-weight:600;padding:2px 8px;border-radius:20px;background:#EEE;color:var(--muted);margin-left:6px}
.mailstate.on{background:#E3F1E6;color:#2E7D47}
.mailbox .mailform input,.mailbox .mailform select{flex:none;min-width:0}
.mailbox .mailform input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--ink)}
.mailbox .mailform label.check{justify-content:flex-start;font-size:14px}
/* Top bar: who is logged in + Log out (before the bell) */
.tabs .whoami{margin-left:auto;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;align-self:center;text-transform:uppercase}
.tabs .logout{font-size:13px;font-weight:600;color:var(--ink);padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;text-decoration:none;align-self:center;margin:0 8px}
.tabs .logout:hover{border-color:var(--ink)}
.tabs .whoami ~ .bell{margin-left:0}
.actuser{font-weight:700;text-transform:uppercase}
/* Admin: users list */
.usertable{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0 12px}
.usertable th{text-align:left;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:6px 8px;border-bottom:1px solid var(--line)}
.usertable td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}
.usertable tr.off td{color:var(--muted);text-decoration:line-through}
.usertable tr.off td.uacts{text-decoration:none}
.usertable .uacts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.usertable form.inline{display:flex;gap:6px;margin:0}
.usertable form.inline input{height:34px;width:150px;border:1px solid #CFCDC4;border-radius:8px;padding:0 10px;font:inherit;flex:none}
.usertable .toggle{height:34px;font-size:13px;padding:0 12px}
/* Login with Google */
.adminlogin .gbtn{margin:4px 24px 0;height:48px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #CFCDC4;border-radius:10px;background:#fff;color:var(--ink);font-weight:600;font-size:15px;text-decoration:none}
.adminlogin .gbtn:hover{border-color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.adminlogin .lform{display:flex;flex-direction:column;gap:10px;margin:0 24px}
.adminlogin .forgot .lform{margin:10px 0 0}
.adminlogin .lform input{margin:0}.adminlogin .lform .btn{margin:0}
.adminlogin .lpad{margin:0 24px;text-align:center}
.adminlogin .okmsg{margin:0 24px;color:#2E7D47;font-weight:600;font-size:14px;background:#E3F1E6;border-radius:8px;padding:8px}
.adminlogin .retaddr,.gkeys code{display:block;font-family:'IBM Plex Mono',monospace;font-size:12px;background:var(--ground);border-radius:6px;padding:6px 8px;word-break:break-all;margin:0 24px}
.gkeys{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.gkeys summary{cursor:pointer;font-weight:600;font-size:14px}
.gkeys code{margin:6px 0}
