/* KITEMIR ASP — mobile-first */
:root{
  --bg:#0e1116; --panel:#161b22; --panel2:#1c232d; --line:#2a3340;
  --text:#e6edf3; --muted:#9aa7b4; --accent:#3b82f6; --accent2:#1f3a5f;
  --me:#1d4ed8; --them:#222b36; --ok:#22a06b; --warn:#e0584b; --pin:#e0584b;
  --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Microsoft YaHei","Malgun Gothic",sans-serif;
  font-size:17.5px; line-height:1.55; -webkit-text-size-adjust:100%;
}
a{color:var(--accent); text-decoration:none}
img{max-width:100%}

/* top bar */
.topbar{position:sticky; top:0; z-index:20; background:var(--accent2); padding-top:env(safe-area-inset-top)}
.topbar-in{display:flex; align-items:center; gap:10px; padding:10px 14px; max-width:760px; margin:0 auto}
.brand{color:#fff; font-weight:700; font-size:18px; margin-right:auto; display:flex; align-items:center; gap:9px}
.brand span{white-space:nowrap}
.brand-logo{width:50px; height:50px; border-radius:9px; display:block; flex:none; background:#fff}
.topnav{display:flex; gap:14px}
.topnav a{color:#dbe6f5; font-size:15px}
.lang-switch{display:flex; gap:4px; background:rgba(0,0,0,.2); border-radius:10px; padding:3px}
.lang-btn{color:#cdd9e6; font-size:13px; padding:3px 8px; border-radius:8px}
.lang-btn.on{background:#fff; color:var(--accent2); font-weight:700}
.hamburger{display:none; background:rgba(0,0,0,.2); border:0; color:#fff; font-size:21px; width:42px; height:38px; border-radius:9px; cursor:pointer; flex:none}

/* モバイル: ナビをハンバーガーに畳む（言語切替は常時表示のまま） */
@media (max-width:600px){
  .brand{font-size:17px}
  .hamburger{display:block}
  .topnav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--accent2); padding:4px 14px 10px;
    box-shadow:0 10px 24px rgba(0,0,0,.45); z-index:30; display:none;
  }
  .topnav.open{display:flex}
  .topnav a{font-size:16px; padding:13px 4px; border-top:1px solid rgba(255,255,255,.12)}
}

.container{max-width:760px; margin:0 auto; padding:14px 14px 90px}

/* cards / lists */
.card{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:14px; margin-bottom:12px}
.h1{font-size:22px; font-weight:700; margin:6px 2px 14px}
.muted{color:var(--muted)}
.small{font-size:14px}
.row{display:flex; align-items:center; gap:10px}
.spread{justify-content:space-between}
.badge{font-size:12px; padding:2px 8px; border-radius:999px; background:var(--panel2); color:var(--muted); border:1px solid var(--line)}
.badge.jp{color:#7fb2ff; border-color:#2b4a73}
.badge.cn{color:#ffcaa3; border-color:#6b4a2b}
.badge.open{color:#7ee0b0; border-color:#235}
.badge.closed{color:#9aa7b4}
.badge.unread{background:var(--warn); color:#fff; border-color:transparent; font-weight:700}

/* unread popup banner */
.unread-pop{display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:var(--me); color:#fff; padding:12px 14px; border-radius:12px; margin-bottom:12px; font-weight:600}
.up-x{background:transparent; border:0; color:#fff; font-size:22px; line-height:1; cursor:pointer; padding:0 4px}

.proj{display:block; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:14px; margin-bottom:10px}
.proj:active{background:var(--panel2)}
.proj .code{font-weight:700; color:#7fb2ff; font-size:13px}
.proj .title{font-weight:600; margin:2px 0}

/* forms */
label{display:block; font-size:13px; color:var(--muted); margin:10px 0 4px}
input,select,textarea,button{font:inherit}
.input,input[type=text],input[type=email],input[type=password],input[type=date],select,textarea{
  width:100%; background:var(--panel2); color:var(--text); border:1px solid var(--line);
  border-radius:10px; padding:11px 12px;
}
textarea{resize:vertical; min-height:48px}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:6px;
  background:var(--accent); color:#fff; border:none; border-radius:10px; padding:11px 16px; font-weight:600; cursor:pointer}
.btn:active{transform:translateY(1px)}
.btn.sec{background:var(--panel2); color:var(--text); border:1px solid var(--line)}
.btn.ghost{background:transparent; color:var(--accent); border:1px solid var(--line)}
.btn.sm{padding:6px 10px; font-size:13px; border-radius:8px}
.btn.block{width:100%}
.btn.warn{background:var(--warn)}

/* chat */
.chat{display:flex; flex-direction:column; gap:14px; padding-bottom:8px}
.msg{max-width:86%; display:flex; flex-direction:column}
.msg.me{align-self:flex-end; align-items:flex-end}
.msg .who{font-size:12px; color:var(--muted); margin:0 4px 3px}
.bubble{background:var(--them); border:1px solid var(--line); border-radius:16px; padding:10px 13px; white-space:pre-wrap; word-break:break-word}
.msg.me .bubble{background:var(--me); border-color:transparent}
.trans{margin-top:6px; padding-top:6px; border-top:1px dashed rgba(255,255,255,.18); color:#cfe0f5; font-size:15px}
.msg-tools{display:flex; gap:6px; margin:6px 4px 0; flex-wrap:wrap}
.tool{font-size:13.5px; color:var(--muted); background:transparent; border:1px solid var(--line); border-radius:999px; padding:4px 11px; cursor:pointer}
.tool:active{background:var(--panel2)}
.tool.on{background:var(--accent); color:#fff; border-color:transparent}
.tool.busy{opacity:.5; pointer-events:none}
.tool-label{font-size:13px; color:var(--muted); align-self:center; margin-right:2px}

/* drag & drop overlay */
.drop-overlay{position:fixed; inset:0; z-index:60; display:none; align-items:center; justify-content:center;
  background:rgba(31,58,95,.78); backdrop-filter:blur(2px); pointer-events:none}
.drop-overlay.show{display:flex}
.drop-msg{border:3px dashed #fff; color:#fff; font-size:18px; font-weight:700; padding:30px 40px; border-radius:18px}
.meta{font-size:11px; color:var(--muted); margin:4px 4px 0; display:flex; gap:10px}

/* attachments */
.atts{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px}
.att-img{position:relative; width:140px; border-radius:10px; overflow:hidden; border:1px solid var(--line)}
.att-img img{display:block; width:100%; height:140px; object-fit:cover}
.att-img .ann{position:absolute; left:6px; bottom:6px; background:rgba(0,0,0,.6); color:#fff; font-size:11px; padding:2px 7px; border-radius:999px}
.att-img .ann.done{background:var(--warn); color:#fff}
.att-file{display:flex; align-items:center; gap:8px; background:var(--panel2); border:1px solid var(--line); border-radius:10px; padding:8px 11px; font-size:14px}
.att-file .ico{width:26px; height:26px; flex:none; display:grid; place-items:center; background:#2b3a4d; border-radius:6px; font-size:12px; color:#bcd}

/* composer */
.composer{position:fixed; left:0; right:0; bottom:0; background:var(--panel); border-top:1px solid var(--line);
  padding:8px 10px calc(8px + env(safe-area-inset-bottom)); z-index:15}
.composer-in{max-width:760px; margin:0 auto; display:flex; gap:8px; align-items:flex-end}
.composer textarea{flex:1; min-height:42px; max-height:140px}
.icon-btn{flex:none; width:42px; height:42px; border-radius:10px; border:1px solid var(--line); background:var(--panel2); color:var(--text); font-size:18px; cursor:pointer}
.preview{display:flex; gap:6px; flex-wrap:wrap; max-width:760px; margin:0 auto 6px}
.preview .chip{font-size:12px; background:var(--panel2); border:1px solid var(--line); border-radius:999px; padding:3px 10px; color:var(--muted)}

/* toast */
.toast{position:fixed; left:50%; bottom:90px; transform:translateX(-50%); background:#000d; color:#fff;
  padding:9px 16px; border-radius:999px; font-size:14px; z-index:50; opacity:0; transition:.2s; pointer-events:none}
.toast.show{opacity:1}

/* table */
table{width:100%; border-collapse:collapse; font-size:14px}
th,td{text-align:left; padding:8px 10px; border-bottom:1px solid var(--line)}
th{color:var(--muted); font-weight:600; font-size:12px}
.code-pill{font-family:ui-monospace,monospace; background:var(--panel2); border:1px solid var(--line); border-radius:6px; padding:2px 7px; font-size:12px}
.loginurl{word-break:break-all; background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin-top:4px; font-family:ui-monospace,monospace; font-size:12.5px; color:#bcd}
.qrbox{margin-top:10px; background:#fff; padding:12px; border-radius:10px; display:inline-block}

/* annotation editor */
.annobar{display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:10px}
.annobar .tool.on{background:var(--accent); color:#fff; border-color:transparent}
.canvas-wrap{background:#0a0d12; border:1px solid var(--line); border-radius:10px; overflow:auto; -webkit-overflow-scrolling:touch}
.swatch{width:26px; height:26px; border-radius:6px; border:2px solid #fff3; cursor:pointer}
.swatch.on{border-color:#fff}
.pin-list{margin-top:12px}
.pin-item{display:flex; gap:8px; align-items:flex-start; padding:8px 0; border-bottom:1px solid var(--line)}
.pin-num{flex:none; width:24px; height:24px; border-radius:50%; background:var(--pin); color:#fff; display:grid; place-items:center; font-size:13px; font-weight:700}

/* legal pages */
.legal{max-width:760px}
.legal-h1{font-size:22px; font-weight:700; margin:12px 0 4px}
.legal-h2{font-size:16px; font-weight:700; margin:18px 0 6px; color:#cfe0f5}
.legal-p{margin:0 0 8px; line-height:1.7; color:#d7e0ea}
.legal-links{display:flex; flex-direction:column; gap:10px; margin-top:12px}
.legal-table{width:100%; border-collapse:collapse; margin:6px 0 12px}
.legal-table th,.legal-table td{text-align:left; vertical-align:top; padding:9px 11px; border:1px solid var(--line); font-size:14px; line-height:1.6}
.legal-table th{width:34%; background:var(--panel2); color:var(--muted); font-weight:600; white-space:normal}
.legal-table td{word-break:break-word}

.notice{background:#3a2a12; border:1px solid #6b4a2b; color:#ffd9a8; padding:10px 12px; border-radius:10px; font-size:14px; margin-bottom:12px}
.flash{background:#102a1c; border:1px solid #235; color:#9ff; padding:10px 12px; border-radius:10px; margin-bottom:12px}
hr{border:none; border-top:1px solid var(--line); margin:14px 0}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:8px}
@media (min-width:560px){ .att-img{width:160px} }
