:root{--bg-grad-1: #eef2f8;--bg-grad-2: #e8ecf4;--panel: #ffffff;--panel-muted: #f7f9fc;--border: #e3e8ef;--border-strong: #cbd3e0;--accent: #4f46e5;--accent-dark: #4338ca;--accent-soft: #eef0fe;--accent-ring: rgba(79, 70, 229, .18);--text: #1e2533;--text-soft: #475067;--muted: #8a94a6;--danger: #e11d48;--danger-soft: #fee2e6;--ok: #16a34a;--ok-soft: #dcfce7;--warn-bg: #fff8eb;--warn-border: #f7e0a8;--warn-text: #92651a;--side-1: #1b2236;--side-2: #131829;--side-text: #c4ccdc;--side-muted: #7c869c;--r-lg: 14px;--r-md: 10px;--r-sm: 7px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 4px 16px -4px rgba(16, 24, 40, .1), 0 2px 6px -2px rgba(16, 24, 40, .06);--shadow-lg: 0 18px 40px -12px rgba(16, 24, 40, .18);--font: "Inter", "Noto Sans JP", -apple-system, "Hiragino Kaku Gothic ProN", "Meiryo", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);background:linear-gradient(160deg,var(--bg-grad-1),var(--bg-grad-2));background-attachment:fixed;color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-dark)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:#c4ccda;border-radius:8px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#aab4c6;background-clip:content-box}.app{display:flex;min-height:100vh}.sidebar{width:244px;flex-shrink:0;background:linear-gradient(185deg,var(--side-1),var(--side-2));color:var(--side-text);padding:22px 14px 28px;position:sticky;top:0;height:100vh;overflow-y:auto;box-shadow:inset -1px 0 #ffffff0a}.sidebar .brand{display:flex;align-items:center;gap:12px;padding:2px 8px 4px}.sidebar .brand-logo{width:40px;height:40px;border-radius:12px;background:radial-gradient(120% 120% at 30% 20%,#ffffff38,#fff0 55%),linear-gradient(150deg,#818cf8,#4338ca 70%);display:grid;place-items:center;box-shadow:0 8px 20px -6px #4338caa6,inset 0 1px #ffffff40;flex-shrink:0}.sidebar .brand-logo svg{width:26px;height:26px;display:block}.sidebar .brand-text{display:flex;flex-direction:column;gap:1px;line-height:1.1}.sidebar h1{font-size:18px;font-weight:700;margin:0;letter-spacing:-.01em;color:#fff}.sidebar .brand-tag{font-size:9.5px;font-weight:600;letter-spacing:.18em;color:#8b95b5}.sidebar .sub{font-size:11px;color:var(--side-muted);padding:14px 8px 16px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.07);line-height:1.6}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar .nav-section{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--side-muted);padding:16px 12px 6px}.sidebar nav a{display:flex;align-items:center;gap:11px;color:var(--side-text);padding:9px 12px;font-size:13.5px;font-weight:500;border-radius:var(--r-sm);transition:background .13s,color .13s;white-space:nowrap}.sidebar nav a .ico{width:18px;height:18px;flex-shrink:0;opacity:.8;display:inline-flex}.sidebar nav a:hover{background:#ffffff0f;color:#fff}.sidebar nav a.active{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;font-weight:600;box-shadow:0 6px 16px -6px #4f46e5cc}.sidebar nav a.active .ico{opacity:1}.main{flex:1;padding:30px 38px 56px;max-width:1280px;width:100%;margin:0 auto}.page-title{font-size:23px;font-weight:700;letter-spacing:-.01em;margin:0 0 20px;color:var(--text);display:flex;align-items:center;gap:10px}.page-title:before{content:"";width:4px;height:22px;border-radius:4px;background:linear-gradient(var(--accent),var(--accent-dark))}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px;margin-bottom:20px;box-shadow:var(--shadow-md)}.card>.toolbar:first-child{margin-top:-2px}button{font-family:inherit;cursor:pointer;border:1px solid var(--border-strong);background:#fff;color:var(--text-soft);padding:8px 15px;border-radius:var(--r-sm);font-size:13px;font-weight:600;line-height:1.2;transition:background .13s,border-color .13s,box-shadow .13s,transform .05s,color .13s;box-shadow:var(--shadow-sm)}button:hover{background:var(--panel-muted);border-color:var(--border-strong);color:var(--text)}button:active{transform:translateY(.5px)}button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;border-color:transparent;box-shadow:0 6px 14px -6px #4f46e5b3}button.primary:hover{background:linear-gradient(135deg,#5750e8,var(--accent-dark));color:#fff;box-shadow:0 8px 18px -6px #4f46e5d9}button.danger{color:var(--danger);border-color:var(--danger-soft);background:#fff}button.danger:hover{background:var(--danger-soft);color:var(--danger);border-color:#f5b5c1}button.small{padding:4px 10px;font-size:12px;border-radius:6px;box-shadow:none}input,select,textarea{font-family:inherit;font-size:13.5px;color:var(--text);padding:9px 11px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;width:100%;transition:border-color .13s,box-shadow .13s;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{line-height:1.55}input:hover,select:hover,textarea:hover{border-color:#b3bdcc}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}input::placeholder,textarea::placeholder{color:#b2bac7}input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}input[type=date]{min-height:36px}select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 9px center;padding-right:30px}label{font-size:12px;font-weight:600;color:var(--text-soft);display:block;margin-bottom:6px}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}th,td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--border)}th{background:var(--panel-muted);font-weight:700;font-size:11.5px;letter-spacing:.03em;color:var(--text-soft);white-space:nowrap;border-bottom:1px solid var(--border-strong);position:sticky;top:0;z-index:1}tbody tr{transition:background .1s}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#f6f8fd}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.grid-lines{font-size:13px}.grid-lines td{padding:5px 6px;vertical-align:middle}.grid-lines th{padding:9px 8px}.grid-lines input,.grid-lines select{padding:6px 8px;font-size:13px;box-shadow:none}.grid-lines tbody tr:hover{background:#f6f8fd}.heading-row td{background:var(--accent-soft);font-weight:700;color:var(--accent-dark)}.heading-row input{background:transparent;border-color:transparent;font-weight:700;color:var(--accent-dark)}.heading-row input:focus{background:#fff;border-color:var(--accent)}.row{display:flex;gap:16px;flex-wrap:wrap}.row>div{flex:1;min-width:150px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar strong{font-size:15px;font-weight:700}.spacer{flex:1}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;background:#eef1f6;color:#51607a;border:1px solid transparent}.badge.won{background:var(--ok-soft);color:#15803d}.badge.draft{background:#eef1f6;color:#51607a}.badge.sent{background:#e0ecff;color:#1e40af}.badge.lost{background:var(--danger-soft);color:#be123c}.totals{text-align:right;font-size:14px;line-height:2;color:var(--text-soft)}.totals .grand{font-size:21px;font-weight:800;color:var(--text);margin-top:6px;padding-top:8px;border-top:2px solid var(--border-strong)}.muted{color:var(--muted);font-size:12.5px}.warn{background:var(--warn-bg);border:1px solid var(--warn-border);padding:13px 16px;border-radius:var(--r-md);font-size:13px;color:var(--warn-text);margin-bottom:16px;display:flex;align-items:flex-start;gap:9px;box-shadow:var(--shadow-sm)}.warn:before{content:"⚠";font-size:15px;line-height:1.2;flex-shrink:0}.tabs{display:inline-flex;gap:3px;margin-bottom:18px;flex-wrap:wrap;background:#e8ecf4;padding:4px;border-radius:var(--r-md)}.tabs button{background:transparent;border:none;box-shadow:none;color:var(--text-soft);font-weight:600;padding:7px 16px;border-radius:var(--r-sm)}.tabs button:hover{background:#fff9;color:var(--text)}.tabs button.active{background:#fff;color:var(--accent-dark);box-shadow:var(--shadow-sm)}.neg{color:var(--danger)}.handle{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:11px;padding:0 1px;transition:color .1s}.handle:hover{color:var(--accent)}td a{font-weight:600}.login-wrap{min-height:100vh;width:100%;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:30px 28px 28px;display:flex;flex-direction:column;gap:14px}.login-brand{display:flex;align-items:center;gap:12px}.login-brand h1{font-size:20px;margin:0;font-weight:800;letter-spacing:-.01em;color:var(--text)}.login-brand .brand-tag{font-size:9.5px;font-weight:600;letter-spacing:.18em;color:var(--muted)}.login-brand .brand-logo{width:40px;height:40px;border-radius:12px;flex-shrink:0;background:radial-gradient(120% 120% at 30% 20%,#ffffff38,#fff0 55%),linear-gradient(150deg,#818cf8,#4338ca 70%);display:grid;place-items:center;box-shadow:0 8px 20px -6px #4338ca80}.login-brand .brand-logo svg{width:26px;height:26px;display:block}.login-card h2{margin:8px 0 0;font-size:16px;color:var(--text-soft)}.login-card label{font-weight:600}.login-card button.primary{margin-top:6px;padding:11px;font-size:14px}.sidebar{display:flex;flex-direction:column}.sidebar-user{margin-top:auto;display:flex;align-items:center;gap:8px;padding:14px 10px 2px;border-top:1px solid rgba(255,255,255,.08)}.su-info{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.3}.su-email{font-size:12px;color:#e7ebf5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.su-role{font-size:10px;color:var(--side-muted)}.su-logout{background:transparent;border:1px solid rgba(255,255,255,.12);color:var(--side-text);padding:7px;border-radius:8px;box-shadow:none;display:inline-flex;flex-shrink:0}.su-logout:hover{background:#ffffff14;color:#fff;border-color:#fff3}.su-logout .ico{width:17px;height:17px}.login-cosmos{position:relative;overflow:hidden;background:radial-gradient(1200px 700px at 78% 18%,#1d2b5e,#1d2b5e00 60%),radial-gradient(1000px 800px at 14% 88%,#3a1d63,#3a1d6300 58%),linear-gradient(165deg,#0a0c1c,#070611 45%,#04030a);color:#e8ecff}.cosmos-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.nebula{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;mix-blend-mode:screen}.nebula-1{width:460px;height:460px;top:-90px;right:-60px;background:radial-gradient(circle at 40% 40%,#6d5cff,#6d5cff00 70%);animation:nebula-drift-1 26s ease-in-out infinite}.nebula-2{width:520px;height:520px;bottom:-140px;left:-120px;background:radial-gradient(circle at 50% 50%,#c13bd6,#c13bd600 70%);animation:nebula-drift-2 32s ease-in-out infinite}.nebula-3{width:380px;height:380px;top:40%;left:55%;background:radial-gradient(circle at 50% 50%,#1fb6ff,#1fb6ff00 70%);opacity:.4;animation:nebula-drift-1 38s ease-in-out infinite reverse}@keyframes nebula-drift-1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-40px,30px) scale(1.12)}}@keyframes nebula-drift-2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(50px,-30px) scale(1.08)}}.stars{position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:repeat}.stars-1{background-image:radial-gradient(1px 1px at 20px 30px,#fff,transparent),radial-gradient(1px 1px at 90px 80px,#cfe0ff,transparent),radial-gradient(1px 1px at 150px 160px,#fff,transparent),radial-gradient(1px 1px at 60px 190px,#bcd2ff,transparent),radial-gradient(1px 1px at 190px 50px,#fff,transparent);background-size:220px 220px;animation:star-scroll-1 90s linear infinite,twinkle 5s ease-in-out infinite}.stars-2{background-image:radial-gradient(1px 1px at 40px 60px,#fff,transparent),radial-gradient(1.5px 1.5px at 180px 120px,#d7e6ff,transparent),radial-gradient(1px 1px at 250px 220px,#fff,transparent),radial-gradient(1px 1px at 110px 270px,#cfe0ff,transparent),radial-gradient(1.5px 1.5px at 290px 30px,#fff,transparent);background-size:300px 300px;opacity:.85;animation:star-scroll-2 60s linear infinite,twinkle 6.5s ease-in-out infinite}.stars-3{background-image:radial-gradient(2px 2px at 80px 100px,#fff,transparent),radial-gradient(2px 2px at 300px 260px,#eaf2ff,transparent),radial-gradient(2.5px 2.5px at 200px 380px,#fff,transparent),radial-gradient(2px 2px at 360px 60px,#fff,transparent);background-size:400px 400px;filter:drop-shadow(0 0 4px rgba(255,255,255,.8));animation:star-scroll-3 42s linear infinite,twinkle 4.4s ease-in-out infinite}@keyframes star-scroll-1{0%{background-position:0 0}to{background-position:-220px 440px}}@keyframes star-scroll-2{0%{background-position:0 0}to{background-position:300px 600px}}@keyframes star-scroll-3{0%{background-position:0 0}to{background-position:-400px 800px}}@keyframes twinkle{0%,to{opacity:.55}50%{opacity:1}}.shooting{position:absolute;top:8%;left:78%;width:140px;height:1.5px;background:linear-gradient(90deg,#fff,#fff 40%,#fff0);border-radius:999px;filter:drop-shadow(0 0 6px rgba(180,200,255,.9));transform:translate(0) rotate(-28deg);opacity:0;animation:shoot 7s ease-in infinite}.shooting-2{top:30%;left:88%;width:110px;animation-delay:3.4s;animation-duration:9s}@keyframes shoot{0%{opacity:0;transform:translate(0) rotate(-28deg)}6%{opacity:1}18%{opacity:0;transform:translate(-620px,330px) rotate(-28deg)}to{opacity:0;transform:translate(-620px,330px) rotate(-28deg)}}.login-cosmos .login-card{position:relative;z-index:1;background:#1114288c;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:1px solid rgba(150,170,255,.22);box-shadow:0 30px 80px -20px #0a0828cc,0 0 60px -10px #6366f173,inset 0 1px #ffffff1a}.login-cosmos .login-card:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:var(--r-lg);padding:1px;pointer-events:none;background:linear-gradient(140deg,#818cf8b3,#38bdf826 40%,#d946ef99);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.8}.login-cosmos .login-card h1{color:#fff;text-shadow:0 0 18px rgba(129,140,248,.6)}.login-cosmos .login-card h2{color:#aab4e8;letter-spacing:.02em}.login-cosmos .login-brand .brand-tag{color:#8d97d6}.login-cosmos .login-card label{color:#c6cdf0}.login-cosmos .login-card input{background:#ffffff0f;border-color:#96aaff40;color:#eef1ff}.login-cosmos .login-card input::placeholder{color:#7e88b5}.login-cosmos .login-card input:hover{border-color:#96aaff73}.login-cosmos .login-card input:focus{border-color:#818cf8;box-shadow:0 0 0 3px #818cf847,0 0 18px -2px #818cf880;background:#ffffff17}.login-cosmos .login-card button.primary{background:linear-gradient(135deg,#6366f1,#7c3aed 55%,#4338ca);box-shadow:0 10px 28px -8px #7c3aedcc,0 0 22px -4px #6366f199}.login-cosmos .login-card button.primary:hover{background:linear-gradient(135deg,#717bff,#8b46f5 55%,#4f46e5);box-shadow:0 12px 34px -8px #7c3aedf2,0 0 30px -2px #6366f1cc}.login-cosmos .login-brand .brand-logo{box-shadow:0 8px 22px -4px #4338cab3,0 0 26px -2px #818cf8b3;animation:logo-glow 3.2s ease-in-out infinite}@keyframes logo-glow{0%,to{box-shadow:0 8px 22px -4px #4338ca99,0 0 22px -4px #818cf88c}50%{box-shadow:0 8px 26px -4px #4338cad9,0 0 38px #818cf8e6}}
