/* TakashiRent – admin + public styles */
:root{
  --bg:#f3f5f4; --card:#fff; --ink:#1d2421; --muted:#6b7672; --line:#dfe5e2;
  --green:#28a53c; --green-d:#1d7a2c; --blue:#1e64c8; --red:#cd2828; --amber:#c98a06; --grey:#8a948f;
  --radius:10px;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#141816; --card:#1d2320; --ink:#e7ece9; --muted:#9aa5a0; --line:#2e3632; }
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--blue)} h1{font-size:1.6rem;margin:0 0 1rem} h2{font-size:1.1rem;margin:0 0 .75rem} h3{font-size:1rem;margin:1.2rem 0 .5rem}
code,.mono{font-family:ui-monospace,Menlo,Consolas,monospace} .small{font-size:.82em} .muted{color:var(--muted)} .nowrap{white-space:nowrap}
.r{text-align:right} .bad-text{color:var(--red);font-weight:600}

/* brand */
.brand{display:flex;align-items:center;gap:.55rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.brand.big{font-size:1.25rem;margin-bottom:1rem} .brand small{font-weight:500;text-transform:none;color:var(--muted);letter-spacing:0}
.logo{position:relative;z-index:0;display:inline-grid;place-items:center;width:30px;height:30px;color:#fff;font-size:.95rem;line-height:1}
.logo::before{content:"";position:absolute;inset:4px;z-index:-1;background:var(--green);transform:rotate(45deg);border-radius:3px}

/* layout: admin */
body.admin{display:flex;min-height:100vh}
.side{width:220px;flex:none;background:#17201b;color:#dfe7e2;padding:1.2rem 1rem;display:flex;flex-direction:column;gap:1.2rem;position:sticky;top:0;height:100vh}
.side .brand{color:#fff}
.side nav{display:flex;flex-direction:column;gap:2px}
.side nav a{color:#c9d3ce;text-decoration:none;padding:.5rem .7rem;border-radius:7px}
.side nav a:hover{background:#243029} .side nav a.on{background:var(--green);color:#fff}
.side-foot{margin-top:auto;font-size:.85rem} .side-foot a{color:#9fd8ab}
.content{flex:1;padding:1.6rem 2rem;max-width:1200px;min-width:0}
@media (max-width:800px){
  body.admin{display:block} .side{position:static;width:auto;height:auto} .side nav{flex-direction:row;flex-wrap:wrap}
  .content{padding:1rem}
}

/* layout: public / centered */
.topbar{background:var(--green);color:#fff;padding:.9rem 1.2rem} .topbar .logo{color:var(--green)} .topbar .logo::before{background:#fff}
.wrap{max-width:1000px;margin:0 auto;padding:1.5rem 1rem}
.foot{text-align:center;color:var(--muted);font-size:.85rem;padding:2rem}
.center-page{display:grid;place-items:center;min-height:100vh;padding:1rem}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;margin-bottom:1rem}
.card.narrow{width:100%;max-width:560px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem} @media (max-width:900px){.cols{grid-template-columns:1fr}}
.cols .card{margin-bottom:0} .cols{margin-bottom:1rem}

/* stats */
.stats{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1rem}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1.1rem;min-width:120px;border-top:4px solid var(--grey)}
.stat b{display:block;font-size:1.6rem;line-height:1.1} .stat span{color:var(--muted);font-size:.85rem}
.stat.available{border-top-color:var(--green)} .stat.rented{border-top-color:var(--blue)} .stat.overdue{border-top-color:var(--red)} .stat.offline{border-top-color:var(--grey)}

/* tags */
.tag{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;color:#fff;background:var(--grey);text-transform:lowercase}
.tag.available{background:var(--green)} .tag.rented{background:var(--blue)} .tag.overdue,.tag.error{background:var(--red)}
.tag.warn{background:var(--amber)} .tag.info{background:var(--grey)}

/* tables */
.tbl{width:100%;border-collapse:collapse} .tbl.card{padding:0;overflow:hidden;display:table}
.tbl th,.tbl td{padding:.55rem .7rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}
.tbl tr:last-child td{border-bottom:0}
@media (max-width:700px){ .tbl{display:block;overflow-x:auto} }
.kv{border-collapse:collapse;width:100%} .kv th{text-align:left;color:var(--muted);font-weight:500;padding:.3rem 1rem .3rem 0;width:35%;vertical-align:top} .kv td{padding:.3rem 0}

/* forms */
.form label,.settings label{display:block;margin-bottom:.7rem;font-weight:500}
input,select,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:.5rem .6rem;width:100%;margin-top:.25rem}
.form input,.form select,.form textarea{display:block}
.toolbar input,.toolbar select,.inline-form input{width:auto;display:inline-block;margin:0}
label.check{display:flex;align-items:center;gap:.5rem} label.check input{width:auto;margin:0}
.help{margin:-.4rem 0 .8rem;color:var(--muted);font-size:.85rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem} @media (max-width:600px){.grid2{grid-template-columns:1fr}}
.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}
.inline-form{display:inline-flex;gap:.4rem;align-items:center;margin:0 .5rem .6rem 0}
.sticky-save{position:sticky;bottom:0;background:var(--bg);padding:.7rem 0;margin:0}

.btn{display:inline-block;font:inherit;font-weight:600;padding:.5rem .95rem;border-radius:7px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff} .btn.primary:hover{background:var(--green-d)}
.btn.danger{color:var(--red);border-color:var(--red)} .btn.danger:hover{background:var(--red);color:#fff}
.btn.wide{width:100%;padding:.8rem;font-size:1.05rem;margin-top:.6rem}

/* alerts */
.alert{padding:.65rem .9rem;border-radius:8px;border:1px solid;margin:0 0 1rem}
.alert.ok{background:#e8f6eb;border-color:#9fd8ab;color:#185c25}
.alert.bad{background:#fdecec;border-color:#f0a7a7;color:#8a1c1c}
.alert.warn{background:#fff6e0;border-color:#efd08a;color:#6e4c00}
.checks{list-style:none;padding:0} .checks .ok{color:var(--green)} .checks .bad{color:var(--red)}
pre.code{background:var(--bg);border:1px solid var(--line);padding:.6rem .8rem;border-radius:7px;overflow-x:auto;white-space:pre-wrap;word-break:break-all}
.reveal{filter:blur(5px);cursor:pointer} .reveal.shown{filter:none}
.tos pre{white-space:pre-wrap;font:inherit;color:var(--muted)} .tos{margin:1rem 0}

/* public unit grid */
.unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.unit{position:relative} .unit h3{margin:.2rem 0 .1rem} .unit .tag{position:absolute;top:1rem;right:1rem}
.facts{display:flex;gap:1rem;padding:0;list-style:none;color:var(--muted);margin:.5rem 0}
.price{font-size:1.15rem;font-weight:700}
