PageSourceSearch

https://line-aruru.line-aruru.workers.dev/

html line-aruru.line-aruru.workers.dev collected 2026-10-03 08:08:19 UTC 9,678 bytes, 429 lines download raw bytes

1<!DOCTYPE html>
2<html lang="ja">
3<head>
4  <meta charset="UTF-8" />
5  <!-- maximum-scale=1: iOS が input フォーカスで自動ズームし、解除後も拡大が
6       残る問題の防止 (LIFF はアプリ的 UI なのでピンチズーム不要)。 -->
7  <meta
8    name="viewport"
9    content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"
10  />
11  <title>LINE CRM</title>
12  
12<script charset="utf-8" src="https://static.line-scdn.net/liff/edge/2/sdk.js"></script>
12
13  <style>
14    * { margin: 0; padding: 0; box-sizing: border-box; }
15    body {
16      font-family: 'Hiragino Sans', 'Yu Gothic', system-ui, sans-serif;
17      background: #f5f5f5;
18      color: #333;
19      display: flex;
20      justify-content: center;
21      align-items: center;
22      min-height: 100vh;
23    }
24    #app {
25      max-width: 480px;
26      width: 100%;
27      padding: 24px 16px;
28    }
29    .card {
30      background: #fff;
31      border-radius: 12px;
32      padding: 32px 24px;
33      box-shadow: 0 1px 3px rgba(0,0,0,0.08);
34      text-align: center;
35    }
36    .card h2 {
37      font-size: 18px;
38      margin-bottom: 16px;
39      color: #06C755;
40    }
41    .check-icon {
42      width: 56px;
43      height: 56px;
44      border-radius: 50%;
45      background: #06C755;
46      color: #fff;
47      font-size: 28px;
48      line-height: 56px;
49      margin: 0 auto 16px;
50    }
51    .profile {
52      display: flex;
53      align-items: center;
54      justify-content: center;
55      gap: 12px;
56      margin: 16px 0;
57    }
58    .profile img {
59      width: 48px;
60      height: 48px;
61      border-radius: 50%;
62    }
63    .profile .name {
64      font-size: 16px;
65      font-weight: 600;
66    }
67    .message {
68      font-size: 14px;
69      color: #666;
70      line-height: 1.6;
71      margin-top: 12px;
72    }
73    .error {
74      font-size: 14px;
75      color: #e53e3e;
76    }
77    .add-friend-btn {
78      display: block;
79      margin: 20px auto 12px;
80      padding: 14px 24px;
81      background: #06C755;
82      color: #fff;
83      font-size: 16px;
84      font-weight: 700;
85      border-radius: 8px;
86      text-decoration: none;
87      text-align: center;
88      transition: opacity 0.15s;
89    }
90    .add-friend-btn:active {
91      opacity: 0.85;
92    }
93    .sub-message {
94      font-size: 12px;
95      color: #999;
96      margin-top: 4px;
97    }
98    .ref-badge {
99      display: inline-block;
100      margin-top: 12px;
101      padding: 4px 12px;
102      background: #f0f0f0;
103      border-radius: 12px;
104      font-size: 11px;
105      color: #999;
106    }
107    .loading-spinner {
108      width: 32px;
109      height: 32px;
110      border: 3px solid #e0e0e0;
111      border-top-color: #06C755;
112      border-radius: 50%;
113      animation: spin 0.8s linear infinite;
114      margin: 0 auto 16px;
115    }
116    @keyframes spin { to { transform: rotate(360deg); } }
117
118    /* ========== Booking Page ========== */
119    .booking-page {
120      animation: fadeIn 0.3s ease;
121    }
122    @keyframes fadeIn {
123      from { opacity: 0; transform: translateY(8px); }
124      to { opacity: 1; transform: translateY(0); }
125    }
126    .booking-header {
127      text-align: center;
128      margin-bottom: 20px;
129    }
130    .booking-header h1 {
131      font-size: 22px;
132      color: #333;
133      margin-bottom: 4px;
134    }
135    .booking-header p {
136      font-size: 13px;
137      color: #999;
138    }
139
140    /* Calendar */
141    .booking-calendar {
142      background: #fff;
143      border-radius: 12px;
144      padding: 16px;
145      box-shadow: 0 1px 3px rgba(0,0,0,0.08);
146      margin-bottom: 16px;
147    }
148    .calendar-header {
149      display: flex;
150      align-items: center;
151      justify-content: space-between;
152      margin-bottom: 12px;
153    }
154    .cal-title {
155      font-size: 16px;
156      font-weight: 700;
157      color: #333;
158    }
159    .cal-nav {
160      width: 36px;
161      height: 36px;
162      border: none;
163      background: #f5f5f5;
164      border-radius: 50%;
165      font-size: 16px;
166      color: #333;
167      cursor: pointer;
168      display: flex;
169      align-items: center;
170      justify-content: center;
171      transition: background 0.15s;
172    }
173    .cal-nav:active {
174      background: #e0e0e0;
175    }
176    .cal-weekdays {
177      display: grid;
178      grid-template-columns: repeat(7, 1fr);
179      text-align: center;
180      margin-bottom: 4px;
181    }
182    .cal-weekdays span {
183      font-size: 11px;
184      font-weight: 600;
185      color: #999;
186      padding: 4px 0;
187    }
188    .cal-weekdays .sun { color: #e53e3e; }
189    .cal-weekdays .sat { color: #3b82f6; }
190    .cal-days {
191      display: grid;
192      grid-template-columns: repeat(7, 1fr);
193      gap: 2px;
194      text-align: center;
195    }
196    .cal-day {
197      display: flex;
198      align-items: center;
199      justify-content: center;
200      width: 100%;
201      aspect-ratio: 1;
202      border-radius: 50%;
203      font-size: 14px;
204      cursor: default;
205      transition: all 0.15s;
206    }
207    .cal-day.empty {
208      visibility: hidden;
209    }
210    .cal-day.past {
211      color: #ccc;
212    }
213    .cal-day.active {
214      cursor: pointer;
215      color: #333;
216    }
217    .cal-day.active:active {
218      background: #e8faf0;
219    }
220    .cal-day.sun { color: #e53e3e; }
221    .cal-day.sat { color: #3b82f6; }
222    .cal-day.past.sun, .cal-day.past.sat { opacity: 0.4; }
223    .cal-day.today {
224      font-weight: 700;
225      position: relative;
226    }
227    .cal-day.today::after {
228      content: '';
229      position: absolute;
230      bottom: 2px;
231      width: 4px;
232      height: 4px;
233      border-radius: 50%;
234      background: #06C755;
235    }
236    .cal-day.selected {
237      background: #06C755 !important;
238      color: #fff !important;
239      font-weight: 700;
240    }
241
242    /* Slots */
243    .slots-section {
244      background: #fff;
245      border-radius: 12px;
246      padding: 16px;
247      box-shadow: 0 1px 3px rgba(0,0,0,0.08);
248      margin-bottom: 16px;
249      animation: fadeIn 0.3s ease;
250    }
251    .slots-section h3 {
252      font-size: 14px;
253      font-weight: 700;
254      color: #333;
255      margin-bottom: 12px;
256    }
257    .slots-loading {
258      text-align: center;
259      padding: 16px 0;
260    }
261    .slots-loading p {
262      font-size: 13px;
263      color: #999;
264      margin-top: 8px;
265    }
266    .no-slots {
267      font-size: 13px;
268      color: #999;
269      text-align: center;
270      padding: 16px 0;
271    }
272    .slots-grid {
273      display: grid;
274      grid-template-columns: repeat(2, 1fr);
275      gap: 8px;
276    }
277    .slot-btn {
278      padding: 12px 8px;
279      border: none;
280      border-radius: 8px;
281      font-size: 14px;
282      font-weight: 600;
283      cursor: pointer;
284      transition: all 0.15s;
285      font-family: inherit;
286    }
287    .slot-btn.available {
288      background: #e8faf0;
289      color: #06C755;
290      border: 1.5px solid #06C755;
291    }
292    .slot-btn.available:active {
293      background: #06C755;
294      color: #fff;
295    }
296    .slot-btn.selected {
297      background: #06C755;
298      color: #fff;
299      border: 1.5px solid #06C755;
300      transform: scale(1.03);
301    }
302    .slot-btn.full {
303      background: #f5f5f5;
304      color: #bbb;
305      cursor: not-allowed;
306      border: 1.5px solid transparent;
307    }
308
309    /* Confirm */
310    .confirm-section {
311      animation: slideUp 0.3s ease;
312    }
313    @keyframes slideUp {
314      from { opacity: 0; transform: translateY(16px); }
315      to { opacity: 1; transform: translateY(0); }
316    }
317    .confirm-card {
318      background: #fff;
319      border-radius: 12px;
320      padding: 20px 16px;
321      box-shadow: 0 1px 3px rgba(0,0,0,0.08);
322    }
323    .confirm-card h3 {
324      font-size: 15px;
325      font-weight: 700;
326      color: #333;
327      margin-bottom: 16px;
328      text-align: center;
329    }
330    .confirm-details {
331      margin-bottom: 20px;
332    }
333    .confirm-row {
334      display: flex;
335      justify-content: space-between;
336      padding: 10px 0;
337      border-bottom: 1px solid #f0f0f0;
338      font-size: 14px;
339    }
340    .confirm-row:last-child {
341      border-bottom: none;
342    }
343    .confirm-label {
344      color: #999;
345    }
346    .confirm-value {
347      font-weight: 600;
348      color: #333;
349    }
350    .book-btn {
351      width: 100%;
352      padding: 14px;
353      border: none;
354      border-radius: 8px;
355      background: #06C755;
356      color: #fff;
357      font-size: 16px;
358      font-weight: 700;
359      cursor: pointer;
360      transition: opacity 0.15s;
361      font-family: inherit;
362    }
363    .book-btn:active {
364      opacity: 0.85;
365    }
366    .book-btn:disabled {
367      background: #bbb;
368      cursor: not-allowed;
369    }
370
371    /* Success */
372    .success-card {
373      background: #fff;
374      border-radius: 12px;
375      padding: 32px 24px;
376      box-shadow: 0 1px 3px rgba(0,0,0,0.08);
377      text-align: center;
378      animation: fadeIn 0.3s ease;
379    }
380    .success-icon {
381      width: 64px;
382      height: 64px;
383      border-radius: 50%;
384      background: #06C755;
385      color: #fff;
386      font-size: 32px;
387      line-height: 64px;
388      margin: 0 auto 16px;
389    }
390    .success-card h2 {
391      font-size: 18px;
392      color: #06C755;
393      margin-bottom: 16px;
394    }
395    .success-message {
396      font-size: 14px;
397      color: #666;
398      line-height: 1.6;
399      margin-top: 16px;
400    }
401    .close-btn {
402      margin-top: 24px;
403      width: 100%;
404      padding: 14px;
405      border: 1.5px solid #06C755;
406      border-radius: 8px;
407      background: #fff;
408      color: #06C755;
409      font-size: 16px;
410      font-weight: 700;
411      cursor: pointer;
412      transition: all 0.15s;
413      font-family: inherit;
414    }
415    .close-btn:active {
416      background: #e8faf0;
417    }
418  </style>
419  
419<script type="module" crossorigin src="/assets/index-DVUxz3xS.js"></script>
419
420</head>
421<body>
422  <div id="app">
423    <div class="card">
424      <div class="loading-spinner"></div>
425      <p class="message">読み込み中...</p>
426    </div>
427  </div>�
428</body>
429</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.