:root{--bg:#fafaf8;--card:#fff;--ink:#0b0b0b;--mut:#77736d;--line:#e8e5e0;--soft:#f3f1ed;--ok:#2f7d4f;--warn:#b7791f;--bad:#b42318;--r:14px}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;margin:0 0 12px;letter-spacing:.2px}h1{font-size:30px}h2{font-size:22px}h3{font-size:18px}
.brand{font-family:'Cormorant Garamond',serif;font-size:22px;letter-spacing:4px;font-weight:600}.brand small{display:block;font-family:Inter;font-size:9px;letter-spacing:3px;color:var(--mut);font-weight:500}
.layout{display:flex;min-height:100vh}.side{width:240px;background:var(--ink);color:#fff;padding:22px 14px;position:fixed;inset:0 auto 0 0;overflow:auto;z-index:20;transition:transform .25s}
.side .brand small{color:#aaa}.side nav{margin-top:22px}.side a{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:10px;text-decoration:none;color:#ddd;font-size:13.5px}
.side a:hover{background:#1c1c1c}.side a.on{background:#fff;color:var(--ink)}.side .grp{font-size:10px;letter-spacing:2px;color:#888;margin:16px 12px 6px;text-transform:uppercase}
.main{flex:1;margin-left:240px;padding:24px 28px 90px;min-width:0}.top{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.top h1{margin:0;flex:1}
.burger{display:none;background:none;border:0;font-size:24px;padding:4px 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}
.stat{padding:16px}.stat b{display:block;font-size:24px;font-family:'Cormorant Garamond',serif}.stat span{color:var(--mut);font-size:12px}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ink);background:var(--ink);color:#fff;padding:9px 16px;border-radius:999px;font:500 13px Inter;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn.o{background:#fff;color:var(--ink)}.btn.s{padding:5px 11px;font-size:12px}.btn.d{background:var(--bad);border-color:var(--bad)}.btn:disabled{opacity:.5}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font:14px Inter;color:var(--ink)}textarea{min-height:80px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--ink);outline-offset:-1px}label{display:block;font-size:12px;color:var(--mut);margin:0 0 4px}.f{margin-bottom:12px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.row>.btn,.row>.nf{flex:0 0 auto}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:11px;color:var(--mut);font-weight:600;letter-spacing:.6px;text-transform:uppercase}
tr.click{cursor:pointer}tr.click:hover td{background:var(--soft)}.tbl{overflow:auto}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;background:var(--soft);border:1px solid var(--line);white-space:nowrap}
.pill.approved{background:#eef6f0;color:var(--ok)}.pill.came{background:#0b0b0b;color:#fff}.pill.noshow,.pill.cancelled,.pill.cancelled_client{background:#fdf0ef;color:var(--bad)}.pill.pending{background:#fff7e8;color:var(--warn)}
.tabs{display:flex;gap:6px;overflow:auto;margin-bottom:14px;padding-bottom:2px}.tabs a{padding:7px 14px;border-radius:999px;border:1px solid var(--line);text-decoration:none;white-space:nowrap;background:#fff;font-size:13px;cursor:pointer}.tabs a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.mut{color:var(--mut)}.r{text-align:right}.warn{color:var(--warn)}.empty{padding:30px;text-align:center;color:var(--mut)}
#modal .bk{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}
#modal .box{background:#fff;border-radius:18px;width:100%;max-width:560px;max-height:92vh;overflow:auto;padding:22px}
#toast{position:fixed;bottom:84px;left:50%;transform:translateX(-50%);z-index:60}#toast div{background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;margin-top:6px;font-size:13px}
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--ink)}.login .card{width:100%;max-width:380px;padding:30px}
/* takvim */
.cal{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}.cal .hd{display:grid;position:sticky;top:0;background:#fff;z-index:3;border-bottom:1px solid var(--line)}
.cal .hd div{padding:8px;font-size:12px;font-weight:600;text-align:center;border-left:1px solid var(--line)}.cal .bd{display:grid;position:relative}
.cal .tm{font-size:11px;color:var(--mut);text-align:right;padding-right:6px}.cal .col{position:relative;border-left:1px solid var(--line)}
.cal .sl{height:28px;border-bottom:1px dashed #f0eee9}.cal .sl.h{border-bottom:1px solid var(--line)}.cal .sl.drop{background:#f3f1ed}
.ev{position:absolute;left:3px;right:3px;border-radius:8px;padding:4px 6px;font-size:11.5px;overflow:hidden;color:#fff;cursor:grab;border-left:4px solid rgba(255,255,255,.5);line-height:1.25;z-index:2}
.ev.cancelled,.ev.cancelled_client,.ev.noshow{opacity:.35;text-decoration:line-through}.ev.came{outline:2px solid #fff;outline-offset:-3px}
.bnav{display:none}
.chip{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:10px;margin:0 6px 6px 0;background:#fff}
@media(max-width:900px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.side{transform:translateX(-100%)}.side.open{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.4)}.main{margin-left:0;padding:14px 14px 96px}.burger{display:block}
 h1{font-size:24px}.g3,.g2{grid-template-columns:1fr}.card{padding:14px}
 .bnav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:15;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
 .bnav a{flex:1;text-align:center;text-decoration:none;font-size:10.5px;color:var(--mut);padding:4px}.bnav a i{display:block;font-style:normal;font-size:19px}.bnav a.on{color:var(--ink);font-weight:600}
 table.rsp thead{display:none}table.rsp tr{display:block;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;padding:6px 10px;background:#fff}table.rsp td{display:flex;justify-content:space-between;gap:10px;border:0;padding:5px 0}table.rsp td:before{content:attr(data-l);color:var(--mut);font-size:12px}
 .top .btn{padding:8px 12px}}
.sq{min-width:220px}
.badge{margin-left:auto;background:#b42318;color:#fff;border-radius:999px;font-size:11px;font-weight:600;padding:1px 7px;min-width:20px;text-align:center}
.bnav a{position:relative}.bnav .badge{position:absolute;top:0;right:18%;margin:0}
.ev.hold{background:repeating-linear-gradient(45deg,#fff,#fff 5px,#f3f1ed 5px,#f3f1ed 10px)!important;color:#0b0b0b;border:1.5px dashed #0b0b0b;text-decoration:none;cursor:pointer}
.alert{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:70;background:#0b0b0b;color:#fff;padding:14px 22px;border-radius:14px;text-decoration:none;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.3);animation:pulse 1s ease-in-out 3}
@keyframes pulse{50%{transform:translateX(-50%) scale(1.06)}}
.tb2{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tb2 .gs{width:180px}.tb2 .gd{width:auto}.dd2{position:relative}.mn{display:none;position:absolute;right:0;top:110%;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.12);min-width:240px;max-height:70vh;overflow:auto;z-index:50;padding:6px 0}.mn.open{display:block}.mn a{display:block;padding:9px 14px;color:var(--ink);text-decoration:none;font-size:13px}.mn a:hover{background:var(--soft)}.mn a.nw{font-weight:600;background:var(--soft)}
.bc{background:var(--bad);color:#fff;border-radius:9px;font-size:10px;padding:0 5px;margin-left:3px}.bc:empty{display:none}.gsr{width:100%;display:flex;flex-wrap:wrap;gap:6px}
.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.mh{font-size:11px;color:var(--mut);text-align:center}.mc{min-height:92px;border:1px solid var(--line);border-radius:10px;padding:5px;cursor:pointer;font-size:11px;overflow:hidden}.mc.tdy{border-color:var(--ink)}.me{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:4px;margin:2px 0}
.hz{overflow-x:auto}.hzr{display:flex;min-width:900px;border-bottom:1px solid var(--line)}.hzn{width:130px;flex:none;padding:10px 6px;font-size:12px;font-weight:600}.hzt{position:relative;flex:1;height:44px;background:repeating-linear-gradient(90deg,transparent,transparent calc(100%/12 - 1px),var(--line) calc(100%/12 - 1px),var(--line) calc(100%/12))}.hzh .hzt{height:22px;background:none}.hzh span{position:absolute;font-size:10px;color:var(--mut)}
.hze{position:absolute;top:4px;bottom:4px;color:#fff;border-radius:6px;font-size:11px;padding:3px 5px;overflow:hidden;white-space:nowrap;cursor:pointer}.hze.came{opacity:.65}.hze.cancelled,.hze.cancelled_client,.hze.noshow{opacity:.35;text-decoration:line-through}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:10px}.gi{border:1px solid var(--line);border-radius:10px;padding:6px;font-size:12px}.gi img{width:100%;height:110px;object-fit:cover;border-radius:6px}.gi .pdf{height:110px;display:flex;align-items:center;justify-content:center;background:var(--soft);border-radius:6px}
body.dark{--bg:#111;--card:#1a1a1a;--ink:#f3f1ed;--mut:#a29d96;--line:#2c2c2c;--soft:#232323}body.dark .side{background:#000}body.dark .btn:not(.o){background:#f3f1ed;color:#111}body.dark input,body.dark select,body.dark textarea{background:#111;color:#f3f1ed;border-color:#333}
@media(max-width:760px){.tb2 .gs{width:120px}.tb2 .gd{display:none}.mc{min-height:60px}}
.cal .col .sl{cursor:cell}.cal .col .sl:hover{background:rgba(11,11,11,.04)}.cal .sl.sel{background:rgba(11,11,11,.14)!important}.hzt[data-st]{cursor:cell;touch-action:pan-x pan-y}.hzs{display:none;position:absolute;top:2px;bottom:2px;background:rgba(11,11,11,.15);border-radius:6px;pointer-events:none}
.cal .col{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
