:root{--ink:#1b2430;--paper:#f6f4ee;--line:#dedad0;--accent:#2f5d50;--accent-2:#c1440e;--slot-free:#ffffff;--slot-free-b:#c9c2b2;--slot-taken:#e9e5da;--slot-taken-b:#c9c2b2;--radius:10px;--mono:"JetBrains Mono","Courier New",monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Georgia,Iowan Old Style,serif;background:var(--paper);color:var(--ink)}.app{max-width:1180px;margin:0 auto}header{background:var(--ink);color:#f6f4ee;padding:0 24px}.brand-row{justify-content:space-between;padding:14px 0 12px;border-bottom:1px solid rgba(246,244,238,.12);gap:10px;flex-wrap:wrap}.brand,.brand-row{display:flex;align-items:center}.brand{gap:12px;min-width:0;text-decoration:none;color:inherit}.brand .mark{width:34px;height:34px;border-radius:8px;flex-shrink:0;background:var(--accent-2);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;font-size:14px;color:#fff}.brand-text{min-width:0}.brand-text .title{font-size:17px;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text .sub{font-size:11px;letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis}.brand-text .sub,.header-link{font-family:var(--mono);color:#a9b0ba;text-transform:uppercase;white-space:nowrap}.header-link{font-size:11.5px;letter-spacing:.4px;text-decoration:none;border:1px solid rgba(246,244,238,.18);border-radius:999px;padding:8px 16px;transition:all .15s ease;flex-shrink:0}.header-link:hover{color:#f6f4ee;border-color:rgba(246,244,238,.4)}main{padding:24px 16px 90px}.page-head{margin-bottom:22px}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent-2);margin-bottom:8px}h1{font-size:24px;margin:0 0 6px;font-weight:400;line-height:1.25}.desc{color:#5a5346;font-size:14px;max-width:560px;line-height:1.5}.legend{display:flex;gap:18px;margin:18px 0 20px;font-family:var(--mono);font-size:11.5px;color:#5a5346;flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:7px}.dot{width:10px;height:10px;border-radius:3px;display:inline-block;flex-shrink:0}.dot.free{background:var(--slot-free);border:1.5px solid var(--slot-free-b)}.dot.taken{background:var(--slot-taken);border:1.5px solid var(--slot-taken-b)}.day-tabs{display:flex;gap:0;overflow-x:auto;border-bottom:2px solid var(--ink);margin-bottom:18px;-webkit-overflow-scrolling:touch;scrollbar-width:none;position:-webkit-sticky;position:sticky;top:0;background:var(--paper);z-index:10;padding-top:4px}.day-tabs::-webkit-scrollbar{display:none}.day-tab{font-family:var(--mono);font-size:13px;padding:12px 16px;cursor:pointer;background:transparent;color:#8a8272;white-space:nowrap;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s ease;flex-shrink:0;-webkit-tap-highlight-color:transparent}.day-tab.active{border-bottom-color:var(--accent-2);font-weight:700}.day-tab.active,.day-tab:hover{color:var(--ink)}.day-picker-mobile{display:none}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.slot{border-radius:var(--radius);padding:16px 14px;font-family:var(--mono);display:flex;flex-direction:column;gap:6px;min-height:64px;justify-content:space-between;-webkit-tap-highlight-color:transparent;border:none;text-align:left;width:100%}.slot.free{background:var(--slot-free);border:1.5px solid var(--slot-free-b);cursor:pointer}.slot.free:hover{border-color:var(--accent);box-shadow:0 2px 0 var(--accent);transform:translateY(-1px)}.slot.free:active{transform:scale(.97);background:#f2f6f4}.slot.taken{background:var(--slot-taken);border:1.5px dashed var(--slot-taken-b);cursor:not-allowed}.slot .time{font-size:14px;font-weight:700;color:var(--ink)}.slot.taken .time{color:#8a8272}.slot .status{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px}.slot.free .status{color:var(--accent)}.slot.taken .status{color:#a39c8c}@media (max-width:480px){.slot-grid{grid-template-columns:1fr;gap:8px}.slot{flex-direction:row;align-items:center;justify-content:space-between;min-height:auto;padding:15px 16px}.slot .time{font-size:14.5px}.day-tabs{display:none}.day-picker-mobile{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;position:-webkit-sticky;position:sticky;top:0;background:var(--paper);z-index:10;padding:10px 0 14px;margin-bottom:14px;border-bottom:2px solid var(--ink)}.dp-pill{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:9px 4px;border-radius:10px;border:1.5px solid var(--line);background:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:var(--mono)}.dp-pill .dp-wd{font-size:9.5px;color:#8a8272;text-transform:uppercase;letter-spacing:.4px}.dp-pill .dp-dm{font-size:14px;font-weight:700;color:var(--ink);margin-top:1px}.dp-pill.active{background:var(--ink);border-color:var(--ink)}.dp-pill.active .dp-wd{color:#a9b0ba}.dp-pill.active .dp-dm{color:#fff}.dp-pill:active{transform:scale(.96)}}.overlay{position:fixed;inset:0;background:rgba(27,36,48,.55);display:none;align-items:center;justify-content:center;z-index:50}.overlay.open{display:flex}.modal{background:var(--paper);border-radius:14px;padding:28px;width:340px;max-width:calc(100vw - 32px);border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,0,0,.25)}.modal h3{margin:0 0 4px;font-size:18px;font-weight:400}.modal .modal-time{font-family:var(--mono);font-size:12px;color:var(--accent-2);margin-bottom:18px}.field{margin-bottom:14px}.field label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#5a5346;margin-bottom:6px}.field input{width:100%;padding:12px;border:1.5px solid var(--line);border-radius:8px;font-family:Georgia,serif;font-size:16px;background:#fff;color:var(--ink)}.field input:focus{outline:none;border-color:var(--accent)}.field-error{color:var(--accent-2);font-family:var(--mono);font-size:11px;margin-top:6px}.modal-actions{display:flex;gap:10px;margin-top:20px}.btn{font-family:var(--mono);font-size:12.5px;text-transform:uppercase;letter-spacing:.4px;padding:13px 16px;border-radius:8px;border:none;cursor:pointer;flex:1 1;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#274d42}.btn-secondary{background:transparent;color:#5a5346;border:1.5px solid var(--line)}.btn-secondary:hover{border-color:#8a8272}.btn-danger{background:var(--accent-2);color:#fff}.btn-danger:hover:not(:disabled){background:#a2380b}@media (max-width:480px){.overlay{align-items:flex-end}.modal{width:100%;max-width:100%;border-radius:18px 18px 0 0;padding:22px 20px calc(20px + env(safe-area-inset-bottom));animation:sheet-up .22s ease-out}@keyframes sheet-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.modal:before{content:"";display:block;width:40px;height:4px;border-radius:99px;background:var(--line);margin:-6px auto 16px}}.confirm-banner{background:var(--accent);color:#fff;font-family:var(--mono);font-size:13px;padding:14px 18px;border-radius:10px;margin-bottom:18px;border-left:3px solid var(--accent-2)}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:12px}.admin-stats{display:flex;gap:22px;font-family:var(--mono);font-size:12px;color:#5a5346}.admin-stats b{color:var(--ink);font-size:15px;display:block;font-family:Georgia,serif}.week-nav{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12.5px}.week-nav button{background:#fff;border:1px solid var(--line);border-radius:6px;width:32px;height:32px;cursor:pointer;color:var(--ink);flex-shrink:0;-webkit-tap-highlight-color:transparent}.scroll-hint{display:none;font-family:var(--mono);font-size:11px;color:var(--accent-2);margin-bottom:10px;align-items:center;gap:6px}.calendar{border:1px solid var(--line);border-radius:12px;overflow-x:auto;background:#fff;-webkit-overflow-scrolling:touch}.cal-grid{display:grid;grid-template-columns:70px repeat(8,minmax(96px,1fr));min-width:860px}.cal-corner,.cal-daycol-head{background:var(--ink);color:#f6f4ee;padding:10px 6px;font-family:var(--mono);font-size:11px;text-align:center;border-bottom:1px solid var(--line)}.cal-corner{position:-webkit-sticky;position:sticky;left:0;z-index:2}.cal-daycol-head .dname{display:block;font-weight:700;font-size:12px}.cal-daycol-head .ddate{display:block;color:#a9b0ba;font-size:10px;margin-top:2px}.cal-time{background:#faf9f5;padding:8px 6px;font-family:var(--mono);font-size:10.5px;color:#8a8272;display:flex;align-items:center;justify-content:center;position:-webkit-sticky;position:sticky;left:0;z-index:1}.cal-cell,.cal-time{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cal-cell{min-height:52px;padding:5px;position:relative}.cal-cell.empty{background:repeating-linear-gradient(45deg,#fbfaf7,#fbfaf7 6px,#f3f1ea 0,#f3f1ea 12px)}.cal-cell.blocked{background:#efeae0}.cal-cell.blocked:after{content:"kapalı";font-size:9px;color:#b0a892;position:absolute;inset:0;align-items:center}.appt,.cal-cell.blocked:after{font-family:var(--mono);display:flex;justify-content:center}.appt{background:var(--accent);color:#fff;border-radius:6px;padding:6px 7px;height:100%;width:100%;font-size:10px;line-height:1.35;cursor:pointer;flex-direction:column;border:none;border-left:3px solid var(--accent-2);-webkit-tap-highlight-color:transparent;text-align:left}.appt:hover{background:#274d42}.appt .name{font-weight:700;font-size:10.5px;font-family:Georgia,serif}.appt .phone{color:#cfe0da;font-size:9px;margin-top:1px}.admin-footnote{margin-top:16px;font-family:var(--mono);font-size:11px;color:#8a8272}.login-card{max-width:340px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;margin-top:12px}@media (max-width:420px){header{padding:0 14px}.brand-row{padding:12px 0 10px}.brand .mark{width:30px;height:30px;font-size:12px}.brand-text .title{font-size:15px}.brand-text .sub{font-size:9.5px}.header-link{padding:7px 12px;font-size:10.5px}main{padding:20px 14px 90px}h1{font-size:20px}}@media (max-width:760px){.scroll-hint{display:flex}.admin-stats{gap:16px}.week-nav span{font-size:11px}}@media (max-width:480px){.admin-toolbar{flex-direction:column;align-items:flex-start}.admin-stats{width:100%;justify-content:space-between;gap:8px}}